Differences

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

Link to this comparison view

sd-ca:laboratoare:lab-06 [2022/04/06 12:34]
maximilian.banu
sd-ca:laboratoare:lab-06 [2024/04/12 12:13] (current)
iarina_ioana.popa [Bibliografie]
Line 2: Line 2:
  
 Responsabili Responsabili
-  * [[maximilian.banu@stud.acs.upb.ro|Maximilian Banu]] +  * [[popaiarina13@gmail.com|Iarina-Ioana Popa]] 
-  * [[becheanudaniela04@gmail.com|Daniela Becheanu]]+  * [[stef.dascalu@gmail.com|Ștefan-Teodor Dascălu]]
  
 ===== Obiective ===== ===== Obiective =====
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_graph_1_skel.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 ​important+<​note>​ 
-Daca folositi Github Classroom, va rugam sa va actualizati scheletul cu cel de mai josCel din repo-ul clonat initial ​nu este la cea mai recenta versiune.+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 semestruluiAveti 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 matrice de adiacență (**Matrix ​Graph Implementation** pe Lambda).+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ță (**List Graph Implementation** pe Lambda).+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).
  
-3) [**1p**] Implementați parcurgerea in adâncime (DFS) a unui graf implementat cu matrice de adiacență (**Matrix Graph DFS** pe Lambda).+3) [**1p**] Implementați parcurgerea in adâncime (DFS) a unui graf implementat cu matrice de adiacență (**DFS** pe Lambda ​Checker).
  
-4) [**1p**] Implementați parcurgerea in lățime (BFS) a unui graf implementat cu listă de adiacență (**List Graph BFS** pe Lambda).+4) [**1p**] Implementați parcurgerea in lățime (BFS) a unui graf implementat cu listă de adiacență (**BFS** pe Lambda ​Checker).
  
-5) [**2p - bonus**] Implementați algoritmul Floyd-Warshall pe un graf reprezentat printr-o matrice de adiacență(pentru a primi punctajul, implementați soluția local, apoi urcați codul pe GitHub)+5) [**2p - bonus**] Implementați algoritmul Floyd-Warshall pe un graf reprezentat printr-o matrice de adiacență (**FloydWarshall** ​pe Lambda Checker).
 ===== Interviu ===== ===== Interviu =====
  
Line 264: 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.1649237648.txt.gz · Last modified: 2022/04/06 12:34 by maximilian.banu
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