SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Inteligencia Artificial
para Videojuegos
Navegación
Resolución de problemas en el espacio de estados
● El problema más habitual es buscar un
camino… no cualquiera, sino el más corto
○ El de menor coste, en tiempo y distancia
○ El agente expresa
así inteligencia, y
una navegación de
lo más creíble
(en general)
Resolución de problemas en el espacio de estados 2
Motivación
● ¡Es un concepto muy potente, que se
puede aplicar a muchos problemas!
Resolución de problemas en el espacio de estados 3
Motivación
● El ajedrez es uno de los primeros dominios
estudiados, sobre todo
en años 50 y 60
○ Juego de información
completa
○ Hasta hace poco
asumíamos que “sólo”
la fuerza bruta no bastaba y se usaban heurísticas
(ahora sin embargo
tenemos el caso...
AlphaZero)
Resolución de problemas en el espacio de estados 4
Hitos históricos
● La clave está en definir el problema así:
○ Configuraciones posibles, empezando por la inicial
○ Operadores posibles, con una función para conocer
los aplicables a una determinada configuración
○ Modelo de transición, función que devuelve la
configuración resultante de aplicar un cierto
operador a una configuración concreta
○ Prueba de objetivo, función que indica si una cierta
configuración es objetivo (pueden serlo varias)
○ Coste del camino, función que asigna un valor
numérico a cada camino (suma de los costes no
negativos de cada paso/transición)
Resolución de problemas en el espacio de estados 5
Problemas en el espacio de estados
STEP COST
PATH COST
Nodo origen = configuración inicial
Nodo destino = configuración objetivo
● En dominios de trabajo, ¿qué es un camino?
○ La configuración inicial, los operadores y el modelo
de transición definen implícitamente un grafo
ponderado no-negativo dirigido con todas las
configuraciones alcanzables (espacio de estados)
○ Un camino en este espacio es cualquier secuencia
de configuraciones conectadas por operadores
Resolución de problemas en el espacio de estados 6
Problemas en el espacio de estados
Conf3
Conf4
Conf5
Conf6
Conf7
camino
op11
op10
op13
op11
op11
op11
op13
* Coste = Coste de la transición de Conf3
a Conf5
+ de Conf5
a Conf7
● El “juego” de la aspiradora
○ Un mundo con 2 casillas, A y B
■ Puede o no “aparecer” polvo
○ Un robot-aspiradora
como NPC (con su IA)
■ Sabe en qué casilla
está y si tiene polvo
■ Puede aspirar,
moverse a la
izquierda o a la
derecha
Resolución de problemas en el espacio de estados 7
Ejemplo
● Para formular el dominio, hay que definir
muy bien el problema
○ Configuraciones, si hay N casillas, hay N
configuraciones posibles del robot x 2N
del polvo
■ Para N=2, son 8 configuraciones distintas
■ La inicial será el robot en A, y polvo en A y B
○ Operadores hay 3, izquierda, derecha y aspirar
○ Modelo de transición, es obvio (moverse hacia fuera
o aspirar sin polvo no tiene efecto alguno)
○ Prueba de objetivo, comprobar que no hay polvo en
ninguna de las N casillas (= este es nuestro
concepto de “tener la casa limpia”)
Resolución de problemas en el espacio de estados 8
Ejemplo
○ Coste del camino, es habitual considerar que cada
transición cuesta 1 y así el coste del camino
coincidirá con el número de pasos del mismo
● En este ejemplo hasta es posible visualizar
el espacio de
búsqueda
completo
○ A menudo
suelen ser
inabarcables,
¡incluso
infinitos!
Resolución de problemas en el espacio de estados 9
Ejemplo
● Busca todos los caminos más
cortos desde un nodo origen a
todos los posibles nodos destino
○ Se usa en Evaluación y Coordinación, y es la base
de “fuerza bruta” de otros algoritmos más prácticos
que se usan en Navegación, que sólo buscan el
camino más corto entre 2 nodos
(esa es la solución al problema)
○ Si existen varios caminos mínimos
entre dos nodos, nos da igual el
que nos devuelva el algoritmo
Resolución de problemas en el espacio de estados 10
Algoritmo de Dijkstra
● Recibe un destino y
explora, dejando rastro
para luego reconstruir el camino más corto
● En cada iteración del algoritmo
○ Se escoge un nodo
actual, con todas sus
conexiones, guardando
registro de todos los
nodos con los que
conecta (y el coste de
conectar), para siguientes iteraciones
Resolución de problemas en el espacio de estados 11
Explicación
● Usa 2 listas, una para nodos abiertos y otra
para nodos cerrados
○ La lista abierta guarda todas las referencias a los
nodos que ha visitado, pero sobre los que no ha
iterado aún. Empieza con el nodo origen (coste 0)
○ La lista cerrada contiene las referencias a los nodos
sobre los que ya se ha iterado. Empieza vacía (∅)
○ Los nodos que no están en ninguna de las dos listas
son nodos no visitados del grafo
● En cada iteración, se elige el nodo abierto
con menor “coste hasta el momento”
○ Y tras procesarlo, se manda a la lista cerrada
Resolución de problemas en el espacio de estados 12
Explicación
● Al llegar a un nodo ya visitado:
○ Si está cerrado, al ser Dijkstra, se puede ignorar
para siempre
○ Si está abierto,
calculamos el
coste hasta este
momento y -sólo si
es menor al que
ya tenía el nodo-
actualizamos
tanto su conexión como su coste… permaneciendo
en la lista abierta, pero con estos dos cambios
Resolución de problemas en el espacio de estados 13
Explicación
● Todo termina al vaciarse la lista abierta
○ Se han considerado todos los nodos alcanzables del
grafo desde el nodo origen y están en lista cerrada
○ Sólo podemos terminar cuando el nodo destino es el
de menor coste de toda la lista abierta y lo
elegimos para iterar
● Luego, se reconstruye
la solución paso a paso
○ Tenemos las conexiones
del destino al origen, y
esa secuencia invertida
ha de ser la solución
Resolución de problemas en el espacio de estados 14
Explicación
● Versión para
buscar sólo
un camino
Resolución de problemas en el espacio de estados 15
Pseudocódigo
Resolución de problemas en el espacio de estados 16
Pseudocódigo
Resolución de problemas en el espacio de estados 17
Pseudocódigo
Resolución de problemas en el espacio de estados 18
Pseudocódigo
* La lista contiene estructuras NodeRecord, con estos métodos:
smallestElement, devuelve la estructura con el menos coste hasta el momento
contains indica si la lista contiene el NodeRecord de ese nodo
find devuelve el NodeRecord de ese nodo
* reverse da la vuelta a la lista
● Se usa una lista simple para recopilar la
solución, cuya implementación da igual
● Las listas abierta y cerrada son críticas,
tienen 4 operaciones que optimizar en la
implementación
○ Añadir un nodo (+=)
○ Eliminar un nodo (-=)
○ Encontrar el nodo más pequeño (smallestElement)
○ Encontrar un nodo en particular (contains y find)
Resolución de problemas en el espacio de estados 19
Estructuras de datos
● Al implementar Connection, procura evitar
hacer cualquier tipo de procesamiento
Resolución de problemas en el espacio de estados 20
Estructuras de datos
* Estos valores se
precalculan en la
generación: cuando
convertimos la
geometría del
entorno a nodos
Tiempo = O(n*m)
Espacio ≤ O(n*m)
donde n son los nodos que están
más cerca que el destino y m la
media de conexiones salientes de
un nodo
● Sólo es práctico para encontrar el camino
más corto a todos los posibles destinos
○ La frontera de la
búsqueda son los
nodos de la lista
abierta
○ A veces se
visita demasiado
Resolución de problemas en el espacio de estados 21
Debilidades
* La línea negra marca la
solución (camino más corto)
* Los nodos visitados que no se
usan en la solución, son el
“relleno”… ¡y suele haber
demasiado relleno!
● ¿Qué guarda la lista abierta de Dijkstra?
A. Todos los nodos iterados
B. Todos los nodos visitados pero no iterados
C. Todos los nodos no visitados
D. Todos los nodos no visitados ni iterados
● Desarrolla tu respuesta (en texto libre)
Resolución de problemas en el espacio de estados 22
Participación
* Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...
23

Contenu connexe

Similaire à Resolución de problemas en el espacio de estados

El algoritmo a (asterisco)
El algoritmo a (asterisco)El algoritmo a (asterisco)
El algoritmo a (asterisco)
Cristina Lopez
 
Circuitos combinacionales
Circuitos combinacionalesCircuitos combinacionales
Circuitos combinacionales
Elmer Mendoza
 
Tema 2 protocolos de encaminamiento en internet
Tema 2  protocolos de encaminamiento en internetTema 2  protocolos de encaminamiento en internet
Tema 2 protocolos de encaminamiento en internet
Ana Bianculli
 
Manual.ioii
Manual.ioiiManual.ioii
Manual.ioii
edgar
 

Similaire à Resolución de problemas en el espacio de estados (20)

Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entorno
 
Tema 2 eficiencia_y_complejidad_grupo_21
Tema 2 eficiencia_y_complejidad_grupo_21Tema 2 eficiencia_y_complejidad_grupo_21
Tema 2 eficiencia_y_complejidad_grupo_21
 
grafosalgoritmosfundamentales-170507070811.pdf
grafosalgoritmosfundamentales-170507070811.pdfgrafosalgoritmosfundamentales-170507070811.pdf
grafosalgoritmosfundamentales-170507070811.pdf
 
Tema 2 eficiencia y complejidad
Tema 2 eficiencia y complejidadTema 2 eficiencia y complejidad
Tema 2 eficiencia y complejidad
 
El algoritmo a (asterisco)
El algoritmo a (asterisco)El algoritmo a (asterisco)
El algoritmo a (asterisco)
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
 
Cuadro comparativo inteligencia artificial
Cuadro comparativo inteligencia artificialCuadro comparativo inteligencia artificial
Cuadro comparativo inteligencia artificial
 
Problema de la ruta mas corta
Problema de la ruta mas cortaProblema de la ruta mas corta
Problema de la ruta mas corta
 
Sistemas inteligentes
Sistemas inteligentesSistemas inteligentes
Sistemas inteligentes
 
IO 2(REDES).pdf
IO 2(REDES).pdfIO 2(REDES).pdf
IO 2(REDES).pdf
 
Circuitos combinacionales
Circuitos combinacionalesCircuitos combinacionales
Circuitos combinacionales
 
Tema 2 protocolos de encaminamiento en internet
Tema 2  protocolos de encaminamiento en internetTema 2  protocolos de encaminamiento en internet
Tema 2 protocolos de encaminamiento en internet
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificial
 
Búsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasBúsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadas
 
Grafos-2021.pdf
Grafos-2021.pdfGrafos-2021.pdf
Grafos-2021.pdf
 
Enfoques.
Enfoques.Enfoques.
Enfoques.
 
6 prob busquinte
6 prob busquinte6 prob busquinte
6 prob busquinte
 
Compuertas lógicas
Compuertas lógicasCompuertas lógicas
Compuertas lógicas
 
Compuertas lógicas
Compuertas lógicasCompuertas lógicas
Compuertas lógicas
 
Manual.ioii
Manual.ioiiManual.ioii
Manual.ioii
 

Plus de Federico Peinado

Plus de Federico Peinado (20)

Herramientas de autoría
Herramientas de autoríaHerramientas de autoría
Herramientas de autoría
 
Interfaz del mundo
Interfaz del mundoInterfaz del mundo
Interfaz del mundo
 
Gestión de la ejecución
Gestión de la ejecuciónGestión de la ejecución
Gestión de la ejecución
 
Acción coordinada
Acción coordinadaAcción coordinada
Acción coordinada
 
Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje natural
 
Puntos de ruta tácticos
Puntos de ruta tácticosPuntos de ruta tácticos
Puntos de ruta tácticos
 
Análisis táctico
Análisis tácticoAnálisis táctico
Análisis táctico
 
Probabilidad y utilidad
Probabilidad y utilidadProbabilidad y utilidad
Probabilidad y utilidad
 
Árbol de comportamiento
Árbol de comportamientoÁrbol de comportamiento
Árbol de comportamiento
 
Reglas y planificación
Reglas y planificaciónReglas y planificación
Reglas y planificación
 
Máquina de estados
Máquina de estadosMáquina de estados
Máquina de estados
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
 
Desplazamiento en grupo
Desplazamiento en grupoDesplazamiento en grupo
Desplazamiento en grupo
 
Percepción
PercepciónPercepción
Percepción
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de dirección
 
Física y animación
Física y animaciónFísica y animación
Física y animación
 
Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)
 
Aplicación según tipología del juego
Aplicación según tipología del juegoAplicación según tipología del juego
Aplicación según tipología del juego
 
Inteligencia Artificial para Videojuegos
Inteligencia Artificial para VideojuegosInteligencia Artificial para Videojuegos
Inteligencia Artificial para Videojuegos
 
Resolutor automático y agente inteligente
Resolutor automático y agente inteligenteResolutor automático y agente inteligente
Resolutor automático y agente inteligente
 

Resolución de problemas en el espacio de estados

  • 2. ● El problema más habitual es buscar un camino… no cualquiera, sino el más corto ○ El de menor coste, en tiempo y distancia ○ El agente expresa así inteligencia, y una navegación de lo más creíble (en general) Resolución de problemas en el espacio de estados 2 Motivación
  • 3. ● ¡Es un concepto muy potente, que se puede aplicar a muchos problemas! Resolución de problemas en el espacio de estados 3 Motivación
  • 4. ● El ajedrez es uno de los primeros dominios estudiados, sobre todo en años 50 y 60 ○ Juego de información completa ○ Hasta hace poco asumíamos que “sólo” la fuerza bruta no bastaba y se usaban heurísticas (ahora sin embargo tenemos el caso... AlphaZero) Resolución de problemas en el espacio de estados 4 Hitos históricos
  • 5. ● La clave está en definir el problema así: ○ Configuraciones posibles, empezando por la inicial ○ Operadores posibles, con una función para conocer los aplicables a una determinada configuración ○ Modelo de transición, función que devuelve la configuración resultante de aplicar un cierto operador a una configuración concreta ○ Prueba de objetivo, función que indica si una cierta configuración es objetivo (pueden serlo varias) ○ Coste del camino, función que asigna un valor numérico a cada camino (suma de los costes no negativos de cada paso/transición) Resolución de problemas en el espacio de estados 5 Problemas en el espacio de estados STEP COST PATH COST Nodo origen = configuración inicial Nodo destino = configuración objetivo
  • 6. ● En dominios de trabajo, ¿qué es un camino? ○ La configuración inicial, los operadores y el modelo de transición definen implícitamente un grafo ponderado no-negativo dirigido con todas las configuraciones alcanzables (espacio de estados) ○ Un camino en este espacio es cualquier secuencia de configuraciones conectadas por operadores Resolución de problemas en el espacio de estados 6 Problemas en el espacio de estados Conf3 Conf4 Conf5 Conf6 Conf7 camino op11 op10 op13 op11 op11 op11 op13 * Coste = Coste de la transición de Conf3 a Conf5 + de Conf5 a Conf7
  • 7. ● El “juego” de la aspiradora ○ Un mundo con 2 casillas, A y B ■ Puede o no “aparecer” polvo ○ Un robot-aspiradora como NPC (con su IA) ■ Sabe en qué casilla está y si tiene polvo ■ Puede aspirar, moverse a la izquierda o a la derecha Resolución de problemas en el espacio de estados 7 Ejemplo
  • 8. ● Para formular el dominio, hay que definir muy bien el problema ○ Configuraciones, si hay N casillas, hay N configuraciones posibles del robot x 2N del polvo ■ Para N=2, son 8 configuraciones distintas ■ La inicial será el robot en A, y polvo en A y B ○ Operadores hay 3, izquierda, derecha y aspirar ○ Modelo de transición, es obvio (moverse hacia fuera o aspirar sin polvo no tiene efecto alguno) ○ Prueba de objetivo, comprobar que no hay polvo en ninguna de las N casillas (= este es nuestro concepto de “tener la casa limpia”) Resolución de problemas en el espacio de estados 8 Ejemplo
  • 9. ○ Coste del camino, es habitual considerar que cada transición cuesta 1 y así el coste del camino coincidirá con el número de pasos del mismo ● En este ejemplo hasta es posible visualizar el espacio de búsqueda completo ○ A menudo suelen ser inabarcables, ¡incluso infinitos! Resolución de problemas en el espacio de estados 9 Ejemplo
  • 10. ● Busca todos los caminos más cortos desde un nodo origen a todos los posibles nodos destino ○ Se usa en Evaluación y Coordinación, y es la base de “fuerza bruta” de otros algoritmos más prácticos que se usan en Navegación, que sólo buscan el camino más corto entre 2 nodos (esa es la solución al problema) ○ Si existen varios caminos mínimos entre dos nodos, nos da igual el que nos devuelva el algoritmo Resolución de problemas en el espacio de estados 10 Algoritmo de Dijkstra
  • 11. ● Recibe un destino y explora, dejando rastro para luego reconstruir el camino más corto ● En cada iteración del algoritmo ○ Se escoge un nodo actual, con todas sus conexiones, guardando registro de todos los nodos con los que conecta (y el coste de conectar), para siguientes iteraciones Resolución de problemas en el espacio de estados 11 Explicación
  • 12. ● Usa 2 listas, una para nodos abiertos y otra para nodos cerrados ○ La lista abierta guarda todas las referencias a los nodos que ha visitado, pero sobre los que no ha iterado aún. Empieza con el nodo origen (coste 0) ○ La lista cerrada contiene las referencias a los nodos sobre los que ya se ha iterado. Empieza vacía (∅) ○ Los nodos que no están en ninguna de las dos listas son nodos no visitados del grafo ● En cada iteración, se elige el nodo abierto con menor “coste hasta el momento” ○ Y tras procesarlo, se manda a la lista cerrada Resolución de problemas en el espacio de estados 12 Explicación
  • 13. ● Al llegar a un nodo ya visitado: ○ Si está cerrado, al ser Dijkstra, se puede ignorar para siempre ○ Si está abierto, calculamos el coste hasta este momento y -sólo si es menor al que ya tenía el nodo- actualizamos tanto su conexión como su coste… permaneciendo en la lista abierta, pero con estos dos cambios Resolución de problemas en el espacio de estados 13 Explicación
  • 14. ● Todo termina al vaciarse la lista abierta ○ Se han considerado todos los nodos alcanzables del grafo desde el nodo origen y están en lista cerrada ○ Sólo podemos terminar cuando el nodo destino es el de menor coste de toda la lista abierta y lo elegimos para iterar ● Luego, se reconstruye la solución paso a paso ○ Tenemos las conexiones del destino al origen, y esa secuencia invertida ha de ser la solución Resolución de problemas en el espacio de estados 14 Explicación
  • 15. ● Versión para buscar sólo un camino Resolución de problemas en el espacio de estados 15 Pseudocódigo
  • 16. Resolución de problemas en el espacio de estados 16 Pseudocódigo
  • 17. Resolución de problemas en el espacio de estados 17 Pseudocódigo
  • 18. Resolución de problemas en el espacio de estados 18 Pseudocódigo * La lista contiene estructuras NodeRecord, con estos métodos: smallestElement, devuelve la estructura con el menos coste hasta el momento contains indica si la lista contiene el NodeRecord de ese nodo find devuelve el NodeRecord de ese nodo * reverse da la vuelta a la lista
  • 19. ● Se usa una lista simple para recopilar la solución, cuya implementación da igual ● Las listas abierta y cerrada son críticas, tienen 4 operaciones que optimizar en la implementación ○ Añadir un nodo (+=) ○ Eliminar un nodo (-=) ○ Encontrar el nodo más pequeño (smallestElement) ○ Encontrar un nodo en particular (contains y find) Resolución de problemas en el espacio de estados 19 Estructuras de datos
  • 20. ● Al implementar Connection, procura evitar hacer cualquier tipo de procesamiento Resolución de problemas en el espacio de estados 20 Estructuras de datos * Estos valores se precalculan en la generación: cuando convertimos la geometría del entorno a nodos Tiempo = O(n*m) Espacio ≤ O(n*m) donde n son los nodos que están más cerca que el destino y m la media de conexiones salientes de un nodo
  • 21. ● Sólo es práctico para encontrar el camino más corto a todos los posibles destinos ○ La frontera de la búsqueda son los nodos de la lista abierta ○ A veces se visita demasiado Resolución de problemas en el espacio de estados 21 Debilidades * La línea negra marca la solución (camino más corto) * Los nodos visitados que no se usan en la solución, son el “relleno”… ¡y suele haber demasiado relleno!
  • 22. ● ¿Qué guarda la lista abierta de Dijkstra? A. Todos los nodos iterados B. Todos los nodos visitados pero no iterados C. Todos los nodos no visitados D. Todos los nodos no visitados ni iterados ● Desarrolla tu respuesta (en texto libre) Resolución de problemas en el espacio de estados 22 Participación
  • 23. * Excepto el contenido multimedia de terceros autores Federico Peinado (2019-2023) www.federicopeinado.es Críticas, dudas, sugerencias... 23