Tema 6: Técnicas heurísticas en juegos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Tema 6: Técnicas heurísticas en juegos"

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 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 detalles

Tema 4: Técnicas heurísticas en juegos

Tema 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 detalles

Tema 7: Búsqueda con adversario (juegos)

Tema 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 detalles

Tema 3: Técnicas básicas de

Tema 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 detalles

Anexo 3: Implementaciones en Lisp

Anexo 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 detalles

Inteligencia Artificial

Inteligencia 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 detalles

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

Bú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 detalles

Tema 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 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 detalles

Tema 6: Técnicas heurísticas en juegos

Tema 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 detalles

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

Resumen 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 detalles

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

ALGORITMO 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 detalles

4ta. 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 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

(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

(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 detalles

Para definir en formalmente el juego se deberá establecer:

Para 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

(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

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é?

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é? 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 detalles

CI-6675 Algoritmos y Estructuras Optimizadas para Videojuegos

CI-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 detalles

JUEGOS. Á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 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 detalles

INTELIGENCIA EN REDES DE COMUNICACIONES

INTELIGENCIA 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 detalles

Búsqueda con adversario

Bú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 detalles

Mé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. 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 detalles

VivaMé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. 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 detalles

Tema 1: Introducción a Lisp

Tema 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 detalles

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

A 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 detalles

Inteligencia Artificial. Integrantes Equipo # 1:

Inteligencia 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 detalles

Tema 4: Búsqueda informada mediante técnicas heurísticas

Tema 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 detalles

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

No 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 detalles

Problemas de búsqueda entre adversarios

Problemas 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 detalles

El Juego como Problema de Búsqueda

El 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 detalles

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

Inteligencia 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 detalles

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

Curso 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 detalles

Hoja de Ejercicios. Temas 1 y 2

Hoja 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 detalles

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

Bú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 detalles

LECCIÓN 8. BÚSQUEDAS CON ÁRBOL

LECCIÓ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 detalles

Fundamentos de Inteligencia Artificial

Fundamentos 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 detalles

Resumen de LISP. Javier Gil Julio, 2011

Resumen 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 detalles

EJEMPLO DE PARTIDA. Pongo en la casilla: 4 El tablero queda como: X

EJEMPLO 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 detalles

Inteligencia Artificial. Oscar Bedoya

Inteligencia 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 detalles

BÚSQUEDA. Vicente Martínez Orga

BÚ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 detalles

Búsqueda Heurística IV

Bú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 detalles

Tema 2: Representación de problemas como espacios de estados

Tema 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 detalles

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

No 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 detalles

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

Juegos 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 detalles

Hoja de Problemas Tema 2 Búsqueda no-informada

Hoja 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 detalles

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

Juegos 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 detalles

Tema 1: Introducción a la Inteligencia Artificial

Tema 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 detalles

INTELIGECIA 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 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 detalles

EJERCICIOS DE GRAFOS DE JUEGO

EJERCICIOS 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 detalles

Manual de Lisp para IACS (Curso 91 92)

Manual 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 detalles

Prá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 /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 detalles

Estado 3.2 (coste = 9)

Estado 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 detalles

Tema 4: Aprendizaje de conceptos

Tema 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 detalles

Tema 7: Aprendizaje de árboles de decisión

Tema 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 detalles

B 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 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 detalles

INTELIGENCIA 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 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 detalles

Curso Extraordinario INTELIGENCIA ARTIFICIAL Y SISTEMAS EXPERTOS

Curso 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 detalles

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

ALGORITMOS 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 detalles

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.

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. 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 detalles

Espacios de estados Técnicas básicas de búsqueda en espacios de estados Búsqueda informada mediante técnicas heurísticas.

Espacios 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 *?

(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 detalles

Apellidos:... Nombre:...

Apellidos:... Nombre:... Apellidos:....................................... Nombre:........................................ Introducción a la Inteligencia Artificial 1 er Parcial de Teoría 12 Noviembre 2004 Ejercicio 1: Responder

Más detalles

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

Ejercicio 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 detalles

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

Ampliació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 detalles

El lenguaje LISP. LISP is an easy language to learn

El 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 detalles

Tema 2: Inteligencia computacional y conocimiento

Tema 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 detalles

Algoritmos: Exploración de grafos

Algoritmos: 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

(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 detalles

Tema 3: Demostraciones proposicionales

Tema 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 detalles

Lógica y Programación

Ló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 detalles

Ajedrez. Cómo jugar Autor: Erick López

Ajedrez. 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 detalles

Métodos de Inteligencia Artificial

Mé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 detalles

Algoritmos de búsqueda

Algoritmos 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 detalles

Universidad 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) 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 detalles

Inteligencia Artificial Búsqueda entre adversarios

Inteligencia 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*

Á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 detalles

El 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

El 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 detalles

LISP I. Programación recursiva frente a iterativa. Características de la programación recursiva:

LISP 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 detalles

Tema 1: Agentes inteligentes: Representación y razonamiento

Tema 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 detalles

Hay tres juegos, que se juegan utilizando las mismas fichas y tablero, pero con distintas estrategias, y complejidad:

Hay 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 detalles

IV Taller de Olimpiadas Matemáticas para Profesores 2014

IV 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 detalles

PROYECTO DOCENTE ASIGNATURA: "Inteligencia Artificial"

PROYECTO 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 detalles

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios

Algoritmos 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 detalles

GUÍA BÁSICA DE SCHEME v.4

GUÍ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 detalles

Juegos. Esquema. Introducción: juegos como búsqueda Decisiones perfectas Decisiones imperfectas Poda α β

Juegos. 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 detalles

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

La 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 detalles

Tema 6: Estructuras de datos recursivas

Tema 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 detalles

INTRODUCCION A LA INTELIGENCIA ARTIFICIAL

INTRODUCCION 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 detalles

IV. 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 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 detalles

Lógica y Programación

Ló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 detalles

Agentes que resuelven problemas

Agentes 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 detalles

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

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 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 detalles

Tema 4.- Recursión e iteración

Tema 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 detalles

Lenguajes de Programación Programación funcional

Lenguajes 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 detalles

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

RESOLUCIÓ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 detalles

INTELIGENCIA ARTIFICIAL 1

INTELIGENCIA 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 detalles

JUEGOS DE INICIACIÓN

JUEGOS 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 detalles

Tema 4: Introducción al Aprendizaje Automático

Tema 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 detalles

Inteligencia Artificial Búsqueda entre adversarios

Inteligencia 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