พื้นหลัง
สมมติว่าฉันมีสองสำหรับกระบวนการที่เหมือนกันของหินอ่อน แต่ละหินอ่อนสามารถเป็นหนึ่งในสีที่c≤nให้แทนจำนวนหินอ่อนสีในแต่ละชุด
ให้เป็นมัลติเซ็ตแทนหนึ่งชุด ในการเป็นตัวแทนความถี่ , นอกจากนี้ยังสามารถเขียนเป็น{n_c})
จำนวนการเรียงสับเปลี่ยนที่แตกต่างกันของนั้นมอบโดยMultinomial :
คำถาม
มีอัลกอริทึมที่มีประสิทธิภาพในการสร้างการกระจายสองแบบเรียงสับเปลี่ยนและของที่สุ่มหรือไม่ (การกระจายควรเป็นแบบเดียวกัน)
เปลี่ยนแปลงคือกระจายถ้าองค์ประกอบที่แตกต่างกันทุกของกรณีของมีระยะห่างออกไปประมาณเท่า ๆ กันในP
ตัวอย่างเช่นสมมติว่า\}
- ไม่กระจาย
- กระจาย
อย่างจริงจังมากขึ้น:
- หากมีเพียงหนึ่งตัวอย่างของไป“พื้นที่ออก” ในเพื่อให้ 0
- มิฉะนั้นให้เป็นระยะห่างระหว่างอินสแตนซ์ และอินสแตนซ์ ของในPลบออกจากระยะทางที่คาดไว้ระหว่างอินสแตนซ์ของกำหนดดังต่อไปนี้:
ถ้าจะเว้นระยะเท่ากันในแล้วควรจะเป็นศูนย์หรือมากใกล้เคียงกับศูนย์ถ้าn
ตอนนี้กำหนดสถิติการวัดว่ามากทุกจะเว้นระยะเท่ากันในPเราเรียกกระจายถ้าอยู่ใกล้กับศูนย์หรือประมาณ 2 (หนึ่งสามารถเลือกขีด จำกัดเฉพาะกับเพื่อให้แพร่กระจายถ้า )
ข้อ จำกัด นี้จำได้ว่าเข้มงวดปัญหาการจัดตารางเวลาจริงที่เรียกว่าปัญหาตะไลกับ MultiSet (เพื่อให้ ) และความหนาแน่น 1 โดยมีวัตถุประสงค์เพื่อกำหนดตารางการวงจรลำดับอนันต์ดังกล่าวว่า subsequence ยาว ๆมีอย่างน้อยหนึ่งตัวอย่างของฉันกล่าวอีกนัยหนึ่งตารางเวลาที่เป็นไปได้นั้นต้องการทั้งหมด ถ้ามีความหนาแน่นสูง ( ) จากนั้นและ 0 ปัญหาการหมุนวนดูเหมือนว่าจะสมบูรณ์แล้ว
การเรียงสับเปลี่ยนสองและจะแปรผันถ้าเป็นการเรียงความของ ; นั่นคือสำหรับทุกดัชนี[N]
ตัวอย่างเช่นสมมติว่า\}
- และไม่ได้ถูกทำให้ผิด
- และจะบ้า
การวิเคราะห์เชิงสำรวจ
ฉันสนใจในครอบครัวของมัลติกับและสำหรับฉันโดยเฉพาะอย่างยิ่งให้1)
น่าจะเป็นที่สองพีชคณิตแบบสุ่มและของจะบ้าเป็นประมาณ 3%
สามารถคำนวณได้ดังนี้โดยที่คือพหุนาม th Laguerre: ดูที่นี่สำหรับคำอธิบาย
ความน่าจะเป็นที่การเปลี่ยนแปลงสุ่มของเป็นกระจายเป็นเรื่องเกี่ยวกับ 0.01%, การตั้งค่าเกณฑ์พลที่ประมาณs
ด้านล่างนี้เป็นพล็อตน่าจะเป็นเชิงประจักษ์ 100,000 ตัวอย่างของที่คือการเปลี่ยนแปลงแบบสุ่มของ\
ที่ขนาดตัวอย่างขนาดกลางapprox18)
น่าจะเป็นที่สองพีชคณิตแบบสุ่มที่ถูกต้อง (ทั้งกระจายและสติฟั่นเฟือน) เป็นรอบ 10}
อัลกอริทึมที่ไม่มีประสิทธิภาพ
อัลกอริธึม“ เร็ว” ทั่วไปเพื่อสร้างการสุ่มเซตของชุดนั้นขึ้นอยู่กับการปฏิเสธ:
ทำ P ← random_permutation ( D ) จนกระทั่ง is_derangement ( D , P ) ส่งคืนP
ซึ่งใช้เวลาประมาณซ้ำเนื่องจากมีประมาณ derangements ที่เป็นไปได้ อย่างไรก็ตามอัลกอริธึมที่ใช้การปฏิเสธแบบอิงจะไม่มีประสิทธิภาพสำหรับปัญหานี้เนื่องจากจะใช้การเรียงลำดับซ้ำ
ในอัลกอริทึมที่ใช้โดยSageการสุ่มเรียงความของชุดย่อย“ ถูกสร้างขึ้นโดยการเลือกองค์ประกอบที่สุ่มจากรายการของการเรียงลำดับที่เป็นไปได้ทั้งหมด” แต่นี่ก็เป็นสิ่งที่ไม่มีประสิทธิภาพเนื่องจากมีการเรียงสับเปลี่ยนที่ถูกต้องในการแจกแจง
คำถามเพิ่มเติม
ความซับซ้อนของปัญหานี้คืออะไร? มันสามารถลดให้อยู่ในกระบวนทัศน์ที่คุ้นเคยเช่นโฟลว์เครือข่ายการระบายสีกราฟหรือการเขียนโปรแกรมเชิงเส้นได้หรือไม่?