LUCRARE DE SPECIALITATE
PENTRU CERTIFICAREA
COMPETENŢELOR PROFESIONALE
Grafuri neorientate
Mai 2007
Cuprins
1.Tema
proiectului............................................p
ag 3
2.Motivaţie..............................................
.......pag 4
3.Prezentare
generală.....................................pag 5
4.Suport
matematic.........................................pag
6
5.Utilizare
proiect..........................................pag 15
6.Partea de
operare.........................................pag 16
8.Concluzie..............................................
......pag 17
2
7.Bibliografie...........................................
......pag 18
Tema proiectului
Grafuri Neorientate.
Un exemplu de graf orientat este: reţeaua de străzi a
unui oraş. Străzile sunt muchii în graf, iar intersecţiile
reprezintă vârfurile grafului. Întrucât mergând pe jos ne
putem deplasa pe orice stradă în ambele sensuri, vom spune
că din punctul de vedere al pietonilor, „graful unui oraş” este
neorientat.
Cu totul altfel stau lucrurile în ceea ce priveşte conducătorii
auto, pentru că în orice oraş există străzi cu sens unic.
Pentru un şofer străzile trebuie să primească în graf o
3
anumită orientare. Desigur că acele străzi pe care se poate
circula în ambele sensuri vor primi orientare dublă. Am ajuns
astfel la noţiunea de graf orientat.
Motivatie
Am ales aceasta tema deoarece mi s-a parut interesanta
,pentru ca mi-a placut acest capitol cand l-am studiat in
clasa a XI-a, si pentru ca reprezinta o tema complexa.
Grafurile neorientate reprezinta un alt capitol foarte
important din materia din clasa a XI a. Nu stiu cat de bine
inteleg unii aceste capitole, dar mie mi-a trebuit mai mult
4
timp. Diferenta dintre aceasta lectie predata de profesor si
acesta aplicaţie este că elevul poate intelege foarte bine
notiunile care îi sunt predate. El poate vizualiza cum se
formeaza unele grafuri fapt pe care profesorului îi este mai
greu sa îl faca, daca ar fi sa ne gandim la toate parcurgerile
ale grafurilor.
Prezentare generala
5
Cuprinsul prezentării este:
Introducere
*cuprinde cateva notiuni legate de garfuri
neorientate si utilitatea lor.
Noţiuni generale
*cuprinde notiuni desprea grafuri neorienatea
Parcurgerea grafurilor
*cuprinde notiuni despre parcurgerea garfurilor
neorientate
Conexitate
*cuprinde cateva cuvinte despre conexitatea
grafurilor neorientate
Grafuri hamiltoniene
*cuprinde notiuni despre grafurile
hamiltoniene:soport mathematic si exemple
Problema
*cuprinde textul unei probleme si rezolvarea ei
Suport matematic
6
Grafurile neorientate reprezintă o pereche ordonată de
mulţimi (X,U) unde :
X=mulţime nevidă şi finită de elemente numite
noduri
U=mulţimea de perechi neordonate de câte două
elemente din X numite muchii
Notaţii:
n = numărul nodurilor
m = numărul muchiilor
(x,y) muchia
7
Matricea de adiacenţă este o matrice pătratică cu n linii
şi n coloane, în care elementele a[i,j] se definesc astfel:
- a[i][j]=1, dacă i şi j sunt adiacente, cu i ≠ j;
- a[i][j]=0, altfel
În cazul listei de adiacenţă, pentru fiecare nod al
grafului se reţin nodurile adiacente cu el.
Fiecare muchie a grafului poate fi privită ca o
înregistrare cu două componente: cele două varfuri care
constituie extremităţile muchiei. Graful in ansamblul său
este o mulţime de muchii.
Noţiuni generale:
Fie graful G= (X,U). Un graf parţial al lui G, este un
' U
graf G’=(X,U’),Ucu . Altfel spus, un graf parţial G’ al lui
G, este chiar G, sau se obţine din G păstrând toate vârfurile
şi suprimând nişte muchii.
Fie graful G=(X,U). Un subgraf al lui G, este un graf
X1 X
G1=[X1,U1], unde U1
şiU iar U1 va conţine numai
muchiile care au ambele extremitaţi în X1. Altfel spus, un
subgraf G1 al lui G, se obţine din G eliminând nişte noduri şi
păstrând doar acele muchiile care au ambele extremităţi în
mulţimea nodurilor rămase.
Un graf G= (X,U) cu proprietatea că există doua mulţimi
A, B X astfel încât : A ∩ B = , A U B = X, toate muchiile
8
au o extremitate în A şi cealaltă în B se numeşte graf
bipartit.
Fie G=(V,M) un graf bipartit.Graful G se numeste graf
bipartit complet dacă:pentru orice x din V1 si orice y din
V2 exista in G muchia[x,y].
Parcurgerea grafurilor:
Prin parcurgerea unui graf se înţelege “vizitarea”
tuturor nodurilor grafului (o singură dată) într-o anumită
ordine, dată de un criteriu de parcurgere, ordine care să
permită prelucrarea informaţiilor ataşate grafului.
Există două tehnici de parcurgere: în lăţime şi în
adâncime.
Conexitate
Un graf G=(X,U) este conex dacă oricare ar fi două
noduri ale sale există un lanţ care le leagă.
9
Graful este conex , deoarece oricare ar fi varfurile x si
y,cu x diferit de y,exista un lant in G care sa le lege.
Parcurgere grafurilor.
10
Prin parcurgerea unui graf se înţelege “vizitarea”
tuturor nodurilor grafului (o singură dată) într-o anumită
ordine, dată de un criteriu de parcurgere, ordine care să
permită prelucrarea informaţiilor ataşate grafului.
În lăţime
În adâncime
11
*se trece la următorul element din coadă, care ia rolul
nodului de plecare, şi se reia pasul anterior;
*algoritmul se termină dupa ce sunt parcurse toate
elementele din coadă.
12
- îl adaug în coadă k:=k+1; c[k]:=i
- îl marchez vizitat v[i]:=1
- îl afişez
Subprogramele utilizate:
Funcţia nevizitat va returna:
- i = valoarea primului nod nevizitat (pe care o vom
folosi mai departe)
- o valoare mai mare ca n, atunci când au fost vizitate
toate nodurile
Procedura initv, pentru iniţializarea vectorului v
Procedura initc, pentru iniţializarea vectorului c
Procedura adaug, pentru adăugarea în coada a
nodurilor adiacente cu primul nod şi nevizitate încă
Procedura sterg, pentru ştergerea din coadă a primului
nod.
Parcurgerea în adâncime
Fie G=(V,M) un graf neorientat cu n vârfuri (V={1,2,
…,n}) şi m muchii.
13
*Agoritmul recursiv de parcurgere a grafului în adâncime
este implementat în funcţie parc_adâncime, caracterizată
astfel:
*are un parametru formal (nodul curent, asupra căruia se
aplică);
*procedează astfel:
-afisează nodul asupra căruia se aplică şi-l
marchează ca fiind vizitat;
-pentru fiecare vecin nevizitat de-al nodului
curent
-se autoapelează asupra sa.
Parcurgera in adancime :
Implementare
Algoritmul in pseudocod este:
- Citesc n {numărul de noduri}
- Memorez graful {prin matricea de adiacenţă}
- Citesc ns {nodul de start}
- Iniţializez stiva s[1]:=ns
- Marchez ns ca fiind vizitat v[ns]:=1
- Afişez ns {încep parcurgerea cu acest nod}
Cât timp (nu am vizitat toate nodurile) execută
- caut primul nod adiacent şi nevizitat al nodului
din vârful stivei
Dacă acest nod există atunci:
14
- îl adaug în stivă
- îl marchez vizitat
- îl afişez
Altfel
- şterg din stivă nodul din vârf
15
Grafuri hamiltoniene
Se numeşte ciclu hamiltonian într-un graf un ciclu
elementar care conţine toate nodurile grafului. Graful care
conţine un ciclu hamiltonian se numeşte graf hamiltonian.
Teorema: Daca intr-un graf G=(X,U) cu n>=3 noduri,
gradul fiecarui nod x verifică condiţia d(x)>=n/2, atunci
graful este hamiltonian!
Obs! Dacă această condiţie nu este verificată nu pot
trage concluzia că graful nu este hamiltonian.
16
Utilizare proiect
17
Partea de operare
18
doar cu un clic. Modificarea temei prezentării nu modifică
numai culoarea de fundal, dar și culorile nomogramelor,
tabelelor, diagramelor și fonturilor, și chiar și stilul oricărui
punct marcator dintr-o prezentare. Prin aplicarea unei teme,
aveți încredere că întreaga prezentare are un aspect
profesional și mai
consecvent.
Putem modifica dramatic forme, text și grafice cu noile
instrumente și efecte. Avem posibilitatea să manipulam și să
lucram cu text, tabele, grafice și alte elemente ale
prezentării în moduri mult mai îmbogățite decât înainte.
Office PowerPoint 2003 face aceste instrumente
disponibile imediat prin interfața utilizatorului și meniurile
contextuale simplificate, astfel încât, prin doar câteva clicuri,
lucrările pot avea un mare impact.
Concluzie
19
Aceasta tema pe care am ales-o
constituie un capitol complex din
informatica si contine informatii
folositoare cu privire la grafuri
neorientate. Acest proiect ajuta pe elvi sa
inteleaga mai bine grafurile neorientate.
20
Bibliografie :
Informatică – Manual pentru clasa a X-a
atestat_adriana.ppt
21