LabMD 2 3 Matematica Discreta

May 14, 2018 | Author: Cucu Eugen | Category: N/A
Share Embed Donate


Short Description

Raport Matematica discreta utm...

Description

Ministerul Învăţămîntului a Republicii Moldova Universitatea Tehnică a Moldovei

Raport  La Disciplina ”Matematica Discreta“ Discreta“  Laboratorul numarul numarul 3-4 !"UTAR #$ L"RGIM %I  Tema : ALGORITMUL D !"UTA  AD&$!IM 

A efectuat : Studentul grupei S!"#"

$ucu %ugeniu

A verificat : &rofesor

'eronica (agrin

$hisinau )*"+ "

1. SCOPUL LUCRĂRII: •

Studierea algoritmilor de căutare în graf ,i a diferitor forme de păstrare ,i prelucrare a datelor-



%laborarea procedurii de căutare în ad.ncime-



Studierea algoritmului de căutare în lărgime/



%laborarea programului de căutare în lărgime-

2. NOTE DE CURS %tructuri 'e 'ate: liste

0iecare tip de listă define,te o mulţime de ,iruri finite de elemente de tipul declarat- 1umărul de elemente care se nume,te lungimea listei poate varia pentru diferite liste de acela,i tip- 2ista care nu conţine nici un element se va numi vidă- &entru listă sunt definite noţiunile începutul3 sf.r,itul listei ,i respectiv primul ,i ultimul element3 de asemenea elementul curent ca ,i predecesorul ,i succesorul elementului curent- %lement curent se nume,te acel unic element care este accesibil la momentul datStructuri de date :

fre de aşteptare

0irele de a,teptare 4 (A3 r.nd3 coadă3 ,ir de a,teptare5 se vor folosi pentru a reali6a algoritmul de  prelucrare a elementelor listei în conformitate cu care elementele vor fi eliminate din listă în ordinea în care au fost incluse în ea 4primul sosit ! primul servit57peraţiile de ba6ă cu firele de a,teptare: •

0ormarea unui 0A vid/



'erificare dacă 0A nu este vid/



Alegerea primului element cu eliminarea lui din 0A/



ntroducerea unei valori noi în calitate de ultim element al 0A-

%tructuri 'e 'ate: stive

Stiva se utili6ea6ă pentru a reali6a algoritmul de prelucrare a elementelor după principiul 8ultimul sosit !  primul prelucrat8 420757peraţiile de ba6ă cu stivele sunt următoarele: •

0ormarea unei stive vide/



'erificare la vid/



Alegerea elementului din topul stivei cu sau fără eliminare/



ntroducerea unui element nou în topul stivei)

Structuri de date - arbori

Se va defini o mulţime de structuri fiecare din care va consta dintr!un obiect de ba6ă numit )*r+  sau r,',cina arborelui dat ,i o listă de elemente din mulţimea definită3 care 4elementele5 se vor numi  subarbori ai arborelui dat- Arborele pentru care lista subarborilor este vidă se va numi arbore tri)ial 3 iar 

rădăcina lui ! +run,Rădăcina arborelui se va numi tatăl v.rfurilor care servesc drept rădăcini pentru subarbori/ aceste v.rfuri se vor mai numi copiii rădăcinii arborelui: rădăcina primului subarbore se va numi  +iul cel mai mare3 iar  rădăcina fiecărui subarbore următor în listă se va numi frate7peraţiile de ba6ă pentru arbori vor fi: •

0ormarea unui arbore trivial/



Alegerea sau înlocuirea rădăcinii arborelui/



Alegerea sau înlocuirea listei rădăcinilor subarborilor/



7peraţiile de ba6ă care sunt valabile pentru liste-

Algoritmul de căutre !" lărgime

&arcurgerea grafului în lărgime3 ca ,i parcurgerea în ad.ncime3 va garanta vi6itarea fiecărui v.rf al grafului e9act o singură dată3 însă principiul va fi altul- upă vi6itarea v.rfului iniţial3 de la care va începe căutarea în lărgime3 vor fi vi6itate toate v.rfurile adiacente cu v.rful dat3 apoi toate v.rfurile adiacente cu aceste ultime v.rfuri ,-a-m-d- p.nă vor fi vi6itate toate v.rfurile grafului- %vident3 este necesar ca graful să fie cone9- Această modalitate de parcurgere a grafului 4în lărgime sau postordine53 care mai este adesea numită parcurgere în ordine ori6ontală3 reali6ea6ă parcurgerea v.rfurilor de la st.nga la dreapta3 nivel după nivelAlgoritmul de mai ;os reali6ea6ă parcurgerea în lărgime cu a;utorul a două fire de a,teptare O. ,i O/Se vor forma două fire de aşteptare vide O1 şi O2 ; Introduce rădăcina în FA O1; WHILE cel puţin unul din firele de aşteptare O1 sau O2  nu va fi vid D IF O1 nu este vid !HE" #E$I" fie p v%rful din topul FA O1; vi&itea&ă v%rful p elimin%ndu'l din O1; vi&itea&ă pe toţi fiii lui  p în FA O2 ( încep%nd cu cel mai mare; E"D ELSE

 în calitate de O1 se va lua FA O2 ( care nu este vid(

<

iar în calitate de O2  se va lua FA vid O1;

'om nota că procedura parcurgerii grafului în lărgime permite să reali6ăm arborele de căutare ,i în acela,i timp să construim acest arbore- $u alte cuvinte3 se va re6olva problema determinării unei re6olvări sub forma vectorului 4 a. 0 a/ 0---5 de lungime necunoscută3 dacă este cunoscut că e9istă o re6olvare finită a problemeiAlgoritmul pentru ca6ul general este analogic cu cel pentru un graf în formă de arbore cu o mică modificare care constă în aceea că fiecare v.rf vi6itat va fi marcat pentru a e9clude ciclarea algoritmuluiCăutre !" d#"cime

2a căutarea în ad.ncime 4parcurgerea unui graf în sens direct3 în preordine5 v.rfurile grafului vor  fi vi6itate în conformitate cu următoarea procedură recursivă: mai 1nt*i )a +i )iitat, r,',cina arborelui 20 apoi0 'ac, r,',cina arborelui nu este +run, - pentru  +iecare +iu p al r,',cinii 2 ne )om a'resa recursi) proce'urii 'e parcurere 1n a'*ncime pentru a )iita )*r+urile tuturor subarborilor cu r,',cina p or'onate ca +ii ai lui 2

În ca6ul utili6ării unei stive pentru păstrarea drumului curent pe arbore3 drum care începe din rădăcina arborelui ,i se termină cu v.rful vi6itat în momentul dat3 poate fi reali6at un algoritm nerecursiv de forma: Vizitează rădăcina ar)orelui şi introdu'o în stiva vidă S;

WHILE stiva S nu este vidă D BEGIN

fie p ' v%rful din topul stivei S; IF fiii v%rfului p încă nu au fost vi&itaţi !HE" vi&itea&ă fiul mai mare al lui  p şi introduce'l în S ELSE BEGIN 

elimină v%rful p din stiva S IF p are fraţi !HE" vi&itea&ă pe fratele lui  p şi introduce'l în stiva S E"D E"D

Acest algoritm poate fi modificat pentru a putea fi utili6at la parcurgerea tuturor v.rfurilor unui graf  arbitrar- În algoritmul de mai ;os se va presupune că este stabilită o relaţie de ordine pe mulţimea tuturor  v.rfurilor grafului3 iar mulţimea v.rfurilor adiacente cu un v.rf arbitrar al grafului este de asemenea ordonată: WHILE va e*ista cel puţin un v%rf care nu a fost vi&itat D #E$I" fie p ' primul din v%rfurile nevi&itate; vi&itea&ă v%rful p şi introduce'l în stiva vidă S;

#

WHILE stiva S nu este vidă D #E$I" fie p ' v%rful din topul stivei S; IF m v%rfuri ale lui p sunt v%rfuri adiacente nevi&itate !HE" #E$I" fie z  primul v%rf nevi&itat din v%rfurile adiacente cu p; parcur+e muc,ia (p,z)( vi&itea&ă v%rful z  şi introduce'l în stiva S; E"D ELSE elimină v%rful p din stiva S E"D E"D

În ca6ul în care se va lucra cu un graf cone9 arbitrar cu relaţia de ordine lipsă3 nu va mai avea importanţă ordinea de parcurgere a v.rfurilor- &ropunem un algoritm care utili6ea6ă mai larg  posibilităţile stivei3 cea ce face programul mai efectiv în sensul diminuării timpului de calcul necesare e9emplu3 acest algoritm în varianta recursivă este pe larg utili6at în programele de selectare globală în subdirectori 4ca6ul programelor antivirus5Introdu în stivă v%rful iniţial şi marc,ea&ă'l; WHILE stiva nu este vidă D #E$I" e*tra+e un v%rf din stivă; IF e*istă v%rfuri nemarcate adiacente cu v%rful e*tras !HE" marc,ea&ă'le şi introduce'le în stivă; E"D

$. SARCINA DE %A&Ă

"- %laboraţi procedura căutării în ad.ncime într!un graf arbitrar 4ve6i ane9aA si (5/ )- %laboraţi procedura care va reali6a algoritmul de parcurgere a grafului în lărgime/
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF