लगभग साधारण बहुभुजों के दो प्रकारों का पता लगाना


22

मुझे यह तय करने की जटिलता में दिलचस्पी है कि क्या एक दिया गया गैर-साधारण बहुभुज लगभग दो अलग-अलग औपचारिक इंद्रियों में लगभग सरल है: कमजोर रूप से सरल या गैर-आत्म-क्रॉसिंग । चूंकि ये शब्द व्यापक रूप से ज्ञात नहीं हैं, मुझे कुछ परिभाषाओं के साथ शुरू करना चाहिए।

  • एक बहुभुज P बंद रेखा खंडों में से कुछ परिमित अनुक्रम जोड़ने चक्र है विमान में अंक की। अंक को बहुभुज के कोने कहा जाता है , और खंड इसके किनारों को कहा जाता है । हम किसी भी बहुभुज को केवल उसके क्रम को सूचीबद्ध करके निर्दिष्ट कर सकते हैं। पी आईp0,p1,p2,,pn1pipipi+1modn

  • एक बहुभुज सरल है यदि सभी n कोने अलग हैं और किनारों को उनके समापन बिंदु पर ही प्रतिच्छेद किया जाता है। समान रूप से, एक बहुभुज सरल है यदि यह एक सर्कल के होमोमोर्फिक है और प्रत्येक किनारे की सकारात्मक लंबाई है। सामान्य तौर पर, हालांकि, बहुभुज के कोने और किनारे मनमाने ढंग से या यहां तक ​​कि मेल खा सकते हैं। 1

  • दो बहुभुज रास्तों पर विचार करें A और B जिसका चौराहा दोनों का एक सामान्य उपपथ है (संभवतः एक एकल बिंदु)। हम कहते हैं कि A और B क्रॉस करते हैं यदि उनके एंडपॉइंट्स A(0),B(0),A(1),B(1) आम सबपाथ ए \ कैप बी के एक पड़ोस की सीमा पर वैकल्पिक होते हैं AB। एक बहुभुज स्वयं-क्रॉसिंग है अगर इसमें दो क्रॉसिंग सबपैथ और गैर-स्व-क्रॉसिंग हैं अन्यथा। 2

  • बहुभुज कमजोर रूप से सरल होता है यदि यह साधारण बहुभुजों के अनुक्रम की सीमा है, या समकक्ष रूप से, यदि बहुभुजों को सीधा करने वाले कोणों का मनमाना छोटा परावर्तन होता है। हर कमजोर सरल बहुभुज गैर-स्व-क्रॉसिंग है; हालांकि, कुछ गैर-स्व-क्रॉसिंग बहुभुज कमजोर रूप से सरल नहीं हैं ।

उदाहरण के लिए, नीचे दिखाए गए छह बिंदुओं a,b,p,q,x,y करें।

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

  • बहुभुज abpqyz सरल है; बाईं आकृति देखें।

  • बहुभुज papbpqyqzq कमजोर रूप से सरल है; मध्य आकृति एक साधारण बहुभुज दिखाती है। हालाँकि, यह बहुभुज सरल नहीं है, क्योंकि यह तीन बार p है।

  • बहुभुज स्वयं-क्रॉसिंग है, क्योंकि और पार करते हैं। कुछ अंतर्ज्ञान के लिए सही आंकड़ा देखें।पी क्ष z y क्ष पी एकpapbpqzqyqbpqzyqpa

  • अंत में, बहुभुज (जो मध्य बहुभुज के चारों ओर दो बार हवाएं) गैर-आत्म-क्रॉसिंग है, लेकिन यह कमजोर रूप से सरल नहीं है। सहज रूप से, इस बहुभुज की मोड़ संख्या , जबकि किसी भी साधारण बहुभुज की मोड़ संख्या होनी चाहिए । (औपचारिक प्रमाण के लिए कुछ केस विश्लेषण की आवश्यकता होती है, भाग में क्योंकि टर्निंग नंबर वास्तव में कोण के साथ बहुभुज के लिए अच्छी तरह से परिभाषित नहीं है !)± 2 ± 1 0 papbpqyqzqpapbpqyqzq±2±10

अद्यतन (13 सितंबर): नीचे दिए गए आंकड़े में, बहुभुज गैर-स्व-क्रॉसिंग है और इसमें नंबर 1 है , लेकिन यह कमजोर रूप से सरल नहीं है। बहुभुज यकीनन कई पार है गैर सरल subwalks है, लेकिन यह कोई पार है सरल उपपथ । (मैं कहता हूं "यकीनन" क्योंकि यह स्पष्ट नहीं है कि कैसे परिभाषित किया जाए जब दो गैर-सरल चलते हैं!)abcabcxyzxpqrxzyx

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

तो आखिरकार, यहां मेरे वास्तविक प्रश्न हैं:

  • हम कितनी जल्दी निर्धारित कर सकते हैं कि एक दिया बहुभुज गैर-स्व-क्रॉसिंग है?

  • हम कितनी जल्दी निर्धारित कर सकते हैं कि क्या एक दिया बहुभुज कमजोर रूप से सरल है?

पहली समस्या समय में निम्नानुसार हल की जा सकती है । के बाद से देखते हैं कोने, देखते हैं शीर्ष करने वाली शीर्ष उपपथ; हम परीक्षण कर सकते हैं कि क्या कोई विशेष उपपथ समय (जानवर बल द्वारा में सरल है । सरल शीर्ष-से-शीर्ष सबपैथ की प्रत्येक जोड़ी के लिए, हम परीक्षण कर सकते हैं कि क्या वे समय में पार करते हैं । लेकिन यह सबसे अच्छा संभव एल्गोरिथ्म नहीं हो सकता है।O(n5)nO(n2)O(n2)O(n)

मैं नहीं जानता कि बहुपद समय में दूसरी समस्या को हल किया जा सकता है या नहीं। मुझे लगता है कि मैं जल्दी से किसी भी गैर-साधारण बहुभुज के लिए एक अच्छी तरह से परिभाषित मोड़ संख्या की गणना कर सकता हूं (जब तक कि बहुभुज किनारों का संघ सिर्फ एक रास्ता नहीं है, जिस स्थिति में बहुभुज कमजोर रूप से सरल होना चाहिए); नीचे मेरा जवाब देखें। हालांकि, ऊपर दिए गए नए उदाहरण बहुभुज का अर्थ है कि गैर-स्व-क्रॉसिंग और नंबर 1 मोड़ना कमजोर रूप से सरल नहीं है।

हम यह निर्धारित कर सकते हैं कि किसी दिए गए बहुभुज को चौराहे के लिए किनारों की प्रत्येक जोड़ी की जाँच करके समय में सरल है या समय में एक मानक स्वीपलाइन एल्गोरिथ्म का उपयोग करके, या यहां तक ​​कि समय में भी चेज़ेल के त्रिकोणासन एल्गोरिथ्म का उपयोग करना। (यदि इनपुट बहुभुज सरल नहीं है, तो कोई भी त्रिकोणीय एल्गोरिथ्म या तो एक अपवाद, अनंत-लूप को फेंक देगा, या उत्पादन का उत्पादन करेगा जो एक वैध त्रिभुज नहीं है।) लेकिन इनमें से कोई भी एल्गोरिदम उन समस्याओं को हल नहीं करता है जिनके बारे में मैं पूछ रहा हूं। O ( n लॉग एन ) O ( n )O(n2)O(nlogn)O(n)


1 ब्रांको ग्रुनबाम। बहुभुज: मिस्टर सही था और पिन्सोट गलत था लेकिन प्रबल थाBeiträge zur Algebra und Geometrie 53 (1): 57–71, 2012।

2 देखें, उदाहरण के लिए: एरिक डी। डेमिसन और जोसेफ ओ'रोरके। जियोमेट्रिक फोल्डिंग एल्गोरिदम: लिंकेज, ओरिगेमी, पॉलीहेड्रा । कैम्ब्रिज यूनिवर्सिटी प्रेस, 2007।


मुझे समझ में नहीं आ रहा है कि कोई इस प्रश्न को क्यों वोट देगा?
केवह

मैं इस प्रश्न को पूरी तरह से गलत समझ सकता हूं, और शायद यह रास्ता बंद हो सकता है, लेकिन यह मुझे प्रतीत होगा कि जिस तरह से आप संख्याओं को गिनते हैं, इसका मतलब है कि दूसरा प्रश्न आवश्यक रूप से घातीय समय लेता है। मुझे समझाने दो: अपने अंतिम उदाहरण में आप एक ही वर्टिक्स का कई बार उपयोग करते हैं। ऐसे ग्राफ़ का निर्माण करना आसान लगता है जहाँ अद्वितीय चक्रों की संख्या अधिक होती है।
जो फिट्ज़सिमों ने

यदि आपका इनपुट आपके उदाहरणों के अनुसार दिया गया बहुभुज है, तो इनपुट के लिए यह संभव है कि बिना किसी चक्र को दोहराए बिना कई चक्करों की संख्या में घातांक हो। यदि ग्राफ़ में आपके उदाहरण का ग्राफ़ (2 और 3) सबग्राफ के रूप में है, तो इसमें ऐसे चक्र हैं जो गैर-क्रॉसिंग हैं और जो क्रॉसिंग हैं। नतीजतन, आपको यह सुनिश्चित करने के लिए पूरे क्रॉस को पढ़ने की आवश्यकता है कि आपके पास कोई क्रॉसिंग साइकिल नहीं है (जो शामिल नहीं हो सकता है या नहीं)। यह सबसे खराब स्थिति में में समय घातांक लेता है । n
जो फिट्जसिमों ने

1
@JoeFitzsimons: इनपुट केवल अंकों का एक अनुक्रम है (यानी, वास्तविक संख्याओं के जोड़े), जिन्हें अलग-अलग होने की आवश्यकता नहीं है। इनपुट आकार इस क्रम की लंबाई है, कि अनूठे बिंदुओं की संख्या। n
जेफ

2
@ केव: शायद बहुत सार / विशेष? बहुतेरे शब्द? मुझे गॉ, का, ना, ता, तिन, खात नाम के अंक चाहिए थे ?
जेफ

जवाबों:


2

ऐसा लगता है कि पहले प्रश्न में एल्गोरिथ्म है (हालांकि यह भी इष्टतम नहीं है)। यह मानते हुए कि एक क्रॉसिंग है, इसे खोजने की कुंजी यह प्रतीत होती है कि किनारों को जो मिलना चाहिए, वे सामान्य उपपथ के दोनों ओर हैं। इसलिए, हम लगातार किनारों के सभी जोड़े को देखते हैं। इनमें से एक द्विघात संख्या हैं। यदि हम किनारों के जोड़े को एक बी सी और डी एफ के साथ जोड़ते हैं जैसे कि किनारों बी सी और एफ समान हैं, तो हम अंत तक सामान्य उपपथ का पालन करते हैं और उन किनारों का निरीक्षण करते हैं जो इसे छोड़ देते हैं। अगर वे साथ में एक क्रॉसिंग बनाते हैंO(n3)abcdefbcef और डी , फिर हम कर रहे हैं, अन्यथा हम अगले जोड़े पर जाते हैं। आम उपपाठ का अनुसरण अधिकांश रैखिक-समय पर किया जाता है, इसलिए संपूर्ण एल्गोरिथ्म O ( n 3 ) हैabdeO(n3)

यह विश्लेषण शायद तंग नहीं है क्योंकि एक रेखीय-लंबाई वाले आम सबपाथ की संख्या का पालन किया जाएगा जो जोड़े के जोड़े की संख्या में रैखिक नहीं है। उनमें से केवल एक निरंतर संख्या होनी चाहिए। इसी तरह, यदि सबसे लंबे आम सबपाथ की लंबाई स्थिर है, तो हम सामान्य उपपथों के बाद के समय के हिसाब से ठीक हैं। मैं उम्मीद होती है कि सबसे खराब स्थिति पैदा होती है जब वहाँ लंबाई की एक एकल सब-पाथ है के लिए आम है किहे(O(n)उपपथ। फिर देखते हैंहे(एन)बातचीत और प्रत्येक बातचीत मेंहे(O(n)O(n)किनारों का पालन किया जा रहा है। तो अभी भी, किनारों की संख्या का पालन किया जाता है(एन2), और बाध्य जोड़े की संख्या द्वारा प्रदान किया जाता है। इस प्रकार मुझे लगता है कि इस एल्गोरिथ्म के लिए सही बाध्यO(n2) हैO(n)o(n2)O(n2)


1
"आम उपपथ के बाद अधिकांश रैखिक-समय पर ऑपरेशन होता है ..." क्या यह सच है? याद रखें कि उपपथ समान नहीं हैं। एक दूसरे की छवि के साथ आगे-पीछे हो सकता है। वास्तव में, यह तब भी स्पष्ट नहीं है, जब आप जानते हैं कि आप कर चुके हैं।
पैट मोरिन

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

@ क्रिसग्रे: हो सकता है, लेकिन जितनी आसानी से आपने सुझाव दिया है उतनी आसानी से नहीं। यदि की छवि एक पेड़ है, तो पुनरावर्ती रूप से सभी स्विचबैक को समाप्त करना अंततः पी को एक बिंदु पर कम कर देता है । PP
जेफ

हां, आप सही हैं, यह विचार काम नहीं करेगा। आपके द्वारा दिया गया सबसे सही आंकड़ा एक बिंदु पर कम हो जाएगा।
क्रिस ग्रे

मैं बाउंटी को समाप्त करने की योजना बना रहा हूं; इस उत्तर के लिए आधे अंक स्वतः प्राप्त हो जाएंगे।
जेफ

2

पैट मॉरिन के सुझाव पर, मोड़ संख्या की गणना करने का मेरा विचार यहां दिया गया है। क्षमा करें यदि यह थोड़ा टेढ़ा है; मैं अभी भी संकेतन राक्षसों से लड़ रहा हूं। इसके अलावा, क्रिस के जवाब में पैट की टिप्पणी से पता चलता है कि मैंने कुछ महत्वपूर्ण पतित मामलों की अनदेखी की है। लेकिन मैं इसे यहाँ वैसे भी पोस्ट करूँगा जब दूसरों को यह उपयोगी लगेगा।

किसी भी सूचकांक के लिए , चलो θ ( पी मैं ) = θ ( पी मैं - 1 , पी मैं , पी मैं + 1 ) निरूपित पर हस्ताक्षर किए बाहरी कोण शिखर पर पी मैं ; यह किरणों के बीच वामावर्त कोण है p i - 1 p i और p i p i + 1 , श्रेणी के लिए सामान्यीकृत - π lock iiθ(pi)=θ(pi1,pi,pi+1)pipi1pipipi+1 । (सभी सूचकांक गणित परोक्ष आधुनिक है n ।) मोड़ नंबर के पी के रूप में परिभाषित किया गया है टी यू आर एन ( पी ) = 1πθiπnP मुझे एक शीर्ष कहते हैंपीमैंएकप्रेरणाहै, तोआंतरिकपर कोणपीमैंके बराबर है0। एक कोण पर बाहरी कोणspiअच्छी तरह से परिभाषित नहीं है; यह या तो हो सकता हैπया-π। आम तौर पर, के मोड़ संख्यापीअच्छी तरह से परिभाषित किया गया है अगर और सिर्फ़ अगरपीनहीं स्पर्स (और कोई बार-बार कोने हैपीमैं=

Turn(P)=12πi=0n1θ(pi).
pipi0θiππPP )। यह साबित करना मुश्किल नहीं है कि टी यू आर एन ( पी ) एक पूर्णांक है यदि यह अच्छी तरह से परिभाषित है; विशेष रूप से, टी यू आर एन ( पी ) = ± 1 अगर पी एक सरल बहुभुज है।pi=pi+1Turn(P)Turn(P)=±1P

अब मान लीजिए फार्म की सैर शामिल पी आर रों आर क्ष , जहां पी क्ष और पथ आर रों पथ का प्रत्यावर्तन है रों आर । तब एस एक प्रेरणा है; कॉल r जड़ की रों । इस मामले में, मुझे परिभाषित पर बाहरी कोण रों इस प्रकार है: ~ θ ( रों ) = π रों nPprsrqpqrssrsrss (लेकिन क्या होगा अगर θ ( पी , आर , क्ष ) = 0 ? पैट का मानना है के रूप में, यह वास्तव में हो सकता है। शायद वहाँ परिभाषित करने के लिए पुनरावर्ती तरह से किसी प्रकार का है ~ θ ( रों )

θ~(s)=πsgnθ(p,r,q)={πif θ(p,r,q)>0πif θ(p,r,q)<0
θ(p,r,q)=0θ~(s) इस मामले में भी, लेकिन मुझे नहीं पता कि यह क्या है।)

अगर दुर्बलता से सरल है, फिर वहाँ एक सरल है n gon के ~ पी मनमाने ढंग से बंद करने के पी ; टीईटी ~ एस के शिखर हो ~ पी के सबसे करीब पी । के रूप में ~ पी दृष्टिकोण पी , पर आंतरिक कोण ~ रों शून्य दृष्टिकोण। यह (की लंबाई पर प्रेरण द्वारा साबित करने के लिए मुश्किल नहीं है आर रों ) कि बाहरी कोण θ ( ~ रों ) दृष्टिकोण ~ θ ( रों )PnP~Ps~P~PP~Ps~rsθ(s~)θ~(s)

If P consists entirely of a walk followed by its reversal, rsr, then the external angles at the spurs r and s are still not well-defined. But in this case, I believe P is weakly simple if and only if the walk rs is non-self-crossing. (There are more complex cases where I cannot define a reasonable modified turning number, in particular, if the polygon wanders back and forth through a single walk. But in all such cases, it appears that the polygon is weakly simple if and only if it is non-self-crossing.)

Otherwise, if we define θ~(pi)=θ(pi) for any non-spur vertex pi, we now have a well-defined turning number Turn~(P)=iθ~(pi)/2π=Turn(P~), which must be ±1 if P is weakly simple.

I'm no longer confident that Turn~(P) can be computed in linear time. The main difficulty is that the walk rs can itself contain spurs. The naive algorithm that finds the root of each spur by brute force actually takes Θ(n2) time in the worst case; consider an n-gon that has a subwalk of length Ω(n) that simply alternates between two points.

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