asymptotically shuffling ไร้เดียงสาแค่ไหน?


33

เป็นที่ทราบกันดีว่าอัลกอริทึม 'ไร้เดียงสา' สำหรับการสับเปลี่ยนอาเรย์โดยการสลับแต่ละไอเท็มกับอีกอันที่สุ่มเลือกไม่ทำงานอย่างถูกต้อง:

for (i=0..n-1)
  swap(A[i], A[random(n)]);

โดยเฉพาะตั้งแต่ที่แต่ละnnซ้ำหนึ่งของnnเลือกที่จะทำ (กับความน่าจะเป็นชุด) มีn nnnที่เป็นไปได้ 'เส้นทาง' ผ่านการคำนวณ; เพราะจำนวนการเรียงสับเปลี่ยนที่เป็นไปได้n ! n!ไม่แบ่งเท่า ๆ กันตามจำนวนของเส้นทางn nnnมันเป็นไปไม่ได้ที่อัลกอริธึมนี้จะสร้างnแต่ละอัน! n!การเรียงสับเปลี่ยนที่มีความน่าจะเป็นเท่ากัน (แต่อย่างใดอย่างหนึ่งควรใช้การสลับแบบFischer-Yatesซึ่งจะเปลี่ยนการโทรเพื่อเลือกหมายเลขสุ่มจาก [0..n) ด้วยการโทรเพื่อเลือกหมายเลขแบบสุ่มจาก [i..n); เป็นสิ่งที่สงสัยกับคำถามของฉัน)

สิ่งที่ฉันสงสัยคือการสับเปลี่ยนไร้เดียงสาจะเป็นไปได้อย่างไร โดยเฉพาะอย่างยิ่งการให้P ( n )P(n)เป็นชุดของพีชคณิตทั้งหมดและC ( ρ )C(ρ)เป็นจำนวนเส้นทางผ่านขั้นตอนวิธีการที่ไร้เดียงสาที่ผลิตที่เกิดการเปลี่ยนแปลงρ P ( n )ρP(n)สิ่งที่เป็นพฤติกรรมเชิงของการทำงาน

M(n)=n!nnmaxρP(n)C(ρ)M(n)=n!nnmaxρP(n)C(ρ)

และ

m(n)=n!nnminρP(n)C(ρ)m(n)=n!nnminρP(n)C(ρ) ?

ปัจจัยนำคือการ 'ทำให้ปกติ' ค่าเหล่านี้: ถ้าการสลับแบบไร้เดียงสาเป็น 'asymptotically good' ดังนั้น

limnM(n)=limnm(n)=1limnM(n)=limnm(n)=11

ฉันสงสัย (ตามแบบจำลองคอมพิวเตอร์บางอย่างที่ฉันเคยเห็น) ว่าค่าจริงนั้นมีขอบเขตห่างจาก 1 แต่ก็เป็นที่รู้กันว่ามี จำกัด หรือถ้าอยู่ห่างจาก 0? สิ่งที่ทราบเกี่ยวกับพฤติกรรมของปริมาณเหล่านี้คืออะไร?limM(n)limM(n)limm(n)limm(n)


8
เป็นคำถามที่ดี ฉันไม่รู้ว่าที่ที่ดีที่สุดสำหรับคำถามนี้คือที่ไหน ฉันคิดว่าคุณควรทิ้งไว้ที่นี่เป็นเวลาหนึ่งสัปดาห์หรือมากกว่านั้นและถ้าคุณไม่ได้รับคำตอบที่น่าพอใจให้ถามในฟอรัมอื่น (และใส่ลิงก์ทั้งสองคำถาม) )
Peter Shor

4
@vzn "ทำไมการวิเคราะห์อย่างหนักเกี่ยวกับอัลกอริธึมที่รู้ข้อบกพร่อง" เนื่องจากคณิตศาสตร์มีความน่าสนใจและคุณไม่มีทางรู้ว่าจะมีแอปพลิเคชั่นอื่น ๆ เกิดขึ้นที่ใด - ดูการวิเคราะห์ของ Knuth ในการจัดเรียงฟอง แผนภูมิของ Atwood ให้การวิเคราะห์เชิงคุณภาพอย่างคร่าวๆของ inhomogenity แต่นั่นเป็นหนทางไกลจากการวิเคราะห์เชิงปริมาณเชิงคณิตศาสตร์ (และมีสูตรที่แตกต่างกันหลายอย่างของการสลับแบบ Fischer-Yates - แบบที่ฉันพูดถึงใช้ได้ดี)
Steven Stadnicki

4
สำหรับเรคคอร์ดลำดับ OEIS A192053คือ max C ( ρ )และไม่แสดงรายการฟอร์มปิด นอกจากนี้บันทึกสำหรับรายการที่ชี้ให้เห็นว่านาทีC ( ρ )อาจจะเป็น2 n - 1หมายความว่าม. ( n ) 0 C(ρ)C(ρ)2n1m(n)0
mhum

2
@vzn เกิดอะไรขึ้นกับคำถามเปิด
Yuval Filmus

1
@vzn ไม่เห็นด้วยกับประโยคสุดท้ายของคุณมีการวิเคราะห์จำนวนมากของ "สับ" ไม่สมบูรณ์ สำหรับตัวอย่างถ้าเราทำให้ transpositions สุ่มมันจะเป็นที่รู้จักกันว่าเกณฑ์สำหรับการสุ่มเป็นประมาณ( 1 / 2 ) n บันทึก n คำถามปัจจุบันอาจจะยาก แต่เบื้องต้นก็ยากที่จะบอกว่ามันเป็น "ยากมาก" คำตอบเช่นเดียวกับ mhum นั้นน่าพึงพอใจมากแสดงให้เห็นว่าคำถามนั้นเหมาะสมสำหรับฟอรัมและไม่ได้แสดงสิ่งกีดขวางที่ผ่านไม่ได้ (1/2)nlogn
Yuval Filmus

คำตอบ:


13

เราจะแสดงโดยอุปนัยว่าการเปลี่ยนลําดับρ n = ( 2 , 3 , 4 , ... , n , 1 )เป็นตัวอย่างกับC ( ρ n ) = 2 n - 1 หากเป็นกรณีที่เลวร้ายที่สุดนี้มันเป็นไม่กี่ครั้งแรกn (ดูหมายเหตุสำหรับOEIS ลำดับ A192053 ) จากนั้นม. ( n ) ( 2 / E ) nρn=(2,3,4,,n,1)C(ρn)=2n1nm(n)(2/e)n. ดังนั้นค่านาทีมาตรฐานเช่นค่าสูงสุดปกติคือ 'ไม่ดีมาก'

เคสฐานนั้นง่าย สำหรับขั้นตอนการเหนี่ยวนำเราจำเป็นต้องมีบทแทรก:

เล็มม่า:ในทุก ๆ ทางจาก( 2 , 3 , 4 , , n , 1 )ถึง( 1 , 2 , 3 , , n )ไม่ว่าจะเป็นการเคลื่อนไหวครั้งแรกสลับตำแหน่ง1และnหรือการย้ายครั้งสุดท้ายสลับตำแหน่ง1และn .(2,3,4,,n,1)(1,2,3,,n)1n1n

หลักฐานการร่าง:ไม่ควร พิจารณาย้ายครั้งแรกที่เกี่ยวข้องกับn 'ตำแหน่ง TH สมมติว่ามันเป็นสิ่งที่ฉัน 'TH ย้ายฉัน1และฉัน n การย้ายครั้งนี้ต้องวางรายการที่1ในฉัน 'สถาน TH ตอนนี้พิจารณาย้ายไปที่สัมผัสรายการที่1 สมมติว่าการย้ายครั้งนี้เป็นเจ 'TH ย้าย การย้ายครั้งนี้จะต้องสลับฉันและเจย้ายรายการที่1ลงในJ 'สถานที่, th กับฉัน< Jnii1in1i1jij1ji<j Jอาร์กิวเมนต์ที่คล้ายกันบอกว่ารายการ11สามารถย้ายไปทางขวาเท่านั้นในภายหลัง แต่ข้อที่1ต้องจบลงในตอนแรกซึ่งขัดแย้งกัน 1

ตอนนี้ถ้าแรกแลกเปลี่ยนย้ายตำแหน่งที่1และnย้ายที่เหลือจะต้องใช้เวลาการเปลี่ยนลําดับ( 1 , 3 , 4 , 5 , ... , n , 2 )เพื่อ( 1 , 2 , 3 , 4 , ... , n ) หากย้ายที่เหลือไม่ได้สัมผัสตำแหน่งแรกแล้วนี่คือการเปลี่ยนลําดับρ n - 1ในตำแหน่งที่2 ...1n(1,3,4,5,,n,2)(1,2,3,4,,n)ρn1 nและเรารู้โดยอุปนัยว่ามี2nC ( ρ n -1 )= 2 n - 2 พา ธจะต้องสิ้นสุดในตำแหน่งที่ไม่ถูกต้องที่ทำสิ่งนี้ การโต้แย้งที่คล้ายกับหลักฐานของเลมม่ากล่าวว่าไม่มีเส้นทางใดที่สัมผัสตำแหน่งแรกเช่นเดียวกับรายการ1C(ρn1)=2n21

ถ้าการย้ายครั้งสุดท้ายสลับตำแหน่ง1และnการเคลื่อนที่n - 1ครั้งแรกจะต้องทำการเปลี่ยนรูป( 2 , 3 , 4 , , n , 1 )เพื่อเปลี่ยนรูป( n , 2 , 3 , 4 , , n - 1 , 1 ) อีกครั้งหากการเคลื่อนไหวเหล่านี้ไม่ได้สัมผัสตำแหน่งสุดท้ายดังนั้นนี่คือการเปลี่ยนแปลงρ n - 1และโดยการเหนี่ยวนำมี1nn1(2,3,4,,n,1)(n,2,3,4,,n1,1)ρn1C ( ρ n - 1 ) = 2 n - 2 พา ธที่ทำ และอีกครั้งหากหนึ่งใน n - 1แรกเคลื่อนไปแตะที่ตำแหน่งสุดท้ายรายการที่ 1จะไม่สิ้นสุดในตำแหน่งที่ถูกต้องC(ρn1)=2n2n11

ดังนั้นC ( ρ n ) = 2 C ( ρ n - 1 ) = 2 n - 1C(ρn)=2C(ρn1)=2n1


สมบูรณ์แบบ - อาร์กิวเมนต์ที่อยู่เบื้องหลังบทแทรกมีลักษณะคล้ายกับที่ฉันมีสำหรับการตีความเป็นวิธีเดียวที่จะได้รับการเปลี่ยนแปลงตัวตน แต่ฉันพลาดโครงสร้างแบบเรียกซ้ำในการแลกเปลี่ยนที่ชัดเจน ขอขอบคุณ!
Steven Stadnicki

10

หลังจากขุดไปรอบ ๆ ด้วยตัวชี้ของ mhum ไปที่ OEIS ในที่สุดฉันก็ได้พบการวิเคราะห์ที่ยอดเยี่ยมและการโต้เถียงเบื้องต้นที่ดี (เนื่องจาก) เท่าที่ฉันสามารถบอกได้ถึง Goldstein และ Moews [1] ซึ่งM ( n )เติบโตเร็วอย่างรวดเร็วในn :M(n)n

ใด ๆ ร่วมด้วยιของ{ 1 ... n }สอดคล้องกับการทำงานของ 'ไร้เดียงสา' สับขั้นตอนวิธีการที่ก่อให้เกิดการเปลี่ยนแปลงตัวตนเป็นผลมันตั้งแต่ขั้นตอนวิธีการจะสลับkกับι ( k )และต่อมาแลกเปลี่ยนι ( k )กับk , ปล่อยให้ทั้งสองไม่เปลี่ยนแปลง ซึ่งหมายความว่าจำนวนของการทำงานของอัลกอริทึมที่ให้เปลี่ยนแปลงตัวตนเป็นอย่างน้อยจำนวน involutions ที่Q ( n ) (ในความเป็นจริงการแสดงความคิดเล็ก ๆ น้อย ๆ ที่ติดต่อกันทางจดหมายเป็น 1-1 และดังนั้นจึงเป็นสิ่งQ )ι{1n}kι(k)ι(k)kQ(n) ( n)Q(n) ) และสูงสุดในM ( n )เป็นที่สิ้นสุดจากด้านล่างโดยQ ( n )M(n)Q(n)

Q ( n )เห็นได้ชัดว่าเป็นไปตามจำนวนของชื่อรวมทั้งหมายเลขโทรศัพท์: ดูhttp://oeis.org/A000085และhttp://en.wikipedia.org/wiki/Telephone_number_%28mathematics%29 เส้นกำกับอาการเป็นที่รู้จักกันดีและปรากฎว่า Q ( n ) C ( nQ(n)e )n/2en ; จากความสัมพันธ์ที่เกิดซ้ำQ(n)=Q(n-1)+(n-1)Q(n-2)มันสามารถเหนี่ยวนำได้แสดงให้เห็นว่าอัตราส่วนR(n)=Q(n)Q(n)C(ne)n/2enQ(n)=Q(n1)+(n1)Q(n2)Q ( n - 1 ) เป็นที่พอใจR(n)=Q(n)Q(n1)n <R(n)<n + 1และจากการวิเคราะห์พื้นฐานมีได้รับชั้นนำn n / 2ระยะใน asymptotics แม้คำอื่น ๆ ที่ต้องใช้ความพยายามระมัดระวังมากขึ้น ตั้งแต่ 'ขนาดปัจจัย' n !n<R(n)<n+1nn/2n nในคำจำกัดความของM(n)เป็นเพียงประมาณCn!nnM(n)n e - n , คำที่เป็นผู้นำของQ(n)ควบคุมและให้ผลตอบแทน (asymptotically)M(n)Cn ( n + 1 ) / 2 e - 3 n / 2 + CnenQ(n)n .M(n)Cn(n+1)/2e3n/2+n

Goldstein และ Moews ในความเป็นจริงไปได้ที่จะแสดงใน [1] ที่เปลี่ยนแปลงตัวตนเป็นส่วนใหญ่มีแนวโน้มขนาดใหญ่nดังนั้นในความเป็นจริงและพฤติกรรมของM ( n )จะตัดสินได้อย่างเต็มที่ สิ่งนี้ยังคงเป็นคำถามของพฤติกรรมของm ( n ) ที่เปิดอยู่ ฉันไม่แปลกใจเลยถ้ามันให้ผลการวิเคราะห์ในกระดาษของพวกเขา แต่ฉันไม่ได้มีโอกาสอ่านอย่างใกล้ชิดพอที่จะเข้าใจวิธีการของพวกเขาจริงๆพอที่จะคลานผลลัพธ์พื้นฐานnM(n)m(n)

[1] Goldstein, D. และ Moews, D .: "ตัวตนคือการสับเปลี่ยนแลกเปลี่ยนที่มีแนวโน้มมากที่สุดสำหรับ n ขนาดใหญ่", http://arxiv.org/abs/math/0010066


1
It's not too hard to show that the permutation (2,3,4,,n,1) is an example with C(ρ)=2n1. If this is the worst case, as it is for the first few n, then m(n)(2/e)n.
Peter Shor

@PeterShor Can you give the basic argument? I feel like I'm missing some simple version of the involutions argument that would work, but I'm not quite getting it. I think even if that's not quite minimal that would be good enough; the minimum count seems unlikely to be subexponential in n and just knowing that the normalized max and min are both 'exponentially bad' is a pretty satisfactory answer.
Steven Stadnicki

I added an answer with the argument ... it's too long for a comment.
Peter Shor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.