Búsqueda con adversario

Documentos relacionados
Búsqueda con adversario. Representación del juego. Búsqueda con adversario. Notas. Uso: Decidir mejor jugada en cada momento para cierto tipo de

VivaMéxico sin PRI. Quiero que mi país sea de todos. Dr. Ivo H. Pineda Torres. Primavera Lllegó el calor sabroso

Inteligencia Artificial Búsqueda entre adversarios

Sistemas Inteligentes I Tema 3. Juegos José A. Montenegro Montes

Búsqueda en línea y Búsqueda multiagente

Inteligencia Artificial

A B MIN C D E F MAX x E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO

JUEGOS. Área de aplicación de los algoritmos heurísticos Juegos bi-personales: oponente hostil

ALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se

22 de diciembre de 2008

(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados

CI-6675 Algoritmos y Estructuras Optimizadas para Videojuegos

El Juego como Problema de Búsqueda

(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados

Resumen de las clases dictadas: Semana 16 al 20 de Noviembre INTRODUCCIÓN

Inteligencia Artificial. Integrantes Equipo # 1:

(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es

Fundamentos de Inteligencia Artificial

INTELIGENCIA EN REDES DE COMUNICACIONES

Métodos de Búsqueda para juegos humano-maquina. PROF: Lic. Ana María Huayna D.

Problemas de. adversarios. Juegos

Conceptos de Inteligencia Artificial & Sistemas Inteligentes Artificiales. Clase 12 CIA Clase 5 SIA Algoritmos genéticos Búsqueda adversaria

Problemas de búsqueda entre adversarios

Búsqueda con adversario

4ta. Práctica. Búsqueda en árbol con contrincante: MiniMax con poda Alfa-Beta. Inteligencia Artificial Prácticas 2004/2005

Para definir en formalmente el juego se deberá establecer:

(Ficha 2, CASILLA) i. FE(1, A1) = = 1 ii. FE(1, A2) = = 2 iii. FE(5, A3) = = 1

4. En el algoritmo de minimax con poda alfa-beta es posible podar TODOS los sucesores de un nodo de juego que se está analizando? Por qué?

No se permiten libros ni apuntes. Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4 TOTAL NOTA

Búsqueda con adversario

Apellidos:... Nombre:... Ejercicio 1 (Cuestiones) [2 puntos] Responder a las siguientes cuestiones de manera clara y concisa:

Tema 7: Búsqueda con adversario (juegos)

No se permiten libros ni apuntes. Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4 TOTAL NOTA

Inteligencia Artificial. Oscar Bedoya

BÚSQUEDA. Vicente Martínez Orga

Tema 4: Técnicas heurísticas en juegos

Problemas de búsqueda entre adversarios

Inteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez

Tema 6: Técnicas heurísticas en juegos

Búsqueda Heurística IV

INTELIGECIA EN REDES DE COMUNICACIONES 5º ING TELECOMUNICACIÓN TRABAJO FINAL DE LA ASIGNATURA EL DOMINÓ AUTORES

Inteligencia Artificial

La habilidad de jugar es considerada como una distinción de inteligencia. Fácil de crear situaciones complicadas con reglas sencillas.

Algoritmo Poda Alpha-Beta

Hoja de Ejercicios. Temas 1 y 2

TP de Programación Funcional: Reversi

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III

Juegos deterministas. Ajedrez, damas, Go, Othello. barquitos

Semana 4: Métodos de Búsqueda No informados. Prof. Oscar Benito Pacheco.

(b) Cuál es la desventaja principal de una heurística con aprendizaje? es más informada que otra función heurística optimista h 2 *?

Ejercicio 1: [20 puntos: respuesta acertada = +1, respuesta incorrecta = 1]

Búsqueda en espacio de estados

Búsqueda Informada. Heurísticas

Problemas de programación entera: El método Ramifica y Acota. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR

Búsqueda en espacio de estados

Universidad Nacional de Educación a Distancia. Ingeniería Técnica en Informática de Sistemas. Introducción a la Inteligencia Artificial (2º curso)

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III

Algoritmos de búsqueda

Inteligencia Artificial Búsqueda informada y exploración

Inteligencia Artificial Búsqueda informada y exploración

Ampliación de Algoritmos y Estructura de Datos Curso 02/03. Ejercicios

Juegos deterministas. Ajedrez, damas, Go, Othello. barquitos

Apellidos:... Nombre:...

Estructura de Datos Unidad 6: ARBOLES

Inteligencia Artificial Búsqueda entre adversarios

Planteamiento General

Curso !"#$%#$!& Inteligencia Artificial (30223) Problemas resueltos. Índice. Problema del laberinto. ! Problema del laberinto

Heurísticas en el recorrido de árboles de soluciones

INTELIGENCIA EN REDES DE COMUNICACIÓN TRABAJO FIN DE CURSO. Las cuatro en raya

CAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES

INSTITUTO TECNOLOGICO DE NUEVO LAREDO INGENIERIA EN SISTEMAS COMPUTACIONALES INTELIGENCIA ARTIFICIAL IMPARTE: ING. BRUNO LÓPEZ TAKEYAS

Inteligencia Artificial

Ingeniería en Sistemas Computacionales. Inteligencia Artificial. Ing. Bruno López Takeyas. Unidad III Algoritmo Alfa - Beta

Curso /10/12. Inteligencia Artificial (30223) Lección 5. Juegos. Índice. Juegos. Los juegos son una forma de entorno multiagente

Curso Extraordinario INTELIGENCIA ARTIFICIAL Y SISTEMAS EXPERTOS

RESOLUCIÓN DE PROBLEMAS, BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa

Programación II. Mario Aldea Rivas Programación II 16/05/11 1

IV. Métodos de Búsqueda Estudiaremos los métodos de búsqueda para resolver problema de la IA

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.

Inteligencia Artificial en el Juego de la Brisca

Satisfacción de restricciones. Representación 1. Algoritmos. Notas. Componentes del estado:

Hoja de Problemas Tema 2 Búsqueda no-informada

ALGORITMOS DE BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa

x x 2 s s= (x 1, x 2 ) ... ? (sin explorar) M= (x 1, x 2, x 3, x 4,..., x n ) valor(m) =?

Búsqueda en e.e. --> reglas para elegir entre las ramas que con más probabilidad lleven a la solución.

3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS.

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:

Ejercicios Propuestos de Métodos de Búsqueda

Jaque a la Inteligencia

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios

máx 5x 1 + 7x 2 s.a 2x 1 + x x 1 + 9x 2 41 x 1 0, x 2 0, enteras, z opt z opt 38

Introducción a Árboles Árboles Binarios

Juegos INAOE. Juegos. Eduardo Morales, Enrique Sucar. Introducción. MiniMax. Alpha Beta SSS MCTS. Estrategias de Juego. Juegos con eventos externos

Transcripción:

Introducción Búsqueda con adversario Uso: Decidir mejor jugada en cada momento para cierto tipo de juegos Hay diferentes tipos de juegos según sus características: Numero de jugadores, toda la información conocida por todos los jugadores, azar, indeterminismo, cooperación/competición, recursos limitados,... Nos focalizaremos en juegos con: 2 jugadores. Movimientos alternos (jugador MA, jugador MIN) Información perfecta Por ejemplo: ajedrez, damas, otello, go,... cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 1 / 16

Representación del juego Introducción Puede ser definido como un problema de espacio de estados Estado = Elementos del juego Estados finales= Estados ganadores (Definidos por sus propiedades) Acciones/operadores = Reglas del juego Son problemas con características especiales La accesibilidad de los estados depende de las acciones elegidas por el contrario Dos tipos de soluciones diferentes (una para cada jugador) No hay nocion de optimalidad (todas las soluciones son iguales, no importa la longitud del camino) cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 2 / 16

Introducción Búsqueda con adversario La aproximación trivial es generar todo el árbol de jugadas Etiquetamos las jugadas terminales dependiendo de si gana MA o MIN ( o ) El objetivo es encontrar un conjunto de movimientos accesible que de como ganador a MA Se propagan los valores de las jugadas terminales de las hojas hasta la raíz, elegimos una rama de una hoja ganadora accesible Una búsqueda en profundidad minimiza el espacio En juegos mínimamente complejos esta búsqueda es impracticable (p.e.: ajedrez (2 3 ), go (2 300 )) cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 3 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 4 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Búsqueda con adversario Introducción cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 / 16

Introducción Búsqueda con adversario Aproximación heurística: Definir una función que nos indique lo cerca que estamos de una jugada ganadora (o perdedora) En esta función intervendrá información del dominio Esta función no representa ningún coste ni es una distancia en pasos Por convención las jugadas ganadoras se evalúan a + y las perdedoras a El algoritmo busca con profundidad limitada y sólo decide la siguiente jugada a partir del nodo raíz Cada nueva decisión implicará repetir la búsqueda A mayor profundidad en la búsqueda mejor jugaremos cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 6 / 16

Introducción Algoritmo Minimax Función: MiniMax (g) movr:movimiento; max,maxc:entero max para cada mov movs_posibles(g) hacer cmax valor_min(aplicar(mov,g)) si cmax > max entonces max cmax movr mov fin fin retorna movr g: Representación del estado (posición de las piezas, profundidad máxima a explorar, turno actual,...) movs_posibles(g): genera la lista de todos los movimientos posibles en el estado actual aplicar(mov,g): Genera el estado que se obtiene al aplicar el movimiento al estado actual Se inicia un recorrido en profundidad del árbol del juego hasta una profundidad máxima Dependiendo del nivel se llama a una función que obtiene el valor máximo o mínimo de la evaluación de los descendientes (valormax, valormin) El recorrido se inicia con la jugada del jugador MA Asumimos que la función de evaluación es la misma para los dos jugadores cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 7 / 16

Minimax Algoritmo Minimax Función: valormax (g) vmax:entero si estado_terminal(g) entonces retorna valor(g) sino vmax para cada mov movs_posibles(g) hacer vmax max(vmax, valormin(aplicar(mov,g)) fin retorna vmax fin Función: valormin (g) vmin:entero si estado_terminal(g) entonces retorna value(g) sino vmin + para cada mov movs_posibles hacer vmin min(vmin, valormax(aplicar(mov,g)) fin retorna vmin fin estado_terminal(g): Determina si el estado actual es terminal (profundidad máxima, jugada ganadora) evaluacion(g): Retorna el valor de la función de evaluación para el estado actual cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 8 / 16

Ejemplo: 3 en raya (1) Minimax e = número de filas, columnas y diagonales completas disponibles para MA - número de filas, columnas y diagonales completas disponibles para MIN MA juega con y desea maximizar e, MIN juega con y desea minimizar e Los valores altos significan una buena posición para el que tiene que mover, Podemos controlar las simetrías, establecemos una profundidad de parada (en el ejemplo 2) Max=1 Min= 1 Min=1 Min= 2 6 =1 4 = 1 =0 6 =1 =0 6= 1 4 6= 2 6 6=0 6 6=0 6= 1 4=1 6 4=2 La mejor jugada es en la que MA coloca su ficha en el centro cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 9 / 16

Ejemplo: 3 en raya (2) Minimax Suponiendo que MIN coloca su ficha en la posición superior de la columna central Max=1 4 2=2 Min=0 3 2=1 Min=0 4 2=2 Min=1 Min=0 2 2=0 4 2=2 4 2=2 4 2=2 2=3 3 2=1 4 2=2 4 2=2 3 2=1 La mejor jugada de MA es colocar su ficha en la esquina inferior izquierda cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 10 / 16

Ejemplo: 3 en raya (3) Minimax Suponiendo que MIN coloca su ficha en la esquina superior derecha Min= inf Max=1 Min= inf Min= inf Min= inf 2 1=1 Min=1 3 1=2 3 1=2 2 1=1 La mejor jugada de MA es colocar su ficha en la esquina superior izquierda cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 11 / 16

αβ a a b.03 c b c min( inf,?,?,?,...)= inf e=max(.1,.0)=.0 d g??? inf e.1 f.0 No tiene sentido seguir explorando sucesores de c ya que tenemos el mejor valor posible En c tendremos e = min(-.0, v g ), por lo tanto en a tendremos e = max(.03, min(-.0, v g )) =.03 Podemos pues podar todos los nodos de g ya que no aportan nada cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 12 / 16

αβ a e(e) = min(-.1,g) Como la rama b ya me da un.03 cualquier cosa peor no nos sirve No hay que explorar g b c e(d) = max(e(e), h) Sí hay que explorar h.03 e d h i Al valor mínimo alcanzado hasta el momento para los nodos max le llamaremos cota α y nos da un límite inferior de e(n). Al valor máximo alcanzado por los nodos min le llamaremos cota β y nos dará un límite superior de e(n) En el ejemplo el nodo a (max) tiene de momento un valor mínimo de.03 proporcionado por su hijo b f.1 g Fijémonos en que el valor que se puede asignar a un nodo max viene aportado por nodos min y viceversa cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 13 / 16

αβ MA v i [α,β] Si v i > α entonces modificar α Si v i β entonces poda β Retornar α MIN v i [α,β] Si v i < β entonces modificar β Si vi α entonces poda α Retornar β Las cotas α y β se transmiten de padres a hijos de 1 en 1 y en el orden de visita de los nodos. α es la cota inferior de un nodo max - β es la cota superior de un nodo min = La efectividad de la poda depende del orden de exploración de los descendientes cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 14 / 16

Algoritmo Función: valormax (g,α,β) si estado_terminal(g) entonces retorna valor(g) sino para cada mov movs_posibles(g) hacer α max(α,valoemin(aplicar(mov,g),α,β)) si α β entonces retorna β fin fin retorna α fin Función: valormin (g,α,β) si estado_terminal(g) entonces retorna valor(g) sino para cada mov movs_posibles(g) hacer β min(β,valormax(apply(mov,g),α,β)) si α β entonces retorna α fin fin retorna β fin El recorrido se inicia llamando a la función valormax con α = β = + En la función valormax α es el valor que se actualiza y β es el valor de la mejor jugada En la función valormin β es el valor que se actualiza y α es el valor de la mejor jugada cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 1 / 16

Poda αβ: Ejemplo A B C D E F G H 3 4 I J M N 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [, + ] B C D E F G H 3 4 I J M N 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [, + ] [, + ] B C D E F G H 3 4 I J M N 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [, + ] [, [, + ] 3] B C D E F G H 3 4 I J M N 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [, + ] [, [, + ] 3] B C D E F G H 3 4 I J M N 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C D E F G H 3 4 I J M N 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, + ] D E F G H 3 4 I J M N 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, + ] D E [3, + ] F G H 3 4 I J M N 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, + ] D E [3, + ] F G H 3 [3, + ] I J M N 4 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, + ] D E [3, + ] F G H 3 [3, [3, + ] + ] [3, 0] I J M N 4 7 K L 0 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, + ] D E [3, + ] F G H 3 [3, [3, + ] + ] [3, 0] I J M N 4 7 K L 0 Poda α β cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, + ] D E [3, [, + ] F G H 3 [3, [3, + ] + ] [3, 0] I J M N 4 7 K L 0 Poda α β cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, + ] ] D E [3, [, + ] F G H 3 [3, [3, + ] + ] [3, 0] I J M N 4 7 K L 0 Poda α β cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, + ] ] D E [3, [, + ] [3, ] F G H 3 [3, [3, + ] + ] [3, 0] I J M N 4 7 K L 0 Poda α β cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, + ] ] D E [3, [, + ] [3, [7, [1] ] F G H 3 [3, [3, + ] + ] [3, 0] I J M N 4 7 Poda α β K L 0 Poda α β cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [, + ] + ] [, [, + ] 3] B C [3, ] + ] 4] D E [3, [, + ] [3, [7, [1] ] F G H 3 [3, [3, + ] + ] [3, 0] I J M N 4 7 Poda α β K L 0 Poda α β cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16

Poda αβ: Ejemplo A [3, [4, [, + ] + ] [, [, + ] 3] B C [3, ] + ] 4] D E [3, [, + ] [3, [7, [1] ] F G H 3 [3, [3, + ] + ] [3, 0] I J M N 4 7 Poda α β K L 0 Poda α β cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 16