La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

I A 3. Búsqueda y Planificación Jorge Cabrera Gámez

Presentaciones similares


Presentación del tema: "I A 3. Búsqueda y Planificación Jorge Cabrera Gámez"— Transcripción de la presentación:

1 I A 3. Búsqueda y Planificación Jorge Cabrera Gámez
Departamento de Informática y Sistemas Universidad de Las Palmas de Gran Canaria © Todos los derechos reservados

2 Contenidos 3. Búsqueda y Planificación. (10 horas)
3.1 El agente que planifica. 3.2 Técnicas de búsqueda no informada. 3.3 Técnicas de búsqueda informada. 3.4 Técnicas de búsqueda con adversario. 3.5 Planificación, acción y aprendizaje. 3.6 Bibliografía básica. 2

3 Objetivos: Un agente capaz necesita explorar.
Igual Problema <--> Idéntica Solución o el porqué de una representación formal basada en estados y operadores. Conocer los métodos de exploración más comunes. La heurística permite una búsqueda más efectiva. Procedimientos de búsqueda para juegos. La actividad de un agente real es algo más que exploración: el ciclo percibir-planificar-actuar. 3

4 El Agente que Planifica
El agente reactivo tiene sus posibles acciones “compiladas” en memoria. Esto supone que deben haberse anticipado todas y cada una de las posibles situaciones a dilucidar por el agente. En caso de que esto fuese posible fuera de entornos muy restrictivos, la memoria necesaria podría llegar a ser inmensa. ¿Es este enfoque suficiente para un agente que debe evolucionar en un entorno real?. 4

5 El Agente que Planifica
Frente al agente reactivo, puede promocionarse otro tipo de agente capaz de “calcular” qué acciones son adecuadas a cada situación. Este agente es en principio mucho más fácil de mantener o modificar. Además es posible que sea capaz de extrapolar su comportamiento a situaciones inicialmente no previstas por el diseñador. Debe ser capaz de predecir las consecuencias de sus acciones, para lo que se requiere un modelo del mundo en el que evoluciona. 5

6 A B C ((A)(B)(C)) A C B C A B ((AB)(C)) ((A)(CB)) A B B C B C A C A C
mueve(C,B) mueve(A,B) mueve(A,C) mueve(C,A) mueve(B,C) A C mueve(B,A) B C A B ((AB)(C)) ((A)(CB)) A B B C B C A C A C A B ((B)(AC)) ((BA)(C)) ((A)(BC)) ((CA)(B)) 6

7 mueve(B,mesa) mueve(B,mesa) mueve(A, C) mueve(C, mesa) mueve(C,B)
((BAC)) B mueve(B,mesa) C B mueve(B,mesa) ((BCA)) ((B)(AC)) ((CA)(B)) mueve(A, C) mueve(C,B) mueve(C, mesa) mueve(A,mesa) mueve(A, mesa) mueve(C,mesa) C A A C B B C A mueve(A, mesa) mueve(C, mesa) ((CAB)) A B ((ACB)) B C A B C ((A)(CB)) ((AB)(C)) ((A)(B)(C)) mueve(B,A) mueve(B,C) B B A C A C ((AB)(C)) ((A)(BC)) mueve(B,C) C mueve(C,B) A mueve(A,B) B B A C 7 ((CAB)) ((ABC))

8 Sistemas de resolución de problemas
Datos o representación: describen las situaciones posibles Situación inicial Situación final u objetivo Situaciones intermedias ESTADOS Operadores: transforman una situación del problema en otra cambiando/transformando la situación actual generando subproblemas más simples Estrategia de control: qué operadores escoger en función de la situación actual 8

9 Encontrar la secuencia correcta de operadores que
OP_C estado2 OP_D estado3 estado1 OP_A OP_E OP_A estado4 estado5 OP_B Solución al problema: Encontrar la secuencia correcta de operadores que permite alcanzar el estado objetivo desde el estado inicial. 9

10 A. Espacio de Estados B. Reducción de Problemas
Dos formulaciones: A. Espacio de Estados B. Reducción de Problemas Problema inicial SubProblema #1 SubProblema #2 Primitiva A Primitiva B Primitiva C And Or OP_A OP_C OP_B 10

11 Sean p,q,r,s,t,y u proposiciones lógicas relacionadas según:
Un ejemplo: Sean p,q,r,s,t,y u proposiciones lógicas relacionadas según: p  q q p ? r  s  p t  u  q r  u r t  u r  s El problema: demostrar el teorema q  p u t r s r 11

12 Ejemplo. El problema de las jarras de agua. Nos dan dos jarras con una capacidad de 4 y 3 litros respectivamente. Ninguna tiene marca alguna de medida. El problema consiste en obtener exactamente 2 litros de agua en la jarra de 4 litros. Se supone que podemos obtener toda el agua que sea necesaria de un depósito en el que también podemos verter agua si esto fuese necesario. 12

13 El problema de las jarras de agua: El espacio de estados:
El conjunto de pares ordenados (x,y), tal que x = 0,1,2,3,4 e y = 0,1,2,3, donde x e y representan respectivamente el volumen de agua contenido en la jarra de 4 y de 3 litros. Estado inicial: (0,0) Estado final: (2, n), para cualquier valor posible de n. 13

14 El conjunto de operadores:
1. (x,y), si x < 4  (4,y) ; Llena la jarra de 4 litros 2. (x,y), si y < 3  (x,3) ; Llena la jarra de 3 litros 3. (x,y), si x > 0  (0,y) ; Vacía la jarra de 4 litros 4. (x,y), si y > 0  (x,0) ; Vacía la jarra de 3 litros 5. (x,y), si (x+y)  4 e y > 0  (4,y-(4-x)) ; Llena la jarra de 4 litros con el contenido de la jarra de 3 litros 6. (x,y), si (x+y)  3 e y > 0  (x-(3-y),3) ; Llena la jarra de 3 litros con el contenido de la jarra de 4 litros 7. (x,y), si (x+y)  4 e y > 0  (x+y,0) ; Vacía el contenido de la jarra de 3 litros en la de 4 litros 8. (x,y), si (x+y)  3 e x > 0  (0,x+y) ; Vacía el contenido de la jarra de 4 litros en la de 3 litros 14

15 Una solución al problema:
Agua en la jarra de 4 litros Agua en la jarra de 3 litros Operador Llena la de 3 Vacía la de 3 en la de 4 Llena la de 3 3 3 Llena la de 4 con parte la de 3 Vacía la de 4 Vacía la de 3 en la de 4 Estado objetivo 15

16 El problema de los misioneros y los caníbales.
En el problema de los misioneros y los caníbales se tienen 3 misioneros en una orilla de un río y 3 caníbales en la orilla opuesta. Para cruzar el río se dispone de un bote que puede transportar a la otra orilla a una o dos personas. El objetivo es encontrar la sucesión de cruces que logre llevar a todos a la otra orilla. El problema radica en que si en algún instante los misioneros quedan en inferioridad numérica en cualquier orilla serán devorados por los caníbales. 16

17 La explosión combinatoria
Principal problema en la resolución de problemas por exploración de alternativas Complejidad: recursos en tiempo y memoria de una máquina Nº de estados en el ajedrez ~ 10120 Edad del Universo ~ 1017 segundos Máquina con velocidad de exploración de 1 estado/picosegundo, es decir, 1012 estados/sg Desde el comienzo del Universo habría explorado sólo 1029 estados 17

18 Factor de Ramificación
(exploración en árboles) Exploración ordenada Ordenar la exploración de los estados por expectativas de éxito Explosión combinatoria Se eliminan las ramas del árbol que no se consideran adecuadas Exploración con poda Conocimiento específico al problema (Heurística) 18

19 La exploración en árboles
Procedimiento de búsqueda no informados Procedimiento de búsqueda informados Procedimiento de búsqueda con adversario 19

20 Ejemplo que se empleará para ilustrar los diferentes
métodos de exploración no informados e informados. A B C S G D E F 20

21 A B C S G S D E F A D B D A E C E E B B F D F B F C E A C G G C G F G
El árbol expandido del grafo anterior (evitando la repetición de nodos en un camino) G C G F G 21

22 Esqueleto de función que es capaz de recoger numerosas estrategias de exploración
function GENERAL-SEARCH(problema, estrategia) { "Devuelve una solución o fallo" Inicializar el árbol de búsqueda usando el estado inicial de “problema” loop do if no hay nodos para expandir then return fallo elegir un nodo-hoja para expandir de acuerdo con “estrategia” if el nodo contiene el nodo meta then return la solución expandir el nodo y añadir los nodos resultantes al árbol end } 22

23 Estructura de datos y funciones asociadas para exploración en árboles.
En lo que sigue asumiremos que un nodo se definirá como una estructura de datos con los siguientes componentes: El estado en el espacio de estados al que este nodo representa. El nodo que lo generó o nodo padre de este nodo. El operador que se aplicó para generar este nodo. El número de nodos desde este nodo al nodo raiz, v.g la profundidad del nodo. El coste acumulado en el trayecto desde el nodo raiz a este nodo. 23

24 La diferencia entre nodos y estados
Es importante destacar aquí la diferencia entre nodos y estados. Un nodo es simplemente una estructura de datos auxiliar que resulta adecuada para representar el proceso de búsqueda en un determinado problema y en un instante dado, de acuerdo con un cierto procedimiento de búsqueda. Un estado representa por contra una cierta configuración del mundo o entorno donde se desarrolla el problema. Así los nodos tienen antecesores o nodos-padre, profundidad, etc, mientras los estados no. 24

25 Esqueleto de función que es capaz de recoger numerosas estrategias de exploración
function GENERAL-SEARCH(problem, QUEUING-FN) { "Devuelve una solución o fallo" nodes <-- MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) loop do if EMPTY?(nodes) then return failure node <-- REMOVE-FRONT(nodes) if GOAL-TEST(problem, state(node)) then return node nodes <-- QUEUING-FN(nodes, EXPAND(node,problem)) end } 25

26 MAKE-QUEUE(Elements) crea una cola con los elementos dados.
Representación de la colección de nodos susceptibles de expansión en el proceso de exploración. Asumiremos que esta colección de nodos se implementará como una cola, con los siguientes métodos u operadores: MAKE-QUEUE(Elements) crea una cola con los elementos dados. EMPTY?(Queue) devuelve true sólo si la cola no contiene elementos. REMOVE-FRONT(Queue) extrae el elemento situado en la cabeza de la cola y lo devuelve. QUEUING-FN(Elements,Queue) define la función que se emplea para insertar los elementos en la cola. Veremos que diferentes métodos de búsqueda sólo difieren en la definición de esta función. 26

27 Esqueleto de función que es capaz de recoger numerosas estrategias de exploración
function GENERAL-SEARCH(problem, QUEUING-FN) { "Devuelve una solución o fallo" nodes <-- MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) loop do if EMPTY?(nodes) then return failure node <-- REMOVE-FRONT(nodes) if GOAL-TEST(problem, state(node)) then return node nodes <-- QUEUING-FN(nodes, EXPAND(node,problem)) end } 27

28 Métodos de búsqueda no informados
Búsqueda en amplitud Búsqueda en profundidad Búsqueda limitada en profundidad Búsqueda progresiva en profundidad 28

29 (Breadth-First search)
Búsqueda en amplitud (Breadth-First search) 29

30 S S A D D B D A E E C E E B B F F D F B F C E A C G G G C G F
Búsqueda en amplitud G 30

31 Búsqueda en amplitud La estrategia de control:
--> visitar todos los nodos de un nivel antes de explorar los nodos hijos (siguiente nivel) Los últimos nodos expandidos se insertan en el final de la cola function BREADTH-FIRST-SEARCH(problem) { return GENERAL-SEARCH(problem, ENQUEUE-AT-END) } 31

32 Búsqueda en amplitud Propiedades Completitud Optimalidad
Garantiza el encontrar una solución si existe; y si existen varias devuelve la de menor profundidad El método de exploración es óptimo: Devuelve la solución de menor coste siempre que el coste no sea una función decreciente con la profundidad 32

33 Búsqueda en amplitud Propiedades Complejidad
Supongamos un árbol cuya solución se encuentra a profundidad d y cuyo factor de ramificación es b. Entonces el nº de nodos a expandir antes de alcanzar la solución será: 1+b+b2+b bd Dado que es necesario expandir cada uno de los nodos (en el peor de los casos) y, además, conservarlos en memoria, los requerimientos en tiempo y en espacio (memoria) son ambos O(bd). 33

34 Búsqueda en amplitud Propiedades Ejemplo
Supongamos una máquina capaz de explorar 1000 nodos/sg y que cada nodo requiere 100 bytes de memoria, si el factor de ramificación es 10: Profundidad Nodos Tiempo Memoria msg 100 bytes ,1 sg 11 Kb sg 1 Mb minutos 111 Mb horas 11 Gb días 1 Terabyte años 111 Tb años Tb 34

35 Búsqueda en profundidad
(Depth-First search) 35

36 Búsqueda en profundidad G
C E E E B B F D F F B F C E A C G G G C G F Búsqueda en profundidad G 36

37 Búsqueda en profundidad
La estrategia de control: --> visitar primeramente los nodos hijos hacia los niveles de mayor profundidad Los últimos nodos expandidos se insertan por la cabeza de la cola function DEPTH-FIRST-SEARCH(problem) { return GENERAL-SEARCH(problem, ENQUEUE-AT-FRONT) } 37

38 Búsqueda en profundidad
Propiedades Completitud Optimalidad Garantiza el encontrar una solución si existe y el árbol es finito; El método de exploración no es óptimo: No garantiza la solución de menor coste 38

39 Búsqueda en profundidad
Propiedades Complejidad Los requerimientos en memoria son muy modestos, sólo es necesario guardar una única trayectoria desde el nodo raiz. Así para un árbol con profundidad máxima m y factor de ramificación b, sólo es necesario almacenar b*m nodos. Los requerimientos en tiempo son O(bm). 39

40 Búsqueda en profundidad
Propiedades Suele funcionar mejor que el de búsqueda en amplitud en problemas con muchas soluciones, siempre que no se requiera la optimalidad de la solución, pues encuentar la solución tras explorar sólo una pequeña porción del árbol. Debe evtarse en árboles infinitos o de gran profundidad. 40

41 Búsqueda limitada en profundidad
(Depth-limited search) 41

42 Búsqueda limitada en profundidad G
C E E B B F F D F B F C E A C G G G C G F Búsqueda limitada en profundidad G 42

43 Búsqueda limitada en profundidad
La estrategia de control: --> visitar primeramente los nodos hijos hacia los niveles de mayor profundidad hasta una profundidad máxima preestablecida. Los últimos nodos expandidos se insertan por la cabeza de la cola function DEPTH-LIMITED-SEARCH(problem, depth) { return GENERAL-SEARCH(problem, ENQUEUE-AT-FRONT depth) } 43

44 Esqueleto de función que es capaz de recoger numerosas estrategias de exploración
function GENERAL-SEARCH(problem, QUEUING-FN,[depth]) { "Devuelve una solución o fallo" nodes <-- MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) loop do if EMPTY?(nodes) then return failure node <-- REMOVE-FRONT(nodes) if GOAL-TEST(problem, state(node)) then return node nodes <-- QUEUING-FN(nodes, EXPAND(node,problem,[depth])) end } 44

45 Búsqueda limitada en profundidad
Propiedades Al fijar un límite en la profundidad de búsqueda se pueden controlar las dos características más problemáticas de la búsqueda en profundidad: las soluciones que se puedan encontrar nunca estarán más allá de la profundidad límite y se evita el que la búsqueda pueda quedar “atrapada” en una rama si el árbol es infinito o muy profundo. 45

46 Búsqueda progresiva en profundidad
(Iterative Deepening search) 46

47 Búsqueda progresiva en profundidad (profundidad = 1) G
C E E B B F D F B F C E A C G G C G F Búsqueda progresiva en profundidad (profundidad = 1) G 47

48 Búsqueda progresiva en profundidad (profundidad = 2) G
C E E B B F D F B F C E A C G G C G F Búsqueda progresiva en profundidad (profundidad = 2) G 48

49 Búsqueda progresiva en profundidad (profundidad = 3) G
C E E B B F D F B F C E A C G G C G F Búsqueda progresiva en profundidad (profundidad = 3) G 49

50 Búsqueda progresiva en profundidad (profundidad = 4) G
C E E B B F F D F B F C E A C G G G C G F Búsqueda progresiva en profundidad (profundidad = 4) G 50

51 Búsqueda progresiva en profundidad
La estrategia de control: --> realizar una exploración limitada en profundidad donde el límite se va incrementando si la búsqueda con el límite anterior no tiene éxito. function ITERATIVE-DEEPENING-SEARCH(problem) { for depth <-- 0 to infinity do if DEPTH-LIMITED-SEARCH(problem,depth)succeeds then return its results end return failure } 51

52 Búsqueda progresiva en profundidad
Propiedades Completitud Optimalidad Garantiza el encontrar una solución si existe, sea o no el árbol finito. El método de exploración es óptimo: garantiza la solución de menor coste. 52

53 Búsqueda progresiva en profundidad
Propiedades Complejidad La gran ventaja de este método frente a los vistos hasta ahora es que combina los mejores ventajas de la búsqueda en amplitud: es óptimo y completo; y la búsqueda en profundidad: los requerimientos en memoria son muy modestos, sólo es necesario guardar una única trayectoria desde el nodo raiz. Así para un árbol con profundidad máxima m y factor de ramificación b, sólo es necesario almacenar b*m nodos. Los requerimientos en tiempo son O(bm). 53

54 Métodos de búsqueda informados
Búsqueda en escalada Búsqueda por haces Búsqueda “el mejor primero” A* 54

55 Ejemplo que se empleará para ilustrar los diferentes
métodos de exploración informados. 4 4 A B C 3 S 5 5 G 4 3 D E F 2 4 55

56 (Hill-Climbing search)
Búsqueda en Escalada (Hill-Climbing search) 56

57 Búsqueda en Escalada La eficacia de la exploración en profundidad puede aumentarse si se dispone de alguna medida que nos permita ordenar los nodos hijos, de tal forma que se exploren primero aquellos que presenten una mayor expectativa de éxito. La selección ordenada de los nodos puede realizarse en función de algún parámetro que resulte de un conocimiento específico del problema 57

58 Ejemplo que se empleará para ilustrar los diferentes
métodos de exploración informados. 4 4 A B C 3 S 5 5 G 4 3 D E F 2 4 h(A,G) = 10.4 h(D,G) = 8.9 h(E,G) = 6.9 h(B,G) = 6.7 h(C,G) = 4.0 h(F,G) = 3.0 “Cuanto mayor más alejado” 58

59 S S A D D B D A E E C E E B B F F D F B F C E A C G G G C G F
8.9 A 10.4 D D B D A 10.4 E E 6.9 3.0 C E E B 6.7 B F F D F B F C E A C G G G C G F h(A,G) = h(D,G) = 8.9 h(E,G) = h(B,G) = 6.7 h(C,G) = h(F,G) = 3.0 Búsqueda en escalada G 59

60 Búsqueda en Escalada La estrategia de control:
--> realizar una exploración en profundidad donde los sucesores se van insertando ordenadamente (por la cabeza) en la cola. function HILL-CLIMBING-SEARCH(problem) { return GENERAL-SEARCH(Problem, ENQUEUE-AT-FRONT-SORTED) } 60

61 Búsqueda en Escalada Propiedades
Este procedimiento es equivalente a realizar un movimiento en el espacio de la medida heurística que guía la búsqueda. Se trata de tomar en cada paso la dirección de máxima pendiente los que asegura que se asciende lo más rápidamente posible y que se alcanza la cima o meta en el menor tiempo posible. 61

62 Búsqueda en Escalada Problemas
1. Existencia de máximos locales. Sólo se asegura una optimización local y no global. 2. La existencia de “mesetas” o zonas planas, en las que la búsqueda procede a “ciegas”. 3. Existencia de aristas o discontinuidades en la pendiente, que limitan la optimización a una de tipo local. 62

63 Búsqueda por Haces (Beam search) 63

64 Búsqueda por Haces Se trata de una variante del método de exploración en amplitud. No se desciende por todas las ramas, sino por un conjunto seleccionado o “haz”, ignorándose el resto. La selección de las ramas adecuadas se realiza en base a criterios heurísticos específicos al problema. Las ramas no seleccionadas simplemente no se exploran, produciéndose una “poda” de las ramas menos prometedoras. Criterios de poda Por umbral en el número de ramas Por umbral del trayecto acumulado según una cierta función heurística 64

65 Ejemplo que se empleará para ilustrar los diferentes
métodos de exploración informados. S A D E F G B C 3 4 5 2 65

66 limitando a 2 el nº de ramas que no se podan
10.4 8.9 A D D 6.7 8.9 10.4 B X D X A E E 6.9 4.0 6.9 3.0 C E X 6.7 X B F F G G h(A,G) = h(D,G) = 8.9 h(E,G) = h(B,G) = 6.7 h(C,G) = h(F,G) = 3.0 Búsqueda por haces limitando a 2 el nº de ramas que no se podan 66

67 Búsqueda por Haces La estrategia de control:
--> realizar una exploración en amplitud donde los sucesores se van insertando ordenadamente (por el final) en la cola que se poda. function BEAM-SEARCH(problem) { return GENERAL-SEARCH(Problem, ENQUEUE-AT-END-PRUNNING) } Este procedimiento no garantiza el encontrar la solución (no es completo). 67

68 Búsqueda “el mejor primero”
(Best-First search) 68

69 Búsqueda “el mejor primero”
En cada ciclo se selecciona para expansión el nodo más prometedor de todos los generados hasta ese momento. En la práctica es una mezcla de búsqueda en profundidad y, eventualmente, en amplitud debido a un cambio de rama. Por este motivo a esta técnica de búsqueda se la denomina también de “ramificación y salto” (Branch-and-bound). Supongamos que tomamos como nodo más prometedor aquel de menor coste acumulado en la trayectoria. Con esta elección de la función de coste a este método se le denomina también de “coste uniforme”. 69

70 Ejemplo que se empleará para ilustrar los diferentes
métodos de exploración informados. S A D E F G B C 3 4 5 2 70

71 Búsqueda “el mejor primero” G
4 3 A D D 7 6 9 8 B D A E E 11 12 10 13 11 10 C E E B B F F 14 14 18 15 15 15 13 D F B F C E A C G G G C G F Búsqueda “el mejor primero” G 71

72 Búsqueda “el mejor primero”
La estrategia de control: --> realizar una exploración donde los sucesores se van insertando ordenadamente (de mejor a peor) por la cabeza de la cola. function BEST-FIRST-SEARCH(problem, EVAL-FN) { QUEUEING-FN  a function that orders nodes by EVAL-FN return GENERAL-SEARCH(Problem, QUEUEING-FN ) } 72

73 Búsqueda “el mejor primero”
Propiedades Completitud y Optimalidad El método de búsqueda es óptimo y completo Complejidad Puede demostrarse que la complejidad espacial y temporal de este método de búsqueda son ambas O(bd), siendo b el factor de ramificación y d la profundidad máxima del árbol. 73

74 IDEA Los métodos de búsqueda que utilizan una función de coste pueden mejorarse de forma notable utilizando una estimación del coste o distancia total al nodo objetivo en la trayectoria en estudio. Así para un cierto nodo n, el coste total puede formularse de la siguiente forma: f*(n) = g(n) + h*(n) donde, g(n): coste acumulado (conocido) a lo largo de la trayectoria hasta el nodo n. h*(n): estimación del coste restante desde el nodo n hasta el nodo objetivo. f*(n): estimación del coste total (desde el nodo inicial al nodo objetivo). 74

75 Si se le asigna a un nodo un coste estimado, h
Si se le asigna a un nodo un coste estimado, h*(n), superior al que realmente, puede ocurrir que la búsqueda no se realice en el orden correcto y la trayectoria resultante no sea óptima. Se puede demostrar que si h*(n) es una subestimación del coste restante, entonces la obtención de la trayectoria óptima está garantizada. 75

76 Nº de piezas mal colocadas (1,2,3,7): 4
8-Puzzle 1 2 3 1 3 7 8 4 8 1 4 7 6 5 2 6 5 Estado objetivo Estado actual (xio, yio) (xia, yia) Heurísticas Nº de piezas mal colocadas (1,2,3,7): 4 Distancia Manhattan=  (|xia-xio|+|yia-yio|) Distancia Manhattan: 2(1)+3(2)+1(3)+4(7) = 10 76

77 Búsqueda “el mejor primero”
13.4 12.9 A D D 19.4 B D A E E 12.9 17.7 B 13.0 F F 4 4 A B C 3 G G 13.0 S G 5 5 4 D E F 3 h(A,G) = h(D,G) = 8.9 h(E,G) = h(B,G) = 6.7 h(C,G) = h(F,G) = 3.0 f*(n) = g(n) + h*(n) 2 4 Búsqueda “el mejor primero” (con subestimación del coste total) 77

78 Búsqueda A* 78

79 A* Este procedimiento es una combinación de la estrategia “el mejor primero” empleando una función de coste con subestimación y la idea que se presenta en la siguiente diapositiva. Está especialmente diseñado para la búsqueda en grafos, es decir, controla que no se exploren trayectorias duplicadas. Veremos que garantiza el encontrar la trayectoria (solución) óptima si esta existe. 79

80 Este procedimiento de “poda” no compromete la completitud. IDEA
G B IDEA Si la trayectoria óptima entre A y G es S-A-B-C-G, y en la lista de trayectorias recorridas existen varias trayectorias “similares”, es decir, que terminan en el mismo nodo final, sólo la óptima (la de menor coste) podrá formar parte de la trayectoria óptima, pudiéndose eliminar las otras. Este procedimiento de “poda” no compromete la completitud. IDEA Si en la lista de trayecorias recorridas existen varias trayectorias “similares”, es decir, que terminan en el mismo nodo final, sólo la óptima (la de menor coste) podrá formar parte de la trayectoria óptima. Este procedimiento de “poda” no compromete la completitud. 80

81 Algoritmo del procedimiento A*
81

82 2. Hasta que ABIERTA esté vacía o se encuentre el objetivo,
1. Formar una lista de trayectorias parciales, ABIERTA con una trayectoria inicial que comienza en el nodo raiz. Formar otra lista, CERRADA, que contendrá las trayectorias desechadas mínimas, e iniciarlizarla a vacía. 2. Hasta que ABIERTA esté vacía o se encuentre el objetivo, 2.1 Analizar la primera trayectoria de ABIERTA. 2.2 Si la trayectoria termina en el nodo objetivo, terminar. 2.3 En otro caso: 2.3.1 Eliminar la primera trayectoria de ABIERTA, incluyéndola en CERRADA. Si es de coste menor que otra similar, ya contenida en CERRADA, se elimina esta última. 2.3.2 Formar nuevas trayectorias a partir de la trayectoria extraída de ABIERTA mediante la expansión del último nodo de la misma. 2.3.3 Añadir nuevas trayectorias a ABIERTA, si existen. 2.3.4 Ordenar ABIERTA de menor a mayor coste. 2.3.5 Si dos o más trayectorias de ABIERTA terminan en un nodo común, eliminarlas excepto la de mínimo coste. Eliminar esta última también si existe otra similar con menor coste en CERRADA. Las trayectorias eliminadas de ABIERTA deben insertarse en CERRADA salvo que ésta ya contenga trayectorias similares de menor coste. 3. Si se alcanza el nodo objetivo, el problema tiene solución y se determina la trayectoria óptima, en caso contrario no tiene solución. 82

83 La función de coste estimado
Este método emplea una función de coste total estimado f*(n). Así para un cierto nodo n, el coste total estimado puede formularse de la siguiente forma: f*(n) = g(n) + h*(n) donde, g(n): coste acumulado (conocido) a lo largo de la trayectoria hasta el nodo n. h*(n): estimación del coste restante h(n) desde el nodo n hasta el nodo objetivo. f*(n): estimación del coste total (desde el nodo inicial al nodo objetivo). 83

84 La función de coste estimado
La función h*(n) está ligada a un conocimiento heurístico del problema y debe ser positiva y representar una subestimación del coste restante h(n). 0  h*(n)  h(n) Se dice que la búsqueda es más informada cuanto mayor sea el valor de h*(n), siempre que h*(n)  h(n). 84

85 Propiedad de Admisibilidad
Si en un procedimiento A* todos los costes son positivos y h*(n) es una subestimación de h(n), entonces se garantiza el encontrar la trayectoria de mínimo coste, si existe, y el procedimiento se dice admisible. Propiedad de Optimalidad Si el procedimiento A1 (con heurística h1*(n)) está más informado que otro A2 (con heurística h2*(n)) y siendo ambos admisibles (esto es h(n)  h1*(n)  h2*(n)  0) entonces A1 nunca expande un nodo que no haya sido expandido por A2 (A1 expande menos nodos que A2) 85

86 Nº de piezas mal colocadas (1,2,3,7): 4
8-Puzzle ¿Son admisibles? ¿Cuál es más informada? 1 2 3 1 3 7 8 4 8 1 4 7 6 5 2 6 5 Estado objetivo Estado actual (xio, yio) (xia, yia) Heurísticas Nº de piezas mal colocadas (1,2,3,7): 4 Distancia Manhattan=  (|xia-xio|+|yia-yio|) Distancia Manhattan: 2(1)+3(2)+1(3)+4(7) = 10 86

87 Factor de ramificación efectivo
Nº de nodos expandidos Factor de ramificación efectivo D 2 4 6 8 10 12 14 16 18 20 22 24 IDS 10 112 680 6384 47127 364404 - A*(h1) 6 13 20 39 93 227 539 1301 3056 7276 18094 39135 A*(h2) 6 12 18 25 39 73 113 211 363 676 1219 1641 IDS 2.45 2.87 2.73 2.80 2.79 2.78 2.83 - A*(h1) 1.79 1.48 1.34 1.33 1.38 1.42 1.44 1.45 1.46 1.47 A*(h2) 1.79 1.45 1.30 1.24 1.22 1.23 1.25 1.26 1.27 1.28 Datos promedios para 100 casos del 8-puzzle, comparativa entre búsqueda progresiva en profundidad y el A* con h1 = nº de piezas mal colocadas y h2 distancia Manhattan. 87

88 N = 1 + b* + (b*)2 + (b*)3 + ... + (b*)d
Factor de ramificación efectivo Si el número de nodos expandidos por el procedimiento A* es N para un cierto problema y dicho problema se encuentra a profundidad d, entonces el factor de ramificación efectivo b* sería el factor de ramificación de un árbol uniforme de profundidad d que contuviera un número N de nodos. Esto es, N = 1 + b* + (b*)2 + (b*) (b*)d ¿Cuál sería el factor de ramificación efectivo si h*  h? 88

89 Prueba de la optimalidad del procedimiento A*
Sea G la trayectoria óptima al estado objetivo de coste f* y sea G2 otra trayectoria subóptima al mismo objetivo, de coste g(G2) > f*. Supongamos que A* ha seleccionado G2 antes que G, por lo que la búsqueda terminaría con una solución subóptima. * * * Vamos a demostrar que esta situación es imposible. 89

90 Prueba de la optimalidad del procedimiento A*
Sea n un nodo hoja para una cierta etapa de la exploración en una trayectoria óptima hacia el estado objetivo. Dado que la heurística h se considera admisible, tenemos que: Más aún, si n no fue elegido para expansión frente a G2 fue porque: Combinando estas dos desigualdades : Pero G2 termina en el estado objetivo, por lo que: de lo cual se deduce que f(G2) = g(G2) de lo que resultaría que: resultado que contradice la suposición inicial de suboptimalidad para G2. f*  f(n) f(n)  f(G2) f*  f(G2) h(G2) = 0 f*  g(G2) 90

91 Sobre la completitud del procedimiento A*
Dado que el procedimiento A* expande nodos en orden creciente de f, debe eventualmente expandir el nodo que le permita alcanzar el nodo objetivo. Esto será cierto a menos que existan infinitos nodos con f(n) < f*. Esta circunstancia sólo puede darse cuando algún nodo tenga un factor de ramificación infinito o una trayectoria de coste finito incluya un número infinito de nodos. Es decir, el A* es completo en grafos (árboles) localmente finitos siempre que el coste de transitar entre dos nodos cualesquiera sea  , siendo  una constante positiva. 91

92 Complejidad del procedimiento A*
Puede demostrarse que para la mayoría de los problemas, el número de nodos contenidos en la trayectoria óptima sigue siendo exponencial, A MENOS QUE: el error en la función heurística no crezca más rápidamente que el logaritmo del coste del camino actual. |h(n) -h*(n)|  O(log h*(n)) En la mayoría de los casos el error es al menos proporcional al coste de la trayectoria restante, por lo que el coste temporal del algoritmo es típicamente exponencial. Debido a que deben conservarse los nodos expandidos en memoria, la complejidad espacial es también exponencial. 92

93 Ejemplo del A*: 8-Puzzle
2 8 3 Heurística: número de piezas mal colocadas 1 6 4 7 5 Estado actual (xia, yia) 1 2 3 8 4 7 6 5 Estado objetivo (xio, yio) 93

94 2. Hasta que ABIERTA esté vacía o se encuentre el objetivo,
1. Formar una lista de trayectorias parciales, ABIERTA con una trayectoria inicial que comienza en el nodo raiz. Formar otra lista, CERRADA, que contendrá las trayectorias desechadas mínimas, e iniciarlizarla a vacía. 2. Hasta que ABIERTA esté vacía o se encuentre el objetivo, 2.1 Analizar la primera trayectoria de ABIERTA. 2.2 Si la trayectoria termina en el nodo objetivo, terminar. 2.3 En otro caso: 2.3.1 Eliminar la primera trayectoria de ABIERTA, incluyéndola en CERRADA. Si es de coste menor que otra similar, ya contenida en CERRADA, se elimina esta última. 2.3.2 Formar nuevas trayectorias a partir de la trayectoria extraída de ABIERTA mediante la expansión del último nodo de la misma. 2.3.3 Añadir nuevas trayectorias a ABIERTA, si existen. 2.3.4 Ordenar ABIERTA de menor a mayor coste. 2.3.5 Si dos o más trayectorias de ABIERTA terminan en un nodo común, eliminarlas excepto la de mínimo coste. Eliminar esta última también si existe otra similar con menor coste en CERRADA. Las trayectorias eliminadas de ABIERTA deben insertarse en CERRADA salvo que ésta ya contenga trayectorias similares de menor coste. 3. Si se alcanza el nodo objetivo, el problema tiene solución y se determina la trayectoria óptima, en caso contrario no tiene solución. 94

95 LA = {A} LC = { } LA = {C, B, D} LC = {A} LA = {E, F, B, D, G}
2 8 3 1 6 4 7 5 A g = 0 h*= 4 LA = {C, B, D} LC = {A} 2 8 3 1 6 4 7 5 B g = 1 h*= 5 2 8 3 1 4 7 6 5 C g = 1 h*= 3 2 8 3 1 6 4 7 5 D g = 1 h*= 5 LA = {E, F, B, D, G} LC = {A, C} 2 8 3 1 4 7 6 5 E g = 2 h*= 3 2 3 1 8 4 7 6 5 F g = 2 h*= 3 2 8 3 1 4 7 6 5 G g = 2 h*= 4 LA = {F, B, D, G, H, I} LC = {A, C, E} LA = {J, B, D, G, H, I, K} LC = {A, C, E, F} 8 3 2 1 4 7 6 5 H g = 3 h*= 3 2 8 3 7 1 4 6 5 I g = 3 h*= 4 2 3 1 8 4 7 6 5 J g = 3 h*= 2 2 3 1 8 4 7 6 5 K g = 3 h*= 4 LA = {L, B, D, G, H, I, K} LC = {A, C, E, F, J} 1 2 3 8 4 7 6 5 L g = 4 h*= 1 LA = {M, B, D, G, H, I, K, N} LC = {A, C, E, F, J, L} 1 2 3 8 4 7 6 5 M g = 5 h*= 0 1 2 3 7 8 4 6 5 N g = 5 h*= 2 95

96 Búsqueda por satisfacción de restricciones
Constraint satisfaction Search (CSP) 96

97 Búsqueda por satisfacción de restricciones
En un problema de satisfacción de restricciones (CSP) los estados posibles están definidos por los valores asignados al conjunto de variables que especifican el problema. La solución a un problema de este tipo se alcanza cuando un estado dado (estado objetivo) verifica un conjunto de restricciones, expresadas sobre el conjunto de variables. 97

98 Ejemplo 1: Puzzles criptoaritméticos SEND MORE MONEY
FORTY TEN SIXTY El objetivo: asignar a cada letra un dígito de manera que se verifiquen el conjunto de restricciones contenidas en la operación de adición. Dos letras no pueden tomar el mismo valor + + 98

99 Q Ejemplo 2: Las n-Reinas ¿De qué forma se pueden disponer n reinas sobre un tablero de nxn de manera que no se amenacen entre ellas? Q Q Q Q Q Q Q 99

100 Búsqueda por satisfacción de restricciones
Una solución a un CSP especifica los valores de todas y cada una de las variables de manera que el conjunto de restricciones se verifica. Muchos problemas de planificación y de asignación de recursos se pueden expresar como CSP’s por lo que este tipo de problemas conforma un grupo importante de problemas de exploración. 100

101 Tipos de restricciones
Unarias: condición sobre el valor de una única variable. P.e. El primer dígito por la izda de cualquier fila en el problema criptoaritmético no puede tomar el valor 0. Binarias: condiciones sobre pares de variables, como en el problema de las n-reinas. De orden superior: sobre 3 o más variables. 101

102 Cada variable Vi de un CSP tiene un dominio Di, que contiene el conjunto de posibles valores que la variable puede tomar. Este dominio puede ser continuo o discreto. P.e. En el problema de las 8-reinas, si Vi es la fila que ocupa la reina de la i-ésima columna, el dominio de Vi es {1,2,3,4,5,6,7,8} La restricción de no-ataque entre las reinas determina el subespacio permitido para las soluciones en el producto cartesiano de los dominios. Así el conjunto de pares de soluciones para las reinas de las dos primeras columnas sería: {<1,3>,<1,4>,<1,5>, ..., <2,4>,<2,5>, ...} 102

103 Elementos básicos para diseñar un método de exploración para CSPs
Estado inicial: Todas las variables sin asignar. Operadores: Transforma un estado en otro mediante la asignación de un valor permitido a UNA variable. Estado objetivo: Todas las variables tienen asignados valores compatibles con las restricciones del problema. 103

104 Debe notarse que: Todas las soluciones se encontrará a la misma profundidad n, igual al nº de variables. Por tanto, se puede emplear con seguridad un método de exploración en profundidad. Los operadores pueden seleccionar los valores a asignar de manera “ciega”, lo que resulta en un método de búsqueda ineficiente, o por el contrario, pueden verificar en cada asignación la no violación de ninguna restricción. 104

105 Debe notarse que: Otro refinamiento es permitir la modificación de los dominios de asignación a medida que se profundiza en el árbol de exploración. Los dominios se modificarían para eliminar aquellos valores que violarían restricciones teniendo en cuenta los valores ya asignados a las variables Grandes mejoras en la eficiencia de este tipo de métodos de exploración pueden obtenerse mediante el uso mediante el uso inteligente de conocimiento específico al problema, que expresado en forma de heurística puede - por ejemplo - determinar qué variable es más conveniente asignar en cada momento y con qué valor. 105

106 Reparación heurística.
Supongamos un cierto estado en el problema de las 8-Reinas. Q 2 Q 2 Q 1 Heurística para orientar la exploración: Para una columna dada, contabilizar el número de conflictos de cada casilla Q 2 Q 3 Q 1 Q 2 Q Seleccionamos la casilla de menor índice (los empates se resuelven al aleatoriamente) 106

107 Reparación heurística.
Q 3 Q 3 Q Q Se selecciona la columna donde se encuentra el origen del conflicto. Q 2 Q 3 2 Q Q 3 Q 107

108 Ejemplo: Sudoku smallsudoku(L) :-
L = [C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16], domain(L, 1,4), C2 #= 1, C4 #= 2, C5 #= 2, C11 #= 1, C16 #= 3, all_different([C1,C2,C3,C4]), all_different([C5,C6,C7,C8]), all_different([C9,C10,C11,C12]), all_different([C13,C14,C15,C16]), all_different([C1,C5,C9,C13]), all_different([C2,C6,C10,C14]), all_different([C3,C7,C11,C15]), all_different([C4,C8,C12,C16]). C1 1 C3 2 C6 C7 C8 C9 C10 C12 C13 C14 C15 3 108

109 Algoritmos genéticos 109

110 Algoritmos genéticos Idea:
Buscar (optimizar) simulando los mecanismos naturales que articulan la evolución de las especies Los individuos de una especie compiten por reproducirse. Tienen más oportunidades los mejor adaptados. Se crean nuevos individuos mediante el intercambio genético de sus progenitores. Ocasionalmente, se introducen nuevos individuos mediante mutaciones. 110

111 Un poco de terminología
Generación: Cromosomas: Genotipo: Adaptación: Reproducción: Cruzamiento: Mutación: El conjunto de individuos que conforman la población de una especie para un instante dado. La información genética de la especie se codifica en cromosomas. El código genético de un individuo concreto es su genotipo. 111

112 Un poco de terminología
Generación: Cromosomas: Genotipo: Adaptación: Reproducción: Cruzamiento: Mutación: Una medida de la idoneidad del diseño de un individuo a su entorno vital. 112

113 Un poco de terminología
Generación: Cromosomas: Genotipo: Adaptación: Reproducción: Cruzamiento: Mutación: Algunos individuos de una generación son seleccionados para la siguiente generación. Nuevos individuos aparecen por el intercambio de partes del código genético de sus progenitores. A veces el genotipo de un individuo cambia debido a una mutación. 113

114 Las líneas en rojo indican copia del genotipo.
Un ejemplo: En la siguiente diapositiva se representan las tres operaciones básicas que intervienen en la creación de la siguiente generación. Las líneas en rojo indican copia del genotipo. Las líneas moradas denotan las partes del genotipo que intercambian los progenitores en una operación de cruzamiento. Las líneas en rojo discontinuas alertan de una mutación. Los números encerrados en círculos indican la adaptación de cada individuo. 114

115 Generación n-ésima 11 13 2 9 reproducción cruzamiento mutación Generación n+1 15 8 1 13 115

116 Técnicas de búsqueda con adversario
116

117 Características del problema tipo. Dos adversarios.
Total conocimiento del estado del problema para ambos contricantes. Esto es: - no existe impredeciblidad (azar). - no hay variables ocultas. Movimientos alternativos ¿Estrategia ganadora? Ajedrez, damas, cuatro-en-raya, ... 117

118 Juego de Grundy (7, B) (6, 1, A) (5, 2, A) (4, 3, A) (5, 1, 1, B)
118

119 Juego de Grundy (7, B) (6, 1, A) (5, 2, A) (4, 3, A) (5, 1, 1, B)
119

120 3. La evolución del juego es equivalente al recorrido de un árbol.
IDEAS: 1. En este tipo de problemas, la representación mediante estados sigue siendo válida. 2. El estado recoge una descripción completa del juego en un instante dado (p.e. la disposición de las piezas sobre el tablero y a qué jugador toca mover) 3. La evolución del juego es equivalente al recorrido de un árbol. 4. Debido al movimiento alternativo, la decisión de qué rama escoger en cada momento se alterna entre los jugadores. 120

121 ¿Qué movimiento debería escoger el agente A? g = gana A
Ejemplo 1 Juega A Juega B 2 3 4 5 6 7 8 9 Juega A g g p g p p t t g t p t El problema: ¿Qué movimiento debería escoger el agente A? g = gana A p = pierde A (gana B) t = tablas 121

122 B elegirá 9 y A podrá hacer tablas
Ejemplo 1 Juega A Juega B 2 3 4 5 6 7 8 9 Juega A g g p g p p t t g t p t Si A escoge 2, B escogerá 6 y A perderá g = gana A p = pierde A (gana B) Si A escoge 3, B elegirá 9 y A podrá hacer tablas t = tablas 122

123 Dificultades con este tipo de problemas de exploración
Esencialmente la explosión combinatoria. Normalmente es impracticable una exploración exhaustiva. Ajedrez ~ estados Damas ~ 1040 estados Además, en muchos juegos el tiempo disponible para realizar un movimiento, o el total de ellos, está limitado. Estrategia Minimax Poda Alfa-beta 123

124 Estrategia Minimax Ideas básicas:
A. Se explora hasta un límite de profundidad. B. Se emplea una evaluación estática de las expectativas futuras de éxito en el límite de profundidad de la búsqueda. C. Operativamente, se realiza una simulación del juego empleando un modelo de adversario que jugase de forma que: - Sigue la misma estrategia que el jugador problema, intentando maximizar sus expectativas de victoria. - Posee la misma función de evaluación estática que el jugador problema. 124

125 Función de Evaluación. Para los nodos en el límite, se define una función de evaluación que en general será del tipo: e(n) = f1(n) - f2(n) donde f1(n) y f2(n) son funcionalmente idénticas y representan, respectivamente, las expectativas de éxito del jugador problema y de su adversario. 125

126 Algoritmo Minimax Denominaremos jugador MAX al jugador problema y también a los nodos en los que el decide. Recíprocamente, llamaremos jugador MIN al adversario y también denominaremos como nodos MIN a los nodos en los que este jugador decide. V(n): valor devuelto por la función MINIMAX para un nodo n con N sucesores. Vp: representa un valor intermedio. 126

127 Algoritmo Minimax (definición recursiva)
Function Minimax(n, prof, prof_limite) { 1. Si se alcanza el límite de exploración, V(n) = e(n) En otro caso { 2. Para los descendientes de n, i= 1, 2, ..., N { 2.a Generar el nodo ni, descendiente de n 2.b V(ni) = Minimax(ni, prof+1, prof_limite) 2.c Si i = 1, hacer Vp = V(n1) 2.c.1 Si n es MAX: Vp = max(Vp, V(ni)) En otro caso: Vp = min(Vp, V(ni)) } 3. Devolver V(n) = Vp 127

128 Ejemplo 1 max Juega A 2 3 min min Juega B 4 5 6 7 8 9 max max Juega A
1 max Juega A -2 2 3 min min Juega B 4 2 -2 1 4 5 6 7 8 9 max max Juega A 3 4 -5 2 -3 -2 1 -3 128

129 Observaciones La calidad de la decisión proporcionado por la estrategia MINIMAX dependerá: de la profundidad alcanzada en la exploración de la calidad de la función de evaluación estática El proceso de evaluación del MINIMAX es similar a un recorrido en profundidad. 129

130 Una función de evaluación para el juego del tres en raya
x e(n) = = 2 g(A) = nº de filas, columnas y diagonales todavía abiertas para el jugador A e(n) = g(MAX) - g(MIN) 130

131 x 6 - 4 = 2 o 4 - 6 = - 2 1 o x x -2 o x 5 - 4 = 1 6 - 6 = 0 x o x o 5 - 6 = -1 1 x o 4 - 5 = - 1 x 5 - 5 = 0 o o x 5 - 5 = 0 Nodo inicial x 5 - 6 = -1 -1 o o x 6 - 5 = 1 x x 5 - 5 = 0 6 - 5 = 1 x o 131 x o

132 3 - 3 = 0 4 - 3 = 1 4 - 3 = 1 x o x o x x o x o o x x o x x o x x x o
o x o x x 3 - 3 = 0 o x o o x x 4 - 3 = 1 o x x o x x x 4 - 3 = 1 o o x o x x o x 132

133 x o o x o x 4 - 2 = 2 x o o x 4 - 2 = 2 x 1 o x x o o x 3 - 2 = 1 x o x x o x o 5 - 2 = 3 o x x o x 4 - 2 = 2 o x x 4 - 2 = 2 o o x x o x 133

134 x o o x o x 4 - 3 = 1 x o o x 4 - 3 = 1 x 1 o x x o o x 3 - 3 = 0 x o x x o x o 5 - 3 = 2 o x x o x 3 - 3 = 0 x o x o o x 4 - 3 = 1 x o x 134

135 x o o x o x 3 - 2 = 1 x o o x 4 - 2 = 2 x 1 o x 1 x o o x 3 - 2 = 1 x o x x o x o 5 - 2 = 3 o x x o x 3 - 2 = 1 x o 1 x o o x 4 - 2 = 2 x x o 135

136 - 2 - 1 = 1 2 - 1 = 1 2 - 1 = 1 -  o x x o x o x o x o o x x x o x o
136

137 - 3 - 1 = 2 - 3 - 1 = 2 2 - 1 = 1 -  o x x o x o o x x o o x x x o
137

138 - 3 - 2 = 1 - 2 - 2 = 0 - 2 - 2 = 0 -  o x x o x o o x o x o x x x
138

139 - 3 - 2 = 1 - 2 - 2 = 0 - 3 - 2 = 1 - -  o x x o x o o x o o x x
139

140 - 3 - 1 = 2 - 1 2 - 1 = 1 - 3 - 1 = 2 - 2 - 1 = 1 1 o x x o x o o
140

141 ¿Cuál sería el nivel de juego de este programa?
Estrategia ALFA-BETA. Supongamos una versión de la estrategia MINIMAX para jugar al ajedrez, operando sobre una máquina capaz de explorar 1000 posiciones/sg. ¿Cuál sería el nivel de juego de este programa? En torneo se dispone aproximadamente de 150 sg por movimiento, lo que implica que se podrían explorar unas posiciones. PERO si el factor de ramificación del ajedrez es  35, SÓLO habremos podido explorar niveles y nuestro programa sería un PERFECTO NOVATO, ya que el jugador promedio es capaz de planificar con antelación entre 6 y 8 movimientos. 141

142 Estrategia ALFA-BETA. La solución a este problema es intentar modificar el procedimiento MINIMAX al objeto de reducir el coste de la exploración, evitando la exploración de ciertos nodos cuando se sabe que no podrán ofrecer un máximo o un mínimo (esto dependiendo de si el nivel en cuestión es MAX o MIN) 142

143 x x Poda alfa (max) max(a, min(b, x))
Ejemplo 7 1 max Juega A 7 <= 3 min Juega B 2 3 x x 3 4 5 6 max Juega A Poda alfa (max) max(a, min(b, x)) el resultado no depende de x si a>b 143

144 x x Poda beta (min) min(a, max(b, x))
Ejemplo -3 1 min Juega A -3 >= 7 max Juega B 2 3 x x 7 4 5 6 min Juega A Poda beta (min) min(a, max(b, x)) el resultado no depende de x si a<b 144

145 Algoritmo Alfa-Beta (definición recursiva)
Valores iniciales  = -   = + Function AB(n; , , prof, prof_limite) { 1. Si se alcanza el límite de exploración, V(n) = e(n) En otro caso { 2. Si el nivel es MAX { 2.a Para los descendientes de n, i= 1, 2, ..., N { 2.a.1 Generar el nodo ni, descendiente de n 2.a.2  = max(, AB(ni; , , prof+1, prof_limite) 2.a.3 Si   , devolver  } 2.b return  3. Si el nivel es MIN { (Siguiente página) } 145

146 Algoritmo Alfa-Beta (continuación)
Function AB(n; , , prof, prof_limite) { 1. Si se alcanza el límite de exploración, V(n) = e(n) En otro caso { 2. Si el nivel es MAX { ... } 3. En otro caso (el nivel es MIN) { 3.a Para los descendientes de n, i= 1, 2, ..., N { 3.a.1 Generar el nodo ni, descendiente de n 3.a.2  = min(, AB(ni; , , prof+1, prof_limite) 3.a.3 Si   , devolver  } 3.b return  146

147 A B C D E F G H I J K L 2 M 3 N 8 O 5 P 7 Q 6 R S 1 T 5 U 2 V 8 W 4 X
1 5 8 10 L 2 M 3 N 8 O 5 P 7 Q 6 R S 1 T 5 U 2 V 8 W 4 X 10 Y 2 147

148 A B C D E F G H I J K L 2 M 3 N 8 O 5 P 7 Q 6 R S 1 T 5 U 2 V 8 W 4 X
=3 = =8 = =3 = =- = A 8 =- =3 =- = =- =3 =- =3 =3 =3 =3 = =3 = =3 =8 =3 =8 B C D 3 1 8 =- =3 =8 =3 =- =3 =7 =3 =3 = =3 = =3 = =8 = =3 = =8 = =10 =8 =3 =8 =- = =3 = =2 = E F G H I J K 3 8 7 1 5 8 10 L 2 M 3 N 8 O 5 P 7 Q 6 R S 1 T 5 U 2 V 8 W 4 X 10 Y 2 148

149 Efectividad de la poda Alfa-Beta
La efectividad de la poda depende del orden en el que se examinan los nodos descendientes. Así en cada nivel la mejor estrategia consiste en examinar primero aquellos descendientes que ofrezcan las mejores expectativas. El coste de la exploración es inferior al del MINIMAX, pero aún así es proporcional al anterior, por lo que si el coste del MINIMAX es exponencial, el coste del ALFA-BETA tendrá un comportamiento similar. Nd = 2bd/ si d es par Nd = b(d+1)/2 + b(d-1)/ si d es impar En el mejor caso, el mismo número de nodos terminales que si se emplease la estrategia MINIMAX con profundidad d/2 Formas de ordenar los nodos Aplicar el criterio de evaluación a todos los nodos y ordenar la expansión de mejor a peor evaluación Búsqueda progresiva en profundidad 149

150 A D B C J K E F G H I V 8 W 4 X 10 Y 2 L 2 M 3 N 8 O 5 P 7 Q 6 R S 1 T
=- = =8 = A 8 =- = 8 =- = =8 = =8 = =8 =8 =8 =8 D B C 8 3 1 =- = 8 =10 = 8 =8 = =8 = =8 = =- = J K E F G H I 8 10 3 8 7 1 5 V 8 W 4 X 10 Y 2 L 2 M 3 N 8 O 5 P 7 Q 6 R S 1 T 5 U 2 150

151 Problemas con MINIMAX y ALFA-BETA
Juegos con tiempo límite por turno o por partida. La solución: Profundización iterativa Situaciones quiescentes o como evitar el terminar la búsqueda justo antes de la detección de una situación importante que puede provocar un “vuelco” en la partida. La solución: la evaluación no debe cambiar de manera importante si se mira uno o dos movimientos adelante. No se busca a la misma profundidad en todas las ramas. MINIMAX y ALFA-BETA son estrategias que asumen que el oponente juega sin cometer errores. 151

152 El problema del “horizonte”:
Las negras tiene un ligera ventaja material Una serie de “jaques” mueve el movimiento del peón que promociona a reina más allá del horizonte de búsqueda Las negras pueden interpretar esta situación como ventajosa cuando realmente es inevitable su derrota P P R P P P P P P T R 152

153 La función de evaluación
La calidad del juego depende de manera muy importante de la función de evaluación que se emplee. Una función de evaluación lineal: gi : características wi: pesos o importancia relativa de la característica gi f(n) =  wi * gi(n) Existen procedimientos automáticos para obtener la mejor combinación de pesos wi (Ver el libro de Nilsson). PROBLEMA: Qué características seleccionar 153

154 Refinamientos No es necesario realizar operaciones MAX y MIN, tan sólo MAX, si la función de evaluación es simétrica para los dos jugadores. Cada juego puede añadir heurísticas que permitan añadir otros criterios de poda. La forma de jugar cuando se detecta una situación irremisible, tanto de victoria como de derrota. 154

155 Se juega por movimientos alternativos a las casillas 4-conectadas
Ejemplo: Suma 100 Se juega por movimientos alternativos a las casillas 4-conectadas Cuando un jugador se traslada a una celda suma acumula la puntuación de la celda a su puntuación Gana el primer jugador que consiga sumar 100 puntos 9 6 3 7 5 1 4 8 2 A B 155

156 Algoritmo Total de Nodos generados durante la búsqueda
Nodos examinados a la máxima profundidad Minimax Alfa-beta Alfa-beta iterativo iterativo & NSFP 156

157 Ejemplo del Maxn 1 Juega A 2 3 4 Juega B 5 6 7 8 9 Juega C 10 11 12 13
3,2,3 1 Juega A 1,3,1 2,4,3 3,2,3 2 3 4 Juega B 0,1,2 3,2,3 3,1,3 2,4,3 1,3,1 5 6 7 8 9 Juega C 10 11 12 13 14 15 16 17 18 19 20 Juega A 110 012 323 222 313 231 010 132 243 131 210 157

158 Planificación, acción y aprendizaje
El mundo real Los procesos perceptivos no siempre proveen la información necesaria acerca del estado del entorno (Aliasing perceptual). Las acciones no siempre surten el efecto esperado. Pueden existir otros procesos o actores en el mundo, de forma que en gran medida la evolución del entorno puede no ajustarse a lo esperado por el agente. Mientras el agente elabora un plan, el mundo puede cambiar. Nuestro agente debe planificar rápidamente. Incluso el agente puede verse forzado a actuar incluso antes de haber completado la búsqueda. Por otra parte, incluso disponiendo del tiempo necesario, puede ser computacionalmente intratable que nuestro agente realice una búsqueda completa. 158

159 Dos aproximaciones para tratar estos problemas
Métodos probabilísticos: Se modelan las incertidumbres de los sensores, actuadores y procesos activos en el entorno Adaptar los procesos de búsqueda y toma de decisiones con el ciclo básico del agente, es decir, Percibir/Planificar/Actuar. La idea es que si bien el agente puede cometer errores, al recibir una realimentación constante del mundo el agente puede “reaccionar” ante lo inesperado y buscar una nueva solución. 159

160 Métodos de búsqueda aproximados
Los métodos de búsqueda de un agente reactivo deben: responder en un tiempo mínimo conocido el proceso de búsqueda podrá ser interrumpido en cualquier momento, pero el agente deberá en cualquier caso responder con una solución. La solución puede ser mejorada si el agente dispone de más tiempo posiblemente relajar los requisitos de optimalidad 160

161 Métodos “Aproximados” de resolución de problemas
Algoritmos Anytime Búsqueda estructurada Búsqueda Localizada (Island-Driven Search) Búsqueda jerárquica 161

162 Una realimentación frecuente desde el entorno, es una manera de reducir incertidumbres y compensar la falta de conocimiento del agente acerca del mundo y de los efectos de sus acciones. Otra forma de aumentar las capacidades del agente es extraer información relevante del propio proceso de busqueda. Mediante esta información el agente puede aprender a planificar y actuar de forma más efectiva. 162

163 Aprendizaje de funciones heurísticas
Supongamos un problema genérico en el que el agente carece de una heurística que oriente la búsqueda. Consideraremos primero el caso más sencillo: aquel en el que es posible almacenar en una tabla todos los posibles nodos (estados) que pueden presentarse durante la búsqueda. Asumimos también que el agente dispone de un buen modelo de los efectos de sus acciones y conoce el coste de desplazarse de un nodo a cualquiera de sus descendientes. Inicializamos la función heurística h* a cero en todos los nodos e iniciamos una búsqueda A*. Tras expandir el nodo ni para producir sus sucesores S(ni), modificamos h*(ni) como sigue: 163

164 Inicializamos la función heurística h
Inicializamos la función heurística h* a cero en todos los nodos e iniciamos una búsqueda A*. Tras expandir el nodo ni para producir sus sucesores S(ni), modificamos h*(ni) como sigue: Donde c(ni,nj) es el coste de alcanzar nj desde ni. Los valores de h* se guardan en una tabla para ser actualizados en sucesivas búsquedas. Se asume también que podemos “reconocer” el nodo objetivo ng, de manera que siempre tendremos h*(ng)=0. En la primera iteración, la búsqueda será equivalente a una búsqueda de coste uniforme, pero la estimación de h* irá mejorando gradualmente haciendo la búsqueda cada vez más informada. 164

165 Si el agente no dispone de un modelo acerca de las consecuencias de sus acciones, puede aprenderlo al tiempo que configura una estimación de h*. Asumimos que el agente puede distinguir entre dos estados diferentes y que puede nombrarlos a medida que los va descubriendo. Asumimos también que el agente no conoce el coste de sus acciones y, por tanto, necesita descubrirlo a medida que las ejecuta en el mundo real. El proceso comienza con un único nodo conocido y eligiendo una acción, posiblemente al azar, y transitando a un nuevo estado. Así a medida que se visitan estados se descubre el coste de la transición, se nombra el nuevo estado y se le asocia un valor h*: Donde ni es el nodo desde el que se ejecuta la acción, nj es el nodo resultante, c(ni,nj) es el coste de alcanzar nj desde ni. h*(nj) será nulo si el nodo nj no ha sido visitado nunca. 165

166 Siempre que el agente debe elegir una acción en un nodo dado n que tiene nodos sucesores almacenados en la tabla, elegirá la acción que resulte de: Donde (n,a) es la descripción del estado alcanzable desde el nodo ni después de ejecutarse la acción a. Este proceso de aprendizaje comienza con una búsqueda errática, al azar, del estado objetivo. Si eventualmente se tropieza con él, el agente podrá mejorar progresivamente sus capacidades a lo largo de sucesivos intentos. Evidentemente , esta técnica no garantiza la optimalidad de las soluciones que se puedan ir descubriendo. A medida que se dispone de un modelo más completo, es posible combinar el “aprendizaje en el mundo” con el “aprendizaje y planificación en el modelo”. 166

167 Para ajustar los pesos caben varias aproximaciones:
Consideremos ahora el caso en el que no es factible el conservar una tabla con todos los estados (nodos) posibles y sus transiciones. La aproximación es entonces intentar construir una función heurística que pueda ser aplicada a todos los nodos. Podría, por ejemplo, construirse como una combinación lineal de subfunciones que pensamos pueden ser buenos estimadores en ciertas ocasiones: Para ajustar los pesos caben varias aproximaciones: A. Asignamos inicialmente a los pesos los valores inciales que consideramos más aproximados a los valores “reales” y realizamos una búsqueda con esos valores. Cuando alcanzamos un nodo objetivo, ng, empleamos el valor final conocido, h*(ng)=0, para propagar los valores de h* a todos los nodos de la trayectoria. Empleando estos valores como “muestras” se ajustan los valores de los pesos de forma que se minimice el error cuadrático entre las muestras y la función h* resultante de la combinación de pesos. 167

168 Para ajustar los pesos caben varias aproximaciones:
B. También puede emplearse un método similar al anterior, ajustando h* en cada expansión de nodo. Así después de expandir el nodo ni para producir los sucesores S(ni), se ajustan los pesos de manera que: Donde 0<<1 es el parámetro de aprendizaje. Valores pequeños de  provocan un ritmo de aprendizaje muy lento; valores grandes ocasionan un aprendizaje errático y no-convergente. 168

169 Aprendizaje por refuerzo: Iteración de valores
Existen problemas en los que es posible “aconsejar” a un agente a medida que desarrolla su actividad, premiándole si progresa en su misión y castigándole en otro caso. En este tipo de entornos, el objetivo es lograr una estrategia de acción que maximice el refuerzo positivo (premio) alcanzado por el agente. La dificultad esencial está en que es necesario premiar al agente a medida que este desarrolla la tarea y no sólo al final, por lo que el gran problema reside está en trasladar a cada acción parte del premio que podría obtenerse en el futuro al alcanzar el objetivo. 169

170 Sea n un nodo en el grafo de espacio de estado del agente, y sea  una estrategia de acción que para cada nodo indica la acción más conveniente. Sea también, r(ni, a) el premio que el agente recibe cuando desde el nodo ni se ejecuta la acción a. Si esta acción conduce al agente al nodo nj, entonces normalmente r(ni, a) = - c(ni, nj) + (nj), donde (nj) es el valor del premio obtenido al alcanzar el nodo nj. El objetivo es lograr una estrategia óptima * que traslade a cada nodo la máxima porción posible del premio que se pueda obtener en el futuro. Supongamos que aplicando un cierta estrategia o política, , podemos asignar a cada nodo n en el espacio de estados un valor V(n) que corresponde con la parte de premio que el agente recibiría por comenzar en el nodo n y seguir la estrategia . Supongamos que en el nodo ni se elige la acción prescrita por (ni) que resulta en el nodo nj 170

171 Donde 0<<1 es el factor de descuento empleado para calcular el valor en el instante ti de un posible premio que se alcanzaría en ti+1. Para una estrategia óptima * : El valor de ni es la cantidad que es el agente recibe por seleccionar en ni aquella acción que maximiza la suma del premio inmediato, r(ni,a), más la parte descontada del premio que se obtendría en nj siguiendo una estrategia óptima. Si se dispusiese de los valores de los nodos para una estrategia óptima (valores óptimos) la estrategia óptima podría escribirse como: 171

172 1. Asignar valores V*(n) a cada nodo. P.e. V*(n) = 0 para todo n.
El problema es que normalmente no conocemos estos valores. Sin embargo existe un procedimiento de aprendizaje denominado “Iteración de valores” que bajo determinadas condiciones converge a los valores óptimos. Iteración de valores: 1. Asignar valores V*(n) a cada nodo. P.e. V*(n) = 0 para todo n. 2. En algún momento del proceso y para algún nodo ni, el valor estimado del nodo es V*(ni). Se selecciona entonces la acción ‘a’ que maximiza la suma del premio inmediato más el valor estimado del nodo sucesor nj y se actualiza el valor del nodo ni como sigue Este ajuste aproxima el valor de V*(ni) a [r(ni,a)+ V*(nj) ], en la medida en que V*(nj) sea una buena estimación de V*(nj), este ajuste hará que V*(ni) sea una mejor aproximación a V*(ni). 172

173 Sumario. La representación en el espacio de estados es una metodología potente de resolución de problemas Los métodos de búsqueda se pueden caracterizar por su complejidad, y propiedades de optimalidad y completitud. Los métodos de búsqueda informada son más eficaces, pero requieren de funciones heurísticas (subestimación). En búsqueda con adversario, el procedimiento alfa-beta es preferible al procedimiento minimax. En la mayoría de los juegos es vital disponer de una buena función de evaluación. Existen técnicas para “aprender” heurísticas. 173

174 Bibliografía. [Mend-92] J. Méndez Apuntes del Curso de I.A. U.L.P.G.C.
[Russ-95] S. Russel, P. Norvig Artificial Intelligence: A Modern Approach Prentice-Hall, 1995. [Nils-98 ] N. J. Nilsson Artificial Intelligence Morgan Kaufmann, 1998. 174


Descargar ppt "I A 3. Búsqueda y Planificación Jorge Cabrera Gámez"

Presentaciones similares


Anuncios Google