Problema Ieșirii dintr-un Labirint

Referat
7/10 (1 vot)
Conține 3 fișiere: doc, cpp, txt
Pagini : 10 în total
Cuvinte : 1520
Mărime: 18.28KB (arhivat)
Publicat de: Ionut N.
Puncte necesare: 5

Extras din referat

1) Enunţul temei:

Se da un labirint sub forma de matrice cu m linii si n coloane. Fiecare element al matricei reprezinta o camera a labirintului (1 pentru zid si 0 pentru drum liber). Intr-una din camere, de coordonate xs si ys se afla o persoana. Determinati drumul minim pe care il parcurge persoana pentru a iesi din labirint.

2) Descrierea strategiei aplicate

Strategia de căutare A* este o strategie de căutare informată care încearcă reducerea numărului de noduri generate din spaţiul de căutare, pe baza unor anumite criterii cum sunt euristicile.

Acest obiectiv include şi problema găsirii căii spre soluţie care presupune aplicarea unui număr minim de operatori.

Strategia de căutare A* începe expandarea cu nodul rădăcină, generează toţi succesorii acestui nod şi calculează funcţia euristică specifică fiecăruia. Apoi expandează acel succesor a cărei funcţie euristică are valoarea minimă şi continuă similar expandarea cu toţi succesorii acestuia etc.

3) Reprezentarea unei stări a problemei (implementare în limbajul C)

Stari ale problemei:

Starea iniţiala: avem o matrice de m linii si n coloane reprezentand harta labirintului :

6 10

0 0 1 0 0 1 0 0 1 0

0 1 0 0 1 0 0 1 1 1

0 0 0 1 0 0 1 0 1 0

0 1 0 0 0 0 0 0 1 0

1 1 0 1 0 1 0 1 0 1

0 0 1 0 1 1 0 1 1 1

coordonatele initiale :

xs=

ys=

Starea finală: calculatorul afiseaza solutia corespunzatoare iesirii din labirint :

6 10

0 0 1 0 0 1 0 0 1 0

0 1 0 0 1 0 0 1 1 1

0 0 0 1 0 0 1 0 1 0

0 1 0 0 0 0 0 0 1 0

1 1 0 1 0 1 0 1 0 1

0 0 1 0 1 1 0 1 1 1

coordonatele initiale :

xs=4

ys=6

SUCCES!!!

Pozitie omulet : (6,7)

Pozitie omulet : (5,7)

Pozitie omulet : (4,7)

Pozitie omulet : (4,6)

Operatorii de tranzitie dintr-o stare in alta sunt: mişcările la Est, Vest, Nord şi respective Sud prin labirint

4) Descrierea operatorilor de transformare a unei stări a problemei (prototipurile funcţiilor C şi implementarea lor)

Din fiecare stare persoana din labirint se poate deplasa in labirint în Nord, în Sud, în Est sau în Vest, pentru a se deplasa spre iesirea din labirint.

Urmatoarele instructiuni fac parte din functia parcurgere_a_star() :

if (l>0 && a[l-1][c]==0) //muta sus

{

nr_noduri++;

succesor=adaugare(succesor,l-1,c,nr_noduri,nrcrt,0);

}

if (l<n-1 && a[l+1][c]==0) //muta jos

{

nr_noduri++;

succesor=adaugare(succesor,l+1,c,nr_noduri,nrcrt,0);

}

if (c>0 && a[l][c-1]==0) //muta stanga

{

nr_noduri++;

succesor=adaugare(succesor,l,c-1,nr_noduri,nrcrt,0);

}

if (c<m && a[l][c+1]==0) //muta dreapta

{

nr_noduri++;

succesor=adaugare(succesor,l,c+1,nr_noduri,nrcrt,0);

}

5) Complexitatea strategiei de cautare

Strategia A* este completă şi optimală dacă funcţia h este euristică admisibilă, adică nu supraestimează niciodată costul atingerii scopului.

6) Functia euristica utilizata

În stategia de căutare A* funcţia de evaluare euristică este o funcţie aditivă:

f(S) = g(S) + h(S),

unde:

g(S) – reprezintă costul soluţiei parţiale (Si, ..., S)

h(S) – estimata distanţei de la starea curentă la starea scop (S,..., Sf)

Si – starea iniţială

S – starea curentă

Sf – starea finală (scop)

Funcţia g(S) reprezintă costul drumului parcurs de la starea iniţială până la starea curentă S.

g(S) = , unde Sn este starea S.

Funcţia h(S) trebuie definită de către programator, ea fiind specifică fiecărei probleme în parte.

Algoritm

1. iniţializează listele FRONTIERA ←{Si} şi TERITORIU ←{}

2. calculeaza f(Si) şi asociază această valoare nodului Si

3. dacă FRONTIERA={} atunci

întoarce INSUCCES /*nu există soluţie*/

4. selectează din FRONTIERA un nod S pentru care f(S) este minimă

5. elimină nodul S din FRONTIERA şi inserează-l în TERITORIU

6. dacă S este starea finală atunci

6.1. construieşte soluţia(S,..., Si), prin trasarea căii de-a lungul pointer-ilor de la scop înapoi la starea iniţială, Si

6.2 întoarce SUCCES /* s-a găsit soluţia problemei */

7. expandează nodul S

Preview document

Problema Ieșirii dintr-un Labirint - Pagina 1
Problema Ieșirii dintr-un Labirint - Pagina 2
Problema Ieșirii dintr-un Labirint - Pagina 3
Problema Ieșirii dintr-un Labirint - Pagina 4
Problema Ieșirii dintr-un Labirint - Pagina 5
Problema Ieșirii dintr-un Labirint - Pagina 6
Problema Ieșirii dintr-un Labirint - Pagina 7
Problema Ieșirii dintr-un Labirint - Pagina 8
Problema Ieșirii dintr-un Labirint - Pagina 9
Problema Ieșirii dintr-un Labirint - Pagina 10

Conținut arhivă zip

  • Problema Iesirii dintr-un Labirint
    • LABIRINT.CPP
    • LABIRINT.TXT
    • Problema Iesirii dintr-un Labirint.doc

Alții au mai descărcat și

Grilă sisteme informaționale de gestiune - Access

Adăugarea de câmpuri la o tabelă se face în modul de vizualizare:...... Previzualizare inaintea imprimarii Aplicarea unei restrictii de...

Hackeri

Hackerii sunt pasionati ai informaticii, care, de obicei au ca scop „spargerea” anumitor coduri, baze de date, pagini web etc. Ei sunt considerati...

Baze de Date

3.Introducere in bd si sgbd-uri Definitie: Numim baza de date o colectie partajata de date aflata in interdependenta logica impreuna cu o...

Te-ar putea interesa și

Instrumente de Măsurare și Apreciere a Comportamentelor Comunicaționale

„Transformă-ţi permanent viaţa în devotament faţă de adevăr şi de bine.”(Brâncuşi) „Nu e destul să ştii trebuie să şi aplici. Nu e destul să vrei...

Grafuri Neorientate - Euleriene

’’ Ideile, si daca sunt abstracte si daca nu, ca sa le poti manui, trebuie sa le ai. Calculatorul, ca sa-si faca treaba, trebuie sa inteleaga...

Manual Grafuri

1. Preliminarii 1.1. Algoritmi Toti algoritmii descrisi în cadrul acestei lucrari folosesc structuri de date de tip graf. Unele descrieri sînt...

Structuri de Date și Algoritmi

1. Conceptul de dată În informatică, prin dată, se desemnează un model de reprezentare a informaţiei, model cu care se poate opera pentru a obţine...

Structuri de Date și Algoritmi

Lucrarea 1 Evaluarea si masurarea timpului de executie al unui algoritm 1.Definitia unui tip de date abstract - TDA Un TDA este un model...

Structuri de Date

CURS 1. - STRUCTURI DE DATE Scop : prezentarea celor mai importante structuri de date ce pot fi utilizate pentru modelarea datelor din aplicatii....

Inteligență artificială - capitolul 1-strategii de căutare

Strategia de cautare pe nivel în spatiul starilor Strategia de cautare pe nivel (în latime, breadth-first search) este o strategie de cautare...

Programarea Calculatoarelor

Lucrarea nr. 1 Determinarea experimentala a timpului de execuţie al unui program 1. Scopul lucrării - lucrarea prezintă aspecte legate de...

Ai nevoie de altceva?