Curso 2012-2013

77
Curso 2012-2013 José Ángel Bañares 17/09/2013. Dpto. Informática e Ingeniería de Sistemas. Inteligencia Artificial (30223) Lección 4. Búsqueda Informada

description

Inteligencia Artificial (30223) Lección 4. Búsqueda Informada. Curso 2012-2013. José Ángel Bañares 17/09/2013. Dpto. Informática e Ingeniería de Sistemas. Índice. Informada= Utiliza conocimiento problema Estrategias B úsqueda primero el mejor y sus variantes (A*) Función heurística. - PowerPoint PPT Presentation

Transcript of Curso 2012-2013

Page 1: Curso 2012-2013

Curso 2012-2013José Ángel Bañares 17/09/2013. Dpto. Informática e Ingeniería de Sistemas.

Inteligencia Artificial (30223)Lección 4. Búsqueda Informada

Page 2: Curso 2012-2013

ÍndiceInformada= Utiliza conocimiento

problemaEstrategias

Búsqueda primero el mejor y sus variantes (A*)

Función heurística

Page 3: Curso 2012-2013

Descripción informal de la búsqueda en grafo

function BÚSQUEDA-GRAFO(problema, estrategia) returns solución o fallo

Inicializa la frontera utilizando el estado inicial del problemaInicializa el conjunto de nodos explorados a vacíoloop do

if la frontera está vacía then return falloelige un nodo hoja de la frontera de acuerdo a una

estrategiaif el nodo contiene un nodo objetivo then return

soluciónañade el nodo al conjunto de nodos exploradosexpande el nodo elegido, añadiendo los nodos

resultantes a la frontera sólo si no está en la frontera o en el conjunto

explorados

Una estrategia se define por el orden de expansión de nodos

Page 4: Curso 2012-2013

Búsqueda primero el mejorIdea: Utilizar una función de evaluación de cada nodo f(n) que estima como de “prometedor” es el nodo.

Aproximación general de la búsqueda informadaf(n) es una estimación del coste. Elegiremos el nodo con menor coste

estimado basado en la función f(n) La elección de f(n) determina la estrategia La mayoría de los algoritmos primero el mejor incluyen una función

heurística, que denominaremos h(n):

h(n) = estimación del coste del camino menos costoso desde el estado en el nodo n al objetivo. Depende sólo del estado en n.

Page 5: Curso 2012-2013

Búsqueda primero el mejorLa carga de conocimiento del problema viene dada por h(n)

Si no utilizamos h(n) la búsqueda primero el mejor incluye a la BFS, DFS y coste uniforme.

h(n) es función del estado. f(n) es una función del nodo, recoge

información del camino recorrido (nodo) h(n) sólo estima lo prometedor del nodo en

función del estado. h(n) es una función no negativa, específica

del problema, y con h(n)=0 si el estado del nodo es un objetivo.

f(n) = d(n) + h(n)

Page 6: Curso 2012-2013

Ejemplo heurística: Distancia en línea recta al objetvo

hSLD= heurística de la línea recta al objetivo / straight-line distance heuristic.

hSLD no puede ser calculada a partir de la formulación del problema.

No hemos introducido las coordenadas en la formulación del problema

Page 7: Curso 2012-2013

Algoritmo voraz /Greedy algorithmEvaluación de función f(n) = h(n) (heurística)

= estimación del coste de n al objetivo más próximo

El algoritmo voraz expande el nodo que parece estar más próximo al objetivo.

P. e. hSLD(n) = distancia en línea recta de n a Bucharest

Page 8: Curso 2012-2013

8

Ejemplo Algoritmo vorazQueremos viajar de Arad a Bucharest. Estado Inicial = Arad

Page 9: Curso 2012-2013

9

Ejemplo Algoritmo voraz (en árbol)

Page 10: Curso 2012-2013

Ejemplo Algoritmo voraz

Page 11: Curso 2012-2013

11

Ejemplo Algoritmo voraz

Page 12: Curso 2012-2013

Ejemplo Algoritmo voraz

Page 13: Curso 2012-2013

13

Ejemplo Algoritmo voraz (en árbol)

Page 14: Curso 2012-2013

Ejemplo Algoritmo voraz (en árbol)

Page 15: Curso 2012-2013

15

Ejemplo Algoritmo voraz (en árbol)

Page 16: Curso 2012-2013

16

Ejemplo Algoritmo voraz (en árbol)

Page 17: Curso 2012-2013

Evaluación: ¿Óptimo?Óptimo: NO.

17

99+211=310

97+80+101=278

Page 18: Curso 2012-2013

Evaluación algoritmo vorazÓptimo: NOCompleto:

No en la búsqueda en árbol. Incluso con un espacio de estados finito, puede entar en un bucle infinito.

18

Page 19: Curso 2012-2013

Evaluación algoritmo vorazÓptimo: NOCompleto:

No en la búsqueda en árbol. Incluso con un espacio de estados finito, puede entar en un bucle infinito.

Page 20: Curso 2012-2013

Evaluación algoritmo vorazÓptimo: NOCompleto:

No en la búsqueda en árbol. Si en búsqueda en grafo si el espacio es finito.

Page 21: Curso 2012-2013

Evaluación algoritmo vorazÓptimo: NO. Como la búsqueda en

profundidad.Completo:

No en la búsqueda en árbol. Si en búsqueda en grafo si el espacio es finito.

¿Complejidad temporal? El peor caso como la búsqueda en profundidad

(con m la profundidad máxima del espacio de estados)

Page 22: Curso 2012-2013

Evaluación algoritmo voraz Óptimo: NO. Como la búsqueda en profundidad. Completo:

No en la búsqueda en árbol. Si en búsqueda en grafo si el espacio es finito.

Complejidad temporal: El peor caso como la búsqueda en profundidad

(con m la profundidad máxima del espacio de estados)

Complejidad espacial: Guarda todo los nodos

Page 23: Curso 2012-2013

Evaluación algoritmo voraz Óptimo: NO. Completo:

No en la búsqueda en árbol. Si en búsqueda en grafo si el espacio es finito.

Complejidad temporal:(con m la profundidad máxima del espacio de estados)

Complejidad espacial: Una buena heurística puede reducir la

complejidad La reducción dependerá del problema y de la calidad de la

heurística.

Page 24: Curso 2012-2013

Búsqueda A*Idea: evitar expandir caminos que ya tienen caminos costosos. Función de evaluación f(n)=g(n) + h(n)

g(n)=coste para alcanzar el nodo nh(n)=estimación del coste para alcanzar el objetivo desde el nodo n.f(n)= estimación del coste total del camino desde n al objetivo.

Algoritmo idéntico a la búsqueda de coste uniforme, utilizando f en lugar de g.

Page 25: Curso 2012-2013

Búsqueda A*La búsqueda A* es optima y completa si la función heurística cumple ciertas propiedades (admisibilidad y consistencia)

Una heurística es admisible si nunca sobreestima el coste real de alcanzar el objetivo.

Una heurística admisible es optimista

Formalmente: 1. h(n) <= h*(n) donde h*(n) es el coste real de n2. h(n) >= 0 , de forma que h(G)=0 para cualquier

objetivop.e. hSLD(n) nunca sobreestima la distancia real a recorrer.

Page 26: Curso 2012-2013

26

Ejemplo Rumanía: A* y hSLD

Queremos viajar de Arad a Bucharest. Estado Inicial = Arad

Page 27: Curso 2012-2013

27

Ejemplo Rumanía: A* y hSLD

Page 28: Curso 2012-2013

Ejemplo Rumanía: A* y hSLD

Page 29: Curso 2012-2013

29

Ejemplo Rumanía: A* y hSLD

Page 30: Curso 2012-2013

Ejemplo Rumanía: A* y hSLD

Page 31: Curso 2012-2013

31

Ejemplo Rumanía: A* y hSLD

Page 32: Curso 2012-2013

Ejemplo Rumanía: A* y hSLD

Page 33: Curso 2012-2013

33

Ejemplo Rumanía: A* y hSLD

Page 34: Curso 2012-2013

34

Ejemplo Rumanía: A* y hSLD

Page 35: Curso 2012-2013

35

Ejemplo Rumanía: A* y hSLD

Page 36: Curso 2012-2013

36

Ejemplo Rumanía: A* y hSLD

Page 37: Curso 2012-2013

Ejemplo Rumanía: A* y hSLD

Aparece Bucharest en la frontera, pero con f= 450.Pitesi tiene el menor valor de f 417, podríamos encontrar una solución de menor coste a través de Pitesi

Page 38: Curso 2012-2013

38

Ejemplo Rumanía: A* y hSLD

Page 39: Curso 2012-2013

Ejemplo Rumanía: A* y hSLD

A* en árbol: Solución óptima si h(n) es admisible

Page 40: Curso 2012-2013

A*/8-puzzle2 38

6 4157

1

2 386 41

57

2 38

64157

22 38

6 4157

2 386

4157

42 38

641

57

2 38

64157

3

238

64157

2 38

6415

72 386

4157

52 3

86

4157

2 386

41

57

6

2 38

64

1

57

72 386

41

57

estado af'(a) = 4

estado cf'(c) = 4

estado df'(d) = 6

estado bf'(b) = 6

estado ff'(f) = 5

estado gf'(g) = 6

estado ef'(e) = 5

estado if'(i) = 7

estado hf'(h) = 6

estado jf'(j) = 5

estado nf'(n) = 7

estado mf'(m) = 5

estado lf'(l) = 5

estado kf'(k) = 7

objetivo

g(n) = 5

g(n) = 4

g(n) = 0

g(n) = 1

g(n) = 2

g(n) = 3

f’(n) = g(n) + h’(n)

g(n) = distancia real del estado inicial a n

h’(n) = número de piezas fuera de lugar

Page 41: Curso 2012-2013

A*/8-puzzle

2 386 41

57

1

2 386 41

57

2 38

64157

22 38

6 4157

2 386

4157

2 38

641

57

2 38

64157

3

238

64157

2 38

6415

72 386

4157

2 386

4157

2 386

41

57

2 38

64

1

57

2 386

41

57

estado af(a) = 4

estado cf(c) = 4

estado df(d) = 6

estado bf(b) = 6

estado ff(f) = 5

estado gf(g) = 6

estado ef(e) = 5

estado if(i) = 7

estado hf(h) = 6

Forntera

explorados

Page 42: Curso 2012-2013

Optimalidad de A* en árbolSupongamos que un objetivo subóptimo G2 está en la cola.Sea n un nodo no expandido en el camino más corto al objetivo

optimo G.

f(G2 ) = g(G2 ) puesto que al ser objetivo h(G2 )=0> g(G) puesto que G2 es subóptimo>= f(n) puesto que h es admisible

Por lo tanto f(G2) > f(n), A* nunca seleccionaría G2 para expansión

Page 43: Curso 2012-2013

Pero … la búsqueda en grafoDescarta nuevos caminos a los estados repetidos

La prueba anterior no es válida

Solución: Añadir nuevos caminos a nodos repetidos

eliminando el más costoso. Asegurar que se sigue primero el camino óptimo a

cualquier estado repetido. Requisito extra sobre h(n): consistencia(monotonicidad)

Page 44: Curso 2012-2013

ConsistenciaUna heurística es consistente si

Si h es consistente

por lo tanto f(n) es no decreciente a lo largo de cualquier camino.

Page 45: Curso 2012-2013

A* Búsqueda en grafo1. f(n) es no decreciente a lo largo de cualquier camino

2. Cuando se selecciona un nodo n para expansión, el camino óptimo a este nodo ha sido encontrado

Si no fuera el caso, habría otro nodo n’ en la frontera por el que pasaría el camino óptimo desde el origen al nodo n. Por ser f(n) una función no decreciente, f(n’) tendría menor valor y tendría que haber sido seleccionado primero.

De las dos observaciones precedentes se sigue que una secuencia de nodos expandidos por A* utilizando una búsqueda en grafo es en orden no decreciente de f(n).

Page 46: Curso 2012-2013

46

Optimalidad de A* A* expande nodos en orden no decreciente del valor de f Se pueden dibujar contornos en el espacio de estados

La búsqueda de coste uniforme añade circulos

Añade gradualmente “f-contornos” de nodos: Contorno i tiene todos los nodos con f = fi,Donde fi < fi+1

Page 47: Curso 2012-2013

Evaluación Búsqueda A*Completitud: SI

Puesto que los f-contornos van creciendo. Si C* es el coste de la solución óptima podemos

decir A* Expande todos los nodos con f(n) <C* A* podría expandir alguno de los nodos en el

contorno objetivo (donde f(n) = C*) antes de seleccionar el nodo objetivo.

A no ser que haya infinitos nodos con f<f(G)

Page 48: Curso 2012-2013

Evaluación Búsqueda A*Completitud: SiComplejidad Temporal

El número de nodos expandidos es todavía exponencial con la longitud de la solución Los detalles de este análisis están fuera del

alcance del curso, …. pero veamos la idea intuitiva.

Page 49: Curso 2012-2013

Evaluación Búsqueda A*Completitud: SiComplejidad Temporal

El número de nodos expandidos es todavía exponencial con la longitud de la solución Los detalles de este análisis están fuera del

alcance del curso, …. pero veamos la idea intuitiva.Hay que considerar que el coste de este algoritmo es O(bp) en el peor caso. Si por ejemplo, la función heurística h(n) = 0, el algoritmo se comporta como una búsqueda en anchura gobernada por f(n) = g(n).

g

Page 50: Curso 2012-2013

Evaluación Búsqueda A* Completitud: Si Complejidad Temporal

El número de nodos expandidos es todavía exponencial con la longitud de la solución Lo que hace que este algoritmo pueda tener coste

temporal inferior es la bondad de la función h. Podemos interpretar que g y h gobiernan el comportamiento en anchura o profundidad del algoritmo Cuanto más cercana al coste real sea h, mayor será el

comportamiento en profundidad del algoritmo, pues los nodos que están más cerca de la solución se explorarán antes

Cundo la información no sea fiable, el coste del camino explorado hará que otros menos profundos tengan coste mejor, y se abre la búsqueda en anchura.

h

g

Page 51: Curso 2012-2013

Heurísticas más informadas nodos (A*, h): nodos expandidos por A* con h h1 y h2 admisibles,h2 es más informada que h1 sii h2(n) > h1(n)

∀n nodos (A*,h2) ⊂ nodos (A*,h1)

Page 52: Curso 2012-2013

Heurísticas más informadas Dadas dos heurísticas A* h1 y h2,

se dice que h2 está mejor informada que h1 si para cualquier estado n del espacio de

búsqueda h1(n) <= h2(n)

Comparaciones en el 8-puzzle La búsqueda en anchura es el peor A* (h’(n) = 0) La heurística suma de piezas fuera de lugar es un

A* La heurística con la distancia Manhattan es A* y

está mejor informada que la anterior

Page 53: Curso 2012-2013

Comparación A* y anchura en 8-puzzle

2 386 41

57

1

2 386 41

57

22 38

64157

32 38

6 4157

4

2 386 4

1 57

52 3

86

4157

72 38

641

57

82 38

64157

62 38

64

157

9

238

6 41 57

102 386 41 57

112

38

64157

122 38

6415

7

132 386

4157

142 3

86

4157

152 38

641 5

7

172

38

641

57

162 38

64

157

182

386

41

57

19

238

64157

242 3

86 41 57

212 386 41 57

222 386 41 5

7

232

386 4

1 57

202 38

6415

7

252 386

41

57

262 3

86

41

57

272 38

641 5

7

292

38

641

57

282 38

64

157

302

38

64

157

332 3

8 64

157

312 38

64

1 57

32

8 362 41 57

358

326 41 57

362

83

6 41 57

372

386 4

1 57

342 386 41

57

392

38

6 41 57

382 386 41 5

7

412 386 4

1 57

402

38

64

1

57

432

38

64157

422 38

641

57

452 38

64

1 57

442 3

86

41

57

46

Comparación del espacio de estados entre los algoritmos A* y primero en anchura Heurística utilizada: distancia

Manhattan

Page 54: Curso 2012-2013

Evaluación Búsqueda A*Completitud: SiComplejidad temporal:

Si la heurística no es buena, es como una búsqueda en anchura

Exponencial con la longitud del camino

Complejidad espacial: Mantiene todos los nodos generados en memoria La memoria es el mayor problema, no el tiempo.

Page 55: Curso 2012-2013

Evaluación Búsqueda A*Completitud: SIComplejidad temporal: Exponencial

con la longitud del caminoComplejidad Espacial: Se almacenan

todos los nodosOptimalidad: SI

No se expande fi+1 hasta que fi se finaliza. A* expande todos los nodos con f(n)< C* A* expande algunos nodos con f(n)=C* A* No expande nodos con f(n)>C*

Page 56: Curso 2012-2013

Busqueda heurística con memoria acotadaSolución a los problemas de memoria del A*

(manteniendo completitud y optimalidad) Iterative-deepening A* (IDA*)

Imponemos un límite al coste del camino que queremos hallar f-cost (g+h) en lugar de la profundidad (límite: menor coste de la iteración anterior)

Recursive best-first search(RBFS) Algoritmo recursivo que intenta imitar el búsqueda

primero en anchura con espacio lineal. (simple) Memory-bounded A* ((S)MA*)

Elimina el nodo con pero coste cuando la memoria está llena.

Page 57: Curso 2012-2013

IDA*Sufre las mismas dificultades que la Iterative

lengthening search (idéntico, pero con f=g,en lugar de f=g+h) versión IDS utilizando costes crecientes, en lugar

de profundidad. Si se genera un nodo cuyo coste excede el límite en

curso se descarta. Para cada nueva iteración, el límite se establece en el del mínimo coste de cualquier nodo descartado en la iteración anterior.

El algoritmo expande nodos en orden creciente de coste, por lo que el primer objetivo encontrado es optimo.

IDA* en el peor caso, h=0, O(bd)

Page 58: Curso 2012-2013

Búsqueda primero el mejor recursivo (Recursive best-first search RBFS)

Mantiene el valor f de la mejor alternativa disponible de cualquier ancestro del nodo. Si el valor f en curso excede el valor alternativo se

vuelve al camino alternativo. Al hace backtracking se cambia f de cada nodo

en el camino por el mejor valor de f en sus hijos. RBFS recuerda el mejor valor de f de las hojas de

sub-árboles olvidados, y puede decidir si merece la pena volver a re-expandirlos.

Algo más eficiente que IDA*, pero puede soportar una regeneración de nodos excesiva.

Page 59: Curso 2012-2013

Recursive best-first searchfunction RECURSIVE-BEST-FIRST-SEARCH(problema) return a solution or failure

return RFBS(problema,MAKE-NODE(problema.INITIAL-STATE),∞)

function RFBS( problema, nodo, f_limit) return solución o fallo y un nuevo límite f-cost

if problema.GOAL-TEST(nodo.STATE) then return nodosuccessores EXPAND(nodo, problema)if sucessores está vacio devuelve fallo, ∞for each s in sucesores do /* actualiza valores con

búsqueda previa */s.f max(s.g + s.h, nodo.f)

repeatbest el menor f-value de los nodos en sucesoresif best.f > f_limit then return fallo, best.falternativa el segundo mejor f-value entre

sucesoresresultado, best.f RBFS(problema, best, min(f_limit,

alternativa))if resultado fallo then return resultado

Page 60: Curso 2012-2013

Recursive best-first search, ej.

Camino hasta Rumnicu Vilcea expandidoSobre el nodo f-limit para cada llamada recursiva.Debajo del nodo: f(n)El camino es seguido hasta Pitesti que tiene un valor f peor que el f-

limit.

alternativa

alternativa

>415

Page 61: Curso 2012-2013

Recursive best-first search, ej.

Vuelve de llamada recursiva y almacena el mejor valor f de la hora en curso Pitesti (417)result, f [best] RBFS(problem, best, min(f_limit, alternative))

El mejor ahora es Fagaras. Se llamada RBFS con el nuevo mejor El mejor ahora es 450

>417alternativa

Page 62: Curso 2012-2013

Recursive best-first search, ej.

Vuelve de la llamada recursiva y almacena el mejor f de la hoja en curso Fagarasresult, f [best] RBFS(problem, best, min(f_limit, alternative))

El mejor ahora es Rimnicu Viclea (de nuevo). Llama RBFS para el nuevo mejor El sub-árbol es de nuevo expandido. Mejor subárbol alternativo es ahora Timisoara..

Solución encontrada es encontrada por qué 447 > 417.

Page 63: Curso 2012-2013

Evaluación RBFSRBFS es un poco más eficiente que IDA*

Todavía genera excesivos nodos

Como A*, optima si h(n) es admisibleComplejidad espacial O(bd).

IDA* retiene solo un número (el límite f-cost)

Complejidad temporal difícil de caracterizar Depende de la precisión de h(n) y con que frecuencia

cambiamos el mejor camino.

IDA* y RBFS utilizan demasiada poca memoria.

Page 64: Curso 2012-2013

(simplified) memory-bounded A* (S)MA*Utiliza la memoria disponible.

Expande la mejor hoja hasta que se llena la memoria

Cuando se llena, SMA* elimina el peor nodo (valor de mayor)

Como RFBS devuelve el valor del nodo olvidado a su padre.

SMA* es completa si las solución es alcanzable, óptimo si la solución es alcanzable.

Page 65: Curso 2012-2013

Funciones heurísticas

Para el 8-puzle Coste medio de la solución es unos 22 pasos (factor de ramificación b +/- 3) Una búsqueda exhaustiva en árbol de profundidad 22 explorará : 322 = 3.1 x 1010 estados. Una búsqueda en grafo reduce la búsqueda en un factor 170.000 porque sólo 9!/2=

181.440 estados son alcanzables Una buena función heurística reduce el proceso de búsqueda.

Estado inicial Estado objetivo

Page 66: Curso 2012-2013

Funciones heurísticas

Por ejemplo para el 8-puzle 2 heurísticas conocidas

h1 = número de piezas descolocadas h1(s)=8

h2 = La suma de distancias de las piezas a su posición objetivo (distancia de manhattan). h2(s)=3+1+2+2+2+3+3+2=18

Estado inicial Estado objetivo

Page 67: Curso 2012-2013

Calidad de la heurística/rendimientoFactor de ramificación efectivo b*

Es el factor de ramificación que un árbol uniforme de profundidad d tendría para contener N+1 nodos

Puede variar entre las instancias de problemas, pero es suficientemente constante para problemas difíciles Es una buena medida de la utilidad de la

heurística. Un buen valor de b* es1. Ejemplo, si d=5 y N= 52, b*= 1.92

Page 68: Curso 2012-2013

Rendimientos en 8-puzle 1200 problemas aleatorios con soluciones de

longitudes entre 2 y 24.

IDSd

2468

1012141618202224

10112680638447127

3644043473941

-----

613203993227539

1301305672761809439135

61218253973113211363676

12191641

2.452.872.732.802.792.782.83

-----

1.791.451.301.241.221.241.231.251.261.271.281.26

1.791.481.341.331.381.421.441.451.461.471.481.48

A*(ha) A*(hb)

Coste de la búsqueda Factor ramific. efectivoIDS A*(ha) A*(hb)

• Profundización iterativa

• A* con heurística a (número de piezas en posición errónea)

• A* con heurística b(distancia Manhattan)

Page 69: Curso 2012-2013

Generar heurísticas admisibles relajando el problema Las soluciones admisibles pueden ser derivadas

mediante una versión relajada del problema Versión relajada del 8-puzle h1 (Casillas descolocadas) : Una

casilla se puede mover a cualquier sitio, en vez de a la casilla adyacente. En este cao, h1(n) da la solución más corta.

Versión relajada del 8-puzle para h2 (distancia de Manhatan): una casilla puede moverse a cualquier cuadro adyacente, incluso aunque esté ocupada. En este caso , h2(n) da la solución más corta.

Page 70: Curso 2012-2013

Generar heurísticas admisibles relajando el problema La solución óptima de un problema relajado subestima la solución

óptima del problema real.

Un problema relajado añade “caminos” entre estados en el problema relajado. Cualquier solución en el problema real es solución en el problema relajado.

Pero el problema relajado puede tener mejores soluciones utilizando atajos. El coste de una solución óptima en un problema relajado es una heurística

del problema original.

Un programa denominado ABSOLVER puede generar automáticamente heurísticas a partir de la definición del problema, utilizando esta técnica.

Si generamos varias heurística y no tenemos claramente una mejor, podemos utilizar h(n) = max{h1(n), …hm(n)}

Page 71: Curso 2012-2013

71

Generar heurísticas: Bases de datos de patrones

Las soluciones admisibles pueden derivarse también de soluciones a subproblemas de un problema dado.

E l coste es una cota inferior del coste real del problema. Bases de datos de patrones almacenan el coste de la solución de cada

posible instancia de subprobema. La heurística completa se construye usando los patrones de la BDUna base de patrones se puede construir moviendo hacia atrás desde el objetivo Se pueden construir varias bases de patrones y combinar h(n) = max{h1(n), …hm(n)}

Estado inicial Estado objetivo Estado inicial Estado objetivo

Page 72: Curso 2012-2013

Generar heurísticas: Bases de datos de patrones

Estado inicial Estado objetivo

Estado inicial Estado objetivoEstado inicialEstado objetivo

BD1 BD2

Podemos construir varias bases de patrones

Page 73: Curso 2012-2013

Generar heurísticas: Bases de datos de patrones

Estado inicial Estado objetivo

BD1

Combinamos con h(n) = max{h1(n), …hm(n)}

Mejor que la distancia de Manhatan.

El número de nodos generados para el 15-puzle puede reducirse en un factor de 1000 comparado con la distancia de Manhatan.

BD2

BD1

Page 74: Curso 2012-2013

Generar heurísticas: Bases de datos de patrones disjuntas

Estado inicial Estado objetivo

BD1

Bases de datos disjuntas No podemos combinar h sumando las hi(n), porque unos movimientos interfieren en los otros.

Pero si h1(n), no es el coste total del subproblema 1-2-3-4 sino el número de movimientos que involucran 1-2-3-4, y el de h2(n) es el número de movimientos de 5-6-7-8 la suma es una cota inferior del coste total.

En el 15-puzzle se reducen los nodos generados en un orden de 10000 comparado con la distancia de Manhatan.

BD1

Para el cubo de Rubik se han propuesto otras formas de heurística aditiva, pero no han mejorado laMejor heurística no aditiva.

Page 75: Curso 2012-2013

Generar heurísticas: Aprendizaje Otra forma de encontrar heurísticas es mediante

aprendizaje: Experiencia = resolver montones de 8-puzles Algoritmo de aprendizaje inductivo se puede usar para predecir

costes de estados utilizando características del estado (p.e. piezas descolocadas).

El algoritmo predice la heurística combinando características h(n) = c1X1(n) + c2 x2(n) c1 y c2 se ajustan para encajar de la mejor forma posible con

los datos reales de las costes de soluciones obtenidos resolviendo.

J(n) = 0 en objetivos, pero no tiene porque se admisible o consistente.

Otras técnicas de aprendizaje: redes neuronales, árboles de decisión, …

Page 76: Curso 2012-2013

0 500 1000 1500 2000 25000

100

200

300

400Predicción precio casa

Preicio(€) in 1000’s

Tamaño en pies cuadrados

Regresión lineal: Predecir la salida de valores continuos (precio)

Aprendizaje supervisadoRecopilamos “respuestas

correctas”Curso Machine Learning Online: https://class.coursera.org/ml/

Page 77: Curso 2012-2013

Inteligencia Artificial

(30223) Grado en Ingeniería Informática

lección 4. Búsqueda informada (Heurística) Sección 3.5 y 3.6 (AIMA)