विमान में त्रिकोण सीखना


13

मैं अपने छात्रों को एक त्रिकोण का एक संग्रह के अनुरूप खोजने की समस्या सौंपा में अंक , के साथ लेबल \ PM1 । (ए त्रिकोण टी है सुसंगत लेबल नमूने के साथ करता है, तो टी सकारात्मक और नकारात्मक अंक में से कोई भी के सभी शामिल हैं; धारणा के द्वारा, नमूना मानते हैं कम से कम 1 संगत त्रिकोण)।आर 2 ± 1 टीmR2±1TT

सबसे अच्छा वे (या मैं) एक एल्गोरिथ्म है जो ओ (एम ^ 6) समय में चलता है O(m6), जहां m नमूना आकार है। क्या कोई बेहतर कर सकता है?


बस स्पष्ट होने के लिए: त्रिकोण के कोने को संग्रह के अंक होने की आवश्यकता नहीं है, है ना? और सीमा पर नकारात्मक अंक होना स्वीकार्य है?
ex0du5

(1) मैंने प्रश्न को बंद करने के लिए मतदान किया था क्योंकि मैंने समस्या को गलत समझा था। सिस्टम मुझे अपना वोट रद्द करने की अनुमति नहीं देता है, लेकिन मैं वस्तुतः इसे रद्द कर देता हूं। (2) मुझे लगता है कि एक O (m log m) -टाइम एल्गोरिथ्म है, लेकिन अभी इसे सत्यापित करने का समय नहीं है। यह विचार सकारात्मक उदाहरणों के उत्तल पतवार की गणना करने और वांछित त्रिकोण बनाने वाली तीन पंक्तियों को खोजने के लिए इस उत्तल हल के चारों ओर स्वीप करना है।
त्सुयोशी इतो

@ ex0du5 - वास्तव में, त्रिभुज के कोने को नमूना बिंदुओं से युक्त नहीं होना चाहिए। सीमा संबंधी मुद्दों के लिए, इन्हें यहाँ अनदेखा किया जा सकता है क्योंकि ये अपर्याप्त हैं। [यदि सीमा त्रिकोण के हिस्से के रूप में गिना जाता है, तो आपके पास सीमा पर नकारात्मक अंक नहीं होंगे।]
आर्येह

@TsuyoshiIto: मैं भी इसी तरह से सोच रहा था, लेकिन ऐसे मामले हैं जहां आप त्रिकोण के किनारों को उत्तल पतवार के किनारों से नहीं जोड़ सकते हैं, लेकिन एक त्रिकोण अभी भी मौजूद है। त्रिकोण में अभी भी स्पष्ट रूप से उत्तल पतवार शामिल है, लेकिन यह सिर्फ पतवार की पंक्तियों का विस्तार नहीं कर रहा है और त्रिकोण का पता लगा रहा है। आपको नकारात्मक बिंदुओं से बचने के लिए कुछ रेखाओं के चारों ओर घुमाई जाने वाली रेखाओं की आवश्यकता हो सकती है। यही कारण है कि मैंने सीमा पर नकारात्मक के बारे में पूछा था, एक खोज एल्गोरिथ्म की अनुमति देने के लिए जिसने पतवार के कोने से लाइनों को चुना था ताकि यह असतत खोज रखने के लिए नकारात्मक हो।
ex0du5

@ ex0du5: खैर, मैंने यह नहीं माना कि त्रिकोण के किनारे सकारात्मक उदाहरणों के उत्तल पतवार के कुछ किनारों के समानांतर हैं।
त्सुयोशी इतो

जवाबों:


14

जैसा कि @TsuyoshiIto सुझाव देता है, इस समस्या के लिए एडेल्सब्रनर और तेयाटा के कारण, एक -टाइम एल्गोरिथ्म है। वास्तव में, उनके एल्गोरिथ्म को एक उत्तल बहुभुज मिलता है जिसमें न्यूनतम संभव संख्या में किनारों होते हैं जो दो बिंदु सेट को अलग करते हैं। वे बीजगणितीय निर्णय ट्री मॉडल में अधिक सामान्य समस्या के लिए एक निचली सीमा को भी प्रमाणित करते हैं ; हालाँकि, यह स्पष्ट नहीं है कि यह निचली सीमा त्रिकोण मामले पर लागू होती है या नहीं।Ω ( एन लॉग एन )O(nlogn)Ω(nlogn)

एल्गोरिथ्म का पूरा विवरण यहां पोस्ट करने के लिए बहुत लंबा है, लेकिन यहां मूल विचार है। चलो सकारात्मक अंक के उत्तल पतवार हो। प्रत्येक नकारात्मक बिंदु के लिए , के माध्यम से लाइनों पर विचार कि करने के लिए स्पर्श कर रहे हैं । इन पंक्तियों ने विमान को चार वेजेज में विभाजित किया, जिनमें से एक में शामिल ; बता दें कि उस विपरीत पच्चर होता जिसमें होता । अंत में, ("निषिद्ध क्षेत्र") को सभी wedges का मिलन मान लें । किसी भी अलग त्रिकोण को को से अलग करना होगा । और दोनोंq q C C W ( q ) C F W ( q ) C F C F O ( n log n )CqqCCW(q)CFW(q)CFCF समय में निर्माण किया जा सकता है ।O(nlogn)

$ C $ और $ F $ का उदाहरण

वैकल्पिक रूप से दक्षिणावर्त और वामावर्त के के किनारों को लेबल करें । एडेल्सब्रनर और प्रिपेटा आगे साबित करते हैं कि यदि एक अलग त्रिकोण मौजूद है, तो एक अलग त्रिकोण है जिसके किनारों को दक्षिणावर्त किनारों के साथ मिलाया जाता है । में के लिए अतिरिक्त समय, हम (जरूरी दक्षिणावर्त) के किनारे पा सकते हैं से प्रत्येक घड़ी की बढ़त एक किरण से पहली हिट ; इस बढ़त को का "उत्तराधिकारी" कहें । उत्तराधिकारी संकेत दक्षिणावर्त किनारों को चक्रों में विभाजित करते हैं; यदि कोई अलग-अलग त्रिभुज है, तो इनमें से एक चक्र की लंबाई 3 है (और लंबाई 4 से अधिक नहीं है)।एफ ( एन ) एफ FFO(n)Fee

अधिक जानकारी के लिए मूल पेपर देखें:


3

मुझे ऐसा लगता है कि यह '+1' अंक के '+1' अंक से स्पर्शरेखा रेखाओं पर विचार करने के लिए पर्याप्त है, जो कि '+1' बिंदुओं के उत्तल तिराहे पर के किनारों के लिए उम्मीदवार हैं ( मान लीजिए कि '+1' अंक आंतरिक होंगे को )।टीTT

बहुत बुरा, मैं यहाँ चित्र प्रकाशित नहीं कर सकता। लेकिन यह चित्र: उत्तल पतवार की स्पर्शरेखा है जो कुछ '-1' बिंदु से होकर जाती है। स्पर्शरेखा बिंदु है। पर चरम (नीचे देखें) बिंदु , और बिंदु ( स्पर्शरेखा बिंदु) से स्पर्शरेखा रेखा है ।बी टी बी सी बी सीtABtBCBC

तो, एल्गोरिथ्म निम्नलिखित है। स्पर्श रेखाओं की प्रत्येक पंक्ति के लिए हम इसके आधार पर एक त्रिभुज बनाने की कोशिश कर सकते हैं:t

  1. अन्य सभी लाइनों के साथ के चौराहे के बिंदुओं की गणना करें ;t
  2. एक चरम (से दूर खोजें ) बिंदु और इसी लाइन से सही करने के लिए (या बाएं) , जैसे कि psuedotriangle (= , और के बीच उत्तल पतवार का हिस्सा और ) नहीं करता' t में '-1' अंक होते हैं (अर्थात इसमें कोई अंक नहीं होते हैं)।बी टी ' एक एक बी सी बी बी सी सीABtAABCABBCAC
  3. रेखा साथ भी यही करें और देखें कि क्या हम त्रिभुज को 'बंद' कर सकते हैं।t

ऐसा लगता है कि यह एक रनिंग टाइम होगा। शायद कुछ डेटा संरचनाओं का उपयोग करके इसमें सुधार किया जा सकता है?O(m2)

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