418531 ภาคต้น 2552/โจทย์ปัญหาอัลกอริทึมเกี่ยวกับกราฟ/เฉลยข้อ 4.3

จาก Theory Wiki
รุ่นแก้ไขเมื่อ 13:43, 16 กันยายน 2552 โดย Cardcaptor (คุย | มีส่วนร่วม)
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา

ให้ และ เป็น vertex ใดๆ ในกราฟแล้ว เราจะได้ว่ามีความเป็นไปได้สองกรณีด้วยกัน คือ

  • DFS(u) ถูกเรียกให้ทำงานก่อน DFS(v)
  • DFS(v) ถูกเรียกให้ทำงานก่อน DFS(u)

พิจารณากรณีที่ DFS(u) ถูกเรียกให้ทำงานก่อน DFS(v) ในกรณีนี้เราจะได้ว่า และในกรณีนี้มีความเป็นไปได้สองกรณีด้วยกันคือ

ในกรณีที่ 1 เราได้ว่า ซึ่งหมายความว่าช่วง และช่วง ไม่มีสมาชิกร่วมกันเลย ซึ่งตรงกับข้อความหนึ่งในสามข้อในโจทย์

ในกรณีที่ 2 เราได้ว่า หมายความว่า DFS(v) ถูกเรียกให้ทำงานระหว่าง DFS(u) กำลังทำงานอยู่ ฉะนั้น DFS(v) จะต้องทำงานเสร็จก่อน DFS(u) จะทำงานเสร็จ ด้วยเหตุนี้เราจะได้ว่า กล่าวคือ ซึ่งตรงกับข้อความหนึ่งในสามข้อในโจทย์

เราสามารถพิสูจน์กรณีที่ DFS(v) ถูกเรียกให้ทำงานก่อน DFS(u) ได้โดยการใช้เหตุผลแบบเดียวกับข้างบน เพียงแต่สลับบทบาทของ กับ เท่านั้น