एक यूक्लिडियन प्लेन (2D) में सन्निहित ग्राफ के लिए सबसे छोटा गैर अन्तर्विभाजक मार्ग


14

ग्राफ़िक्स का सबसे छोटा रास्ता खोजने के लिए आप किस एल्गोरिथ्म का उपयोग करेंगे, जो एक यूक्लिडियन विमान में एम्बेडेड है, जैसे कि पथ में कोई आत्म-चौराहा (एम्बेडिंग में) नहीं होना चाहिए?

उदाहरण के लिए, नीचे दिए गए ग्राफ़ में, आप से जाना चाहते हैं । आम तौर पर, दिक्जस्ट्रा के एल्गोरिथ्म की तरह एक एल्गोरिथ्म एक अनुक्रम का उत्पादन करेगा जैसे:(0,0)(-3,2)

[(0,0)3(0,3)2(1,2)4(-3,2)]=7+2

पूरा ग्राफ:

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

सबसे छोटा रास्ता:

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

सबसे छोटा गैर-अंतर-पथ:

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

हालांकि, इस पथ यूक्लिडियन विमान पर intersects ही है, इसलिए मैं चाहता हूँ एक एल्गोरिथ्म है कि मुझे कम से कम न काटने अनुक्रम देना होगा इस मामले में,:

[(0,0)3(0,3)3(0,6)5(-3,2)]=1 1।

यह रास्ता सबसे छोटे रास्ते से लंबा है, लेकिन यह सबसे छोटा गैर-अंतर-पथ है।

क्या एक (कुशल) एल्गोरिथ्म है जो ऐसा कर सकता है?

टिकज के स्रोत


2
अच्छी समस्या है! (+1)। क्या आप आवेदन या संदर्भ के बारे में कुछ भी कह सकते हैं जहां यह समस्या उत्पन्न होती है? मेरे साथ षड्यंत्र रचा गया। (पुनश्च एक अलग नोट पर: इस पहेली से स्पष्ट तरीका यह देखने के लिए है कि क्या आप प्रत्येक चौराहे के बिंदु के लिए एक नया शीर्ष बिंदु पेश कर सकते हैं, अर्थात, प्रत्येक बिंदु जहां एक किनारे से दूसरे किनारे को पार किया जा सकता है। हालांकि मुझे पता है कि कुछ / कई अनुप्रयोगों के लिए। यह संभव नहीं हो सकता है)।
DW

2
@ यह मुझे बबियू के बीमार शब्द जलने वाले गधे / टट्टू समस्या में सुधार कर रहा है ; आवेदन उसका यूक्लिडियन टीएसपी हेयुरिस्टिक एल्गोरिथ्म है, मुझे बिल्कुल यकीन नहीं है कि वह इसका उपयोग कैसे करना चाहता है, लेकिन मुझे लगता है कि वह जानना चाहता है कि क्या वह दो बिंदुओं के बीच एक रास्ता खोज सकता है, जब वह पहले से ही कई अन्य लोगों से मिल चुका है (यूक्लिडियन टीएसपी का इष्टतम दौरा) गैर-अंतरविरोधी होना)। और हां, यदि आप नए नोड्स को पेश कर सकते हैं, तो यह बहुत अच्छा होगा, लेकिन सवाल यह है कि क्या आप (और तोक आप यूक्लिडियन टीएसपी के लिए नए शहरों को पेश नहीं कर सकते हैं)।
रियलज़ स्लाव

1
मुझे पथ अस्तित्व समस्या को 3SAT में बदलने का प्रयास करने दें। दो रास्तों को पार न करते हुए दो संकेतों को पार करना एक रास्ता बनाना सबसे बड़ी चुनौती लगती है।
जॉन ड्वोरक

1
हां। मैं इस के माध्यम से हल करने का मतलब था SAT।
जॉन ड्वोरक

2
पॉइंट पथों / चक्रों और TSP , tcs.se से इसके संबंध के लिए इसी तरह का प्रश्न पूछा गयाn
vzn

जवाबों:


11

यह भी तय है कि कोई रास्ता मौजूद है या नहीं

किसी भी दिए गए पथ को सत्यापित करना स्पष्ट रूप से संभव है, दिए गए ग्राफ़ में एक मान्य पथ है। इस प्रकार एनपी में बंधी लंबाई की समस्या है, और इसकी सबसेट, किसी भी तरह की समस्या है।

अब, किसी भी पथ की समस्या की एनपी-कठोरता (और इस प्रकार बंधी-बंधाई समस्या) को साबित करने के लिए, आइए इस समस्या के लिए SAT-CNF को कम करें:


वैश्विक संरचना खण्ड के टुकड़ों के स्तंभ से सटे तार के टुकड़ों का एक ग्रिड है। लॉजिक फॉर्मूला संतोषजनक है अगर ग्राफ के माध्यम से एक गैर-प्रतिच्छेद पथ मौजूद है।

पथ के दो टुकड़ों को पार करना असंभव है, लेकिन दो तर्क तारों को पार करना neccessary है। बल्कि, पथ प्रवाह सख्ती से दिया जाता है: एक तार बिंदु दो नोड्स द्वारा दिया जाता है। तार बिंदुओं का क्रम जिसके माध्यम से मार्ग गुजरता है, कमी से मजबूर होता है। लॉजिक का प्रतिनिधित्व किस नोड द्वारा किया जाता है। किसी भी पथ को तब तक चुना जा सकता है जब तक वह सभी तार बिंदुओं से गुजरता है।

इस आरेख में, पथ को लाल वक्र द्वारा दर्शाया गया है और तर्क प्रवाह को काले तारों द्वारा दर्शाया गया है:

बाईं ओर तारों का ग्रिड, दाईं ओर खंड के टुकड़े का स्तंभ।

अब प्रत्येक घटक बनाते हैं।


तारों में तीन टाइल का उपयोग होता है: क्रॉसिंग, शाखा बिंदु और ऊर्ध्वाधर तार। चलो सबसे मुश्किल से शुरू करते हैं:

क्रॉसिंग के पीछे मूल विचार यह है कि प्रत्येक जोड़ी के लिए तार बिंदुओं के लिए एक रास्ता तैयार किया जाए और संभव रास्तों को पर्याप्त रूप से मोड़ें ताकि सभी जोड़े जो एक ही तर्क (संगत पथ) को एक दूसरे को पार करते हैं। बेशक हम सिर्फ दो समानांतर किनारों को प्रतिच्छेद नहीं कह सकते हैं, लेकिन दो पथों को प्रतिच्छेदन बनाने के लिए हम अतिरिक्त क्रम -2 नोड्स को प्रस्तुत कर सकते हैं।

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

उपर्युक्त का चित्रण चित्रण

शाखा बिंदु और ऊर्ध्वाधर तार एक ही काम करते हैं, लेकिन सहसंबंध के लिए बहुत कम रास्ते हैं:

यहां दो जोड़ी रास्ते पर्याप्त हैं।  तार अनिवार्य रूप से नष्ट शाखा के साथ एक शाखा बिंदु है

¬¬बी

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

अलग-अलग तरीके से रीडिंग वायर को ब्रांच करके AND और गेट्स के मनमाने पेड़ को एनकोड करने के लिए इस कमी को सामान्य करना संभव है। विशेष रूप से, SAT-CNF और SAT-DNF दोनों संभव है कि ऊपर बताए गए तरीके से गैर-अन्तर्विभाजक पथ समस्या को कम किया जा सके।


वाह, अच्छा किया यार। मैंने अभी तक इसकी समीक्षा नहीं की है, लेकिन आपने जो काम किया है वह अद्भुत है।
रियलज़ स्लाव

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

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

यह सुनिश्चित करना कि रीडिंग वायर में सभी पथ एक-दूसरे को पार करना आसान है - यदि आप सुनिश्चित होना चाहते हैं, तो बस एन रास्तों को शाखा दें, फिर तुरंत उन सभी को पार करें। मुझे लगता है कि यह कभी भी उपयोगी नहीं है।
जॉन ड्वोरक

1
मैंने वैश्विक संरचना के लिए ओपनऑफिस ड्रा, और बाकी के लिए [yEd] (www.yworks.com/products/yed) का उपयोग किया। क्या मुझे इसे (साथ <sub>) संपादित करना चाहिए ?
जॉन ड्वोरक

-1

समस्या Turan 1944 के लिए आज की तारीख में प्रतीत होती है। यह सिद्धांत और एल्गोरिदम का एक अच्छा सर्वेक्षण, ग्राफ़ की क्रॉसिंग संख्या: थ्योरी और म्यूटेल द्वारा गणना की तरह दिखता है। विकिपीडिया में रेखांकन की संख्या के पार कुछ जानकारी है


1
शायद यह एक टिप्पणी के रूप में बेहतर है?
जूहो

यह वैज्ञानिक रूप से मूल प्रश्न का उत्तर देता है "आप किस एल्गोरिथ्म का उपयोग करेंगे"
vzn

1
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो यहां उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
जॉन ड्वोरक

जैन स्टैटेक्सचेंज मेटा से एक रेफरी का हवाला देते हैं। जबकि एक वैध विचार, विज्ञान / गणित में उद्धरण की भूमिका एक प्रोग्रामिंग टिप्स साइट की तुलना में अलग है .... [माना जाता है कि वर्तमान में रेफरी मेरे लिए अधिक विस्तृत उत्तर के लिए उपलब्ध नहीं है] .. वैसे भी यह कुछ हद तक संभव है jans निर्माण, जबकि उपयोगी / सार्थक, पहले से ही साहित्य और विज्ञान में है, मानक प्रक्रिया के अपने हिस्से / सर्वोत्तम प्रथाओं के लिए [इसे खोजने का प्रयास] ....
vzn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.