यह साबित करने का आसान तरीका है कि यह एल्गोरिथम अंततः समाप्त हो गया


10

परिचय और सूचनाएं:

यहाँ मेरे एल्गोरिथ्म का एक नया और सरल संस्करण है जो समाप्त होता है (मेरे प्रयोगों के अनुसार), और अब मैं यह साबित करना चाहूंगा।

अंकन करते एक्स मैंआर पीxiRp एक का उल्लेख पीp आयामी डेटा बिंदु (एक सदिश)। मेरे पास तीन सेट हैं A, B और C, जैसे कि | | = एन|A|=n , | B | = एम|B|=m , | सी | = l|C|=l : A = { x i | मैं = 1 , , n }

A={xi|i=1,..,n}
B = { x j | j = n + ,, एन + मी }
B={xj|j=n+1,..,n+m}
C = { x u | यू = n + मीटर + 1 , , n + m + l }
C={xu|u=n+m+1,..,n+m+l}

यह देखते हुए कश्मीर एन *kN , चलो एक एक्स मैंdAxi से मतलब इयूक्लिडियन दूरी निरूपित एक्स मैंxi इसके लिए कश्मीरk अंक निकटतम में एकA ; और d C x idCxi का अर्थ x i से यूक्लिडियन दूरी हैxi इसके लिए कश्मीर में अंक निकटतम सीkC

कलन विधि:

मेरे पास निम्न एल्गोरिथम है जो कुछ चुने हुए तत्वों को ए से बी और विज़ वर्सा में ले जाकर सेट ए और बी को संशोधित करता है, और सी हमेशा एक ही रहता है (परिवर्तन नहीं होता है)। यह आसान करने के लिए: एल्गोरिथ्म के उद्देश्य बेहतर सेट अलग करने के लिए है एक और बी इस तरह के "के अंक कि बी अधिक एक ज्ञात तय सेट के समान ही हैं सी और" "के अंक एक अंत में स्व-समान होते हैं और C और अंतिम सेट B के उन लोगों से आगे : "ABBCACB

  • एक ' = { x मैं| एक एक्स मैं > सी एक्स मैं } ... (1)A={xiAdAxi>dCxi}
  • एक = एक एक ' ; बी = बी ... (2)A=AAB=BA
  • बी ' = { x मैंबी | एक एक्स मैं < सी x मैं } ... (3)B={xiBdAxi<dCxi
  • बी = बी बी ' ; एक = एक बी 'B=BBA=AB ... (4)
  • दोहराएँ (1), (2), (3), और (4) जब तक: (से कोई तत्व चाल एक करने के लिए बी या से बी करने के लिए एक , कि एक है 'और बी' खाली हो जाते हैं) या ( | एक |कश्मीर या | बी |कश्मीर )ABBA|A|k|B|k

एल्गोरिथ्म दो मामलों में समाप्त होता है:

  • कब | | या | B | से कम या k के बराबर हो जाता है|A||B|k
  • या सबसे मानक मामले में, जब एक ' = बी ' = , जिसका अर्थ है कि ए और बी के बीच कोई अधिक तत्वों चालA=B=

सवाल:

यह कैसे साबित करें कि यह एल्गोरिथ्म अंततः समाप्त हो गया? मुझे एक सुविधाजनक संभावित फ़ंक्शन नहीं मिला, जिसे एल्गोरिथ्म द्वारा कड़ाई से कम या अधिकतम किया जा सकता है। मैं असफल कुछ कार्यों की कोशिश की है: समारोह Σ एक्स डी सी एक्स + Σ एक्स बी डी एक्स लेकिन यह प्रत्येक यात्रा पर बढ़ती नहीं है। समारोह Σ एक्स एकएक एक्स + Σ एक्स बी डी सी एक्स लेकिन यह प्रत्येक यात्रा पर कम नहीं है। समारोह Σ एक्स xAdCx+xBdAxxAdAx+xBdCx d A x + Σ एक्स बी डी बी एक्स प्रत्येक यात्रा पर घटता हुआ नहीं लगता है। समारोह Σ एक्स डी बी एक्स + Σ एक्स बी डी एक्स प्रत्येक यात्रा पर वृद्धि होना नहीं लगता है। तो क्या सुविधाजनक संभावित कार्य है जो प्रत्येक पुनरावृत्ति में वृद्धि या कमी के लिए दिखाया जा सकता है? या हमें यह दिखाना चाहिए कि फ़ंक्शन घटता है लेकिन प्रत्येक पुनरावृत्ति पर नहीं (कुछ पुनरावृत्तियों के बाद)? कैसे ?xAdAx+xBdBxxAdBx+xBdAx

टिप्पणियाँ:

  • कश्मीर को अंक निकटतम एक्स एक सेट में एस , साधन: कश्मीर अंक (से दूसरों एक्स ) में एस , छोटी इयूक्लिडियन दूरी होने एक्स । विश्लेषण को सरल बनाने के लिए आप सिर्फ k = 1 ले सकते हैं ।kxSkxSxk=1
  • मैं अगर यह मदद या नहीं हो सकता है पता नहीं है, लेकिन मैं अपने प्रारंभिक सेट के लिए निम्नलिखित संपत्ति है एक , बी , सी : शुरू में एक्स मैंबी , एक्स जे , अगर एक्स सी निकटतम करने के लिए बिंदु है एक्स मैं और एक्स एकसी के सबसे नजदीक बिंदु है एक्स जे तो हमेशा d मैं एस टी एक n ( एक्स मैं , एक्स <A,B,CxiB,xjAxbCxixaCxj )मैं s t a n c e ( x j , x a ) । यह सहज रूप से इसका अर्थ है कि B मेंअंक A की तुलना में C के करीब हैं।distance(xi,xb)<distance(xj,xa)BCA
  • यदि यह विश्लेषण को आसान बनाता है: यह एल्गोरिथ्म के थोड़ा अलग संस्करण पर विचार करना पूरी तरह से संभव है, जहां जैसे ही से एक बिंदु को बी में ले जाया जाना चाहिए , इसे से बी ( द्वारा पास किए बिना ) में ले जाया जाता है , और B के लिए विज़ वर्सा ।ABABAB

3
आप इस विशेष एल्गोरिथ्म में क्यों रुचि रखते हैं?

1
shna: यह क्या है कि आप तीन सेटों में मनमाने ढंग से विभाजित अंकों के संग्रह के साथ करना चाहते हैं?

4
@shna एल्गोरिथ्म के उद्देश्य और लक्ष्य को जानने से बेहतर अंतर्ज्ञान हो सकता है, और इसलिए समस्या की मदद की जा सकती है।

@RichardRast स्पष्टीकरण सरल बनाने के लिए: उद्देश्य बेहतर सेट अलग करने के लिए है एक और बी इस तरह के "के अंक कि बी अधिक एक ज्ञात तय सेट के समान ही हैं सी और" के अंक " एक अंत में स्व-समान होते हैं और C और अंतिम सेट B के उन लोगों से दूर ”। ABBCACB
शॉन

Cstheory में प्रवासन में गिरावट आई थी।

जवाबों:


2

यहाँ केस के लिए समाधान है k = 1 :k=1

मान लें कि एल्गोरिथ्म समाप्त नहीं होता है। चूंकि एल्गोरिथ्म के राज्यों ( और बी के बिंदुओं के असाइनमेंट) की एक सीमित संख्या है , एल्गोरिथ्म राज्य को एक चक्र में दोहराना होगा। चूंकि चक्र विभिन्न राज्यों से गुजरता है, इसलिए एक बिंदु होना चाहिए जो और बी के बीच अक्सर असीम रूप से स्विच करता है ।ABAB

मान लीजिए कि x एक ऐसा बिंदु है जो इस चक्र में अक्सर बदल जाता है। चक्र के भीतर एल्गोरिथ्म का पहला पुनरावृत्ति चुनें, जिसके दौरान एक्स बी से ए पर स्विच करता है । के लिए एक्स के लिए स्विच करने के लिए एक , वहाँ कम से कम एक बिंदु रहा होगा एक्स ' में एक साथ, सी एक्स > मैं रों टी ( एक्स , एक्स ' ) । मनमाने ढंग से सबसे छोटे-लेबल वाले ऐसे बिंदु को चुनें; परिभाषित एक समारोह ताकि ( एक्स ) एक्सxxBAxAxAdCx>dist(x,x)f = ' । ध्यान दें कि एक्स ' भी बीच स्विच करना होगा एक और बीf(x)=xxAB infinitely often (because if xx stayed in AA permanently, so would xx), so we can take f(f(x)),f(f(f(x))),f(f(x)),f(f(f(x))), etc.

Since we have a finite number of points, the iterates of f must eventually repeat: fn(x)=fm(x)fn(x)=fm(x) for some m>nm>n. Now look at the corresponding sequences of distances from C: dCf(x),dCf2(x),...dCfn(x),...dCf(x),dCf2(x),...dCfn(x),.... Since it repeats, this sequence cannot be uniformly decreasing. There must be an iterate oo such that dCfo1(x)dCfo(x)dCfo1(x)dCfo(x)

Now, fo1(x)fo1(x) and fo(x)fo(x) are close enough to each other to cause each other to be in AA, if one of them is. That is, they're closer to each other than either of them is to CC: dCfo(x)dCfo1(x)>dist(fo1(x),fo(x))dCfo(x)dCfo1(x)>dist(fo1(x),fo(x)) (from definition of f)

So as soon as fo1(x) and fo(x) are both in A, they will keep each other in A forever (see lines 1-2 of the algorithm). This contradicts the fact that all the iterates of f must switch sets infinitely often. Thus, for the case when k=1, the algorithm terminates.


This is somehow complicated and may be shown only for k=1. Rather, it is much better if we can derive a potential function which can be shown to be increasing or decreasing at each iteration. Or a that can be shown to be increasing or decreasing after "some" iterations rather than 1.
shn

1
@shn I'm not sure why you're criticizing the choice of proof technique of somebody who's been more successful at solving your problem than you have. Especially when your own question lists four failed attempts at using your preferred technique.
David Richerby

1
@DavidRicherby I'm not criticizing ;) I actually discussed about that solution with "causative" (who gave this answer) on IRC and we found that it will not be possible to prove it this way for k>1; so we deduced that it is much better if we can derive a potential function which can be shown to be decrease at each iteration. My comment was just informative.
shn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.