Differences

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

Link to this comparison view

sd-ca:laboratoare:lab-06 [2020/03/26 19:23]
rares.cheseli [Schelet]
sd-ca:laboratoare:lab-06 [2024/04/12 12:13] (current)
iarina_ioana.popa [Bibliografie]
Line 2: Line 2:
  
 Responsabili Responsabili
-  * [[dinuaadrian@gmail.com|Andrei Dinu]] +  * [[popaiarina13@gmail.com|Iarina-Ioana Popa]] 
-  * [[rares96cheseli@gmail.com|Rareș Cheșeli]]+  * [[stef.dascalu@gmail.com|Ștefan-Teodor Dascălu]]
  
 ===== Obiective ===== ===== Obiective =====
Line 57: Line 57:
 ^1|1|0|1|1|1| ^1|1|0|1|1|1|
 ^2|1|1|0|1|0| ​ ^2|1|1|0|1|0| ​
-^3|0|1|1|1|0| +^3|0|1|1|0|0| 
 ^4|0|1|0|1|0| ​ ^4|0|1|0|1|0| ​
  
Line 229: Line 229:
 De remarcat faptul că, pentru ambele tipuri de parcurgeri, complexitatea este cea menționată ''​O(|E|+|V|)''​ **numai în cazul în care grafurile sunt reținute ca liste de adiacență**. În acest caz, lista corespunzătoare nodului x reține numai vecinii nodului x.  De remarcat faptul că, pentru ambele tipuri de parcurgeri, complexitatea este cea menționată ''​O(|E|+|V|)''​ **numai în cazul în care grafurile sunt reținute ca liste de adiacență**. În acest caz, lista corespunzătoare nodului x reține numai vecinii nodului x. 
 În cazul matricei de adiacență,​ pentru a parcurge vecinii unui nod x, trebuie să parcurgem toate nodurile. Această limitare duce la o complexitate de ''​O(|V|^2)''​ În cazul matricei de adiacență,​ pentru a parcurge vecinii unui nod x, trebuie să parcurgem toate nodurile. Această limitare duce la o complexitate de ''​O(|V|^2)''​
-</​note> ​+</​note>​ 
 + 
 +===== Algoritmul Floyd-Warshall ===== 
 +Algoritmul Floyd-Warshall este un algoritm folosit pentru căutarea celor mai scurte căi într-un graf orientat ce are cost pe fiecare muchie (costul poate fi pozitiv sau negativ, dar nu pot exista cicli negativi). 
 +Algortimul compară toate căile posibile din graf între toate perechile de noduri. 
 + 
 +=== Pseudocod === 
 +<​code>​ 
 + 
 +dist[V][V]  ​  // Matricea de distanțe minime, inițializate cu INFINIT 
 +pentru fiecare nod v 
 +  dist[v][v] = 0 
 + 
 +pentru fiecare pereche de noduri (u, v) 
 +  dist[u][v] = cost(u, v) 
 + 
 +pentru k între 0 și |V| – 1 
 +  pentru i între 0 și |V| – 1 
 +     pentru j între 0 și |V| – 1 
 +        dacă (dist[i][k] + dist[k][j]) < dist[i][j]  
 +          dist[i][j] = dist[i][k] + dist[k][j] 
 +</​code>​ 
  
 ===== Schelet ===== ===== Schelet =====
-{{:​sd-ca:​laboratoare:​lab06.zip|}}+<note important>​ 
 +Daca folositi **Github Classroom**,​ va rugam sa va actualizati scheletul cu cel de mai jos. Cel din repo-ul clonat initial nu este la cea mai recenta versiune. 
 +</​note>​ 
 +{{:​sd-ca:​laboratoare:​lab6_skel_v2.zip|Scheletul de laborator}}
 ===== Exerciţii ===== ===== Exerciţii =====
  
 <​note>​ <​note>​
-Fiecare laborator va avea unul sau doua exerciții publice şun pool de subiecte ascunsedin care asistentul poate alege cum se formează celelalte puncte ale laboratorului.+Trebuie să vă creați cont de [[https://​lambdachecker.io | Lambda Checker]]dacă nu v-ați creat deja, pe care îl veți folosi la SD pe toată durata semestrului. Aveti grija sa selectati contestul corect la submit, si anume **[[https://​beta.lambdachecker.io/​contest/​72/​problems?​page=1 |SDA-Lab-6]]**
 </​note>​ </​note>​
  
-1) [**2.5p**] Implementați,​ plecând de la scheletul de cod, graful reprezentat prin maitrce ​de adiacență.+1) [**2.5p**] Implementați,​ plecând de la scheletul de cod, graful reprezentat prin matrice ​de adiacență ​(**Graph implementation using list** pe Lambda Checker). 
 + 
 +2) [**2.5p**] Implementați,​ plecând de la scheletul de cod, graful reprezentat prin liste de adiacență (**Graph implementation using matrix** pe Lambda Checker).
  
-2) [**2.5p**] Implementați, plecând de la scheletul de cod, graful reprezentat prin liste de adiacență.+3) [**1p**] Implementați ​parcurgerea in adâncime (DFS) a unui graf implementat cu matrice ​de adiacență ​(**DFS** pe Lambda Checker).
  
-3) [**1**] Implementați parcurgerea in adâncime ​(DFS) a unui graf.+4) [**1p**] Implementați parcurgerea in lățime ​(BFS) a unui graf implementat cu listă de adiacență (**BFS** pe Lambda Checker).
  
-4) [**1**] Implementați ​parcurgerea in lățime (BFSa unui graf.+5) [**2p - bonus**] Implementați ​algoritmul Floyd-Warshall pe un graf reprezentat printr-o matrice de adiacență (**FloydWarshall** pe Lambda Checker).
 ===== Interviu ===== ===== Interviu =====
  
Line 262: Line 289:
     - [[http://​en.wikipedia.org/​wiki/​Depth-first_search | DFS ]]     - [[http://​en.wikipedia.org/​wiki/​Depth-first_search | DFS ]]
     - [[https://​en.wikipedia.org/​wiki/​Floyd%E2%80%93Warshall_algorithm | Algoritmul Floyd-Warshall ]]     - [[https://​en.wikipedia.org/​wiki/​Floyd%E2%80%93Warshall_algorithm | Algoritmul Floyd-Warshall ]]
-    - [[https://​ro.wikipedia.org/​wiki/​Algoritmul_lui_Kruskal | Algoritmul lui Kruskal ]] 
sd-ca/laboratoare/lab-06.txt · Last modified: 2024/04/12 12:13 by iarina_ioana.popa
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