จะสร้างกราฟสุ่มที่ไม่มีวัฏจักร Hamiltonian ได้อย่างไร?


28

ให้คลาส A แสดงกราฟทั้งหมดที่มีขนาดซึ่งมีวัฏจักร Hamiltonian มันเป็นเรื่องง่ายที่จะสร้างกราฟสุ่มจากชั้นนี้ - ใช้เวลาโหนดแยกเพิ่มวงจรมิลสุ่มแล้วเพิ่มขอบแบบสุ่มnn

ให้คลาส B แสดงกราฟทั้งหมดที่มีขนาดซึ่งไม่มีวัฏจักร Hamiltonian เราจะเลือกกราฟสุ่มจากชั้นเรียนนี้ได้อย่างไร (หรือทำสิ่งที่ใกล้เคียง)n


3
เป็นที่ชัดเจนว่าขั้นตอนแรกสร้างกราฟที่สุ่มอย่างสม่ำเสมอหรือไม่? เป็นที่ชัดเจนว่ามันจะสร้างกราฟ Hamiltonian เสมอ แต่เนื่องจากคุณเพิ่มขอบแบบสุ่มในภายหลังคุณอาจแนะนำวง Hamiltonian เพิ่มขึ้นทำให้กราฟบางตัวปรากฏบ่อยกว่าคนอื่น ๆ
Robin Kothari

สิ่งนี้ถูกต้อง แต่ไม่ได้รับการร้องขอให้แจกจ่ายเครื่องแบบ (ถ้ามีนัยโดยนัย)
Raphael

1
ใช่ฉันไม่สนใจเรื่องความสม่ำเสมอ ฉันต้องการให้กราฟทุกกราฟในตระกูลกราฟที่ไม่ใช่แฮมิลตัน ปัญหาเกี่ยวกับการสุ่มตัวอย่างเป็นแบบพื้นฐานค่อนข้าง: AFAIK เราไม่รู้ว่าตัวอย่างจากกราฟที่มีขนาดเท่ากันในตระกูล n มีขนาดเท่ากันอย่างไร
Jagadish

คำตอบ:


34

นี่เป็นไปไม่ได้ (ยกเว้น NP = coNP) เนื่องจากโดยเฉพาะที่หมายถึงฟังก์ชันโพลี - เวลาซึ่งช่วงคือกราฟที่ไม่ใช่แฮมิลตัน (ฟังก์ชันจะเปลี่ยนจากสตริงสุ่มไปยังกราฟเอาต์พุต) ซึ่งจะบ่งบอกถึงการพิสูจน์ NP ของ non-Hamiltonianicity (เพื่อพิสูจน์ G ไม่มีวงจร Hamiltonian แสดง x ที่แมปกับมัน)


3
คุณคิดว่าฟังก์ชั่นดังกล่าวเป็นไปตามระดับของกราฟที่ไม่ใช่มิลโตเนียน นี่เป็นกรณีเดียวถ้าเราต้องการให้การกระจายแบบสม่ำเสมอ ดูความคิดเห็นของ Aaron ได้ที่ด้านล่าง: cstheory.stackexchange.com/questions/562/…
Ohad Kammar

5
สิ่งนี้ไม่ได้คิดอะไรเกี่ยวกับความน่าจะเป็นในการเลือกกราฟแต่ละอัน (เช่นเดียวกับที่เป็นรูปแบบเดียวกัน) กราฟที่อัลกอริธึมอาจเป็นผลลัพธ์ที่ไม่ใช่แบบมิลโตเนียน (บน) หากคุณอนุญาตให้เกิดข้อผิดพลาดทั้งสองข้างนี่อาจเป็นไปได้
Noam

1
ฉันยอมรับว่ามันไม่ใช่ความสม่ำเสมอของการแจกแจงที่สำคัญ แต่ความจริงที่ว่ากราฟที่ไม่ใช่แฮมิลตันทั้งหมดมีความน่าจะเป็นที่ไม่เป็นศูนย์ หากแม้แต่หนึ่งในนั้นมีความน่าจะเป็นศูนย์หลักฐานของคุณจะไม่ถูกนำไปใช้ (โดยไม่มีความรู้เพิ่มเติมเกี่ยวกับการสนับสนุนการแจกแจง)
Ohad Kammar

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

3
หากขั้นตอนวิธีการของคุณผลิตเครื่องแบบกระจายบนกราฟไม่ใช่แฮมิลตันมีโอกาสและกราฟแฮมิลตันมีโอกาสεและε →การ0ขนาดการป้อนข้อมูลไปแล้วฉันคิดว่าคุณควรจะสามารถที่จะรวมขั้นตอนวิธีการนี้กับ ฟังก์ชั่นแฮชแบบสุ่มเพื่อค้นหาการพิสูจน์แบบอินเตอร์แอคทีฟที่ไม่มีค่าคงที่ นี่จะแปลว่าลำดับชั้นของพหุนามยุบลง1-εεε0
Peter Shor

11

Gn,ม.ม.n

n


นี่เป็นความคิดที่ดีแม้ว่าเราสามารถข้ามอัลกอริธึมความน่าจะเป็นทั้งหมดในการค้นหาวัฏจักรแฮม คำถามไม่ได้ถามว่าขั้นตอนการสุ่มตัวอย่างจะทำงานใน polytime ที่คาดหวังหรืออะไรก็ตาม ดังนั้นสร้างกราฟสุ่มจากการแจกแจงที่คุณชื่นชอบพิจารณาว่ามันเป็นแฮมิลโตเนียนด้วยอัลกอริธึมที่แน่นอนหรือไม่และถ้ามันเป็นมิลโตเนียนแล้วก็ละทิ้งมันและทำซ้ำกระบวนการ หากการแจกแจงที่ใช้นั้นเป็นการแจกแจงแบบสม่ำเสมอบนกราฟที่มีป้ายกำกับทั้งหมดสิ่งนี้จะสร้างกราฟที่ไม่ใช่ป้ายแฮมิลตันทุกอันที่มีความน่าจะเป็นแบบเดียวกัน
JimN

1

งานแรกนั้นง่ายเพราะกราฟของ Hamiltonian ง่ายต่อการตรวจสอบ อย่างไรก็ตามไม่มีหลักฐานพิสูจน์สั้น ๆ ที่สามารถตรวจสอบได้อย่างมีประสิทธิภาพเพื่อเป็นสักขีพยานว่ากราฟที่ให้นั้นไม่ใช่แฮมิลตัน


1
ฉันคิดว่าคำตอบของชาวเติร์กทำให้เกิดคำถามที่น่าสนใจ โดยทั่วไปแล้วเป็นไปได้หรือไม่ที่จะลองตัวอย่างจากภาษาที่ใช้การร่วม NP-complete
Suresh Venkat

5
.... และ Noam ตอบว่าในแง่ลบ
Suresh Venkat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.