Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

88
Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 ndamentos de Inteligencia Artifici

Transcript of Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Page 1: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Búsqueda

Eduardo Morales/L. Enrique Sucar

Sesión 03

Fundamentos de Inteligencia Artificial

Page 2: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• Identificación y definición del problema • Identificación del criterio de evaluación • Generación de alternativas

Solución de Problemas

Asociado a la inteligencia

Solución de muchos problemas en IA: básicamente búsqueda y evaluación

Page 3: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• define un espacio de estados (explícito / implícito) • especifica los estados iniciales • especifica los estados finales (metas) • especifica las reglas que definen las acciones disponibles para moverse de un estado a otro

Representación del espacio de estados

Page 4: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

En este contexto:

Representación de espacio de estados

El proceso de solución de problemas = encontrar una secuencia de operaciones que transformen al estado inicial en uno final

Se reuiere una estrategia de búsqueda

Page 5: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Reinas (Q)Reinas (Q)

Tablerode

Ajedrez

Tablerode

Ajedrez

A=8 B=9 C=10 A=8 B=9 C=10

QQ

AA BB CC

QQQQ

Ejemplo: problema de las 8 reinasEjemplo: problema de las 8 reinas

Page 6: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Para el problema de las 8 reinas podemos tener diferentes opciones:

• solución incremental: acercarse a la meta haciendo decisiones locales

• sistemática: no repetir y no excluir

Page 7: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• transformar (hasta encontrar la meta) vs.• construir (poco a poco)

Medios (espacio de estados):

Posible heurística: poner una reina por renglón en un lugar que deje el mayor número de lugares sin atacar

Page 8: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Otras ideas• Estimar qué tan cerca se está de la solución

(v.g., 8-puzzle)• Usar información extra (v.g., estimar distancias

en base a coordenadas)• Usar subestimaciones (e.g., TSP vs. árbol de

expansión mínimo)• Contruir una estrategia (e.g., detectar moneda

falsa)• Grafos AND/OR• Identificar meta crítica (e.g., Torres de Hanoi)

Page 9: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• calidad de la solución (a veces puede no importar)

• diferencia en complejidad entre una solución solución óptima

• en general, se busca encontrar la solución más barata

Cómo encontramos una buena heurística?

Factores a considerar:

Page 10: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

1. Estructura simbólica que represente subconjuntos de soluciones potenciales (agenda)

2. Operaciones/reglas que modifiquen símbolos de la agenda y produzcan conjuntos de soluciones potenciales más refinadas

3. Estrategia de búsqueda que decida qué operación aplicar a la agenda

Qué necesitamos:

Page 11: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Terminología:

nodo, árbol, hoja, nodo-raíz, nodo-terminal, branching factor (factor de arborescencia), ramas, padres, hijos, árbol uniforme, ...

Page 12: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• nodos expandidos (closed): todos los sucesores• nodos explorados pero no expandidos : sólo algunos sucesores• nodos generados pero no explorados (open) • nodos no generados

Paso computacional primordial: expansión de nodos

Page 13: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Nodo raíz

Padre

Hijos

Ramas

Nodos terminales/hojas

Profundidad

Page 14: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Nodo expandido (closed)

Nodos generadosNo explorados (open)

Nodo no generadoNodo exploradoNo expandido

Page 15: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

La estrategia de control es sistemática si:

1. no deja un sólo camino sin explorar (completo)

2. no explora un mismo camino más de una vez (eficiencia)

Propiedades

Page 16: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

1. Completo: si encuentra una solución cuando ésta existe

2. Admisible: si garantiza regresar una solución óptima cuando ésta existe

Propiedades de algoritmos de búsqueda (heurísticas):

Page 17: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

3. Dominante: un algoritmo A1 se dice que domina a A2 si todo nodo expandido por A1 es también expandido por A2 (“más eficiente que”)

4. Óptimo: un algoritmo es óptimo sobre una clase de algoritmos si domina a todos los miembros de la clase

Propiedades de algoritmos de búsqueda (heurísticas):

Page 18: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• Sin información: depth-first (en profundo) breadth-first (a lo ancho) • Con información: hill climbing beam search best first

Procedimientos de Búsqueda

Algún camino:

Page 19: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

minimax alpha-beta SSS* SCOUT

El mejor camino: British museum branch and bound A*

Juegos

Page 20: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

A B C

I

D E F

M

3

34

4 4

42

5 5

GRAFO

Page 21: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

EC E B B F

D F B F C E A C M

M MC F

M

11

14

19 19 17

17

25

15 15 13

ÁRBOL DE BÚSQUEDA

Page 22: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Depth first - backtracking (LIFO)

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores al frente de la agenda

Page 23: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

DEPTH-FIRST SEARCH

(I)

(A D)

(B D D)

(C E D D)

(E D D)

(D F D D)

(F D D)

(M D D)

I

A D

B D A E

EC E B B F

D F B F C A C M

M MC F

M

11

14

19 19 17

17

25

15 15 13

E

Page 24: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• depth-bound (casi todos): limitar la búsqueda hasta cierto límite de profundidad

• interative-deepening: explorar a profundidad progresivamente

• con algo de información: ordena los nodos expandidos

árboles con caminos de profundidad muy grande

Problemas:

Variaciones:

Page 25: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores al final de la agenda

Problemas: árboles con arborescencia muy grande

Variantes: búsqueda de costo uniforme

Breadth first

Page 26: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

EC E B B F

D F B F C E A C M

M MC F

M

11

14

19 19 17

17

25

15 15 13

ÁRBOL DE BÚSQUEDA

Page 27: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

BR

EA

DT

H-F

IRS

T S

EA

RC

H(I)

(A D)

(D B D)

(B D A E)

(D A E C E)

(A E C E E)

(E C E E B)

(C E E B B F)

1

2

3

0

(E E B B F)

(E B B F D F)

(B B F D F B F)

(B F D F B F C E)

( F D F B F C E A C)

(D F B F C E A C M)4

(F B F C E A C M)

(B F C E A C M M)

(F C E A C M M C)

(C E A C M M C M)

(E A C M M C M)

(A C M M C M F)

(C M M C M F)

(M M C M F)5

Page 28: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Requerimientos de tiempo y memoria para breadth-first. Factor de arborecencia = 10; 1,000 nodos/sec; 100 bytes/nodo

Profund.

Nodos Tiempo Memoria

10

2

4

68

0

1214

1 1 miliseg. 100 bytes111 .1 seg.

11,111 terabytes

11 kilobytes1 megabyte

111 megabytes

11 gigabytes

1 terabyte111 terabytes

11,111

10 6

10 8

1010

1012

1014

11 seg.

18 min.

31 hr.128 días35 años3500 años

Page 29: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Comparación en nodos buscados: Si n = profundidad del árbol b = braching factor d = profundidad de un nodo meta

Complejidad

Page 30: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

depth-first: • mejor caso: d nodos buscados • peor caso:

-n

i= 0

bi-i= 0

bin d

= bn+1- bn+1- d

b-1bn

Page 31: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• mejor caso: • mejor caso:

-i= 0

bid 1

=b 1--1bd bd 1-

breadth-first:breadth-first:

• peor caso:• peor caso:

i= 0

bid

=b 1-

-1bd+1 bd

Page 32: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Comparación de estrategias. b = factor de arborecencia; d = profundidad solución; m = máxima profundidad árbol; l = límite de profundidad.

Criterio Breadth Costo Depth Depth Iterative Bidireccionalfirst uniforme first limited deepening

Tiempo

Espacio

Completo

Optimo

bd

bd

bd

bd

si

si si

si

bm

bl

bd

bd/2

b X m bX l bX d bd/2

no

no

no si si

sisisi(si l ≥d)

Page 33: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda selecciona el mejor y elimina el resto

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda selecciona el mejor y elimina el resto

Algoritmos con InformaciónAlgoritmos con Información

Hill-ClimbingHill-Climbing

Page 34: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Hill climbing

Heurística: ve a la ciudad más cercana

(I)

(A D)

(D B)

(E C)

I

A D

B D A E

EC E B B F

D F B F C A C M

M MC F

M

11

14

19 19 17

17

25

15 15 13

E

BÚSQUEDA HILL-CLIMBING

Page 35: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Best-first

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda

Best-first

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda

Page 36: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

EJEMPLO BÚSQUEDA BEST-FIRST

EJEMPLO BÚSQUEDA BEST-FIRST

Page 37: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

BEST FIRST

Heurística:Distancia acumulada más corta

I

A D

I

A D

B D

3 4

7 8

4

1

2

Page 38: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

7 8 9 6

3

Page 39: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

7 8 9

E

B F

11 10

4

Page 40: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

8 9

E

B F

11 10

5

B

C E

1211

Page 41: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

9

E

B F

11 10

6

B

C E

1211

D

E10

Page 42: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

F B B E E C E

F B

11 12

15 14

13 11 10

7

Page 43: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

F B B E E C E

F

11 12

15 14

13 11

F B M

13

8

Page 44: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Beam search

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda y selecciona los N mejores (los demás eliminalos)

Beam search

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda y selecciona los N mejores (los demás eliminalos)

Page 45: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

EJEMPLO DE BÚSQUEDA BEAM SEARCH

EJEMPLO DE BÚSQUEDA BEAM SEARCH

Page 46: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Beam search Beam=2

I

A D

I

A D

B D

3 4

7 8

4

X

1

2

Page 47: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B A E7 9 6

X

3

Page 48: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B E7

E

B F11 10

X

4

Page 49: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B EE

F 10

B

C E 1211

X

5

Page 50: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B EE

F

B

C

M

6

Page 51: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Espacio Usado

• depth-first:(b-1)*n + 1 • breadth-first: b• hill-climbing: 1 • best-first: entre b y b• beam-seach: beam

Espacio Usado

• depth-first:(b-1)*n + 1 • breadth-first: b• hill-climbing: 1 • best-first: entre b y b• beam-seach: beam

dd

ddnn

Page 52: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Mejor SoluciónMejor Solución

Cuando importa el costo de encontrar una solución Cuando importa el costo de encontrar una solución

Si g(P) es el costo de camino o solución parcial, la solución óptima es aquella con g(P) mínima.

Si g(P) es el costo de camino o solución parcial, la solución óptima es aquella con g(P) mínima.

Una forma segura: búsqueda exhaustiva y seleccionar el de menor costo (Brittish Museum)

Una forma segura: búsqueda exhaustiva y seleccionar el de menor costo (Brittish Museum)

Page 53: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Best-first no es admisible, pero con una pequeña variante ya lo es.

Branch and Bound trabaja como best-first pero en cuanto se encuentra una solución, sigue expandiendo los nodos de costos menores al encontrado

Best-first no es admisible, pero con una pequeña variante ya lo es.

Branch and Bound trabaja como best-first pero en cuanto se encuentra una solución, sigue expandiendo los nodos de costos menores al encontrado

Page 54: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Branch and Bound

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta y los demás nodos sean de costos mayores o iguales a la meta si el primer elemento es la meta y los demás nodos son de menor o igual costo a la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda

Branch and Bound

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta y los demás nodos sean de costos mayores o iguales a la meta si el primer elemento es la meta y los demás nodos son de menor o igual costo a la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda

Page 55: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

EJEMPLO DE BÚSQUEDA BRANCH AND BOUND

EJEMPLO DE BÚSQUEDA BRANCH AND BOUND

Page 56: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

F B B E E C E

F

11 12

15 14

13 11

F M 13

X

Búsqueda Branch and Bound

B

1

Page 57: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

F B B E E C E

F

11

12

15 14

13

F B M 13 A C

15 15

2

Page 58: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B D A E

F B B E C E

F

11

15 14

13

F B M

13

A C

15 15

D F

14 16

3

Page 59: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Idea: no explorar caminos a los que ya llegamos por caminos más cortos/baratos

El algoritmo es igual sólo hay que añadir la condición:

elimina todos los caminos que lleguen al mismo nodo excepto el de menor costo

Idea: no explorar caminos a los que ya llegamos por caminos más cortos/baratos

El algoritmo es igual sólo hay que añadir la condición:

elimina todos los caminos que lleguen al mismo nodo excepto el de menor costo

Dynamic ProgrammingDynamic Programming

Page 60: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

EJEMPLO CON DYNAMIC PROGRAMMING EJEMPLO CON DYNAMIC PROGRAMMING

Page 61: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D3 4

Dynamic programming

I

A D

B D7 8

X

4

1

2

Page 62: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B A E7 9 6

X

43

3

Page 63: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B E7 E

B F13 10

3 4

6

X

4

Page 64: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B E7 E

E11 10

3 4

6

X

F12C

5

Page 65: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

B E7 E

1110

3 4

6

FC

M

6

Page 66: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

A*: utiliza dos medidas

Idea: usar estimaciones de los costos/distancias que faltan junto con los costos/distancias acumuladas

A*: utiliza dos medidas

Idea: usar estimaciones de los costos/distancias que faltan junto con los costos/distancias acumuladas

estim(camino que falta) estim(camino que falta) ++costo(camino recorrido)costo(camino recorrido)estim(total) =estim(total) =

Page 67: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Las estimaciones no son perfectas, por lo que se usan sub-estimaciones Las estimaciones no son perfectas, por lo que se usan sub-estimaciones

subestim(total) =subestim(total) =subestim(camino que falta)subestim(camino que falta)

++

De nuevo expande hasta que los demás tengan sub-estimaciones más grandes (v.g., subestimaciones de distancias entre ciudades pueden ser líneas rectas)

De nuevo expande hasta que los demás tengan sub-estimaciones más grandes (v.g., subestimaciones de distancias entre ciudades pueden ser líneas rectas)

costo(camino recorrido)costo(camino recorrido)

Page 68: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta y los demás nodos sean de costos mayores o iguales a la meta si el primer elemento es la meta y los demás nodos son de menor o igual costo a la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda de acuerdo al costo acumulado más las subestimaciones de los que falta

Page 69: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

EJEMPLO DE BÚSQUEDA A*

EJEMPLO DE BÚSQUEDA A*

Page 70: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D13.4 12.9

I

A D

A E

13.4

19.4 12.9

A*1

2

Page 71: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

A D

EE

F 13.0

13.4

B17.7

A19.4

3

Page 72: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

I

AD

EE

F

13.0

13.4

B17.7

A19.4

M

4

Page 73: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Comparación Interactive Deepening (IDS) con A* con dos heurísticas (h1 y h2). Resultados promedios de 100 instancias del 8-puzzle.

Costo de búsqueda Arborescencia

d

24

81012141618202224

6

IDS

101126806384471273644043473941

-----

A*(h )

1 A*(h )

2 IDS

613203993227539130130567276

1809439135

6121825397311321136367612191641

2.452.872.732.802.792.782.83-----

1.791.481.341.331.381.421.441.451.461.471.481.48

A*(h )

1 A*(h )

2

1.791.45 1.301.241.221.241.231.251.261.271.281.26

efectiva

Page 74: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Variantes de A*

• Pesar la combinación de g y h:

f(n) = (1-w)g(n) + w h(n)• Interactive deepening A*: IDA*• Aceptar un margen de error: A*• Con memoria limitada: MA*

Page 75: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• si el tamaño de búsqueda es pequeño (rara vez), podemos hacer búsqueda exhaustiva • sin información depth-first con progressive- deepening • branch and bound en general está bien • dynamic programming cuando existen muchos posibles caminos con cruces • A* cuando podemos tener una buena subestimación

• si el tamaño de búsqueda es pequeño (rara vez), podemos hacer búsqueda exhaustiva • sin información depth-first con progressive- deepening • branch and bound en general está bien • dynamic programming cuando existen muchos posibles caminos con cruces • A* cuando podemos tener una buena subestimación

¿Cuándo usamos cada una? ¿Cuándo usamos cada una?

Page 76: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Todas estas estrategias tienen su equivalente para árboles AND-OR

Para hacer un depth first en un árbol del tipo AND - OR

Todas estas estrategias tienen su equivalente para árboles AND-OR

Para hacer un depth first en un árbol del tipo AND - OR

IF alguno de los nodos AND falla, realiza backtracking hasta el ultimo nodo OR IF alguno de los nodos OR falla realiza backtracking al nodo inmediato anterior

IF alguno de los nodos AND falla, realiza backtracking hasta el ultimo nodo OR IF alguno de los nodos OR falla realiza backtracking al nodo inmediato anterior

Page 77: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

En general se usan 2 funciones de estimación:En general se usan 2 funciones de estimación:

• f1: evalúa sobre los nodos (como antes) • f2: evalúa sobre árboles• f1: evalúa sobre los nodos (como antes) • f2: evalúa sobre árboles

Page 78: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

IF nodo terminal es meta: S Else: N IF nodo no-terminal es AND: S si todos son S N si alguno es N IF nodo no-terminal es OR: S si alguno es S N si todos son N

IF nodo terminal es meta: S Else: N IF nodo no-terminal es AND: S si todos son S N si alguno es N IF nodo no-terminal es OR: S si alguno es S N si todos son N

Para etiquetar Solución (S) / no-solución (N):Para etiquetar Solución (S) / no-solución (N):

Similarmente para A* existe un correspondiente AO* Similarmente para A* existe un correspondiente AO*

Page 79: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Búsqueda en árbol And/Or

E

N N N N NS S S

Page 80: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

• analizando modelos simplificados • analizando modelos simplificados

¿Cómo encontrar heurísticas?¿Cómo encontrar heurísticas?

• soluciones por descomposición: si cada submeta se puede solucionar independientemente de las otras

• soluciones por descomposición: si cada submeta se puede solucionar independientemente de las otras

• soluciones parcialmente ordenadas• soluciones parcialmente ordenadas• usar probabilidades• usar probabilidades

Page 81: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

busca(NodoI,NodoF) :- busca_aux([NodoI],NodoF).

busca_aux([NodoF | __],NodoF). busca_aux(Agenda,NodoF) :- nva_agenda(Agenda,NAgenda), busca_aux(NAgenda,NodoF).

busca(NodoI,NodoF) :- busca_aux([NodoI],NodoF).

busca_aux([NodoF | __],NodoF). busca_aux(Agenda,NodoF) :- nva_agenda(Agenda,NAgenda), busca_aux(NAgenda,NodoF).

Búsqueda en PrologBúsqueda en Prolog

Page 82: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

% depth-first nva_agenda([N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Nodos,Agenda,NAgenda). % breadth-first nva_agenda([N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Agenda,Nodos,NAgenda).

% depth-first nva_agenda([N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Nodos,Agenda,NAgenda). % breadth-first nva_agenda([N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Agenda,Nodos,NAgenda).

Page 83: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

% best first nva_agenda([N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,NAgenda).

% best first nva_agenda([N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,NAgenda).

% hill-climbing nva_agenda([N1 Agenda],[Mejor]) :- expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,[Mejor __]).

% hill-climbing nva_agenda([N1 Agenda],[Mejor]) :- expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,[Mejor __]).

Page 84: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

% beam-search nva_agenda(Beam,[N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,AgendaOrd), nthelems(Beam,AgendaOrd,NAgenda).

% beam-search nva_agenda(Beam,[N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,AgendaOrd), nthelems(Beam,AgendaOrd,NAgenda).

Page 85: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

(defun busca (nodoI, nodoF) (busca2 (list nodoI) nodoF)) (defun busca2 (agenda nodoF) (cond ((null agenda) nil) ((equal (car agenda) nodoF)) (t (busca2 (nva_agenda (car agenda) (cdr agenda)) nodoF))))

(defun busca (nodoI, nodoF) (busca2 (list nodoI) nodoF)) (defun busca2 (agenda nodoF) (cond ((null agenda) nil) ((equal (car agenda) nodoF)) (t (busca2 (nva_agenda (car agenda) (cdr agenda)) nodoF))))

Búsqueda en LispBúsqueda en Lisp

Page 86: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

; breath-first (defun nva_agenda (nodo agenda) (append (expande nodo) agenda)) ; depth search (defun nva_agenda (nodo agenda) (append agenda (expande nodo))) ; best-first search (defun nva_agenda (nodo agenda) (sort (append (expande nodo) agenda)))

; breath-first (defun nva_agenda (nodo agenda) (append (expande nodo) agenda)) ; depth search (defun nva_agenda (nodo agenda) (append agenda (expande nodo))) ; best-first search (defun nva_agenda (nodo agenda) (sort (append (expande nodo) agenda)))

Page 87: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

; hill-climbing (defun nva_agenda (nodo agenda) (list (car (sort (append (expande nodo) agenda))))) ; beam search (defun nva_agenda (beam nodo agenda) (nthelems beam (sort (append (expande nodo) agenda))))

; hill-climbing (defun nva_agenda (nodo agenda) (list (car (sort (append (expande nodo) agenda))))) ; beam search (defun nva_agenda (beam nodo agenda) (nthelems beam (sort (append (expande nodo) agenda))))

Page 88: Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 03 Fundamentos de Inteligencia Artificial.

Selecciona un aspecto de tu problema que puede plantearse como un problema de búsqueda.

• Representar como un problema de búsqueda en un espacio de estados (definir estados, meta y operadores)

• Expander los 3 primeros niveles del árbol

• Estimar complejidad

Selecciona un aspecto de tu problema que puede plantearse como un problema de búsqueda.

• Representar como un problema de búsqueda en un espacio de estados (definir estados, meta y operadores)

• Expander los 3 primeros niveles del árbol

• Estimar complejidad

TAREATAREA