उत्तल बहुभुज के अंदर अधिकतम क्षेत्रफल-आयत कैसे ज्ञात करें?


21

इस पोस्ट में हम एक उत्तल बहुभुज के अंदर अधिकतम क्षेत्र-आयत को खोजने के लिए एल्गोरिदम / विचारों की तलाश कर रहे हैं ।

निम्नलिखित आंकड़े में, संख्याएं फिट किए गए आयतों के क्षेत्र हैं। जैसा कि दिखाया गया है एक वांछित आयत प्रत्येक आयाम में भिन्न हो सकती है और किसी भी कोण में हो सकती है।

संपादित करें:

हमारे पास कोई स्पष्ट विचार नहीं है कि बताई गई समस्या से कैसे निपटा जाए, इसलिए हमने यहां पूछा। फिर भी, हमें लगता है कि अधिकतम-क्षेत्र-आयत उन लोगों में से एक हो सकता है जिनके पास एक किनारे पर गठबंधन किया गया है (जरूरी नहीं कि एक ही लंबाई का किनारा, निश्चित रूप से) बहुभुज का एक किनारा।

यहाँ छवि विवरण दर्ज करें


1
क्या आप निर्दिष्ट कर सकते हैं कि आप किस सॉफ्टवेयर का उपयोग कर रहे हैं? इसके अलावा, इस तक अपना काम पोस्ट करें, या सामान्य दृष्टिकोण जिसे आपने इसे हल करने के लिए काम किया है। हो सकता है कि कोई आपके पहले से किए गए सुधार कर सकता है। मेरे अनुभव में "केवल नीले रंग से बाहर" सवाल पोस्ट करने की तुलना में कहीं अधिक उपयोगी उत्तर होंगे।
मार्टिन

1
बारीकी से संबंधित: gis.stackexchange.com/questions/22895/…
व्हीबर

@ मॉर्टिन सॉफ्टवेयर: Pythonतब प्रोग्रामिंग करना अंदर होगाFortran यदि आवश्यक । हमारे पास एक अनुमान है कि हमारी पिछली पोस्ट के आधार पर यहां भी ऊपर उल्लेख किया गया है whuberकि बहुभुज के साथ एक किनारे के साथ एक आयत हो सकता है जो एक उत्तर होगा।
डेवलपर

1
आपकी समस्या वास्तव में एक दिलचस्प एक है, और मुझे लगता है मैं एक हल एल्गोरिथ्म खोज करने में कामयाब लगता है यहाँ और यहाँ
nickves

1
@nickves लिंक के लिए धन्यवाद। क्या आप इन सूचनाओं को एल्गोरिदम की थोड़ी व्याख्या के साथ उत्तर के रूप में डाल सकते हैं? यह संभवतः स्वीकार किए जाने वाले एक अच्छा जवाब होगा।
डेवलेपर

जवाबों:


4

टिप्पणी में डालने के लिए कुछ नोट बहुत बड़े (हालांकि यह एक स्पष्ट एल्गोरिथ्म का सुझाव नहीं देता है):

पंच लाइन (EDITED) : अधिकतम आयत आयत के कम से कम दो कोने बहुभुज की सीमा (यानी एक किनारे, या एक शीर्ष पर) पर झूठ होना चाहिए। और यदि अधिकतम क्षेत्र आयत एक वर्ग नहीं है, तो बहुभुज की सीमा पर कम से कम तीन कोने होना चाहिए।

मैंने इसे चार चरणों में साबित किया:

नोट # 1 : अधिकतम क्षेत्र आयत का कम से कम एक शीर्ष हमेशा बहुभुज की सीमा पर रहेगा। यह बहुत स्पष्ट है, लेकिन एक सबूत इस तरह से जा सकता है (विरोधाभास द्वारा): मान लीजिए कि आपके पास बहुभुज की सीमा पर कोई शीर्ष के साथ "अधिकतम" आयत थी। इसका मतलब है कि इसके प्रत्येक कोने के आसपास कम से कम एक छोटा कमरा होगा। तो आप अपनी आयत को थोड़ा बढ़ा सकते हैं, इसकी अधिकतमता का विरोध कर सकते हैं।

नोट 2 : अधिकतम क्षेत्र आयत के कम से कम दो कोने हमेशा बहुभुज की सीमा पर स्थित होंगे। एक सबूत इस तरह से जा सकता है (फिर से विरोधाभास द्वारा): मान लीजिए कि आपके पास सीमा पर केवल एक शीर्ष के साथ "अधिकतम" आयत थी (नोट # 1 द्वारा गारंटी)। उस किनारे से सटे हुए दो किनारों पर विचार करें। चूंकि उनके समापन बिंदु सीमा पर नहीं हैं, इसलिए प्रत्येक के चारों ओर एक छोटा कमरा है। तो या तो उन किनारों को थोड़ा "बाहर निकालना" हो सकता है, बहुभुज के क्षेत्र का विस्तार करना और इसकी अधिकतमता का विरोध करना।

नोट # 3 : दो हैं अधिकतम आयत के तिरछे विपरीत कोने हैं जो बहुभुज की सीमा पर स्थित हैं। (हम नोट # 2 से जानते हैं कि कम से कम दो हैं, लेकिन जरूरी नहीं कि वे एक-दूसरे से पार हों।) लेकिन फिर से विरोधाभास से, यदि केवल दो सीमाएं लंबित थीं, तो विपरीत किनारे (दोनों में से कोई भी नहीं) सीमा पर हैं) आयत के क्षेत्र को बढ़ाते हुए और इसकी अधिकतमता के विपरीत, थोड़ा-थोड़ा बाहर निकाला जा सकता है।

नोट # 4 : (EDITED) यदि अधिकतम क्षेत्र आयत एक वर्ग नहीं है, तो इसके तीन कोने बहुभुज की सीमा पर स्थित होंगे।

साबित करने के लिए, मान लें कि ऐसा नहीं है, यानी अधिकतम क्षेत्र आयत एक वर्ग नहीं है, लेकिन इसके केवल दो कोने बहुभुज की सीमा पर हैं। मैं दिखाऊंगा कि कैसे एक बड़ी आयत का निर्माण किया जाए, जो अधिकतमता के विपरीत हो।

आयत के कोने कॉल A, B, C, और D। व्यापकता के नुकसान के बिना, मान लें कि Bऔर Dबहुभुज की सीमा पर दो हैं। चूंकि Aऔर Cबहुभुज के अंदरूनी हिस्से पर हैं, इसलिए उनके चारों ओर कुछ झालर वाला कमरा है (चारों ओर Aऔर Cनीचे दी गई तस्वीर में)। अब आयत के चारों ओर एक वृत्त बनाएँ, और स्लाइड बिंदुओं Aऔर Cएक ही राशि के घेरे के चारों ओर थोड़ा सा (बनाने A'और C', नीचे चित्र) ताकि नई आयतA'BC'Dमूल आयत की तुलना में अधिक वर्गाकार है। यह प्रक्रिया एक नया आयत बनाती है जो मूल बहुभुज के भीतर भी है और एक बड़ा क्षेत्र है। यह एक विरोधाभास है, इसलिए प्रमाण किया जाता है।

एक नई आयत का निर्माण

उस प्रमाण पर विश्वास करने के लिए, आपको अपने आप को यह विश्वास दिलाना होगा कि एक सर्कल में खुदा हुआ आयत का क्षेत्र बढ़ता है क्योंकि यह "अधिक वर्ग" हो जाता है (यानी किनारे की लंबाई के बीच का अंतर छोटा हो जाता है)। आपको बहुभुज को उत्तल करने की भी आवश्यकता है ताकि नई लाइनें उसके भीतर हों। और वहाँ शायद अन्य छोटे विवरण गलीचा के नीचे बह रहे हैं, लेकिन मुझे पूरा यकीन है कि वे सभी काम कर रहे हैं।


नोट # 4 गड़बड़ है, क्योंकि दो अन्य वर्टिकल "विगलिंग" गैर-आयत बनाएंगे।
whuber

सच। हालांकि 4 वें उदाहरण का आपका विज़ुअलाइज़ेशन बहुत सही नहीं है (यदि 2 कोने बहुभुज सीमा पर हैं, तो आप इसे आगे नहीं बढ़ा सकते हैं)। मुझे ठीक-ठीक पता नहीं है कि इसे कैसे समझा जा सकता है (टिप्पणी लिखने की कोशिश की गई लेकिन बहुत गड़बड़ हो गई), लेकिन मुझे विश्वास है कि आप सही हैं।
सरक

मेरा मानना ​​है कि # 4 नोट करने के लिए प्रतिपक्ष हैं। हालाँकि, मैंने पाया है कि दिखाने के लिए कुछ शामिल गणना की गई है; सबसे सरल एक अनियमित हेक्सागोन का एक गड़बड़ी है (दो विपरीत कोनों के साथ एक वर्ग थोड़ा कट ऑफ)।
whuber

सहमत है कि नोट # 4 गड़बड़ है। मैं इस शाम को करीब से देखूंगा और इसे ठीक करूंगा या हटा दूंगा।
सीएसडी

+1 यह कठिनाई का एक अच्छा समाधान है। संपादन के लिए धन्यवाद!
whuber

3

मैंने प्रश्न में आपके हरे नोट के बारे में एक बहुत ही त्वरित और गुप्त स्केच किया है। मैं इसे टिप्पणी के रूप में पोस्ट नहीं कर सकता था, इसलिए मुझे एक उत्तर लिखना था, भले ही यह एक न हो।
मेरा मानना ​​है कि नीचे की छवि में हमारे पास एक अधिकतम क्षेत्र आयत है (बिल्कुल सही नहीं है, यह एक विचार देने के लिए पेंट पर बना एक स्केच है), और मुझे नहीं लगता कि आप एक बड़ा पा सकते हैं जिसमें एक आम पक्ष होगा। काले प्लाईगॉन की सीमाएं ...
हालांकि मैं गलत हो सकता हूं, उस स्थिति में आपके पास मेरी सभी माफी है।
क्विक स्केच I ने पेंट पर बनाया


3
अच्छी बात (+1)। हालांकि, एक बहुत सरल काउंटरटेम्पलिंग है: एक नियमित अष्टकोना के भीतर एक अधिकतम-क्षेत्र आयत को अंकित करने की समस्या पर विचार करें। यह देखना आसान है (और अष्टकोण के परिधि के भीतर एक अधिकतम वर्ग को खोजने के द्वारा यह साबित करना आसान है) कि समाधान के कोने ऑक्टागन के वैकल्पिक चक्करों के साथ मेल खाते हैं और यह समाधान किसी भी किनारे से संरेखित आयत की तुलना में काफी बड़ा है।
whuber

वास्तव में (मुझे अभी एक बड़ा संदेह है), इस बहुभुज की बाहरी सबसे छोटी आयत ( इस पोस्ट से ) को एक पक्ष के समान अभिविन्यास नहीं मिला है, है? (मैं इसे अपने लाल आयत के रूप में एक ही अभिविन्यास
देखूंगा

3
बहुभुज उत्तल नहीं है, वैसे। मूल प्रश्न उत्तल बहुभुज तक सीमित है।
सीएसडी

2
@csd यह एक महान बिंदु है, लेकिन सराइक अभी भी सही है, जैसा कि मेरे प्रतिरूप से पता चलता है। Saryk, न्यूनतम आयतन सीमा आयत के साथ कोई समस्या नहीं है: यह साबित करना आसान है (सख्ती से) कि इसमें उत्तल पतवार का एक पक्ष शामिल होना चाहिए। मेरा मानना ​​है कि अधिकतम आयत उत्कीर्ण आयत (उत्तल बहुभुज की) की सीमा को छूने के लिए केवल दो सिरों की आवश्यकता होती है, और नहीं।
whuber

2

अधिकांश अन्य एल्गोरिदम एक उत्तल बहुभुज में उत्कीर्ण अधिकतम क्षेत्र आयताकार आयताकार पाते हैं, और इनकी जटिलता होती है O(log n)। मुझे नहीं लगता कि आपका अनुमान है कि अधिकतम क्षेत्र बहुभुज एक पक्ष के साथ गठबंधन किया गया है, सही है, क्योंकि आपको केवल बहुभुज nसमय को घुमाने की आवश्यकता होगी , जिसके परिणामस्वरूप जटिलता हो सकती है O(n log n), और मेरे संक्षिप्त शोध में मैं नहीं कर सका। कुछ भी कहो यह आसान था।

हालांकि, कागज सबसे बड़ा उत्कीर्ण आयताकार उत्तल बहुभुज में कन्नूर, एट द्वारा। अल।, एक अनुमान एल्गोरिथ्म का वर्णन करता है जो आपको सही उत्तर के करीब मिलेगा।

जब तक मैं एल्गोरिथ्म को समझता हूं, तब तक यह ज्ञात अक्ष संरेखित अधिकतम क्षेत्र बहुभुजों में से एक के ऊपर बनता है, और फिर बेतरतीब ढंग से नमूनों को पॉलीोन अंतरिक्ष के अंदर इंगित करता है, उन यादृच्छिक नमूनों से कई अक्ष उत्पन्न करता है, उन अक्ष पर पुनरावृत्त करता है और अक्ष को लागू करता है। -लगभग एल्गोरिथ्म हर एक के लिए, और फिर उस सेट में सबसे बड़ी आयत लौटाता है।


क्या पहले वाक्य में शायद कोई टाइपो है? संभवतः एक O (लॉग (n)) एल्गोरिथ्म नहीं हो सकता क्योंकि निर्देशांक में पढ़ना केवल O (n) ऑपरेशन है!
whuber

लिंक मृत है
खतरनाक

1
@dangificdave - हालांकि यह लंबे समय तक रहता है के लिए एक वैकल्पिक लिंक मिला ....
प्रजनक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.