Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pa:laboratoare:laborator-09 [2018/05/02 19:33]
radu_silviu.visan
pa:laboratoare:laborator-09 [2020/05/05 19:12] (current)
darius.neatu [Algoritmul Bellman – Ford]
Line 1: Line 1:
 ====== Laborator 09: Drumuri minime ====== ====== Laborator 09: Drumuri minime ======
 +
 +Responsabili:​
 +  * [[neatudarius@gmail.com|Darius Neațu]]
 +  * [[stefanpopa2209@gmail.com | Ștefan Popa]]
  
 ===== Obiective laborator ===== ===== Obiective laborator =====
Line 46: Line 50:
 ==== Relaxarea unei muchii ==== ==== Relaxarea unei muchii ====
  
-Relaxarea unei muchii v1 - v2 consta in a testa daca se poate reduce ​costul ei, trecând ​printr-un nod intermediar ​u. Fie w12 costul inițial al muchiei de la v1 la v2, w1u costul ​muchiei ​de la v1 la u, si wu2 costul ​muchiei ​de la u la v2. Daca > w1u + wu2, muchia directa este înlocuita cu succesiunea de muchii v1 - u, u - v2.+Relaxarea unei muchii v1 - v2 consta in a testa daca se poate **reduce ​distanta** de la **sursă** până la v2, trecând ​prin nodul intermediar ​v1 si apoi circuland pe muchia (v1,v2) 
 + 
 +<​note>​ 
 +Fie w12 costul inițial al ** muchiei ​directe** ​de la v1 la v2, w1u costul ​** drumului**  ​de la v1 la u, si wu2 costul ​**drumului** ​de la u la v2. Daca w12 > w1u + wu2, **muchia directa** este înlocuita cu succesiunea de muchii v1 - u, u - v2. Dacă muchia nu există, se consideră ** w12 = infinit**. 
 + 
 +În acest exemplu, ** muchia relaxată ** este **u - v2 **, întrucât aceasta reduce distanta pentru drumul de la ** sursa** la v2, trecând prin v1. 
 +</​note>​
  
 In exemplul alăturat, muchia de la 1 la 3, de cost w13 = 50, poate fi relaxata la costul 30, prin nodul intermediar u = 2, fiind înlocuita cu succesiunea w12, w23. In exemplul alăturat, muchia de la 1 la 3, de cost w13 = 50, poate fi relaxata la costul 30, prin nodul intermediar u = 2, fiind înlocuita cu succesiunea w12, w23.
Line 148: Line 158:
 // relaxari succesive // relaxari succesive
 // cum in initializare se face o relaxare (daca exista drum direct de la sursa la nod =>  // cum in initializare se face o relaxare (daca exista drum direct de la sursa la nod => 
-// d[nod] = w[sursa, nod]) mai sunt necesare |V-2| relaxari  +// d[nod] = w[sursa, nod]) mai sunt necesare |V-1| relaxari  
-for i = 1 to |V|-+for i = 1 to |V|-
     foreach (u, v) in E  // E = multimea muchiilor     foreach (u, v) in E  // E = multimea muchiilor
         daca d[v] > d[u] + w(u,v)         daca d[v] > d[u] + w(u,v)
Line 337: Line 347:
     * C++: 1s     * C++: 1s
     * Java: 2s     * Java: 2s
-  * Pentru punctaj maxim, implementarea din laborator trebuie sa treaca toate testele, cu exceptia ​ultimelor 2, pe care va lua TLE. Pentru cei curiosi, exista si o implementare mai eficienta a algoritmului,​ oarecum similara cu cea de la Dijkstra (pentru mai multe detalii: [[https://​infoarena.ro/​problema/​bellmanford]])+  * Pentru punctaj maxim, implementarea din laborator trebuie sa treaca toate testele, cu exceptia ​testelor 8 si 9, pe care va lua TLE. Pentru cei curiosi, exista si o implementare mai eficienta a algoritmului,​ oarecum similara cu cea de la Dijkstra (pentru mai multe detalii: [[https://​infoarena.ro/​problema/​bellmanford]])
 </​note>​ </​note>​
  
Line 378: Line 388:
 === BONUS === === BONUS ===
 Pentru exercitiul cu Dijkstra, **reconstituiti** drumul de lungime minima **source** la celelalte noduri din graf. Pentru exercitiul cu Dijkstra, **reconstituiti** drumul de lungime minima **source** la celelalte noduri din graf.
- 
-Folositi fisierele din {{pa:​new_pa:​skel-lab09.zip}} din folderul **bonus** ca sa va verificati. ​ 
- 
-Pentru fisierul mare, folositi comanda **diff ** cu parametrul ** -w ** pentru a verifica usor ca outputul coincide. 
  
 === Extra === === Extra ===
pa/laboratoare/laborator-09.1525278780.txt.gz · Last modified: 2018/05/02 19:33 by radu_silviu.visan
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0