Sunteți pe pagina 1din 8

Lista probleme laborator AG

1. Desenaţi graful care modelează harta unui site web. Nodurile reprezintă paginile site-ului
sau alte site-uri web şi conexiunile între noduri definesc link-urile interne sau externe site-
ului web. Pentru conexiuni definiţi un sens. Astfel, muchiile devin arce. Un arc de la nodul
A la nodul B are semnificaţia următoare: de la elementul asociat nodului A există un link la
elementul asociat nodului B.
2. Pentru harta străzilor unei localităţi, intersecţiile se pot reprezenta prin nodurile unui graf şi
străzile prin arce. Pentru o stradă cu două sensuri se definesc două arce de sens invers între
cele două intersecţii. Desenaţi graful asociat unei zone din localitate. O anume intersecție la
câte străzi este incidentă în graful respectiv? Graful este ciclic sau aciclic?
3. Cu ce tip de graf puteți modela transmiterea mesajelor în jocul „telefonul fără fir” pentru a
putea compara mesajul final cu cel inițial?
4. Identificați în lumea reală situații care se modelează cu grafuri complete / grafuri regulate
ponderate / grafuri bipartite (complete) / dense.
5. Dați exemplu de o relaționare între clienți ai unei companii care se modelează cu un graf
care nu este simplu. Un graf care nu are muchii paralele sau bucle se numeşte graf simplu.
6. Desenați un graf reprezentând relațiile de prietenie de pe LinkedIn (id-uri 1...n). Câți
prieteni are persoana k (1 <= k <= n) și care sunt aceștia? Care persoane au minim k
prieteni?
7. Desenați graful conținând s+d+p noduri reprezentând asocieri între grupe de studenți (1…s)
cu discipline (1…d) și profesori (1…p). Pentru fiecare grupă determinați disciplinele pe
care le studiază. Câte cursuri ține fiecare profesor?
8. Găsiți un exemplu de situație în viața de zi cu zi care se poate reprezenta cu un graf planar,
dar care nu este hartă. Un graf se numește planar dacă poate fi desenat în plan astfel încât
muchiile sale nu se întretaie.

9. Se consideră graful următor

Să se indice reprezentările acestuia prin matrice de adiacență, listă de muchii, listă de


adiacență, listă de incidență și matrice de incidență. Care este ordinul grafului (nr de
noduri), gradul minim și gradul maxim din graf (aferente nodurilor)?
10. Care este ordinul grafului? Care este minimul gradelor și maximul gradelor dacă matricea sa
de adiacență este următoarea?

0 0 1 1 0 0
0 0 1 0 1 0
1 1 0 1 1 0
1 0 1 0 0 0
0 1 1 0 0 1
0 0 0 0 1 0

11. Implementați programe pentru reprezentarea grafurilor neorientate prin toate metodele
prezentate. Determinați pentru fiecare dintre ele numărul de muchii ale unui graf citit dintr-
un fișier și afișați aceste muchii.
12. Adaptați programele implementate pentru grafuri orientate. Determinați numărul de arce ale
unui graf citit dintr-un fișier și afișați aceste arce, pentru fiecare reprezentare implementată.
13. Pentru un graf neorientat afișați toate muchiile incidente cu un nod dat. Care reprezentare
este cea mai adecvată pentru aceasta?
14. Se citește un graf. Afișați nodurile sale în ordinea crescătoare a gradelor lor. Cât este gradul
maxim? Cât este gradul minim? Care sunt nodurile cu grad maxim?
15. Dintr-un fișier se citește matricea de adiacență a unui graf reprezentand relațiile de prietenie
de pe o rețea de socializare (nodurile 1, 2, ..., n sunt id-urile persoanelor). Câți prieteni are
persoana k (citit la tastatură) și care sunt aceștia? Care persoane au minim p prieteni (p citit
la tastatură)? Sunt toate persoanele la fel de prietenoase? Dacă da, ce fel de graf este cel
citit?
16. Se citesc două grafuri neorientate. Adăugați nodurile izolate din primul graf în al doilea
graf, dacă ele nu există deja, și conectați-le cu ultimul nod din acest graf (al doilea).
Nodurile terminale din primul graf se vor transforma apoi în noduri izolate.
17. Se citesc două grafuri orientate. Adăugați vârfurile cu grad extern 1 din primul graf în al
doilea graf, dacă ele nu există deja și conectați-le cu primul nod din acest graf (al doilea),
prin arce în ambele sensuri.
18. Se citește graful relațiilor contractuale între n organizații comerciale. Care este rețeaua care
memorează inexistența contractelor între aceste organizații?
19. Identificați exemple de grafuri izomorfe în viața de zi cu zi.
20. Când se pretează folosirea fiecărei modalități de reprezentare a grafurilor?
21. Implementați programe pentru reprezentarea grafurilor ponderate (neorientate și orientate)
prin toate metodele expuse în capitol.
22. Se citește un digraf (graf orientat) reprezentând funcțiile dintr-un program și apelurile lor.
Identificați funcțiile care sunt “unreachable code” (vârfurile care nu se pot atinge din vârful
reprezentând funcția principală a programului) și anulați aceste vârfuri.
23. Citiți dintr-un fișier graful reprezentând datoriile financiare existente între n persoane (un
arc cu valoarea v de la x la y semnifică faptul că x are o datorie de v lei la y). Ce sumă are de
returnat persoana x (x citit la tastatură) și cât are de încasat? Dacă graful este echilibrat, ce
înseamnă aceasta? Care este graful după ce toate datoriile cu valoare mai mică de 100 de lei
sunt returnate? Care este graful după ce persoanele nemulțumite (care au de încasat sume de
bani de la mai mult de trei persoane, dar au datorie la cel mult o persoană) ies din grup?
24. Dintr-un fișier se citesc listele de adiacență asociate la două grafuri reprezentând relațiile de
prietenie pe două rețele de socializare (nodurile 1, 2, ..., n sunt id-urile persoanelor).
Exemplu

Rețeaua 1 Rețeaua 2
2 - 3,4,6 1 - 5,6
3 - 2,6,8 3-6
4-8 5 - 1,6,7,8
5-8 6 - 1,3,5,8
6 - 2,3,8 7-5
8 - 3,4,5,6 8 - 5,6

Care sunt relațiile de prietenie între persoanele care au conturi pe ambele rețele?
25. Un circuit electronic se reprezintă printr-un graf în care nodurile sunt joncțiuni, iar muchiile
sunt componente. Care este circuitul dacă se îndepărtează p componente date? (Obținerea
unui graf parțial al grafului inițial)
26. Se citesc rețelele de transport rutier, respectiv feroviar, între localități din județul Prahova.
Care este rețeaua de drumuri posibile (indiferent de tip) între toate localitățile ce se găsesc
pe acele hărți? Care sunt traseele comune pe ambele rețele?
27. Se citesc două grafuri G1 și G2. Este G2 subgraf al lui G1?
28. Se citește rețeaua de n aeroporturi pe care Tarom operează în lume. Care sunt rutele posibile
ce rezultă daca 1, ..., n aeroporturi se închid? (Afișarea tuturor subgrafurilor grafului).
29. Următoarele două grafuri sunt izomorfe?

30. Demonstrați că grafurile ilustrate mai jos sunt izomorfe:


31. Se citesc două grafuri din fișiere. Sunt acestea izomorfe?
32. Verificați dacă două mesaje exprimate în două limbi folosesc aceeași gramatică. Spre
exemplu, conceptele (sau cuvintele) și conexiunile lingvistice dintre ele sunt reprezentate ca
în grafurile următoare:

33. Dați exemplu de un lanț compus deschis în graful de mai jos. Există aici un ciclu elementar
simplu? Dacă da, ce lungime are? Un ciclu simplu există?

34. Să se indice ciclurile elementare și ciclurile simple ale grafului următor:

35. Pentru un graf afișați nodurile în ordinea crescătoare a gradelor lor. Această succesiune este
lanț în graf? Dacă da, acesta este simplu sau compus?
36. Afișați numărul de bucle dintr-un graf orientat dat. Care este reprezentarea cea mai adecvată
pentru această operație pe graf?
37. Verificați dacă un graf dat este ciclic sau aciclic.
38. Determinați toate lanțurile de lungime maxim 5 dintr-un graf, lanțuri care pornesc din nodul
x (citit la tastatură), împreună cu sublanțurile lor de lungime 3.
39. Pe baza hărții drumurilor dintr-un campus universitar, unde apar n corpuri de studiu, m
cămine studenţeşti, un teren de sport, un centru medical şi o bibliotecă, determinați toate
traseele simple pe care un student cazat la căminul ci ( le poate alege pentru a
ajunge la niște puncte date (ca secvență ordonată) și a reveni apoi la cămin. De exemplu, el
are nevoie într-o zi să treacă în această ordine prin punctele: cămin2, corp_de _studiu1,
bibliotecă, corp_de _studiu5, teren_de_sport, cămin2. Pentru fiacare dintre aceste trasee
afișați lungimea totală parcursă.
40. Determinați toate drumurile elementare dintr-un graf orientat care pornesc din vârful x (citit
la tastatură).
41. Pentru un graf reprezentând o hartă rutieră cu distanțele asociate, există un ciclu care
conține nodul x, de lungime mai mică decât l (x și l citite la tastatură)?
42. Se citește un graf neorientat. Pentru care noduri x și y există un lanț de la x la y?
43. Determinați toate ciclurile/circuitele unui graf neorientat/orientat.
44. Pe baza hărții rutiere cu acces la muzee, castele și locații din natură din Muntenia, un ghid
turistic vrea să alcătuiască toate traseele cu maxim 7 puncte turistice care să includă cel
puțin un castel, un muzeu și o locație din natură. Cum îl ajutăm?
45. Se construiește graful relațiilor de rudenie (relații de sânge sau prin alianță, marcate diferit)
care cuprinde n persoane. Cum aflăm dacă persoana x este rudă de sânge cu persoana y?
Dacă este, cât de apropiată este relația (de grad de rudenie există între ele)?
46. Se citește un graf orientat (prin arcele sale) reprezentând datoriile a n persoane (arcul de la x
la y semnifică faptul că x are o datorie de returnat lui y). Care sunt toate posibilitățile ca
datoria lui x să fie transferată, prin una sau mai multe persoane, dacă și alte persoane au
datorie la x?
47. O agenție de turism este interesată să cunoască numărul de trasee turistice diferite între două
locații date, toate având același număr k de puncte de vizită. Care este acesta pentru k citit la
tastatură?

48. O aplicație de editare imagini alb-negru necesită conectarea tuturor punctelor negre. Cum
realizăm aceasta?
49. Se citește graful relațiilor de ordine între activitățile unui proiect de realizare a unui site
web. În ce ordine ar putea fi toate activitățile executate astfel încât să fie respectate toate
aceste relații de ordine impuse? Există mai multe astfel de succesiuni posibile diferite?
50. Dacă un graf dat este arbore, care este cea mai lungă cale între două noduri?
51. Într-un graf neorientat, să se determine câte noduri în parcurgerea pe lățime pornind dintr-un
anumit nod au gradul impar.
52. Să se determine ciclurile unui graf neorientat.
53. Se consideră mulțimea de numere{3, 5, 6, 9, 10, 15, 20, 25, 18, 27}. Să se construiască un
graf orientat având etichete numerele din mulțime. Între două vârfuri i și j se trasează arcul
dacă numărul i este un divizor al numărului j. Sortați topologic graful obținut.

54. Descrieți câteva aplicații din lumea reală ale grafurilor conexe, slab conexe și tare conexe.
55. Desenați un graf orientat care nu este slab conex.
56. Proiectați un algoritm pe baza BFS care determină componentele conexe ale unui graf.
57. Demonstrați că dacă un graf nu este conex, atunci graful complementar al acestuia este
conex.
58. Care este conectivitatea-nod a următoarelor grafuri? Dar conectivitatea-muchie?
Conectivitatea-nod a unui graf este numărul minim de noduri care prin eliminare fac ca
graful să devină neconex sau să devină un graf trivial (cu un singur nod). Conectivitatea-
muchie a unui graf este dată de numărul minim de muchii care trebuie eliminate pentru ca
graful să devină neconex sau trivial.

59. Care din grafurile prezentate la exercițiul anterior sunt euleriene?


60. Care din grafurile prezentate la exercițiul anterior sunt hamiltoniene?
61. Desenați un graf cu conectivitatea-muchie egală cu 3 și imaginați o situație din lumea reală
pentru care acest lucru este critic.
62. Determinați dacă un graf dat este eulerian. În caz afirmativ afișați ciclurile euleriene.
63. Determinați dacă un graf dat este hamiltonian. În caz afirmativ, afișați ciclurile hamiltoniene
și un ciclu hamiltonian de lungime cel puțin t (dacă există), cu t citit la tastatură.
64. Descompuneți un graf eulerian în cicluri.

65. Determinați calea de lungime minimă între perechile de noduri: 5 și 7, 0 și 3, 6 și 4 din


graful următor:

66. Cum ajungem pe drumul cel mai scurt de acasă la universitate?


67. Un muzician s-a hotărât pentru anul acesta să țină câte un concert într-un oraș din fiecare
regiune a țării. Dacă ai fi managerul lui, ce traseu i-ai recomanda, pentru ca drumul parcurs
în turneu să fie minim?
68. Vreau să pun anunțuri pe aleile dintr-un parc astfel încât să îl vadă cât mai mulți trecători.
Nu vreau să parcurg de două ori aceeași alee. Ce traseu să aleg? Nu contează din care punct
plec. Cunosc lungimile aleilor.

69. Desenați un arbore cu 8 noduri, etichetate de la 1 la 8. Care sunt nodurile frunză și care sunt
nodurile interne? Care sunt descendenții nodului 5 și câți fii are acesta?
70. Pentru graful următor dați exemple de doi arbori de acoperire. Care sunt complementele
acestora?

71. Desenați un arbore 4-ar. Care este înălțimea sa? Nivelul nodului x (citit la tastatură) care
este? Un arbore k-ar este un arbore cu rădăcină în care fiecare nod are cel mult noduri-fiu
72. Desenați un arbore binar complet de înălțime 5. Câte noduri are acesta?
73. Pentru arborele binar de căutare următor care sunt pașii pentru căutarea valorilor 7 și 10?

74. Inițialale numelor unor copii dintr-un sunt diferite între ele. Distribuiți aceste inițiale într-un
arbore binar de căutare. Căutați apoi inițiala x citită la tastatură. Câte comparații au fost
necesare?
75. Cum se sortează elementele unei mulțimi folosind un arbore binar de căutare?
76. Un graf pote avea mai mulți arbori de cost minim. Cum se determină toți acești arbori? În ce
caz un graf are un singur arbore de cost minim?
77. O companie petrolieră trebuie să construiască o reţea de conducte pentru a conecta 7 puţuri
(A...G) la o staţie de procesare (H). Conductele posibile pe care le pot construi şi costurile
asociate sunt cele de mai jos.

Conducta Cost Conducta Cost


(um) (um)
AB 23 CG 10
AE 17 DE 14
AD 19 DF 20
BC 15 EH 28
BE 30 FG 11
BF 27 FH 35

Ce conducte asigură un cost total al reţelei minim? Care este acest cost?

78. Implementaţi algoritmul Ford-Fulkerson pentru determinarea fluxului maxim și a tăieturii


minime pentru o rețea de transport a apei într-un oraș.
79. Implementaţi algoritmul de eliminare a circuitelor de cost negativ pentru determinarea
fluxului de cost minim pentru o valoare dată v > 0. Pentru determinarea unui flux admisibil
ințial se va aplica algoritmul Ford-Fulkerson conform indicațiilor furnizate după algoritm.

S-ar putea să vă placă și