I-Algorithm ye-Floyd-Warshall Ichazwe Ngemininingwane

Isibuyekezo sokugcina: 13 Apreli 2026
  • Bala amabanga amancane phakathi kwawo wonke ama-node kumagrafu anesisindo usebenzisa uhlelo oluguquguqukayo.
  • Buyekeza i-matrix yebanga ngokuphindaphinda phezu kwama-node aphakathi ukuze uthole imizila emifushane engaqondile.
  • Yamukela izisindo ezingezinhle, ivumela ukubala lapho i-Dijkstra yehluleka khona, kodwa ithola futhi ayixazululi imijikelezo engezinhle.
  • Isebenza kahle kumagrafu amancane noma aminyene; ubunzima bayo be-O(n³) bukhawulela ukusetshenziswa kwayo kumagrafu amakhulu kakhulu.

I-algorithm ye-Floyd-Warshall

I -algorithm ye -Floyd-Warshall iyithuluzi elinamandla kwisayensi yamakhompyutha kanye nezibalo, ikakhulukazi eliwusizo kulabo abasebenza ngamagrafu nezinkinga zokwenza ngcono inethiwekhi . Le algorithm ikuvumela ukuthi uthole indlela emfushane phakathi kwazo zonke izibhangqwana zama-node kugrafu enesisindo, ukuxazulula ngempumelelo izinkinga eziyinkimbinkimbi.

Kulesi sihloko, sizohlola ngokujulile ukuthi i-algorithm isebenza kanjani, ukusetshenziswa kwayo, izinzuzo, kanye nokuqaliswa kwayo kwesinyathelo ngesinyathelo. Uma uke wazibuza ukuthi le-algorithm ingakusiza kanjani ngezinkinga zansuku zonke noma amaphrojekthi athuthuke kakhulu, qhubeka funda. Ake sikuhlukanise konke ukuze uqonde kalula.

Iyini i-algorithm ye-Floyd-Warshall?

I -algorithm ye-Floyd-Warshall iyindlela esetshenziswa ukubala amabanga amafushane kakhulu phakathi kwawo wonke ama-node kugrafu enesisindo. Iwusizo kakhulu ezinkingeni lapho amagrafu enesisindo esibi , njengoba ingazisingatha ngempumelelo, ngokungafani namanye ama-algorithm afana ne -algorithm kaDijkstra , angenawo.

Le nqubo isebenzisa indlela yokuhlela enamandla ukuze ibuyekeze ngokuphindaphindiwe i-array equkethe amabanga amafushane phakathi kwama-node. Ekupheleni kokuphindaphinda, i-array ibonisa izindlela ezimfushane phakathi kwanoma yimaphi ama-vertice amabili.

  Izakhiwo Zedatha Ekuhleleni: I-Ultimate Guide

Isebenza kanjani i-algorithm

I-algorithm isekelwe ku- matrix eseduze kwegrafu yokufaka. Ibe isisebenzisa izihibe ezintathu ezihlanganisiwe ukuhlola zonke izindlela ezingenzeka phakathi kwama-node, ibuyekeza amabanga uma indlela engaqondile imfushane kuneleyo eqondile. Le nqubo yenziwa ngokuphindaphindiwe kuze kube yilapho zonke izinhlanganisela zendlela sezihloliwe.

Isibonelo esiyisisekelo sendlela lokhu okusebenza ngayo kungaba ukucabangela igrafu enama-vertices anezinombolo bese uhlola ukuthi ibanga elisuka ku-A liye ku-C nge-B lingaphansi kwebanga eliqondile elisuka ku-A liye ku-C. Ngokwenza lokhu ngenhlanganisela ngayinye yama-vertices, umphumela wokugcina uba yi-matrix ekhombisa amabanga amancane phakathi kwawo wonke ama-node.

Ukuqaliswa kwePython

Kulabo abafuna ukusebenzisa le algorithm kumaphrojekthi abo, ikhodi ye-Python iyindlela enhle kakhulu. Indlela eyisisekelo ichazwe ngezansi:

ukungenisa ama-sys INF = sys.maxsize def Floyd_Warshall(igrafu): n = len(igrafu) dist = yomugqa kugrafu] for k in range(n): for i in range(n): for j in range(n): dist = min(dist, dist + dist) return dist graph = , , , ] result = Floyd_Warshall(igrafu) print(umphumela)

Kulesi sibonelo, i-matrix yokufaka iqukethe amabanga phakathi kwamanodi. Inani le-'INF' limelela amapheya wamanodi angaxhumekile ngokuqondile. Uma selufakiwe, uhlelo lubuyisela i-matrix entsha enamabanga amancane abaliwe.

Izicelo ze-Floyd-Warshall Algorithm

Le algorithm ayilona nje ilukuluku lezibalo; Isebenza ezindaweni ezahlukahlukene:

  • Idizayini yenethiwekhi yezokuthutha: Khomba imizila elungile phakathi kwamadolobha noma izindawo zokuthutha.
  • Ukuxhumana namanethiwekhi: Bala imizila emifushane kumasistimu ezokuxhumana.
  • Ukuthuthukisa isifunda: Dala amasekhethi asebenza kahle kakhulu ukuze unciphise izindleko nezikhathi.
  Ukuhlola I-algorithm YokuQala Oza Kuqala

Izinzuzo Nemikhawulo

I-algorithm ye-Floyd-Warshall inezinzuzo eziningana . Phakathi kwazo ikhono layo lokusebenza ngamagrafu anesisindo esingesihle , into engavamile kuma-algorithm amaningi. Ngaphezu kwalokho, kulula ukuyisebenzisa nokuyiqonda, okwenza ifinyeleleke ngisho nakubantu abasha ensimini.

Kodwa-ke, futhi inemikhawulo . Ubunzima bayo yi-O(n³), okusho ukuthi ayilungele amagrafu amakhulu kakhulu. Ezimweni ezinjalo, ezinye izindlela ezifana nama-algorithms asakazwe noma i-algorithm kaJohnson zingase zifaneleke kakhulu.

Amaphuzu Abalulekile Okufanele Uwakhumbule

Lapho uhlola ukuthi ingabe i-algorithm ye-Floyd-Warshall ikulungele yini ukuxazulula inkinga, cabangela lokhu okulandelayo:

  • Ilungele amagrafu aphelele lapho izindlela zidinga ukubalwa phakathi kwawo wonke amapheya wamanodi.
  • Isebenza kahle ngezisindo ezingezinhle, kodwa ayisekeli imijikelezo engalungile.
  • Idinga i-matrix yokufaka emelela kahle ukuxhumana nezisindo phakathi kwamanodi.

I-algorithm ye-Floyd-Warshall iyithuluzi eliguquguqukayo nelinamandla lokuxazulula izinkinga zegrafu eziyinkimbinkimbi, ukusuka ebangeni elincane ukuya ekuthuthukisweni komzila. Ukuqonda ukuthi isebenza kanjani kuzokuvumela ukuthi uyisebenzise ngempumelelo ezimeni eziningi nasezimbonini eziningi.

 

I-algorithm ye-dijkstra
I-athikili ehlobene:
Qonda i-algorithm ye-Dijkstra ngemininingwane