2012-12-13 12 views
7

के लिए एक प्रतिनिधि का मतलब आंतरिक बिंदु ढूँढना मैं सी ++ में एक यात्रा विक्रेता समस्या को हल करने की कोशिश कर रहा हूं, लेकिन मुझे बिंदुओं के सेट के बजाय पॉयल्गन्स के सेट के बीच सबसे छोटी दूरी को पार करना होगा। ऐसा करने के लिए, मैं एक प्रतिनिधि "मतलब" इंटीरियर प्वाइंट द्वारा प्रत्येक बहुभुज का प्रतिनिधित्व करने की कोशिश कर रहा हूं ताकि मैं इन आंतरिक आंतरिक बिंदुओं पर एक टीएसपी कर सकूं।एक गैर-उत्तल बहुभुज

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

इस पर सहायता करें? धन्यवाद। :-)

+0

आप अपने बहुभुजों का प्रतिनिधित्व कैसे करते हैं? मैंने टैग 'एल्गोरिदम' जोड़ा है क्योंकि यह मूल रूप से एल्गोरिदमिक समस्या है। आप किस तरह की जटिलता का जोखिम उठा सकते हैं? –

+0

'माध्य आंतरिक' बिंदु की आपकी परिभाषा क्या होगी? – Xyand

+1

इसे एक आंतरिक बिंदु क्यों होना चाहिए? मैं कल्पना करता हूं कि आप या तो _approximation_ खोजना चाहते हैं, इस मामले में मुझे समझ में नहीं आता कि इंटीरियर क्यों सुरक्षित है। या सामान्य रूप से _shortest path_, इस मामले में मैं औसत प्रतिनिधियों का उपयोग नहीं करता, लेकिन बहुभुज से छुटकारा पाता हूं और समस्या को सीधे टीएसपी में बदल देता हूं। – Fiktik

उत्तर

3

के बारे में कैसे:

  1. त्रिकोणाकार बहुभुज (क्रम एन लॉग (एन)) त्रिकोण सबसे बड़ा क्षेत्र के साथ
  2. पिक (माना) (क्रम एन)
  3. अपनी बात है कि त्रिकोण के केन्द्रक में उठाओ । (स्थिरांक)

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

1

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

बीटीडब्ल्यू मुझे लगता है कि एक उत्तल बहुभुज के बिंदु केंद्र को खोजने का उचित तरीका चेबिश्हेव केंद्र ढूंढना है और यह एक रैखिक प्रणाली को हल करने के अनुरूप है जिसे आप CGAL का उपयोग करके भी कर सकते हैं। एक उत्तल बहुभुज के चेबिशेव केंद्र को खोजने के लिए रैखिक प्रोग्रामिंग समस्या Boyd book में अच्छी तरह परिभाषित है।