Tema 6: Técnicas heurísticas en juegos
|
|
- Esteban Gil Peña
- hace 6 años
- Vistas:
Transcripción
1 Inteligencia Artificial I Curso Tema 6: Técnicas heurísticas en juegos José A. Alonso Jiménez Francisco J. Martín Mateos José L. Ruiz Reina Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla IA-I CcIa Técnicas heurísticas en juegos 6.
2 Juegos: introducción Programación de las máquinas para juegos de estrategia Basados en búsqueda (complejos espacios de búsqueda) La existencia de un oponente introduce incertidumbre Existen limitaciones en el tiempo de respuesta Pueden competir contra la inteligencia humana En general, se trata de construir sistemas que sean capaces de tomar decisiones en un entorno adverso. Tipos de juegos: Información completa, deterministas: ajedrez, damas Información completa, con azar: backgammon Información incompleta, con azar: juegos de cartas IA-I CcIa Técnicas heurísticas en juegos 6.2
3 Juegos: características y ejemplos Características de los juegos que vamos a estudiar en este tema: Juegos bipersonales. Los jugadores mueven alternativamente. La ventaja para un jugador es desventaja para el otro. Los jugadores poseen toda la información sobre el estado del juego. Hay un número finito de estados y decisiones. No interviene el azar. Ejemplos de juegos de ese tipo: Ajedrez, damas, go, otelo, 3 en raya, nim,... Ejemplos de juegos que no son de ese tipo: Backgammon, poker, bridge,... IA-I CcIa Técnicas heurísticas en juegos 6.3
4 Ejemplo de juego: Nim Situación inicial: una pila con N fichas. Jugadas: tomar, 2 ó 3 fichas de la pila. Objetivo: obligar al adversario a coger la última ficha. Ejemplo de jugada en el Nim, comenzando con 9 fichas Jugador coge 3 fichas (quedan 6) Jugador 2 coge ficha (quedan 5) Jugador coge 2 fichas (quedan 3) Jugador 2 coge 2 fichas (queda ) Jugador coge ficha (no quedan fichas) Por tanto, jugador 2 gana IA-I CcIa Técnicas heurísticas en juegos 6.4
5 Elementos de un juego Jugadores: Máquina (al que llamaremos MAX) Humano (al que llamaremos MIN) Estados: situaciones por las que puede pasar el juego Estado inicial (comienzo del juego) Estados finales (final del juego) En los estados finales, especificaremos qué jugador gana Movimientos: operadores que se aplican a los estados, cambiando las situaciones de juego Función de utilidad: valoración (respecto de MAX) basada en las reglas del juego, que se asigna a un estado final y a un turno IA-I CcIa Técnicas heurísticas en juegos 6.5
6 Elementos del juego en el Nim Estados: número fichas que quedan en la mesa Estado inicial: número de fichas al comienzo Un único estado final: 0 El estado final es ganador para un jugador si es su turno Movimientos: tomar, 2 ó 3 fichas Función de utilidad (para el estado final): si le toca a MAX y - si le toca a MIN IA-I CcIa Técnicas heurísticas en juegos 6.6
7 3 en raya En un tablero 3x3, un jugador posee fichas X y otro fichas O. En cada turno el jugador coloca una ficha en el tablero. Gana el que consigue colocar tres de sus fichas en línea X O X O X X O X O X O X X O IA-I CcIa Técnicas heurísticas en juegos 6.7
8 Elementos del juego en el 3 en raya Estados: tablero + ficha que se pondrá a continuación Estado inicial: tablero vacío + ficha de salida Estados finales: tableros completos o con línea ganadora Estados ganadores para un jugador: estados finales en los que no le toca poner IA-I CcIa Técnicas heurísticas en juegos 6.8
9 Elementos del juego en el 3 en raya Movimientos: 9 movimientos posibles, uno por casilla Colocar ficha en i (i = 0,..., 8) Aplicación de movimientos: Aplicable si la casilla no está ocupada Estado resultante: colocar la ficha que toca en la casilla especificada Función de utilidad: si es ganador para MAX 0 si es tablas - si es ganador para MIN IA-I CcIa Técnicas heurísticas en juegos 6.9
10 Implementación de la representación de un juego Representación (estructuras de datos) para estados y movimientos Funciones y variables Una variable *estado-inicial* Una función es-estado-final(estado) Una función es-estado-ganador(estado,turno,jugador) Una lista *movimientos* Una función aplica-movimiento(movimiento,estado) Una función f-utilidad(estado,turno) La función aplica-movimiento(movimiento,estado) devuelve no-aplicable si movimiento no es aplicable a estado, o el estado resultante en otro caso. La función es-estado-ganador(estado,turno,jugador): Devuelve verdad si jugador gana el juego en el estado final estado cuando le toca al jugador turno (falso en caso contrario) IA-I CcIa Técnicas heurísticas en juegos 6.0
11 Árboles de juego Representación de todas las posibles situaciones que se pueden dar en el juego, a partir de un estado dado Cada nivel corresponde a un jugador (el primero para MAX) Un árbol de juego en el Nim: IA-I CcIa Técnicas heurísticas en juegos 6.
12 El problema de decidir el movimiento adecuado En su turno, la máquina debe decidir qué movimiento hacer Idea: En cada turno, construir el árbol de juego completo cuyo nodo raíz sea la situación actual, desarrollándolo hasta los estados finales Valorar los finales según la función de utilidad Propagar hacia arriba los valores de la función Elegir el movimiento que lleve al estado sucesor del actual con mejor valoración La propagación de valores se hace según el principio minimax: MAX siempre escogerá lo mejor para MAX y MIN lo peor para MAX Un nodo de MAX toma el valor del sucesor con mayor valor Un nodo de MIN toma el valor del sucesor con menor valor IA-I CcIa Técnicas heurísticas en juegos 6.2
13 Un arbol minimax y completo para el Nim (4 de inicio) Mejor movimiento: tomar IA-I CcIa Técnicas heurísticas en juegos 6.3
14 Complejidad de los árboles de prueba y heurística Problema: en la mayoría de los juegos, un árbol de juego completo es enorme Complejidad exponencial y tiempo limitado para decidir En la práctica es imposible generar todo el árbol Complejidad en el ajedrez Número medio de posibles movimientos: 35 Número medio de movimientos de una partida: 00 Árbol con nodos!!! Idea: No expandir el árbol hasta los estados finales sino sólo hasta un determinado nivel de profundidad Valorar los estados que sean hojas del árbol usando una función heurística Propagar valores usando el principio minimax IA-I CcIa Técnicas heurísticas en juegos 6.4
15 Ejemplo: árbol minimax con evaluación estática Evaluacion estatica Valor minimax A B 3 Movimiento escogido C 2 D E F G H I J K L M N Nivel de profundidad maximo O P Q R IA-I CcIa Técnicas heurísticas en juegos 6.5
16 Heurística: función de evaluación estática Función de evaluación estática: Dado un estado del juego y un turno, es una estimación de la bondad de tal situación respecto de MAX En los estados finales, debería coincidir con la de utilidad Esta función heurística codifica todo el conocimiento que poseemos acerca del juego Cuanto mayor el valor, mejor el estado para MAX Lo importante es la comparación del valor entre los estados Implementación: En lo que sigue, asumiremos que en lugar de una función f-utilidad(estado,turno), disponemos de una función f-e-estatica(estado,turno), definida sobre todos los estados También necesitaremos dos variables: *maximo-valor* y *minimo-valor* almacenando, respectivamente, cotas para el mayor y el menor valor que puede tomar la función de evaluación estática IA-I CcIa Técnicas heurísticas en juegos 6.6
17 Ejemplos de función de evaluación estática en el Nim *MAXIMO-VALOR*= y *MINIMO-VALOR*=- Primera función de evaluación estática (muy poco informada): FUNCION F-E-ESTATICA(ESTADO,TURNO) Si ES-ESTADO-FINAL(ESTADO) Si TURNO=MAX, devolver *MAXIMO-VALOR* en otro caso, devolver *MINIMO-VALOR* en otro caso, devolver 0 Segunda función de evaluación estática, estrategia ganadora (comenzando): FUNCION F-E-ESTATICA(ESTADO,TURNO) Si TURNO=MAX, Si REM(ESTADO,4)=, devolver *MINIMO-VALOR* en caso contrario, devolver *MAXIMO-VALOR* en caso contrario, Si REM(ESTADO,4)=, devolver *MAXIMO-VALOR* en caso contrario, devolver *MINIMO-VALOR* IA-I CcIa Técnicas heurísticas en juegos 6.7
18 Ejemplos de función de evaluación estática en el 3 en raya Función de evaluación estática: Una línea potencialmente ganadora para un jugador es aquella que el jugador podría completar para ganar *MAXIMO-VALOR*= y *MINIMO-VALOR*= FUNCION F-E-ESTATICA(ESTADO,TURNO) Si ES-ESTADO-GANADOR(ESTADO,TURNO,MAX), devolver *MAXIMO-VALOR* si no, si ES-ESTADO-GANADOR(ESTADO,TURNO,MIN), devolver *MINIMO-VALOR* si no, si ES-ESTADO-FINAL(ESTADO), devolver 0 si no, devolver la diferencia entre el número de posibles líneas ganadoras para MAX y el número de posibles líneas ganadoras para MIN Ejemplos (suponiendo que MAX juega con X ): X O X O X X X O O O 6 5= 5 5=0 4 5= 6 5= 5 5=0 IA-I CcIa Técnicas heurísticas en juegos 6.8
19 Implementación del procedimiento de decisión minimax Nodo de juego: estado + jugador turno + valor de la f.e. estática Funciones de acceso: ESTADO(NODO), JUGADOR(NODO) y VALOR(NODO) Sucesores de un nodo: FUNCION SUCESOR(NODO,MOVIMIENTO). Hacer ESTADO-SUCESOR igual a APLICA-MOVIMIENTO(MOVIMIENTO,ESTADO(NODO)) 2. Si ESTADO-SUCESOR=NO-APLICABLE devolver NO-APLICABLE en caso contrario, devolver un nodo cuyo estado es ESTADO-SUCESOR, cuyo jugador es el contrario de JUGADOR(NODO) FUNCION SUCESORES(NODO). Hacer SUCESORES vacío 2. Para cada MOVIMIENTO en *MOVIMIENTO*, si SUCESOR(NODO,MOVIMIENTO) =/= NO-APLICABLE, incluir SUCESOR(NODO,OPERADOR) en SUCESORES 3. Devolver SUCESORES IA-I CcIa Técnicas heurísticas en juegos 6.9
20 Implementación del procedimiento de decisión minimax Decisión minimax: FUNCION DECISION-MINIMAX(ACTUAL,PROFUNDIDAD). Hacer MAX-VAL igual a *MINIMO-VALOR* 2. Por cada NODO en SUCESORES(ACTUAL), 2. Hacer VALOR-ACTUAL igual VALOR-MINIMAX(NODO,PROFUNDIDAD-) 2.2 Si VALOR-ACTUAL >= MAX-VAL, hacer MAX-VAL igual a VALOR-ACTUAL y hacer MAX-NODO igual a NODO 3. Devolver MAX-NODO IA-I CcIa Técnicas heurísticas en juegos 6.20
21 Implementación del procedimiento de decisión minimax Cálculo del valor minimax: FUNCION VALOR-MINIMAX(NODO,PROFUNDIDAD). Si ES-ESTADO-FINAL(ESTADO(NODO)) o PROFUNDIDAD=0 o SUCESORES(NODO) igual a vacío, devolver F-E-ESTATICA(ESTADO(NODO),JUGADOR(NODO)) 2. Si no, si JUGADOR(NODO)=MAX, devolver MAXIMIZADOR(SUCESORES(NODO),PROFUNDIDAD-) 3. Si no, devolver MINIMIZADOR(SUCESORES(NODO),PROFUNDIDAD-) IA-I CcIa Técnicas heurísticas en juegos 6.2
22 Implementación del procedimiento de decisión minimax Cálculo de máximos y mínimos: FUNCION MAXIMIZADOR(SUCESORES,PROFUNDIDAD). Hacer MAX-VAL igual a *MINIMO-VALOR* 2. Por cada NODO en SUCESORES, 2. Hacer VALOR-ACTUAL igual a VALOR-MINIMAX(NODO,PROFUNDIDAD) 2.2 Si VALOR-ACTUAL >= MAX-VAL, hacer MAX-VAL igual a VALOR-ACTUAL 3. Devolver MAX-VAL FUNCION MINIMIZADOR(SUCESORES,PROFUNDIDAD). Hacer MIN-VAL igual a *MAXIMO-VALOR* 2. Por cada NODO en SUCESORES, 2. Hacer VALOR-ACTUAL igual a VALOR-MINIMAX(NODO,PROFUNDIDAD) 2.2 Si VALOR-ACTUAL <= MIN-VAL, hacer MIN-VAL igual a VALOR-ACTUAL 3. Devolver MIN-VAL Nótese que el proceso recursivo descrito implementa una generación en profundidad de los nodos del árbol de juego IA-I CcIa Técnicas heurísticas en juegos 6.22
23 Recorrido en profundidad del árbol de juego Evaluacion estatica Valor minimax A Orden de analisis B Movimiento escogido C D E F G H Nivel de profundidad maximo 6 I 7 J K 2 L 4 M N O P Q R IA-I CcIa Técnicas heurísticas en juegos 6.23
24 Complejidad de minimax Complejidad: Sea r es el factor de ramificación y m el nivel de profundidad. Complejidad en tiempo: O(r m ). Complejidad en espacio: O(rm). Aún es ineficiente en la práctica: En el ajedrez, con 50 segundos por turno, sólo será posible analizar nodos, luego sólo se podrá generar un árbol de profundidad menor que 4 Por tanto, la calidad del juego de la máquina sería muy baja (un jugador humano medio puede planificar al menos 6 jugadas por adelantado) La poda alfa-beta mejora : En algunos casos, es posible podar el árbol sin que afecte a la decisión que se toma finalmente IA-I CcIa Técnicas heurísticas en juegos 6.24
25 Ejemplo de poda alfa-beta Situación justo después de analizar el subárbol de raíz F: Evaluacion estatica Valor minimax A 3 o mas Orden de analisis B Movimiento escogido C 2 o menos 4 3 D 2 3 E F 5 G H I 7 0 J 2 Nivel de profundidad maximo 8 9 O P IA-I CcIa Técnicas heurísticas en juegos 6.25
26 Ejemplo de poda alfa-beta Evaluacion estatica Valor minimax Orden de analisis A 3 o mas B 3 Movimiento escogido C 2 o menos 4 En este caso, no es necesario analizar los restantes sucesores del nodo C D 2 3 E Nivel de profundidad maximo F I 7 J O P IA-I CcIa Técnicas heurísticas en juegos 6.26 G H
27 Minimax con poda alfa-beta Idea: Cada nodo se analiza teniendo en cuenta el valor que por el momento tiene y el valor que por el momento tiene su padre Esto determina en cada momento un intervalo (α, β) de posibles valores que podría tomar el nodo Significado intuitivo de α y β en cada momento: Nodos MAX: α es el valor actual del nodo (que tendrá eso o más) y β es el valor actual del padre (que tendrá eso o menos) Nodos MIN: β es el valor actual del nodo (que tendrá eso o menos) y α es el valor actual del padre (que tendrá eso o más) La poda se produce si en algún momento α β: Y no hace falta analizar los restantes sucesores del nodo En nodos MIN, se denomina poda β y en los nodos MAX, poda α IA-I CcIa Técnicas heurísticas en juegos 6.27
28 Implementación de minimax con poda alfa-beta Decisión minimax con poda alfa-beta: FUNCION DECISION-MINIMAX-A-B(ACTUAL,PROFUNDIDAD). Hacer ALFA igual a *MINIMO-VALOR* 2. Por cada NODO en SUCESORES(ACTUAL), 2. Hacer VALOR-ACTUAL igual a VALOR-MINIMAX-A-B(NODO,PROFUNDIDAD-,ALFA,*MAXIMO-VALOR*) 2.2 Si VALOR-ACTUAL > ALFA, hacer ALFA igual a VALOR-ACTUAL y hacer MAX-NODO igual a NODO 2.3 Si ALFA >= *MAXIMO-VALOR*, salir del bucle ;;; <--- poda alfa 3. Devolver MAX-NODO IA-I CcIa Técnicas heurísticas en juegos 6.28
29 Implementación de minimax con poda alfa-beta Cálculo del valor minimax con poda alfa-beta: FUNCION VALOR-MINIMAX-A-B(NODO,PROFUNDIDAD,ALFA,BETA). Si ES-ESTADO-FINAL(ESTADO(NODO)) o PROFUNDIDAD=0 o SUCESORES(NODO) igual a vacío, devolver F-E-ESTATICA(ESTADO(NODO),JUGADOR(NODO)) 2. Si no, si JUGADOR(NODO)=MAX, devolver MAXIMIZADOR-A-B(SUCESORES(NODO),PROFUNDIDAD-,ALFA,BETA) 3. Si no, devolver MINIMIZADOR-A-B(SUCESORES(NODO),PROFUNDIDAD-,ALFA,BETA) IA-I CcIa Técnicas heurísticas en juegos 6.29
30 Implementación del procedimiento de decisión minimax Cálculo del máximos y mínimos: FUNCION MAXIMIZADOR-A-B(SUCESORES,PROFUNDIDAD,ALFA,BETA) 2. Por cada NODO en SUCESORES, 2. Hacer VALOR-ACTUAL igual VALOR-MINIMAX-A-B(NODO,PROFUNDIDAD,ALFA,BETA) 2.2 Si VALOR-ACTUAL > ALFA, hacer ALFA igual a VALOR-ACTUAL 2.3 Si ALFA>=BETA, salir del bucle ;;; <--- poda alfa 3. Devolver ALFA FUNCION MINIMIZADOR-A-B(SUCESORES,PROFUNDIDAD,ALFA,BETA) 2. Por cada NODO en SUCESORES, 2. Hacer VALOR-ACTUAL igual VALOR-MINIMAX-A-B(NODO,PROFUNDIDAD,ALFA,BETA) 2.2 Si VALOR-ACTUAL < BETA, hacer BETA igual a VALOR-ACTUAL 2.3 Si ALFA>=BETA, salir del bucle ;;; <--- poda beta 3. Devolver BETA IA-I CcIa Técnicas heurísticas en juegos 6.30
31 Complejidad de alfa-beta Complejidad: Sea r es el factor de ramificación y m el nivel de profundidad. Complejidad en tiempo: O(r 3m 4 ). Complejidad en espacio: O(rm). En la práctica, si los sucesores se exploran en orden de valor minimax (creciente o decreciente dependiendo de si es un nodo MIN o MAX, resp.), se produce la máxima poda, y en ese caso la complejidad temporal es O(r m 2 ) Esto hace que en el mismo tiempo se puedan considerar el doble de jugadas por adelantado (haciendo a la máquina más competitiva) Métodos (aproximados) para generar los sucesores en orden: Usar el valor de la función de evaluación estática para ordenar Usar búsqueda en profundidad iterativa y guardar los valores minimax calculados en cada iteración IA-I CcIa Técnicas heurísticas en juegos 6.3
32 Cuestiones técnicas Existen numerosas mejoras a las técnicas descritas, que permiten crear máquinas que juegan a nivel competitivo Decisiones sobre la profundidad ( dónde parar la búsqueda?) Efecto horizonte Búsqueda de posiciones quiescentes Diseño de funciones de evaluación estática Combinación lineal de características Pesos para ponderar la importancia de cada característica Aprendizaje automático Aprendizaje de los pesos, tras una serie de partidas consigo misma Redes neuronales Biblioteca de movimientos (aperturas, finales,...) IA-I CcIa Técnicas heurísticas en juegos 6.32
33 3 en raya: ejemplo de juego [2]> (load "juego.lsp")... [3]> (load "minimax.lsp")... [4]> (load "3-en-raya-2.lsp")... [5]> (inicializa-3-en-raya x) (3-EN-RAYA. EMPIEZA X) [6]> (juego :empieza-la-maquina? t :procedimiento (minimax-a-b 6)) Estado : Jugador : MAX Mi turno. Estado : X IA-I CcIa Técnicas heurísticas en juegos 6.33
34 3 en raya: ejemplo de juego Jugador : MIN Los movimientos permitidos son: (PON-FICHA-EN 0) (0) (PON-FICHA-EN ) () (PON-FICHA-EN 2) (2) (PON-FICHA-EN 3) (3) (PON-FICHA-EN 5) (4) (PON-FICHA-EN 6) (5) (PON-FICHA-EN 7) (6) (PON-FICHA-EN 8) (7) Tu turno: Estado :. O X Jugador : MAX Mi turno. Estado : X O X IA-I CcIa Técnicas heurísticas en juegos 6.34
35 3 en raya: ejemplo de juego Jugador : MIN Los movimientos permitidos son: (PON-FICHA-EN 2) (0) (PON-FICHA-EN 3) () (PON-FICHA-EN 5) (2) (PON-FICHA-EN 6) (3) (PON-FICHA-EN 7) (4) (PON-FICHA-EN 8) (5) Tu turno: 5 Estado : X O X O Jugador : MAX Mi turno. Estado : X O X X. O IA-I CcIa Técnicas heurísticas en juegos 6.35
36 3 en raya: ejemplo de juego Jugador : MIN Los movimientos permitidos son: (PON-FICHA-EN 2) (0) (PON-FICHA-EN 3) () (PON-FICHA-EN 5) (2) (PON-FICHA-EN 7) (3) Tu turno: Estado : X O. 0 2 O X X. O Jugador : MAX Mi turno. Estado : X O X 0 2 O X X. O Jugador : MIN La maquina ha ganado NIL IA-I CcIa Técnicas heurísticas en juegos 6.36
37 Bibliografía Cortés, U., Béjar, J. y Moreno, A. Inteligencia artificial (Ediciones UPC, 994). Cap. 4.7.: Juegos: la estrategia minimax y sus modificaciones. Mira, J.; Delgado, A.E.; Boticario, J.G. y Díez, F.J. Aspectos básicos de la Inteligencia Artificial (Sanz y Torres, 995) Cap. 4.4: Búsqueda con adversarios. Rich, E. y Knight, K. Inteligencia artificial (segunda edición) (McGraw Hill Interamericana, 994). Cap. 2: Los juegos. IA-I CcIa Técnicas heurísticas en juegos 6.37
38 Bibliografía Russell, S. y Norvig, P. Inteligencia Artificial (Un enfoque moderno) (Prentice Hall, 996). Cap. 5: Juegos. Winston, P.R. Inteligencia artificial (3a. ed.) (Add Wesley, 994). Cap. 6: Arboles y búsqueda con adversario. IA-I CcIa Técnicas heurísticas en juegos 6.38
39 Inteligencia Artificial I Curso Tema 6 (anexo): Implementaciones en Lisp Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla IA-I CcIa Técnicas heurísticas en juegos 6.39
40 Representación del Nim. Variables globales: (defvar *orden* 8) (defvar *estado-inicial*) (defvar *movimientos*) Generador de juegos: (defun inicializa-nim (orden) (setf *orden* orden) (crea-estado-inicial) (list nim orden)) IA-I CcIa Técnicas heurísticas en juegos 6.40
41 Representación del Nim. Estado inicial: (defun crea-estado-inicial () (setf *estado-inicial* *orden*)) Estados finales: (defun es-estado-final (estado) (= estado 0)) Estados ganadores: (defun es-estado-ganador (estado turno jugador) (and (= estado 0) (equal turno jugador))) IA-I CcIa Técnicas heurísticas en juegos 6.4
42 Representación del Nim. Movimientos: (defun quita (fichas estado) (when (>= estado fichas) (- estado fichas))) (defparameter *movimientos* ((quita 3) (quita 2) (quita ))) (defun aplica-movimiento (movimiento estado) (funcall (symbol-function (first movimiento)) (second movimiento) estado)) IA-I CcIa Técnicas heurísticas en juegos 6.42
43 Representación del Nim. Límites de la función de evaluación estática: (defparameter *minimo-valor* -) (defparameter *maximo-valor* ) Primera función de evaluación estática: (defun f-e-estatica- (estado jugador) (if (es-estado-final estado) (if (eq jugador max) *maximo-valor* *minimo-valor*) 0)) Ejemplos: (f-e-estatica- 0 max)) => (f-e-estatica- 0 min)) => - (f-e-estatica- 5 min)) => 0 (f-e-estatica- 5 max)) => 0 IA-I CcIa Técnicas heurísticas en juegos 6.43
44 Representación del Nim. Segunda función de evaluación estática: (defun f-e-estatica-2 (estado jugador) (case jugador (max (if (= (rem estado 4) ) *minimo-valor* *maximo-valor*)) (min (if (= (rem estado 4) ) *maximo-valor* *minimo-valor*)))) Ejemplos: (f-e-estatica-2 0 max) => (f-e-estatica-2 0 min) => - (f-e-estatica-2 5 min) => (f-e-estatica-2 5 max) => - Función f-e-estatica: (defun f-e-estatica (estado jugador) (f-e-estatica-2 estado jugador)) IA-I CcIa Técnicas heurísticas en juegos 6.44
45 Representación del 3 en raya Variables globales: (defvar *estado-inicial*) (defvar *movimientos*) Generador de juegos: (defun inicializa-3-en-raya (ficha) (crea-estado-inicial ficha) (list 3-en-raya. Empieza ficha)) Representación de estados: (defstruct (estado (:constructor crea-estado) (:conc-name nil) (:print-function escribe-estado)) tablero ficha) IA-I CcIa Técnicas heurísticas en juegos 6.45
46 Representación del 3 en raya Escritura de estados: (defun escribe-estado (estado &optional (canal t) profundidad) (let ((tablero (tablero estado))) (format t "~% ~d ~d ~d 0 2~% ~d ~d ~d 3 4 5~% ~d ~d ~d 6 7 8~%~%" (or (nth 0 tablero) ".") (or (nth tablero) ".") (or (nth 2 tablero) ".") (or (nth 3 tablero) ".") (or (nth 4 tablero) ".") (or (nth 5 tablero) ".") (or (nth 6 tablero) ".") (or (nth 7 tablero) ".") (or (nth 8 tablero) ".")))) IA-I CcIa Técnicas heurísticas en juegos 6.46
47 Representación del 3 en raya Estado inicial: (defun crea-estado-inicial (ficha) (setf *estado-inicial* (crea-estado :tablero (nil nil nil nil nil nil nil nil nil) :ficha ficha))) Estados finales: (defun es-estado-final (estado) (or (es-estado-completo estado) (tiene-linea-ganadora estado))) (defun es-estado-completo (estado) (not (position nil (tablero estado)))) IA-I CcIa Técnicas heurísticas en juegos 6.47
48 Representación del 3 en raya (defvar *lineas-ganadoras* ((0 2) (3 4 5) (6 7 8) (0 3 6) ( 4 7) (2 5 8) (0 4 8) (2 4 6))) (defun tiene-linea-ganadora (estado) (loop for linea in *lineas-ganadoras* thereis (es-linea-ganadora linea (tablero estado)))) (defun es-linea-ganadora (linea tablero) (let ((valor (nth (first linea) tablero))) (when (and (not (null valor)) (equalp valor (nth (second linea) tablero)) (equalp valor (nth (third linea) tablero))) valor))) IA-I CcIa Técnicas heurísticas en juegos 6.48
49 Representación del 3 en raya Movimientos: (setf *movimientos* (loop for i from 0 to 8 collect (list pon-ficha-en i)))) (defun pon-ficha-en (posicion estado) (when (null (nth posicion (tablero estado))) (let ((nuevo-tablero (loop for i in (tablero estado) collect i))) (setf (nth posicion nuevo-tablero) (ficha estado)) (crea-estado :tablero nuevo-tablero :ficha (ficha-opuesta (ficha estado)))))) (defun ficha-opuesta (ficha) (if (eq ficha x) o x)) IA-I CcIa Técnicas heurísticas en juegos 6.49
50 Representación del 3 en raya Aplicar movimientos: (defun aplica-movimiento (movimiento estado) (funcall (symbol-function (first movimiento)) (second movimiento) estado)) Estados ganadores: (defun es-estado-ganador (estado turno jugador) (if (tiene-linea-ganadora estado) (not (equalp jugador turno)) nil)) IA-I CcIa Técnicas heurísticas en juegos 6.50
51 Representación del 3 en raya Límites de la función de evaluación estática: (defparameter *minimo-valor* ) (defparameter *maximo-valor* 99999) Función de evaluación estática: (defun f-e-estatica (estado jugador) (cond ((es-estado-ganador estado jugador max) *maximo-valor*) ((es-estado-ganador estado jugador min) *minimo-valor*) ((es-estado-completo estado) 0) (t (- (posibles-lineas-ganadoras estado jugador max) (posibles-lineas-ganadoras estado jugador min))))) IA-I CcIa Técnicas heurísticas en juegos 6.5
52 Representación del 3 en raya (defun posibles-lineas-ganadoras (estado turno jugador) (loop for linea in *lineas-ganadoras* counting (not (esta (tablero estado) (if (eq turno jugador) (ficha-opuesta (ficha estado)) (ficha estado)) linea)))) (defun esta (tablero ficha linea) (loop for i in linea thereis (eq (nth i tablero) ficha))) IA-I CcIa Técnicas heurísticas en juegos 6.52
53 Procedimiento de control de juegos (función árbitro) Comienzo del juego: (defvar *procedimiento*) (defun juego (&key (empieza-la-maquina? nil) (procedimiento (minimax 5))) (setf *procedimiento* procedimiento) (cond (empieza-la-maquina? (crea-nodo-j-inicial max) (if (es-estado-final *estado-inicial*) (analiza-final *nodo-j-inicial*) (jugada-maquina *nodo-j-inicial*))) (t (crea-nodo-j-inicial min) (if (es-estado-final *estado-inicial*) (analiza-final *nodo-j-inicial*) (jugada-humana *nodo-j-inicial*))))) IA-I CcIa Técnicas heurísticas en juegos 6.53
54 Procedimiento de control de juegos (función árbitro) Nodos del árbol de análisis: (defstruct (nodo-j (:constructor crea-nodo-j) (:conc-name nil) (:print-function escribe-nodo-j)) estado jugador valor) (defun escribe-nodo-j (nodo-j &optional (canal t) profundidad) (format canal "~%Estado : ~a~%jugador : ~a" (estado nodo-j) (jugador nodo-j))) IA-I CcIa Técnicas heurísticas en juegos 6.54
55 Procedimiento de control de juegos (función árbitro) Nodo inicial. (defvar *nodo-j-inicial*) (defun crea-nodo-j-inicial (jugador) (setf *nodo-j-inicial* (crea-nodo-j :estado *estado-inicial* :jugador jugador))) IA-I CcIa Técnicas heurísticas en juegos 6.55
56 Procedimiento de control de juegos (función árbitro) Controlar el final del juego. (defun analiza-final (nodo-j-final) (escribe-nodo-j nodo-j-final) (cond ((es-estado-ganador (estado nodo-j-final) (jugador nodo-j-final) max) (format t "~&La maquina ha ganado")) ((es-estado-ganador (estado nodo-j-final) (jugador nodo-j-final) min) (format t "~&El humano ha ganado")) (t (format t "~&Empate")))) IA-I CcIa Técnicas heurísticas en juegos 6.56
57 Procedimiento de control de juegos (función árbitro) Procesar jugada máquina: (defun jugada-maquina (nodo-j) (escribe-nodo-j nodo-j) (format t "~%Mi turno.~&") (let ((siguiente (aplica-decision *procedimiento* nodo-j))) (if (es-estado-final (estado siguiente)) (analiza-final siguiente) (jugada-humana siguiente)))) IA-I CcIa Técnicas heurísticas en juegos 6.57
58 Procedimiento de control de juegos (función árbitro) Procesar jugada humana: (defun movimientos-legales (estado) (loop for m in *movimientos* when (aplica-movimiento m estado) collect m)) (defun escribe-movimientos (movimientos) (format t "~%Los movimientos permitidos son:") (let ((numero 0)) (loop for m in movimientos do (if (= (mod numero 3) 0) (format t "~% ~a (~a)" m numero) (format t " ~a (~a)" m numero)) (setf numero (+ numero ))))) IA-I CcIa Técnicas heurísticas en juegos 6.58
59 Procedimiento de control de juegos (función árbitro) (defun jugada-humana (nodo-j) (escribe-nodo-j nodo-j) (let ((movimientos (movimientos-legales (estado nodo-j)))) (escribe-movimientos movimientos) (format t "~%Tu turno: ") (let ((m (read))) (cond ((and (integerp m) (< - m (length movimientos))) (let ((nuevo-estado (aplica-movimiento (nth m movimientos) (estado nodo-j)))) (cond (nuevo-estado (let ((siguiente (crea-nodo-j :estado nuevo-estado :jugador max))) (if (es-estado-final nuevo-estado) (analiza-final siguiente) (jugada-maquina siguiente)))) (t (format t "~& El movimiento ~a no se puede usar. " m) (jugada-humana nodo-j))))) (t (format t "~& ~a es ilegal. " m) (jugada-humana nodo-j)))))) IA-I CcIa Técnicas heurísticas en juegos 6.59
60 Decisiones de la máquina: minimax (defun minimax (nodo-j profundidad) (if (or (es-estado-final (estado nodo-j)) (= profundidad 0)) (crea-nodo-j :valor (f-e-estatica (estado nodo-j) (jugador nodo-j))) (let ((sucesores (sucesores nodo-j))) (if (null sucesores) (crea-nodo-j :valor (f-e-estatica (estado nodo-j) (jugador nodo-j))) (if (eq (jugador nodo-j) max) (maximizador sucesores profundidad) (minimizador sucesores profundidad)))))) IA-I CcIa Técnicas heurísticas en juegos 6.60
61 Decisiones de la máquina. Sucesores Generación de sucesores: (defun sucesores (nodo-j) (let ((resultado ())) (loop for movimiento in *movimientos* do (let ((siguiente (aplica-movimiento movimiento (estado nodo-j)))) (when siguiente (push (crea-nodo-j :estado siguiente :jugador (contrario (jugador nodo-j))) resultado)))) (nreverse resultado))) Determinar el jugador contrario a uno dado. (defun contrario (jugador) (if (eq jugador max) min max)) IA-I CcIa Técnicas heurísticas en juegos 6.6
62 Decisiones de la máquina. Función maximizadora (defun maximizador (sucesores profundidad) (let ((mejor-sucesor (first sucesores)) (mejor-valor *minimo-valor*)) (loop for sucesor in sucesores do (setf valor (valor (minimax sucesor (- profundidad)))) (when (> valor mejor-valor) (setf mejor-valor valor) (setf mejor-sucesor sucesor))) (setf (valor mejor-sucesor) mejor-valor) mejor-sucesor)) IA-I CcIa Técnicas heurísticas en juegos 6.62
63 Decisiones de la máquina. Función minimizadora (defun minimizador (sucesores profundidad) (let ((mejor-sucesor (first sucesores)) (mejor-valor *maximo-valor*)) (loop for sucesor in sucesores do (setf valor (valor (minimax sucesor (- profundidad)))) (when (< valor mejor-valor) (setf mejor-valor valor) (setf mejor-sucesor sucesor))) (setf (valor mejor-sucesor) mejor-valor) mejor-sucesor)) IA-I CcIa Técnicas heurísticas en juegos 6.63
64 Decisiones de la máquina. Minimax con poda alfa beta (defun minimax-a-b (nodo-j profundidad &optional (alfa *minimo-valor*) (beta *maximo-valor*)) (if (or (es-estado-final (estado nodo-j)) (= profundidad 0)) (crea-nodo-j :valor (f-e-estatica (estado nodo-j) (jugador nodo-j))) (let ((sucesores (sucesores nodo-j))) (if (null sucesores) (crea-nodo-j :valor (f-e-estatica (estado nodo-j) (jugador nodo-j))) (if (eq (jugador nodo-j) max) (maximizador-a-b (sort sucesores # > :key (lambda (nodo) (f-e-estatica (estado nodo) min))) profundidad alfa beta) (minimizador-a-b (sort sucesores # < :key (lambda (nodo) (f-e-estatica (estado nodo) max))) profundidad alfa beta)))))) IA-I CcIa Técnicas heurísticas en juegos 6.64
65 Decisiones de la máquina. Maximizador con poda alfa beta (defun maximizador-a-b (sucesores profundidad alfa beta) (let ((mejor-sucesor (first sucesores)) (valor 0)) (loop for sucesor in sucesores do (setf valor (valor (minimax-a-b sucesor (- profundidad) alfa beta))) (when (> valor alfa) (setf alfa valor) (setf mejor-sucesor sucesor)) (when (>= alfa beta) (return))) (setf (valor mejor-sucesor) alfa) mejor-sucesor)) IA-I CcIa Técnicas heurísticas en juegos 6.65
66 Decisiones de la máquina. Minimazador con poda alfa beta (defun minimizador-a-b (sucesores profundidad alfa beta) (let ((mejor-sucesor (first sucesores)) (valor 0)) (loop for sucesor in sucesores do (setf valor (valor (minimax-a-b sucesor (- profundidad) alfa beta))) (when (< valor beta) (setf beta valor) (setf mejor-sucesor sucesor)) (when (>= alfa beta) (return))) (setf (valor mejor-sucesor) beta) mejor-sucesor)) IA-I CcIa Técnicas heurísticas en juegos 6.66
67 Una mejora para el 3 en raya: eliminación de simétricos Sucesores: (defun sucesores (nodo-j) (elimina-simetricos (todos-los-sucesores nodo-j))) (defun todos-los-sucesores (nodo-j) (let ((resultado ())) (loop for movimiento in *movimientos* do (let ((siguiente (aplica-movimiento movimiento (estado nodo-j)))) (when siguiente (push (crea-nodo-j :estado siguiente :jugador (contrario (jugador nodo-j))) resultado)))) (nreverse resultado))) IA-I CcIa Técnicas heurísticas en juegos 6.67
68 Una mejora para el 3 en raya: eliminación de simétricos (defun elimina-simetricos (nodos-sucesores) (delete-duplicates nodos-sucesores :test # son-simetricos :from-end t)) (defun son-simetricos (nodo- nodo-2) (let ((tablero- (tablero (estado nodo-))) (tablero-2 (tablero (estado nodo-2)))) (or (son-simetricos-respecto-columna-central tablero- tablero-2) (son-simetricos-respecto-fila-central tablero- tablero-2) (son-simetricos-respecto-diagonal-principal tablero- tablero-2) (son-simetricos-respecto-diagonal-secundaria tablero- tablero-2)))) IA-I CcIa Técnicas heurísticas en juegos 6.68
69 Una mejora para el 3 en raya: eliminación de simétricos (defun son-simetricos-respecto-fila-central (tablero- tablero-2) (loop for i from 0 to 2 always (equal (fila i tablero-) (fila (- 2 i) tablero-2)))) (defun fila (i tablero) (loop for x from (* 3 i) to (+ (* 3 i) 2) collect (nth x tablero))) (defun son-simetricos-respecto-columna-central (tablero- tablero-2) (loop for j from 0 to 2 always (equal (columna j tablero-) (columna (- 2 j) tablero-2)))) IA-I CcIa Técnicas heurísticas en juegos 6.69
70 Una mejora para el 3 en raya: eliminación de simétricos (defun columna (j tablero) (loop for x from j to (+ j (* 3 2)) by 3 collect (nth x tablero))) (defun son-simetricos-respecto-diagonal-principal (tablero- tablero-2) (loop for j from 0 to 2 always (equal (columna j tablero-) (fila j tablero-2)))) (defun son-simetricos-respecto-diagonal-secundaria (tablero- tablero-2) (loop for j from 0 to 2 always (equal (columna j tablero-) (reverse (fila (- 2 j) tablero-2))))) IA-I CcIa Técnicas heurísticas en juegos 6.70
Búsqueda con adversario
Búsqueda con adversario José Luis Ruiz Reina José Antonio Alonso Jiménez Franciso J. Martín Mateos María José Hidalgo Doblado Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla
Más detallesTema 4: Técnicas heurísticas en juegos
Tema 4: Técnicas heurísticas en juegos José A. Alonso Jiménez Carmen Graciani Díaz Francisco Jesús Martín Mateos José Luis Ruiz Reina Dpto. Ciencias de la Computación e Inteligencia Artificial UNIVERSIDAD
Más detallesTema 7: Búsqueda con adversario (juegos)
Tema 7: Búsqueda con adversario (juegos) José Luis Ruiz Reina José Antonio Alonso Franciso J. Martín Mateos María José Hidalgo Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad
Más detallesTema 3: Técnicas básicas de
Inteligencia Artificial Curso 999 2000 Tema 3: Técnicas básicas de búsqueda José A. Alonso Jiménez Francisco J. Martín Mateos Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de
Más detallesAnexo 3: Implementaciones en Lisp
Anexo 3: Implementaciones en Lisp José A. Alonso Jiménez Carmen Graciani Díaz Francisco Jesús Martín Mateos José Luis Ruiz Reina Dpto. Ciencias de la Computación e Inteligencia Artificial UNIVERSIDAD DE
Más detallesInteligencia Artificial
I.T. en Informática de Sistemas, 3º Curso académico: 2009/2010 Profesores: Sascha Ossowski y Ramón Hermoso 1 Tema 2: Búsqueda Resumen: 2. Búsqueda 2.1. Agentes de resolución de problemas 2.2. Búsqueda
Más detallesBúsqueda en línea y Búsqueda multiagente
Búsqueda en línea y Búsqueda multiagente Ingeniería Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani 1 Tema 2: Agentes basados en Búsqueda Resumen: 2. Agentes basados
Más detallesTema 3: Técnicas básicas de búsqueda para la resolución de problemas
Tema 3: Técnicas básicas de búsqueda para la resolución de problemas José Luis Ruiz Reina José Antonio Alonso Franciso J. Martín Mateos Departamento de Ciencias de la Computación e Inteligencia Artificial
Más detallesTema 6: Técnicas heurísticas en juegos
Inteligencia Artificial I Curso 2007 2008 Tema 6: Técnicas heurísticas en juegos José A. Alonso Jiménez Carmen Graciani Díaz Francisco J. Martín Mateos José L. Ruiz Reina Dpto. de Ciencias de la Computación
Más detallesResumen de las clases dictadas: Semana 16 al 20 de Noviembre INTRODUCCIÓN
Resumen de las clases dictadas: Semana 16 al 20 de Noviembre 2015 Tema: Algoritmo Minimax 1. INTRODUCCIÓN En este tema se tratará sobre el algoritmo minimax, con el propósito de mostrar implementaciones
Más detallesALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se
ALGORITMO MINIMAX Algoritmo de decisión para minimizar la pérdida máxima aplicada en juegos de adversarios Información completa (cada jugador conoce el estado del otro) Elección del mejor movimiento para
Más detalles4ta. Práctica. Búsqueda en árbol con contrincante: MiniMax con poda Alfa-Beta. Inteligencia Artificial Prácticas 2004/2005
4ta. Práctica Búsqueda en árbol con contrincante: MiniMax con poda Alfa-Beta Inteligencia Artificial Prácticas 2004/2005 Decisiones Perfectas en Juegos de DOS Participantes Definición de Juego Estado Inicial:
Más detalles(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados
Universidad Rey Juan Carlos Curso 2014 2015 Hoja de Problemas Tema 5 1. Cuáles de las siguientes afirmaciones acerca del algoritmo Minimax son ciertas (a) El algoritmo Minimax realiza una exploración primero
Más detalles(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es
Universidad Rey Juan Carlos Curso 2014 2015 Hoja de Problemas Tema 5 1. Cuáles de las siguientes afirmaciones acerca del algoritmo Minimax son ciertas (a) El algoritmo Minimax realiza una exploración primero
Más detallesPara definir en formalmente el juego se deberá establecer:
INTRODUCCION A LA INTELIGENCIA ARTIFICIAL MÓDULO 5- JUEGOS COMO PROBLEMA DE BÚSQUEDA Referencias: Inteligencia Artificial Russell and Norvig Cap.5. Artificial Intellingence Nils Nilsson Ch.3 Se trata el
Más detalles(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados
Universidad Rey Juan Carlos Curso 2014 2015 Hoja de Problemas Tema 5 1. Cuáles de las siguientes afirmaciones acerca del algoritmo Minimax son ciertas (a) El algoritmo Minimax realiza una exploración primero
Más detalles4. 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é?
Inteligencia Artificial (Curso 2013 2014) Máster en Matemática Avanzada Tema 3: Búsqueda con adversario 1. Influye el orden en el que se analizan los sucesores de un nodo en la eficiencia del algoritmo
Más detallesCI-6675 Algoritmos y Estructuras Optimizadas para Videojuegos
Especialización en Creación y Programación de Videojuegos CI-6675 Algoritmos y Estructuras Optimizadas para Videojuegos Agenda de hoy Juegos Combinatorios Información en un Juego La suma de un Juego s
Más detallesJUEGOS. Área de aplicación de los algoritmos heurísticos Juegos bi-personales: oponente hostil
JUEGOS Área de aplicación de los algoritmos heurísticos Juegos bi-personales: oponente hostil I Oponente: Jugador: intenta mover a un estado que es el peor para Etiquetar cada nivel del espacio de búsqueda
Más detallesINTELIGENCIA EN REDES DE COMUNICACIONES
INTELIGENCIA EN REDES DE COMUNICACIONES JUEGOS CON ADVERSARIO ALGORITMO MINIMAX PODA ALFA BETA OTRAS MEJORAS ANA BEATRIZ SOLANA SÁNCHEZ JUEGOS BIPERSONALES Este tipo de juegos los podemos definir como:
Más detallesBúsqueda con adversario
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
Más detallesMétodos de Búsqueda para juegos humano-maquina. PROF: Lic. Ana María Huayna D.
Métodos de Búsqueda para juegos humano-maquina PROF: Lic. Ana María Huayna D. Tópicos 1. Introducción 2. Juegos 3. Estrategias de Juego 4. Algoritmo Minimax 5. Algoritmo Poda Alfa-Beta 1.- Introducción
Más detallesVivaMéxico sin PRI. Quiero que mi país sea de todos. Dr. Ivo H. Pineda Torres. Primavera Lllegó el calor sabroso
VivaMéxico sin PRI Quiero que mi país sea de todos. Dr. Ivo H. Pineda Torres Facultad de Ciencias de la Computación Benemérita Universidad Autónoma de Puebla Primavera 2014. Lllegó el calor sabroso IMAGENESpemexmorena
Más detallesTema 1: Introducción a Lisp
Inteligencia Artificial I Curso 202 203 Tema : Introducción a Lisp José L. Ruiz Reina Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla IA-I 202 203 CcIa Introducción
Más detallesA B MIN C D E F MAX x E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO
E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y Ciencias de la Computación RELACIÓN DE PROBLEMAS. TEMA IV. PROBLEMAS DE JUEGOS.
Más detallesInteligencia Artificial. Integrantes Equipo # 1:
INSTITUTO TECNOLÓGICO De Nuevo Laredo Especialidad: Ingeniería en Sistemas Computacionales Catedrático: Ing. Bruno López Takeyas. Asignatura: Inteligencia Artificial. Integrantes Equipo # 1: Javier Alonso
Más detallesTema 4: Búsqueda informada mediante técnicas heurísticas
Tema 4: Búsqueda informada mediante técnicas heurísticas José Luis Ruiz Reina José Antonio Alonso Franciso J. Martín Mateos 1 Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad
Más detallesNo se permiten libros ni apuntes. Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4 TOTAL NOTA
Junio Duración: h Ejercicio Ejercicio Ejercicio Ejercicio TOTAL NOTA Ejercicio : [ puntos: respuesta acertada = +., respuesta incorrecta =.] Complete las siguientes frases y conteste a cada una con verdadero
Más detallesProblemas de búsqueda entre adversarios
Problemas de búsqueda entre adversarios Juegos For IA researchers, the abstract nature of games makes them an appealing subject for study (Russell & Norvig, 2003). 1 Introducción Juegos» Origen, 1928:
Más detallesEl Juego como Problema de Búsqueda
El Juego como Problema de Búsqueda En este algoritmo identificamos dos jugadores: max y min. El objetivo es encontrar la mejor movida para max. Supondremos que max mueve inicialmente y que luego se turnan
Más detallesInteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales
Inteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales Rafael Vázquez Pérez Unidad II:Técnicas de Búsqueda. 2.1. Solución de problemas con búsqueda. 2.2. Espacios de estados.
Más detallesCurso 2012-2013 15/10/12. Inteligencia Artificial (30223) Lección 5. Juegos. Índice. Juegos. Los juegos son una forma de entorno multiagente
Inteligencia Artificial (30223) Lección 5. Juegos Curso 2012-2013 José Ángel Bañares 15/10/2013. Dpto. Informática e Ingeniería de Sistemas. Índice Juegos Decisiones optimas Poda α-β Juegos con información
Más detallesHoja de Ejercicios. Temas 1 y 2
Hoja de Ejercicios Temas 1 y 2 Ejercicio 1: Complete las siguientes frases con las alternativas especificadas. Si existen varias alternativas verdaderas, márquelas todas. 1.1. Cuál(es) de las siguientes
Más detallesBúsqueda con adversario. Representación del juego. Búsqueda con adversario. Notas. Uso: Decidir mejor jugada en cada momento para cierto tipo de
úsqueda con adversario ntroducción Uso: ecidir mejor jugada en cada momento para cierto tipo de juegos Hay diferentes tipos de juegos según sus características: umero de jugadores, toda la información
Más detallesLECCIÓN 8. BÚSQUEDAS CON ÁRBOL
LECCIÓN 8. BÚSQUEDAS CON ÁRBOL En esta lección se presenta una implementación de algoritmos generales de búsqueda en grafos que emplean árboles de búsqueda. También se analiza la resolución de dos problemas
Más detallesFundamentos de Inteligencia Artificial
Fundamentos de Inteligencia Artificial Búsqueda con Adversario Hugo Vega Huerta En esta sección Conoceremos métodos que permiten practicar juegos de tablero. una opción conduce a otra, pero se trata de
Más detallesResumen de LISP. Javier Gil Julio, 2011
Resumen de LISP Javier Gil Julio, 2011 ; conceptos fundamentales de Lisp ; sintaxis basica (+ 2 3) (* 2 (+ 4 6)) (+ 2/7 7/67) (/ #c(2 3) 6/4) ; operadores matematicos basicos (+ 2 3) (- 8 6) (* 2/7 6/5)
Más detallesEJEMPLO DE PARTIDA. Pongo en la casilla: 4 El tablero queda como: X
El objetivo de este ejercicio es crear un programa que juegue a tres en raya contra un oponente humano. Tras cada movimiento el programa debe mostrar el tablero y permitir mover al humano. El programa
Más detallesInteligencia Artificial. Oscar Bedoya
Inteligencia Artificial Oscar Bedoya oscarbed@eisc.univalle.edu.co * Algoritmo minimax * Poda alfa-beta * Juegos con decisiones imperfectas * Juegos con elemento aleatorio * Aplicaciones Tipos de contrincantes
Más detallesBÚSQUEDA. Vicente Martínez Orga
BÚSQUEDA Vicente Martínez Orga vicente.martinez@upm.es Departamento de Inteligencia Artificial Facultad de Informática Universidad Politécnica de Madrid Campus de Montegancedo sn, 28660 Boadilla del Monte,
Más detallesBúsqueda Heurística IV
Búsqueda Heurística IV Pedro Meseguer IIIA-CSIC Bellaterra, Spain pedro@iiia.csic.es 2 jugadores Búsqueda para juegos Perfecta información: cada jugador conoce toda la información del contrario no hay
Más detallesTema 2: Representación de problemas como espacios de estados
Tema 2: Representación de problemas como espacios de estados José Luis Ruiz Reina José Antonio Alonso Franciso J. Martín Mateos Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad
Más detallesNo se permiten libros ni apuntes. Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4 TOTAL NOTA
PLLID: MR: o se permiten libros ni apuntes jercicio 1 jercicio 2 jercicio 3 jercicio 4 TTL T jercicio 1: [XX puntos: respuesta acertada = +2, respuesta incorrecta = 2] Complete las siguientes frases y
Más detallesJuegos deterministas. Ajedrez, damas, Go, Othello. barquitos
Árboles de juegos Análisis y Diseño de Algoritmos Tipos de juegos Juegos deterministas Juegos de azar Con información perfecta Con información imperfecta Ajedrez, damas, Go, Othello barquitos Backgammon,
Más detallesHoja de Problemas Tema 2 Búsqueda no-informada
Ejercicio 1: 1.1. El enfoque de los Agentes Inteligentes concibe el objetivo de la Inteligencia Artificial como el intento de construir sistemas (a) (b) (c) (d) que actúen como las personas (tipo Eliza).
Más detallesJuegos deterministas. Ajedrez, damas, Go, Othello. barquitos
Búsqueda con adversario: Juegos Fernando Berzal, berzal@acm.org Tipos de juegos Juegos deterministas Juegos de azar Con información perfecta Con información imperfecta Ajedrez, damas, Go, Othello barquitos
Más detallesTema 1: Introducción a la Inteligencia Artificial
Introducción a la Inteligencia Artificial Curso 2002 2003 Tema : Introducción a la Inteligencia Artificial José A. Alonso Jiménez Francisco J. Martín Mateos Dpto. de Ciencias de la Computación e Inteligencia
Más detallesINTELIGECIA EN REDES DE COMUNICACIONES 5º ING TELECOMUNICACIÓN TRABAJO FINAL DE LA ASIGNATURA EL DOMINÓ AUTORES
INTELIGECIA EN REDES DE COMUNICACIONES 5º ING TELECOMUNICACIÓN 2006-2007 TRABAJO FINAL DE LA ASIGNATURA EL DOMINÓ AUTORES DANIEL F. TAVEIRA MONTEIRO RODRIGO GÓMEZ RODRIGUEZ DAVID TOLEDO NAVARRO 1. Índice
Más detallesEJERCICIOS DE GRAFOS DE JUEGO
Universidad de lcalá Departamento de iencias de la omputación lgoritmia y omplejidad EJERIIOS DE GRFOS DE JUEGO Ejercicio 1). Se dispone de una matriz M de tamaño Fx (F es la cantidad de filas y la cantidad
Más detallesManual de Lisp para IACS (Curso 91 92)
Dpto. de Álgebra, Computación, Geometría y Topología Universidad de Sevilla Manual de Lisp para IACS (Curso 91 92) Sevilla, 1992 Contenido 1 Introducción 1 1.1 Introducción............................
Más detallesPráctica 2 de IA /2012. LÓGICA Fecha publicación: 26 de octubre de 2011 Duración: 3 sesiones de laboratorio Versión: 2011/10/26
Práctica 2 de IA - 2011/2012. LÓGICA Fecha publicación: 26 de octubre de 2011 Duración: 3 sesiones de laboratorio Versión: 2011/10/26 Forward y backward chaining en lógica proposicional En la práctica
Más detallesEstado 3.2 (coste = 9)
Búsqueda heurística Fernando Berzal, berzal@acm.org Búsqueda heurística Búsqueda primero el mejor p.ej. búsqueda de coste uniforme [UCS] Heurísticas Búsqueda greedy El algoritmo A* Heurísticas admisibles
Más detallesTema 4: Aprendizaje de conceptos
Inteligencia Artificial II Curso 2004 2005 Tema 4: Aprendizaje de conceptos José A. Alonso Jiménez Francisco Jesús Martín Mateos José Luis Ruiz Reina Dpto. de Ciencias de la Computación e Inteligencia
Más detallesTema 7: Aprendizaje de árboles de decisión
Inteligencia Artificial 2 Curso 2002 03 Tema 7: Aprendizaje de árboles de decisión José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Francisco J. Martín Mateos José L. Ruiz Reina Dpto. de Ciencias de
Más detallesB s ú que u da p rim i ero o e n n p rof o u f n u d n id i ad: E tr t ate t gia i L I L FO B s ú que u da p rim i ero o e n n a nc n h c u h r u a:
Búsqueda sin información Fernando Berzal, berzal@acm.org Búsqueda sin información Recorridos sobre grafos Búsqueda en anchura (BFS) Búsqueda en profundidad (DFS) Descenso iterativo (IDS) [ vuelta atrás
Más detallesINTELIGENCIA EN REDES DE COMUNICACIÓN TRABAJO FIN DE CURSO. Las cuatro en raya
INTELIGENCIA EN REDES DE COMUNICACIÓN TRABAJO FIN DE CURSO Las cuatro en raya Por Javier Martín Manzano Alejandro Bárcena Berzosa INFORME TÉCNICO El trabajo que se ha realizado, es un programa que consta
Más detallesCurso Extraordinario INTELIGENCIA ARTIFICIAL Y SISTEMAS EXPERTOS
Curso Extraordinario INTELIGENCIA ARTIFICIAL Y SISTEMAS EXPERTOS Contenidos del Curso Introducción a la I.A. Cómo razonamos?. Algunas experiencias con el razonamiento automático Procedimientos de solución
Más detallesALGORITMOS DE BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa
ALGORITMOS DE BÚSQUEDA Algoritmos de Búsqueda Tipos Tipos de algoritmos de búsqueda ALGORITMOS DE BÚSQUEDA NO INFORMADA ALGORITMOS DE BÚSQUEDA HEURÍSTICA Búsqueda no informada Introducción Búsqueda no
Más detalles1. 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.
Backtracking. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación. 3.. Problema de las 8 reinas. 3.2. Problema de la mochila 0/. Método general El backtracking (método de retroceso
Más detallesEspacios de estados Técnicas básicas de búsqueda en espacios de estados Búsqueda informada mediante técnicas heurísticas.
Tema 3: Búsqueda José Luis Ruiz Reina José Antonio Alonso Franciso J. Martín Mateos Miguel A. Gutiérrez Naranjo Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla
Más detalles(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 *?
UNIVERIDD REY JUN CRLO CURO 0-0 INTELIGENCI RTIFICIL Hoja de Problemas Tema Ejercicio : Conteste a las siguientes preguntas: (a) Cómo funciona una heurística con aprendizaje? olución: Una heurística con
Más detallesApellidos:... Nombre:...
Apellidos:....................................... Nombre:........................................ Introducción a la Inteligencia Artificial 1 er Parcial de Teoría 12 Noviembre 2004 Ejercicio 1: Responder
Más detallesEjercicio 1: [20 puntos: respuesta acertada = +1, respuesta incorrecta = 1]
Ejercicio 1: [20 puntos: respuesta acertada = +1, respuesta incorrecta = 1] Complete las frases que se muestran a continuación con las alternativas especificadas. En la siguiente tabla, indique "V" o "F"
Más detallesAmpliación de Algoritmos y Estructura de Datos Curso 02/03. Ejercicios
272. En un problema determinado, una solución está dada por una tupla de n elementos (x, x 2,..., x n ). Para cada elemento existen en total m posibles valores. Comparar el número de nodos generados para
Más detallesEl lenguaje LISP. LISP is an easy language to learn
El lenguaje LISP LISP is an easy language to learn (Henry et.al., 1984) 1 Origen: 1958 Introducción John McCarthy, pionero en IA, empezó a trabajar con la primera implementación de Lisp en 1958.» McCarthy,
Más detallesTema 2: Inteligencia computacional y conocimiento
Razonamiento Automático Curso 999 2000 Tema 2: Inteligencia computacional y conocimiento José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Dpto. de Ciencias de la Computación e Inteligencia Artificial
Más detallesAlgoritmos: Exploración de grafos
Algoritmos: Exploración de grafos Alberto Valderruten LFCIA - Departamento de Computación Facultad de Informática Universidad de A Coruña, España www.lfcia.org/alg www.fi.udc.es Contenido Juegos de estrategia
Más detalles(Ficha 2, CASILLA) i. FE(1, A1) = = 1 ii. FE(1, A2) = = 2 iii. FE(5, A3) = = 1
onsidérese la siguiente posición del tablero de parchís con la situación de fichas descrita en el mismo. La posición se describe en la siguiente tabla: Jugador (Ficha 1, SILL) (Ficha 2, SILL) (Ficha 3,
Más detallesTema 3: Demostraciones proposicionales
Razonamiento Automático Curso 2000 200 Tema 3: Demostraciones proposicionales José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad
Más detallesLógica y Programación
Lógica y Programación Diagramas de Decisión Binarios J.-A. Alonso, F.-J. Martín-Mateos, J.-L. Ruiz-Reina Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Lógica y Programación
Más detallesAjedrez. Cómo jugar Autor: Erick López
Ajedrez. Cómo jugar Autor: Erick López 1 Presentación del curso El ajedrez es uno de los deportes más populares del mundo. Si quieres aprender a jugar ajedrez este curso fácil y ameno te será de gran ayuda.
Más detallesMétodos de Inteligencia Artificial
Métodos de Inteligencia Artificial L. Enrique Sucar (INAOE) esucar@inaoep.mx ccc.inaoep.mx/esucar Tecnologías de Información UPAEP Búsqueda Representación Tipos búsquedas: Sin información Con información
Más detallesAlgoritmos de búsqueda
Capítulo 3 Algoritmos de búsqueda 3.1. Introducción Para realizar una búsqueda en el juego del ajedrez, éste, puede ser representado mediante un árbol, en el cual los nodos representan posiciones del tablero
Más detallesUniversidad Nacional de Educación a Distancia Ingeniería Técnica en Informática de Sistemas Introducción a la Inteligencia Artificial (2º curso)
Universidad Nacional de Educación a Distancia Ingeniería Técnica en Informática de Sistemas Introducción a la Inteligencia Artificial (2º curso) Soluciones exámenes junio 2010 Semana 1. Ejercicio 1. (Valoración:
Más detallesInteligencia Artificial Búsqueda entre adversarios
Inteligencia Artificial Búsqueda entre adversarios Primavera 27 profesor: Luigi Ceccaroni Juegos En los entornos multiagente (cooperativos o competitivos), cualquier agente tiene que considerar las acciones
Más detallesÁRBOLES DE JUEGOS. Con - Ciencias 29. Introducción. Nelson Becerra Correa*
Con - 29 ÁRBOLES DE JUEGOS Nelson Becerra Correa* En el presente artículo se hace una descripción sobre los árboles de juegos, presentando los conceptos básicos y reportando los resultados de un trabajo
Más detallesEl método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol
Árboles Las listas enlazadas, pilas y colas son estructuras de datos lineales (es decir, secuencias). Un árbol es una estructura de datos bidimensional no lineal, con propiedades especiales. Los nodos
Más detallesLISP I. Programación recursiva frente a iterativa. Características de la programación recursiva:
LISP I 1 Programación recursiva frente a iterativa Características de la programación recursiva:» Implementación intuitiva y elegante. La traducción de la solución recursiva de un problema (caso base y
Más detallesTema 1: Agentes inteligentes: Representación y razonamiento
Inteligencia Artificial 2 Curso 2000 0 Tema : Agentes inteligentes: Representación y razonamiento José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Francisco J. Martín Mateos Dpto. de Ciencias de la Computación
Más detallesHay tres juegos, que se juegan utilizando las mismas fichas y tablero, pero con distintas estrategias, y complejidad:
Serie 302 del Pacru Idiomas y más información Si esta información no está en su idioma, visite la página web www.pacru.com, seleccione el idioma que quiere e imprima las reglas. En este folleto tiene toda
Más detallesIV Taller de Olimpiadas Matemáticas para Profesores 2014
IV Taller de Olimpiadas Matemáticas para Profesores 2014 Problemas de Estrategias Juan Neyra Faustino Introducción Los problemas de estrategia están relacionados con juegos en los que participan dos jugadores,
Más detallesPROYECTO DOCENTE ASIGNATURA: "Inteligencia Artificial"
PROYECTO DOCENTE ASIGNATURA: "Inteligencia Artificial" Grupo: Clases Teór. Inteligencia Artificial Grupo 1 ING. COMPUTADORES(961083) Titulacion: Grado en Ingeniería Informática-Ingeniería de Computadores
Más detallesAlgoritmos y Estructuras de Datos Curso 06/07. Ejercicios
9..En un problema de backtracking estamos interesados en almacenar de forma explícita el árbol recorrido por el algoritmo. De cada nodo del árbol sólo necesitamos saber un número, que indica el orden en
Más detallesGUÍA BÁSICA DE SCHEME v.4
Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los
Más detallesJuegos. Esquema. Introducción: juegos como búsqueda Decisiones perfectas Decisiones imperfectas Poda α β
Juegos Transparencias IA (F29) M.Marcos, 2002 (Figuras c S.Russell & P.Norvig, 1998) 1 Esquema Introducción: juegos como búsqueda Decisiones perfectas Decisiones imperfectas Poda α β Transparencias IA
Más detallesLa habilidad de jugar es considerada como una distinción de inteligencia. Fácil de crear situaciones complicadas con reglas sencillas.
Capítulo 3 Juegos 3.1 Introducción La habilidad de jugar es considerada como una distinción de inteligencia. Características: Fácil de crear situaciones complicadas con reglas sencillas. Se pueden probar
Más detallesTema 6: Estructuras de datos recursivas
Tema 6: Estructuras de datos recursivas Índice 1 Listas jerárquicas...2 2 Árboles binarios... 4 3 Árboles genéricos...7 4 Referencias...10 1. Listas jerárquicas Las listas tienen la propiedad de la clausura
Más detallesINTRODUCCION A LA INTELIGENCIA ARTIFICIAL
C ASIGNATURA: INTRODUCCION A LA INTELIGENCIA ARTIFICIAL Curso 2009/2010 (Código:532097) 1.OBJETIVOS Esta asignatura comprende los fundamentos necesarios para la formación de aquellos alumnos que hayan
Más detallesIV. Métodos de Búsqueda Estudiaremos los métodos de búsqueda para resolver problema de la IA
IV. Métodos de Búsqueda Estudiaremos los métodos de búsqueda para resolver problema de la IA 1 4. Métodos de Búsqueda Tópicos Métodos de búsqueda Árbol de estado Métodos a ciegas Función evaluadora Métodos
Más detallesLógica y Programación
Lógica y Programación Resolución proposicional Antonia M. Chávez, Agustín Riscos, Carmen Graciani Dpto. Ciencias de la Computacion e Inteligencia Artificial Universidad de Sevilla Introducción Idea básica
Más detallesAgentes que resuelven problemas
Agentes que resuelven problemas 1. Formulación de meta (decidir que estados son objetivo) y del problema (decidir que acciones y estados se van a considerar) 2. Buscar una solución (examinar posibles acciones
Más detallesIII. Búsqueda en un espacio de Estado Estudiaremos la formulación de un problema de la IA como un problema de Búsqueda en un Espacio de Estado
III. Búsqueda en un espacio de Estado Estudiaremos la formulación de un problema de la IA como un problema de Búsqueda en un Espacio de Estado 1 3. Búsqueda en un Espacio de Estado Problema de IA Problema
Más detallesTema 4.- Recursión e iteración
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
Más detallesLenguajes de Programación Programación funcional
Lenguajes de Programación Programación funcional Roberto Bonvallet Departamento de Informática Universidad Técnica Federico Santa María Concepto de función En el paradigma imperativo: Una función es una
Más detallesRESOLUCIÓN DE PROBLEMAS, BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa
RESOLUCIÓN DE PROBLEMAS, BÚSQUEDA Introducción Resolución de Problemas La resolución de problemas es una capacidad que consideramos inteligente Somos capaces de resolver problemas muy diferentes Encontrar
Más detallesINTELIGENCIA ARTIFICIAL 1
Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas Programa del curso INTELIGENCIA ARTIFICIAL 1 INFORMACIÓN DE CURSO Código: 972 Créditos: 4 Área: Categoría: Ciencias
Más detallesJUEGOS DE INICIACIÓN
BIBLIOTECA DE RECURSOS EDUCATIVOS DE AJEDREZ JUEGOS DE INICIACIÓN Movimientos y Captura s. DIEGO ÁLVAREZ ALBA JOSÉ LUIS ÁLVAREZ LUIS JUEGOS DE INICIACION AL AJEDREZ (I). Movimiento y Captura de piezas
Más detallesTema 4: Introducción al Aprendizaje Automático
Introducción a la Ingeniería del Conocimiento Curso 2004 2005 Tema 4: Introducción al Aprendizaje Automático Miguel A. Gutiérrez Naranjo Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad
Más detallesInteligencia Artificial Búsqueda entre adversarios
Inteligencia Artificial Búsqueda entre adversarios 1. [Russell & Norvig 6.3] Considera el juego bipersonal siguiente: El diagrama muestra la posición inicial del tablero. A B 1 2 3 4 El jugador A comienza
Más detalles