delivering a shortest-paths tree when the graph has some negative-weig การแปล - delivering a shortest-paths tree when the graph has some negative-weig ไทย วิธีการพูด

delivering a shortest-paths tree wh

delivering a shortest-paths tree when the graph has some negative-weight edges. The Bellman-
Ford algorithm works in a more-general case than Dijkstra’s algorithm. It solves the shortest-paths
tree problem even when the graph has negative-weight edges. If there is a negative-weight cycle,
the algorithm indicates that no solution exists.
Recall that Dijkstra’s algorithm only relaxes those edges incident to the chosen vertex with
the minimum shortest-path estimate. The failure of Dijkstra’s algorithm for graphs with negativeweight
edges is due to the fact that it does not calculate the domino effect caused by negative edges.
Take a look at Figure 16 once again. In that figure, if we push the negative-edge effect forward, a
correct shortest-paths tree can then be built. This inspires the design of the Bellman-Ford algorithm
which relaxes all edges in each iteration.
Initially, the shortest-path estimates of all vertices other than the source are set to be 1. Then
the algorithm makes n¡1 passes over all the edges of the graph. In each pass, if ±[v] > ±[u]+w(u; v),
then we set the value of ±[v] to be ±[u]+w(u; v), and modify the predecessor of vertex v. A notable
feature of the Bellman-Ford algorithm is that in the kth iteration, the shortest-path estimate for
vertex v, i.e., ±[v], equals the length of the shortest path from the source to v with at most k edges.
If, after n¡1 passes, there exists an edge (u; v) such that ±[v] > ±[u]+w(u; v), then a negative cycle
has been detected. Otherwise, for all vertices other than the source, we build the shortest-paths
tree by adding the edges from their predecessors to them.
Algorithm: Bellman-Ford
Input: A weighted, directed graph G = (V;E;w); a source vertex s.
Output: A shortest-paths spanning tree T rooted at s.
for each vertex v 2 V do
±[v] Ã 1
¼[v] ÃNIL
±[s] Ã 0
for i à 1 to n ¡ 1 do
for each (u; v) 2 E do
if ±[v] > ±[u] + w(u; v) then
±[v] Ã ±[u] + w(u; v)
¼[v] Ã u
for each (u; v) 2 E do
if ±[v] > ±[u] + w(u; v) then
Output “A negative cycle exists.”
Exit
T Ã ;
for v 2 V ¡ s do
T Ã T [ f(¼[v]; v)g
The Bellman-Ford algorithm has the running time of O(mn) since there are O(n) iterations,
and each iteration takes O(m) time. The correctness follows from the fact that in the kth iteration,
the shortest-path estimate for each vertex equals the length of the shortest path from the source
to that vertex with at most k edges. Since a simple path in G contains at most n ¡ 1 edges, the
shortest-path estimates stabilize after n ¡ 1 iterations unless there exists a negative cycle in the
graph.
The following figures show how the execution of the Bellman-Ford works on the graph in
Figure 15. The dark dotted edges record those that do cause some effect in the relaxation. Initially,
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
ส่งต้นไม้เส้นทางที่สั้นที่สุดเมื่อกราฟมีน้ำหนักลบขอบบาง บริการ-อัลกอริทึมของฟอร์ดที่ทำงานในกรณีทั่วไปมากขึ้นกว่าวิธีของไดค์ มันแก้สั้นที่สุดเส้นทางต้นไม้ปัญหาแม้กราฟมีน้ำหนักลบขอบ ถ้ามีวงจรลบน้ำหนักอัลกอริทึมบ่งชี้ว่า โซลูชันที่ไม่มีอยู่นึกว่า ของไดค์ก็ขอบเหล่านั้นเหตุการณ์การจุดท่านด้วยเท่านั้นประเมินเส้นทางสั้นที่สุดน้อยที่สุด ความล้มเหลวของวิธีของไดค์สำหรับกราฟที่มี negativeweightขอบได้เนื่องจากข้อเท็จจริงที่ว่ามันไม่สามารถคำนวณผลกระทบต่อเนื่องที่เกิดจากค่าลบขอบมาดูรูป 16 ครั้ง ในรูปนั้น ถ้าเราผลักผลลบขอบ การเส้นทางที่สั้นที่สุดต้นไม้สามารถแก้ไข แล้วสร้าง นี้แรงบันดาลใจการออกแบบของอัลกอริทึมบริการฟอร์ดซึ่งก็ทั้งหมดขอบเนื่องเริ่ม ประเมินเส้นทางสั้นที่สุดของจุดยอดทั้งหมดไม่ใช่แหล่งจะตั้งเป็น 1 แล้วอัลกอริทึมทำผ่าน n¡1 ผ่านขอบทั้งหมดของกราฟ ในแต่ละรอบ ถ้า± [v] > [u] ± + w (u, v),แล้วเราตั้งค่า± [v] เป็น [u] ± + w (u, v), และปรับเปลี่ยนรุ่นก่อนของจุดยอด v ความโดดเด่นลักษณะการทำงานของอัลกอริทึมบริการฟอร์ดเป็นที่ kth เกิดซ้ำ การประเมินเส้นทางสั้นที่สุดสำหรับจุดยอด v เช่น ± [v], เท่ากับความยาวของเส้นทางที่สั้นที่สุดจากแหล่งไป v กับขอบ k ที่มากที่สุดถ้า หลังจาก n¡1 ผ่าน มีขอบ (u, v) เช่น±ที่ [v] > [u] ± + w (u, v), จากนั้นวงจรลบพบ มิฉะนั้น สำหรับจุดยอดทั้งหมดไม่ใช่แหล่งที่มา เราสร้างสั้นเส้นทางแผนภูมิ โดยการเพิ่มขอบจากบรรดาลูกหลานเหล่านั้นอัลกอริทึม: บริการฟอร์ดป้อนข้อมูล: น้ำหนัก กำกับกราฟ G = (V E; w); จุด s เป็นแหล่งผลลัพธ์: แบบสั้นเส้นทางซึ่งประกอบไปด้วยต้นไม้รากที่ s Tสำหรับแต่ละจุดยอด v 2 V ทำ± [v] อยู่ 1¼ [v] ÃNIL± [s] อยู่ 0ผมใช้ 1 n ¡ 1 ทำสำหรับแต่ละ (u, v) ทำ 2 Eถ้า± [v] > [u] ± + w (u, v) แล้ว± [v] ใช้± [u] + w (u, v)¼ [v] ใช้ uสำหรับแต่ละ (u, v) ทำ 2 Eถ้า± [v] > [u] ± + w (u, v) แล้วแสดงผล "รอบลบแล้ว"จบการทำงานใช้ Tสำหรับ v 2 V ¡ s ทำใช้ T T [f (¼ [v] v) gอัลกอริทึมบริการฟอร์ดได้เวลาทำงานของ O(mn) เนื่องจากมีการวนซ้ำ O(n)และการเกิดซ้ำแต่ละเวลา O(m) ความถูกต้องดังต่อไปนี้จากการที่เกิดซ้ำ kthประเมินเส้นทางสั้นที่สุดสำหรับแต่ละจุดยอดเท่ากับความยาวของเส้นทางสั้นที่สุดจากแหล่งกับจุดยอดที่มีมากที่สุด k ขอบ เนื่องจากประกอบด้วยเส้นทางง่ายใน G ที่มากที่สุด n ¡ 1 ขอบ การประเมินเส้นทางสั้นที่สุดอยู่ดีหลังจาก n ¡ 1 ซ้ำยกเว้นมีวงจรลบในการกราฟตัวเลขต่อไปนี้แสดงวิธีการดำเนินการของฟอร์ดบริการงานบนกราฟในรูปที่ 15 มืดจุดขอบคอร์ดที่ไม่ก่อให้เกิดผลบางอย่างในการพักผ่อน เริ่มต้น
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
ส่งเส้นทางที่สั้นที่สุด-ต้นไม้เมื่อกราฟมีขอบเชิงลบน้ำหนัก Bellman-
ขั้นตอนวิธีการทำงานของฟอร์ดในกรณีที่มากขึ้นกว่าขั้นตอนวิธีการทั่วไปของ Dijkstra
มันแก้เส้นทางที่สั้นที่สุด-ปัญหาต้นไม้แม้ในขณะที่กราฟมีขอบเชิงลบน้ำหนัก
หากมีวงจรเชิงลบน้ำหนักขั้นตอนวิธีการแสดงให้เห็นว่าไม่มีวิธีแก้ปัญหา.
จำได้ว่าขั้นตอนวิธี Dijkstra
เพียงผ่อนคลายผู้ที่เหตุการณ์ที่เกิดขึ้นไปยังขอบจุดสุดยอดได้รับการแต่งตั้งมีขั้นต่ำประมาณการเส้นทางที่สั้นที่สุด ความล้มเหลวของอัลกอริทึมของ Dijkstra สำหรับกราฟกับ negativeweight
ขอบเป็นเพราะความจริงที่ว่ามันไม่ได้คำนวณผลกระทบโดมิโนที่เกิดจากขอบเชิงลบ.
ลองดูที่รูปที่ 16 อีกครั้งหนึ่ง
ในรูปที่ว่าถ้าเราผลักดันผลกระทบขอบข้างหน้าซึ่งเป็นที่ถูกต้องเส้นทางที่สั้นที่สุดต้นไม้-จากนั้นจะสามารถสร้าง
นี้เป็นแรงบันดาลใจการออกแบบของอัลกอริทึมยาม-ฟอร์ดที่ผ่อนคลายขอบทั้งหมดในแต่ละซ้ำ.
ในขั้นต้นประมาณการเส้นทางที่สั้นที่สุดของจุดทั้งหมดที่นอกเหนือจากแหล่งที่มีการกำหนดให้ 1
แล้วขั้นตอนวิธีทำให้n¡1ผ่านขอบทั้งหมดของกราฟ ในการผ่านแต่ละถ้า± [วี]> ± [u] + W (มึง; V),
แล้วเรากำหนดค่าของ± [วี] จะเป็น± [u] + W (U; V) และปรับเปลี่ยนบรรพบุรุษ ของโวลต์จุดสุดยอด.
ให้บริการที่โดดเด่นคุณลักษณะของอัลกอริทึมยามฟอร์ดที่อยู่ในการย้ำKTH
ที่ประมาณการที่สั้นที่สุดเส้นทางสำหรับโวลต์จุดสุดยอดคือ± [วี] เท่ากับความยาวของเส้นทางที่สั้นที่สุดจากแหล่งที่มาเพื่อโวลต์ที่มี . ส่วนใหญ่ขอบ k
ถ้าหลังจากผ่านn¡1มีอยู่ขอบ (มึง; V) เช่นที่± [วี]> ± [u] + W (มึง; V)
แล้ววงจรเชิงลบได้รับการตรวจ มิฉะนั้นสำหรับจุดอื่น ๆ
ทั้งหมดกว่าแหล่งที่มาของเราสร้างเส้นทางที่สั้นที่สุดต้นไม้โดยการเพิ่มขอบจากรุ่นก่อนของพวกเขากับพวกเขา.
อัลกอริทึม:
ยามฟอร์ดอินพุต: การถ่วงน้ำหนักกราฟ G = (V; E; W); .
จุดสุดยอดแหล่งวินาทีเอาท์พุท:. ให้สั้นที่สุดเส้นทางที่ทอด T ฝังรากต้นไม้ที่ s
สำหรับแต่ละจุดสุดยอดวี 2 V
ทำ± [วี] 1
¼ [วี] Anil
± [s] 0
สำหรับผม 1 ถึง n ¡ 1
ทำแต่ละ(มึง; V) 2 E
ทำถ้า± [วี]> ± [u] + W (มึง; V)
แล้ว± [วี] ñ [u] + W (มึง; V)
¼ [วี] Ã
ยูสำหรับแต่ละ(มึง; V) 2 E
ทำถ้า± [วี]> ± [u] + W (มึง; V)
แล้วเอาท์พุท"รอบเชิงลบที่มีอยู่."
ออกจาก
T Ã;
สำหรับโวลต์ 2 V ¡ s
ทำทีT [f (¼ [วี]; V)
กอัลกอริทึมยามฟอร์ดมีเวลาทำงานของO (ล้านบาท) เนื่องจากมี O (n)
การทำซ้ำและซ้ำกันใช้เวลาO (เมตร) เวลา ความถูกต้องต่อไปนี้จากข้อเท็จจริงที่ว่าในการทำซ้ำ KTH
ที่ประมาณการเส้นทางที่สั้นที่สุดสำหรับแต่ละจุดสุดยอดเท่ากับความยาวของเส้นทางที่สั้นที่สุดจากแหล่งที่มาเพื่อจุดสุดยอดที่มีมากที่สุดขอบ
k เนื่องจากเป็นเส้นทางที่ง่ายในการ G มีอย่าง n ที่สุด¡ 1
ขอบที่สั้นที่สุดเส้นทางประมาณการรักษาเสถียรภาพหลังจากn ¡ 1
ซ้ำจนกว่าจะมีอยู่วงจรลบในกราฟ.
ตัวเลขต่อไปนี้แสดงให้เห็นว่าการดำเนินการของยามฟอร์ดทำงานใน
กราฟในรูปที่15 ขอบประมืดบันทึกผู้ที่ทำก่อให้เกิดผลกระทบบางอย่างในการผ่อนคลาย ในขั้นต้น
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
ซึ่งเป็นเส้นทางสั้นที่สุด ต้นไม้ เมื่อกราฟมีขอบบางน้ำหนักเชิงลบ พนักงาน - ขั้นตอนวิธี
ฟอร์ดทำงานในคดีทั่วไปมากกว่าขั้นตอนวิธีของไดค์สตรา . มันแก้ปัญหาเส้นทางสั้นที่สุด
ต้นไม้แม้เมื่อกราฟมีน้ำหนักเชิงลบขอบ หากมีวงจรน้ำหนักลบ
ขั้นตอนวิธีแสดงว่าไม่มีวิธีแก้มีอยู่
จำได้ว่าขั้นตอนวิธีของไดค์สตราเพียงผ่อนคลายขอบที่เกิดขึ้นให้เลือกเส้นทางที่สั้นที่สุดยอดกับ
ขั้นต่ำประมาณ ความล้มเหลวของขั้นตอนวิธีของไดค์สตราสำหรับกราฟที่มีขอบ negativeweight
เนื่องจากข้อเท็จจริงที่ว่ามันไม่คำนวณผลกระทบโดมิโนจากขอบลบ .
มาดูรูปที่ 16 อีกครั้ง ในรูป ถ้าเราผลักดันผลขอบลบไปข้างหน้า ,
แก้ไขเส้นทางสั้นที่สุดต้นไม้ก็สามารถสร้าง นี้เป็นแรงบันดาลใจในการออกแบบของพนักงานฟอร์ดขั้นตอนวิธี
ซึ่งใช้ขอบในแต่ละ iteration .
ตอนแรก สั้นประมาณเส้นทางทุกจุดอื่นที่ไม่ใช่แหล่งถูกตั้งค่าเป็น 1 แล้ววิธีทำให้
n ¡ 1 ผ่านไปเหนือขอบของกราฟ ในการผ่านแต่ละ ถ้า± [ V ] > ± [ u ] w ( u ; V )
แล้วเราตั้งค่าของ± [ V ] เป็น± [ u ] w ( u ; V )และปรับเปลี่ยนบรรพบุรุษของจุดยอด V . คุณลักษณะเด่นของพนักงานฟอร์ด
ขั้นตอนวิธีใน kth ซ้ำ , เส้นทางที่สั้นที่สุดประมาณ
จุดยอด V , I , ± [ V ] เท่ากับความยาวของเส้นทางที่สั้นที่สุดจากแหล่งในที่ที่สุดขอบ K .
ถ้าหลังจาก N ¡ 1 ผ่าน , มีขอบ ( U ; V ) เช่นที่± [ V ] > ± [ u ] w ( U ; v ) แล้วรอบลบ
ถูกตรวจพบ มิฉะนั้นสำหรับทุกจุดอื่นที่ไม่ใช่แหล่งที่เราสร้างเส้นทางสั้นที่สุด
ต้นไม้โดยการเพิ่มขอบจากรุ่นก่อนของพวกเขาเพื่อพวกเขา
อัลกอริทึม : พนักงานฟอร์ด
ใส่ : ถ่วงน้ำหนัก กำกับกราฟ G = ( V ; E ; w ) ; แหล่ง VERTEX S .
ผลผลิต : เส้นทางสั้นที่สุดต้นไม้ทอดข้าม T รากใน s
สำหรับแต่ละจุดยอด V 2 V ทำ
± [ V ] Ã 1
¼ [ V ] Ãนิล
± [ S ] Ã 0
สำหรับผมÃ 1 n ¡ 1
( U ; v ) ละ 2 และทำ
ถ้า± [ V ] > ± [ u ] W ( U ;
v ) แล้ว± [ V ] ñ [ u ] w ( u ; V )
¼ [ V ] Ã u
( U ; v ) ละ 2 และทำ
ถ้า± [ V ] > ± [ u ] w ( U ; v )
" ออกรอบลบที่มีอยู่ "

T ออก Ã V 2 V ;
สำหรับ¡ทำÃ
T T [ f ( ¼ [ V ] ; V ) g
พนักงานฟอร์ดขั้นตอนวิธีมีวิ่งเวลา O ( MN ) เนื่องจากมี O ( n ) และการใช้แต่ละรอบ
, o ( M ) เวลา ความถูกต้องดังนี้ จากความจริงที่ว่าใน kth ซ้ำ
,เส้นทางที่สั้นที่สุดสำหรับแต่ละจุดยอดประมาณเท่ากับความยาวของเส้นทางที่สั้นที่สุดจากแหล่ง
ที่ยอดกับที่ขอบ k มากที่สุด เนื่องจากเส้นทางที่ง่ายที่สุดในกรัมประกอบด้วย N ¡ 1 ขอบ
เส้นทางสั้นที่สุด ประเมินเสถียรภาพ N ¡ 1 ซ้ำหลังจากเว้นแต่มีอยู่วงจรเชิงลบใน

กราฟ ตัวเลขต่อไปนี้แสดงวิธีการปฏิบัติของพนักงานฟอร์ดทำงานบนกราฟใน
รูปที่ 15ขอบมืดจุดบันทึกผู้ที่ก่อให้เกิดผลในการผ่อนคลาย ในตอนแรก
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2025 I Love Translation. All reserved.

E-mail: