อ่าน 5 นาที
ต้นไม้เชื่อมโยงคอขวดขั้นต่ำ
ในทางคณิตศาสตร์ต้นไม้แผ่ขยายคอขวดขั้นต่ำ (MBST)ในกราฟแบบไม่มีทิศทาง คือต้นไม้แผ่ขยายที่ขอบที่แพงที่สุดมีราคาถูกที่สุดเท่าที่จะเป็นไปได้...
ต้นไม้เชื่อมโยงคอขวดขั้นต่ำ
ในทางคณิตศาสตร์ต้นไม้แผ่ขยายคอขวดขั้นต่ำ (MBST)ในกราฟแบบไม่มีทิศทาง คือต้นไม้แผ่ขยายที่ขอบที่แพงที่สุดมีราคาถูกที่สุดเท่าที่จะเป็นไปได้ ขอบคอขวดคือขอบที่มีน้ำหนักมากที่สุดในต้นไม้แผ่ขยาย ต้นไม้แผ่ขยายจะเป็นต้นไม้แผ่ขยายคอขวดขั้นต่ำ หากกราฟนั้นไม่มีต้นไม้แผ่ขยายที่มีน้ำหนักขอบคอขวดน้อยกว่า[ 1 ]สำหรับกราฟแบบมีทิศทางปัญหาที่คล้ายกันนี้เรียกว่าต้นไม้แผ่ขยายคอขวดขั้นต่ำ (MBSA )
คำจำกัดความ
กราฟแบบไม่มีทิศทาง

ในกราฟที่ไม่มีทิศทางG ( V , E )และฟังก์ชันw : E → Rให้Sเป็นเซตของต้นไม้แผ่ขยายทั้งหมดT iให้B ( T i ) เป็นขอบที่มีน้ำหนักสูงสุดสำหรับต้นไม้แผ่ขยายT i ใดๆ เรากำหนดเซตย่อยของต้นไม้แผ่ขยายคอขวดขั้นต่ำS ′โดยที่สำหรับทุกT j ∈ S ′และT k ∈ SเรามีB ( T j ) ≤ B ( T k )สำหรับทุกiและ k [ 2 ]
กราฟทางด้านขวาเป็นตัวอย่างของ MBST โดยเส้นสีแดงในกราฟก่อให้เกิด MBST ของ G ( V , E )
กราฟทิศทาง

โครงสร้างต้นไม้แบบมีทิศทาง (Arborescence) ของกราฟGคือต้นไม้แบบมีทิศทางของGซึ่งประกอบด้วยเส้นทางแบบมีทิศทางจากโหนดL ที่กำหนด ไปยังแต่ละโหนดของเซตย่อยV ′ ของV \{ L }โหนดLเรียกว่ารากของโครงสร้างต้นไม้แบบมีทิศทาง โครงสร้างต้นไม้แบบมีทิศทางจะเป็นโครงสร้างต้นไม้แบบมีทิศทางครอบคลุม (Spanning Arborescence) ถ้าV ′ = V \{ L }ในกรณีนี้ MBST คือโครงสร้างต้นไม้แบบมีทิศทางครอบคลุมที่มีขอบคอขวดน้อยที่สุด MBST ในกรณีนี้เรียกว่าโครงสร้างต้นไม้แบบมีทิศทางครอบคลุมที่มีขอบคอขวดน้อยที่สุด (Minimum Bottleneck Spanning Arborescence หรือ MBSA)
กราฟทางด้านขวาเป็นตัวอย่างของ MBSA โดยเส้นขอบสีแดงในกราฟก่อให้เกิด MBSA ของ G ( V , E )
คุณสมบัติ
MST (หรือต้นไม้ครอบคลุมขั้นต่ำ ) จำเป็นต้องเป็น MBST แต่ MBST ไม่จำเป็นต้องเป็น MST [ 3 ]
อัลกอริทึมของ Camerini สำหรับกราฟแบบไม่มีทิศทาง
ในปี 1978 Camerini ได้เสนอ[ 5 ]อัลกอริทึมที่ใช้ในการสร้างต้นไม้ครอบคลุมคอขวดขั้นต่ำ (MBST) ในกราฟแบบไม่มีทิศทาง เชื่อมต่อ และมีน้ำหนัก ขอบที่กำหนดไว้ โดยจะแบ่งขอบออกเป็นสองชุดเท่าๆ กัน น้ำหนักของขอบในชุดหนึ่งจะไม่เกินน้ำหนักของขอบในอีกชุดหนึ่ง หาก มี ต้นไม้ครอบคลุมอยู่ในกราฟย่อยที่ประกอบด้วยขอบในชุดขอบที่มีขนาดเล็กกว่าเท่านั้น ก็จะคำนวณ MBST ในกราฟย่อยนั้น ซึ่ง MBST ของกราฟย่อยนั้นก็คือ MBST ของกราฟดั้งเดิมนั่นเอง หาก ไม่มี ต้นไม้ครอบคลุมอยู่ ก็จะรวมส่วนประกอบที่ไม่เชื่อมต่อกันแต่ละส่วนเข้าเป็นจุดยอดใหญ่ใหม่ จากนั้นคำนวณ MBST ในกราฟที่สร้างขึ้นจากจุดยอดใหญ่เหล่านี้และขอบในชุดขอบที่มีขนาดใหญ่กว่า ป่าในแต่ละส่วนประกอบที่ไม่เชื่อมต่อกันเป็นส่วนหนึ่งของ MBST ในกราฟดั้งเดิม ทำซ้ำกระบวนการนี้จนกว่าจะเหลือจุดยอด (ใหญ่) สองจุดในกราฟ และจะต้องเพิ่มขอบเดียวที่มีน้ำหนักน้อยที่สุดระหว่างจุดยอดทั้งสองนั้น MBST จะถูกค้นพบโดยประกอบด้วยขอบทั้งหมดที่พบในขั้นตอนก่อนหน้า[ 4 ]
รหัสเทียม
ขั้น ตอนดังกล่าวมีพารามิเตอร์อินพุตสองตัวGคือกราฟwคืออาร์เรย์น้ำหนักของขอบทั้งหมดในกราฟG [ 6 ]
ฟังก์ชัน MBST(กราฟG , น้ำหนักw ) E ← เซตของขอบของG ถ้า | E | = 1 ให้คืนค่าE มิฉะนั้นA ←ขอบครึ่งหนึ่งในEที่มีน้ำหนักไม่น้อยกว่าค่ามัธยฐาน B ← E - A F ← ป่าของG Bถ้าFเป็นต้นไม้แผ่คลุมให้คืนค่า MBST( G B , w ) มิฉะนั้นให้คืนค่า MBST(( G A ) η , w ) Fใน ( G A ) ข้างต้น ηคือกราฟย่อยที่ประกอบด้วยจุดยอดหลัก (โดยถือว่าจุดยอดในส่วนประกอบที่ไม่เชื่อมต่อกันเป็นจุดยอดเดียว) และขอบใน A
ระยะเวลาการวิ่ง
อัลกอริทึมนี้ทำงานใน เวลา O ( E ) โดยที่Eคือจำนวนขอบ ขอบเขตนี้บรรลุได้ดังนี้:
- แบ่งออกเป็นสองชุดโดยใช้อัลกอริธึมการหาค่ามัธยฐานในO ( E )
- การค้นหาป่าในO ( E )
- เมื่อพิจารณาขอบครึ่งวงใน E ในแต่ละรอบการทำซ้ำ T(E)=T(E/2)+O(E) ตามทฤษฎีบทมาสเตอร์ความซับซ้อนของเวลาโดยรวมคือO ( E )
หมายเหตุ : การประมาณเวลาในการทำงานคือ O(E) แทนที่จะเป็น O(E+V) (การท่องกราฟใช้เวลา O(E+V)) แต่ในกรณีนี้กราฟเชื่อมต่อกัน ดังนั้น V-1<=E ดังนั้น O(E+V)=O(E)
ตัวอย่าง
ในตัวอย่างต่อไปนี้ เส้นขอบสีเขียวใช้ในการสร้าง MBST และพื้นที่สีแดงประแสดงถึงจุดยอดพิเศษที่เกิดขึ้นระหว่างขั้นตอนของอัลกอริทึม
อัลกอริทึม MBSA สำหรับกราฟแบบมีทิศทาง
มีอัลกอริธึมสองแบบที่ใช้ได้สำหรับกราฟแบบมีทิศทาง ได้แก่ อัลกอริธึมของ Camerini สำหรับการค้นหา MBSA และอีกอัลกอริธึมหนึ่งจาก Gabow และ Tarjan [ 4 ]
อัลกอริทึมของ Camerini สำหรับ MBSA
สำหรับกราฟแบบมีทิศทาง อัลกอริทึมของ Camerini มุ่งเน้นไปที่การค้นหาเซตของขอบที่จะมีค่าใช้จ่ายสูงสุดเป็นค่าใช้จ่ายคอขวดของ MBSA โดยทำโดยการแบ่งเซตของขอบEออกเป็นสองเซตAและBและรักษาเซตTซึ่งเป็นเซตที่ทราบว่าG Tไม่มีอาร์โบเรสเซนซ์แบบครอบคลุม เพิ่มTด้วยBเมื่อใดก็ตามที่อาร์โบเรสเซนซ์สูงสุดของG ( B ∪ T ) ไม่ใช่อาร์โบเรสเซนซ์แบบครอบคลุมของGมิฉะนั้นเราจะลดEด้วย Aความซับซ้อนของเวลาทั้งหมดคือO ( E log E ) [ 5 ] [ 4 ]
รหัสเทียม
ฟังก์ชัน MBSA( G , w , T ) คือE ← เซตของขอบของG ถ้า | E − T | > 1 แล้วA ← UH(ET) B ← ( E − T) − A F ← BUSH( G BUT ) ถ้าFเป็นอาร์โบเรสเซนซ์แผ่ขยายของ G แล้ว ส ← เอฟ MBSA(( G แต่ ), w , T ) อย่างอื่น MBSA(G, w , TUB );
- T แทนเซตย่อยของ E ซึ่งทราบว่า G Tไม่ประกอบด้วยโครงสร้างกิ่งก้านสาขาที่เชื่อมต่อกันโดยมีรากอยู่ที่โหนด “a” ในตอนเริ่มต้น T ว่างเปล่า
- UH รับเซตของขอบ (E−T) ใน G และส่งคืน A ⊂ (E−T) โดยที่:
- W a ≥ W bสำหรับ a ∈ A และ b ∈ B
- BUSH(G) ส่งคืนโครงสร้างกิ่งก้านสาขาที่ใหญ่ที่สุดของ G ที่รากอยู่ที่โหนด “a”
- ผลลัพธ์สุดท้ายจะเป็น S
ตัวอย่าง
อัลกอริทึม Gabow และ Tarjan สำหรับ MBSA
GabowและTarjanได้นำเสนอการปรับเปลี่ยนอัลกอริทึมของ Dijkstraสำหรับเส้นทางที่สั้นที่สุดจากแหล่งกำเนิดเดียวที่สร้าง MBSA อัลกอริทึมของพวกเขาทำงานใน เวลา O ( E + V log V ) หากใช้ฮีปฟิโบนาชชี[ 7 ]
รหัสเทียม
สำหรับกราฟG(V,E) นั้น Fคือกลุ่มของจุดยอดในV ในขั้นต้นF = { s } โดยที่sคือจุดเริ่มต้นของกราฟGและc ( s ) = -∞ 1 ฟังก์ชัน MBSA-GT( G , w, T )ทำซ้ำ 2 ครั้ง (V) 3 เลือกvที่มีค่าc ( v ) น้อยที่สุดจากF ; 4. ลบออกจากF ; 5 สำหรับขอบทุกเส้น ( v, w ) ให้ทำ 6 ถ้าw ∉ Fหรือ ∉ Tree แล้ว 7 เพิ่มw ลงในF; 8 c ( w ) = c ( v,w ); 9 p ( w ) = v ; 10 มิฉะนั้น 11 ถ้าw ∈ Fและc(w) > c(v, w) แล้ว 12 c ( w ) = c ( v, w ); 13 p ( w ) = v ; ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าอัลกอริธึมทำงานอย่างไร
แนวทางอื่นที่เสนอโดย Tarjan และ Gabow ที่มีขอบเขตO ( E log * V )สำหรับกราฟเบาบาง ซึ่งคล้ายกับอัลกอริทึมของ Camerini สำหรับ MBSA มาก แต่แทนที่จะแบ่งเซตของขอบออกเป็นสองเซตในแต่ละรอบการทำซ้ำ จะมีการแนะนำ K ( i )โดยที่iคือจำนวนการแบ่งที่เกิดขึ้น หรือกล่าวอีกนัยหนึ่งคือหมายเลขการทำซ้ำ และK ( i )เป็นฟังก์ชันเพิ่มขึ้นที่แสดงถึงจำนวนเซตที่แบ่งแล้วที่ควรมีในแต่ละรอบการทำซ้ำK ( i ) = 2 k ( i − 1)โดยที่k (1) = 2อัลกอริทึมจะค้นหาλ *ซึ่งเป็นค่าของขอบคอขวดใน MBSA ใดๆ หลังจากที่พบλ * แล้ว arborescence ที่ครอบคลุมใด ๆ ใน G ( λ * )จะเป็น MBSA โดยที่G ( λ * )คือกราฟที่ต้นทุนของขอบทั้งหมด≤ λ * [ 4 ] [ 7 ]
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ต้นไม้เชื่อมโยงคอขวดขั้นต่ำ
ในทางคณิตศาสตร์ต้นไม้แผ่ขยายคอขวดขั้นต่ำ (MBST)ในกราฟแบบไม่มีทิศทาง คือต้นไม้แผ่ขยายที่ขอบที่แพงที่สุดมีราคาถูกที่สุดเท่าที่จะเป็นไปได้...
กราฟแบบไม่มีทิศทาง
ในกราฟที่ไม่มีทิศทาง G ( V , E ) และฟังก์ชัน w : E → R ให้ S เป็นเซตของต้นไม้แผ่ขยายทั้งหมด T i ให้ B ( T i ) เป็นขอบที่มีน้ำหนักสูงสุดสำหรับต้นไม้แผ่ขยาย T i ใดๆ เรากำหนดเซตย่อยของต้นไม้แผ่ขยายคอขวดขั้นต่ำ S ′ โดยที่สำหรับทุก T j ∈ S ′ และ T k ∈ S เรามี B (...
กราฟทิศทาง
โครงสร้างต้นไม้แบบมีทิศทาง (Arborescence) ของกราฟ G คือต้นไม้แบบมีทิศทางของ G ซึ่งประกอบด้วยเส้นทางแบบมีทิศทางจากโหนด L ที่กำหนด ไปยังแต่ละโหนดของเซตย่อย V ′ ของ V \{ L } โหนด L เรียกว่ารากของโครงสร้างต้นไม้แบบมีทิศทาง...
คุณสมบัติ
MST (หรือ ต้นไม้ครอบคลุมขั้นต่ำ ) จำเป็นต้องเป็น MBST แต่ MBST ไม่จำเป็นต้องเป็น MST [ 3 ]

















