Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UNIDAD 4
BÚSQUEDA Y SATISFACCIÓN DE
RESTRICCIONES
_________________________________________________________________________
92
Inteligencia Artificial
UNIDAD 4
La Inteligencia Artificial ha tenido siempre como objetivo, a más o menos largo plazo, la
resolución de problemas. La utilización de procedimientos de búsqueda, primero más
directos y luego con técnicas heurísticas más sofisticadas, ha sido uno de los principales
campos de esta ciencia [5].
1. Determinar una serie de objetivos o metas que se desean alcanzar. Estos objetivos
pueden ser múltiples (restricciones de tiempo, de costo, etc.) o simples (alcanzar
un estado final).
_________________________________________________________________________
93
Inteligencia Artificial
No hay que perder de vista, aunque los métodos de búsqueda se reduzcan en muchos
casos a meros algoritmos matemáticos, que lo que se persigue desde el punto de vista de
la Inteligencia Artificial es entender el problema que se trata de resolver, analizar sus
posibles soluciones y las consecuencias de buscar una solución por un camino u otro. No
se trata tanto de encontrar una solución final óptima o al menos convincente como de
haber ganado en el conocimiento de un problema que se puede aplicar a una situación
real.
Aunque hoy día tal y como están implementados los métodos de búsqueda no reflejen la
forma en la que los seres humanos resolvemos los problemas, no dejan de ser estrategias
muy eficientes y probadas, y siempre han tenido su lugar dentro de la Inteligencia
Artificial.
Espacio de estados
Cuando alguien se plantea resolver un problema, ya sea por ejemplo un juego simple
como el “tres en raya” o alguno más complejo, como el ajedrez o el backgammon,
tenemos al menos mentalmente una representación del espacio en el que se va a
desarrollar el mismo, es decir una imagen gráfica o un mapa del terreno, del tablero, en el
que va tener lugar la estrategia de solución. Para su resolución computacional, el primer
paso es buscar una estructura de datos que capture lo esencial de ese juego o problema,
que refleje con propiedad la distribución de los elementos en un espacio de situaciones o
posiciones posibles.
Se denomina espacio inicial aquel del que partimos, y que refleja la estructura que
subyace en el problema. Por ejemplo, para el juego del “tres en raya” sería una matriz
cuadrada de 3x3 posiciones, inicialmente vacías (Véase anexo Tres en Raya).
Desde cualquier estado se pueden ampliar una serie de operadores que modifican el
estado actual para llevar al sistema a un nuevo estado. Por ejemplo, cuando un jugador
coloca una ficha en el tablero. En nuestra representación computacional, esto sería
equivalente a rellenar una celda de la matriz con X(1) o O(0) según el jugador que haya
movido la pieza. En esta representación al aplicar los operadores a un determinado estado
producen un único nuevo estado.
_________________________________________________________________________
94
Inteligencia Artificial
Esta traza del costo o función de costo se denota habitualmente con la letra g. Permite
comparar distintos algoritmos de resolución tanto por la solución obtenida como por la
cantidad de la misma en términos de costo asociado.
En algunos problemas como el del ejemplo del juego de “tres en raya”, el espacio de
búsqueda es limitado, porque también lo está el espacio de estados posibles y de
soluciones. Pero en muchos problemas del mundo real el espacio de búsqueda no está
acotado, e incluso puede alcanzar dimensiones muy grandes que exijan algoritmos que
puedan escalarse para tratar espacios muy extensos.
Hay otros aspectos sobre el funcionamiento de los algoritmos de búsqueda que se pueden
tener en cuenta. Por ejemplo:
_________________________________________________________________________
95
Inteligencia Artificial
Un grafo por lo tanto es un conjunto de nodos (estados) y arcos que unen esos nodos
figura 18. El recorrido entre dos nodos consecutivos a través de un arco define un camino.
Este camino puede ser cerrado si el último nodo coincide con el primero y abierto si no
coinciden. Si entre dos nodos existe al menos un camino, es un grafo conexo, y si no
contiene ciclos, es acíclico.
H
Nodos Arcos
A B C
E G J
D F
K L
Los grafos pueden ser dirigidos, cuando la secuencia entre dos nodos (P, Q) se considera
diferente de la que recorre los nodos en el orden (Q, P); en este caso el origen es el nodo
predecesor o padre, y el destino el sucesor o nodo hijo; o pueden ser no dirigidos, en el
caso contrario. Expandir un nodo es obtener todos sus posibles sucesores en el grafo de
búsqueda a través de la aplicación de todos los operadores disponibles relacionados. Un
nodo o estado es “cerrado” si ya ha sido expandido, y esta “abierto” si todavía queda por
aplicar algún operador. A estos últimos también se les denomina margen o frontera.
_________________________________________________________________________
96
Inteligencia Artificial
Aplicando esta representación al juego de “tres en raya”, cada nodo es un estado o valor
de la matriz; cada arco apunta la operación que lleva de un valor de la matriz a otro, por
ejemplo, cuando el jugador X mueve un 1 de una celda a otra celda válida. Los nodos
terminales son aquellos que dan una configuración ganadora.
Otro ejemplo sería la representación arbórea de un laberinto, donde cada nodo sería una
bifurcación, salida o pared al final de un camino, y cada arco un camino. El problema
consiste en encontrar el camino más corto a una salida, nodo final.
Problemas de la vida real que se pueden plantear y resolver como espacios de estados
[21]:
_________________________________________________________________________
97
Inteligencia Artificial
Inicio
25 5
5
5
25 25 5 5
25
10
50
30 5
5 25 15
5
25,5 25 35 5 25 20
25
40 5
25
25 45
25
5
Éxito
Figura 19. Gráfica de estado para una máquina expendedora de bebidas gaseosas que acepta
monedas de 25 y 5 centavos.
Los estados de inicio y éxito se dibujan como círculos dobles para facilitar su identificación.
Los estados se muestran como círculos y las transiciones posibles a otros estados se
muestran como flechas. Observe que esta gráfica es una gráfica con pesos, donde éstos
son las monedas que pueden entrar a la máquina en cada estado.
A esta gráfica también se le llama gráfica de máquina de estado finito, porque describe el
número finito de estados de una máquina. El término máquina se usa en un sentido muy
general, puede ser un objeto real, un algoritmo, un concepto, etc. Asociadas con cada
estado hay acciones que la conducen a otro. En cualquier momento, la máquina puede
estar en un solo estado. A medida que acepta la entrada a un estado, pasa de ese estado
a otro. Si se dan las entradas correctas, pasará del inicio al éxito o estado final. Si un
estado no está diseñado para aceptar cierta entrada, la máquina se detendrá en él. Por
ejemplo, la máquina de bebidas gaseosas no tiene la capacidad de aceptar monedas de
diez centavos, si alguien pone una de estas monedas en la máquina, la respuesta no está
definida. Un buen diseño incluirá la posibilidad de entradas no válidas para cada estado y
proporcionará transiciones a un estado de error. Este es diseñado para proporcionar
mensajes de error apropiados y llevar a cabo cualquier acción necesaria.
_________________________________________________________________________
98
Inteligencia Artificial
Otro ejemplo de espacio de problema sucede en el problema clásico del mono y los
plátanos que se muestra en la siguiente figura 20.
El problema consiste en dar instrucciones a un mono para decirle cómo alcanzar algunos
plátanos que cuelgan del techo. Como los frutos están fuera de su alcance, pero dentro
del cuarto hay un sofá y una escalera. La configuración inicial típica es la del mono en el
sofá. Las instrucciones pueden ser:
El sofá no
El mono no
está bajo los
está en la
plátanos
Si el mono no está en escalera
la escalera
Si la escalera esta
bajo los plátanos Mover la escalera
Si la
escalera
está bajo los
plátanos
Trepar por la
escalera
Éxito,
Mono en el mono tiene
la escalera los
Agarrar plátanos plátanos
Figura 20. El espacio de estado para el problema del mono y los plátanos.
Las instrucciones variarán de acuerdo con las posiciones iniciales del mono, el sofá la
escalera. Como hay varios estados iniciales, no se muestra aquí el doble círculo especial
de inicio. Por ejemplo, otro estado de inicio posible es con el mono en el sofá debajo de
los plátanos, de esta manera, el mono tendrá entonces que hacer el sillón a un lado antes
de poner la escalera debajo de los plátanos. En el estado inicial más simple, el mono ya se
encuentra en la escalera debajo de los plátanos.
Aunque este problema parece obvio para un ser humano, requiere una considerable
cantidad de razonamiento. Una aplicación práctica de un sistema de razonamiento como
_________________________________________________________________________
99
Inteligencia Artificial
Determinismo
Algoritmo Determinístico
Definición
10
Un método de razonamiento basado en que cada restricción del problema puede ser considerada verdadera
o falsa. La dicotomía verdadero/falso, una vez aplicada a cada restricción del problema, provee bases para la
ramificación bajo la forma de árboles decisionales. Aristóteles propuso una lógica con dos valores. La
matemática de la lógica de dos valores, sirvió como base durante muchos años para la mayoría de las
estructuras de control en lenguajes de programación.
_________________________________________________________________________
100
Inteligencia Artificial
Otro ejemplo puede encontrarse en los problemas NP-completos dentro de esta categoría
puede encontrarse la mayoría de los problemas prácticos, este tipo de problemas puede
resolverse rápidamente empleando de forma masiva y paralela una Máquina de Turing no
determinística, pero no se ha encontrado aún un algoritmo eficientes para esta tarea, al
menos ahora sólo encuentran soluciones aproximadas en casos especiales.
Algoritmo no Determinístico
11
Es el encargado de efectuar los pagos y retirar las apuestas.
_________________________________________________________________________
101
Inteligencia Artificial
Aunque los programas reales rara vez son puramente determinísticos, es más fácil que los
seres humanos así como otros programas determinar sobre la esencia de lo que realmente
son. Por esta razón, la mayoría de los lenguajes de programación y especialmente
aquellos que entran dentro de la categoría de programación funcional son lenguajes que
hacen un esfuerzo en prevenir eventos que se ejecutan sin control. Por esta razón este
tipo de restricciones fuerzan el carácter determinístico por esta razón a los algoritmos
determinísticos se les denomina purely functional.
_________________________________________________________________________
102
Inteligencia Artificial
Se van a examinar técnicas básicas que se utilizan para resolver problemas de búsqueda
en el ámbito de la Inteligencia Artificial, dentro de la búsqueda por fuerza bruta o a ciegas
es la que no cuenta con información a priori que la dirija en su secuencia de acciones para
la consecución del objetivo final. Es decir, realiza una búsqueda exhaustiva.
Sin embargo, esta estrategia puede ser muy ineficiente ya que el algoritmo puede
dedicarse a recorrer un camino demasiado largo que no conduzca a ninguna solución, o
meterse en bucles infinitos. Por eso el algoritmo de búsqueda en profundidad no es
completo ni óptimo.
1. Crear una lista de nodos e inicializarla con el nodo raíz (estado inicial). Esta lista se
maneja como una pila LIFO (last-in first-out).
2. Lazo:
2.1. Si la lista esta vacía, salir.
2.4. Para cada hijo del nodo actual, expandirlo y añadir todos sus hijos
como nuevos nodos al principio de la cola.
_________________________________________________________________________
103
Inteligencia Artificial
A B C
E G J
D F
K L
HADKLEBFCGJ
Debería establecerse un límite de nivel de exploración para acortar la longitud real del
camino de la solución. Esta estrategia se denomina búsqueda limitada por
profundidad. Se impone a la profundidad máxima de un recorrido (lp), que debe ser
estimada en cada paso. Esta variante tiene la ventaja de que en general es completa
(excepto para límites muy pequeños) aunque no es óptima.
_________________________________________________________________________
104
Inteligencia Artificial
H
A
D
K
L
B
F
C
G
HADKLBFCG
La idea es generar varias trayectorias de una determinada longitud antes de crear una
trayectoria más larga.
_________________________________________________________________________
105
Inteligencia Artificial
1. Crear una lista de nodos e inicializarla con el nodo raíz (estado inicial). Esta
lista se maneja como una cola FIFO (first-in-first-out).
2. Lazo:
2.1. Si la lista está vacía, terminar.
2.4 Expandir el nodo actual y añadir todos sus hijos como nuevos
nodos al final de la cola.
A B C
E G J
D F
K L
_________________________________________________________________________
106
Inteligencia Artificial
En éste último paso se comprobaría que el primer nodo de la lista es uno de los nodos
solución. Es decir, los nodos recorridos serian los representados en la diagonal:
HABCDEFGJKL
Por lo tanto, al llegar al nodo G se terminaría el algoritmo dando esa solución. Como
puede observar, el nodo L, la otra meta, sería el último en alcanzarse.
HBFCGJAEDKL
De esta forma se llega a la solución de forma mucho más eficiente. En este ejemplo se
encontraría el nodo G a la quinta iteración.
Este método tiene complejidad exponencial tanto temporal como espacial. La complejidad
temporal depende del factor de ramificación y de la profundidad de la solución. Si el
número medio de sucesores es n (se utiliza el valor medio ya que el árbol de búsqueda no
tiene por qué ser uniforme; es decir, no todos los nodos tienen igual número de
sucesores) y la solución se alcanza en el nivel p, el tiempo empleado es 1+n+n2+…+np.
Siendo p un valor generalmente grande, la complejidad será del orden O(np).
La complejidad espacial es también del orden O(np), lo que hace difícil de utilizar en
problemas reales.
_________________________________________________________________________
107
Inteligencia Artificial
Todas las técnicas de búsqueda descritas hasta ahora están diseñadas para encontrar una
solución. Como se demostrará con las búsquedas heurísticas, existen esfuerzos para
mejorar la posibilidad de encontrar una solución buena, y preferiblemente óptima. Sin
embargo, algunas veces solo se desea la solución óptima. El término solución óptima en el
sentido en que lo utilizamos aquí simplemente significa la mejor ruta que se pueda
encontrar usando una de las distintas técnicas de generación de múltiples soluciones –que
puede que no sea, de hecho, la mejor solución-. Encontrar la auténtica solución óptima
exige la utilización de Inteligencia Artificial, extremadamente costosa y una búsqueda
exhaustiva.
Búsqueda Heurística
La búsqueda heurística tiene muchos ejemplos en la vida real. Uno de los más conocidos
es el problema del viajero, donde un vendedor tiene que recorrer una serie de ciudades de
una forma que en su ruta sólo puede pasar una vez por cada ciudad y además tiene que
hacer el menor recorrido posible. Es un tipo de problema donde el numero de soluciones
sigue una ley de explosión combinatoria, conocidos como np-completos. Es decir, no
puede ser resuelto por los algoritmos de búsqueda ciega. Son problemas para los que es
imposible computacionalmente encontrar la mejor solución para dimensiones elevadas por
ese crecimiento exponencial. La única forma de abordarlos es conformarnos con una
solución suficientemente buena, hay varios métodos de búsqueda heurística que
proporcionan formas prácticas de hacerlo [5].
1. Generar una posible solución, ya sea un nuevo estado o un camino a través del
espacio de búsqueda.
2. Probar si ese nuevo estado o camino generado es una solución comparándolo
con un conjunto de estados objetivo.
3. Si es la solución, terminar. En otro caso, volver al paso 1.
_________________________________________________________________________
108
Inteligencia Artificial
f(estadoj)=cj
Con estos valores se puede estimar el costo que llevaría recorrer sus ramificaciones,
guiando la búsqueda hacia aquellos caminos que parecen más prometedores. El valor
máximo o mínimo de las funciones heurísticas debe alcanzarse en un estado meta.
Sin embargo, uno de sus principales problemas es que puede caer en los extremos
locales. Porque estamos siempre avanzando en la dirección del menor costo, por ejemplo,
_________________________________________________________________________
109
Inteligencia Artificial
se puede seguir un camino que alcance una buena solución pero dejando de lado la
solución óptima que quizás se encontraba muy cerca. De este mínimo o máximo local es
difícil salir ya que cualquier movimiento nos llevará a un próximo estado peor, con menor
valor de bondad en la función de evaluación. En algunos casos el espacio de búsqueda
presenta una meseta o zona plana en la cual cualquier nuevo estado tiene asociado el
mismo valor que el anterior, por lo que el algoritmo se estancará ya que no encontrará la
diferencia de valores positiva o negativa necesaria para avanzar.
Para evitar estos extremos locales se han propuesto diversas estrategias. Una consiste,
por ejemplo, en forzar un reinicio aleatorio. Cuando no se logra ningún avance
significativo se recomienza desde otro nuevo punto. Habitualmente esta técnica es
suficiente para encontrar la solución.
Otro método consiste en añadir ruido a la función de evaluación para lograr salir de los
extremos locales. Inicialmente el nivel de ruido es alto y se va reduciendo gradualmente
con el tiempo. Esta técnica, denominada simulated annealing (enfriamiento o temple
simulado) permite al algoritmo explorar direcciones que no son las “mejores” pero que
pueden conducir a una exploración mas completa del espacio de estados. Como está
técnica recuerda la analogía que se da en los metales cuando son calentados y luego
enfriados lentamente, el parámetro que se utiliza en el enfriamiento simulado se denomina
temperatura, de forma que una temperatura elevada permite continuar con la búsqueda
de forma un tanto aleatoria, mientras que temperaturas bajas hacen que el algoritmo
vuelva a un comportamiento mas determinista.
Primero el mejor
Con este método siempre se encuentra un mínimo global, por lo que consigue disimular el
problema de los extremos locales.
_________________________________________________________________________
110
Inteligencia Artificial
Por ejemplo, definimos una función costo asociada a cada nodo cuyo valor sea la distancia
al nodo meta figura 23. El costo de la generación de cada sucesor se puede considerar
cero o uno. En cualquier caso, va a ser un valor constante.
2. Lazo:
2.4. Se extrae el nodo con menor costo y se añaden sus sucesores. Guardar
el recorrido.
_________________________________________________________________________
111
Inteligencia Artificial
HAEDKLF
Como se ha hecho notar, con este método no se ha seleccionado el recorrido más corto en
el sentido de recorrer menos nodos, que hubiera sido por la rama del nodo C, sino que las
decisiones se han ido tomando en cada momento según la distancia estimada en ese
punto, no acumulada, aunque el costo acumulado sea menor en esta solución.
Existe una variante denominada búsqueda en haz (beam search), que pretende acelerar
el proceso de búsqueda permitiendo explorar más de una rama simultáneamente.
Denominada greedy search, este algoritmo es también una estrategia derivada del método
“primero el mejor”, y viene a disimular una de sus desventajas. En este caso lo que se
intenta es minimizar el costo total para alcanzar la meta. Por lo tanto, siguiendo una
estrategia “avara”, se expandirá el nodo que se presuponga más cercano al nodo final,
para minimizar así también el recorrido.
Es por lo tanto un caso de la búsqueda heurística ya que es esta función h la que dirige el
recorrido en base a un conocimiento sobre el camino con menor costo.
_________________________________________________________________________
112
Inteligencia Artificial
solución inmediata “más barata”, sin una visión global. Tampoco es completa pues puede
recorrer una ruta infinita y se estancaría en ella sin probar otros caminos alternativos.
Algoritmo A*
Otras de las ventajas de este método es que expande el menor número de nodos. Sin
embargo, puede tardar mucho en hacer la selección entre dos caminos casi iguales por lo
que a veces puede requerir mucho tiempo.
La función de evaluación f(n) estima el costo total de camino a la solución que pasa por el
nodo n.
F(n) = g(n) + h(n)
Como se puede deducir, el método del costo uniforme es un caso particular del algoritmo
A* que tiene lugar cuando ∀ n h(n)=0.
El procedimiento para llevar a cabo este algoritmo es el mismo que el anterior, si bien
ahora habrá que sumar a la distancia estimada a la meta el camino de menor costo
encontrado hasta cada nodo para formar la nueva función heurística f.
_________________________________________________________________________
113
Inteligencia Artificial
Para el ejemplo de la figura 23, el proceso de ejecución del algoritmo con esta estrategia
sería:
H(20+0) sacar
A(14+1), H
C(16+1)
D(9+2), A
E(5+2),
C(17)
D(11), C(17) E
K(3+3), L(6+3), D
C(17)
L(9), C(17) K
F(0), C(16) L
Con el cual se obtiene el mismo camino solución que con el método del primero el mejor.
A los arcos que unen los distintos nodos se les puede asociar un costo no constante, en
cuyo caso el procedimiento de resolución sería el mismo pero ahora habría que sumar a
cada nodo como valor de g(n) el que indica ese enlace.
Una conocida modificación del algoritmo A* es la llamada IDA* (Iterative Deepending A*)
o búsqueda por profundización iterativa (A*PI), que tiene por objeto garantizar la
linealidad respecto a la complejidad espacial. En vez de limitar la profundidad de la
búsqueda, este nuevo algoritmo utiliza una limitación en el costo.
Mantiene menos caminos simultáneamente que A*, de ahí la reducción del consumo de
memoria, pero no deja de encontrar la solución gracias a que explora múltiples rutas.
Algoritmos genéticos
En los años setenta, de la mano de John Holland [Holland y col., 1975] surgió una de las
líneas más prometedoras de la Inteligencia Artificial, la de los algoritmos genéticos. Son
llamados así porque se inspiran en la evolución biológica y su base genético-molecular.
_________________________________________________________________________
114
Inteligencia Artificial
Los algoritmos genéticos forman parte de una familia denominada algoritmos evolutivos,
que incluye las estrategias de evolución, la programación evolutiva y la programación
genética. Dentro de esta última se han logrado avances curiosos:
En 1999, por primera vez en la historia, se concedió una patente a un invento no realizado
directamente por un ser humano: se trata de una antena de forma extraña, pero que
funciona perfectamente en las condiciones a las que estaba destinada.
No hay, sin embargo, nada injusto en el hecho de que el autor del algoritmo genético del
que salió la forma de la antena se haya atribuido la autoría de la patente, pues él escribió
el programa e ideó el criterio de selección que condujo al diseño patentado.
Bajo una condición muy débil (que el algoritmo mantenga elitismo, es decir, guarde
siempre al mejor elemento de la población sin hacerle ningún cambio) se puede demostrar
que el algoritmo converge en probabilidad al óptimo. En otras palabras, al aumentar el
número de iteraciones, la probabilidad de tener el óptimo en la población tiende a 1.
Funcionamiento
_________________________________________________________________________
115
Inteligencia Artificial
Evaluar cada una de las soluciones, y asignarle una puntuación o fitness según lo bien que
lo hayan hecho.
Mutar (cambiar) y entrecruzar (combinar) las diferentes soluciones de esa parte escogida,
para reconstruir la población.
Hay que tener en cuenta que un algoritmo genético es independiente del problema, lo
cual lo hace un algoritmo robusto, por ser útil para cualquier problema, pero a la vez débil,
pues no está especializado en ninguno.
Ejemplo
_________________________________________________________________________
116
Inteligencia Artificial
Ejemplo 1:
Si un atributo (tiempo) puede tomar tres valores posibles (despejado, nublado, lluvioso)
una manera de representarlo es mediante tres bits de forma que:
Además si tenemos otro atributo “Viento” que puede ser Fuerte o Moderado, se
representaría con la siguiente cadena: 011 10.
Las postcondiciones de las reglas se pueden representar de la misma forma. Por ello una
regla se puede describir como la concatenación de la precondición y la postcondición.
Ejemplo2:
Cabe destacar que una regla del tipo 111 10 11 no tiene demasiado sentido, puesto que
no impone restricciones en la postcondición. Para solucionar esto, una alternativa es
codificar la postcondición con un único bit (1 = Cierto y 0 = Falso).
Otra opción es condicionar los operadores genéticos para que no produzcan este tipo de
cadenas o conseguir que estas hipótesis tengan una adecuación muy baja (según la
función de evaluación) para que no logren pasar a la próxima generación de hipótesis.
_________________________________________________________________________
117
Inteligencia Artificial
Otra heurística común es seleccionar un valor que elimine el menor número de valores en
las otras variables asociadas a la variable por medio de una restricción. A veces la
descripción del estado contiene toda la información necesaria para llegar a una solución
(ejemplo las 8-reinas) y se utilizan algoritmos que hacen mejoras iterativas. La idea
general es empezar con una configuración completa y hacer modificaciones para mejorar
su calidad [23].
Estructura de estados:
Definición:
_________________________________________________________________________
118
Inteligencia Artificial
• Restricciones binarias.
• Restricciones múltiples.
Ejemplo 1:
N reinas.
_________________________________________________________________________
119
Inteligencia Artificial
2 3
2 3
2 2
3 3
1 2
2 3
Ejemplo 2:
Planificación de corte.
Encontrar la manera de situar patrones de corte en una pieza de cartón figura 25.
Juegos
Los juegos provocan una inexplicable fascinación y, la idea de que las computadoras
puedan jugar existe desde que existen las computadoras:
_________________________________________________________________________
120
Inteligencia Artificial
• 50’s, Shannon describió los mecanismos que podían usarse en un programa para
que jugara al ajedrez.
• 50’s, Turing describió un programa para jugar al ajedrez pero no lo construyó.
• 60’s, Samuel construyó el primer programa de juegos importante y operativo, el
cual jugaba a las damas y podía aprender de sus errores para mejorar su
comportamiento.
Los juegos proporcionan una tarea estructurada en la que es muy fácil medir el éxito o el
fracaso. En comparación con otras aplicaciones de Inteligencia Artificial, por ejemplo
comprensión del lenguaje, los juegos no necesitan grandes cantidades de conocimiento.
El problema de la toma de decisión puede ser crucial en una serie de aplicaciones. Por
ejemplo, en los juegos o estrategias logísticas donde el objetivo es ganar ante unos
adversarios, cualquier tipo de información que ayude a tomar la decisión acertada es muy
valiosa. En este sentido, el plantear este tipo de problemas de la forma que se puede
aplicar una estrategia de búsqueda ha sido siempre un campo de interés para los
investigadores de la Inteligencia Artificial.
Un juego tiene una gran similitud con un problema de búsqueda porque se define
mediante:
• El estado inicial, que incluye la posición del tablero e identifica al jugador que
mueve.
• Una función sucesor, que devuelve una lista de pares (movimiento, estado),
indicando un movimiento legal y el estado que resulta.
• Un test terminal, que determina cuándo se termina el juego. A los estados donde
el juego se ha terminado se les llaman estados terminales.
• Una función utilidad (también llamada función objetivo o función de
rentabilidad), que da un valor numérico a los estados terminales. En el ajedrez, el
resultado es un triunfo, pérdida, o empate, con valores +1, -1 o 0.
Por lo tanto, el primer paso será la representación del juego como un árbol de búsqueda,
y la definición de las funciones de utilidad y de prueba final, es decir, determinar el
objetivo final. En general aunque se puede plantear como escenario un árbol completo
que represente las características del juego, frecuentemente no es posible tener en cuenta
_________________________________________________________________________
121
Inteligencia Artificial
la totalidad del árbol, por lo que en algún momento suele ser necesario suspender la
búsqueda y aplicar una función de evaluación mediante la cual se obtenga una estimación
de la utilidad de un estado determinado para saber por dónde seguir.
En las aplicaciones con dos participantes que cuentan con información perfecta (y juegan
también de forma perfecta), el algoritmo minimax permite determinar cuál será la mejor
jugada. Como una modificación de éste, el algoritmo alfa-beta es más eficiente gracias a
la poda que realiza de las ramas del árbol de búsqueda que resultan irrelevantes para el
resultado final.
Los juegos de azar se pueden manejar como una extensión del algoritmo minimax
mediante el que se evalúan nodos aleatorios, para lo que se toma en cuenta el valor de la
“utilidad promedio” de todos sus nodos hijos, ponderados por la probabilidad respectiva de
cada hijo.
Se aplica este algoritmo a un juego de dos participantes que alternan sus decisiones, con
sus consiguientes movimientos, y que tienen un conocimiento perfecto en cada momento
tanto de la estrategia como del juego del adversario [5].
Los nodos del árbol son de dos tipos: MAX y MIN según correspondan a uno u otro
jugador. Los valores altos son buenos para MAX, es decir, su objetivo es maximizar la
función de evaluación que mide la proximidad estimada a la meta de una situación dada.
Los valores bajos de la función de utilidad son los buenos para MIN que intenta minimizar
el valor de la función heurística para dificultar a su contrincante la consecución de la meta.
Debido a la alternancia en el juego, cada nivel dentro del árbol está formado sólo por los
nodos MAX o nodos MIN. Si comienza MAX y ocupa la raíz, éste ocupará los niveles pares
del árbol y el nivel inmediatamente inferior lo ocupará los nodos del jugador contrario.
1. Generación del árbol de búsqueda, desde la raíz hasta los estados terminales.
2. Obtención del valor de la función de utilidad en cada estado terminal.
3. Aplicación de la función de utilidad para calcular este valor de cada uno de los
nodos del nivel inmediatamente superior a los terminales.
_________________________________________________________________________
122
Inteligencia Artificial
v MAX-VALOR(estado)
←
devolver la acción de SUCESORES(estado) con valor v
Es decir, este algoritmo en cada jugada produce el operador con el que se obtiene la
mejor utilidad, la mejor jugada posible. Recorre todo el árbol del juego con una
exploración exhaustiva y va pasando por todas las hojas para ir calculando el valor de
utilidad de un movimiento que llevará a la toma de decisión.
Hay que tener en cuenta que lo que se propaga hacia arriba depende del estado terminal,
que puede tener una función de utilidad que represente tanto ganar como perder o
empatar. Al recorrer el árbol en sentido ascendente se va conociendo a cual de las tres
situaciones mencionadas se puede llegar desde cada nodo de los niveles superiores al
aplicar operadores.
_________________________________________________________________________
123
Inteligencia Artificial
MAX
MIN
1 6 2 6 9 7 5 3 6 7
la estrategia ganadora sería la que llevara a MAX a los valores más altos de la función de
utilidad, supongamos que igual o mayor que el valor 6. La jugada seleccionada por MIN
sería la respuesta a la jugada de MAX que diera el menor valor de los posibles después del
primer movimiento de MAX. Se han marcado los nodos MAX con rombos y los MIN con
circulos.
Si existe, una estrategia ganadora para MAX será un subárbol en el que todos sus nodos
terminales son ganadores; de esta forma se puede garantizar el éxito sea cual sea la
respuesta del adversario. El recorrido marcado en la figura 26 desemboca siempre en una
rama ganadora. Cualquier jugada de MIN hace que MAX sea el vencedor si ha optado por
esa rama.
Por el contrario, una estrategia ganadora para MIN será el subárbol en el que todos sus
nodos terminales sean perdedores, teniendo en cuenta que cada vez que juega MAX habrá
que considerar todos sus movimientos y cuando juega MIN sólo es necesario considerar
una de las dos alternativas.
_________________________________________________________________________
124
Inteligencia Artificial
Poda alfa-beta
Es un método basado en el minimax pero más eficiente puesto que evita el recorrido
exhaustivo de todos los nodos de un árbol de búsqueda. Reduce por lo tanto
considerablemente el número de nodos expandidos, y por eso se le denomina método de
poda, ya que no explora todas las ramas. Obtiene la misma solución que con el anterior
pero no recorre las ramas que no van a influir en la decisión final, y por lo tanto, al no
calcular sus consiguientes valores de utilidad ni expandir sus sucesores, requiere
generalmente menor tiempo computacional [5].
Sin embargo, esa afirmación depende del orden en que se exploren los nodos del árbol.
De hecho, en el peor de los casos habría que examinar todos los nodos terminales y
tendría la misma complejidad que el procedimiento minimax.
Para realizar la poda, éste método va anotando cuándo se puede hacer una poda porque
en una rama haya algún nodo con un valor de utilidad inferior al de otro recorrido. Para
ello lo que se hace es pasar, en cada llamada recursiva a un nodo hijo, dos valores (α y β)
de manera que α marque la cota inferior de los valores que se van a ir buscando en la
parte del árbol que queda por explorar, y β es la cota superior de los mismos valores. Si
en algún momento α llega a ser mayor o igual que β no tendrá sentido seguir con la
búsqueda, realizándose una poda α si estamos en un nodo MAX o β si estamos en un
nodo MIN. Se suele denominar por eso poda α–β. Los valores de α y β se suelen inicializar
a – ∞ y + ∞ respectivamente. También se les puede asignar a α el valor mínimo de la
función de utilidad y a β el valor máximo que puede alcanzar la función de evaluación
heurística.
Jugador
Oponente m
…
…
…
Jugador
Oponente n
Figura 27. Poda alfa-beta: el caso general. Si m es mejor que n para el Jugador, nunca iremos a n
en el juego.
_________________________________________________________________________
125
Inteligencia Artificial
Cuestionario de evaluación.
1.- ______________________________________________________________________
Es el entorno donde se desarrolla el proceso de búsqueda, y lo componen todos los
estados por los que se avanza y que se van recorriendo en la tarea de llegar a la meta.
2.- ______________________________________________________________________
La búsqueda en profundidad es otra forma de recorrer sistemáticamente una estructura
del árbol para encontrar el nodo solución, pero recorriéndolo en profundidad, es decir,
bajando de nivel.
3.- ______________________________________________________________________
Es un algoritmo que ofrece más de una única salida en función de su entrada, siempre
que no se haya dado otra especificación adicional. Una ejecución de estos algoritmos
permite elegir en un instante dado una secuencia de posibles estados de salida para una
misma entrada o estado inicial.
4.- ______________________________________________________________________
Se caracterizan por la tendencia a limitar el tiempo y el espacio en donde buscar la
respuesta a problemas complejos, y asumir que aceptaremos cuando le encontremos una
buena solución, que puede no ser óptima.
5.- ______________________________________________________________________
Representa el conjunto de mundos, escenarios o situaciones que se pueden generar
mediante los operadores u acciones. Ya que indica el recorrido del proceso de búsqueda
que va moviéndose de un estado a otro, en la consecución del objetivo final.
6.- ______________________________________________________________________
Ascensión a la cima o gradiente, primero el mejor, búsqueda menor costo, algoritmo A*,
algoritmos genéticos.
7.- ______________________________________________________________________
Es completamente predictivo si se conocen las entradas al mismo. Dicho de otra forma si
se conocen las entradas del algoritmo siempre producirá la misma salida, y la máquina
interna pasará por la misma secuencia de estados.
_________________________________________________________________________
126
Inteligencia Artificial
8.- ______________________________________________________________________
El algoritmo define una forma de moverse a lo largo de la estructura arbórea examinando
los valores de los nodos de manera sistemática y controlada, de forma que se pueda
encontrar un nodo de solución.
9.- ______________________________________________________________________
Búsqueda de rutas en redes informáticas, rutas aéreas para viajar, problema del viajante,
diseño de microchips, ensamblaje de componentes, desplazamiento de robots.
_________________________________________________________________________
127
Inteligencia Artificial
CONCLUSIÓN
La Inteligencia Artificial ha hecho posibles aplicaciones nuevas tales como los sistemas de
reconocimiento de voz, sistemas de control de inventarios, sistemas de vigilancia, robots y
motores de búsqueda.
“Podemos observar sólo a poca distancia hacia delante, pero también se pude ver que
todavía queda mucho por hacer.”
_________________________________________________________________________
128