घनाकार के संघ में निहित एक सबसे बड़ा घन ज्ञात कीजिए


18

मेरे पास 3 डी स्थान में बहुत सारे क्यूबॉइड हैं, प्रत्येक में एक प्रारंभिक बिंदु है (x, y, z) और इसका आकार (Lx, Ly, Lz) है। मुझे आश्चर्य है कि इस 3 डी स्पेस में सबसे बड़ा क्यूब कैसे पाया जाए जो क्यूबॉइड्स के संघ में निहित है। क्या इसके लिए एक कुशल एल्गोरिदम है?

उदाहरण के लिए, यदि मेरे पास निम्नलिखित क्यूबॉइड हैं:

  • आकार (10,10,10) के साथ (0,0,0) पर शुरू होने वाला क्यूबाइड,
  • (10,0,0) पर एक क्यूबॉइड आकार (12,13,15) के साथ,
  • आकार (10,10,10) के साथ एक घनाभ (0,10,0),
  • आकार (10,10,10) के साथ एक घनाभ (0,0,10), और
  • आकार (9,9,9) के साथ एक घनाभ (10,10,10)।

फिर, इन क्यूबॉइड के संघ में निहित सबसे बड़ा घन आकार (19,19,19) के साथ (0,0,0) पर शुरू होने वाला घन होगा।

इस प्रश्न का एक सामान्य संस्करण:

आर डी में बक्सों के संग्रह को देखते हुए , बक्सों के संघ के भीतर निहित सबसे बड़ा हाइपरक्यूब खोजें।nRd


8
मुझे लगता है कि अंदर एक बेहतर सवाल छिपा है: अर्थात्, में बक्से का एक संघ दिया गया है, संघ के भीतर निहित सबसे बड़े हाइपरक्यूब की गणना करें। Rd
सुरेश वेंकट

1
क्या ये शावक ओवरलैप कर सकते हैं?
पीटर बूटे

@ सुरेश, इस प्रश्न को स्पष्ट और सामान्य बनाने के लिए धन्यवाद :) @Peter, मेरे मामले में ... यह ओवरलैप नहीं होगा :)
पैंटोस्की

2
जिस तरह से आपने इसे फेज़ किया है, ऐसा लगता है कि क्यूब्स के किनारों को एक्स, वाई और जेड एक्सिस के साथ गठबंधन किया गया है। क्या यह मामला है, या क्यूब्स की मनमानी झुकाव हो सकती है? यह स्पष्ट रूप से एल्गोरिथ्म की दक्षता में एक महत्वपूर्ण अंतर बनाता है।
१ons

मेरे मामले में, प्रत्येक घनाभ का चेहरा केवल कुल्हाड़ियों के लिए रूढ़िवादी है।
पैंटोस्की

जवाबों:


15

खैर, यहाँ एक पहली कोशिश मूर्खतापूर्ण जवाब है ... आयताकार बक्से के प्रत्येक चेहरे के माध्यम से एक विमान ले लो। यह आकार का एक ग्रिड बनाता है । प्रत्येक ऐसे ग्रिड सेल के लिए गणना करना कठिन नहीं है, चाहे वह संघ के अंदर हो या बाहर। अब, प्रत्येक ग्रिड वर्टेक्स से, एक क्यूब उगाएं (इस शीर्ष को एक वर्टेक्स के रूप में) इसे जितना संभव हो उतना बड़ा बनाने की कोशिश करें। इसे सबसे भोले तरीके से करते हुए, यह O ( n 3 log n ) समय प्रति शीर्ष समय लेता है , लेकिन संभवतः ऑर्थोगोनल रेंज का उपयोग कर जादू की खोज करता है, व्यक्ति को इसे O O ( 1 ) n प्रति शीर्ष पर लॉग इन करने में सक्षम होना चाहिए । तो O ( n 3)O(n3)O(n3logn)logO(1)n संभव होना चाहिए ...O(n3logO(1)n)

एक दूसरा प्रयास: संघ की गणना करें। इस विशिष्ट मामले में, यह समय (विमानों को स्वीप करके ) में किया जा सकता है । अब, निरीक्षण करें कि आपको केवल संघ की सीमा के एल on वोरोनोई आरेख की गणना करने की आवश्यकता है । परिणाम का उपयोग करना: http://vw.stanford.edu/~vladlen/publications/vor-polyhedral.pdf , इस में किया जा सकता हे ( एन 2 + ε ) समय, एक मनमाना छोटे लगातार के लिए ε > 0O(nlogn)LO(n2+ε)ε>0

तोड़नायहां बंधे समय को चलाना दिलचस्प होगा, IMHO।O(n2)


धन्यवाद सर, मुझे भी लगता है कि L∞ इस समस्या का अब तक का सबसे अच्छा समाधान है। चूँकि मैंने 2 डी मामले के लिए L I've पहले किया है (इस पेपर inf.usi.ch/facademy/papadopoulou/publications/ijcga01.pdf में उपलब्ध कराए गए तरीकों से )। केवल बक्सों वाला 3 डी केस ज्यादा मुश्किल नहीं होना चाहिए।
पैंटोस्की

8

के बारे में सामान्य प्रश्न का उत्तर यह प्रतीत होता है कि यह NP- हार्ड है। प्रमाण काफी सरल है। हम बस d चर पर एक 3SAT उदाहरण लेते हैं और प्रत्येक चर को एक आयाम के साथ जोड़ते हैं । चर के संभावित कार्य के एक अंतरिक्ष के रूप में अंतरिक्ष के बारे में सोचो: हम केवल के बीच -1 और +1 प्रत्येक आयाम की में अंक, और सहयोगी स्थानों पर विचार < 0 है कि चर के लिए 0 से एक काम और साथ > 0 1. प्रत्येक का एक काम के साथ खण्ड 1 × 1 × 1 × n × n × n द्वारा दिए गए क्षेत्र को बाहर करता है × nRdd<0>01×1×1×n×n×n...×n hypercuboid।

इन cuboids के मिलन स्थान को भरता है (और इसलिए एक होता है घन), तो वहाँ 3SAT उदाहरण के लिए चर का कोई संतोषजनक काम है। यदि फिर भी सबसे बड़ा घन 1 × 1 × है × 1 या 0 (कोई खंड के लिए), केवल अन्य संभावनाएं, फिर चर का एक संतोषजनक असाइनमेंट मौजूद है।2×2×...×21×1×...×1


मुझे लगता है कि आप यह साबित कर सकते हैं कि यह एफएनपी में है (कम से कम कुल्हाड़ियों-संरेखित घनाभ के मामले में), ऊपर की बहस को उल्टा करके और दिखाते हुए कि कोई भी घनास्त्रता एक बाधा का गठन करती है जिसे बहुपद समय में जांचा जा सकता है।
जो फिट्ज़सिमों
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.