You are on page 1of 64

M.Sc.

Carlo Corrales Captulo Tercero

rboles de bsqueda para Resolucin SLD para pruebas simples con profundidad 14 Ejemplo: Ajedrez

Factor de ramificacin b=30, profundidad d=50 3050 = 7.2.1073 hojas.

10mil computadoras Cada una con un milln de inferencias por segundo Paralelizacin sin prdida Tiempo de computacin:

1043 veces la edad del universo

Por qu buenos jugadores de ajedrez existen? Y ahora adems buenos computadoras jugadores Por qu matemticos hallan pruebas para proposiciones en las cuales el espacio de bsqueda es an mayor? Ejemplo: El puzzle-8

Estados: matriz de 3x3 con los valores 1,2,3,4,5,6,7,8 (uno por vez) y un espacio vaco. Estado inicial: Un estado arbitrario Estado final o meta: un estado arbitrario, p.e. Un estado dado donde los nros estn ordenados. Acciones: Movimientos del espacio vaco Sij a la izquierda (si j 1 ), derecha ( si j 3), arriba (si i 1 ), abajo( si i 3) Funcin de costo: la funcin constante 1, ya que todas las acciones tienen el mismo costo. Espacio de estados: El espacio de estados es degenerado en dominios que son mutuamente inalcanzables. As hay 8 problemas de puzzles no resolvibles.

Resolviendo la ecuacin:

El grfico de Alemania con funciones de costo, para hallar el camino ms cercano entre las ciudades A y B

Estado: Una ciudad como ubicacin actual del viajero Estado inicial: una ciudad arbitraria Estado final o meta: una ciudad arbitraria Acciones: Viajar de la ciudad actual hacia una ciudad vecina Funcin de costo: la distancia entre las ciudades Espacio de estados: todas las ciudades, es decir los nodos del grafo.

El problema del puzzle-8 es:

Determinstico: cada accin conduce de un estado a un nico estado sucesor Observable: el agente siempre sabe en qu estado est. Usando algoritmos offline, soluciones ptimas puede ser encontradas. O sino: Aprendizaje por refuerzo.

Bsqueda en amplitud (Breadth-first search)

El algoritmo de breadth-first search Este algoritmo es genrico Funciones de aplicacin especficas GoalReachedy Successors

Es completo ptimo, si todos los costos de las acciones son las mismas. Tiempo computacional

Espacio de memoria: O(bd) Bsqueda de costo uniforme: el nodo con el costo menor de la lista ordenada ascendentemente de nodos, siempre se expande. Esto es siempre!.

El algoritmo para depth-first search

Es incompleto No es ptimo! Tiempo computacional = O(bd) Requerimiento de memoria = O(bd)

Completo ptimo, si los costos son constantes y se incrementan en 1 Tiempo computacional = O(bd) Requerimiento de memoria = O(bd)

(*) significa que la oracin es solo verdad dado un costo de accin constante. ds es la mxima profundidad para un rbol de bsqueda finito.

Heursticas son estrategias para resolver problemas las cuales en muchos casos hallan una solucin ms rpida que la bsqueda uniforme. No est garantizada la solucin! En la vida real, mtodos heursticos son importantes Decisiones en tiempo real bajo recurso limitados Una buena solucin hallada rpidamente es preferida sobre una solucin ptima, pero muy cara de derivar o hallar.

Funciones de evaluacin heursticos f(s) para estados. Nodo = estado + evaluacin heurstica +

El algoritmo para bsqueda heurstica Depth-first y breath-first search son casos especiales de funciones heuristicSearch.

La heurstica ideal sera una funcin que calcule el costo actual de cada nodo hacia la meta. En el mundo real: funcin estimada de costo h

El: Querida, piensa en la gasolina! Recoger otra en otro lugar. Ella: No, yo quiero esa de all!

Funcin de costo estimada h(s) = volar desde una ciudad s hacia Ulm.

Mannheim-Nurnberg-Ulm: 401 km Mannheim-Karlsruhe-Stuttgart-Ulm: 323 km.

Funcin de costo: g(s) = Suma de costos acumulados desde el inicio hasta el nodo actual. Heurstica Estimada: h(s) = Costo estimado desde el nodo actual a la meta Funcin de evaluacin heurstica: f(s) = g(s) + h(s) Requerimiento:

Algoritmo A* = HeuristicSearch con funcin de evaluacin f(s) =

Prueba:

El nodo de la primera solucin l hallado por A* nunca tiene un costo mas alto que otro nodo arbitrario l

Debilidades de A*:

Altos requerimientos de memoria Lista de nodos abiertos debe estar ordenada, usar heapsort.

Solucin: Iterative Deeping


El mismo que bsqueda por profundidad, pero Limitada para una evaluacin heurstica f(s)

Heurstica admisible para puzzle-8:


h1 cuenta el nmero de cuadrados que no estn en su correcta posicin. h2 mide la distancia Manhattan. (movimientos hasta su correcta posicin de cada nodo)

Ejemplo:

Implementado en Mathematica Promedio de 132 problemas puzzle-8 generados al azar.

Factor de ramificacin efectivo: bsqueda no uniforme: 2.8, heurstica h1 : 1.5 h2:

Para bsquedas no uniformes, solo iterative deeping es usual en la prctica. Por que? IDA* es completo, rpido y eficiente en cuanto a memoria. Buenas heursticas reducen grandemente el factor de ramificacin efectivo. Cuando el problema es no solucionable, en qu podra ayudar la heurstica? Como hallar buenas heursticas?
Manualmente, p.e. Simplificando el problema Generacin automtica de heursticas con tcnicas de machine learning.

Juegos con 2 jugadores Ajedrez, Damas, Othello, Go Determinsticos, observables. Juegos de cartas: solo parcialmente observables, por que? Juegos de suma Cero: Ganador + Perdedor = 0

Caracteristicas en los juegos:


Para ajedrez, el factor de ramificacin promedio es cerca de 30 a 35 50 movimientos por jugador: 30100 = 10148 nodos hojas Requerimientos en tiempo real Bsqueda en profundidad limitada Funcion de evaluacin heurstica b, Jugador: max, Oponente: min Presumpcin: El oponente min siempre hace la mejor jugada que puede. Max maximiza la evaluacin de su movimientos. Min minimiza la evaluacin de sus movimientos.

Un rbol de juego alpha-beta con mirada de 4 medias jugadas

En cada nodo hoja la funcin de evaluacin es calculada Para cada nodo max, el valor del hijo ms largo actual es guardado en Para cada nodo min, el valor del hijo ms pequeo actual es guardado en Si en el nodo min k el valor actual luego la bsqueda bajo k puede finalizar. Aqu es el valor ms grande de un nodo mximo en el camino de la raz hacia k. Si en el modo max l el valor actual luego l bsqueda bajo l puede finalizar. Aqu es el alor ms pequeo de un nodo mnimo en el camino de la raz hacia l.

Tiempo computacional: depende del orden en el cual los nodos hijos son transversados. Peor caso: no ofrece ninguna ventaja, es decir nd=bd Mejor caso: Los sucesores de los nodos mximos son ordenados en orden descendente, los sucesores de los nodos mnimos son ordenados en orden ascendente: factor de ramificacin efectivo

Ajedrez: factor de ramificacin se reduce de 35 a 6 Horizonte de bsqueda: se duplica Caso promedio: factor de ramificacin Ajedrez: factor de ramificacin se reduce de 35 a 14. 8 medias movidas en vez de 6. Orden de nodos heurstico: factor de ramificacin de 7 a 8.

Por ejemplo: juego de dados Max, dado, Min, dado, , Promedio de los valores de todos los lanzamientos.

Lista de las caractersticas relevantes o atributos Funcin de evaluacin lineal B(s)

Mejorando: optimizando pesos usando mtodos de aprendizaje de mquinas.

El experto es solo preguntado sobre las carctersticas relevantes f1(s),.fn(s) El proceso de aprendizaje de mquinas es usado para hallar la funcin de evaluacin ptima B(f1,,fn) Evaluacin al final, p.e. victoria, prdida o empate. Algoritmo de aprendizaje actualiza la funcin de evaluacin.

Asignacin de crdito Sin ratings para movimientos individuales Retroalimentacin positiva o negativa solo al final Retroalimentacin para acciones del pasado? Nuevo Campo: Aprendizaje con refuerzo La mayora de las computadoras de mejor juego de ajedrez an trabajan sin tcnicas de aprendizaje de mquinas. Razones: Aprendizaje con refuerzo tiene un tiempo de computacin grande Heursticas creadas manualmente son ya altamente optimizadas

Definicin por Elaine Rich: Inteligencia artificial es el estudio de cmo hacer que las computadoras hagan cosas que por el momento, la gente hace mejor. Comparacin directa de la computadora y el humano en un juego

1950 Claude Shannon, Konrad Zuse, John von Neumann, Alan Turing: primer juego de ajedrez 1955 Arthur Samuel: Programa que aprende a jugar damas en una IBM 701. Juegos almacenados, cada movimiento individual ha sido medido por expertos. Los programas juegan contra ellos mismos. La asignacin de crditos: por cada posicin individual durante el juego, se compara la evaluacin de la funcin B(s) con la calculada por el alpha-beta pruning y cambia B(s) de acuerdo a ello.

1961 El programa de damas de Samuels le gana a los mejores 4 jugadores de damas en EEUU. 1990 Tesauro, aprendizaje con refuerzos. Aprendiendo el programa backgammon (TDGammon), el cual juega en el nivel de campeones del mundo. 1997 Deep blue de IBM gana al campen del mundo de ajedrez Gary Kasparov (3.5 juegos sobre 2.5) Pudo computar 12 medias jugadas en promedio con alpha-beta pruning.

2004 Hydra: juego de ajedrez por computadoras en paralelo. Se usa 64 procesadores Xeon con 3 Ghz de velocidad y 1Gb de memoria cada una. El Software creado por Donninger (Austria) y Lorenz (Alemania). Evalua 200 millones de posiciones por segundo. Puede calcular cerca de 18 medias jugadas en adelante. Hydra siempre hace movimientos los cuales no comprenden los grandes campeones, pero al final conducen a la victoria. Usa bsquedas Alpha-beta, las heursticas conocidas y una evaluacin de posiciones codificada a mano. Hydra funciona sin aprendizaje. 2009 Pocket Fritz 4: corriendo en una PDA, gana la copa Mercosur de ajedrez en Buenos Aires (9 triunfos y 1 empate contra excelentes jugadores reales, 3 de ellos grandes maestros). La mquina de bsqueda HIARCS 13 busca menos de 20 mil posiciones por segundo. Pocket Fritz 4 es 10mil veces ms lento que Hydra. HIARCS = higher intelligence auto response chess system.

Tabla cuadrada con 361 rectangulitos. 181 blancos y 181 fichas. Factor de ramificacin promedio: 300 Luego de 4 medias jugadas: 8.109 posiciones Los procesos de Bsqueda clsica en rboles en el juego no han cambiado! Reconocimiento de patrones en la tabla! Los humanos son aun mucho mejores que los programas de computadora.

1.

2.

Prueba lo siguiente: para un rbol con factor de ramificacin constante grande b, casi todos los nodos estn es el ltimo nivel de profundidad d. Muestra adems que esto no es siempre cierto cuando el f.r. efectivo es grande pero no constante. Calcula el f.r. promedio para el problema del puzzle-8 sin chequear los ciclos. El f.r. promedio es el f.r. que tendra un rbol de igual nmero de nodos en el ltimo nivel, f.r. constante e igual de profundo. Calcula adems el f.r. promedio para el puzzle-8 con bsqueda no uniforme mientras se evitan los ciclos de longitud 2.

3.

4.

5.

cul es la diferencia entre el f.r. promedio y el efectivo? por qu el f.r. efectivo encaja mejor para anlisis y comparacin del tiempo de computacin de algoritmos de bsqueda que el f.r. promedio? Muestre que para un rbol de ramificacin b pesado con n nodos y profundidad d, el f.r efectivo d n es aproximadamente igual al f.r. Promedio, as es igual a

6.

7.

8.

Calcula el tamao del espacio de estados para un problema del puzzle-8, para el anlogo problema puzzle-3 (matriz 2x2), as como para el problema puzzle-15 (matriz 4x4). Prueba que el grfico de estados consiste en estados (nodos) y acciones (enlaces) para el puzzle-3 cae en 2 grafos conectados entre los cuales no hay conexiones. Con la bsqueda por amplitud del puzzle-8, halla un camino (manualmente) desde el nodo inicial hasta el nodo final usando la heurstica h1 y la heurstica h2

9.

10.

Implementa los algoritmos de breadth-first search, depth-first search y iterative deeping en el lenguaje que prefieras y pruebalos con el ejemplo del puzzle-8. por qu tiene poco sentido usar la bsqueda en profundidad en puzzle-8? Muestra que el algoritmo de bsqueda por amplitud, dado costo constante para todas las acciones, es garantizado que encontrar la solucin ms corta. Adems muestra que esto no es el caso para costos variables.

11.

12.

13.

Usando la bsqueda A* para puzzle-8, busca manualmente un camino desde el nodo inicial hasta el nodo final usando la heurstica h1 y la heurstica h2 Construye el rbol de bsqueda A* para el grafo de ciudades de Ulm y sus alrededores (slide 31) y usa la distancia de vuelo entre Ulm y las otras ciudades como heurstica. Inicia en Bern con Ulm como destino. Cuida que cada ciudad solo aparezca una vez en el camino. Implementa la bsqueda A* en el lenguaje de programacin de tu dominio usando las heursticas h1 y h2 y prubalas con el ejemplo del puzzle-8

14.

15. 16. 17.

Da una funcin de evaluacin heurstica para estados en los cuales HeuristicSearch puede ser implementado como depth-first search y una para una implementacin de breadth-firtst search. cul es la relacin entre la imagen de la pareja en el caon (la flor) y una heurstica admisible? Muestre que las heursticas h1 y h2 para el puzzle-8 son admisibles. El rbol de bsqueda para el juego de 2 jugadores dado en el siguiente slide con los rangos de todos los nodo hojas. Use la bsqueda minMax con alpha-beta pruning de izquierda a derecha. Cruza todos los nodos que no son visitados y da un rating resultado ptimo para cada nodo interno. Marca el camino elegido.

You might also like