Sei sulla pagina 1di 18

Bsqueda heurstica

Fernando Berzal, berzal@acm.org

Bsqueda heurstica
Bsqueda primero el mejor p.ej. bsqueda de coste uniforme [UCS] Heursticas Bsqueda greedy El algoritmo A* Heursticas admisibles Heursticas consistentes
1

Bsqueda primero el mejor


Uso de informacin en la bsqueda Exploracin primero el mejor Se explora exhaustivamente el grafo utilizando una funcin heurstica para determinar el orden en que se exploran los nodos:
1.

2. 3. 4. 5.

Seleccionar el nodo E del grafo que tenga mayor valor para la funcin heurstica. Seleccionar un operador R aplicable sobre E. Aplicar R, para obtener un nuevo nodo R(E). Aadir el arco E R(E) al grafo Repetir el proceso.

Bsqueda primero el mejor


Bsqueda de coste uniforme Uniform Cost Search (UCS)
Estado 0 (coste = 0)

Estado 1 (coste = 3)

Estado 2 (coste= 7)

Estado 3 (coste = 1)

Estado 3.1 (coste = 5)

Estado 3.2 (coste = 9)

Estado 3.3 (coste = 11)


3

Bsqueda primero el mejor


Cuntos nodos expande UCS?
Todos los que tengan un coste menor que la solucin de menor coste. Tiempo O(b O(bC*/) b: Factor de ramificacin del rbol. C*: Coste de la solucin ptima. : Coste mnimo de cada arco.
c1

c2 c3

Cuntos nodos puede haber en la frontera de bsqueda?


Los del nivel correspondiente al coste de la solucin, O(b O(bC*/)

Si existe una solucin de coste finito y es positivo, el algoritmo encuentra la solucin.

Bsqueda primero el mejor

Demo: UCS con costes uniformes = BFS


5

Bsqueda primero el mejor

Demo: UCS
6

Bsqueda primero el mejor

Demo UCS
7

Bsqueda primero el mejor


UCS explora contornos de coste creciente Ventajas Algoritmo completo (encuentra la solucin) Algoritmo ptimo (encuentra la mejor solucin)
c1

c2 c3

Desventajas Explora en todas direcciones (no tiene en cuenta cul es nuestro objetivo)
8

Bsqueda primero el mejor


UCS

inicio

solucin

Lo deseable deseable
inicio inicio

solucin
9

Heursticas

Las heursticas son criterios, mtodos o principios para decidir cul de entre varias acciones promete ser la mejor para alcanzar una determinada meta. En la generacin del rbol de bsqueda, nos podemos guiar con heursticas que nos den una indicacin acerca de cmo de bueno o prometedor es un determinado estado u operador.
p.ej. Qu pieza deberamos mover en una partida de ajedrez? Qu regla aplicamos en primer lugar al hacer un diagnstico?
10

Heursticas
El uso de heursticas nos permite guiar nuestra bsqueda de una solucin, lo que nos permitir obtener una solucin ms rpidamente que si utilizsemos estrategias de bsqueda a ciegas.
NOTA: Comprese el uso heurstico de informacin para guiar el proceso de bsqueda en Inteligencia Artificial con formalismos como la teora de la decisin o la teora de juegos, que en ocasiones nos permitirn determinar la decisin ptima si somos capaces de identificar todos los factores relevantes para el problema en cuestin (y las incertidumbres asociadas a ellos !!). http://en.wikipedia.org/wiki/Decision_theory http://en.wikipedia.org/wiki/Game_theory

11

Heursticas
En problemas de bsqueda: bsqueda: Una heurstica ser una funcin que utilizaremos para estimar cmo de cerca estamos de la solucin. solucin. Cada heurstica estar diseada para un problema de bsqueda particular.

Berkeley CS188

12

Heursticas
Ejemplo En problemas de bsqueda de caminos/ caminos/trayectorias trayectorias: : Distancia eucldea Distancia de Manhattan

10

11.18

13

Heursticas
Qu sucede si utilizamos directamente los valores proporcionados por nuestra funcin heurstica? heurstica? Bsqueda greedy (voraz (voraz) ) Saltamos al nodo de mejor valor heurstico heurstico lo que nos lleva directamente directamente a una solucin. solucin. Sin embargo, puede que no sea la mejor solucin :-( Funcionamiento en el peor caso caso: : Como DFS
(puede que tengamos que explorar el espacio de bsqueda completo, completo , siempre y cuando evitemos ciclos ciclos). ).
14

Heursticas
No siempre funcionan bien bien

Berkeley CS188

15

El algoritmo A*
IDEA Combinar UCS y greedy La bsqueda por coste uniforme slo tiene en cuenta el coste de llegar al nodo actual (hacia (hacia atrs atrs): ): g(n) La bsqueda greedy slo tiene en cuenta el coste estimado para llegar a la solucin (hacia adelante): adelante): h(n) El algoritmo A* gua la bsqueda utilizando la suma: suma: f(n) = g(n) + h(n)
16

El algoritmo A*
Cuestiones de implementacin Cundo debemos terminar la bsqueda? bsqueda? No cuando se encuentre una solucin, solucin, sino cuando se expanda el nodo correspondiente a la solucin solucin. .

17

El algoritmo A*
Cuestiones de implementacin Se encuentra siempre la solucin ptima? ptima? Depende de la funcin heurstica que utilicemos utilicemos

18

El algoritmo A*
Heursticas admisibles Las heursticas pesimistas (inadmisibles) inadmisibles) impiden la optimalidad del algoritmo A* al descartar buenos planes. Las heursticas optimistas (admisibles) admisibles) no subestiman la calidad de un buen plan.

Berkeley CS188

19

El algoritmo A*
Heursticas admisibles Una heurstica es admisible si h(n) h*(n) donde h*(n) es el coste verdadero de la solucin desde n.

10

11.18

NOTA: Tambin se requiere h(n) 0, de modo que h(G) = 0 para cualquier solucin G. G.

20

El algoritmo A*

Demo
21

El algoritmo A*
Optimalidad del algoritmo A* Supongamos que h(n) es una heurstica admisible A es una solucin ptima B es una solucin subptima El algoritmo A* expandir el nodo A antes que el B.

22

El algoritmo A*
Optimalidad del algoritmo A* El algoritmo A* expandir A antes que B.
Si B est en la frontera de bsqueda, bsqueda, Algn ancestro n de A tambin estar en la frontera de bsqueda (puede que el propio A). n se expandir antes que B, ya que f(n) f(A) < f(B) f(n) f(A) f(n) = g(n)+h(n) g(A) = f(A) f(A) < f(B) g(A) < g(B) f(A) < f(B) Todos los ancestros de A se expanen antes que B. A se expande antes que B.

23

El algoritmo A*
Diseo de heursticas admisibles El secreto de resolver problemas difciles de bsqueda est en encontrar heursticas admisibles. A menudo, una forma de obtener heursticas admisibles consiste en resolver problemas relajados (problemas similares al que queremos resolver, pero con menos restricciones sobre posibles acciones).

24

El algoritmo A*
Diseo de heursticas admisibles 8-puzzle

Estado inicial

Objetivo

25

El algoritmo A*
Diseo de heursticas admisibles 8-puzzle Heurstica 1: Nmero de piezas mal colocadas

Berkeley CS188
26

El algoritmo A*
Diseo de heursticas admisibles 8-puzzle Heurstica 2: Distancia de Manhattan total h(n) = 3+1+2+ = 18

27

El algoritmo A*
Diseo de heursticas admisibles 8-puzzle Resultados

Nmero de nodos expandidos cuando la solucin ptima tiene tiene Heurstica 4 pasos 8 pasos 12 pasos h=0 (UCS) 112 6300 3.6M #piezas 13 39 227 Manhattan 12 25 73

28

El algoritmo A*
Diseo de heursticas admisibles Mejor heurstica admisible posible: posible: Coste real de la solucin. solucin. Tiempo de ejecucin: ejecucin: Cuanto ms nos acerquemos al coste real, tendremos que expandir menos nodos pero pero tambin realizaremos ms trabajo en cada nodo. nodo. Combinacin de heursticas admisibles admisibles: : h(n) = max { ha(n), hb(n) }
El mximo de heursticas admisibles tambin es admisible admisible. .

29

El algoritmo A*
Bsqueda sobre grafos grafos Espacio de estados rbol de bsqueda

30

El algoritmo A*
Heursticas consistentes Coste heurstico estimado coste real Admisibilidad: Admisibilidad : h(A) h*(A) Consistencia: Consistencia : h(A) h(C) coste coste(A (AC) NOTA: Consistencia implica admisibilidad. admisibilidad. Propiedades de las heursticas consistentes consistentes: : El valor de f a lo largo de un camino nunca decrece. decrece. h(A) coste(A coste(AC) + h(C) El algoritmo A* sobre grafos es ptimo (siempre que la heurstica utilizada sea consistente consistente). ).

31

El algoritmo A*

Demo Path planning @ Google selfself-driving car

32

Resumen
Algoritmos de bsqueda

33

Bibliografa
Stuart Russell & Peter Norvig: Norvig: Artificial Intelligence: A Modern Approach PrenticePrentice -Hall, 3rd edition, 2009 ISBN 0136042597 Nils J. Nilsson The Quest for Artificial Intelligence Cambridge University Press, 2009 ISBN 0521122937
34

Bibliografa
Bibliografa complementaria Elaine Rich & Kevin Knight: Artificial Intelligence. McGrawMcGraw -Hill, 1991. Patrick Henry Winston: Artificial Intelligence. AddisonAddison -Wesley, 1992. Nils J. Nilsson: Principles of Artificial Intelligence. Morgan Kaufmann, 1986.

35

Potrebbero piacerti anche