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 21:03]
daniela.becheanu [Exerciţii]
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 230: Line 230:
 Î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 =====
Line 235: Line 257:
 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. 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>​ </​note>​
-{{:​sd-ca:​laboratoare:​lab06_2022.zip|Scheletul de laborator}}+{{:​sd-ca:​laboratoare:​lab6_skel_v2.zip|Scheletul de laborator}}
 ===== Exerciţii ===== ===== Exerciţii =====
  
 <​note>​ <​note>​
-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://​lambdachecker.io/​contest/​37 |SD-CA-LAB-06 Grafuri ​basics]]**+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 matrice de adiacență (**Graph implementation using list** pe Lambda Checker).
  
-1) [**2.5p**] Implementați,​ plecând de la scheletul de cod, graful reprezentat prin matrice de adiacență (**Matrix 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).
- +
-2) [**2.5p**] Implementați,​ plecând de la scheletul de cod, graful reprezentat prin liste de adiacență (**List Graph Implementation** pe Lambda).+
  
-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 268: 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.1649268228.txt.gz · Last modified: 2022/04/06 21:03 by daniela.becheanu
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