เราจะทำการพิสูจน์ข้อความทั้งสามโดยใช้ข้อสังเกตสองข้อต่อไปนี้
ถ้า
Wikimedia Error
Error
Too many requests (f061ab2)
ถูกเรียกให้ทำงานหลังจาก
Wikimedia Error
Error
Too many requests (f061ab2)
ทำงาน
แต่ก่อนที่ จะทำงานเสร็จ แล้วจะมี path ใน DFS tree จาก ถึง
พิสูจน์: เนื่องจาก
Wikimedia Error
Error
Too many requests (f061ab2)
ถูกเรียกให้ทำงานระหว่างที่ ทำงานไปแล้วแต่ยังทำให้เสร็จ
เราจะได้ว่ามีลำดับของ vertex โดยที่ โดยที่
เรียก
Wikimedia Error
Error
Too many requests (f061ab2)
แล้ว เรียก เช่นนี้ไปเรื่อยๆ จนกระทั้ง
Wikimedia Error
Error
Too many requests (f061ab2)
เรียก
เนื่องจาก
เรียก
Wikimedia Error
Error
Too many requests (f061ab2)
แสดงว่ามี edge อยู่ในกราฟ
นอกจากนี้ edge นี้ยังเป็น tree edge อีกด้วย ในทำนองเดียวกัน เราจะได้ว่า edge
,
,
, ก็เป็น tree edge เช่นเดียวกัน ดังนั้นจึงมี path ใน DFS tree จาก ไปยัง
กรณีที่ 1
เราจะพิสูจน์ว่าถ้า
แล้ว edge
จะต้องเป็น tree edge หรือว่า forward edge
พิสูจน์: เนื่องจาก เรารู้ว่า เริ่มทำงานก่อน
Wikimedia Error
Error
Too many requests (f061ab2)
เนื่องจาก
เรารู้ว่า
ถูกเรียกก่อนที่
จะทำงานเสร็จ
ฉะนั้นจะต้องมี path ใน DFS tree จาก
ถึง กล่าวคือ
เป็นลูกหลานของ
ดังนั้น
จึงเป็น tree edge หรือไม่ก็ forward edge
กรณีที่ 2
เราจะพิสูจน์ว่าถ้า แล้ว edge
จะต้องเป็น back edge
พิสูจน์: เนื่องจาก
เรารู้ว่า
Wikimedia Error
Error
Too many requests (f061ab2)
เริ่มทำงานก่อน
เนื่องจาก
เรารู้ว่า ถูกเรียกก่อนที่
จะทำงานเสร็จ
ฉะนั้นจะต้องมี path ใน DFS tree จาก
ถึง
กล่าวคือ เป็นลูกหลานของ
ดังนั้น จึงเป็น back edge
กรณีที่ 3
เราจะพิสูจน์ว่าถ้า
และ
Wikimedia Error
Error
Too many requests (f061ab2)
ไม่มีส่วนร่วมกันแล้ว
จะต้องเป็น cross edge
พิสูจน์: ให้ประพจน์
แทนข้อความ "
และ ไม่มีส่วนร่วมกันแล้ว"
ใ้ห้ประพจน์
Wikimedia Error
Error
Too many requests (f061ab2)
แทนข้อความ "
เป็น cross edge"
เราต้องการพิสูจน์ว่า
Wikimedia Error
Error
Too many requests (f061ab2)
cross edge คือ edge ที่ไม่ใช่ tree edge, back edge, หรือ forward edge ดังนั้นเราสามารถพิสูจนฺ์ว่า เป็น cross edge
ได้โดยการพิสูจน์ข้อความ เมื่อ
เนื่องจาก
Wikimedia Error
Error
Too many requests (f061ab2)
เราจึงจะทำการพิสูจน์ข้อความ
แทน
สมมติให้ เป็นจริง กล่าวคือ เป็น tree, back, หรือ forward edge เราจะได้ว่า
- ถ้า
เป็น tree edge แล้ว เราจะได้ว่า
ถูกเรียกหลัง เริ่มทำงาน และ จบการทำงานก่อน
จะจบการทำงาน ดังนั้น
กล่าวคือช่วง
และ มีส่วนร่วมกัน
- ถ้า เป็น back edge แล้ว เราจะได้ว่า
เป็นลูกหลานของ ใน DFS tree ดังนั้น ถูกเรียกหลัง
เริ่มทำงาน และ
จบการทำงานก่อน จะจบการทำงาน ดังนั้น
กล่าวคือช่วง และ มีส่วนร่วมกัน
- ถ้า
เป็น forward edge แล้ว เราสามารถใช้การให้เหตุผลในข้อ 1 แสดงได้ว่า ช่วง
และ มีส่วนร่วมกันได้
ทั้งสามกรณีให้ข้อสรุปว่า และ
Wikimedia Error
Error
Too many requests (f061ab2)
มีส่วนร่วมกัน กล่าวคือประพจน์ ไม่เป็นจริง
ดังนั้นเราสามารถสรุปได้ว่าถ้า
และ ไม่มีส่วนร่วมกันแล้ว จะต้องเป็น cross edge