Documente Academic
Documente Profesional
Documente Cultură
Rozica-Maria Tache
rozica.tache@fmi.unibuc.ro
Curs 1
Despre curs
Aplicații
Istoric
Noțiuni de bază și notații
Grafuri standard
Algoritmica grafurilor
https://math.meta.stackexchange.com/questions/6479/a-graph-map-of-math-se
Orele alocate materiei AG
• Curs – 2 ore/săptămână
• Laborator – 2 ore/la 2 săptămâni (cu semigrupa)
• Seminar – 2 ore/la 2 săptămâni (cu grupa)
Obiectiv general
• Însușirea principalelor noțiuni și rezultate legate de teoria
grafurilor, familiarizarea cu algoritmi fundamentali de grafuri și
aplicații ale acestora
Obiective specifice
• prezentarea principalelor noțiuni și rezultate + utilitatea
acestora;
Laborator (2.5p):
- test pe calculator (în ultimul laborator al
fiecărei grupe).
listă orientativă cu probleme, lăsate ca
temă pe parcursul semestrului;
acces la material cu sintaxa STL, pus la
dispoziție de profesor;
fără acces la internet/alte surse.
Condiții de promovare a examenului (prima sesiune):
- minim 5.00 la testul de laborator;
- minim 5.00 la examen.
Restanță:
- aceleași condiții;
- se poate păstra nota obținută întâia oară la testul de
laborator / examen (dacă aceasta a fost peste 5.00).
Programa
• Grafuri – noțiuni introductive
• Secvența gradelor unui graf
• Arbori
• Parcurgerea grafurilor
• Arbori parțiali de cost minim
• Drumuri minime în graf
• Grafuri bipartite
• Grafuri planare
• Grafuri euleriene. Grafuri hamiltoniene
• Cuplaje
• Fluxuri
Bibliografie
Teorie (curs)
Algoritmi (laborator)
• T.H. Cormen, C.E. Leiserson, R.R. Rivest, Introducere în
algoritmi, MIT Press, trad. Computer Libris Agora
• www.infoarena.ro
• http://campion.edu.ro/arhiva/
Cursul de azi…
Despre curs
Aplicații
Istoric
Noțiuni de bază și notații
Grafuri standard
Ce este un graf? De ce Algoritmica Grafurilor?
Ce este un graf? De ce Algoritmica Grafurilor?
Ce este un graf? De ce Algoritmica Grafurilor?
Problema analizei
traficului:
https://play.google.com/store/apps/details?id=ca.transopolis.londonrail
Articole:
https://arxiv.org/ftp/arxiv/papers/1406/1406.4828.pdf (2015)
https://hal.archives-ouvertes.fr/hal-01643369/document (2017)
Rețea de distribuție a gazelor naturale
Aplicații
https://britishbusinessenergy.co.uk/europe-natural-gas-network/
Aplicații Bioinformatică
Rețele biologice: proteine, gene, metabolism
- interacțiunea proteinelor în
drojdia de bere;
- efectul la eliminare:
letal
nu este letal
creștere lentă
necunoscut
http://staff.uz.zgora.pl/jleluk/animacje/show_thumbnails.pl.htm
G2
https://web.expasy.org/cgi-bin/pathways/show_image?G2
Chimie matematică
Aplicații industria farmaceutică
medicină
- grafuri chimice: componente organice în care sunt păstrate doar legăturile carbon-
carbon.
Exemple:
alcani
cicloalcani benzenoizi
G. Grassy, B. Calas, A. Yasri, R. Lahana, J. Woo, S. Iyer, M. Kaczorek, F. Floćh, R. Buelow, Computer-assisted rational design of
immunosuppressive compounds, Nat. Biotechnol., 16 (1998) 748-752
280.000 componente
27 descriptori (ai topologiei grafului asociat componentei chimice)
26 peptide
5 sintetizate
teste clinice
una dintre aceste structuri: de 100 de ori mai activ decât cel mai bun
imunosupresor existent pe piață
Aplicații Brain network
http://www.kurzweilai.net/rain-man-like-
brains-mapped-with-network-analysis
- dependențe statistice între semnale neurofiziologice;
(structural connectivity)
https://www.humanbrainmapping.org/files/2017/ED%20Courses/Course%20Materials/BrainGraphs_Fornito_Alex.pdf
Scopul: analiza grafului rezultat
http://www.visualcomplexity.com/vc/project.cfm?id=788
Aplicații Rețele sociale
LinkedIn Facebook
http://www.philjones.biz/blog/linkedin-maps-visualiser
https://www.theverge.com/2016/2/22/11075456/facebook-population-density-maps-internet-org
Aplicații Rețele sociale
- hashtagurile care au apărut
împreună cu #Romania în
perioada 1-31 ian. 2018
http://truthy.indiana.edu/tools/networks/#?
hashtag=%23Romania&network_type=co&st
art_date=1-1-2018&end_date=1-31-2018
Detectarea de boți
Aplicații
- răspândirea hashtagului
#SB277 despre o lege
a vaccinării din California
în rețeaua Twitter
- aplicație
BotOrNot
https://theconversation.com/misinformation-on-social-media-can-technology-save-us-69264
Aplicații
Fake news
- rol hotărâtor în politică (influență asupra alegerilor)
Aplicații Internet:
- algoritmi de routare;
https://www.perla.hr/informacije/tekstovi/internet-wikipedija/
Aplicații
Circuite integrate: milioane de tranzistori
K. S. Suresh Kumar, Electric circuits and networks, 2009
https://www.shutterstock.com/video/clip-21678136-stock-footage-surface-
mount-technology-smt-machine-places-resistors-capacitors-transistors-led-
and.html?src=rel/21678178:6/gg
Aplicații Campionat de fotbal
FIFA 2010 World Cup
Despre curs
Aplicații
Istoric
Noțiuni de bază și notații
Grafuri standard
Problema celor 7 poduri din Königsberg
Este posibil ca un om să facă o plimbare în care să
treacă pe toate cele 7 poduri o singură dată?
• Graf eulerian: conține un ciclu eulerian = traseu închis care trece o singură dată prin
toate muchiile
http://think-like-a-git.net/sections/graph-theory/seven-bridges-of-konigsberg.html
Jocul icosian
– 1856 – Hamilton – “voiaj în jurul lumii” :
Există un traseu închis pe muchiile dodecaedrului care să treacă prin fiecare vârf
o singură data?
http://en.citizendium.org/wiki/Four_color_theorem
Cursul de azi…
Despre curs
Aplicații
Istoric
Noțiuni de bază și notații
Grafuri standard
Noțiuni de bază și notații
Exemple
• V - mulțime finită: Graf neorientat
- v V: nod / vârf 2
• E - mulțime de perechi de 2 elemente din V:
6
- e = (u, v) = uv, u,v V 1
- (u,u) = buclă 3
5
Graf neorientat 4
V={1, 2, 3, 4, 5, 6}
- e = pereche neordonată: E= {(1,2), (4,5), (1,3), (6,1), (4,1), (1,5),
- (u, v) = (v, u): muchie (6,5), (2,2), (3,3)}
- u, v - capete / extremităţi
Graf orientat
Graf orientat 2
6
- e = pereche ordonată:
- (u, v) ≠ (v, u): arc 1
- u = e- - vârf iniţial / origine / 3
extremitate iniţială 5
4
V={1, 2, 3, 4, 5, 6}
- v = e+ - vârf final / terminus /
E= { (1,2), (2,1), (2,2), (2,3), (1,3),
extremitate finală (1,4), (1,6), (6,5), (5,6)}
Dar pentru aceste grafuri?
2 2
6 6
1 1
3 3
5 5
4 4
Multiset
• 1 R, r(1)=0
• r(5)=3
Multigraf 2
2 6
6
G = (V, E, r)
1 1
r:E ℕ
r(e) – multiplicitatea muchiei e 3 3
5 5
• e cu r(e) >1 = muchie multiplă 4 4
2
6
1
3
5
4
graful neorientat suport graful simplu suport
Adiacență. Incidență
• Fie G = (V, E) un graf neorientat
– u și v ∈ V sunt adiacente dacă uv ∈ E.
– Un vecin al lui u ∈ V este un vârf adiacent cu el.
– Notație NG(u) = mulțimea vecinilor lui u.
– O muchie e ∈ E este incidentă cu un vârf u dacă u este extremitate a lui e.
– e și f ∈ E sunt adiacente dacă există un vârf în care sunt incidente (au o
extremitate în comun).
– dG(u)=|NG(u)| - gradul nodului u.
– are loc relația: 𝑢∈𝑉 𝑑𝐺 𝑢 = 2|𝐸|.
• Fie G = (V, E) un graf orientat
– 𝑑𝐺− 𝑢 = 𝑒 ∈ 𝐸 𝑢 𝑒𝑠𝑡𝑒 𝑒𝑥𝑡𝑟𝑒𝑚𝑖𝑡𝑎𝑡𝑒 𝑓𝑖𝑛𝑎𝑙ă 𝑝𝑒𝑛𝑡𝑟𝑢 𝑒 - grad interior;
– 𝑑𝐺+ 𝑢 = 𝑒 ∈ 𝐸 𝑢 𝑒𝑠𝑡𝑒 𝑒𝑥𝑡𝑟𝑒𝑚𝑖𝑡𝑎𝑡𝑒 𝑖𝑛𝑖ț𝑖𝑎𝑙ă 𝑝𝑒𝑛𝑡𝑟𝑢 𝑒 - grad exterior;
Multisetul gradelor
• G orientat, V = {v1, v2, …, vn}
cu proprietatea că între oricare două vârfuri consecutive există arc: (vi, vi+1) E(G) ,
i {1, …, k - 1}.
• Notăm
– V(P) = {v1, v2, …, vk}
– ei = (vi, vi+1)
– E(P) = {e1, e2, …, ek-1}
Drumuri. Circuite
• P este drum simplu dacă nu conține un arc de mai multe ori: (vi, vi+1) ≠ (vj, vj+1) , i ≠ j.
• P este drum elementar dacă nu conține un vârf de mai multe ori: vi ≠ vj, i ≠ j.
• Dacă P=drum simplu cu capetele identice v1=vk: circuit, notat C=[v1, v2, …, vk-1 ,v1].
• Dacă C=circuit care nu conține un vârf de mai multe ori (exceptând extremitățile): circuit
elementar.
G
1 2 P=[1, 2, 3, 4, 2, 1, 2] drum
P=[1, 2, 3, 4, 2, 5] drum simplu
P=[1, 2, 3, 4] drum elementar
C=[1, 2, 3, 2, 1] circuit
5 3 C=[1, 2, 3, 4, 1] circuit elementar
4
Drumuri. Circuite
• Lungimea lui P = l(P) = k-1 (cardinalul multisetului arcelor lui P).
• Pentru două vârfuri u și v definim distanța de la u la v astfel:
0, daca u v
dG ( u, v ) , daca nu exista u - v drum in G
min{ l ( P ) | P este u - v drum in G }, altfel
(cea mai mică lungime a unui u-v drum).
• Un u-v drum de lungime dG(u,v) se numește drum minim de la u la v
G
1 2 P=[1, 2, 3, 4, 5] drum
P=[1, 2, 5] drum minim
𝒅𝑮 (𝟏, 𝟓)=2
5 3
4
Lanțuri. Cicluri
graf parțial
subgraf
subgraf
indus de
{1,2,5,6}
Conexitate
Fie G = (V, E) un graf neorientat
• G este graf conex dacă între orice două vârfuri distincte există un lanț
Notații
• G – v , v V(G)
• G – e , e E(G)
• G – V ' , V ' V(G)
• G – E' , E' E(G)
•G+e
Egalitate. Izomorfism
Izomorfism
Fie G1, G2 două grafuri:
G1 = (V1, E1)
G2 = (V2, E2)
• Grafurile G1 și G2 sunt egale (G1 = G2) V1 =V2 , E1 =E2 .
• Grafurile G1 și G2 sunt izomorfe (G1 G2)
există f : V1 V2 bijectivă cu uv E1 f(u)f(v) E2 pentru orice u,v ∈ V1
(f conservă adiacența și neadiacența)
• Interpretare: se pot reprezenta în plan prin același desen
1 2 a b
≠
4 3 c d
Izomorfism
• Observație:
G1 G2 s(G1) = s(G2)
s(G1) = s(G2) G1 G2
Cursul de azi…
Despre curs
Aplicații
Istoric
Noțiuni de bază și notații
Grafuri standard
Graf bipartit
• Un graf neorientat G = (V, E) se numește bipartit există o partiție a lui V
în două submulțimi V1, V2 (bipartiție):
V = V1 V2
V1 V2 =
astfel încât orice muchie e∈E are o extremitate în V1 și cealaltă în V2:
|e V1| = |e V2| =1
8 9 1 2
2 3
3 4
5
13 7 1 4 6
10 7
9
8
5
6 10 11
12 11 12 13
https://math.stackexchange.com/questions/2059091/prove-that-if-g-is-a-bipartite-graph-with-an-odd-number-of-vertices-then-g-is
Graf bipartit
Observație:
c : V {1, 2} astfel încât pentru orice muchie e=xy∈E avem c(x) c(y)
(bicolorare)
Graf p-partit
Exemplu: graf 3-partit: 1 2
15 3
4
5
14 7 6
9
8
10 11
12 13
Grafuri standard
Pn – lanţ elementar Pn
Cn – ciclu elementar
Kn – graf complet
K3,3
Kn1,n2,...,np – graf p-partit complet
Exemplu: graf bipartit complet
n1 noduri n2 noduri
graf 3-regulat
Graful complementar
• 𝐺 = (𝑉, 𝐸) graf neorientat
G G
Va urma:
Secvențe de grade