Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2018
Fundamentos de Inteligencia Artificial
Autores
Miguel García Torres
Carlos Augusto Sánchez Martelo
Henry Leonardo Avendaño Delgado
Manuel Antonio Sierra Rodríguez
Carlos Andrés Collazos Morales
Domingo Alirio Montaño Arias
Breed Yeet Alfonso Corredor
José Daniel Rodríguez Munca
6
Edición Miembro comité editorial revista Journal of
Editorial Universidad Manuela Beltrán Science Educations. Miembro fundador de la
Sociedad Iberoamericana de Biología Evolutiva.
Autores
Neurociencias,
Aplicadas a Genética y TIC
la Educación.
8
Fundamentos de Inteligencia Artificial. / Miguel García Torres… (y otros 7) -
Bogotá: Universidad Manuela Beltrán, 2018.
128 p.: ilustraciones,
ilustraciones, gráficas, tablas;
t ablas; [versión
[versión electrónica]
electró nica]
Incluye bibliografía
ISBN: 978-958-5467-27-9
1. Inteligencia artificial 2. Aprendizaje automático 3. Sistemas expertos
(computadores). i. Sánchez Martelo, Carlos Augusto. ii. Avendaño Delgado,
De lgado, Henry
Leonardo. iii. Sierra Rodríguez, Manuel Antoni
Anto nio.
o. iv. Collazos Morales,
Mora les, Carlos
Andrés. v. Montaño Arias, Domingo Alirio. vi. Alfonso Corredor, Breed Yeet. vii.
Rodríguez Munca, José Daniel.
006.3 cd 23 ed.
CO-BoFUM
Catalogación en la Publicación – Universidad Manuela Beltrán
Gerente
Juan Carlos Beltrán Gómez
Secretario General
Juan Carlos Tafur Herrera
Autoridades Académicas
Rectora
Alejandra Acosta Henríquez
Vicerrectoría de Investigaciones
Fredy Alberto Sanz Ramírez
Vicerrectoría Académica
Claudia Milena Combita López
Vicerrectoría de Calidad
Hugo Malaver Guzman
ISBN: 978-958-5467-27-9
TABLA DE CONTENIDO
Fundamentos de Inteligencia Artificial
ontenido
PRÓLOGO................................................................................................................................. 15
INTRODUCCIÓN ...................................................................................................................... 17
Capítulo 1: Introducción y Búsqueda ................................................................................. 21
1. Introducción y Búsqueda de Datos ............................................................................. 21
1.1. Introducción .................................................................................................................. 21
1.2. Marco Conceptual ........................................................................................................ 22
1.2.1. Introducción a la Inteligencia Artificial ............................................................................ 22
1.2.2 Historia de la Inteligencia Artificial ................................................................................... 23
13
2. Problemas de Satisfacción de Restricciones y Lógica ........................................... 93
2.1. Introducción .................................................................................................................. 93
2.2. Modelización de Problemas de Satisfacción de Restricciones .......................... 95
2.3 Técnicas de Resolución de PSR ................................................................................ 98
5.3. Ejemplos ...................................................................................................................... 100
14
PRÓLOGO
realizar una búsqueda en internet, filtrar nuestro correo electrónico o enfocar las
caras con las cámaras digitales están dotadas de IA para realizar dichos trabajos,
de modo que parezca que hay un cierto grado de inteligencia para realizarlos.
15
16
INTRODUCCIÓN
17
las tarjetas de crédito, reconocimiento del habla, clasificación de secuencia de
ADN, etc.
restricciones, como planificar un viaje, concertar una cita para el médico, comprar
una casa, etc.
18
Capítulo I
Introducción y Búsqueda
a
d Introducción y
e
u Búsqueda de Datos
q
s
ú
B Marco Conceptual
y
n
ó
i
c Ejemplos
u
d Ejercicios de
o
rt Reflexión
In
19
20
CAPÍTULO 1: INTRODUCCIÓN Y BÚSQUEDA
Los conceptos básicos que se verán en la primera unidad permitirán entender
qué es y en qué consiste la IA. Además, se verán los distintos planteamientos que
hay para abordar la simulación de la conciencia por la importancia que tiene desde
un punto de vista filosófico, ético y moral. Finalmente, se abordará la IA desde el
paradigma de agentes.
las ciencias más recientes que abarca una gran variedad de subcampos, que van
desde áreas de propósito general, como el aprendizaje y la percepción, a otras
áreas más específicas, como el ajedrez y la demostración de teoremas.
21
1.2. Marco Conceptual
1.2.1. Introducción a la Inteligencia Artificial
¿Qué es la inteligencia artifici
artificial?
al?
La inteligencia artificial es una de las disciplinas más nuevas que evoluciona a
gran celeridad, motivada por su propia inmadurez. Esto ha llevado a que abarque
un gran número de áreas que permite que pueda ser aplicada a una gran cantidad
y variedad de disciplinas científicas. Esto se debe a que la IA puede aplicarse en
cualquier ámbito que se requiera el intelecto humano.
requiere aprender de la información que ha sido percibida. Por tanto, para poder
considerar que un ser (de cualquier tipo) tiene inteligencia se requiere que capaz
de tomar decisiones en entornos nuevos o desconocidos, con base a una serie de
observaciones y/o aprendizajes previos sobre experiencias pasadas.
22
IA débil: ttoda
oda propiedad fís
física
ica del cerebro puede simularse pero la
conciencia es una característica del cerebro a la que no puede llegarse
por computación.
Nueva física: piensa que hace falta desarrollar una nueva física para
explicar la mente humana, de modo que con los conocimientos actuales
no es posible simular la mente humana.
Mística: en esta postura se defiende que la conciencia no p
puede
uede ser
explicada física ni computacionalmente. No puede entenderse a través de
ningún método científico debido a que pertenece a la esfera espiritual.
Aquellos que se posicionan por las dos primeras posturas creen que la
conciencia es un proceso físico que emerge del cerebro, explicable con la ciencia
actual, aunque aún se desconozca. Los que defienden la IA débil consideran que
sus modelos son representaciones simbólicas de los sistemas biológicos, y que
las máquinas pueden programarse para exhibir comportamiento inteligente. Sin
embargo, los que defienden la IA fuerte afirman que las máquinas pueden
programarse para poseer inteligencia y tener consciencia reproduciendo las
características básicas de los seres vivos.
23
ha abordado el estudio de la inteligencia, pero desde un punto de vista de
modelización más que de replicación.
Los primeros trabajos que forman parte del origen de la IA moderna datan de la
década de los 40 del siglo XX. Sin embargo, no fue sino hasta 1950 que dicha
disciplina empezó a suscitar mayor interés gracias a Alan Turing. En 1956, en la
conferencia de Dartmouth, esta nueva disciplina se bautizó como inteligencia
artificial. En la década de los 50 hubo un gran optimismo debido a los éxitos
cosechados previamente. Sin embargo, la década siguiente sirvió para empezar a
conocer las limitaciones que había. Si en estos primeros años el enfoque era el
desarrollo de mecanismos de búsqueda de propósito general, en los 70 se amplió
el enfoque al desarrollo de sistemas que abarcaran problemas específicos
haciendo uso de conocimiento específico del dominio. Esto motivó que la IA
pasara a ser parte del tejido industrial a partir de los años 80. A finales de esta
década se produjo una revolución tanto en el contenido como en la metodología
de trabajo. A lo largo de los años la IA se ha ido aproximando a todos los ámbitos
de nuestra vida y está presente en nuestro día a día sin que seamos conscientes.
La definición de agente inteligente está aún abierta a debate debido a que dicha
definición varía en función del contexto o la aplicación. Una definición sencilla que
se puede adoptar es la de Russell y Norvig (2008), que consideran un agente
como “una entidad que percibe y actúa sobre un entorno”. La Figura 1 ilustra esta
idea. En dicha figura, el término percepción se utiliza para indicar que el agente
24
entradas forma una secuencia de percepciones y el agente toma una decisión en
función de la secuencia completa de percepciones. El agente es capaz de percibir
su medioambiente mediante la ayuda de sensores y es capaz de actuar a través
de actuadores. En este contexto, actuador hace referencia al elemento que
reacciona a un estímulo realizando una acción.
Reactivo. E
Ell agente debe ser capaz de responder a cambios en e
ell entorno
en el que se encuentran.
Pro-activo. El agente debe se
serr capaz de
de intentar cumplir sus propios
planes u objetivos.
Social. Un agente debe poder com
comunicarse
unicarse con otros agentes a ttravés
ravés de
algún tipo de lenguaje.
25
Estas características, identif
identificadas
icadas com
como
o básicas de un agente, n
no
o son las
únicas. Otras características que también se les suele atribuir a los
agentes para resolver problemas, según Franklin y Graesser (1996) y
Nwana (1996), son:
Autonomía. El agente inteligente actúa sin intervención hum
humana
ana directa y
tiene control de sus propios actos. Es capaz de actuar basándose en la
experiencia y de adaptarse aunque el entorno cambie.
Movilidad. E
Está
stá relacionado con la capacida
capacidad,
d, del agente, de cam
cambiar
biar de
entorno en caso de necesidad.
Veracidad. Se asum
asume
e que e
ell agente no comunica inform
información
ación falsa a
propósito.
BDI (Belief, Desire,
Desire, Int
Intentions).
entions). Esta
Esta característica hace referencia a las
creencias, los deseos y las intenciones del agente. Las creencias hacen
referencia al conocimiento a priori den entorno y las responsabilidades.
Los deseos son las metas a realizar y las intenciones el plan que se
desarrollará para alcanzar dichos objetivos.
Racionalidad
Los agentes actúan de forma racional en su entorno. Esto equivale a decir que
hacen lo correcto y para ello es necesario alguna forma de medir el éxito. La
racionalidad en un momento determinado se basa en la información disponible por
el agente y depende de los siguientes factores:
Medida de rendimiento, que define el grado d
de
e éxito del a
agente.
gente.
Conocimiento a prior
priorii del medio en el que habita el agente.
Acciones que el agente puede llevar a cabo.
26
Secuencia de percepciones, que representan la ex
experiencia
periencia del agente.
Entorno de trabajo
El entorno de trabajo de un agente se refiere al conjunto de componentes que
conforman el problema a resolver por el agente. Hace referencia al ambiente
o medio en el que el agente va a desenvolverse. El entorno de trabajo está
conformado por los cuatro factores que determinan la racionalidad de un agente:
Rendimiento. Hac
Hace
e referencia a las cualidad
cualidades
es deseables para e
ell agente,
así como los objetivos y metas que tiene. En este componente se asocian
las medidas de rendimiento.
Entorno. Se refiere al ambiente
ambiente o mundo en el cual e
ell agente actuará.
Actuadores. Se ref
refiere
iere al conjunto de herramientas o elementos para
efectuar el trabajo
trabajo o el conjunto de acciones a realizar.
Sensores. Hace referencia a las percepciones del agente del ambiente y
Por regla general suele referirse a dichos factores por el acrónimo REAS y para
poder diseñar un agente hay que especificar los componentes del entorno de
trabajo. Una cuestión importante de cara al diseño es que no importa si un entorno
es real o virtual sino la complejidad de la relación entre el comportamiento del
agente, la secuencia de percepción generada por el medio y la medida de
rendimiento.
27
Es importante identificar las propiedades del entorno en el que se va a trabajar
para que el diseño del agente se adecúe a dicho entorno. Algunas de estas
propiedades son:
28
Agente = arquitectura + programa
29
Agentes reactivos simples
Este tipo de agentes toman decisiones con base a las percepciones actuales sin
atender al pasado a través de históricos ni al futuro mediante la planificación. Por
tanto, el conocimiento puede representarse como una tabla en la que a cada
percepción se le asocia una acción. La estructura de este tipo de programas se
muestra en la Figura 2. Estos agentes trabajan con un conjunto de reglas de tipo
condición-acción que asocian la percepción con un conjunto de acciones.
30
función AGENTE-REACTIVO-SIMPLE(percep
AGENTE-REACTIVO-SIMPLE(percepción)
ción) devuelve un acción
estático: reglas
reglas,, un conjunto de reglas
regl as condición-acción
estado → INTERPRETAR-ENTRADA(percepción
percepción))
regla → REGLA-COINCIDENCIA(
REGLA-COINCIDENCIA(estado
estado,, reglas
reglas))
acción → REGLA-ACCIÓN[
R EGLA-ACCIÓN[regla
regla]]
devolver acción
Figura 3. Programa de un agente reactivo simple.
Fuente: adaptado por el autor.
actual se interpreta a partir del estado anterior usando información sobre cómo
evoluciona el entorno (independientemente del agente) y cómo influyen en el
mundo las acciones llevadas a cabo por el agente.
31
La estructura de un agente reactivo basado en modelos se muestra en la Figura
4. En este caso la percepción actual se combina con datos del estado interno para
poder actualizar el estado actual. El programa (ver Figura 5) tiene ahora la función
ACTUALIZA-ESTADO, que es la que actualiza la descripción del estado interno
del agente con base al estado actual, el conocimiento sobre cómo evoluciona el
medio y el efecto que tienen las acciones sobre dicho medio. Como en el caso
anterior, la función REGLA-COINCIDENCIA busca la regla que coincida con el
estado actual y llevar a cabo la acción a través de la función REGLA-ACCIÓN.
función AGENTE-REACTIVO-CON-ESTADO(perc
AGENTE-REACTIVO-CON-ESTADO(percepción)
epción) devuelve un acción
estático: estado
estado,, una descripción actual del estado del entorno
reglas,, un conjunto de reglas condición-acción
reglas condición-acción
acción,, la acción más reciente, inicialmente ninguna
acción
estado → ACTUALIZA-ESTADO(estado,acción,percepción
ACTUALIZA-ESTADO(estado,acción,percepción))
regla → REGLA-COINCIDENCIA(
REGLA-COINCIDENCIA(estado
estado,, reglas
reglas))
acción → REGLA-ACCIÓN[regla
REGLA-ACCIÓN[regla]]
devolver acción
Figura 5. Programa de una agente reactivo basado en modelo.
Fuente: adaptado por el autor.
1.3. Ejemplos
Se va a estudiar cómo resolver mediante un agente reactivo simple un problema
de limpieza con una aspiradora. Para ello se diseñará un agente aspiradora. Tal y
como se puede ver en la Figura 6, el entorno está compuesto por dos
localizaciones: cuadrícula A y B. La aspiradora es capaz de percibir en qué
cuadrícula está y el estado de la cuadrícula (sucio o limpio). Las acciones que
puede realizar son moverse hacia la derecha o izquierda, aspirar la suciedad o no
hacer nada. Tal y como se ha visto, para poder desarrollar un agente aspiradora
que sea racional, habrá que considerar cómo se ajustan los cuatro factores de los
que dependen la racionalidad del agente, que en este caso en concreto son:
32
La m
medida
edida de rendimiento de la aspiradora debe prem
premiar
iar al agente
por limpiar la suciedad de cada recuadro en un tiempo de terminado.
El m
medio
edio en el que se ubica el agente son dos cuadrículas aunque no
cómo se distribuye la suciedad.
El conjunto de acciones permitidas son:
◦ Movimiento: izquierda, derecha
◦ Tarea: aspirar, no hacer nada.sdsd
El agente puede percibir:
◦ Ubicación: cuadrículo A, cuadrícula B.
◦ Estado: cuadrícula sucia, cuadrícula limpia.
Figura 6
6.. Ejemplo de agente relacionado con el mundo de la aspiradora.
Fuente: adaptado por el autor.
función AGENTE-ASPIRADORA(localización,
AGENTE-ASPIRADORA(localización, estado) devuelve un acción
si estado = Sucio, entonces devolver Aspirar
de otra forma, si localización = A entonces devolver Derecha
de otra forma, si localización = B entonces devolver Izquierda
Figura 7. Programa del agente aspiradora.
Fuente: adaptado por el autor.
33
Si se representa mediante una tabla cómo relacionar la percepción con cada
acción, se tendría
Percepción Acción
[A, limpio] Derecha
[A, sucio] Aspirar
[B, limpio] Izquierda
[B, sucio] Aspirar
[A, limpio], [A, sucio] Aspirar
… ...
Si se ejecuta dicho código para 5 pasos ( = 5 ), se tendrá una salida como la que
se ve en la Figura 9. Inicialmente se parte con ambas cuadrículas sucias y se sitúa
al agente en la cuadrícula A. Tras percibir que dicha cuadrícula está sucia, lleva a
cabo la acción de aspirar. Una vez limpia la cuadrícula, la acción que lleva a cabo
es desplazarse a la otra cuadrícula, donde, en la siguiente etapa, percibe que está
sucia y procede a aspirar. Una vez que está limpia, la acción del agente será
moverse de una cuadrícula a otra.
35
1.4. Ejercicios de reflexión
1. Considere que se quiere diseñar un agente taxista mediante conducción
autónoma. Especifique los distintos componentes REAS del entorno de trabajo en
el que se encontrará el taxi.
Maximización
de
resultados losde
los estudiantes
Pantalla
Tutor en las pruebas
interactivo de de inglés Conjunto de (ejercicios, Teclado
estudiantes sugerencias,
inglés rápido, legal,
correcciones)
viaje
confortable,
maximización
del beneficio
36
3. Indicar las propiedades del entorno de los dos problemas planteados en los
ejercicios anteriores
Tutor
interactivo de Parcialmente Estocástico Dinámico Multiagente
inglés
import aima.core.environment.
aima.core.environment.vacuum.ModelBasedReflexVacuum
vacuum.ModelBasedReflexVacuumAgent;
Agent;
import aima.core.environment.
aima.core.environment.vacuum.VacuumEnvironment;
vacuum.VacuumEnvironment;
import aima.core.environment.
aima.core.environment.vacuum.VacuumEnvironmentViewA
vacuum.VacuumEnvironmentViewActionTracker;
ctionTracker;
37
1.5. Conclusiones
Dentro del ámbito de las ciencias de la computación la IA es una de las áreas
que causan mayor expectación, tanto a nivel académico como en la sociedad en
A pesar de los avances que se están produciendo, aún queda mucho por
desarrollar pues todavía no se conoce bien cómo funciona el cerebro. En la
actualidad se han identificado diversos tipos de inteligencia (matemática,
lingüística, visual, cinética, musical, interpersonal, intrapersonal y naturalista) que
son manejadas por el cerebro a la vez en cada instante. Sin embargo, la IA suele
enfocarse en algún tipo de inteligencia y/o en dar solución a algún problema
concreto (predicción, segmentación de clientes, etc.). Están surgiendo nuevos
paradigmas de programación (como map-reduce) que permiten manejar distintos
tipos de inteligencia a la vez. No obstante, aún queda mucho por recorrer pues no
se sabe cómo imitar las capacidades de imaginar e intuir; dos características que
marcan la diferencia entre la inteligencia humana y la artificial. La razón es que
dichas capacidades son las que permiten crear conceptos abstractos y crear
nuevos pensamientos.
38
camino para poder lograr que la IA sepa interpretar las preferencias de actuación
en función de dicho análisis.
39
1.5. Búsqueda de Datos
1.5.1. Introducción
Esta unidad describe un tipo de agente basado en objetivos, llamado agente
40
Formulación del problema: consideramos el conj
conjunto
unto de ciudades de
Rumanía conectadas por carretera y lo representamos como un
grafo. La Figura 10 muestra el mapa de carreteras de Rumanía que
puede interpretarse como un grafo de modo que cada nodo
representa una ciudad y las aristas indican las ciudades que están
conectadas. El peso asociado a cada arista indica la distancia, en
kilómetros, entre dos ciudades conectadas. En este caso un estado
representa estar en una ciudad mientras que una acción se asocia a
conducir de una ciudad a otra.
Búsqueda: encontrar la secuencia de cciudades
iudades que nos lleve desde
Arad a Bucarest por el camino más corto.
Ejecución: ir a Bucarest por la ruta encontrada.
41
10. Mapa de carreteras de Rumanía con las distancias entre ciudades conectadas en kilómetros.
Figura 10.
Fuente: adaptado por el autor.
Para el problema del viaje por Rumanía, los elementos del problema serían:
Estado inicial: ciudad de Arad.
Función sucesor: función que asocia, para ccada
ada ciudad, el conjunto
de pares de acción desplazamiento y ciudad destino.
Coste de
dell camino
camino vendría representado por la dist
distancia
ancia en kkilómetros
ilómetros
entre el origen (Arad) y el destino (Bucarest).
El objetivo del agente es llegar a Bucarest.
42
para encontrar la solución. Para poder analizar la idoneidad de una estrategia a un
problema determinado, es necesario medir el rendimiento de la estrategia. Cuatro
factores que suelen usarse para medir los algoritmos son:
Primero en Anchura
La idea que subyace en esta estrategia consiste en visitar todos los nodos que
haya a una profundidad antes
antes de visitar aquellos que estén a profundidad +1
Partiendo del nodo raíz, esta estrategia visita todos los nodos del siguiente nivel, y
.
43
continuación, visitaría el nodo B, que sería eliminado de la cola, y sus sucesores
(D y E) serían almacenados en dicha cola a continuación de C.
Figura 11. Ejemplo de búsqueda primero en anchura. La flecha indica el nodo a expandir en cada etapa.
Fuente: adaptado por el autor.
= ()
44
Búsqueda primero en profundidad
En esta estrategia, partiendo de un nodo determinado, se visitan los sucesores
de dicho nodo antes que los nodos del mismo nivel. La búsqueda tiende a subir
por las ramas del árbol hacia las hojas. Una vez llega a un nodo hoja, visita la
siguiente rama del árbol.
Esta estrategia puede implementarse mediante una estrategia LIFO (Last Input
First Output) haciendo uso de una pila. La Figura 12 muestra un ejemplo de
primero en profundidad. Parte del nodo A y añade a la pila el nodo B. A
continuación, visita dicho nodo y añade el nodo D a la pila. Al no tener sucesores
el nodo D, es eliminado de la pila y se añade el nodo E. Al ser este nodo de tipo
hoja también y no haber más ramificación por esta parte, se pasa a visitar el nodo
C y posteriormente el F. Esto sigue así hasta que se han recorrido todos los
nodos.
◦
( )
Espacial: no es necesario alm
almacenar
acenar las distintas ramas. Cada
vez que se llega a un nodo hoja, se puede eliminar dicha rama.
Por tanto, solo requiere almacenar
es
+1 nodos y su complejidad
()
45
Figura 12. Ejemplo de búsqueda Primero en Profundidad.
Fuente: adaptado por el autor.
Dado un nodo
nodo , la función de evaluación
a un nodo objetivo. A m
menor
enor distancia, m
mayor
( ) nos da la distancia desde ese
ayor será la calidad del nodo.
Desde este punto de vista se puede decir que las búsquedas informadas son
46
aquellas que dirigen la búsqueda hacia los nodos con menor valor de
función es un estimador y puede considerarse que ( ) = ( ) + ℎ ( ) (
con:
) .
Esta
Esta
( ) el coste del mejor camino conocido para ir desde el nodo inicial
al nodo
ℎ() .
es la función heurística que estima el camino de menor coste
desde el nodo a un objetivo.
Con esto se pueden definir diversas funciones de evaluación:
(()) == ℎ(())
para el caso de las búsquedas no informadas.
para algoritmos como el voraz.
( ) = ( ) + ℎ ( )
para estrategias como el A*.
Algoritmo voraz
Es un algoritmo heurístico o aproximado que selecciona el siguiente nodo en
función del coste inmediato. Esta decisión, localmente óptima, suele dirigir la
búsqueda hacia soluciones subóptimas. Desde el punto de vista de la
implementación, se puede ordenar la secuencia de nodos a probar mediante una
cola de prioridad.
que inicialmente está vacía, y un conjunto C con una lista de acciones candidatas
identificadas y con una prioridad asociada. En cada iteración, se evalúa la
factibilidad de añadir el siguiente elemento de C a S. Si no es factible, se elimina
de S y de C. Si lo es, pasa a formar parte de S y se borra de C. Además se pasa a
evaluar si la solución actual es parcial o no. En caso de haber obtenido la solución,
el algoritmo para.
De cara a exponer como trabaja este algoritmo, hay que considerar el problema
de ruta de viajar a Arad a Bucarest que se expuso anteriormente en esta unidad.
Sin embargo, para aplicar este algoritmo, como función de evaluación, la distancia
47
en línea recta desde Bucarest al resto de ciudades y que se llamará
valores de dicha distancia están en la siguiente tabla.
ℎ. Los
Entonces, el algoritmo voraz parte del nodo Arad, y desde dicha ciudad sólo tiene
acceso a las ciudades Sibiu, Timisoara y Zerind que tienen una distancia (en línea
recta desde Bucarest ) de 253, 329 y 374 respectivamente. Por tanto, esta
ℎ por ser la más próxima a Bucarest y, por tanto, dicho
estrategia selecciona Sibiu
nodo se expande. En la siguiente, la estrategia busca de entre todas las ciudades
accesibles desde Sibiu aquella que esté a menor distancia o, dicho de otra forma,
la que menor valor de ℎ tenga. En este caso las ciudades accesibles son Arad,
Fagaras, Oradea y Rimnicu Vilcea con una distancia de 366, 176, 380 y 193. Por
tanto, el algoritmo selecciona Fagaras. Y así sucesivamente hasta llegar a
Bucarest. La secuencia completa de búsqueda puede verse en la Figura 13.
48
Figura 13
13.. Ejemplo de búsqueda de algoritmo voraz para el ejemplo de la ruta desde Arad a Bucarest.
Fuente: adaptado por el autor.
1.5.4. Ejemplos
vacío. Inicialmente las fichas están dispuestas de forma aleatoria y el objetivo del
juego es ordenar las fichas de modo que el hueco quede en el extremo inferi inferior
or
derecha. Para ello habrá que mover el espacio vacío de forma horizontal o vertical.
Para poder definir este problema hay que definir
definir el estado inicial, el test objetivo,
objetivo,
los operadores (conjunto de acciones) que se pueden realizar mediante la función
sucesor y el coste del camino ( ).
En este problema se definirá el estado inicial como cualquier estado que no
coincida con el estado final. La Figura 14 muestra el estado inicial del puzzle a la
izquierda y el estado final a la derecha. Tal y como se puede ver en la Figura 15,
49
en este caso se cuenta con cuatro operadores, arriba, izquierda, abajo y derecha,
que se corresponde con los movimientos que puede hacer el espacio vacío.
Finalmente, como coste del camino se puede considerar que cada movimiento del
espacio vacío tiene un coste de 1.
Este problema tiene un total de 9!=362.880 estados distintos, siendo solo uno de
esos estados el objetivo. Cuando la casilla vacía está en el centro, tiene cuatro
posibles movimientos y en cualquier otra posición solo 2.
Figura 15.
15. Operadores del problema del puzzle 8.
50
A continuación
conti nuación se mostrará cómo resolvería este
es te pr
problema
oblema la estrategia Primero
en Anchura. Para ello, hay que considerar que el estado inicial del puzzle es el
que se ve en la Figura 16, y que el orden de los movimientos a realizar son
izquierda, arriba, derecha y abajo.
Incluye dos métodos estáticos auxiliares para poder imprimir los avances de la
estrategia.
51
Figura 17. Búsqueda en anchura aplicada
aplicada al problema del puzzle 8.
Fuente: adaptado por el autor.
problema:
Estado inicial, definido en la variable estática initialState.
Operadores o conjunto de acciones permitidas.
Coste del camino.
Test objetivo, definida en EightPuzzleGoalTest.
búsqueda.
52
import aima.core.agent.Action
aima.core.agent.Action;
;
import aima.core.environment.
aima.core.environment.eightpuzzle.EightPuzzleBoar
eightpuzzle.EightPuzzleBoard;
d;
import aima.core.environment.
aima.core.environment.eightpuzzle.EightPuzzleFunc
eightpuzzle.EightPuzzleFunctionFactory;
tionFactory;
import aima.core.environment.
aima.core.environment.eightpuzzle.EightPuzzleGoal
eightpuzzle.EightPuzzleGoalTest;
Test;
import aima.core.search.frame
aima.core.search.framework.Search;
work.Search;
import aima.core.search.frame
aima.core.search.framework.SearchAgent;
work.SearchAgent;
import aima.core.search.frame
aima.core.search.framework.problem.Problem;
work.problem.Problem;
import aima.core.search.uninf
aima.core.search.uninformed.BreadthFirstSearch;
ormed.BreadthFirstSearch;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
Figura 18. Código para resolver el problema del puzzle 8 mediante una estrategia Primero en Anchura.
53
1.5.5. Ejercicios de Reflexión
54
Capítulo II
Aprendizaje
Automático y Juegos
y
o
ic
t Introducción
á
m
o
t s Ejemplos
u o
A g
e
e
j u Ejercicios de
a J
z
i Reflexión
n
d
e
r
p Teoría de Jugos
A
Poda Alfa-Beta
55
56
CAPÍTULO 2: APRENDIZAJE AUTOMÁTICO Y
JUEGOS
2. Aprendizaje Automático y Juegos
2.1. Introducción
Existen diversos programas para que un agente pueda seleccionar las acciones
que se adecúan al entorno. Sin embargo, esto conlleva a que se programen todos
los posibles escenarios. A la dificultad de programar todos los posibles escenarios
se le añade la posibilidad de que el entorno varíe y haya que contemplarse nuevos
escenarios. Una forma de afrontar esto sería diseñar agentes con capacidad de
aprender. Esto permitiría al agente complementar y/o completar el conocimiento
inicial que tiene sobre el medio ambiente.
57
agente. En este escenario, el elemento de actuación consiste en la colección de
conocimientos que hay predeterminados para seleccionar las acciones de
conducción. Por ejemplo, arrancar el coche, frenar, circular, etc. El elemento
crítico evalúa la conducción en función de lo que observa del entorno y
proporciona dicha evaluación al elemento de aprendizaje para que este formule
una mejora que sea incorporada en el elemento de actuación. Por ejemplo, si el
taxi no se aparta cuando se aproxima una ambulancia con las luces y la sirena
encendidas, otros conductores, incluida la ambulancia, reaccionan tocando el
claxon. La crítica evalúa estas reacciones y pasa la información al elemento de
aprendizaje que formula la regla de apartarse cuando se aproxime una ambulancia
con las luces y la sirena encendidas. Esta nueva regla se incorpora al elemento de
actuación. Finalmente el generador de problemas se encargaría de identificar qué
comportamientos durante la conducción deberían mejorarse y diseñar
experimentos que le conduzcan a dichas mejoras.
58
Tipos de aprendizaje
Para poder producir un aprendizaje es necesario fijar una serie de conceptos y
definir métodos para medir el grado de éxito de un aprendizaje. En el contexto
computacional se considera que un programa aprende si mejora el desempeño de
una tarea a través de la experiencia. Es decir: “Un programa de ordenador se dice
que aprende de la experiencia
medida de rendimiento con respecto a una tarea específica
, si su rendimiento en el desempeño de la tarea
y una
,
medido según , mejora con la experiencia ”.
El tipo de retroalimentación disponible para el aprendizaje es el factor más
relevante para diferenciar los distintos tipos de aprendizaje a los que tiene que
enfrentarse un agente. Con base a la retroalimentación se distinguen el
aprendizaje supervisado, el aprendizaje no supervisado y el aprendizaje por
refuerzo. El aprendizaje supervisado consiste en aprender una función que
relacione una entrada con una salida a partir de un conjunto de ejemplos. El
aprendizaje no supervisado solo parte de un conjunto de ejemplos con entrada y
ninguna salida. El objetivo es aprender patrones a partir de la entrada recibida. Por
último, el aprendizaje por refuerzo consiste en aprender haciendo uso de algún
tipo de recompensa.
59
mejorar mediante el aprendizaje. Atendiendo a los distintos tipos de agente que
hay, los componentes son:
llevar a cabo.
Método de inferencia de las propiedades del medio ambiente a partir
de una secuencia de percepciones.
Información de la evolución del m
mundo
undo y de
de los resultados de las
posibles acciones que el agente puede llevar a cabo.
Información de utilidad, que indica llo
o deseable que es un estado.
Información acción-valor, que señala lo deseable que son las
acciones.
Metas que describen las clases de estad
estado
o que maximizan la ut
utilidad
ilidad
del agente.
decir que aprende una función booleana que le indica cuándo parar de acuerdo a
las condiciones del estado actual. Otro ejemplo, con el segundo punto, del
aprendizaje de propiedades a partir de percepciones podría darse, en el caso del
taxi al querer identificar peatones a partir de imágenes durante la conducción.
60
3.2.2 Aprendizaje supervisado
El objetivo del aprendizaje supervisado es aprender una función que relacione
una entrada con una salida según un conjunto de ejemplos. Desde un punto de
vista formal, un ejemplo es un par
salida de la función aplicada a
.. ,,()
, donde es la entrada y
Entonces dado un conjunto de ejemplos, el
(() es la
varianza.
61
combinación de sesgo y varianza alta y baja. La diana superior izquierda tiene una
baja varianza debido a que todos los dardos están muy próximos entre sí y un bajo
sesgo, de modo que están dispuestos en torno al centro. Sin embargo, la diana
que está a su derecha tiene una alta varianza debido a que los dardos están muy
dispersados. La diana inferior izquierda tiene todos los dardos muy próximos entre
sí, de modo que su varianza es baja, pero están dispuestos alejados del centro y,
por tanto, tiene un sesgo elevado. Por último, la diana inferior derecha tiene
valores altos en el sesgo y la varianza.
En el cálculo del error de una hipótesis ℎ hay que distinguir entre el error en la
muestra y el verdadero error. El error muestral se refiere a la tasa de error de la
hipótesis en la muestra de datos disponibles. El otro es el error de la hipótesis
sobre la distribución de los datos, que es desconocida. Por tanto, siempre que
se hable del error se hace referencia al error muestral.
63
y, por lo tanto, solo se tiene acceso al error muestral. Existen diversas técnicas de
validación en función del tamaño de la muestra:
Muestra grande
◦ Resustitución
◦ Holdout
Muestra pequeña
◦ Repeated holdout
◦ K-fold cross-validation
Resustitución
Es el estimador más simple que hay y consiste en usar todo el conjunto de
datos como conjunto de entrenamiento y probar el clasificador en el mismo
conjunto de datos. Al haber sido el clasificador inducido en el mismo conjunto de
datos, la estimación del error es optimista pues el conjunto de reglas de
clasificación aprendidas se ajustan a dicho conjunto de datos. Además favorece
que el sobreajuste en el modelo inducido. El error de clasificación
siguiente modo:
se estima del
= 1 ,∈ 1 − , ()
Donde es el número de ejemplos del conjunto de datos,
( ) ,
es la muestra, el
ejemplo a clasificar, la clase asociada a dicho ejemplo, y es la clase
predicha por el clasificador inducido.
Holdout
Este método de estimación del error divide la muestra original etiquetado en un
64
usará para que se induzca el clasificador mientras que con el conjunto de prueba
se mide la tasa de error que comete el clasificador.
normal suele adoptarse una proporción de 1/2 para cada conjunto o 2/3 para el
conjunto de entrenamiento y el restante 1/3 como conjunto de prueba. El error de
clasificación en el conjunto de prueba se calcula del siguiente modo:
1
= ,∈ 1 − , ()
Donde corresponde al número de ejemplos en el conjunto de prueba, es el
Algoritmos de aprendizaje
Dentro del aprendizaje supervisado existen dos grandes tareas: la regresión y la
clasificación. En regresión la variable que se quiere predecir (variable de salida) es
continua; de modo que el objetivo es inducir, desde un conjunto de entrenamiento,
una función continua que se ajuste a los datos de entrada. Por el contrario, en
clasificación, la variable de salida es discreta y el objetivo es aprender un conjunto
de reglas que permita etiquetar futuros casos. La Figura 4 muestra un ejemplo de
cada una de estas tareas.
66
En clasificación se puede diferenciar entre dos aproximaciones: modelos
discriminativos y modelos generativos. Los modelos discriminativos son aquellos
son aquellos que no intentan modelar los datos sino que basan las reglas de
Naive Bayes
Es un clasificador que se encuadra en los modelos generativos. Partiendo del
teorema de Bayes de probabilidad, a posteriori determina cuál es la hipótesis más
ℎ .
probable del espacio de hipótesis Para ello considera que todas las variables
de entrada son independientes. Dado el teorema de Bayes:
(ℎ|) = (|ℎ())(ℎ)
Con (ℎ ) la probabilidad a priori de la hipótesis ℎ,ℎ,()
es la probabilidad
marginal y corresponde a la probabilidad de que tengamos la muestra dada bajo
todas las posibles hipótesis,
observar la muestra (|ℎ) ℎ,
dada la hipótesis
es la verosimilitud y es probabilidad de
y, por último, (ℎ|) ℎ
es la probabilidad
a posteriori y s corresponde con la probabilidad de que la hipótesis sea teniendo
la muestra .
Entonces la hipótesis más probable será aquella con la máxima probabilidad a
posterioriℎ
ℎ =
∈ (ℎ|) =
∈ (|ℎ())(ℎ) =
∈ (|ℎ)(ℎ)
67
Como puede verse, ( ) puede eliminarse por ser constante para una muestra
dada. A pesar de su sencillez y de la consideración de independencia ente las
variables, es un algoritmo muy popular debido
de bido a los buenos resultados que obtiene
68
Agrupamiento (clustering)
El agrupamiento es una tarea cuyo objetivo es dividir un conjunto de datos en
grupos en base a un criterio. Intuitivamente se buscan grupos de modo que
aquellas instancias que pertenezcan a un mismo grupo son más similares entre sí
que aquellas pertenecientes a grupos distintos.
Para poder llevar a cabo esta tarea es necesario establecer tres componentes:
Medidas de proximidad.
Criterios de evaluación.
Algoritmos de agrupamiento.
Medidas de Proximidad
La proximidad suele medirse con base a una medida de distancia. Para ello hay
que tener en cuenta el tipo de atributos que tienen los datos: numéricos, binarios y
categóricos. En caso de que todos los atributos sean numéricos, las distancias
más empleadas son:
Euclídea: es la distancia más popular y tiene lla
a propiedad de qu
que
e es
invariante a las traslaciones. Se define del siguiente modo:
69
, = −
( ) ( )
Manhattan: es una distancia bastante popular
popular porque ahorra tiempo
de atributos binario
combinaciones de valores
valores
,
haciendo uso de una matriz de confusión. Suponiendo que se tienen dos vectores
y entonces se puede representar el número de
al comparar los atributos de uno
uno y otro vector del
siguiente modo:
punto 1 0
i\punto j
1 a b
0 c d
atributos con 1 en el vector y 0 en el
vectores, del número de atributos con valor 0 en ambos casos, b el número de
y c el caso contrario. Atendiendo a esta
matriz se puede definir un coeficiente de similitud basado en la proporción de
valores que no coinciden:
, =
Existen muchas otras distancias propuestas en la literatura. El motivo de la
multitud de propuesta se debe a que la idoneidad de una distancia no solo se basa
en el tipo de atributos sino también en las características de estos. Una dificultad
añadida es el caso en que se tengan atributos de distinto tipo pues habrá que
tener cuidado con el peso que tiene la medida en cada tipo de atributo.
Criterios de evaluación
La evaluación de un agrupamiento no es una tarea bien definida como en el
caso del aprendizaje supervisado. Ha habido esfuerzos que intentan establecer un
criterio objetivo. Sin embargo, no existe ningún criterio universal debido a que
según el ámbito de aplicación habrá un criterio de evaluación distinto. Además, la
existencia de distintos tipos de grupos hace la tarea de evaluar más difícil aún.
=
∈
( − )
Donde representa una instancia perteneciente al grupo
y es el centroide
72
El problema de conocer el número de grupos suele abordarse mediante dos
aproximaciones principalmente. La primera abarca a aquellos algoritmos de
agrupamiento en el que el número de grupos
estos casos se prueba con distintos valores de
es un parámetro de entrada. En
y se eligen la mejor solución o,
Algoritmos de agrupamiento
Existen un gran número de técnicas que usan distintas aproximaciones para
agrupar. El principal motivo es que dependiendo del campo de aplicación
podremos encontrar tipos de grupos muy distintos. De esta forma un criterio que
va bien en un dominio puede ir mal en otro debido a las características asociadas
a los grupos. Algunos de los distintos tipos de grupos que el algoritmo de
agrupamiento puede encontrarse son mostrados en la Figura 6.
73
Grupos basados en contigüidad.
contigüidad. En este caso cua
cualquier
lquier punto de un
grupo está más próximo a un subconjunto de puntos del mismo
grupo que de cualquier punto de otro grupo.
Grupos basados en densidad.
densidad. Un grupo se caracteri
caracteriza
za p
por
or ser una
región del espacio con una alta densidad de puntos. Son adecuados
para los casos en los que los grupos son de forma irregular y cuando
hay ruido o casos anómalos en los datos.
Grupos conc
conceptuales.
eptuales. Representan un tipo de grupos q
que
ue comparten
una propiedad que deriva del conjunto completo de puntos o que
representan un concepto particular.
Figura 7. Los distintos tipos de grupos que puede encontrarse una técnica de agrupamiento.
Existen diversas técnicas para poder abordar los distintos tipos de grupos que
podemos encontrar. Tres de las aproximaciones más destacadas son:
Particionales. Son algoritmos que dividen los datos en grupos no so
solapados.
lapados.
Jerárquicos. Este tipo de técnicas agrupa los puntos por niveles de m
modo
odo que
la partición se representa mediante un esquema de árbol denominado
74
dendrograma. En función del nivel que se considere el algoritmo indicará un
número de grupos distintos. Tiene dos aproximaciones:
◦ Estrategia aglom
aglomerativa.
erativa. Partiendo de que cada punto es un
grupo, en cada etapa se van fusionando los grupos más próximos
2.2. Ejemplos
En esta sección se estudiará cómo el algoritmo de clasificación Naive Bayes
induce un clasificador para el caso de análisis de sentimiento en Twitter. Hay que
considerar que se quiere ser capaz de predecir para cada tweet que contenga una
de las palabras claves o hashtag entre los sentimientos etiquetados como
, .
y La probabilidad de que dado un tweet este sea
La
positivo según la regla de Bayes es:
(|)
) =((
Hay que recordar que siendo
|) ()
)))())
constante, puede descartarse para
inducir la regla de clasificación porque no afecta a la decisión. Si considera que
cada uno de los tres posibles sentimientos son equiprobables se tendrá:
() = () = () = .
El término (|) se calcula a partir de un conjunto de tweets
75
tiene
modo:
,,...,
. ..,símbolos o tokens, (|) se calculará del siguiente
Una vez se calcule para el sentimiento positivo se continuará con los otros dos
}
ℎ = ∈∈{{,,}
( | ℎ ) ( ℎ )
2.3. Ejercicios de reflexión
1. Describa los algoritmos de clasificación KNN (K-Nearest Neighbors) y C4.5.
Indique, para cada caso y mediante un ejemplo concreto, cómo se induce el
76
clasificador. Tome como referencia la descripción del algoritmo Naive Bayes de la
sección anterior.
2.4. Conclusiones
El aprendizaje automático es un campo de la IA muy activo debido a la
creciente necesidad de analizar datos. Con las mejoras en las tecnologías de
recogida y almacenamiento de información, el volumen de datos almacenados por
parte de cualquier organización ha aumentado exponencialmente. A pesar de los
avances, las tareas de aprendizaje resuelven con éxito tareas muy específicas.
Sin embargo, no se ha podido diseñar un programa que imite el aprendizaje
77
humano debido a que diversos aspectos del cerebro aún son desconocidos. Esto
ha hecho que se creen equipos multidisciplinares que estudien el aprendizaje
desde distintos puntos de vista.
abordará el caso en los que se introduce un elemento aleatorio y, por tanto, las
distintas posibilidades tendrán asociadas una serie de probabilidades que influirán
en la toma de decisiones.
78
contiene varios elementos interesantes. Por una parte se tienen varios agentes
implicados. De lo contrario, solo se tendría un agente decisor y se estaría frente a
un problema de análisis de decisiones y, probablemente, con cierta incertidumbre.
Por lo tanto, un problema de juegos se da si hay al menos dos agentes cuyas
decisiones varían en función de las acciones del otro agente. El segundo aspecto
a destacar es que debe haber algún conflicto de intereses. En caso de juegos en
los que los agentes cooperen, el conflicto se referiría a la coordinación que debe
haber entre los jugadores. La ausencia de conflicto haría el problema más sencillo
y no pertenecería al ámbito de los juegos.
Los juegos en IA han recibido una gran atención debido a sus principales
características:
Cooperación
◦ Cooperativos: los agentes deben asociarse para encontrar una
solución que maximice el beneficio de todos.
◦ Competitivos: los agentes luchan entre sí de modo que el
beneficio de uno implica el perjuicio de otro u otros agentes.
Número de jugadores
◦ Bipersonales: problem
problemas
as con dos agentes y, por naturaleza,
suelen ser no cooperativos.
79
◦ n-personales: implican más de dos jugadores y pueden ser
cooperativos, dando lugar a coaliciones.
Beneficio
◦ Suma nula: en este caso la sum
suma
a del beneficio y pérdida de to
todos
dos
Incertidumbre\Información
Incertidumbre\Información Determinista Estocástico
Perfecta Ajedrez, damas, go Monopoly,
backgammon
80
Batalla naval, Póker, scrabble, guerra
Imperfecta
tictactoe nuclear
81
Figura 7. Juego tres en raya.
El crecimiento exponencial de los nodos hace que los juegos sean difíciles de
resolver, incluso para el caso de tamaños no muy grandes de tablero. Por ejemplo,
para el caso del ajedrez, la ramificación promedio es de 35 y a menudo cada
jugador hace una media de 50 movimientos, de modo que el árbol tiene en torno a
30 10
o nodos aunque sólo 10 nodos son distintos. Por tanto, se requiere la
capacidad de adoptar una estrategia determinada cuando no es factible calcular la
óptima.
Estrategias óptimas
Hay que recordar que en un problema de búsqueda la solución óptima se
alcanza a través de una secuencia de movimientos que conducen a un estado
objetivo. Sin embargo, en un juego se cuenta con dos jugadores (MIN y MAX) y
ahora, a diferencia de un problema de búsqueda, se necesitará una estrategia
óptima que se adapte a las respuestas que vaya dando el oponente. Al igual que
en los problemas de búsquedas normales, encontrar la estrategia óptima deja de
ser factible incluso a partir de problemas no demasiado grandes.
82
Por ejemplo, considere un juego trivial con dos jugadores (MIN y MAX) que
permita mostrar todos los nodos. Los movimientos posibles para MAX se etiquetan
como a1, a2 y a3; y los de MIN como b1, b2, b3. El juego finaliza después de que
Figura 8.
8. Valor minimax de un juego trivial.
83
( )
−() ∈
∈(()
∈ − ( )
∈(() −()
Considerando esta expresión y el árbol de juegos de la Figura 8, se puede ver
que el nodo raíz es un nodo MAX (le toca mover a MAX). Tiene tres sucesores con
valores 3, 2 y 2. El primer nodo MIN, con valor minimax 3, se accede tras ejecutar
MAX el movimiento etiquetado como a1. Dicho jugador tiene tres posibles
movimientos a su vez, que llevan a los nodos terminales. La estrategia óptima
para MAX será aquella que conduzca al valor minimax más alto. Por tanto, elegirá
la acción etiquetada como a1. En el caso de MIN, este también juega de forma
óptima, de modo que elegirá la acción b1. En caso de que MIN no juegue de forma
El Algoritmo Minimax
Es un método de decisión que tiene el objetivo de minimizar la pérdida máxima
esperada en juegos con adversarios e información perfecta. Esta estrategia se
caracteriza por elegir, para cada jugador, el mejor movimiento suponiendo que el
adversario elige el peor. Busca la solución óptima en el espacio de estados (árbol
de juegos) mediante una estrategia primero en profundidad completa. La Figura 9
muestra el pseudocódigo del algoritmo para el cálculo de decisiones minimax. Las
funciones Max-Valor y Min-Valor son las funciones asociadas al jugador MAX y
MIN respectivamente.
y comienza a explorar una de las posibles acciones de MAX, por ejemplo a1. A
continuación, avanza desde el nodo MIN considerando la acción b1 y al llegar a un
84
nodo terminal almacena el valor obtenido por la función utilidad y retrocede para
explorar la siguiente acción de MIN. Esto se lleva a cabo hasta explorar todos los
nodos terminales.
←
variables de entrada: estado, estado actual del juego
Max-Valor(estado)
devolver la acción de SUCESORES(estado) con valor
función Max-Valor(estado) devuelve un valor utilidad
←−∞
si Test-Terminal(estado) entonces devolver Utilidad(estado)
←
para un s en Sucesores(estado)
devolver
S ucesores(estado) hacer
Max( , Min-Valor( ))
para un s en Sucesores(estado)
S ucesores(estado) hacer
←+∞
←
devolver
Min( , Max-Valor( ))
Figura 9. Pseudocódigo del algoritmo para calcular las decisiones minimax y de las funciones Max-Valor y
Min-Valor.
Fuente: adaptado por el autor.
minimax.
←
variables de entrada: estado, estado actual del juego
Max-Valor(estado)
devolver la acción de SUCESORES(estado) con valor
función Max-Valor(estado, ,
) devuelve un valor utilidad
,,
variables de entrada: estado, estado actual del juego
mejor valor encontrado para MAX hasta estado.
mejor
Mejor valor encontrado para MIN hasta estado.
Mejor
←−∞
si Test-Terminal(estado) entonces devolver Utilidad(estado)
para a, s en Sucesores(estado)
S ucesores(estado) hacer
Max( , Min-Valor( ))
← ⩾ ,,
si
devolver
Max(
entonces devolver
)
,,
función Min-Valor(estado) devuelve un valor utilidad
,,
variables de entrada : estado, estado actual del juego
mejor valor encontrado para MAX hasta estado.
mejor
Mejor valor encontrado para MIN hasta estado.
Mejor
←+∞
si Test-Terminal(estado) entonces devolver Utilidad(estado)
← ⩽
para a, s en Sucesores(estado)
si
Min( , Max-Valor(
entonces devolver
,,
S ucesores(estado) hacer
))
Min( )
devolver
← ,,
Figura 10. Pseudocódigo del algoritmo para calcular las decisiones minimax y de las funciones Max-Valor
y Min-Valor.
Fuente: adaptado por el autor.
mínimo valor encontrado. La Figura 10 muestra el pseudocódigo de esta
86
estrategia. Como puede verse, las rutinas son las mismas que la de minimax pero
incluye la posibilidad de poda en caso de que el jugador MAX analice un nodo
cuyo valor asociado sea menor que el menor encontrado .
MIN la poda se lleva a cabo en caso de que el valor asociado a un nodo sea
Del mismo modo para
que tiene un valor asociado de 3. Al ser un nodo MIN, el valor 3 es el valor máximo
que puede tener. B) A continuación, retrocede y explora el siguiente nodom que
tiene un valor de 12. Al ser un nodo MIN, descarta este movimiento por tener un
valor mayor. C) Examinar la tercera acción de MIN, con un valor de 8. Como en el
caso anterior, dicho valor es descartado y ya se sabe que el mejor valor de MIN en
este nodo es exactamente 3, y el del nodo raíz, se sabe que es, al menos, 3. D) A
continuación la estrategia explora la segunda posible acción de MAX. En este
caso, la primera acción de MIN tiene asociado un valor de 2. Al ser el jugador MIN,
este valor será el valor máximo que pueda tener. Sin embargo, la primera acción
que llevó a cabo MAX le dio un valor mejor, 3; de modo que MAX nunca elegiría
esta acción. El motivo es que si MIN pudiera llevar a cabo una acción con un valor
menor en la función de utilidad, MAX descartaría llevar a cabo esta acción (a2).
Por el contrario, si el resto de acciones de MIN son mayores, entonces serán
descartadas pues este jugador elige la acción que minimice la función de utlidad.
E) En este caso, al explorar la última acción posible de MAX (a3), la técnica
examina la primera acción de MIN (d1). En este caso el valor es 14, de modo que
será el valor máximo de la acción de MIN. Esta alternativa es mejor que la que
⩽2. Cualquier otro valor mayor no será considerado por el jugador MIN mientras
que cualquier otro valor menor que seleccione MIN será descartado por el jugador
MAX debido a que encontró, explorando una acción previa, un resultado más
favorable.
Capítulo III
Problema de Satisfacción de Restricciones y Lógica
Aprendizaje
Automático y Juegos
e
d
n
ió a
c
i Introducción
c g
c ó
af L
s
it y Ejemplos
s
a e
S n
e o
i Ejercicios de
d c
a c
i Reflexión
m trs
e
l e
b R Teoría de Jugos
o
r
P
Poda Alfa-Beta
91
92
:→
,, … ,
es un conjunto de variables.
Es una función que asigna un dominio (conjunto de valores
de ) a cada variable. El dominio de una variable suele denotarse
= ,, … ,
cada restricción
Es un conjunto finito de restricciones de modo que
implica algún subconjunto de variables y
especifica las combinaciones aceptables de valores para ese
subconjunto.
Un valor ∈
se dice que es un valor consistente para si existe al menos
una solución del PSR en la que
Un estado del problema está definido por
Cada solución debe ser una asignación completa, de modo que el árbol de
búsqueda tendrá una profundidad equivalente al número de variables .
94
|| − || ≠ 1.
| −− | ≠≠ 3.2.
|| − || ≠ 1.
− ≠ 2.
| − | ≠ 1.
Coloración de Mapas
Dado un conjunto de colores finitos y un mapa dividido en regiones, colorear
cada región de modo que las regiones adyacentes no pueden tener el mismo
color. En la formulación PSR se define una variable por cada región del mapa, y el
dominio de cada variable es el conjunto de colores disponibles. La restricción es
que las variables de dos regiones contiguas no pueden tener el mismo valor.
96
Figura 2.
2. Mapa con cuatro regiones a colorear.
Fuente: elaboración propia.
Variables: {,,,}
Dominio:
Restricciones:
{,{≠,≠,≠,≠,≠}
,}
}
≠,≠,≠,≠,≠ }
97
Figura 3.
3. Grafo de restricciones del problema de coloreado de mapa.
Fuente: adaptado por el autor.
Las técnicas más usuales que se llevan a cabo para manejar un PSR se
pueden agrupar en tres tipos:
98
←ó
si
,óó,ó,
es completa entonces devolver
Selecciona-Variable-Noasignada(Variables[psr], psr)
psr)
si
para cada valor en Orden-Valores-Dominio(
es consistente con asignación de acuerdo a las Restricciones[psr]
psr) hacer
psr)
entonces
=
←≠
añadir {
} aó
si
ó
entonces devolver
Vuelta-Atrás-Recursiva(asignación,
Vuelta-Atrás-Recursiva(asi
=
gnación, psr)
devolver
borrar { } de
Figura 4. Pseudocódigo del algoritmo Vuelta Atrás para problemas de satisfacción de restricciones.
Fuente: adaptado por el autor.
99
La Figura 4 muestra el
el pseudocódigo de la Vuelta Atrás para el PSR. Como
puede verse, se modela sobre la estrategia de búsqueda Primero en Profundidad
recursiva.
5.3. Ejemplos
En esta sección vamos a ver cómo se resolvería el problema de coloración del
mapa mediante la técnica de búsqueda Vuelta Atrás. Para ello consideraremos el
mapa de Australia, que está dividida, tal y como se ve en la Figura 5, en las
siguientes regiones:
Australia Occidental (AO)
Territorio del Norte (TN)
Restricciones:
{,{≠
,≠
≠ ,,
≠}
,
,≠} ≠≠,
,≠ ≠
,,≠≠,
,,
,≠≠
≠ ,,≠≠}≠ ,
Haciendo uso de la librería AIMA, se puede resolver dicho problema con el
código que se muestra en la Figura 6.
import aima.core.search.csp.Ass
aima.core.search.csp.Assignment;
ignment;
import aima.core.search.csp.Bac
aima.core.search.csp.BacktrackingStrategy;
ktrackingStrategy;
import aima.core.search.csp.Map
aima.core.search.csp.MapCSP;
CSP;
Figura 6. Código en Java para resolver el problema de coloreado de las regiones del mapa de Australia con el
algoritmo Vuelta Atrás usando la librería AIMA.
Fuente: elaboración propia.
La casa ve
verde
rde está a la d
derecha
erecha de la ccasa
asa marfil.
El jugador de go es dueño de caracoles.
El hombre de la casa amarilla juega cricket.
El hombre de la casa del medio bebe leche.
El nigeriano vive en la primera casa.
El jjugador
ugador de judo vive cerca del hombre que ttiene
iene un lobo.
El jugador de cricket vvive
ive ccerca
erca d
del
el dueño del caballo.
El jugador de póker bebe jugo de naranja.
El japonés practica polo.
El nigeriano vive cerca de la casa azul.
5.5. Conclusiones
La modelización de un problema como un PSR permite que sea abordado
mediante un amplio número de estrategias. Los PSR han demostrado su utilidad
en ámbitos tan diversos como la investigación operativa, la bioinformática, las
telecomunicaciones, etc.
La sintax
sintaxis:
is: abarca las posibles formas de construir y combinar los
elementos del lenguaje para representar los hechos del dominio real.
Está centrada en la estructura formal del lenguaje.
La sem
semántica:
ántica: determina la relación entre los elementos del lenguaje
y su interpretación en el dominio. Está centrada en las condiciones
de verdad de las oraciones.
Parte estática:
◦ Formada por las estructuras que codifica el problema.
◦ Operaciones para crear, modificar y destruir e
elementos
lementos en la
estructura.
◦ Predicados que dan un mecanismo para consultar esta estructura
de datos.
◦ Semántica de la estructura: se necesita definir la re
relación
lación entre la
realidad y la representación escogida.
Parte dinámica:
◦ Estructuras de datos que almacenan conocimiento referente al
entorno/dominio en el que se desarrolla el problema.
◦ Procedimientos que permiten:
propiedades:
Adecuación de la representación. Capacidad para poder representar de forma
adecuada todo el conocimiento de un dominio, sobre todo el que se considere
relevante.
Adecuación inferencial. Posibilidad de manipular las estructuras de
representación de forma que se puedan derivar nuevas estructuras asociadas
con nuevo conocimiento inferido a partir del antiguo.
Eficiencia inferencial. Pos
Posibilidad
ibilidad de mejorar la eficiencia del proceso
proceso
inferencial mediante la inclusión de estrategias que agilicen dicho proceso.
Eficiencia adquis
adquisicional.
icional. Ca
Capacidad
pacidad para incorporar nuevo conocimiento de
forma sencilla.
representa alguna aserción acerca del mundo. Además, el agente debería estar
dotado de tres cualidades fundamentales:
DECIR(BC, CONSTRUIR-SENTENCIA-DE-PERCEPCIÓN(pe
CONSTRUIR-SENTENCIA-DE-PERCEPCIÓN(percepción,
rcepción, t))
acción ← PEGUNTAR(BC, PEDIR-ACCION(t))
DECIR(BC, CONSTRUIR-SENTENCIA-DE-ACCIÓN(acción,
CONSTRUIR-SENTENCIA-DE-ACCIÓN(acción, t))
t←t+1
devolver acción
Figura 7. Programa de un agente basado en conocimiento genérico.
Fuente: adaptado por el autor.
5.8. Lógica
En esta sección se expondrá la representación del conocimiento basado en
lógica. Como se dijo anteriormente, se caracteriza por tener una base teórica muy
sólida y porque los mecanismos de inferencia son potentes y conocidos. Además,
separa el conocimiento del razonamiento. La lógica, como mecanismo de
representación, consta de tres elementos:
Razonamiento automático
En inferencia es importante poder representar estructuras con conocimiento
para poder caracterizar el nuevo conocimiento generado. Existen varios tipos de
razonamientos lógicos para inferir:
Razonamiento deductivo: razonamiento q
que
ue pasa, a partir de un conocimiento
conoci miento
general, a otro específico. El nuevo conocimiento generado es cierto si parte
de otro conocimiento cierto. Abarca las reglas de inferencias de la lógica (por
ejemplo, el Modus Ponens).
Razonamiento inductivo: se caracteriza por generalizar a partir de un
conocimiento más específico. Este es el mecanismo del aprendizaje
automático.
Razonamiento abductivo: este método de razonamiento parte de un
conocimiento (reglas y hechos observados) y genera un conjunto de
explicaciones posibles o hipótesis que harían, usando la deducción, coherente
el conocimiento de partida.
falsas) sobre un hecho único del dominio. De igual forma, estas proposiciones
pueden combinarse mediante conectores para expresar hechos más complejos.
Sin embargo, esta lógica padece de poca expresividad debido a la dificultad de
expresar un conjunto de hechos con características comunes pues una
proposición está asociada a un hecho y no permite la cuantificación.
Sintaxis y semántica
La sintaxis se compone de los siguientes elementos:
Sentencia atóm
atómica:
ica: representa los elem
elementos
entos sintácticos indivisibles que se
componen de un único símbolo proposicional.
◦ Constantes lógicas. Son dos símbolos proposicionales con
significado fijado: verdadero (V) y falso (F).
◦ Proposiciones lógicas. Son símbolos proposicionales que pueden
ser verdadera o falsa. Suelen usarse mayúsculas para denotar
estos símbolos: P, Q, R, etc.
Conectivas lógicas: pe
permite
rmite construir sentencias complejas combinando
sentencias más simples. Existen cinco conectivas:
(no) se denomina negación.
◦
◦
◦
∧¬∨
(y) se denomina conjunción.
(o) se denomina disyunción.
◦ ⇒
(implica) se denomina implicación y está compuesto por una
premisa o antecedente y una conclusión o consecuente. También
se les conoce como reglas si-entonces.
◦ ⇔
(si y solo si) se denomina bicondicional.
Sentencias: son elementos sintácticos que se const
construyen
ruyen a partir de átomos
Sintaxis y semántica
Los elementos sintácticos básicos de la LPO son los símbolos que representan
los objetos, las relaciones y las funciones. Por lo tanto, los símbolos se agrupan en
tres tipos:
Monaria: s (siguiente).
◦
◦ Binarias:{+,∗}.
111
◦ Símbolo de igualdad:
Símbolos auxiliares:
.
◦ Los paréntesis: “(“, “)”.
◦ La coma: “,”.
◦
,<∗∗ +, ()
Sentencias atóm
atómicas.
icas. Representan hech
hechos
os y están form
formados
ados por un sím
símbolo
bolo
de predicado seguido de una lista de términos entre paréntesis. Estas
sentencias pueden tener términos complejos. Una sentencia atómica es
verdadera en un modelo dado, y bajo una interpretación dada, si se cumple la
relación (símbolo de predicado) entre los objetos (argumentos). Continuando
con el ejemplo de la aritmética:
◦
∗1<
∗1<(
∗ (,,11), (().) es una sentencia atómica que se suele escribir como
112
◦ +co(m,,o+
)+=∗(=,,)∗ es. una sentencia atómica que se suele escribir
Sentencias compuestas. Las sentencias pueden hacerse más
más complejas
haciendo uso de las conectivas lógicas. La semántica es idéntica a la de la
lógica proposicional.
Cuantificadores. Para poder expresar
expresar propie
propiedades
dades de colecciones de o
objetos,
bjetos,
se puede hacer uso de los cuantificadores para no tener que enumerarlos
todos. La LPO tiene dos cuantificadores:
◦ Cuant
“para i
t f
o i c ador
do. . ”. uni v ersal ( ) . H ace ref erenci a a t o do obj et o y se l ee
◦ Cuant i f i c ador exi s t enci al ( ) . Permi
indicando que de todos los objetos existe al menos uno sint e const r ui r enunci a dos
nombrarlo específicamente. Se lee “existe. .”.
Igualdad. La LPO usa el sím
símbolo
bolo de igualdad para construir enunciados
describiendo que dos términos se refieren al mismo objeto.
Uso de la LPO
Se parte de una BC a la que se irán añadiendo sentencias mediante DECIR,
que corresponde a una sentencia que se denomina aserción. Por ejemplo, se
puede afirmar que un rey es una persona mediante la siguiente sentencia
Además, se puede preguntar a la BC
,∀(
mediante
() ⇒(
⇒().
PREGUNTAR. Por ejemplo,
,(()
sentencia se denomina petición u objetivo. Estas dos interfaces permiten
). Esta
Relaciones (de pa
parentesco):
rentesco): progenitor, descendiente, hijo, hija, cónyuge,
esposo, esposa,... → predicados binarios pprogenitor, descendiente, hijo, hija,
cónyuge, esposo, esposa,…
Funciones: padre y madre → funciones padre y madre
∀,() =⇔() ∧(,,)
El esposo de alguien es su cónyuge masculino.
∀,(,, ) ⇔() ∧ó(,,)
Masculino y femenino son géneros disjuntos.
∀(() ⇔¬(()
Progenitor y descendiente son relaciones inversas.
Cada una de estas sentencias puede verse como un axioma del dominio de
parentesco. Sin embargo, no todas las sentencias son axiomas. Algunas son
teoremas pues son deducidas a parir de los axiomas. Desde el punto de vista
lógico, la BC solo necesita saber tener los axiomas de modo que todo el
conocimiento derivará en forma de teoremas y, por lo tanto, no es necesario
almacenarlos en la BC. Sin embargo, desde un punto de vista práctico, su
almacenamiento reducirá el coste computacional para derivar nuevo conocimiento
pues en caso de no almacenarlo siempre tendrá que empezar desde los axiomas.
5.10. Ejemplos
A continuación se analizará el modelo de lógica de primer
primer orden que se muestra
en la Figura 8. El modelo consta de:
Cinco objetos: Ricardo corazón de León, Juan, pierna izquierda de R
Ricardo,
icardo,
pierna izquierda de Juan y una corona.
Dos relaciones binarias: hermano y sobre la cabeza.
114
Fuente: http://www.slideshare.net/rushdishams/first-order-logic-26695335
◦
◦
Ricardo se refiere a Ricardo Corazón de León.
Símbolos de constante:
◦ Sobre
coronal a cabeza
que est á se ref
sobre i ere
su a l a
cabeza.rel aci ó n que hay ent re el Rey Ju an y l a
◦ Persona, rey y corona hacen referencia a los conjuntos de objetos
Símbolo de función ppierna
ierna izquierda es una función que se refiere a la pierna
Tipos de símbolos:
constantes
predicado
función
- Símbolos a identificar: libre, a, superior, bajo, b, es_bloque,
e s_bloque, d, e, sobre_mesa,
pila, sobre, encima, tope y c.
Si es o no un término:
◦
◦
Superi o r (superi
Libre (superior(c)). [N]o r(c)). [ S ]
Si es o no una sentencia atómica:
◦
◦ Libre (c)(superi= superi
Tope or(c))or(b)[S] [S]
4. Traduzca a lógica de primer orden:
El Everest es la montaña más alta de la ttierra.
ierra.
Hay al menos dos manzanas en el barril.
Elena se comió una set
seta
a que había sseleccionado
eleccionado ella misma.
Ninguna rana amarilla es comestible.
Todos los estudiantes hornearon, al menos, dos bizcochos.
117
Conclusiones
En IA la búsqueda es el núcleo de muchos procesos inteligentes como la
deducción, la planificación, prueba automática de teoremas, etc. Una de las claves
de su importancia radica en que es una técnica que permite encontrar una
solución a un problema cuando no se conoce una aproximación directa al
problema. Para ello abordan un problema reduciéndolo a una búsqueda en el
espacio de estados, y dicha búsqueda puede representarse mediante una
estructura de tipo árbol.
118
En el tercer capítulo, se vieron qué características hay que tener en cuenta para
representar el conocimiento. Además, se introdujeron los dos tipos de lógica más
usados (la lógica proposicional y la de primer orden) como lenguaje para poder
representar dicho conocimiento. El motivo por el que la LPO ha desbancado la
popularidad de la lógica proposicional se debe a las limitaciones de esta,
principalmente, en la expresividad. Sin embargo, la lógica proposicional es muy útil
para los casos en los que no importa el contenido de la proposición sino la
estructura de la información.
119
Glosario
Bibliografía
Wooldridge, M., & Jennings, N.R. (1995). Intelligent agents: theory and practice.
Knowledge Enginnering Review, 10 (2), p. 115-152.
Russel, S., Norvig, P., (2008). Inteligencia Artificial. Un enfoque moderno. Madrid:
Pearson Prentice Hall.
Witten, I.H., Frank E. (2005). Data Mining. Practical Machine Learning Tools and
Techniques. San Francisco: Morgan Kaufmann.
Russel, S., Norvig, P., (2008). Inteligencia Artificial. Un enfoque moderno. Madrid:
Pearson Prentice Hall.
123
124
125
126