-clustering समस्या के लिए इष्टतम लालची -प्रतिरोधी एल्गोरिथ्म का रनटाइम


16

हमें एक सेट 2-आयामी अंक दिए गए हैं और एक पूर्णांक । हमें सर्किलों का एक संग्रह खोजना होगा जो सभी पॉइंट्स को घेरता है जैसे कि सबसे बड़े सर्कल का त्रिज्या जितना संभव हो उतना छोटा है। दूसरे शब्दों में, हम एक सेट खोजने होंगे की सेंटर अंक ऐसा है कि लागत समारोह को कम से कम किया जाता है। यहाँ, डी एक इनपुट बिंदु p_i और एक केंद्र बिंदु c_j के बीच यूक्लिडियन दूरी को दर्शाता है । प्रत्येक बिंदु कश्मीर में कोने को समूहीकृत करने वाले निकटतम क्लस्टर केंद्र को स्वयं निर्दिष्ट करता हैk k n C = { c 1 , c 2 , , c k } k cost ( C ) = अधिकतम i min j D ( p i , c j ) D p i c j k|P|=nkknC={c1,c2,,ck}kcost(C)=maximinjD(pi,cj)Dpicjk विभिन्न समूहों।

समस्या को (असतत) k -clustering समस्या के रूप में जाना जाता है और यह NP -hard है। यह NP -complete प्रभुत्व सेट समस्या से कमी के साथ दिखाया जा सकता है कि यदि \ rho <2 के साथ समस्या के लिए ρ -approximation एल्गोरिथ्म मौजूद है तो \ text {P} = \ text {NP}ρ<2P=NP

इष्टतम 2 -approximation एल्गोरिथ्म बहुत सरल और सहज है। एक पहले मनमाने ढंग से P में एक बिंदु p \ _ चुनता है pPऔर इसे क्लस्टर केंद्रों के सेट C में डालता है C। फिर एक अगला क्लस्टर केंद्र चुनता है जो अन्य सभी क्लस्टर केंद्रों से यथासंभव दूर है। तो जबकि |C|<k , हम बार-बार P में एक बिंदु j \ _ ढूंढते हैंjP , जिसके लिए D (j, C) की दूरी D(j,C)अधिकतम है और इसे C में जोड़ें C। एक बार |C|=k हम कर रहे हैं।

यह देखना मुश्किल नहीं है कि इष्टतम लालची एल्गोरिथ्म O(nk) समय में चलता है । यह एक प्रश्न उठाता है: क्या हम o(nk) समय प्राप्त कर सकते हैं ? हम कितना बेहतर कर सकते हैं?

जवाबों:


7

इस समस्या को वास्तव में ज्यामितीय रूप से देखा जा सकता है कि हम k गेंदों द्वारा V बिंदुओं को कवर करना चाहते हैं , जहां सबसे बड़ी गेंद की त्रिज्या को कम से कम किया जाता है।k

O(nk) वास्तव में प्राप्त करने के लिए काफी सरल है लेकिन एक बेहतर कर सकता है। फेडर और ग्रीन, अनुमानित क्लस्टरिंग के लिए इष्टतम एल्गोरिदम, 1988 अधिक चालाक डेटा संरचनाओं का उपयोग करके चल रहे समय को प्राप्त करते हैं और आगे बताते हैं कि यह बीजीय निर्णय ट्री मॉडल में इष्टतम है।Θ(nlogk)


1

मेरा प्रश्न: क्या कोई तरीका है जिससे मैं लालची उठा रणनीति में चला सकता हूं ?o(|V|2)

यह मुझे लगता है कि आपने इसका वर्णन किया है। यदि मैं आपके वर्णन में बहुत दूर पढ़ता हूं, तो यहां मुझे समझ में आया है। तत्वों के लिए दूरी के योग के साथ प्रत्येक तत्व को हुए एक सहयोगी डेटा संरचना है । इस डेटा संरचना को की दूरी पर शुरू किया जा सकता है और यह इनिशियलाइज़ेशन जटिलता को बढ़ाए बिना साइड इफेक्ट के रूप में अगले तत्व का उत्पादन कर सकता है। की लागत पर एक नए तत्व के चयन के बाद इसे अपडेट किया जा सकता है , फिर से अगले तत्व को साइड इफेक्ट के रूप में उत्पादित किया जा सकता है। पाने के लिए दोहराएं । परिणामी जटिलता ।VSO(|V|)pO(|V|)SO(k|V|)


1
लेकिन पर बाउंड नोट करें : सबसे खराब स्थिति में यह जितना बड़ा हो सकता है | वी | । मुझे संदेह है कि डेटा संरचनाएं हैं जो बेहतर सीमाएं भी प्राप्त करती हैं, लेकिन मुझे वास्तव में पता नहीं है। k|V|
जुहो

ओह, और नहीं हे अपने प्रश्न में। (ध्यान दें कि आपके प्रश्न में आप k 3 पर वापस हैं , इसलिए यह एक सुधार होना चाहिए)। जो मैं प्रस्तावित करता हूं वह इस तथ्य का उपयोग नहीं करता है कि आप यूक्लिडियन स्पेस में काम कर रहे हैं, मुझे लगता है कि आपको इसे बेहतर करने के लिए उपयोग करना होगा, लेकिन वर्तमान में मैं नहीं देखता कि कैसे। oOk3
एपीग्रामग्राम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.