Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 003 Floyd-Warshall/Roy-Floyd  (Citit de 29539 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« : Februarie 26, 2008, 18:07:24 »

Aici puteti discuta despre problema Floyd-Warshall/Roy-Floyd.
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #1 : Martie 29, 2008, 10:23:48 »

Dar de ce se considera ca nu exista drum intre un nod si el insusi, pentru ca daca de exemplu exista drum intre B si C , intre C si E si intre E si B, atunci exista drum de la B la B: B-C-E-B  Smile
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #2 : Martie 29, 2008, 10:39:42 »

Citat
sa se determine pentru orice pereche de noduri x si y lungimea minima a drumului de la nodul x la nodul y

B-C-E-B este un ciclu.
Memorat

Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #3 : Martie 29, 2008, 10:53:22 »

B-C-E-B este un ciclu.
Dap ... n-am citit fff atent  Brick wall
Memorat
k_ounu_eddy
Vorbaret
****

Karma: -104
Deconectat Deconectat

Mesaje: 161



Vezi Profilul
« Răspunde #4 : Decembrie 17, 2008, 18:15:46 »

Nu am inteles prea bine faza aia cu ordinea lui k,i si j.De ce trebuie sa fie neaparat asa?Intuiesc eu de ce,dar nu pot sa demonstrez.Este din cauza ca dak nu avem forurile in ordinea k,i,j, drumurile nu o sa mai fie optime,nu?De ce?
Am cautat pe mai multe site-uri si nu am gasit raspunsul
Memorat
stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« Răspunde #5 : Decembrie 17, 2008, 20:17:19 »

Roy-Floyd e un algoritm de programare dinamica. Mai intai calculeaza pentru drumurile de lungime 1 intre oricare 2 noduri i si j, apoi pentru drumurile de lungime 2, etc. Deci variabila k reprezinta lungimea drumului. Incearca sa retii ideea din spatele algoritmului, si nu doar ca sunt 3 for-uri in ordinea k, i, j.
Memorat

Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
k_ounu_eddy
Vorbaret
****

Karma: -104
Deconectat Deconectat

Mesaje: 161



Vezi Profilul
« Răspunde #6 : Decembrie 17, 2008, 21:26:18 »

Sa zicem ca am inteles cam ce vroiam eu .Tx
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #7 : Decembrie 18, 2008, 06:44:50 »

Stefane nu e bine ce ai zis. Algoritmul calculeaza la pasul k drumurile optime intre i si j care folosesc ca noduri intermediare nodurile din multimea {1, 2, ... k}.

Incearca sa retii ideea din spatele algoritmului, si nu doar ca sunt 3 for-uri in ordinea k, i, j Tongue
Memorat
stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« Răspunde #8 : Decembrie 18, 2008, 08:51:48 »

Ah, da. Greseala mea Embarassed
Memorat

Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #9 : Decembrie 18, 2008, 13:53:26 »

Incearca sa retii ideea din spatele algoritmului, si nu doar ca sunt 3 for-uri in ordinea k, i, j Tongue

Mie mi-a luat cativa ani ca sa inteleg exact ce face roy-floyd. M-am multumit sa stiu ordinea k, i, j Tongue. Acelasi lucru l-am facut si la arbori indexati binar, kmp si la flux. Nu e ok sa inveti pe de rost un algoritm, desi in concurs te poate ajuta sa implementezi corect o solutie de care te prinzi. Daca nu intelegeti ceva, e bine sa reveniti asupra lui periodic, inarmati cu noi cunostinte, pana cand sunteti convinsi ca e totul limpede.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
k_ounu_eddy
Vorbaret
****

Karma: -104
Deconectat Deconectat

Mesaje: 161



Vezi Profilul
« Răspunde #10 : Decembrie 18, 2008, 17:49:02 »

Citat
Deci variabila k reprezinta lungimea drumului
Cred ca ce vroia sa spuna Stefan,e ca la fiecare pas,intre i si j se afla maxim k noduri intermediare.

@wefgef:Stii vreun articol,vreun site in care sa se explice mai bine cum functioneaza Roy-Floyd?
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #11 : Decembrie 18, 2008, 19:23:39 »

Ai putea sa incerci in Cormen.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
k_ounu_eddy
Vorbaret
****

Karma: -104
Deconectat Deconectat

Mesaje: 161



Vezi Profilul
« Răspunde #12 : Decembrie 19, 2008, 17:42:17 »

ok  Smile
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #13 : Decembrie 20, 2008, 09:38:47 »

Nu k noduri intermediare, ci noduri intermediare din multimea {1, 2, .. k}. Daca nu ai Cormenul la indemana poti sa cauti pe google de exemplu wikipedia are o explicatie a algoritmului.
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #14 : Martie 11, 2009, 21:05:52 »

Imi spune si mie cineva unde gresesc  la sursa sa deja turbez  Brick wall
http://infoarena.ro/job_detail/277712?action=view-source
Memorat
gabor_oliviu1991
Nu mai tace
*****

Karma: 28
Deconectat Deconectat

Mesaje: 200



Vezi Profilul
« Răspunde #15 : Martie 11, 2009, 21:11:14 »

conditie ar trebui sa fie asa:

Cod:
a[ i ][ k ]!=0&&a[ k ][ j ]!=0&&(a[ i ][ k ]+a[ k ][ j ]<a[ i ][ j ]|| a[ i ][ j ]==0) && i!=j

cred ca uiti "sau"-ul ala. actualizezi a[ i ][ j ] ai daca drumul de la i->j ii mai mare decat i->k->j sau nu ai drum deloc
« Ultima modificare: Martie 11, 2009, 21:37:10 de către gaboru corupt » Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #16 : Martie 12, 2009, 07:54:37 »

multumesc:D
Memorat
marcelcodrea
Nu mai tace
*****

Karma: 173
Deconectat Deconectat

Mesaje: 217



Vezi Profilul
« Răspunde #17 : Martie 29, 2009, 13:21:36 »

Cred că problema Coach a lui Radu Berinde se foloseste cel mai bine de componenta intrinsecă a algoritmului Roy - Floyd :

Algoritmul calculeaza la pasul k drumurile optime intre i si j care folosesc ca noduri intermediare nodurile din multimea {1, 2, ... k}.

Propun să fie introdus un link catre Coach, acolo unde se propune ca exerciţiu explicarea ordinii iteratorilor.
Memorat
Bogdan_tmm
De-al casei
***

Karma: 4
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #18 : Ianuarie 12, 2010, 09:58:06 »

Dar daca am aplica dijkstra pentru fiecare  nod? Nu ar fi corect?
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #19 : Ianuarie 12, 2010, 13:22:22 »

Ba da, este același lucru. Dar există probleme unde se folosesc proprietățile algoritmului Roy-Floyd (vezi Coach).
Memorat
Bogdan_tmm
De-al casei
***

Karma: 4
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #20 : Ianuarie 12, 2010, 16:50:21 »

Dar complexitatea in loc de n^3 devine n*m* log n
L.E. Pentru numar mare de muchii nu are rost:)
« Ultima modificare: Ianuarie 12, 2010, 16:55:43 de către Tarca Bogdan » Memorat
cristiprg
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 23



Vezi Profilul
« Răspunde #21 : Februarie 16, 2010, 00:26:12 »

pot exista costuri negative?
Memorat
philip
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #22 : Februarie 16, 2010, 16:03:50 »

pot exista costuri negative?

La problema asta nu o sa fie, insa algoritmul Floyd-Warshall/Roy-Floyd merge si pe grafuri cu costuri negative.
Ciclurile sunt cele care trebuie sa fie tot timpul pozitive.
Memorat
cristiprg
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 23



Vezi Profilul
« Răspunde #23 : Februarie 17, 2010, 09:38:51 »

Ciclurile sunt cele care trebuie sa fie tot timpul pozitive.
dar algoritmul determina cicluri de cost negativ? nu prea vad cum ... pentru ca is alea 3 for-uri,  si atat, eventual numa daca mai aplici inca o data Roy-Floyd, si tot mai poti imbunatati costuri....atunci exista ciclu negativ?
Memorat
philip
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #24 : Februarie 17, 2010, 16:29:53 »

Ciclurile sunt cele care trebuie sa fie tot timpul pozitive.
dar algoritmul determina cicluri de cost negativ? nu prea vad cum ... pentru ca is alea 3 for-uri,  si atat, eventual numa daca mai aplici inca o data Roy-Floyd, si tot mai poti imbunatati costuri....atunci exista ciclu negativ?

Poti afla daca ai cicluri negative dupa prima aplicare Roy-Floyd asa... verifici diagonala principala din matricea costurilor (drum minim de la i la i) si daca ai cost negativ inseamna ca ai un ciclu de cost negativ.
Dar nu cred ca ar trebui sa apara la vreo problema cicluri de cost negativ. Nu prea are sens.
Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines