วิธีง่ายๆในการพิสูจน์ว่าอัลกอริทึมนี้สิ้นสุดลงในที่สุด


10

บทนำและสัญลักษณ์:

นี่คืออัลกอริทึมใหม่และเรียบง่ายของฉันซึ่งดูเหมือนว่าจะยุติ (ตามการทดลองของฉัน) และตอนนี้ฉันอยากจะพิสูจน์มัน

ปล่อยสัญกรณ์อ้างถึงจุดข้อมูลมิติ (เวกเตอร์) ฉันมีสามชุด A, B และ C เช่นนั้น , , : x iR pxผมRพี p พี| A | = n | A | =n| B | = m | B | =m| C | = l | | =lA = { x i | ฉัน= 1 , . , n }

A = { xผม| ฉัน=1, . ,n}
B = { x j | J = n + 1 , . , n + m }
B = { xJ| J=n+1, . ,n+m}
C = { x u |U = n + M + 1 , . , n + m + l }
= { xยู| U=n+M+1, . ,n+m+l}

ให้ , ให้แสดงถึงระยะทางแบบยุคลิดเฉลี่ยจากถึงอยู่ใกล้ที่สุดในจุด ; และหมายถึงระยะทางยุคลิดเฉลี่ยจากไปของที่ใกล้ที่สุดจุดCk N k N* * * * d A x idAxผม x ixผม k kA Ad C x idxผม x ixผม k kC

ขั้นตอนวิธีการ:

ฉันมีอัลกอริทึมต่อไปนี้ซึ่งแก้ไขชุด A และ B ซ้ำ ๆ โดยการย้ายองค์ประกอบบางอย่างที่เลือกจาก A ไป B และในทางกลับกันและ C ยังคงเหมือนเดิมเสมอ (ไม่เปลี่ยนแปลง) ที่จะทำให้มันง่าย: วัตถุประสงค์ของขั้นตอนวิธีคือการที่ดีกว่าแยกชุดและดังกล่าวว่า "จุดของมีความคล้ายคลึงกับที่รู้จักกันคงชุด " และ "จุดของเป็นที่สุดด้วยตนเองที่คล้ายกันและ ยิ่งห่างจากตัวและเซตสุดท้าย ":A AB BB BC A AC BB

  • A = { x iA d A x i > d C x i }A'= { xผมA dAxผม> dxผม} ... (1)
  • A = A A A = A A' ; ... (2)B = B A B = B A'
  • B = { x iB d A x i < d C x iB'= { xผมB dAxผม<dxผม } ... (3)
  • B = B B A = A B B = B B' ; ... (4)A = A B'
  • ทำซ้ำ (1), (2), (3) และ (4) จนกระทั่ง: (ไม่มีอิลิเมนต์ย้ายจากไปหรือจากถึงนั่นคือ A 'และ B' ว่างเปล่า) หรือ (หรือ )A B B A | A | k | B | kABBA| A | k| B | k

อัลกอริทึมสิ้นสุดลงในสองกรณี:

  • เมื่อหรือกลายเป็นน้อยกว่าหรือเท่ากับ| A | | B | k| A || B |k
  • หรือกรณีมาตรฐานมากที่สุดเมื่อซึ่งหมายความว่าไม่มีการย้ายองค์ประกอบระหว่าง A และ B อีกต่อไปA = B = A'= B'=

คำถาม:

จะพิสูจน์ได้อย่างไรว่าในที่สุดอัลกอริทึมนี้จึงถูกยกเลิก ฉันไม่พบฟังก์ชันที่มีศักยภาพที่สะดวกซึ่งสามารถลดหรือขยายให้ใหญ่สุดโดยอัลกอริทึม ฉันได้ลองใช้งานฟังก์ชั่นบางอย่างไม่สำเร็จ: ฟังก์ชันแต่มันไม่เพิ่มขึ้นในการทำซ้ำแต่ละครั้ง ฟังก์ชันแต่จะไม่ลดลงในการทำซ้ำแต่ละครั้ง ฟังก์ชันดูเหมือนจะไม่ลดลงในการทำซ้ำแต่ละครั้ง ฟังก์ชันx A d C x + x B d A xx A d A x + x B d C xx A d A x + x B d B xx A d B x + x B d A xΣx Adx+ x BdAxΣx AdAx+ x BdxΣx AdAx+ x BdBxΣx AdBx+ x BdAxดูเหมือนจะไม่เพิ่มขึ้นในแต่ละรอบซ้ำ ดังนั้นฟังก์ชั่นศักยภาพที่สะดวกสบายซึ่งสามารถแสดงให้เห็นว่าเพิ่มขึ้นหรือลดลงในแต่ละรอบซ้ำคืออะไร? หรือเราควรจะแสดงให้เห็นว่าฟังก์ชั่นลดลง แต่ไม่ได้ที่การทำซ้ำแต่ละครั้ง (หลังจากทำซ้ำบางอย่างค่อนข้าง)? ได้อย่างไร

หมายเหตุ:

  • ที่ใกล้ที่สุดที่จะจุดในชุดหมายถึงการที่:คะแนน (คนอื่น ๆ กว่า ) ในมีระยะทางแบบยุคลิดเล็กที่สุดไป xคุณสามารถใช้เพื่อทำให้การวิเคราะห์ง่ายขึ้นk x S k x S x k = 1kxSkxSxk = 1
  • ฉันไม่รู้ว่าสิ่งนี้จะช่วยได้หรือไม่ แต่ฉันมีคุณสมบัติต่อไปนี้สำหรับชุดเริ่มต้นของฉัน : เริ่มแรก , ถ้าเป็นจุดที่ใกล้ที่สุด เพื่อและเป็นจุดที่ใกล้ที่สุดเพื่อแล้วเสมอx_a) สังหรณ์ใจนี้หมายความว่าจุดมีความใกล้ชิดกับกว่าคะแนนในA , B , C x ฉันB , x jA x bC x ฉันx aC x j d ฉันs t a n c e ( x i , x b ) < d ฉันs t a n c e ( x j , x a ) B C AA , B , CxผมB , xJxCxผมxaCxJdistance(xi,xb)<distance(xj,xa)BA
  • หากการวิเคราะห์นั้นง่ายขึ้น: เป็นไปได้โดยสิ้นเชิงที่จะพิจารณาอัลกอริธึมรุ่นที่แตกต่างกันเล็กน้อยโดยทันทีที่จุดจากควรย้ายไปยังจะถูกย้ายจากไป (โดยไม่ผ่าน ) และ พิพาทในทางกลับกันสำหรับBA B A B A BABABA'B

3
ทำไมคุณถึงสนใจอัลกอริทึมนี้โดยเฉพาะ?

1
shna: คุณต้องการทำอะไรกับการรวบรวมคะแนนโดยพลการแบ่งออกเป็นสามชุด?

4
@shna การรู้วัตถุประสงค์และเป้าหมายของอัลกอริทึมอาจนำไปสู่สัญชาตญาณที่ดีขึ้นและช่วยแก้ไขปัญหา

@RichardRast เพื่อให้คำอธิบายง่ายๆ: จุดประสงค์คือการที่ดีกว่าแยกชุดและดังกล่าวว่า "จุดของมีความคล้ายคลึงกับที่รู้จักกันคงชุด " และ "จุดของเป็นที่สุดด้วยตนเองที่คล้ายกันและ ห่างจากตัวและเซตสุดท้าย" A B B C A C BABBAB
shn

การย้ายถิ่นไปยังร้านค้าถูกปฏิเสธ

คำตอบ:


2

นี่คือวิธีแก้ปัญหาสำหรับกรณี :k = 1k = 1

สมมติว่าอัลกอริทึมไม่ยุติ เนื่องจากมีจำนวนสถานะของอัลกอริธึม จำกัด (การกำหนดจุดให้และ ) สถานะอัลกอริทึมจะต้องทำซ้ำในรอบ เนื่องจากวัฏจักรผ่านสภาวะที่แตกต่างกันจึงต้องมีจุดที่สลับระหว่างและบ่อยครั้งไม่สิ้นสุดA B A BABAB

ให้เป็นจุดที่สลับบ่อย ๆ ในรอบนี้ เลือกซ้ำแรกของอัลกอริทึมที่อยู่ในวงจรระหว่างที่สวิทช์จากไป สำหรับเพื่อสลับไปยัง, ต้องมีอย่างน้อยหนึ่งจุดในกับx') เลือกจุดดังกล่าวที่เล็กที่สุดโดยพลการ; กำหนดฟังก์ชั่นเพื่อให้x' โปรดทราบว่าต้องสลับระหว่างและบ่อยครั้งไม่สิ้นสุด (เพราะถ้าอยู่ในx x B x x ' d C x > d ฉันs T ( x , x ' ) ( x ) = x ' x ' B x ' x F ( F ( x ) ) , เอฟ( F ( ( x ) ) ) ,xxBAxAx'Adx> dฉันs T ( x , x')f(x)=xxABxAอย่างถาวรดังนั้นจะ ) ดังนั้นเราจึงสามารถใช้ฯลฯxf(f(x)),f(f(f(x))),

เนื่องจากเรามีจำนวน จำกัด ของจุด iterates ของ f ในที่สุดก็ต้องทำซ้ำ: สำหรับบางn ตอนนี้ดูลำดับของระยะทางจาก C: . เนื่องจากมันทำซ้ำลำดับนี้จึงไม่สามารถลดลงอย่างสม่ำเสมอ ต้องมีการวนซ้ำเช่นนั้นn ( x ) = เมตร ( x ) > n d C F ( x ) , d C F 2 ( x ) , . . d C n ( x ) , . . o d C f o - 1 ( x )d C f o ( x )fn(x)=fm(x)m>ndCf(x),dCf2(x),...dCfn(x),...odCfo1(x)dCfo(x)

ตอนนี้และอยู่ใกล้กันพอที่จะทำให้กันและกันอยู่ในถ้าหนึ่งในนั้นคือ นั่นคือพวกเขาอยู่ใกล้กันมากกว่าหนึ่งในนั้นคือ : (จากคำจำกัดความของ )o - 1 ( x ) o ( x ) C D C F o ( x )d C F o - 1 ( x ) > d ฉันs T ( o - 1 ( x ) , o ( x ) ) ffo1(x)fo(x)ACdCfo(x)dCfo1(x)>dist(fo1(x),fo(x))f

ดังนั้นทันทีที่และทั้งคู่อยู่ในพวกเขาจะเก็บกันและกันในตลอดกาล (ดูบรรทัด 1-2 ของอัลกอริทึม) สิ่งนี้ขัดแย้งกับความจริงที่ว่าค่าซ้ำทั้งหมดของต้องสลับตั้งบ่อยครั้งอย่างไม่สิ้นสุด ดังนั้นสำหรับกรณีที่อัลกอริทึมจะสิ้นสุดลงf o - 1 ( x ) f o ( x ) A A f k = 1fo1(x)


นี้มีความซับซ้อนอย่างใดและอาจจะแสดงเฉพาะสำหรับ1 แต่จะดีกว่ามากถ้าเราสามารถหาฟังก์ชั่นที่มีศักยภาพซึ่งสามารถแสดงให้เห็นว่ามีการเพิ่มขึ้นหรือลดลงในการทำซ้ำแต่ละครั้ง หรือ a ที่สามารถแสดงให้เห็นว่ากำลังเพิ่มขึ้นหรือลดลงหลังจากการทำซ้ำ "บางอย่าง" มากกว่า 1k = 1
shn

1
@shn ฉันไม่แน่ใจว่าทำไมคุณถึงวิจารณ์การเลือกใช้เทคนิคการพิสูจน์ของคนที่ประสบความสำเร็จในการแก้ปัญหาของคุณมากกว่าที่คุณมี โดยเฉพาะอย่างยิ่งเมื่อคำถามของคุณแสดงความพยายามที่ล้มเหลวสี่ครั้งโดยใช้เทคนิคที่คุณต้องการ
David Richerby

1
@DavidRicherby ฉันไม่ได้วิจารณ์;) ฉันได้พูดคุยเกี่ยวกับการแก้ปัญหาด้วย "causative" (ผู้ที่ให้คำตอบนี้) กับ IRC และเราพบว่ามันเป็นไปไม่ได้ที่จะพิสูจน์ด้วยวิธีนี้สำหรับ ; ดังนั้นเราจึงอนุมานได้ว่ามันจะดีกว่ามากถ้าเราสามารถหาฟังก์ชั่นที่มีศักยภาพซึ่งสามารถแสดงให้ลดลงในการทำซ้ำแต่ละครั้ง ความคิดเห็นของฉันเป็นเพียงข้อมูล k > 1
shn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.