Sunteți pe pagina 1din 36

TEORIA GRAFURILOR CU

APLICATII IN MODELAREA
SISTEMELOR MOBILE

MASTER - MODELAREA SI SIMLAREA SISTEMELOR


MECANICE MOBILE (MSSMM)
ANUL I SEMESTRUL I

Motto
,,Azi teoria grafurilor a devenit o disciplin major,
desi nu-si gseste locul ntr-o clasificare dogmatica a
capitolelor matematicii.
Folosirea teoriei grafurilor n domenii variate, de
la chimie la economie, de la studiul retelelor electrice
la critica textelor si la politic, i dau azi un prestigiu
de care cel ce clasific stinele trebuie s in
seama.,,
Grigore C. Moisil

INTRODUCERE
Originile teoriei grafurilor se gasesc in rezolvarea unor
probleme de jocuri si amuzamente matematice, care au
atras atentia unor matematicieni de seama cum ar fi:
Euler, Hamilton, Cayley, Sylvester, Birkoff.
Data naterii teoriei grafurilor este considerat a fi anul
1736, atunci cand matematicianul Leonhard Euler a
publicat un articol n care a clarificat problema celor
apte poduri i a prezentat o metod pentru rezolvarea
altor probleme de acelai tip. Articolul, n limba
latin,avea titlul: Solutio problematis ad geometriam situs
pertinentis (Solutia unei probleme legate de geometria
pozitiei) i a aprut n revista Comentarii Academiae
Scietiarum Imperialis Petropolitanae.

Cu 200 de ani mai tarziu,n 1936,aprarea la Leipzic


prima carte de teoria grafurilor, al crui autor este
matematicianul maghiar Denes Konig.
n amintirea contributiei lui Euler, unele noiuni i tipuri
de grafuri de care acesta s-a ocupat sunt denumite de
ctre Konig lan (ciclu) eulerian, graf eulerian etc.
Un alt matematician care s-a ocupat de aceleai
probleme ca i Euler dar care i-a publicat rezultatele
cercetrilor sale n anul 1873, a fost Carl Hierholzer.
Acesta a demonstrat n plus unele rezultate care lui
Euler i se pruse evidente.

n 1851 articolul lui Euler a fost tradus i


publicat n revista Nouvelles Annales de
Mathematiques,iar rezultatele sale au fost
mbogatite, fiind studiate n clase speciale de
grafuri.
Fizicianul Kirchoff a studiat la mijlocul secolului
trecut reelele electrice cu metode care aparin
astzi
teoriei
grafurilor,
contribuind
la
dezvoltarea acestei teorii.

ELEMENTE DE TEORIA GRAFURILOR


Logica programrii a demonstrat c n procesul de iniiere, dar i n
urmrirea etapelor, reprezentarea algoritmilor n form de scheme
sau grafuri logice este foarte ilustrativ.
Un graf notat cu G este definit prin perechea G=(V,E) unde V este o
mulime nevid de elemente numite vrfuri (vertex), iar E este o
submulime (care poate fi i vid) de perechi neordonate cu
componente distincte ale lui V care se numesc muchii (edges). Dac
E este mulimea vid, spunem c G este graf nul sau trivial. n cazul
n care mulimea V este finit spunem c graful este finit.
Dup modul de traversare a muchiilor, sunt dou tipuri de grafuri:
a) Grafuri orientate
b) Grafuri neorientate

Grafuri orientate - (sau digraf - directed graph) sunt


grafurile ale cror arce au o anumit orientare(spre unul
din vrfuri), iar drumul dintre dou varfuri se parcurge
doar n sensul indicat de arc.
Grafuri neorientate - sunt grafurile ale cror muchii nu
au nici o orientare; muchia putndu-se parcurge de la
oricare dintre cele dou vrfuri incidente.
Reprezentare grafic - se poate desena n plan,
reprezentnd vrfurile sale prin puncte i muchiile
(arcele) prin linii care unesc anumite perechi de puncte.
La grafurile orientate se pun i sgei pe arce, care
indic sensul de deplasare.

Exemplu de graf orientat:


Astfel: graful G=(V,E), are: V={1,2,3,4,5,6}
(mulimea vrfurilor) i E1={[1,2], [1,4], [1,5],
[2,6], [4,5], [5,6]} (mulimea muchiilor pentru
graful neorientat), respectiv E2={[1,2], [1,4],
[1,5], [2,6], [5,4], [5,6]} (mulimea muchiilor
pentru graful orientat);

Exemplu de graf neorientat:

Adiacen/inciden - dac dou vrfuri x,y, sunt unite printr-o muchie, atunci
vrfurile x,y sunt adiacente i x,y sunt incidente cu muchia [x,y]. n cazul grafurilor
orientate, vrful de la care pleac arcul se numete extremitate iniial, iar vrful la
care sosete arcul, se numeste extremitate final. Dac oricare dou vrfuri sunt
adiacente, atunci graful este complet. Un graf conplet cu n varfuri, se noteaza cu K.
Un K este un triunghi.
Reuniunea, intersecia si diferena grafurilor - fie dou grafuri, G(V,E) i G'(V',E').
Se noteaz cu: reuniunea; intersecia; respectiv - diferena grafurilor, i au
formulele: GG'=(VV',EE'), GG'=(VV',EE'), respectiv G-G'=(V-V',E-E').

Reprezentrile prin grafuri sunt utilizate n special pentru vizualizarea sistemelor i

situaiilor complexe. ntre dou puncte pot exista unul sau mai multe segmente (n
funcie de cte relaii dintre acestea, care ne intereseaz, exist) iar segmentelor li se
pot asocia sau nu orientri (dup cum se influeneaz cele dou componente ntre
ele), numere care s exprime intensitatea relaiilor dintre componente.

Definiia 1 Numim graf o pereche ordonat de mulimi, notat G=(X,A),


unde X este o mulime finit i nevid de elemente numite noduri sau
vrfuri, iar A este o mulime de perechi (ordonate sau neordonate) de
elemente din X numite muchii (dac sunt perechi neordonate) sau arce
(dac sunt perechi ordonate). n primul caz, graful se numete orientat,
altfel acesta este neorientat.
Definiia 2 Se numete multigraf un triplet G = (X, A, f) n care X i A sunt
dou mulimi iar f este o funcie, definit pe produsul vectorial al lui X cu el
nsui (X2 = X X), care ia valori n mulimea prilor mulimii A (notat
P(A)). Mulimea X se numete mulimea nodurilor multigrafului i
elementele sale se numesc noduri (sau vrfuri) ale multigrafului, iar A
reprezint mulimea relaiilor (legturilor) posibile ntre dou noduri ale
multigrafului.

Definiia 3 Se numete graf orientat un multigraf n care mulimea A are un


singur element: A = {a}.
n acest caz mulimea prilor mulimii A are doar dou elemente: mulimea
vid i ntreaga mulime A. Dac unei perechi orientate (xi, xj) din X2 i se
asociaz prin funcia f mulimea A atunci spunem ca exist arc de la nodul xi
la nodul xj iar perechea (xi,xj) se va numi arcul (xi,xj). Nodul xi se numete
nod iniial sau extremitate iniial a arcului (xi,xj) iar nodul xj se numete
nod final sau extremitate final a arcului (xi,xj). Arcul (xi,xj) este incident
spre interior vrfului xj i incident spre exterior vrfului xi. Dac pentru un
arc nodul iniial coincide cu nodul final atunci acesta se numete bucl.
Nodurile xi i xj se vor numi adiacente dac exist cel puin unul din arcele
(xi,xj) i (xj,xi).
Este evident c a cunoate un graf orientat este echivalent cu a cunoate
vrfurile i arcele sale. Din acest motiv putem defini un graf orientat prin
perechea (X,U), unde X este mulimea vrfurilor sale, iar U mulimea arcelor
sale. De asemenea, putem cunoate un graf orientat cunoscnd mulimea
nodurilor i, pentru fiecare nod, mulimea arcelor incidente spre exterior.

Moduri de reprezentare ale unui graf


A. O prim modalitate de reprezentare este listarea efectiv a tuturor nodurilor i
a arcelor sale.
B. Putem reprezenta graful dnd pentru fiecare nod mulimea nodurilor cu care
formeaz arce n care el este pe prima poziie.
C. Putem reprezenta geometric graful, printr-un desen n plan, reprezentnd
fiecare nod printr-un punct i fiecare arc printr-un segment de curb care are ca
extremiti nodurile arcului i pe care este trecut o sgeat orientat de la nodul
iniial spre cel final.

D. Putem folosi o reprezentare geometric n care nodurile sunt reprezentate de


dou ori, n dou iruri paralele, de la fiecare nod din unul din iruri plecnd sgei
spre nodurile cu care formeaz arce n care el este pe prima poziie, de pe al
doilea ir (reprezentarea prin coresponden).
E. Un graf poate fi reprezentat printr-o matrice ptratic boolean, de dimensiune
egal cu numrul de noduri, n care pe o poziie aij va fi 1 dac exist arcul (xi,xj)
i 0 n caz contrar, numit matricea adiacenelor directe.
F. Un graf poate fi reprezentat printr-o matrice ptratic latin, de dimensiune
egal cu numrul de noduri, n care pe o poziie aij va fi xixj dac exist arcul
(xi,xj) i 0 n caz contrar.

Exemplu: Dac n reprezentarea A avem graful G = (X,U), unde X = {x1, x2,


x3, x4, x5, x6} i U = {(x1,x1), (x1,x2), (x1,x4), (x1,x5), (x2,x3), (x2,x4), (x2,x6),
(x3,x1), (x3,x2), (x4,x5), (x5,x2), (x6,x4)}, atunci n celelalte reprezentri vom
avea:

Parcurgerea grafurilor
Graful este o pereche de multimi G=(V,E). Multimea V contine nodurile
grafului (vertices), iar multimea E contine muchiile (edges) sale, fiecare
muchie stabilind o relatie de vecinatate intre doua noduri. O mare varietate
de probleme se formuleaza in termeni de grafuri, iar in rezolvare de multe
ori aceste grafuri trebuie explorate, adica trebuie consultate (vizitate)
varfurile sau muchiile.
O parcurgere isi propune sa ia in discutie fiecare nod al grafului exact o
singura data, pornind de la un nod ales, numit in continuare nod sursa.

PARCURGEREA GRAFURILOR NEORIENTATE

Prin parcurgerea unui graf neorientat se nelege


examinarea n mod sistematic a nodurilor sale, plecnd
dintr-un vrf dat i, astfel nct fiecare nod accesibil din i
pe muchii adiacente dou cte dou, s fie atins o
singur dat. Trecerea de la un nod y la altul se face prin
explorarea, ntr-o anumit ordine, a vecinilor lui y, adic
a vrfurilor cu care nodul y curent este adiacent. Aceast
aciune este numit i vizitare sau traversare a
vrfurilor grafului, scopul acestei vizitri fiind acela de
prelucrare a informaiei asociat nodurilor. Graful este o
structur neliniar de organizare a datelor iar rolul
traversrii sale poate fi i determinarea unei aranjri
lineare a nodurilor n vederea trecerii de la unul la altul.

Parcurgerea in latime
Parcurgerea in latime (Breadth-first Search - BFS) este un algoritm de cautare
in graf in care, atunci cand se ajunge intr-un nod oarecare v nevizitat, se
viziteaza toate nodurile nevizitate adiacente lui v, apoi toate varfurile nevizitate
adiacente varfurilor adiacente lui v, etc.
Colorarea nodurilor. Pe parcurs ce algoritmul avanseaza, se coloreaza
nodurile in felul urmator:
--> alb - nodul este nedescoperit inca
--> gri - nodul a fost descoperit si este in curs de procesare
--> negru - procesarea nodului s-a incheiat
Pastrarea informatiilor despre distanta pana la nodul sursa.
--> pentru fiecare nod in d[u] se retine distanta pana la nodul sursa (poate fi
util in unele probleme)
Obtinerea arborelui BFS. In urma aplicarii algoritmului BFS se obtine un
arbore de acoperire (prin eliminarea muchiilor pe care nu le folosim la
parcurgere). Pentru a putea reconstitui acest arbore, se pastreaza pentru
fiecare nod dat informatia despre parintele sau in p[u].

Pentru implementarea BFS se utilizeaza o coada (Q) in care initial se


afla doar nodul sursa. Se viziteaza pe rand vecinii acestui nod si se
pun si ei in coada. In momentul in care nu mai exista nevizitati, nodul
sursa este scos din coada:

Pentru fiecare nod din coada se aplica aceeasi procedura: se viziteaza toate nodurile vecine care pana atunci nu au fost vizitate
(au inca culoarea alb) si se insereaza in coada. Cand nu mai exista vecini nevizitati, nodul curent este scos din coada.

Arborele obtinut in urma executiei este urmatorul:

Parcurgerea in adancime
Parcurgerea in adancime (Depth-First Search - DFS) poate fi utilizata in rezolvarea a
numeroase probleme de grafuri. DFS porneste de la un nod dat (nod de start), care este
marcat ca fiind in curs de procesare. Se alege primul vecin nevizitat al acestui nod, se
marcheaza si acesta ca fiind in curs de procesare, apoi si pentru acest vecin se cauta primul
vecin nevizitat, si asa mai departe. In momentul in care nodul curent nu mai are vecini
nevizitati, se marcheaza ca fiind deja procesat si se revine la nodul anterior. Pentru acest
nod se cauta primul vecin nevizitat, etc, pana cand toate nodurile grafului au fost procesate.
Colorarea nodurilor. Pe parcurs ce algoritmul avanseaza, se coloreaza nodurile in felul
urmator:
--> alb - nodul este nedescoperit inca
--> gri - nodul a fost descoperit si este in curs de procesare
--> negru - procesarea nodului s-a incheiat
Pastrarea informatiilor despre timp. Fiecare nod are doua momente de timp asociate:
--> tDesc[u] - momentul descoperirii nodului (si a schimbarii culorii din alb in gri)
--> tFin[u] - momentul in care procesarea nodului s-a incheiat (si culoarea acestuia s-a
schimbat din gri in negru)
Obtinerea arborelui DFS. In urma aplicarii algoritmului DFS asupra fiecarei componente
conexe a grafului, se obtine pentru fiecare dintre acestea cate un arbore de acoperire
(prin eliminarea muchiilor pe care nu le folosim la parcurgere). Pentru a putea reconstitui
acest arbore, pastram pentru fiecare nod dat informatia despre parintele sau in p[u].

Un exemplu de aplicare al DFS este urmatorul:

Nodul de pornire este I, iar pentru simplificare vecinii sunt alesi in ordine alfabetica. In stanga nodului este
notat tDesc, iar in dreapta tFin. Daca se afiseaza nodurile, in urma parcurgerii se obtine urmatorul output:
I, E, B, A, C, D, G, F, H

Arborele obtinut in urma parcurgerii este urmatorul:

Evident, pe acest arbore s-ar putea adauga si muchiile nefolosite in parcurgere, dar l-ar face sa nu mai fie arbore. Totusi, in
cazul grafurilor orientate, aceste muchii au o semnificatie speciala si se pot clasifica in felul urmator:
--> muchii de arbore (fac parte din arborele DFS) - de exemplu muchia (1, 2)
--> muchii inapoi ( de forma (u,v), unde v este stramosul lui u - are deja culoarea gri la descoperirea lui u) - de exemplu muchia
(3,1)
--> muchii inainte ( de forma (u,v) - v este descendentul lui u, dar este deja negru in momentul in care se testeaza muchia) - de
exemplu (1,4)
--> muchii de traversare (o muchie (u,v) catre un vecin negru, v nu este descendent al lui u) - de exemplu (9,1)

GRAFURI EULERIENE

Definiie.Fie un graf G=(X,U).Se numete ciclu


eulerian un ciclu care conine toate muchiile grafului. Un
graf care conine un ciclu eulerian se numete graf
eulerian.
Exemplu. Graful desenat n figura de mai jos este
eulerian deoarece conine un ciclu eulerian
C=[1,10,2,3,4,5,6,3,7,8,10,9,13,11,10,12,1].

Grafuri euleriene
Problema podurilor din Koningsberg
Orasul Knigsberg era asezat pe coasta Marii Baltice, la gurile rului Pregel. Pe
ru erau doua insule legate de tarmuri si ntre ele de sapte poduri ca n figura 1.
Oamenii care cutreierau aceste insule au observat ca daca porneau de pe malul
sudic al rului, nu puteau sa-si planifice plimbarea astfel nct sa traverseze fiecare
pod o singura data. Se parea ca ori trebuia sa sara un pod ori sa-l traverseze de
doua ori.

n anul 1735 Euler a descoperit ca nu mai are rost sa se ncerce, propunnd urmatoarea analiza a
problemei, din punct de vedere matematic:

Insula estica

Sa consideram acum insula vestica: sunt cinci poduri care duc pe ea, iar cinci este din nou numar
impar. Asadar plimbarea ncepe n afara insulei, si deci trebuie sa se termine pe insula vestica.
Aceasta nseamna ca plimbarea se termina n doua locuri diferite simultan ceea ce e imposibil.
Solutia data de Euler este tipica pentru personalitatea si ingeniozitatea sa. Tot el a scris n anul
1736 prima lucrare de teorie a grafurilor despre problema acestor sapte poduri.
Un ciclu al unui graf G care contine toate muchiile lui G se numeste ciclu eulerian . Un graf G care
are un ciclu eulerian se numeste graf eulerian.
Un graf G fara vrfuri izolate este eulerian daca si numai daca este conex si gradele tuturor
vrfurilor sale sunt numere pare.

Din punct de vedere al teoriei grafurilor, problema se pune cam asa: cele patru regiuni (insule si
maluri) A,B,C,D si cele sapte poduri le reprezentam n graful urmator (fig.3.):

Muchiile grafului reprezinta posibilitatile de trecere de pe un mal


pe un pod si reciproc.

Problema are solutie daca acest graf contine un ciclu eulerian. Un astfel de ciclu, utilizeaza la
fiecare trecere printr-un vrf doua muchii ce nu mai pot fi folosite pentru o noua trecere. Cum
fiecare dintre cele patru vrfuri (A,B,C,D) au grade impare, rezulta ca ultima muchie va ramne
nefolosita sau va fi folosita pentru a face trecerea de final (pentru a ncheia plimbarea). Aceasta
ar nsemna ca ori va ramne la unul din vrfuri, o muchie nefolosita (fapt ce demonstreaza ca nu
avem un ciclu eulerian) ori plimbarea ar trebui sa se termine n mai multe locuri simultan ceea ce
e iarasi imposibil.

Determinarea unui ciclu eulerian

Se porneste de la un nod oarecare si se construieste un ciclu.


Se parcurg nodurile din ciclul determinat anterior; daca exista un nod care mai are muchii
neincluse in ciclul anterior se construieste un nou ciclu provenind de le acest nod.
Ciclul construit este inclus in ciclul initial in locul nodului gasit la pasul anterior.

pas 1: c1: 1,2,3,1


c2: 2,4,7,2
pas 2: c1: 1,2,4,7,2,3,1
c2: 7,5,10,7
pas 3: c1: 1,2,4,7,5,10,7,2,3,1
c2: 7,8,11,7
pas 4:
c1: 1,2,4,7,8,11,7,5,10,7,2,3,1
c2: 7,6,9,7
pas 5:
c1: 1,2,4,7,6,9,7,8,11,7,5,10,7,2,3,1

1. PRINCIPIILE METODEI DE SINTEZ STRUCTURAL


A LANURILOR CINEMATICE PE BAZA TEORIEI GRAFURILOR

O schem format din puncte reunite ntre ele prin linii dup anumite reguli se
numete graf. Schema unei reele de transport, de energie electric n care punctele
sunt staiile sau substaiile de transformare iar liniile conductoarelor electrice, schema
unei reele de cale ferat (n care staiile sunt reprezentate prin puncte, iar calea
ferat prin linii), schemele formulelor chimice sunt grafuri.

Punctele grafului se numesc vrfuri, iar segmentele care le unesc se numesc arce n cazul
n care sunt orientate i muchii n caz contrar.

Mai frecvent se utilizeaz graful asociat obinut n modul urmtor:


* elementele lanului cinematic sunt reprezentate prin vrfuri ale grafului;
* dou vrfuri ale grafului sunt unite printr-o muchie dac i numai dac
elementele lanului cinematic reprezentate prin aceste vrfuri sunt legate ntre ele
printr-o articulaie.

n figura de mai jos sunt reprezentate scheme structurale ale unor lanuri cinematice plane i grafurile asociate lor:

Scheme structurale

Grafe asociate
3

3
2

6
5

6
5

5
3

7
2

Grafe contractate

7
4

6
1

8
9

6
1

8
9

4
3

2
1

GRAFURI COLORATE

In cazul unui mecanism plan cu cam (figura 2a) graful asociat lanului va avea muchiile colorate
pentru a scoate n eviden diferena dintre clasele cuplelor. Graful asociat lanului din figura 2b
are muchiile colorate cu dou culori: muchiile corespunztoare cuplelor inferioare cu o culoare
(convenional au fost reprezentate cu linie plin) iar cele corespunztoare cuplelor superioare cu o
alt culoare (linie ntrerupt).

4
3

2
1
5

Exemplul 1

Se consider schema cinematic a mecanismului unui picior al unui robot pitor

Se cer urmatoarele:
1.1. S se determine gradul de mobilitate i numrul de condiii de legtur
redundante (familia) mecanismului.
1.2. S se construiasc schema structural a mecanismului, precizndu-se cuplele
motoare i elementul efector-final.
1.3. S se studieze ce se ntmpl prin legarea la baz a efectorului-final printr-o
cupl de rotaie plan (articulaie), cu privire la gradul de mobilitate al
mecanismului i descompunerea n grupe structurale.
1.4. S se reprezinte graful asociat lanului cinematic din care provine mecanismul
i s se determine matricea de adiacen a vrfurilor acestuia.
A
1.5. S se scrie funcia multiform de definiie a grafului.
B
D
C
E

H
G

Mecanismul piciorului robotului pitor este


compus din:
* Elemente cinematice totale: e = 7;
* Elemente cinematice mobile: n = 6;
* Cuple cinematice: C5 = 8.

Gradul de mobilitate al mecanismului se


calculeaz cu formula:
M3 = 36-28-0
M3 = 2

Numrul de contururi se calculeaz cu


formula
N=2
N=

S se construiasc schema structural a mecanismului, precizndu-se cuplele motoare i


elementul efector-final.

3
E

3
E

B (T)

F
5
G (T)

B (T)

F
5
G (T)

S se reprezinte graful asociat lanului cinematic din care provine mecanismul i s se


determine matricea de adiacen a vrfurilor acestuia.

B (T)

F
5
G (T)

5
1

Schema structurala a mecansimul

Graful asociat lanului cinematic

din care provine mecansimul

Matricea de adicen asociat vrfurilor


Matricea de adicen asociat vrfurilor

Funcia multiform de definiie a grafului

Exemplul 2
Mecanismul piciorului robotului pitor este
compus din:
* Elemente cinematice totale: e = 7;
* Elemente cinematice mobile: n = 6;
* Cuple cinematice: C5 = 8.

Gradul de mobilitate al mecanismului se


calculeaz cu formula:
M3 = 36-28-0
M3 = 2
Numrul de contururi se calculeaz cu
formula:
N=2

* S se construiasc schema structural a mecanismului, precizndu-se cuplele motoare i


elementul efector-final.

F (T)
5

G
H 6 = Efector final

B (T)
1

S se reprezinte graful asociat lanului cinematic din care provine mecanismul i s se


determine matricea de adiacen a vrfurilor acestuia.

F (T)

G
H 6 = Efector final

B (T)

Schema structurala a mecansimul

Matricea de adicen asociat vrfurilor

Graful asociat lanului cinematic


din care provine mecansimul

Funcia multiform de definiie a grafului

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