Sunteți pe pagina 1din 21

ŞCOALA CREŞTINĂ FILADELFIA

LUCRARE DE SPECIALITATE
PENTRU CERTIFICAREA
COMPETENŢELOR PROFESIONALE

Grafuri neorientate

ÎNDRUMATOR:Buliga Tiberiu CANDIDAT: Mitrea Adriana

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

Prezentarea este realizată în programul PowerPoint( Office


2003 ) şi cuprinde 34 de slide-uri.

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

Pentru o muchie notată (x,y) spunem că:


 Nodurile x şi y sunt adiacente (unite printr-o muchie) şi
se numesc extremităţile muchiei
 Muchia (x,y) este aceeaşi cu muchia (y,x)
 Muchia (x,y) şi nodul x (sau nodul y) sunt incidente in
graf

Gradul nodului x, notat d(x), reprezintă numărul


muchiilor care sunt incidente cu nodul x
Un nod care are gradul 0 se numeşte nod izolat.
Un nod care are gradul 1 se numeşte nod terminal.
Într-un graf neorientat G = (X, U) cu n noduri şi m muchii
suma gradelor tuturor nodurilor este egala cu
2*m(m=numărul muchiilor).

Reprezentarea grafurilor neorientate:


 Matricea de adiacenţă
 Listele vecinilor
 Vectorul de muchii

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].

Se numeşte ciclu într-un graf, un lanţ L=(x1,x2,…,xk)


cu proprietatea că x1=xk şi muchiile sunt distincte doua câte
două.

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.

Graful nu este conex, pentru ca exista cele doua varfuri


cum ar fi 1 si 4 pentru acre nu exista nici un lant in graf care
sa la 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.

Există două tehnici de parcurgere:

 În lăţime

 În adâncime

Parcurgerea grafurilor neorientate in latime:

Fie G=(V,M) un graf neorientat cu n vîrfuri (V={1,2,


……,n}) si m muchii.
Algoritmul de parcurgere a grafului in lăţime,folosind
o coadă este:
*iniţial toate nodurile se consideră nevizitate;
*se citeşte nodul de plecare pl,care se consideră acum
vizitat, şi se trece in coadă pe prima poziţie;
*de trec în coadă toate nodurile nevizitate până în
prezent şi sunt adiacente cu nodul de plecare
(odată cu trecerea lor in coadă se marchează ca find
vizitate);

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ă.

Parcurgerea garfurilor neorientate in


latime
~implementare~
Vom mai folosi un vector numit vectorul nodurilor
vizitate:

v[i]=1, dacă nodul i a fost vizitat


v[i]=0 , altfel

Algoritmul în pseudocod este:


- Citesc n {numărul de noduri}
- Memorez graful {prin matricea de adiacenţă}
- Citesc ns {nodul de start}
- Iniţializez coada c[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ă
Pentru fiecare nod adiacent cu primul nod din coadă şi
nevizitat execută:

12
- îl adaug în coadă k:=k+1; c[k]:=i
- îl marchez vizitat v[i]:=1
- îl afişez

- Şterg primul nod din coadă

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

Conexitate în grafuri neorientate


Un graf G=(X,U) este conex dacă oricare ar fi două
noduri ale sale există un lanţ care le leagă.
Dacă în urma parcurgerii în adâncime(lăţime) nu pot fi
vizitate toate nodurile atunci graful nu este conex.
Se numeşte componentă conexă a grafului G=(X,U) un
subgraf G1=(X1,U1) al lui G connex, cu proprietatea că nu
există nici un lanţ care să lege un nod din X1 cu un nod din
X-X1. Dacă numărul componentelor conexe este mai mare
decât 1, atunci graful nu este conex. Un graf conex are o
singură componentă conexă care cuprinde toate nodurile
sale.

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

Acest proiect poate fi utilizat pentru a descoperi


informatii despre grafurile neorientate .
Pentru a vedea notiuni generale legate de tema
proiectului se poate da click pe optiunea notiuni despre
grafuri neorientate, care ne va duce direct la acea pagina
care contine notiunile. Pentru vedea notiune legate de ceea
ce este in cuprins se poate da click pe acea optiune ce ne
va duce direct la pagina Notiuni.
Pentru a insera acea imagine din backgroud am dat
click dreapta pe slide, background dupa care am ales fill
effect si picture.
Pentra a introduce animatii in proiect am ales din
meniu optiunea slide show dupa care custom
animation.
Pentru a putea vedea definitii sau explicatii despre
grafuri si proprietatile lor am introdus un link ,dand click
dreapta pe slide si alegand optinea hyperlink.

17
Partea de operare

Pentru a construi acest proiect am folosit programul


Power Point Office 2003.
Microsoft Office PowerPoint 2003 permite crearea
rapida a prezentărilor cu impact ridicat, dinamice, în timp
ce se integrează fluxul de lucru și moduri de partajare cu
usurinta a informațiilor. De la interfața utilizator reproiectată
si până la noile capacități de formatare și grafice, Office
PowerPoint 2003 oferă controlul pentru a crea prezentări cu
aspect deosebit. Ajută la asigurarea actualizării conținutului.
Se poate aplica un aspect consistent printr-un clic. Temele de
documente ne ajută să schimbam aspectul întregii prezentări

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

Autori: Geoarge Daniel Mateescu, Pavel Florin Moraru

Editura Petrion, Bucureşti, 2000

 Bazele Informaticii(Grafuri şi elemente de combinatorică), Manual pentru clasa a X-a

Autori: Cornelia Ivaşc, Mona Prună

Editura Petrion, Bucuresti, 1995

 Informatică – Manual pentru clasa a XI-a

Autori: George Daniel Mateescu, Pavel Florin Moraru

Editura Niculescu, Bucuresti, 2003

 Informatică – Manual pentru clasa a XI-a(Toerie si aplicaţii)

Autori:Cristian Udrea , Claudia Elena Udrea

Editura Arves, Bucuresti 2004

atestat_adriana.ppt

21

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