Sunteți pe pagina 1din 5

Tema 1

Hrebenciuc Alexandru-Ioan(2B5), Enea Iustin Gabriel(2B5)


Noiembrie 2022

Problema 1
a) Stim ca doua triplete (starti , stationi , endi ) si (startj , stationj , endj ) sunt
adiacente ⇔ stationi = stationj si (starti , endi )∩(startj , endj ) = ϕ ⇒ fac parte
din aceiasi componenta conexa. Stim de asemenea din enuntul problemei ca prin
fiecare cele k statii trece cel putin un tramvai ⇒ pentru fiecare statie X avem
2 cazuri: I. Statia face parte dintr-o singura componenta conexa deoarece pentru
toate perechile de forma (starti1 , X, endi1 ), (starti2 , X, endi2 ). . . (startit , X, endit )
pentru t ≥ 1 avem (starti1 , X, endi1 )∩(starti2 , X, endi2 )∩. . . ∩ (startit , X, endit )
̸= ϕ II. Statia face parte din cel putin 2 componente conexe deoarece re-
gasim cel putin doua triplete de forma (starti , X, endi ) si (startj , X, endj ) a.i.
(starti , X, endi )∩(startj , X, endj ) = ϕ ⇒Pentru fiecare statie numarul de comp.
conexe ≥ 1 ⇒Pentru toate cele K stat, ii, numărul de comp. conexe ≥ K

b) Demonstrat, i că răspunsul la ı̂ntrebarea primăriei este ω(G).


ω(G) = numărul de noduri din clica maximală aflată ı̂n graful G Două tramavaie
T1 s, i T2 se pot regăsi ı̂n aceias, i stat, ie <=> ∃(starti , stationi , endi ) ∈ T 1
s, i ∃(startj , stationj , endj ) ∈ T 2 a.ı̂. stationii = stationj s, i (starti , endi ) ∩
(startj , endj ) ̸= ∅
=>(Conform enunt, ului) cele două triplete sunt adiacente => formează o clică
de grad 2 (K2 ).
Trei tramvaie T1, T2, T3 se pot regăsi ı̂n aceias, i stat, ie <=> (starti , stationi , endi ) ∈
T 1, ∃(startj , stationj , endj ) ∈ T 2s, i∃(startp , stationp , endp ) ∈ T 3 a.ı̂. stationi =
stationj = stationp s, i (starti , endi ) ∩ (startj , endj ) ∩ (startp , endp ) ̸= ∅ =>
(conform enunt, ului) cele 3 triplete sunt adiacente 2 câte 2 => Formează un K3 .
Pp. prin metoda inductivă că dacă α tramvaie T 1. . . T α se pot regăsi ı̂n aceias, i
stat, ie ı̂ntr-un interval de timp formând Kα atunci dacă mai există un tramvai
T α + 1 care se poate regăsi ı̂n aceias, i stat, ie cu cele α tramvaie ı̂ntr-un interval
de timp nevid, atunci tripletele tramvaielor T 1, T 2. . . T α + 1 formează Kα+1 .
Dem:
Tripletele tramvaielor T 1. . . T α formează Kα => (starti1 , endi1 )∩(starti2 , endi2 )∩
. . . ∩ (startiα , endiα ) ̸= ∅ iar stationi1 = stationi2 = . . . = stationiα
=> Daca T α + 1 se poate regăsi ı̂n aceias, i stat, ie cu toate celelalte α tram-
vaie atunci: Tripletele (startij , stationij , endij )∀j = 1. . . α sunt adiacente cu
tripletul (startα+1 , stationα+1 , endα+1 ) => Dacă T 1. . . T α formează un Kα iar

1
T α + 1 adiacent cu toate tripletele din Kα => T 1. . . T α + 1formează Kα+1 =>
Presupunerea este corectă.
=> Pentru a regăsi numărul maxim de tramvaie ce se pot găsi ı̂ntr-o stat, ie
trebuie să calculăm ω(G)

c) ∀i ∈ (0, k − 1), (starti , endi ) ∩ (starti+1 , endi+1 ) ̸= ϕ si ∀j ∈ (0, k − 1), j ̸=


i, j ̸= i + 1, (starti , endi ) ∩ (startj , endj ) = ϕ, adica pentru orice tripleta, inter-
valul de timp se poate intersecta cu un singur interval de timp, deoarece avem
circuit indus. Dar cum avem circuit, (start1 , end1 ) ∩ (startk , endk ) ̸= ϕ ,ceea
ce ar insemna ca (startk , endk ) ∩ (startj ′ , endj ′ ) ̸= ϕ, j ′ ∈ [2, k − 1], dar cum
avem k ≥ 4, ar insemna ca |Ng (startj ′ , statie, endj ′ )| ≥ 2(de la ciclu)+2(muchii
in ciclu) ⇒ Contradictie,nu mai avem subgraf indus.

d)
Pentru a implementa operat, ia visitedN eighbors[v] = maxu∈V −S (visitedN eighbors[u])(∗)
ı̂n O(1) este necesar să utilizăm un max heap, astfel pentru a utiliza elementul
maxim, complexitatea va fi mereu constantă: O(1)
De asemenea pentru a implementa ı̂ntregul algoritm ı̂n O(n + m)(n = |V |, m =
|E|) este necesar să utilizăm max heap-ul pentru operat, ia (*) s, i reprezentarea
prin liste de adiacent, ă pentru graf astfel ı̂ncat BFS-ul să aibă complexitatea
O(n + m), dacă ar fi folosită reprezentarea prin matrici de adiacent, ă atunci
BFS-ul ar fi fost ı̂n O(n2 ).

e)
∀i, 1 ≤ i ≤ n, vecinătatea lui xi ı̂n Gi , NGi (xi ) = Kj unde 1 ≤ j ≤ n
vom init, ializa π(xi ) = i
La fiecare iterat, ie a lui i vom verifica dacă nodul v este egal cu xi , ı̂n momentul
ı̂n care găsim două astfel de noduri iar gradul clicii din care face parte nodul v
este mai mare decât ω(G) actualiăam ω(G) = n − i + 1.

...
π(v) = i;
if (v == xi )
ω(G) = M ax(ω(G), n − i + 1);
...

Problema 2
a) graf complet → graf turneu. ∀uv, vw ∈ E(V ), cum e graf complet, trebuie sa
∃uv sau wu ∈ E(V ), dar wu ∈ / E(V ), deoarece nu mai respecta proprietatea de
aciclitate, deci ∃uw ∈ E(V ) ⇔ graful este tranzitiv. Cum avem un graf turneu,
fara cicluri ⇔ avem o sortare topologica unica, in care avem uv ∈ E(V ), pentru
d− −
g (v) < dg (u), ∀u, v ∈ V (G). Avem n! permutari pentru n noduri. Fiind un
turneu tranzitiv, avem un unic mod de a ordona muchiile, astfel ca putem doar
schimba ordinea nodurilor in graf, dar toate aceste grafuri vor fi izomorfe cu gra-

2
ful initial(automorfism). PP prin RA ca ∀ 2 noduri neconsecutive, u, v ∈ V (G)
a.i. d− −
g (u) + 1 < dg (v), reverse(G’,uv) este o orientare aciclica a lui G. Asta
inseamna ca ∃ cel putin un nod w, d− − −
g (u) < dg (w) < dg (v). Dar cum graful
e tranzitiv si complet, avem uw,wv∈E(V), dar cum am facut reverse si avem
si vu∈E(V) ⇔ avem un ciclu u-w-v-u ⇔ contradictie. Putem observa astfel ca
pentru a putea pastra proprietatea de aciclitate, avem voie sa inversam doar
o muchie pentru 2 noduri vecine in ordinea topologica. Daca avem 2 orientari
aciclice distincte(2 permutari diferite), inseamna ca difera pozitia a cel putin 2
noduri in ordinea sortarilor topologice, deci vor exista cel putin 2 vecini u,v din
ordonarea topologica a primei orientari aciclice, care vor fi in ordine inversa in
cea de a doua.

b)Avand 2 orientari aciclice, pentru un graf complet, practic avem 2 permu-


tari diferite ale nodurilor de la 1 la n. Putem efectua doar schimbari intre 2
noduri vecine in ordonarea topologica, asa ca vom cauta al n-lea element din
permutarea finala in permutarea initiala, si vom swap-ui 2 cate 2 elemente pana
il aducem pe ultima pozitie. Analog pentru al n-1 lea element, pana la primul.
( practic facem un BubbleSort)

c)Cum avem deja o orientare aciclica cu n noduri, va trebuie sa luam restul


muchiilor astfel incat sa avem un graf complet tranzitiv, care e si unic. practic
luam orientarea aciclica initiala cu n noduri, o sortam topologic, si adaugam
muchii corespunzator astfel incat gradele interioare sa fie 0,1,...n-1.

d)Pentru orice graf, avand orientari aciclice si graful fiind orientat, vom face
sortare topologica. De data asta, nodurile interioare nu vor mai fi neaparat
consecutive si se pot repeta. In acest caz nu mai avem prop. de tranzitivitate,
deci vom putea avea 2 noduri random u,v din ordinea sortarii topologice, Intai
verificam daca exista uv. Dupa care, e important ca in ordinea sort. topologice
sa nu existe noduri intre u si v prin care sa existe drum d(u, multime noduri
intre u si v,v), deoarece reverse-ul lui uv ar cauza ciclu.

Problema 3
Vom presupune că ideea de rezolvare a studentului este una corectă. Luăm un
exemplu:

3
=> Aplicând teoria studentului, vom aduna 10 la valoarea costurilor tuturor
muchiilor din graful G1 s, i va rezulta graful G2 :


Comparând cele două grafuri observăm că ı̂n G1 : Psc = 2 (fiind ales conform
algoritmului lui Dijkstra traseul s− > d− > e− > c)

În timp ce ı̂n G2 : Psc = 23 (fiind ales alt traseu, mai exact: s− > b− > c prin
utilizarea aceluias, i algoritm)

4
=> Cum cele două trasee sunt diferite=> presupunerea facută este FALSĂ
deoarece algoritmul propus de student ar trebui să funct, ioneze pe orice instant, ă
a problemei care respecta condit, iile.
Matematic:
Pentru G1 : −10 + 13 > −10 + 6 + 6/+(număr de muchii)∗10
=> G22 : 2 ∗ 10 − 10 + 13 < 3 ∗ 10 − 10 + 6 + 6 = 23 < 32
=> După cum observăm, ı̂n funct, ie de numărul de muchii alese pentru calcu-
larea costului drumului de la s la c prin aplicarea algoritmului Dijkstra, cu cât
avem mai multe muchii cu atât costul drumului va cres, te mai tare, acesta fiind
ı̂ncă un motiv pentru demonstrarea nefunct, ionalităt, ii algoritmului propus de
student.

Problema 4
Fie d(U1 ), d(U2 ), ..., d(Uk ) drumurile minime din nodul s catre nodurile U1 , U2 , ..Uk ,
a.i. Ui ∈ V (G), i ∈ [1, k]. Trivial, putem observa ca orice drum minim din S
catre nodurile U1 , U2 , ..Uk va trece prin su ∈ E(V) cu proprietatea ca u ∈ Ng (s).
(trebuie sa trecem neaparat prin una din muchiile cu cost negativ care pleaca
nodul initial s). Fie C o constanta, cu proprietatea ca C=max(cost(sv))+1, v∈
Ng(s). Astfel, putem adauga K la costul muchiilor ce pleaca din s,pentru a le
face pe toate pozitive. Una dintre aceste muchii poate fi parcursa o singura
data, pentru ∀d(Ui ), i ∈ [1, k], deci nu vom avea cazul, ca la exercitiul anterior,
de parcurgere de 2 sau mai multe ori a unei muchii negative, respectiv a adau-
garii lui K de 2 sau mai multe ori. In final, pentru a afla lungimea reala pentru
∀d(Ui ), i ∈ [1, k], vom scadea K.

BONUS:
v = xi <=> π(v) = i
Gi = [xi , xi+1 ...xn ]
∀1 ≤ i ≤ nNGi (xi ) este o clică

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