Bugs Bunny si Duffy Duck

Preview:

DESCRIPTION

Bugs Bunny si Duffy Duck. Operatiunea : MORCOVI. Toata lumea a auzit de Bugs Bunny. Iepurele care intră î n tot felul de probleme și le rezolvă in moduri deosebite. . - PowerPoint PPT Presentation

Citation preview

Bugs Bunny si Duffy Duck

Operatiunea: MORCOVI

Toata lumea a auzit de Bugs Bunny. Iepurele care intră în tot felul de probleme și le rezolvă in moduri deosebite.

Însa problema de astazi e destul de dificilă, chiar și pentru nonconformistul nostru iepuraș. Va reuși el s-o rezolve?!

Pentru că lenevise toata vara Bugs neglijase recolta de morcovii. Iar acum trebuiau stranşi toţi morcovii din toate gradinile până la venirea toamnei. Atât de multă muncă într-un timp atât de scurt…

Dar se pare că eroul nostru va avea un ajutor, la orizont se vede neînfricatul Duffy Duck.

-Bugs prietene, ce ai? De ce eşti suparat?-Of.. Duffy.. Am o mare problemă. Am atât de multa muncă şi un timp atât de scurt..-Eh.. Sunt sigur că o să o rezolvăm prietene.

Spune-mi ce problemă ai. Ascult.

-Trebuie să parcurg un drum astfel încat să trec pe la toate graădinile mele si să culeg totii morcovii cât mai repede până la venirea toamnei. Dar e atât de puţin timp.

-Amice, cred că te pot ajuta. Am putea folosi un graf orientat. Şi problema ta ar suna astfel:

Grădinile lui Bugs Bunny sunt nodurile unui graf orientat . Să se calculeze drumurile minime de la un nod al grafului la toate celelalte noduri.

-Duffy, dar eu nu ştiu ce sunt acelea grafuri. Nu am auzit de aşa ceva…-Nu-i nimic, Bugs. Am să-ţi explic. E atât de uşor.. După cum ai observat desenul meu e un fel de harta, ne va ajuta să parcurgem toate grădinile în timpul cel mai scurt.

-Spune-mi câte ceva despre grafuri, Duffy.

-Bugs, un graf este o pereche ordonatã de mulþimi G = (X, U), unde :•X = mulţimea nodurilor - mulţime finitã, nevidã•U = mulţimea arcelor - mulţime finitã de perechi ordonate de elemente distincte din X.Elementele muţimii U se numesc arce,iar mulţimea U se mai numeşte şi mulţimea arcelor.Vârfurile adiacente sunt orice pereche de vârfuri care formează un arc.Pentru arcul (x,y) spunem că x este extremitate iniţiala iar y este extremitate finala.Se numesc arce incidente doua arce care au o extremitate comună.Se numeşte succesor al vârfului X orice vârf în care ajunge un arc care pleacă din vârful X.Se numeşte predecesor al vârfului X orice vârf în care intra un arc care pleacă din vârful X.

Nod sursă al grafului este nodul care are mulţimea succesorilor formată din toate celelalte noduri mai puţin el iar mulţimea predecesorilor săi este vidă. Nod destinaţie al grafului este nodul care are mulţimea predecesorilor formată  din toate celelalte noduri mai puţin el iar mulţimea succesorilor săi este vidă.Se numeşte nod terminal un nod care are suma gradelor egală cu 1.Se numeşte nod izolat un nod care are suma gradelor egală cu 0.

-Nu pare aşa greu. Şi cum o să facem să găsim drumul folosind grafuri?-Vezi tu.. Numim drum o succesiune de noduri care au proprietatea că oricare ar fi două noduri succesive ele sunt legate printr-un arc. Şi ca să găsim cel mai bun drum o să folosim un algoritm.

Algoritmul porneşte de la un graf orientat si ponderat cu N noduriDe asemenea, e nevoie de un nod de start aparţinând grafului – acesta este nodul de la care se doreşte aflarea drumurilor minime până la celelalte noduri din graf.

-Să-i dăm drumul atunci!Mă asteaptă morcovii…

Fie X nodul de start – acesta se marchează ca vizitat.

Ideea găsirii drumului minim de la X la un un alt nod este căutarea treptată: se presupune că drumul minim este alcătuit dintr-un singur arc (arcul direct între X şi nodul ţintă, care poate să nu existe, costul sau fiind infinit în acest caz), apoi se caută drumuri mai scurte alcătuite din 2 arce, apoi din 3, etc. – un drum minim nu poate avea mai mult de N-1 arce, deci algoritmul are N-1 paşi (al N-lea este banal).

După pasul k (1 ≤ k ≤ N-1), tabloul D va conţine lungimile drumurilor minime de la nodul X la celelalte noduri, toate aceste drumuri fiind alcătuite din maxim k arce.

Astfel, D[Y] = L după pasul k înseamnă că de la X la Y există un drum minim de lungime L alcătuit din maxim k arce.

Deci, după pasul k, au fost gasite numai drumurile minime alcătuite din maxim k arce – abia la finalul algoritmului (după pasul N-1) drumurile minime obţinute sunt definitive, ele fiind drumuri minime alcătuite din maxim N-1 arce

Logica este următoarea:D[Y] conţine lungimea drumului minim de la nodul de

start la nodul Y care trece numai prin noduri marcate (Y fiind, la începutul pasului k, nodul nemarcat care avea D[Y] minim) – acest drum este alcătuit din maxim k-1 arce – D[Y] fiind minim, îl marcăm pe Y deoarece nu poate exista un drum mai scurt de la X la Y.

D[Z] conţine lungimea celui mai scurt drum de la nodul de start la nodul Z alcătuit din maxim k-1 arce – acest drum trece doar prin noduri marcate, fără să ţina cont că, între timp, şi Y a fost marcat.

S-ar putea să existe un drum mai scurt decât D[Z] de la nodul de start la Z alcătuit din maxim k arce care trece numai prin noduri marcate, inclusiv nodul Y – unicul drum cu această proprietate care poate fi mai scurt decât D[Z] este cel care include drumul minim până la Y şi arcul direct între Y şi Z, deci lungimea sa este D[Y] + Arc(Y , Z)

Rezultatul algoritmului se prezintă sub forma unui tablou D cu N intrari, conţinand distanţele minime de la nodul de start la toate celelalte noduri din graf.

De asemenea, tot ca rezultat se poate obţine şi arborele drumurilor minime (în cazul în care ne interesează nu numai lungimile minime ale drumurilor, ci şi drumurile propriu-zise) – acesta este un arbore generalizat care se va obţine sub forma unui tablou T cu N intrari (implementarea cu indicatori spre parinte).

-Gata Bugs. Acum putem porni la drum. -Ce uşurare.. Informatica chiar e folositoare. Abia aştept să învaţ si alte lucruri pe care le-aş putea aplica. SÃ PORNIM !

SFÂRȘIT

Recommended