Aplicatii la cautarea neinformata si informata - Facultatea de...

107
Aplicatii la cautarea neinformata si informata Catalin Stoean [email protected] http://inf.ucv.ro/~cstoean Inteligenta Artificiala 1

Transcript of Aplicatii la cautarea neinformata si informata - Facultatea de...

Page 1: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Aplicatii la cautarea

neinformata si informata

Catalin Stoean

[email protected]

http://inf.ucv.ro/~cstoean

Inteligenta Artificiala 1

Page 2: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

2/107

Cuprins

Aplicatii la cautarea neinformata

Parcurgerea in latime

Parcurgerea in adancime

Parcurgerea limitata in adancime

Aplicatii la cautarea informata

Cautarea Greedy

Inteligenta ArtificialaCatalin

Stoean

2/107

Page 3: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

3/107

Formularea problemelor

O problema se defineste prin patru puncte:

1. Starea initiala in care se afla agentul (de exemplu, Arad).

2. Actiuni sau functia succesor S(x) – fiind data o stare x, S(x)

intoarce multimile de stari in care se poate ajunge din x printr-o

singura actiune (S(Arad) = {Zerind, Sibiu, Timisoara})

3. Testarea tintei problemei – se verifica daca starea curenta a

atins tinta problemei (x = Bucuresti, sah_mat(x))

4. Functia de cost al drumului –

calculeaza un cost g pentru drumul curent (suma distantelor,

numarul actiunilor executate etc).

c(x, y) – costul pasului, presupus sa fie ≥ 0

O solutie este o secventa de actiuni care merg de la starea initiala la

starea tinta

Inteligenta ArtificialaCatalin

Stoean

3/107

Page 4: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

4/107

Algoritm general de cautare

functia cautare_generala(problema, strategie)

intoarce solutie sau esec

Initializeaza arborele de cautare folosind starea initiala a problemei.

Cat timp este posibil executa

Daca nu mai sunt posibilitati de incercat atunci

intoarce esec

Alege un nod posibil in concordanta cu strategia

Daca nodul contine o stare tinta atunci

intoarce solutia corespunzatoare

Altfel gaseste toate posibilitatile ce pornesc din acest nod si

adauga-le la arborele de cautare

Sfarsit cat timp

Inteligenta ArtificialaCatalin

Stoean

4/107

Page 5: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

5/107

Algoritm general de cautare

functia cautare_generala(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, actiuni[problema]))

Sfarsit cat timp

Inteligenta ArtificialaCatalin

Stoean

5/107

Page 6: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

6/107

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

Inteligenta ArtificialaCatalin

Stoean

6/107

Page 7: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Cautarea in latime

B C

D E F G

N OL MJ KH I

A

Catalin Stoean

7/107

Page 8: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

N OL MJ KH I

A

Cautarea in latime

Catalin Stoean

8/107

Page 9: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

F G

N OL MJ KH I

A

Cautarea in latime

D E

Catalin Stoean

9/107

Page 10: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E

N OL MJ KH I

A

Cautarea in latime

F G

Catalin Stoean

10/107

Page 11: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E

N OL MJ K

A

Cautarea in latime

F G

H I

Catalin Stoean

11/107

Page 12: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

N OL M

A

Cautarea in latime

H I J K

Catalin Stoean

12/107

Page 13: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

N O

A

Cautarea in latime

J KH I L M

Catalin Stoean

13/107

Page 14: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

H I

A

Cautarea in latime

J K L M N O

Catalin Stoean

14/107

Page 15: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

H I

A

Cautarea in latime

J K L M N O

Catalin Stoean

15/107

Page 16: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

J KH I

A

Cautarea in latime

L M N O

Catalin Stoean

16/107

Page 17: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

J KH I

A

Cautarea in latime

L M N O

Catalin Stoean

17/107

Page 18: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

L MJ KH I

A

Cautarea in latime

N O

Catalin Stoean

18/107

Page 19: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

L MJ KH I

A

Cautarea in latime

N O

Catalin Stoean

19/107

Page 20: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

N OL MJ KH I

A

Cautarea in latime

Catalin Stoean

20/107

Page 21: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

B C

D E F G

N OL MJ KH I

A

Cautarea in latime

Catalin Stoean

21/107

Page 22: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

22/107

Vacanta in Romania – in Arad.

In ziua urmatoare ii pleaca avionul din Bucuresti.

Formularea scopului:

Ajungerea in Bucuresti

Formularea problemei:

Stari: diverse orase

Actiuni: de a merge dintr-un oras in altul

Gasirea solutiei:

O secventa de orase, de ex: Arad, Sibiu, Fagaras, Bucuresti.

Problema de rutare: un agent american

Inteligenta ArtificialaCatalin

Stoean

22/107

Page 23: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

23/107

Un agent american

Inteligenta ArtificialaCatalin

Stoean

23/107

Page 24: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad,

Arad

Catalin Stoean

24/51

Page 25: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind

AradZerind Sibiu Timisoara Zerind Sibiu Timisoara

Parcurgerea: Arad,

Catalin Stoean

25/51

Page 26: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind

Zerind Sibiu Timisoara Zerind Sibiu Timisoara

Oradea Arad

A mai aparut acest nod!

Catalin Stoean

26/51

Page 27: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu

Zerind Sibiu Timisoara Sibiu Timisoara

Oradea

Oradea

Catalin Stoean

27/51

Page 28: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu

Zerind Sibiu Timisoara Sibiu Timisoara

Fagaras VilceaOradea

Oradea

Catalin Stoean

28/51

Page 29: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu,

Timisoara

Zerind Sibiu Timisoara Timisoara

Fagaras Vilcea

Oradea

Oradea

Catalin Stoean

29/51

Page 30: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu,

Timisoara

Zerind Sibiu Timisoara Timisoara

Fagaras Vilcea

Fagaras Vilcea

Lugoj

Oradea

Oradea

Catalin Stoean

30/51

Page 31: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu,

Timisoara, Oradea

Zerind Sibiu Timisoara

Fagaras Vilcea

Fagaras Vilcea

Lugoj

Oradea Lugoj

Oradea

Catalin Stoean

31/51

Page 32: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu,

Timisoara, Oradea, Fagaras

Zerind Sibiu Timisoara

Fagaras Vilcea

Fagaras Vilcea

Lugoj

Lugoj

Oradea

Catalin Stoean

32/51

Page 33: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu,

Timisoara, Oradea, Fagaras

Zerind Sibiu Timisoara

Fagaras Vilcea

Fagaras Vilcea

Lugoj

Lugoj

Bucuresti

Oradea

Catalin Stoean

33/51

Page 34: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu,

Timisoara, Oradea, Fagaras,

Vilcea

Zerind Sibiu Timisoara

Fagaras Vilcea

Vilcea

Lugoj

Lugoj Bucuresti

Bucuresti Pitesti Craiova

Oradea

Catalin Stoean

34/51

Page 35: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu,

Timisoara, Oradea, Fagaras,

Vilcea, Lugoj

Zerind Sibiu Timisoara

Fagaras Vilcea Lugoj

Lugoj Bucuresti

Bucuresti Pitesti Craiova

Pitesti Craiova

Oradea

Catalin Stoean

35/51

Page 36: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu,

Timisoara, Oradea, Fagaras,

Vilcea, Lugoj

Zerind Sibiu Timisoara

Fagaras Vilcea Lugoj

Lugoj Bucuresti

Bucuresti Pitesti Craiova

Pitesti Craiova

Mehadia

Oradea

Catalin Stoean

36/51

Page 37: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Bucuresti

Algoritm cautare in latime

functia cautare_latime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_sfarsit))

Sfarsit cat timp

AradnoduriFaţa Sfarsit

Parcurgerea: Arad, Zerind, Sibiu,

Timisoara, Oradea, Fagaras,

Vilcea, Lugoj, Bucuresti!

Zerind Sibiu Timisoara

Fagaras Vilcea Lugoj

Bucuresti Pitesti Craiova

Pitesti Craiova

Mehadia

Mehadia

Nod tinta!

Bucuresti

Oradea

Catalin Stoean

37/51

Page 38: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

38/107

Exercitiu

noduriFaţa Sfarsit

Parcurgerea: Bucuresti, …,

Rm. Vilcea

Gasiti o ruta de la Bucuresti la Sibiu

folosind parcurgerea in latime.

Desenati arborele, scrieti parcurgerea

si continutul pentru noduri la fiecare

pas.

Inteligenta ArtificialaCatalin

Stoean

38/107

Page 39: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Misionarii si canibalii

Trei misionari si trei canibali se afla de o parte a raului. Ei au o

barca ce poate duce cel mult doi oameni. Gasiti o posibilitate sa

traverseze toti de cealalta parte a raului cu conditia sa nu existe mai

multi canibali decat misionari intr-o parte.

Stari: secvente ordonate de 3 numere reprezentand numarul de

misionari, canibali si barci de partea in care se aflau initial (3, 3, 1).

Actiuni: mutarea unui misionar sau canibal sau 2 canibali, 2

misionari sau un misionar si un canibal de pe o parte pe alta.

Testarea tintei: starea (0, 0, 0).

Costul drumului: numarul de traversari.

Inteligenta ArtificialaCatalin

Stoean

39/107

Page 40: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Muta 1m

Misionarii si canibalii

(3m,3c,1) (a)

(3m,2c,0) (b)

Muta 1c

(3m,1c,0) (c)

Muta 2c

(2m,2c,0) (d)

Muta 1m 1c

(a)

Muta 1c

(3m,2c,1) (e)

Muta 1c

(a)

Muta 2c

(e) (a)

Muta 1m 1c

Muta 1m

(d) Muta 1c(c)(3m,0c,0) (f)

(e)

Muta 2cMuta 2c

(3m,1c,1) (g)

Muta 1c

(f)

Muta 1cMuta 2m

(1m,1c,0) (h)

(g)

Muta 2mMuta 1m 1c

(2m,2c,1) (i)

Inteligenta ArtificialaCatalin

Stoean

40/107

Page 41: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

(2m,2c,1) (i)

Misionarii si canibalii

Muta 1m 1cMuta 2m

(0m,2c,0) (j)(h)

Muta 2mMuta 1c

(0m,3c,1) (k)(i)

Muta 1cMuta 2c

(0m,1c, 0) (l) (j)Muta 2c

Muta 1c

(0m,2c,1) (m)(k)

Muta 1cMuta 2c

(0m,0c,0) (n)(l)

Stare tinta

Inteligenta ArtificialaCatalin

Stoean

41/107

Page 42: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Puzzle cu 8 valori

2 3

1 4 6

7 5 8

1 2 3

4 5 6

7 8

Starea initiala Starea tinta

Stari: este descrisa locatia fiecarei cifre in una din cele 9 casute.

Actiuni: casuta goala se misca la stanga, dreapta, sus sau jos.

Testarea tintei: starea se gaseste in configuratia din dreapta.

Costul drumului: fiecare pas are costul 1, deci costul drumului

este dat de numarul de mutari.

Inteligenta ArtificialaCatalin

Stoean

42/107

Page 43: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

• Sam Loyd a introdus in 1878 15-puzzle-ul.

• A oferit un premiu de 1 000 $ din proprii bani pentru cel care

rezolva problema in situatia in care doar 14 si 15 sunt inversate,

restul fiind aliniate crescator.

Puzzle cu 15 valori

Inteligenta ArtificialaCatalin

Stoean

43/107

Page 44: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Puzzle cu 15 valori

12

14

11

15

10

13

9

5 6 7 8

4321

12

15

11

14

10

13

9

5 6 7 8

4321

?

Nimeni nu a castigat premiul!

Inteligenta ArtificialaCatalin

Stoean

44/107

Page 45: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Cate stari posibile exista?

9! = 362 880 stari

Numai la jumatate din aceste stari se poate

ajunge din orice stare data.

Puzzle cu 8 valori

Inteligenta ArtificialaCatalin

Stoean

45/107

Page 46: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

O valoare j apare dupa o valoare i daca

j apare pe acelasi rand, dar in dreapta lui i

j se afla sub linia lui i

Pentru i = 1, 2, ..., 8, fie ni numarul de aparitii ale lui j (j <

i) dupa i.

N = n2 + n3 + … + n8

Posibilitatea de a atinge scopul final...

2 3

1 4 6

7 5 8

n2 =1

n3 =1

n4 =0

n5 =0

n6 =1

n7 =1

n8 =0

N = 4

Pentru N par, puzzle-ul cu

8 valori este rezolvabil!

Inteligenta ArtificialaCatalin

Stoean

46/107

Page 47: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

2 3

1 4 6

7 5 8

2 3

1 4 6

7 5 8

D

1 2 3

4 6

7 5 8

J

2 3

1 4 6

7 5 8

D

St

2 3

1 4 6

7 5 8

2 4 3

1 6

7 5 8

J

1 2 3

7 4 6

5 8

J

1 2 3

4 6

7 5 8

D

2 3 6

1 4

7 5 8

J

2 4 3

1 6

7 5 8

St

2 4 3

1 6

7 5 8

D

2 4 3

1 5 6

7 8

J

1 2 3

4 6

7 5 8

D

1 3

4 2 6

7 5 8

S

1 2 3

4 5 6

7 8

J

1 2 3

7 4 6

5 8

D

2 3 6

1 4

7 5 8

St

2 3

1 4 6

7 5 8

S

4 3

2 1 6

7 5 8

S

2 4 3

7 1 6

5 8

J

2 4

1 6 3

7 5 8

S

2 4 3

1 6 8

7 5

J

2 4 3

1 5 6

7 8

St

2 4 3

1 5 6

7 8

D

1 2

4 6 3

7 5 8

S

1 2 3

4 6 8

7 5

J

1 3

4 2 6

7 5 8

St

1 3

4 2 6

7 5 8

D

1 2 3

4 5 6

7 8

1 2 3

4 5 6

7 8

StD

S = sus

J = jos

D = dreapta

St = stanga

Inteligenta ArtificialaCatalin

Stoean

47/107

Page 48: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Exercitiu

Inteligenta Artificiala

Consideram problema gasirii unui rute in figura de mai jos de la

start la stop.

Agentul se muta un patrat la fiecare pas vertical sau orizontal.

Nu se poate deplasa in patratele hasurate.

Etichetati cu litere in ordine

alfabetica patratele daca se

utilizeaza o cautare in

adancime, iar ordinea

operatiilor este: sus,

stanga, dreapta si jos.

stop

start

Catalin

Stoean

48/107

Page 49: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

49/102

Exercitiu - Problema celor 4 dame

Stari: orice aranjament de 0 pana la 4 dame care nu se ataca.

Actiuni: adauga o dama pe coloana cea mai din stanga a.i. sa nu

fie atacata de alta dama.

Testarea tintei: 4 dame care nu se ataca pe tabla.

Costul drumului: 0.

Pornind de la o tabla de 4x4 goala si folosind datele problemei de

mai sus, sa se construiasca printr-o cautare in latime arborele

complet care duce la rezolvarea problemei. Numerotati nodurile in

ordinea in care au fost vizitate.

Inteligenta ArtificialaCatalin

Stoean

49/107

Page 50: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

50/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

Inteligenta ArtificialaCatalin

Stoean

50/107

Page 51: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

51/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

Inteligenta ArtificialaCatalin

Stoean

51/107

Page 52: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

52/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

Inteligenta ArtificialaCatalin

Stoean

52/107

Page 53: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

53/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

53/107

Page 54: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

54/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

54/107

Page 55: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

55/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

55/107

Page 56: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

56/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

56/107

Page 57: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

57/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

57/107

Page 58: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

58/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

58/107

Page 59: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

59/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

59/107

Page 60: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

60/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

60/107

Page 61: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

61/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

61/107

Page 62: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

62/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

62/107

Page 63: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

63/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Inteligenta ArtificialaCatalin

Stoean

63/107

Page 64: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

64/107

Cautarea in adancime

Se expandeaza nodul radacina, apoi se merge pe un drum pana

se ajunge la cel mai adanc nivel al arborelui.

Numai cand se ajunge la final (la nodurile frunza), cautarea se

intoarce si expandeaza noduri de la nivele mai putin adanci.

B C

D E F G

N OL MJ KH I

A

D

H I

Parcurgerea in adancime: A, B, D, H, I, E, J, K, C, F, L, M, G, N, O.

Inteligenta ArtificialaCatalin

Stoean

64/107

Page 65: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

65/107

Algoritm cautarea in adancime

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Inteligenta ArtificialaCatalin

Stoean

65/107

Page 66: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in adancime

Arad

noduriFaţa Sfarsit

Parcurgerea: Arad,

Arad

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Catalin Stoean

66/107

Page 67: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in adancime

Arad

noduriFaţa Sfarsit

Parcurgerea: Arad,

Arad

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Zerind Sibiu Timisoara

Catalin Stoean

67/107

Page 68: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in adancime

noduriFaţa Sfarsit

Parcurgerea: Arad, Zerind,

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Zerind Sibiu TimisoaraOradea

Arad

Zerind Sibiu Timisoara

Catalin Stoean

68/107

Page 69: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in adancime

Arad

noduriFaţa Sfarsit

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Zerind Sibiu Timisoara

Sibiu TimisoaraOradea

Adaugarea se

face prin faţă!

Parcurgerea: Arad, Zerind,

Oradea

Catalin Stoean

69/107

Page 70: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Oradea

Algoritm cautare in adancime

noduriFaţa Sfarsit

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Sibiu TimisoaraOradea

SibiuParcurgerea: Arad, Zerind,

Oradea

Arad

Zerind Sibiu Timisoara

Catalin Stoean

70/107

Page 71: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in adancime

noduriFaţa Sfarsit

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Sibiu Timisoara

Parcurgerea: Arad, Zerind,

Oradea, Sibiu

Oradea

Arad

Zerind Sibiu Timisoara

Catalin Stoean

71/107

Page 72: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in adancime

Arad

noduriFaţa Sfarsit

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Zerind Sibiu Timisoara

Timisoara

Parcurgerea: Arad, Zerind,

Oradea, Sibiu

Fagaras VilceaFagaras Vilcea

Oradea

Catalin Stoean

72/107

Page 73: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Oradea

Algoritm cautare in adancime

Arad

noduriFaţa Sfarsit

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Zerind Sibiu Timisoara

Timisoara

Parcurgerea: Arad, Zerind,

Oradea, Sibiu, Fagaras

Fagaras Vilcea

Bucuresti

Fagaras Vilcea

Catalin Stoean

73/107

Page 74: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Algoritm cautare in adancime

noduriFaţa Sfarsit

functia cautare_adancime(problema) intoarce solutie sau esec

noduri = genereaza_coada(genereaza_nod(stare_initiala[problema]))

Cat timp este posibil executa

Daca noduri = vida atunci

intoarce esec

nod = scoate_din_fata(noduri)

Daca testare_tinta[problema] se aplica la stare(nod) atunci

intoarce nod

Altfel

noduri = adauga(noduri, expandare(nod, adauga_la_inceput))

Sfarsit cat timp

Timisoara

Parcurgerea: Arad, Zerind,

Oradea, Sibiu, Fagaras,

Bucuresti

VilceaBucuresti

Nod tinta!

Oradea

Arad

Zerind Sibiu Timisoara

Bucuresti

Fagaras Vilcea

Catalin Stoean

74/107

Page 75: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

75/107

Exercitiu

noduriFaţa Sfarsit

Parcurgerea: Timisoara, …,

Vaslui

Gasiti o ruta de la Timisoara la Vaslui

folosind parcurgerea in adancime.

Desenati arborele, scrieti parcurgerea

si continutul pentru noduri la fiecare

pas.

Inteligenta ArtificialaCatalin

Stoean

75/107

Page 76: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

76/102

Exercitiu - Problema celor 4 dame

Stari: orice aranjament de 0 pana la 4 dame care nu se ataca.

Actiuni: adauga o dama pe coloana cea mai din stanga a.i. sa nu

fie atacata de alta dama.

Testarea tintei: 4 dame care nu se ataca pe tabla.

Costul drumului: 0.

Pornind de la o tabla de 4x4 goala si folosind datele problemei de

mai sus, sa se construiasca printr-o cautare in adancime arborele

complet care duce la rezolvarea problemei. Numerotati nodurile in

ordinea in care au fost vizitate.

Inteligenta ArtificialaCatalin

Stoean

76/107

Page 77: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

77/107

Cautarea limitata in adancime

Impune o margine superioara pentru lungimea unui

drum.

Se poate utiliza la probleme unde stim la ce adancime

maxima trebuie sa gasim solutia

Ex: avem 20 de orase, ne aflam in orasul A, solutia trebuie

sa se gaseasca la maxim 19 pasi.

Daca l este limita de adancime stabilita, atunci

complexitatile:

Pentru timp: O(bl)

Pentru spatiu: O(bl).

Inteligenta ArtificialaCatalin

Stoean

77/107

Page 78: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

78/107

Cautarea limitata in adancime

Stabilim limita de adancime egala cu 3.

Sa se gaseasca o ruta de la Arad la Bucuresti folosind cautarea

limitata in adancime.

Inteligenta ArtificialaCatalin

Stoean

78/107

Page 79: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

79/107

Cautarea limitata in adancime

Arad

noduriFaţa Sfarsit

Parcurgerea: Arad,

Arad

Adancime: 0

Inteligenta ArtificialaCatalin

Stoean

79/107

Page 80: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Arad

noduriFaţa Sfarsit

Parcurgerea: Arad,

Arad

Zerind Sibiu Timisoara

Cautarea limitata in adancime

Adancime: 0Adancime: 1

Catalin Stoean

80/107

Page 81: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

noduriFaţa Sfarsit

Parcurgerea: Arad, Zerind,

Zerind Sibiu TimisoaraOradea

Cautarea limitata in adancime

Adancime: 1Adancime: 1

Arad

Zerind Sibiu Timisoara

Catalin Stoean

81/107

Page 82: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Arad

noduriFaţa SfarsitZerind Sibiu Timisoara

Sibiu TimisoaraOradea

Parcurgerea: Arad, Zerind,

Oradea

Cautarea limitata in adancime

Adancime: 2

Oradea

Catalin Stoean

82/107

Page 83: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

noduriFaţa Sfarsit

Sibiu Timisoara

Parcurgerea: Arad, Zerind,

Oradea, Sibiu

Cautarea limitata in adancime

Adancime: 2Adancime: 1

Arad

Zerind Sibiu Timisoara

Oradea

Catalin Stoean

83/107

Page 84: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

noduriFaţa Sfarsit

Parcurgerea: Arad, Zerind,

Oradea, Sibiu

Cautarea limitata in adancime

Adancime: 1

Vilcea Fagaras

Arad

Zerind Sibiu Timisoara

OradeaSibiu Timisoara

Catalin Stoean

84/107

Page 85: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Arad

noduriFaţa SfarsitZerind Sibiu Timisoara

Fagaras TimisoaraVilcea

Parcurgerea: Arad, Zerind,

Oradea, Sibiu, Vilcea

Cautarea limitata in adancime

Adancime: 2

Vilcea FagarasOradea

Catalin Stoean

85/107

Page 86: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

noduriFaţa Sfarsit

Vilcea

CraiovaParcurgerea: Arad, Zerind,

Oradea, Sibiu, Vilcea

Cautarea limitata in adancime

Adancime: 2Adancime: 3

Vilcea FagarasFagaras Timisoara

Pitesti

Oradea

Arad

Zerind Sibiu Timisoara

Catalin Stoean

86/107

Page 87: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

noduriFaţa Sfarsit

Parcurgerea: Arad, Zerind,

Oradea, Sibiu, Vilcea, Craiova

Cautarea limitata in adancime

Adancime: 2Adancime: 3

Vilcea FagarasFagaras TimisoaraCraiova

Nu este nodul

tinta!!

Craiova Pitesti

PitestiOradea

Arad

Zerind Sibiu Timisoara

Catalin Stoean

87/107

Page 88: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Arad

noduriFaţa SfarsitZerind Sibiu Timisoara

Parcurgerea: Arad, Zerind,

Oradea, Sibiu, Vilcea, Craiova,

Pitesti

Cautarea limitata in adancime

Adancime: 2Adancime: 3

Vilcea FagarasFagaras Timisoara

Craiova Pitesti

PitestiOradea

Nu este nodul

tinta!!

Catalin Stoean

88/107

Page 89: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Arad

noduriFaţa SfarsitZerind Sibiu Timisoara

Parcurgerea: Arad, Zerind,

Oradea, Sibiu, Vilcea, Craiova,

Pitesti, Fagaras

Cautarea limitata in adancime

Adancime: 2

Vilcea FagarasFagaras Timisoara

BucurestiCraiova Pitesti

Oradea

Catalin Stoean

89/107

Page 90: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Inteligenta Artificiala

Bucuresti

Arad

noduriFaţa SfarsitZerind Sibiu Timisoara

Parcurgerea: Arad, Zerind,

Oradea, Sibiu, Vilcea, Craiova,

Pitesti, Fagaras, Bucuresti.

Cautarea limitata in adancime

Adancime: 2Adancime: 3

Vilcea FagarasTimisoara

Nod tinta!

Oradea

BucurestiCraiova Pitesti

Catalin Stoean

90/107

Page 91: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

91/107

Exercitiu

noduriFaţa Sfarsit

Parcurgerea: Bucuresti, …,

Rm. Vilcea

Gasiti o ruta de la Bucuresti la Rimnicu

Vilcea folosind parcurgerea limitata

in adancime cu limita 3.

Desenati arborele, scrieti parcurgerea

si continutul pentru noduri la fiecare

pas.

Inteligenta ArtificialaCatalin

Stoean

91/107

Page 92: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

92/107

Cautarea Greedy

Se bazeaza pe faptul ca trebuie minimizat costul de

ajungere la nodul tinta.

Concluzie: nodul care reprezinta starea care este cea

mai aproape de starea tinta este intotdeauna expandat

primul.

La cele mai multe probleme, costul de a ajunge de la o

stare la starea finala nu poate determinat exact, doar

estimat.

O functie care estimeaza astfel de costuri se numeste

functie euristica si este notata de obicei cu h.

Inteligenta ArtificialaCatalin

Stoean

92/107

Page 93: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

93/107

h(n) = costul estimat pentru cel mai scurt drum de la

nodul n pana la starea tinta.

Daca n este chiar nodul tinta, atunci h(n) = 0.

O cautare intai cel mai bun care utilizeaza asemenea

functie euristica se numeste cautare greedy.

Cautarea Greedy

Inteligenta ArtificialaCatalin

Stoean

93/107

Page 94: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

94/107

Avem distantele pana la Bucuresti

h(n) = distanta in linie dreapta de la orasul n pana la

Bucuresti.

Inteligenta ArtificialaCatalin

Stoean

94/107

Page 95: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

95/107

Greedy

Arad

noduriFaţa Sfarsit

Parcurgerea: Arad,

Arad

366

Inteligenta ArtificialaCatalin

Stoean

95/107

Page 96: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

96/107

Greedy

Arad

noduriFaţa Sfarsit

Parcurgerea: Arad,

Arad

366

Zerind Sibiu Timisoara374 253 329

Se adauga in noduri, din faţă,

incepand cu nodul cu evaluarea cea

mai buna (orasul aflat la cei mai

putini km, in acest caz).

Inteligenta ArtificialaCatalin

Stoean

96/107

Page 97: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

97/107

Greedy

noduriFaţa Sfarsit

Parcurgerea: Arad,

Sibiu Timisoara Zerind

Arad366

Zerind Sibiu Timisoara374 253 329

Inteligenta ArtificialaCatalin

Stoean

97/107

Page 98: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

98/107

Greedy

noduriFaţa Sfarsit

Parcurgerea: Arad, Sibiu

Sibiu Timisoara Zerind

Arad366

Zerind Sibiu Timisoara374 253 329

Fagaras Vilcea176 193

Inteligenta ArtificialaCatalin

Stoean

98/107

Page 99: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

99/107

Greedy

noduriFaţa Sfarsit

Parcurgerea: Arad, Sibiu

Timisoara Zerind

Arad366

Zerind Sibiu Timisoara374 253 329

Fagaras Vilcea176 193

Fagaras Vilcea

Inteligenta ArtificialaCatalin

Stoean

99/107

Page 100: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

100/107

Greedy

noduriFaţa Sfarsit

Parcurgerea: Arad, Sibiu,

Fagaras

Timisoara Zerind

Arad366

Zerind Sibiu Timisoara374 253 329

Fagaras Vilcea176 193

Fagaras Vilcea

Bucuresti0

Inteligenta ArtificialaCatalin

Stoean

100/107

Page 101: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Catalin

StoeanInteligenta Artificiala

101/107

Greedy

noduriFaţa Sfarsit

Parcurgerea: Arad, Sibiu,

Fagaras, Bucuresti.

Timisoara Zerind

Arad366

Zerind Sibiu Timisoara374 253 329

Fagaras Vilcea176 193

Vilcea

Bucuresti0

Bucuresti

Nod tinta!

Inteligenta ArtificialaCatalin

Stoean

101/107

Page 102: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Tema

Folosind cautarea

Greedy, rezolvati

puzzle-ul cu 8 valori

folosind pe rand

euristicile h1 si h2 .

Catalin

Stoean

Inteligenta Artificiala

102/107

2 3

1 4 6

8 7 5

h1 = 5

2 3

1 4 6

8 7 5

h2 = 0 + 0 + 1

+ 1 + 0 + 1

+ 1 + 2 = 6

h1 = numarul de cifre care sunt

gresit pozitionate.

h2 = suma mutarilor necesare pentru ca toate cifrele sa ajunga la

starea tinta ca si cum toate celelalte casute ar fi goale.

Deplasarile se pot face numai pe orizontala si verticala.

Doua

puncte la

examenul

final!

Inteligenta ArtificialaCatalin

Stoean

102/107

Page 103: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Exercitiu - Cautarea informata

Consideram asezarea a sapte orase ca in figura de mai jos. Scopul

este ca, pornind din starea initiala D, sa ajungem in starea finala A.

Distantele din figura sunt cele rutiere care se gasesc intre orase

(deci nu in linie dreapta). Distantele in linie dreapta de la fiecare

oras catre orasul A sunt urmatoarele:

D: 30

C: 24

E: 21

Se cere

Sa se calculeze distanta de la D la A folosind cautarea Greedy.

Justificati.

Acelasi lucru folosind cautarea A*.

18 14

1215

16

16

11

22

14G

F E

D

C

A

BG: 14

B: 11

F: 9

Inteligenta ArtificialaCatalin

Stoean

103/107

Page 104: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Exercitiu

Consideram distantele directe dintre 9 puncte date ca in tabelul de mai jos.

Cazul in care intr-o casuta din tabel nu este trecuta nicio valoare semnifica

faptul ca nu exista un drum direct intre cele doua puncte (de exemplu, intre

A si C). Sa se aplice cautarea bidirectionala pentru gasirea drumului de la J

la A, astfel incat din J sa se porneasca cu cautarea cu cost uniform, iar din

A cu cautarea in latime: reprezentati arborii si scrieti ruta obtinuta in final.

Inteligenta Artificiala

A B C D E F G H J

A 0 10 - - 7 - - - -

B 10 0 2 - - 5 - - -

C - 2 0 10 - 4 11 - -

D - - 10 0 12 7 - - -

E 7 - - 12 0 4 - - -

F - 5 4 7 4 0 - 8 -

G - - 11 - - - 0 - 10

H - - - - - 8 - 0 15

J - - - - - - 10 15 0

Catalin

Stoean

104/107

Page 105: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Exercitiu

stop

start

Inteligenta Artificiala

Consideram problema gasirii unui rute in figura de mai jos de la

start la stop.

Agentul se muta un patrat la fiecare pas vertical sau orizontal.

Nu se poate deplasa in patratele hasurate.

1. Etichetati cu litere in

ordine alfabetica patratele

daca se utilizeaza o

cautare Greedy.

Pentru aproximare, folositi

distanta Manhattan –

numarul de patrate vizitate

in directia x + patratele in

directia y pana la tinta.

Nu se tine cont de patratelehasuratepentrudistantaManhattan.

Catalin

Stoean

105/107

Page 106: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Exercitiu

stop

start

Inteligenta Artificiala

Consideram problema gasirii unui rute in figura de mai jos de la

start la stop.

Agentul se muta un patrat la fiecare pas vertical sau orizontal.

Nu se poate deplasa in patratele hasurate.

2. Etichetati cu litere in

ordine alfabetica patratele

daca se utilizeaza o

cautare A*.

Pentru aproximare, folositi

distanta Manhattan.

Catalin

Stoean

106/107

Page 107: Aplicatii la cautarea neinformata si informata - Facultatea de ...id.inf.ucv.ro/~cstoean/courses/ia/c4.pdfAlgoritm general de cautare functia cautare_generala(problema, strategie)

Exercitiu

stop

start

Inteligenta Artificiala

Consideram problema gasirii unui rute in figura de mai jos de la

start la stop.

Agentul se muta un patrat la fiecare pas vertical sau orizontal.

Nu se poate deplasa in patratele hasurate.

3. Presupunem ca graful se

extinde la infinit in toate

directiile. start si stop

raman la aceleasi locatii, la

fel si patratele negre. Ce

metoda nu mai gaseste

nicio solutie?

Catalin

Stoean

107/107