Inteligencia Artificial

Anuncio
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Inteligencia Artificial
Grupo PLG
Universidad Carlos III de Madrid
IA. 2008
Inteligencia Artificial
1
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Indice
1
2
3
4
Introducción
Búsqueda sin información
Búsqueda en Amplitud
Búsqueda en profundidad
Búsqueda hacia atrás
Búsqueda bidireccional
Búsqueda con costes no uniformes
Otros algoritmos de búsqueda
Análisis de complejidad
Búsqueda heurı́stica
Heurı́stica
Técnica de escalada
Técnicas de mejor-primero
Otros algoritmos
Búsqueda con múltiples agentes
Algoritmo Minimax
Inteligencia Artificial
2
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Indice
1
2
3
4
Introducción
Búsqueda sin información
Búsqueda en Amplitud
Búsqueda en profundidad
Búsqueda hacia atrás
Búsqueda bidireccional
Búsqueda con costes no uniformes
Otros algoritmos de búsqueda
Análisis de complejidad
Búsqueda heurı́stica
Heurı́stica
Técnica de escalada
Técnicas de mejor-primero
Otros algoritmos
Búsqueda con múltiples agentes
Algoritmo Minimax
Inteligencia Artificial
3
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Indice
1
2
3
4
Introducción
Búsqueda sin información
Búsqueda en Amplitud
Búsqueda en profundidad
Búsqueda hacia atrás
Búsqueda bidireccional
Búsqueda con costes no uniformes
Otros algoritmos de búsqueda
Análisis de complejidad
Búsqueda heurı́stica
Heurı́stica
Técnica de escalada
Técnicas de mejor-primero
Otros algoritmos
Búsqueda con múltiples agentes
Algoritmo Minimax
Inteligencia Artificial
4
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Indice
1
2
3
4
Introducción
Búsqueda sin información
Búsqueda en Amplitud
Búsqueda en profundidad
Búsqueda hacia atrás
Búsqueda bidireccional
Búsqueda con costes no uniformes
Otros algoritmos de búsqueda
Análisis de complejidad
Búsqueda heurı́stica
Heurı́stica
Técnica de escalada
Técnicas de mejor-primero
Otros algoritmos
Búsqueda con múltiples agentes
Algoritmo Minimax
Inteligencia Artificial
5
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Indice
1
2
3
4
Introducción
Búsqueda sin información
Búsqueda en Amplitud
Búsqueda en profundidad
Búsqueda hacia atrás
Búsqueda bidireccional
Búsqueda con costes no uniformes
Otros algoritmos de búsqueda
Análisis de complejidad
Búsqueda heurı́stica
Heurı́stica
Técnica de escalada
Técnicas de mejor-primero
Otros algoritmos
Búsqueda con múltiples agentes
Algoritmo Minimax
Inteligencia Artificial
6
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Introducción
Espacio de problemas
Conjunto de estados
Conjunto de operadores
Estado(s) inicial(es)
Meta(s)
Representable por un grafo
Resolución de problemas = búsqueda en el grafo
Normalmente, la búsqueda genera un árbol
Parámetros importantes
Factor de ramificación
Profundidad del árbol de búsqueda
Diferencia con OR: el grafo en OR es explı́cito. En muchos
problemas es imposible
Inteligencia Artificial
7
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Introducción
Espacio de problemas
Conjunto de estados
Conjunto de operadores
Estado(s) inicial(es)
Meta(s)
Representable por un grafo
Resolución de problemas = búsqueda en el grafo
Normalmente, la búsqueda genera un árbol
Parámetros importantes
Factor de ramificación
Profundidad del árbol de búsqueda
Diferencia con OR: el grafo en OR es explı́cito. En muchos
problemas es imposible
Inteligencia Artificial
8
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Introducción
Espacio de problemas
Conjunto de estados
Conjunto de operadores
Estado(s) inicial(es)
Meta(s)
Representable por un grafo
Resolución de problemas = búsqueda en el grafo
Normalmente, la búsqueda genera un árbol
Parámetros importantes
Factor de ramificación
Profundidad del árbol de búsqueda
Diferencia con OR: el grafo en OR es explı́cito. En muchos
problemas es imposible
Inteligencia Artificial
9
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Introducción
Espacio de problemas
Conjunto de estados
Conjunto de operadores
Estado(s) inicial(es)
Meta(s)
Representable por un grafo
Resolución de problemas = búsqueda en el grafo
Normalmente, la búsqueda genera un árbol
Parámetros importantes
Factor de ramificación
Profundidad del árbol de búsqueda
Diferencia con OR: el grafo en OR es explı́cito. En muchos
problemas es imposible
Inteligencia Artificial
10
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Introducción
Espacio de problemas
Conjunto de estados
Conjunto de operadores
Estado(s) inicial(es)
Meta(s)
Representable por un grafo
Resolución de problemas = búsqueda en el grafo
Normalmente, la búsqueda genera un árbol
Parámetros importantes
Factor de ramificación
Profundidad del árbol de búsqueda
Diferencia con OR: el grafo en OR es explı́cito. En muchos
problemas es imposible
Inteligencia Artificial
11
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Ejemplo: 8-Puzzle
Estados
2
3
1
5
6
5
4
7
8
4
1
2
3
2
3
2
3
4
5
6
1
5
6
1
5 6
7
8
4
7
8
4
7
1
1
2
3
4
5
6
7
Inteligencia Artificial
2
3
6
7
8
8
Operadores
8
12
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Ejemplo: Las torres de Hanoi (3,2)
Inteligencia Artificial
13
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Ejemplo: Las torres de Hanoi (3,2)
El factor de
ramificación
(fr = 83 ) es una
propiedad del grafo
de estados
Inteligencia Artificial
14
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Ejemplo: Las torres de Hanoi (3,2)
La profundidad
(p = 3) es una
propiedad del
problema a resolver
Inteligencia Artificial
15
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Ejemplo: Las jarras
Se tienen dos jarras de agua: una de cinco litros de capacidad y
otra de tres. Ninguna de ellas tiene marcas de medición. Se tiene
una bomba que permite llenar las jarras de agua, vaciarlas, y
traspasar contenido de una jarra a otra.
¿Cómo se puede tener exactamente cuatro litros de agua en la
jarra de cinco litros de capacidad?
Inteligencia Artificial
16
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Ejemplo: Las jarras
Espacio de Estados:
conjunto de pares ordenados de enteros (x, y ), de forma que
x = 0, . . . , 5, y = 0, . . . , 3
x representa el número de litros de agua que hay en la jarra de
5 litros de capacidad
y representa el número de litros de agua que hay en la jarra de
3 litros de capacidad
Estado inicial: (0, 0)
Estado meta:
Descripción implı́cita: (4, n), donde n = 0, . . . , 3
Descripción explı́cita: (4, 0), (4, 1), (4, 2), (4, 3)
Inteligencia Artificial
17
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Ejemplo: Las jarras
Operadores
Llenar jarra grande
Llenar jarra pequeña
Vaciar jarra grande
Vaciar jarra pequeña
Verter en grande
Verter en pequeña
Inteligencia Artificial
:
:
:
:
:
:
Si
Si
Si
Si
Si
Si
(x
(y
(x
(y
(y
(x
< 5)→(5, y )
< 3)→(x, 3)
> 0)→(0, y )
> 0)→(x, 0)
> 0)→(x + mı́n{5 − x, y }, y − mı́n{5 − x, y })
> 0)→(x − mı́n{x, 3 − y }, y + mı́n{x, 3 − y })
18
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Explosión combinatoria
Dominio
8-puzzle
15-puzzle
24-puzzle
Número de estados
“ 2 ”˛
N ! ˛
= 181,440
˛
N=3
“2 2 ”˛
˛
N !
= 1013
˛
“ 22 ”˛N=4
˛
N !
= 1025
˛
2
Tiempo (107 nodos/s)
(3n )|n=2 = 9
(3n )|n=4 = 81
(3n )|n=8 = 6561
n
(3 )|n=16 = 4, 3 × 107
(3n )|n=24 = 2, 824 × 101 1
9 × 10−7 segundos
8, 1 × 10−6 segundos
6, 5 × 10−4 segundos
4,3 segundos
0,32 dı́as
106
4, 32 × 1019
0,1 segundos
31.000 años
0.01 segundos
11,5 dı́as
31, 7 × 109 años
N=5
Hanoi
Hanoi
Hanoi
Hanoi
Hanoi
(3,2)
(3,4)
(3,8)
(3,16)
(3,24)
Cubo de Rubik 2 × 2 × 2
Cubo de Rubik 3 × 3 × 3
Inteligencia Artificial
19
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Indice
1
2
3
4
Introducción
Búsqueda sin información
Búsqueda en Amplitud
Búsqueda en profundidad
Búsqueda hacia atrás
Búsqueda bidireccional
Búsqueda con costes no uniformes
Otros algoritmos de búsqueda
Análisis de complejidad
Búsqueda heurı́stica
Heurı́stica
Técnica de escalada
Técnicas de mejor-primero
Otros algoritmos
Búsqueda con múltiples agentes
Algoritmo Minimax
Inteligencia Artificial
20
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en Amplitud
8-Puzzle – Amplitud
1
2
1 2 3
4 5 6
7 8
Inteligencia Artificial
1 2 3
5 6
4 7 8
3
2 3
1 5 6
4 7 8
4
1 2 3
6
5
4 7 8
21
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en Amplitud
8-Puzzle – Amplitud
1
2
1 2 3
4 5 6
7 8
5
1 2 3
5 6
4 7 8
1 2 3
5 6
4 7 8
3
2 3
1 5 6
4 7 8
4
1 2 3
6
5
4 7 8
6
1 2 3
4 5 6
7
8
x
Inteligencia Artificial
22
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en Amplitud
8-Puzzle – Amplitud
1
2
1 2 3
4 5 6
7 8
5
1 2 3
5 6
4 7 8
x
Inteligencia Artificial
6
1 2 3
4 5 6
7
8
1 2 3
5 6
4 7 8
3
2 3
1 5 6
4 7 8
7
1 2 3
5 6
4 7 8
4
1 2 3
6
5
4 7 8
8
3
2
1 5 6
4 7 8
x
23
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en Amplitud
8-Puzzle – Amplitud
1
2
1 2 3
4 5 6
7 8
5
1 2 3
5 6
4 7 8
x
Inteligencia Artificial
6
1 2 3
4 5 6
7
8
1 2 3
5 6
4 7 8
3
4
1 2 3
6
5
4 7 8
2 3
1 5 6
4 7 8
7
1 2 3
5 6
4 7 8
x
8
3
2
1 5 6
4 7 8
9
1 2 3
5 7 6
4
8
10
1
3
5 2 6
4 7 8
11
1 2 3
5 6
4 7 8
12
1 2 3
5 6
4 7 8
x
24
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en Amplitud
8-Puzzle – Amplitud
1
2
1 2 3
4 5 6
7 8
5
1 2 3
5 6
4 7 8
3
6
1 2 3
4 5 6
7
8
7
1 2 3
5 6
4 7 8
x
14
1 2 3
4 5 6
7 8
4
1 2 3
6
5
4 7 8
2 3
1 5 6
4 7 8
x
13
1 2 3
4
6
7 5 8
1 2 3
5 6
4 7 8
8
3
2
1 5 6
4 7 8
9
1 2 3
5 7 6
4
8
10
1
3
5 2 6
4 7 8
11
1 2 3
5 6
4 7 8
12
1 2 3
5 6
4 7 8
x
15
1 2 3
4 5 6
7 8
x
Inteligencia Artificial
25
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en Amplitud
Búsqueda en amplitud
Procedimiento Amplitud (Estado-inicial Estado-Final)
1
Crear lista ABIERTA con el nodo inicial, I, (estado-inicial)
2
EXITO=Falso
3
Hasta que ABIERTA esté vacı́a O EXITO
Quitar de ABIERTA el primer nodo, N
Si N tiene sucesores
Entonces Generar los sucesores de N
Crear punteros desde los sucesores hacia N
Si algún sucesor es nodo meta
Entonces EXITO=Verdadero
Si no Añadir los sucesores al final de ABIERTA
4
Si EXITO
Entonces Solución=camino desde I a N por los punteros
Si no, Solución=fracaso
Inteligencia Artificial
26
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en Amplitud
Caracterı́sticas
Completo: encuentra solución si existe y el factor de
ramificación es finito en cada nodo
Optimalidad: si todos los operadores tienen el mismo coste,
encontrará la solución óptima
Eficiencia: buena si las metas están cercanas
Problema: consume memoria exponencial
Inteligencia Artificial
27
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en profundidad
8-Puzzle – Profundidad
1
2
1 2 3
4 5 6
7 8
Inteligencia Artificial
1 2 3
5 6
4 7 8
3
2 3
1 5 6
4 7 8
4
1 2 3
6
5
4 7 8
28
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en profundidad
8-Puzzle – Profundidad
1
2
1 2 3
4 5 6
7 8
5
1 2 3
5 6
4 7 8
1 2 3
5 6
4 7 8
3
2 3
1 5 6
4 7 8
4
1 2 3
6
5
4 7 8
6
1 2 3
4 5 6
7
8
x
Inteligencia Artificial
29
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en profundidad
8-Puzzle – Profundidad
1
2
1 2 3
4 5 6
7 8
5
1 2 3
5 6
4 7 8
1 2 3
5 6
4 7 8
3
2 3
1 5 6
4 7 8
4
1 2 3
6
5
4 7 8
6
1 2 3
4 5 6
7
8
x
7
1 2 3
4
6
7 5 8
8
1 2 3
4 5 6
7 8
9
1 2 3
4 5 6
7 8
x
Inteligencia Artificial
30
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en profundidad
Búsqueda en profundidad
Procedimiento Profundidad (Estado-inicial,Estado-Final,Profundidad-máxima)
1
Crear lista ABIERTA con el nodo inicial, I, y su profundidad=0
2
EXITO=Falso
3
Hasta que ABIERTA esté vacı́a O EXITO
Quitar de ABIERTA el primer nodo.
Lo llamaremos N y a su profundidad P
Si P < Profundidad-máxima Y N tiene sucesores
Entonces Generar los sucesores de N
Crear punteros desde los sucesores hacia N
Si algún sucesor es el Estado-Final
Entonces EXITO=Verdadero
Si no, Añadir los sucesores al principio de ABIERTA
Asignarles profundidad P+1
4
Si EXITO
Entonces Solución=camino desde I a N por los punteros
Si no, Solución=fracaso
Inteligencia Artificial
31
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en profundidad
Caracterı́sticas
Requiere técnica de retroceso (“backtracking”)
Razones para retroceso:
Se ha llegado al lı́mite de profundidad
Se han estudiado todos los sucesores de un nodo y no se ha
llegado a la solución
Se sabe que el estado no conduce a la solución
Se genera un estado repetido
Completitud: no asegura encontrar la solución
Optimalidad: no asegura encontrar la solución óptima
Eficiencia: bueno cuando metas alejadas de estado inicial, o
problemas de memoria
No es bueno cuando hay ciclos
Inteligencia Artificial
32
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en profundidad
Caracterı́sticas
Requiere técnica de retroceso (“backtracking”)
Razones para retroceso:
Se ha llegado al lı́mite de profundidad
Se han estudiado todos los sucesores de un nodo y no se ha
llegado a la solución
Se sabe que el estado no conduce a la solución
Se genera un estado repetido
Completitud: no asegura encontrar la solución
Optimalidad: no asegura encontrar la solución óptima
Eficiencia: bueno cuando metas alejadas de estado inicial, o
problemas de memoria
No es bueno cuando hay ciclos
Inteligencia Artificial
33
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda en profundidad
Caracterı́sticas
Requiere técnica de retroceso (“backtracking”)
Razones para retroceso:
Se ha llegado al lı́mite de profundidad
Se han estudiado todos los sucesores de un nodo y no se ha
llegado a la solución
Se sabe que el estado no conduce a la solución
Se genera un estado repetido
Completitud: no asegura encontrar la solución
Optimalidad: no asegura encontrar la solución óptima
Eficiencia: bueno cuando metas alejadas de estado inicial, o
problemas de memoria
No es bueno cuando hay ciclos
Inteligencia Artificial
34
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Búsqueda con costes no uniformes
Búsqueda no informada con costes
Dijkstra: amplitud, pero eligiendo aquel nodo que tenga
menor coste desde el nodo raı́z
Branch and bound, B&B
búsqueda (normalmente en profundidad)
cuando encuentra una solución, su coste se convierte en un
lı́mite (superior o inferior) para los siguientes nodos
si un nodo posterior tiene un coste desde el nodo raı́z
mayor/menor (o igual) que el lı́mite, se termina la búsqueda
por él
si se tiene un lı́mite inicial, se puede utilizar la misma idea para
amplitud/Dijkstra
Inteligencia Artificial
35
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Análisis de complejidad
Análisis de complejidad
Si se dispone de:
factor de ramificación medio fr
profundidad del árbol de búsqueda p
¿Cuál serı́a, en el peor de los casos, el número de nodos que
examinarı́a cada técnica?
Unidireccional
Pista:
supóngase que fr=3, y vaya incrementándose la p
calcular de forma inductiva el número de nodos
Inteligencia Artificial
36
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Análisis de complejidad
Análisis de complejidad
Técnica de Búsqueda
Unidireccional
Inteligencia Artificial
Número máximo de nodos
Pp
i
i=0 fr
37
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Análisis de complejidad
Análisis de complejidad
Técnica de Búsqueda
Amplitud
Profundidad
Complejidad
Temporal Espacial
O(fr p )
O(fr p )
p
O(fr )
O(p)
Cuando complejidad en tiempo es igual a la de espacio, se
agota la memoria antes que el tiempo
Inteligencia Artificial
38
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Indice
1
2
3
4
Introducción
Búsqueda sin información
Búsqueda en Amplitud
Búsqueda en profundidad
Búsqueda hacia atrás
Búsqueda bidireccional
Búsqueda con costes no uniformes
Otros algoritmos de búsqueda
Análisis de complejidad
Búsqueda heurı́stica
Heurı́stica
Técnica de escalada
Técnicas de mejor-primero
Otros algoritmos
Búsqueda con múltiples agentes
Algoritmo Minimax
Inteligencia Artificial
39
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Heurı́stica
Heurı́stica
Si se tiene conocimiento perfecto −→ algoritmo exacto
Si no se tiene conocimiento −→ búsqueda sin información
En la mayor parte de los problemas que resuelven los
humanos, se está en posiciones intermedias
Heurı́stica: (del griego “heurisko” (εύρισκω): “yo
encuentro”) conocimiento parcial sobre un problema/dominio
que permite resolver problemas eficientemente en ese
problema/dominio
Representación de las heurı́sticas
funciones h(n)
metareglas
Las funciones heurı́sticas se descubren resolviendo modelos
simplificados del problema real
Inteligencia Artificial
40
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Heurı́stica
Heurı́stica
Si se tiene conocimiento perfecto −→ algoritmo exacto
Si no se tiene conocimiento −→ búsqueda sin información
En la mayor parte de los problemas que resuelven los
humanos, se está en posiciones intermedias
Heurı́stica: (del griego “heurisko” (εύρισκω): “yo
encuentro”) conocimiento parcial sobre un problema/dominio
que permite resolver problemas eficientemente en ese
problema/dominio
Representación de las heurı́sticas
funciones h(n)
metareglas
Las funciones heurı́sticas se descubren resolviendo modelos
simplificados del problema real
Inteligencia Artificial
41
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Heurı́stica
Heurı́stica
Si se tiene conocimiento perfecto −→ algoritmo exacto
Si no se tiene conocimiento −→ búsqueda sin información
En la mayor parte de los problemas que resuelven los
humanos, se está en posiciones intermedias
Heurı́stica: (del griego “heurisko” (εύρισκω): “yo
encuentro”) conocimiento parcial sobre un problema/dominio
que permite resolver problemas eficientemente en ese
problema/dominio
Representación de las heurı́sticas
funciones h(n)
metareglas
Las funciones heurı́sticas se descubren resolviendo modelos
simplificados del problema real
Inteligencia Artificial
42
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Heurı́stica
Heurı́stica
Si se tiene conocimiento perfecto −→ algoritmo exacto
Si no se tiene conocimiento −→ búsqueda sin información
En la mayor parte de los problemas que resuelven los
humanos, se está en posiciones intermedias
Heurı́stica: (del griego “heurisko” (εύρισκω): “yo
encuentro”) conocimiento parcial sobre un problema/dominio
que permite resolver problemas eficientemente en ese
problema/dominio
Representación de las heurı́sticas
funciones h(n)
metareglas
Las funciones heurı́sticas se descubren resolviendo modelos
simplificados del problema real
Inteligencia Artificial
43
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Heurı́stica
Problemas relajados. 8-puzzle
Restricciones:
sólo se puede mover el blanco
el movimiento sólo se puede hacer a casillas adyacentes
horizontal o vertical
en cada paso, se intercambian los contenidos de dos casillas
Relajaciones:
si quitamos las dos primeras restricciones, generamos la
heurı́stica de número de casillas mal colocadas
si quitamos la primera restricción, generamos la heurı́stica de
la distancia de Manhattan
Inteligencia Artificial
44
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Heurı́stica
Problemas relajados. 8-puzzle
Restricciones:
sólo se puede mover el blanco
el movimiento sólo se puede hacer a casillas adyacentes
horizontal o vertical
en cada paso, se intercambian los contenidos de dos casillas
Relajaciones:
si quitamos las dos primeras restricciones, generamos la
heurı́stica de número de casillas mal colocadas
si quitamos la primera restricción, generamos la heurı́stica de
la distancia de Manhattan
Inteligencia Artificial
45
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnica de escalada
Algoritmo de escalada
Procedimiento escalada (Estado-inicial Estado-final)
N=Estado-inicial; EXITO=Falso
Hasta que Camino-Sin-Salida(N) O EXITO
Generar los sucesores de N
SI algún sucesor es Estado-final
ENTONCES EXITO=Verdadero
SI NO, Evaluar cada nodo con la función de evaluación, f (n)
N=mejor sucesor
Si EXITO
Entonces Solución=camino desde nodo del Estado-inicial
al nodo N por los punteros
Si no, Solución=fracaso
Inteligencia Artificial
46
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnica de escalada
8-Puzzle – Búsqueda en escalada
1
2
1 2 3
4 5 6
7 8
Inteligencia Artificial
1 2 3
5 6
4 7 8
3
2 3
1 5 6
4 7 8
4
1 2 3
6
5
4 7 8
47
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnica de escalada
8-Puzzle – Búsqueda en escalada
1
5
2
1 2 3
4 5 6
6
7 8
Inteligencia Artificial
4
1 2 3
5 6
4 7 8
3
2 3
1 5 6
4 7 8
4
1 2 3
4 5
6
4 7 8
48
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnica de escalada
8-Puzzle – Búsqueda en escalada
1
5
2
1 2 3
4 5 6
6
7 8
5
1 2 3
5 6
4 7 8
4
1 2 3
5 6
4 7 8
3
2 3
1 5 6
4 7 8
4
1 2 3
4 5
6
4 7 8
6
1 2 3
7 4 5 6
7
8
x
Inteligencia Artificial
49
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnica de escalada
8-Puzzle – Búsqueda en escalada
1 2 3
5 6
5
4 7 8
1
2
1 2 3
4 5 6
6
7 8
4
3
2 3
1 5 6
4 7 8
4
1 2 3
4 5
6
4 7 8
6
1 2 3
7 4 5 6
7
8
5
1 2 3
5 6
4 7 8
x
7
1 2 3
6
6 4
7 5 8
Inteligencia Artificial
8
1 2 3
9 4 5 6
7 8
9
1 2 3
6 4 5 6
7 8
50
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnica de escalada
Caracterı́sticas
Problemas de los métodos avariciosos
Función Objetivo
Máximos (o mı́nimos) locales: pico que es más alto que
cada uno de sus estados vecinos, pero más bajo que el máximo
global
Mesetas: zona del espacio de estados con función de
evaluación plana
Crestas: zona del espacio de estados con varios máximos
(mı́nimos) locales
Inteligencia Artificial
Máximo global
Máximo Local
Terraza
Crestas
Meseta
Espacio de
Estados
Unidimensional
51
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnica de escalada
Caracterı́sticas
Soluciones
Retroceso
Dar más de un paso
Reinicio aleatorio
Método local
Completitud: no tiene porqué encontrar la solución
Admisibilidad: no siendo completo, aún menos será admisible
Eficiencia: rápido y útil si la función es monótona
(de)creciente
Inteligencia Artificial
52
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Técnicas de mejor primero
Procedimiento Mejor-primero (Estado-inicial Estado-final)
Crear grafo de búsqueda G , con el nodo inicial, I (Estado-inicial)
ABIERTA=I , CERRADA=Vacı́o, EXITO=Falso
Hasta que ABIERTA esté vacı́a O EXITO
Quitar el primer nodo de ABIERTA, N y meterlo en CERRADA
SI N es Estado-final ENTONCES EXITO=Verdadero
SI NO Expandir N, generando el conjunto S de sucesores de N,
que no son antecesores de N en el grafo
Generar un nodo en G por cada s de S
Establecer un puntero a N desde aquellos s de S que no estuvieran ya en G
Añadirlos a ABIERTA
Para cada s de S que estuviera ya en ABIERTA o CERRADA
decidir si redirigir o no sus punteros hacia N
Para cada s de S que estuviera ya en CERRADA
decidir si redirigir o no los punteros de los nodos en sus subárboles
Reordenar ABIERTA según f (n)
Si EXITO Entonces Solución=camino desde I a N a través de los punteros de G
Si no Solución=Fracaso
Inteligencia Artificial
53
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
A∗ (Hart, Nilsson y Rafael, 1968)
Función de ordenación de nodos: f (n) = g (n) + h(n)
f (n): función de evaluación
g (n): función de coste de ir desde el nodo inicial al nodo n
h(n): función heurı́stica que mide la distancia estimada desde
n a algún nodo meta
g (n) se calcula como la suma de los costes de los arcos
recorridos, k(ni , nj )
Los valores reales sólo se pueden conocer al final de la
búsqueda
f ∗ (n): coste real para ir desde el nodo inicial a algún nodo
meta a través de n
g ∗ (n): coste real para ir desde el nodo inicial al nodo n
h∗ (n): coste real para ir desde el nodo n a algún nodo meta
Inteligencia Artificial
54
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Definición de términos
g(2)=200
k(1,2)=200
1
2
k(2,6)=40
h(2)=30
Inteligencia Artificial
h(6)=40
5
k(1,4)=40
g(4)=40
g(6)=200+40=240
6
4
h(4)=35
55
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Ejemplo A∗
30
2
40
200
30
150
1
3
10
60
40
50
200
5
0
5
4
35
Inteligencia Artificial
40
6
200
56
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Ejemplo A∗
1
200
2
230
Inteligencia Artificial
40
60
200
30
3
70
60
40
4
10
75
35
57
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Ejemplo A∗
1
200
2
230
200
30
40
60
150
3
70
60
40
4
10
75
35
200
260
5
260
Inteligencia Artificial
0
58
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Ejemplo A∗
1
200
2 195
225 30
40
60
150
3
55
45
10
200
240
Inteligencia Artificial
40
5
4
75
35
200
5 240
0
59
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Ejemplo A∗
1
200
2 195
225
30
40
60
150
3
55
45
10
40
5
4
75
35
30
40
200
200
235
6
275
Inteligencia Artificial
40
225
5 225
0
60
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Caracterı́sticas
Completitud: si existe solución, la encuentra
Admisibilidad: si hay una solución óptima, la encuentra si
el número de sucesores es finito para cada nodo,
k(ni , nj ) > > 0 en cada arco, y
La función h(n) es admisible: h(n) ≤ h∗ (n) ∀n
Inteligencia Artificial
61
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Consideraciones sobre la heurı́stica
Si h1 (n) <= h2 (n)∀n, h2 (n) está más informada que h1 (n) y
servirá para expandir menos nodos
Ejemplo: distancia de Manhattan está más informada que
número de casillas mal colocadas (problema de Manhattan es
menos relajado que el del número de casillas)
Extremos
h(n) = 0 para cada nodo: no se tiene información (Dijkstra)
h(n) = h∗ (n) para cada nodo: se tiene información perfecta
No tiene sentido dedicar más coste computacional a calcular
una buena h(n) que a realizar la búsqueda equivalente:
equilibrio
Inteligencia Artificial
62
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Técnicas mejor-primero
No informadas:
Búsqueda en amplitud: f (n) = profundidad(n)
Dijkstra: f (n) = g (n)
Informadas (heurı́sticas):
A, A∗ , IDA∗ , . . . : f (n) = g (n) + h(n)
Ponderadas: f (n) = g (n) + ωh(n), ω > 1
Es completo, pero no es admisible
La solución óptima tiene un coste menor o igual que (1 + ω)
veces la generada
Inteligencia Artificial
63
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
IDA∗ (Korf, 1985)
Procedimiento IDA∗ (Estado-inicial Estado-final)
EXITO=Falso
η = h(s)
Mientras que EXITO=Falso
EXITO=Profundidad (Estado-inicial,η)
η = mı́n {f (i)} = mı́n {g (i) + h(i)}
i=1,n
i=1,n
Solución=camino desde nodo del Estado-inicial
al Estado-final por los punteros
Profundidad (Estado-inicial,η)
Expande todos los nodos cuyo coste f (n) no excede η
Inteligencia Artificial
64
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Técnicas de mejor-primero
Caracterı́sticas
Completitud: es completo
Admisibilidad: es admisible
Eficiencia: la complejidad de tiempo es exponencial, pero la
complejidad de espacio es lineal en la profundidad del árbol de
búsqueda
Aunque pudiera parecer lo contrario, el número de
re-expansiones es sólo mayor en un pequeño factor que el
número de expansiones de los algoritmos de el mejor primero
Fue el primer algoritmo que resolvió óptimamente 100 casos
generados aleatoriamente en el 15–Puzzle
Inteligencia Artificial
65
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Indice
1
2
3
4
Introducción
Búsqueda sin información
Búsqueda en Amplitud
Búsqueda en profundidad
Búsqueda hacia atrás
Búsqueda bidireccional
Búsqueda con costes no uniformes
Otros algoritmos de búsqueda
Análisis de complejidad
Búsqueda heurı́stica
Heurı́stica
Técnica de escalada
Técnicas de mejor-primero
Otros algoritmos
Búsqueda con múltiples agentes
Algoritmo Minimax
Inteligencia Artificial
66
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Caracterı́sticas de los problemas
Suma nula: lo que gana uno, lo pierde el otro
Dos agentes (se puede generalizar, Maxn )
Información completa: se conoce en cada momento el
estado completo del juego
Deterministas o de información perfecta: no entra en juego
el azar (se puede generalizar)
Alternados: las decisiones de cada agente se toman de forma
alternada
Inteligencia Artificial
67
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Algoritmo Minimax
Función de evaluación perfecta
f*(n)=
2
7
8
Problema: no se conoce dicha función
Inteligencia Artificial
68
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Algoritmo Minimax
Función de evaluación perfecta
f*(n)=
2
7
8
Problema: no se conoce dicha función
Inteligencia Artificial
69
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Algoritmo Minimax
Búsqueda completa
0
m
M
Nodos hojas: ganamos (M=∞), perdemos (m=−∞) o
empatamos (0)
Problema: es intratable; no se puede realizar en un tiempo
razonable
Inteligencia Artificial
70
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Algoritmo Minimax
Búsqueda completa
0
m
M
Nodos hojas: ganamos (M=∞), perdemos (m=−∞) o
empatamos (0)
Problema: es intratable; no se puede realizar en un tiempo
razonable
Inteligencia Artificial
71
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Algoritmo Minimax
M
p
max
Inteligencia Artificial
=3
72
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Algoritmo Minimax
M
p
max
f(n)=
Inteligencia Artificial
3
4
m 10 12
3
-3
5
20
-4
=3
-2
73
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Algoritmo Minimax
4
MAX
10
-3
12
20
-2
M
p
max
f(n)=
Inteligencia Artificial
3
4
m 10 12
3
-3
5
20
-4
=3
-2
74
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Algoritmo Minimax
-3
4
MIN
4
MAX
10
-2
-3
12
20
-2
M
p
max
f(n)=
Inteligencia Artificial
3
4
m 10 12
3
-3
5
20
-4
=3
-2
75
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Algoritmo Minimax
4
-3
4
MIN
4
MAX
10
-2
-3
12
20
-2
M
p
max
f(n)=
Inteligencia Artificial
3
4
m 10 12
3
-3
5
20
-4
=3
-2
76
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Procedimiento Minimax
Procedimiento Minimax (Situación Profundidad)
SI Profundidad = pmax
ENTONCES devolver evaluación (Situación)
SI NO SI ganadora (Situación)
ENTONCES devolver + ∞
SI NO SI perdedora (Situación)
ENTONCES devolver - ∞
SI NO SI empate (Situación)
ENTONCES devolver 0
SI NO
S = sucesores (Situación)
L = lista de llamadas al MINIMAX (Si ∈ S, Profundidad + 1)
SI nivel-max (Profundidad)
ENTONCES devolver max (L)
SI NO devolver min (L)
Inteligencia Artificial
77
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Cálculo del valor de cada nodo
8
+∞
>
>
>
>
−∞
>
>
<
0
f (n) =
fev (n)
>
>
>
>
>
> máxSi ∈S(n) f (Si )
:
mı́nSi ∈S(n) f (Si )
si
si
si
si
si
si
n
n
n
p
n
n
es una situación ganadora para computadora
es una situación perdedora para computadora
es una situación de empate
= Profundidad máxima
es nodo max y p < pmax
es nodo min y p < pmax
Negamax

f (n) =
Inteligencia Artificial
fev (n)
máx(−f (S1 ), ..., −f (Sd ))
si d = 0
si d > 0
78
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Ejemplo en el tic-tac-toe
X
X
X
X X
X
X
1
X
X
X
X
X
4−2=2
4−2=2
Inteligencia Artificial
X
X
4−2=2
X
X
3−2=1
X
X
5−2=3
X
3−2=1
79
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Ejemplo en el tic-tac-toe
X
X
X
X X
X
X
0
1
X X
4−3=1
Inteligencia Artificial
X X
4−3=1
X X
4−3=1
X X
3−3=0
X X
4−3=1
X X
3−3=0
80
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Algoritmo Minimax
Ejemplo en el tic-tac-toe
X
X
X
X X
X
0
1
X
X
4−2=2
Inteligencia Artificial
X
X
4−2=2
1
X
X
4−2=2
X
X
4−2=2
X
X
4−2=2
X
X
X
3−2=1
81
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Poda Alfa-beta
Nodos max: se utiliza el parámetro α para guardar el valor
máximo de los sucesores encontrado hasta el momento.
α0 = −∞
Nodos min: se utiliza el parámetro β para guardar el valor
mı́nimo de los sucesores encontrado hasta el momento.
β0 = +∞
Poda en los nodos MAX:
αp ≥ βp−1
Poda en los nodos MIN:
βp ≤ αp−1
Inteligencia Artificial
82
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Poda en los nodos MIN
MAX
MIN
α= 4
β= 6
MAX
Inteligencia Artificial
83
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Poda en los nodos MIN
α= 4
MAX
MIN
β= 6
3
MAX
Inteligencia Artificial
84
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Poda en los nodos MIN
MAX
α= 4
MIN
β= 6 / 3
β
hijo
<= α padre
3
MAX
Inteligencia Artificial
85
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Poda en los nodos MIN
MAX
α= 4
MIN
β= 6 / 3
β
hijo
<= α padre
3
MAX
Inteligencia Artificial
86
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Poda en los nodos MIN
α= 4
MAX
<=3
MIN
β= 6 / 3
β
hijo
<= α padre
3
MAX
Inteligencia Artificial
87
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Poda en los nodos MIN
α= 4
MAX
α= max{4,<=3}=4
<=3
MIN
β= 6 / 3
β
hijo
<= α padre
3
MAX
Inteligencia Artificial
88
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Algoritmo Alfa-beta
Procedimiento Alfa-Beta (Situación Alfa Beta Profundidad)
SI Situación está considerada como empate, Devolver 0
SI Situación es ganadora, Devolver mayor-numero
SI Situación es perdedora, Devolver menor-numero
SI Profundidad = Profundidad-maxima, Devolver evaluacion (Situación)
SI nivel-max-p
para todo si sucesor de Situación y Alfa < Beta
Alfa-beta = ALFA-BETA(si ,Alfa,Beta,Profundidad+1)
Alfa = max(Alfa,Alfa-beta)
Devolver Alfa
SI NO
para todo si sucesor de Situación y Beta > Alfa
Alfa-beta = ALFA-BETA(si ,Alfa,Beta,Profundidad+1)
Beta = min(Beta,Alfa-beta)
Devolver Beta
Inteligencia Artificial
89
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Ejemplo del alfa-beta
1
3
2
5
7
6
8
4
9
10
11
12 13 14
15 16
17 18
19
20 21 22 23
24 25
26 27 28
3
6
6
4
20 1 −3 10
8
10 1
5
Inteligencia Artificial
4
9
7
5
−5
90
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Ejemplo del alfa-beta
5
a=m
b=M
m
2 a=
b=M / 5
5
a=m 5
b=M
3
a=m 12
b=M
3
Inteligencia Artificial
a=m
b=M
m/5
1 a=
b=M
3
4
6
a=m / 3 / 5
b=M
5
a= 3 13
b=M
5
4
a=5 14
b=M
4
a=m
b=5
6 a=m / 6
b=5
6
a=m 15
b=5
6
a6 >= b
2
Poda
91
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Ejemplo del alfa-beta
a=m / 5
1 b=M
a=m
b=M
5
5
a=5
b=M
2
a=5
b=M / 7 / 5
3
4
7
5
a=5 7
b=M
6
a=5 17
b=M
6
Inteligencia Artificial
7
a=6 18
b=M
7
a=5 / 6 / 7 a=5
b=M
b=7
4
8
b3 <= a
1
Poda
a=5 19
b=7
4
92
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Ejemplo del alfa-beta
a=m / 5 / 8
1 b=M
a=m
b=M
5
2
5
8
3
a=5
b=M
8
a=5 10 a=5 / 8
b=M
b=M
8
a=5 24
b=M
8
Inteligencia Artificial
5
a=8 25
b=M
5
4
a=5
b=M / 8
10
a=5
b=8
11 a=5 / 10
b=8
10
a=5
b=8
26
10
a >= b
11
4
93
Introducción
Búsqueda sin información
Búsqueda heurı́stica
Búsqueda con múltiples agentes
Poda Alfa-beta
Estado de la cuestión en juegos de dos jugadores
Ajedrez: HiTech, Deep Thought-Blue, Fritz
Backgammon: NeuroGammon
Damas: Chinook
Othello: Logistello
Juegos resueltos: Tic-Tac-Toe, Cuatro en Raya, Qubic,
Go-Moku, Damas (oficialmente desde 2007), . . .
IA en juegos actuales: estrategia
Inteligencia Artificial
94
Descargar