Sunteți pe pagina 1din 6

liTehnici de cutare A.

Cutare neinformat
Sarcina principal a sistemului de control este acela de a dezvolta o soluie pentru o anumit problem. Pentru aceasta, algoritmul de cutare trebuie s asigure parcurgerea grafului de stri pornind de la nodul iniial pn cnd se ajunge la nodul int. Nodurile sunt strile sistemului, iar produciile sunt reprezentate prin operaiile efectuate pentru a trece de la o stare la alta. Sistemul de control va parcurge nodurile prin efectuarea produciilor, va compara fiecare nod cu starea int i, n momentul gsirii acestuia, va reconstitui calea pe acele noduri i acele producii care au condus la rezultat. Ca efect al acestei strategii se construiete arborele de cutare care nu este altceva dect acea parte a grafului strilor care a fost verificat de sistemul de control. Nodul rdcin este stare iniial, iar fiii fiecrui nod sunt strile care pot fi obinute prin producii asupra nodului printe. Fiecare arc care leag dou noduri este o producie.

Parcurgerea unui graf de stri se poate face n dou feluri: 1. n adncime, parcurgnd o ramur a grafului pn la un nivel prestabilit - are dezavantajul c este posibil s nu se ajung la soluie dac aceasta este sub nivelul maxim admis de cutare.

2. n lime, adic sunt parcurse toate strile pe un nivel i dac nu s-a gsit soluia se trece la nivelul urmtor.

Un exemplu pentru arborii de cutare ar fi modul de rezolvare al unui puzzle cu 8 cifre:

Pentru rezolvarea acestui puzzle o main fr gndire logic uman ar trebui s mute numerele, efectund toate mutrile posibile dintr-o anumit stare (producii), s verifice strile obinute i dac nu s-a gsit starea int, s mai aplice cte o producie pe strile noi. n cazul nostru pe primul nivel (nivelul 0) ar fi trei producii posibile : 2, 5 i 6. Cele trei noduri obinute, pe nivelul 1 cu 3 stri, la rndul lor nefiind stri int, vor fi supuse unor noi producii rezultnd alt nivel (2) cu 5 stri .a.m.d.. pn cnd pe un nivel

oarecare (5) se obine soluia. Parcurgerea n acest exemplu s-a efectuat n lime. Dup gsirea soluiei se reconstituie acele producii (se evideniaz acele ramuri) care au condus la rezultat. Evident, metoda poate fi mbuntit cu anumite condiii de bun sim cum ar fi: - nu revenim la starea de dinainte; dac pe o ramur ajungem la o stare care se regsete deja pe o alt ramur (exist aceast posibilitate) vom continua produciile numai pe ramura care are deja subramuri (a fost deja dezvoltat). Cu aceste reguli, soluia final se va obine pe nivelul 5 avnd urmtoarele producii: Mut 5 n jos Mut 3 la dreapta Mut 2 n sus Mut 5 la stnga Mut 6 n sus Primele trei nivele se pot observa pe figura urmtoare. Urmrii produciile enunate mai sus i verificai corectitudinea rezultatului (obs. ramura din stnga).

Exerciiu: desenai arborele de cutare pentru urmtoarea stare iniial:

B. Cutare euristic
Vom mbunti metoda noastr prin introducerea unor elemente care imit intuiia uman. Vom spune c acolo unde oamenii aplic reguli logice, sistemele artificiale aplic reguli euristice. Vom identifica acele caracteristici pe care le iau n considerare oamenii atunci cnd aleg calea. Oamenii tind s aib n vedere inta i tind spre opiunea care le aduce mai aproape de aceasta, gndind nainte. Pentru a aplica o asemenea metod trebuie s nvm sistemul s poat msura care din stri care din producii este mai aproape de int. O asemenea msur se numete euristic. Pentru jocul nostru de puzzle o asemenea euristic ar putea consta n evaluarea costurilor. Prin acesta vom nelege n acest caz (i numai n acest caz, pentru alte probleme vom stabili alte criterii) suma mutrilor necesare, dac presupunem c la un

moment dat avem un singur numr pe suprafaa de joc, pentru ca acesta s ajung n poziia lui final. Astfel, o cifr aflat ntr-o poziie adiacent poziiei finale va fi la distana 1, iar o cifr aflat lng poziia final, dar pe diagonal va avea distana=2 (1 vertical + 1 orizontal). Fie de exemplu starea urmtoare:

Pentru aceast stare costul proiectat este de 7 (2,5,8 la distana 1; 3,6 la distana 2 => 3x1+2x2=7) S aplicm aceast euristic n modul urmtor: pornind de la starea iniial efectum produciile posibile i pentru strile obinute vom calcula costurile. Vom continua produciile pe acea ramur care are costul de producie minim (care promite cel mai mult). Dac dup o nou producie obinem stri cu costuri mai mari dect costurile unuia din strile iniiale, vom reveni la starea cu costul mai mic indiferent dac acesta este pe o ramur mai spre rdcin i care la un moment dat a fost abandonat, dup cum se poate observa i n exemplul urmtor unde am plecat pe prima ramur (din stnga) cu cost (4), dar pentru c am obinut o stare cu cost mai mare (5) am revenit pe cealalt ramur cu cost (4) (dreapta).

Exerciiu: S se traseze graful strilor folosind cutarea euristic pentru urmtoarele stri iniiale: a) 1 4 7 2 6 b) 1 2 5 7 4 3 6 8 3 8 5

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