วิธีการตรวจสอบอย่างมีประสิทธิภาพว่าบันไดที่กำหนดนั้นถูกต้องหรือไม่?


28

ที่สควอชคลับในพื้นที่ของฉันมีบันไดซึ่งทำงานดังต่อไปนี้

  1. ในตอนต้นของฤดูกาลเราสร้างตารางที่มีชื่อของสมาชิกแต่ละคนของสโมสรในบรรทัดแยกต่างหาก
  2. จากนั้นเราเขียนจำนวนเกมที่ชนะและจำนวนเกมที่เล่นถัดจากแต่ละชื่อ (ในรูปแบบ: ผู้เล่นชนะ / เกม)

ดังนั้นในตอนต้นของฤดูกาลตารางจะมีลักษณะดังนี้:

Carol 0/0
Billy 0/0
Alice 0/0
Daffyd 0/0

ผู้เล่นสองคนอาจเล่นคู่กับผู้เล่นคนหนึ่งชนะ หากผู้เล่นที่ใกล้ที่สุดด้านล่างของตารางชนะตำแหน่งของผู้เล่นจะเปลี่ยน จากนั้นเราทำซ้ำขั้นตอนที่ 2 อัปเดตจำนวนชัยชนะและเกมถัดจากผู้เล่นแต่ละคน ตัวอย่างเช่นถ้าอลิซชนะบิลลี่เราก็มี

Carol 0/0
Alice 1/1
Billy 0/1
Daffyd 0/0

การแข่งขันเหล่านี้ยังคงดำเนินต่อไปตลอดทั้งฤดูกาล

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

Alice 0/1
Billy 1/1
Carol 0/1
Daffyd 0/0

Alice 2/3
Billy 0/1
Carol 0/0
Daffyd 0/0

Alice 1/1
Billy 0/2
Carol 2/2
Daffyd 0/1

ให้ตารางเราจะตรวจสอบได้อย่างมีประสิทธิภาพว่ามันถูกต้องอย่างไร เราสามารถเริ่มต้นด้วยการสังเกตสิ่งต่อไปนี้:

  1. ลำดับของชื่อไม่สำคัญเนื่องจากเราลืมคำสั่งเริ่มต้นดั้งเดิม

  2. จำนวนชนะทั้งหมดควรเป็นครึ่งหนึ่งของจำนวนเกมที่เล่นทั้งหมด (นี่แสดงให้เห็นว่าตัวอย่างแรกข้างต้นไม่ถูกต้อง)

  3. สมมติว่าตารางถูกต้อง แล้วมีmultigraph - กราฟยอมรับขอบหลาย แต่ไม่มีลูป - กับแต่ละจุดสุดยอดที่สอดคล้องกับผู้เล่นและขอบแต่ละการแข่งขันเล่น จากนั้นจำนวนรวมของเกมที่เล่นโดยผู้เล่นแต่ละคนจะสอดคล้องกับระดับของจุดสุดยอดของผู้เล่นในรูปแบบมัลติ ดังนั้นหากไม่มีมัลติริจิคที่มีองศาของจุดยอดที่เหมาะสมตารางจะต้องไม่ถูกต้อง ตัวอย่างเช่นไม่มีมัลติริบก์ที่มีจุดสุดยอดหนึ่งองศาหนึ่งและหนึ่งในสามองศาดังนั้นตัวอย่างที่สองนั้นไม่ถูกต้อง [เราสามารถตรวจสอบการมีอยู่ของงานประดิษฐ์ได้อย่างมีประสิทธิภาพ]

ดังนั้นเราจึงมีการตรวจสอบสองครั้งที่เราสามารถนำไปใช้กับการเริ่มต้นด้วย แต่สิ่งนี้ยังอนุญาตตารางที่ไม่ถูกต้องเช่นตัวอย่างที่สาม หากต้องการดูว่าตารางนี้ไม่ถูกต้องเราสามารถทำงานย้อนกลับหมดวิธีที่เป็นไปได้ทั้งหมดของตารางที่อาจเกิดขึ้น

ฉันสงสัยว่าทุกคนสามารถนึกถึงเวลาพหุนาม (ในจำนวนผู้เล่นและจำนวนของเกม) อัลกอริทึมในการแก้ปัญหาการตัดสินใจนี้หรือไม่?


2
บางทีอาจจะมีเป็นชนิดทฤษฎีบท Havel Hakimi สำหรับ multigraphs กำกับ ...
Aryabhata

ทำไมตัวอย่างที่สามถึงไม่สามารถทำได้? ถ้าอลิซชนะเหนือบ็อบแครอลจะชนะบ็อบและแครอลจะชนะดัฟฟี อลิซชนะ 1 ใน 1 เกม Bob ชนะ 0 จาก 2 เกม Carol ชนะ 2 จาก 2 เกมและ Daffyd ชนะ 0 จาก 1 เกม?
utdiscant

utdiscant: หลังจากแต่ละเกมหากผู้เล่นต่ำกว่าชนะผู้เล่นจะถูกสับเปลี่ยน เพื่อแสดงให้เห็นว่าตัวอย่างที่สามเป็นไปได้คุณจะต้องกำหนดค่าเริ่มต้นและลำดับของเกม - นั่นคือพร้อมกับคำสั่ง - ส่งผลให้ในตารางที่กำหนด
Ben

aryabhata: ขอบคุณ - ใช่นั่นจะเป็นขั้นตอนที่มีประโยชน์ น่าเสียดายที่มันฟังดูค่อนข้างยาก ...
เบ็น

1
ข้อเสนอแนะเพื่อศึกษา / แก้ปัญหานี้ ระบุว่าเป็นปัญหา SAT จากนั้นลองสุ่มเลือกหลายกรณี ดูว่ามีสิ่งใดที่ยากสำหรับตัวแก้ไขมาตรฐาน ถ้าไม่ใช่อาจเป็นเซตย่อยที่มีข้อ จำกัด ใน P.
vzn

คำตอบ:


1

นี่ไม่ใช่คำตอบที่สมบูรณ์ ฉันให้คำอธิบายปัญหาที่ง่ายขึ้นและมีข้อสังเกต

เราเริ่มต้นด้วยกราฟที่จุดที่ถูกกำกับด้วย ][n]

เรามีการดำเนินงานที่เพิ่มขอบกำกับจากเพื่อยูกราฟและหากลิตรอีลิตร( วี) < ลิตรอีลิตร( U )สวิทช์ป้ายชื่อของพวกเขาvulabel(v)<label(u)

ให้กราฟหลายกำกับกับnยอดและeขอบตรวจสอบว่าสามารถรับได้โดยใช้การดำเนินการข้างต้นGne

มันเป็นเรื่องง่ายที่จะเห็นว่าปัญหาอยู่ใน : ใบรับรองเป็น (ขนาดพหุนาม) ลำดับของการดำเนินงานที่เกิดในGNPG

การสังเกต

ดูเหมือนว่าเราสามารถสรุปได้โดยไม่สูญเสียความเอนเอียงไปที่ขอบทั้งหมดไปยังจุดสุดยอดสุดท้ายจะถูกเพิ่มที่ส่วนท้ายของลำดับและขอบทั้งหมดจากมันจะถูกเพิ่มเข้ามาเมื่อเริ่มลำดับ สิ่งนี้สามารถทำให้เป็นจุดทั่วไปได้ สมมติว่าเรามีลบทุกจุดที่มีป้ายขนาดใหญ่กว่า ) เพิ่มขอบทั้งหมดถึงvที่ส่วนท้ายของลำดับและเพิ่มขอบทั้งหมดจากvที่จุดเริ่มต้นของลำดับlabel(v)vv

ฉันคิดว่ามันควรจะเป็นไปได้ที่จะรวมการสังเกตนี้กับHavel-Hakimiเพื่อเป็นอัลกอริธึมเวลาพหุนาม


สวัสดี ขอขอบคุณ. คุณจะบอกความคิดของคุณอีกครั้งในบริบทของบันได? ฉันคิดว่ามีตัวอย่างตัวอย่างสำหรับกราฟลำดับ 3 แต่บางทีฉันก็ผิด
Ben

@Ben ฉันคิดว่ามันจะเป็นดังต่อไปนี้: คุณสามารถสันนิษฐานได้ว่าคนสุดท้ายบนบันไดเล่นเกมทุกเกมที่เขาชนะเมื่อเริ่มต้นการแข่งขันและเล่นเกมทั้งหมดที่เขาแพ้เมื่อสิ้นสุดการแข่งขัน . แจ้งให้เราทราบหากมีตัวอย่างโต้แย้งกับเรื่องนี้ฉันไม่ได้ตรวจสอบอย่างรอบคอบ
Kaveh

น่าเสียดายที่มีบันไดแบบนี้: A 2/2 B 0/1 C 0/1
Ben

@Ben ฉันคิดว่าตัวอย่างสอดคล้องกับสิ่งที่ฉันเขียนนั่นคือมันไม่ใช่ตัวอย่างที่เคาน์เตอร์เพื่อสังเกต
Kaveh

บันไดถูกต้อง สมมติว่าเกมสุดท้ายที่เล่นคือการสูญเสียให้กับซีจากนั้นก่อนเกมสุดท้ายบันไดจะต้องมีลักษณะดังนี้: C 0/0 B 0/1 A 1/1 แต่บันไดนี้ไม่ถูกต้อง ดังนั้นเราไม่สามารถสรุปได้ว่าเกมสุดท้ายคือความสูญเสียสำหรับซี
เบ็น

0

ฉันยังไม่ได้แก้ปัญหา แต่มีผลลัพธ์บางส่วนงบที่ได้รับด้านล่าง ฉันจะเขียนบทพิสูจน์หากใครสนใจ

เรื่อง สมมติว่าบันได (1) มีผู้เล่นมากกว่าหนึ่งคน (2) มีจำนวนชนะและแพ้เท่ากัน และ (3) เป็นเช่นที่ผู้เล่นแต่ละคนชนะอย่างน้อยหนึ่งเกมและแพ้อย่างน้อยหนึ่งเกม จากนั้นบันไดก็ใช้ได้

WiiLiiRi

Li=0

Wik:Rk>Ri,Wk>0(Lk1)++k:Rk<RiLk,
and a corresponding bound holds for Li in the case that Wi=0.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.