2011-03-28 11 views
6

कुछ इनपुट देखते हुए, जिसमें बाएं और दाएं प्रतीक होते हैं, आउटपुट चेन जो इनपुट को लिंक करते हैं।डोमिनोज़ मिलान एल्गोरिदम

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

अधिक परिपत्र श्रृंखलाओं के साथ आउटपुट (चाहे कितने या श्रृंखला की लंबाई) हम जो खोज रहे हैं। उदाहरण के लिए, 3 गोलाकार श्रृंखलाओं का उत्पादन 1 बड़ी श्रृंखला और एक बचे हुए एकल डोमिनोज़ से बेहतर है।

क्या कोई मुझे सही दिशा में इंगित कर सकता है? यह किस समस्या का समूह है और यह हल करने के लिए मौजूदा एल्गोरिदम हैं?

उदाहरण (आउटपुट गलत हो सकता है!):

in[0]=(A,B) 
in[1]=(B,C) 
in[2]=(C,A) 
out[0]=(0,1,2) 

in[0]=(A,B) 
in[1]=(B,A) 
in[2]=(C,D) 
in[3]=(D,C) 
out[0]=(0,1) 
out[1]=(2,3) 

in[0]=(A,B) 
in[1]=(B,A) 
in[2]=(C,D) 
in[3]=(E,F) 
out[0]=(0,1) 
out[1]=(2) 
out[2]=(3) 

in[0]=(A,B) 
in[1]=(B,A) 
in[2]=(C,D) 
in[3]=(D,E) 
out[0]=(0,1) 
out[1]=(2,3) 

in[0]=(A,B) 
in[1]=(B,C) 
in[2]=(C,D) 
out[0]=(0,1,2) 
+0

@Lieven सुधार के लिए धन्यवाद। – zaf

+0

इसका जिक्र नहीं है लेकिन मुझे इसका जवाब पता होना चाहिए। मैं खुद ग्राफ के संदर्भ में सोच रहा था लेकिन यह एक ऐसा क्षेत्र है जहां मेरे कौशल में गंभीरता से कमी है। Http://www.amazon.co.uk/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693/ref=sr_1_1?s=books&ie=UTF8&qid=1301312087&sr=1-1 पढ़कर स्वयं को बेहतर बनाने की कोशिश कर रहा हूं। यदि आप, मेरे जैसे, मेरे पास पर्याप्त गणितीय पृष्ठभूमि नहीं है, तो मैं अत्यधिक अनुशंसा कर सकता हूं। –

+1

@ लिवन ​​अरे! मेरे पास एक मजबूत गणितीय पृष्ठभूमि है। मैंने अभी पर्याप्त डोमिनोज़ नहीं खेला है :) – zaf

उत्तर

1

समस्या यह अब के रूप में स्पष्ट रूप से के रूप में यह हो सकता है कहा गया है नहीं है के रूप में - कैसे वास्तव में समाधान मूल्यांकन कर रहे हैं? सबसे महत्वपूर्ण मानदंड क्या है? क्या यह सबसे लंबी श्रृंखला की लंबाई है? क्या लंबाई की श्रृंखला बनाने के लिए कोई जुर्माना है?

संरचनाओं को ग्राफ के रूप में देखने के लिए ऐसी समस्याओं में अक्सर मददगार होता है - कहें, प्रत्येक टाइल पर एक वर्टेक्स (वी [i]) असाइन करें। फिर प्रत्येक I के लिए, जे वर्टिसेस वी [i], वी [जे] के बीच एक किनारा बनाते हैं यदि आप वी [i] को एक श्रृंखला में वी [जे] के बाईं ओर रख सकते हैं (इसलिए यदि वी [i] से मेल खाता है (एक्स , ए) फिर वी [जे] कुछ एक्स, वाई, ए के लिए (ए, वाई) से मेल खाता है।

ऐसी ग्राफ श्रृंखला में पथ हैं, चक्र बंद हैं ("परिपत्र") चेन और ग्राफ के लिए कुछ चक्र और/या पथ को कवर करने के लिए समस्या को कम कर दिया गया है। इस प्रकार की समस्याओं को अक्सर मिलान या * -फ्लो समस्याओं (अधिकतम प्रवाह, अधिकतम लागत-अधिकतम प्रवाह, न्यूनतम लागत-अधिकतम प्रवाह या आपके पास) में कम किया जा सकता है।

लेकिन इससे पहले कि आप आगे कम कर सकें, आपको सटीक नियम स्थापित करना होगा जिसके अनुसार एक समाधान दूसरे की तुलना में "बेहतर" होने के लिए निर्धारित किया गया है।

+0

मैंने और अधिक जानकारी छोड़ दी है। सबसे महत्वपूर्ण मानदंड एकल डोमिनोज़ को कम करने के लिए है। यह पूरी तरह से स्पष्ट नहीं है कि आप क्या सुझाव दे रहे हैं लेकिन मुझे कोई समस्या है या नहीं, यह देखने के लिए प्रवाह की समस्याएं देखेंगे। धन्यवाद। – zaf

0

यह जांचना आसान है कि सभी डोमिनोज़ युक्त एक गोलाकार श्रृंखला मौजूद है या नहीं। सबसे पहले आप निम्नलिखित निर्देशित ग्राफ जी बनाने की जरूरत है:

जी की
  • नोड्स अपने उदाहरण में डोमिनो (ए, बी, सी ..) पर प्रतीक हैं,
  • प्रत्येक डोमिनो के लिए (ए, बी) आप बी करने के लिए एक से एक निर्देशित किनारे डाल

मौजूद है एक परिपत्र iff वहाँ जी में एक Eulerian cycle मौजूद है वहाँ जी में Eulerian चक्र मौजूद है या नहीं यह मौसम की जांच करने प्रत्येक नोड है पर्याप्त है की जांच करने के सभी डोमिनो से मिलकर श्रृंखला यहां तक ​​कि डिग्री भी।

+0

धन्यवाद। ऐसा लगता है कि मुझे और पढ़ना है। – zaf

0

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

+0

सरल विचार और क्रमपरिवर्तन लीड के लिए धन्यवाद। – zaf

4

डोमिनोज़ जिन्हें क्षैतिज == निर्देशित ग्राफ़ फ़्लिप नहीं किया जा सकता है।

डोमिनोज़ को दूसरे के बाद एक "पथ" कहा जाता है, यदि यह एक बंद पथ है, तो यह एक सर्किट है।

एक सर्किट जिसमें ग्राफ़ के सभी कोष्ठक शामिल हैं, हैमिल्टनियन सर्किट है।

ग्राफ़ सिद्धांत शर्तों में आपकी समस्या यह है: हैमिल्टनियन सर्किट वाले कम से कम उपग्राफों में अपने ग्राफ को विभाजित (विघटन) कैसे करें। (ए.के.ए. हैमिल्टनियन ग्राफ)

+0

टिप के लिए धन्यवाद। मैं हैमिल्टनियन सामान की जांच कर दूंगा। – zaf

संबंधित मुद्दे