Está en la página 1de 127

o

Editorial Universidad Manuela Beltrán

Fundamentos de Inteligencia Artificial

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

Miguel García Torres Carlos Andres Collazos


Dr. En Ciencias de la Morales
Computación e Inteligencia Postdoctorado en Ciencia y
Artificial, Investigador Tecnología Avanzada, Dr. en
Postdoctoral en el Instituto Ciencias, Magister en
Nacional de Técnica Ingeniería Electrónica y
Aeroespacial, Magíster en Computadores, Físico.
Informática, Físico.

Carlos Augusto Sanchez Breed Yeet Alfonso Corredor


Martelo Dr. (c) en Proyectos, Magister
Dr. (c) en Pensamiento en Educación, Especialista en
Complejo, Maestría en Diseño, Desarrollo e Implementación
Gestión y Dirección de de Herramientas Telemáticas,
Proyectos, Ingeniero de Ingeniera Electrónica,
sistemas, Certificado Directora Académica y
Internacionalmente en ITIL Foundation v3, Calidad, Consultora Nacional e Internacional
Procesos en Desarrollo de Software y TIC Académica de Educación Superior.

Henry Leonardo Avendaño José Daniel Rodríguez Munca


Delgado Magister en Ciencias de la
Dr. (c) en Educación línea de Educación, Master en
investigación Tecnologías de Estrategias y Tecnologías
la Información y para el Desarrollo
Desarrollo,,
Comunicación para la Especialista en docencia
inclusión, Magister en mediada por las TIC e
Educación, Especialista en Gerencia de Ingeniero Electrónico.
E lectrónico.
Telecomunicaciones, Ingeniero Electrónico.

Manuel Antonio Sierra Daniela Suarez Porras


Rodríguez Corrección
Corrección de estilo (Editor secundario)
Dr. (c) en Proyectos en la línea
de investigación en Diagramación: Cesar Augusto Ricaurte
Tecnologías de la Información Diseño de portada: Cesar Augusto Ricaurte
y Comunicación, Magíster en
Software Libre, Especialista en Publicado en Diciembre de 2018
Seguridad en Redes, Ingeniero de Sistemas, Formato digital PDF (Portable Document Format)
Consultor en Seguridad de la Información y
Comunicaciones.

Domingo Alirio Montaño Arias Editorial Universidad Manuela Beltrán


Dr. En Genética, Magister en Avenida Circunvalar Nº 60-00
Biología, Biólogo, Investigador Bogotá – Colombia
Asociado, Universidad Manuela Tel. (57-1) 5460600
Beltrán, BSc, MSc, PhD
Intereses de investigación en

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

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
Fundamentos de Inteligencia Artificial, Bogotá, UMB
Inteligencia Artificial

© 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

© Universidad Manuela Beltrán


Bogotá, Colombia
http:// www
www.umb.edu.co
.umb.edu.co
Queda prohibida la reproducción total o parcial
p arcial de este libro por
cualquier proceso gráfico o fónico, particularmente por fotocopia,
Ley 23 de 1982
Autoridades Administrativas

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

1.2.3 Agentes Inteligentes ............................................................................................................ 24


1.3. Ejemplos ........................................................................................................................ 32
1.4. Ejercicios de reflexión ................................................................................................ 36
1.5. Búsqueda de Datos ..................................................................................................... 40
1.5.1. Introducción ......................................................................................................................... 40
1.5.2. Búsquedas no Informadas ................................................................................................. 43
1.5.3. Búsquedas informadas ...................................................................................................... 46
1.5.4. Ejemplos ............................................................................................................................... 49
1.5.5. Ejercicios de Reflexión ....................................................................................................... 54
Capítulo 2: Aprendizaje Automático y Juegos .................................................................. 57
2. Aprendizaje Automático y Juegos ............................................................................... 57
2.1. Introducción .................................................................................................................. 57
2.2. Ejemplos ........................................................................................................................ 75
2.3. Ejercicios de reflexión ................................................................................................ 76
2.4. Conclusi
Conclusiones
ones ................................................................................................................ 77
2.5. Teoría de Juegos ......................................................................................................... 78
2.6. Los Juegos Como un Problema de Búsqueda ...................................................... 81
2.7. Poda Alfa-Beta .............................................................................................................. 85
2.8. Ejemplos ........................................................................................................................ 87
2.9. Ejercicios de Reflexión ............................................................................................... 89
Capítulo 3: Problema de Satisfacción de Restricciones y Lógica.................................
................................ . 93

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

5.5. Conclusi ones .............................................................................................................. 102


Conclusiones
5.6. Conocimiento Racional ............................................................................................ 102
5.7. Representación del Conocim Conocimiento iento y RazonRazonamientoamiento...........................................
................................ ........... 103
5.8. Lógica .......................................................................................................................... 107
5.9. Tipos de lógica ........................................................................................................... 108
5.10. Ejempl
E jemplos
os .................................................................................................................... 114
5.11. Ejercicios de reflexión ............................................................................................ 116

14
PRÓLOGO

La inteligencia artificial (IA) es una de las disciplinas computacionales más


demandadas que afectan, sin darnos cuenta, nuestro día a día. Tareas como

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.

El objetivo de la IA no es reemplazar al humano sino mejorar la calidad de vida


de este asumiendo trabajos que hasta ahora solo podían ser realizados si hay una
inteligencia detrás que lo lleve a cabo. Sin embargo, el desconocimiento que aún
se tiene del cerebro hace que todavía estemos lejos de diseñar un software que
actúe de forma inteligente en aplicaciones diversas teniendo que poner el foco en
mejorar la realización de tareas específicas. A la par que se van produciendo
mejoras es inevitable que surjan cuestiones éticas y morales sobre el objetivo de
simular o reproducir un ser inteligente.

Miguel García Torres

15
16
INTRODUCCIÓN

La resolución de problemas es uno de los procesos básicos del razonamiento


que la IA trata de abordar. El objetivo es conseguir que un agente encuentre una
solución a un determinado problema de una forma equiparable o superior a como
lo haría un humano.

Esta unidad introduce la resolución de problemas como un proceso de


búsqueda en el espacio de posibles estados en los que puede encontrarse la
solución. Esta área está bastante ligada a las matemáticas y no requiere usar
mecanismos de la mente para abordarlo; por tanto, es una de las primeras áreas
de la IA que empezó a desarrollarse.

A lo largo de esta unidad se verá cómo se plantean este tipo de problemas.


También se expondrán las distintas estrategias que hay para abordar estos
problemas en función de la información que tengan las estrategias del problema
en cuestión.

El aprendizaje automático es una rama de la IA que tiene el objetivo de


desarrollar técnicas que le permitan a las computadoras aprender. Generalmente
se lleva a cabo mediante un proceso de inducción del conocimiento en el que se
pretende generalizar reglas a partir de ejemplos concretos.

A lo largo de este libro se abordará el aprendizaje supervisado y el no


supervisado. En el aprendizaje supervisado se persigue aprender una función que
establezca una correspondencia entre las entradas que recibe el algoritmo y la
salida deseada. En el no supervisado, en cambio, el objetivo es reconocer
patrones que ayuden a describir los datos de entrada. Las posibles aplicaciones
del aprendizaje automático son muy diversas y algunas de ellas precisamente son
los motores de búsqueda, el diagnóstico médico, detección de fraude en el uso de

17
las tarjetas de crédito, reconocimiento del habla, clasificación de secuencia de
ADN, etc.

La modelización de un problema como un problema de satisfacción de


restricciones (PSR) es una metodología utilizada para la descripción y posterior
resolución efectiva de cierto tipo de problemas, típicamente combinatorios y de
optimización. Las principales aplicaciones de este tipo de problema son
planificación, razonamiento temporal, diseño en la ingeniería, problemas de
empaquetamiento, criptografía, diagnóstico, toma de decisiones, etc.

Los primeros trabajos relacionados con la programación de restricciones datan


de los años 60 y 70 en el campo de la inteligencia artificial. La importancia de esta
área radica en que muchas decisiones que se toman diariamente están sujetas a

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.

La segunda unidad aborda un tipo de agentes basados en objetivos que plantea


la resolución de problemas como una búsqueda de la secuencia de acciones que
llevan desde un estado inicial a otro final deseado. También se abordarán dos
tipos de técnicas de búsquedas (informadas y no informadas) cuya principal

diferencia radica en la información que tiene cada aproximación del problema a


resolver.

1. Introducción y Búsqueda de Datos


1.1. Introducción
La inteligencia artificial es un área multidisciplinaria que estudia la creación y el
diseño de sistemas computacionales para realizar tareas intelectuales. Es una de

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.

A lo largo de este libro se dará una visión global de la IA presentando los


conceptos básicos e introduciendo el contexto histórico y cultural en el que se
desarrolla esta nueva ciencia. Finalmente, se continuará con el concepto de
agente, inherente al campo de la IA.

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.

Desde un punto de vista etimológico, el término inteligencia proviene de las


palabras latinas inter (entre) y legere (escoger), es decir, la facultad de saber
elegir. Sin embargo, no basta con acumular información para saber, sino que se

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.

Actualmente no existe una única definición de IA aceptada


ace ptada en la comunidad sino
que hay varias propuestas que hacen énfasis en algunos de los aspectos que han
sido identificados como parte de la misma. Para el propósito de esta asignatura se
entenderá la IA como una disciplina que trata de desarrollar sistemas capaces de
adoptar comportamientos que, si fuesen realizados por humanos, no dudaríamos
en calificar de inteligentes.

Formas de hacer inteligencia artificial


Existen distintas aproximaciones de cara a la simulación de la conciencia por un
ordenador:

 IA fuerte: toda actividad mental puede simularse.

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.

La tercera postura, defendida principalmente por R. Penrose, afirma que hay


hechos que no pueden ser simulados computacionalmente. Por último, la cuarta
postura podría parecer la más próxima a la religión. No obstante, cualquiera de las
tres anteriores también puede ser compatible con la religión. Si bien es verdad que
la ciencia podrá responder, en un futuro, la pregunta de cómo funciona la mente,
nunca podrá responder la pregunta de por qué existe la mente o cuál es su fin
último.

1.2.2 Historia de la Inteligencia Artificial


Desde un punto de vista histórico, el ser humano ha expresado su anhelo por

replicar la inteligencia humana a través de mitos y leyendas. La filosofía también

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.

1.2.3 Agentes Inteligentes


En la IA ha surgido un nuevo paradigma conocido como paradigma de agente
inteligente, el cual aborda el desarrollo de entidades que puedan actuar de forma
autónoma y razonada. De acuerdo a este nuevo paradigma la IA se puede
considerar como una disciplina orientada a la construcción de agentes inteligentes.

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

puede recibir entradas en cualquier momento. El historial completo de todas las

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.

Figura 1. Abstracción de un agente a partir de su interacción con el medio ambiente.


Fuente: Russell & Norvig (2008).

Otra definición bastante aceptada es aquella que ve a un agente como “un


sistema de computación capaz de actuar de forma autónoma y flexible en un
entorno” (Wooldridge & Jennings, 1995). En dicha definición, la flexibilidad se
identifica con una serie de características que deberían tener los agentes:

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

A pesar de que no está claro el grado de importancia de cada propiedad, este


conjunto de propiedades son las que distinguen a los agentes de meros
programas.

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.

En este contexto se puede afirmar que el comportamiento de un agente es


racional si el agente, partiendo de una secuencia de percepciones, así como del
conocimiento del entorno, elige el conjunto de acciones que optimicen la
medida de rendimiento.

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

los sensores con los que percibe.

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:

 Totalmente observable vs. parcialmente observable. Un estado de trabajo


totalmente observable es aquel al que se tiene acceso al estado completo
del medio en cada momento mediante los sensores. En este caso el
agente no necesita mantener ningún estado interno para percibir cómo
está el entorno. La parcialidad del entorno puede deberse al ruido y/o
problemas con los sensores por su precisión o por recibir información
parcial.
 Determinista vs. estocástico. Un entorno es determinista si el estado del
medio depende del estado anterior y de la acción que llevó a cabo el
agente. Un medio determinista puede parecer estocástico si es
parcialmente observable. Debido a esto suele considerarse un medio
determinista o estocástico desde el punto de vista del agente.
 Estático vs. dinámico. Un entorno se dice dinámico si este puede cambiar
mientras el agente adopta una decisión sobre la acción. En caso contrario
es estático. En entornos estáticos no es necesario preocuparse por el
paso del tiempo mientras que en los dinámicos sí y hay que estar
preguntando al agente constantemente qué acción llevar a cabo.
 Agente individual vs. multiagente. Que un sistema sea o no multiagente
dependerá de si identificando otras entidades como agentes mejora o no
el rendimiento del agente. Por ejemplo, se pueden encontrar entornos
multiagente competitivo en caso de juegos como el ajedrez, multiagente
parcialmente colaborativo como en caso de conducción autónoma, etc.

Estructura de los agentes


La estructura de un agente se caracteriza por los siguientes componentes:

28
Agente = arquitectura + programa

La arquitectura hace referencia al computador que tiene asociado una serie de


sensores físicos y actuadores. El programa, sin embargo, hace referencia al
software que determina el comportamiento del agente e implementa la función
percepción-acción. La IA se encarga de diseñar el programa del agente.

Los cuatro tipos básicos de programas para agentes son:


 Agentes reactivos simples. Representa e
ell titipo
po de agentes más sencillo y
en él, el proceso del agente es un ciclo percepción-acción que reacciona a
la evolución del entorno.
 Agentes reactivos basados en m
modelos.
odelos. El agente crea un modelo del
entorno basándose en las percepciones y acciones previas.

Agentes basados en objetivos. Este
Este tipo se da para casos en los que se
requiere, además de la descripción del estado actual, algún tipo de
información sobre el objetivo perseguido que describa las situaciones
deseables. En cada estado se evalúan las acciones y se elige la que
permite alcanzar la meta. En este caso el conocimiento que soporta la
acción está representado explícitamente y puede modificarse.
 Agentes basados en utilidad. E
En
n este caso se usa una función que asocia
un número real a un estado (o conjunto de estados). Dicho valor
representa un nivel de éxito. Además, a diferencia del caso anterior,
permite adoptar decisiones antes dos tipos de casos en los que las metas
no son adecuadas:
 Objetivos conf
conflictivos.
lictivos. En estos caso sol
solo
o son alcanzables a
algunos
lgunos de los
objetivos y la función de utilidad determina el equilibrio adecuado de la
acción a realizar.
 Varios objetivos y no hay certeza de a
alcanzar
lcanzar ninguna de e
ellas.
llas. La función
de utilidad sirve para ponderar la posibilidad de tener éxito considerando
la importancia de cada meta.

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.

2.. Esquema de agente reactivo simple.


Figura 2
Fuente: adaptado por el autor.

El programa del agente


agente se m
muestra
uestra en la Figura 3. La función INTERPRETAR-
ENTRADA genera una descripción abstracta del estado actual del entorno a partir
de lo que perciben los sensores. A continuación, REGLA-COINCIDENCIA busca
de entre el conjunto de reglas que hay, la primera que coincide con el estado
actual. Finalmente, con dicha regla, REGLA-ACCIÓN devuelve la acción que
llevará a cabo el agente.

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.

Agentes reactivos basados en modelos


Estos agentes asocian a cada situación del entorno (formado por las
percepciones y los datos históricos) una acción, de modo que una misma
percepción puede dar lugar a acciones distintas. Para ello, mantiene un estado
interno con información pasada y no observable del estado actual. La percepción

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.

Figura 4. Estructura de un agente reactivo basado en modelo.


Fuente: adaptado por el autor.

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.

Considerando lo anterior, el programa del agente sería de la forma que puede

verse en la Figura 7. El agente es capaz de percibir el estado de la cuadrícula y su


ubicación. Primero revisa el estado de la cuadrícula y, en caso de estar sucio,
procede a pasar a la acción de aspirar. En caso contrario, se desplaza de una
cuadrícula a otra.

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

A continuación se procederá a crear un programa agente aspiradora usando la


biblioteca Russel y Norvig (Russel y Norvig 2008). Para ello hay que descargar
dicha biblioteca de http://aima.cs.berkeley.edu/code.html y descargar la versión en
Java (aima-java). Una vez descargada, se puede proceder a crear el archivo jar
con Netbeans. Una vez hecho, se puede crear un proyecto nuevo y poner dicho
archivo (aima-core-0.11.1.jar) como biblioteca de este proyecto.
import aima.core.environment.
aima.core.environment.vacuum.ReflexVacuumAgent;
vacuum.ReflexVacuumAgent;
import aima.core.environment.
aima.core.environment.vacuum.VacuumEnvironment;
vacuum.VacuumEnvironment;
import
aima.core.environment.vacuum.VacuumEnvironmentViewActionTracker;

public class AgenteReactivoSimple {

public static void main(String[] args) throws Exception {


StringBuilder envChanges = new StringBuilder(
StringBuilder(“”
“”);
);
ReflexVacuumAgent agent = new ReflexVacuumAgent();
VacuumEnvironment environment = new VacuumEnvironment(
VacuumEnvironment.LocationState.Dirty
VacuumEnvironment.LocationState.Dirty,
VacuumEnvironment.LocationState.Dirty
VacuumEnvironment.LocationState.Dirty);
environment.addAgent(agent, VacuumEnvironment.LOCATION_A
VacuumEnvironment.LOCATION_A);
environment.addEnvironmentView(new
environment.addEnvironmentView(new
VacuumEnvironmentViewActionTracker(envChanges));
System.out.println(“Step
System.out.println(“Step #0 => status: ” +
environment.getCurrentState());
int n = 5;
for (
(int
int i = 0; i < n; i++) {
environment.step();
System.out.println(“Step
System.out.println(“Step #” + (i + 1) + “ action: ” +
envChanges + “ => status: ” +
34
environment.getCurrentState());
envChanges = new StringBuilder(
StringBuilder(“”
“”);
environment.addEnvironmentView(new
environment.addEnvironmentView(new

Una vez hecho esto se procede a crear la clase AgenteReactivoSimple tal y


como se ve en la Figura 8. La clase ReflexVacuumAgent crea una agente
aspiradora de tipo agente reactivo simple. El entorno de la aspiradora es creado
instanciado una clase de tipo VacuumEnvironment. A dicho entorno se le asocia
el agente anteriormente creado y se pone el estado de cada cuadrícula.
Finalmente la actualización de cada estado es escrita en una clase de tipo
StringBuilder. Inicialmente se ve el estado del entorno y, posteriormente, tras cada
etapa, se visualizará la acción a realizar y el estado del agente.

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.

step #0=> status: {A=Dirty, B=Dirty}


step #1 action: Action[name==Suck] => status: {A=Clean, B=Dirty}
step #2 action: Action[name==Right] => status: {A=Clean, B=Dirty}
step #3 action: Action[name==Suck] => status: {A=Clean, B=Clean}
step #4 action: Action[name==Left] => status: {A=Clean, B=Clean}
step #5 action: Action[name==Right] => status: {A=Clean, B=Clean}

Figura 9. Salida del programa agente aspiradora.


Fuente: elaboración propia.

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.

Agente Rendimiento Entorno Actuadores Sensores


Cámaras,
sónares,
Seguro,
Dirección velocímetro,
rápido, legal, Carreteras,
viaje tráfico, acelerador, GPS,
Taxista freno, señal, tacómetro,
confortable, peatones,
bocina, visualizador de
maximización clientes
visualizador la aceleración,
del beneficio
sensores del
motor, teclado

2. Considere que se quiere diseñar un agente tutor interactivo de inglés.


Especifique los distintos componentes REAS del entorno de trabajo en el que se
encontrará el taxi.

Agente Rendimiento Entorno Actuadores Sensores

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

Problema/ Observable Determinista Estático Agentes


Tipo de (totalmente o (determinista o (est. o (individual o
entorno parcialmente) estocástico) dinámico) multiagente)

Taxista Parcialmente Estocástico Dinámico Multiagente

Tutor
interactivo de Parcialmente Estocástico Dinámico Multiagente
inglés

4. Haciendo uso de la biblioteca usada en la sección anterior, implemente un


agente aspiradora de tipo reactivo basado en modelo. ¿Qué diferencias encuentra
con el agente reactivo simple?

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;

public class AgenteReactivoBasadoEnModelo {


public static void main(String[] args) throws Exception {
StringBuilder envChanges = new StringBuilder(“”);
S tringBuilder(“”);
nt agent =
ModelBasedReflexVacuumAgent
ModelBasedReflexVacuumAge
new ModelBasedReflexVacuumAg
ModelBasedReflexVacuumAgent();
ent();
VacuumEnvironment environment = new VacuumEnvironment(
VacuumEnvironment.LocationState.Dirty,
VacuumEnvironment.LocationState.Dirty);
environment.addAgent(agent,
environment.addAgent(agent, VacuumEnvironment.LOCATION_A
VacuumEnvironment.LOCATION_A);
);
environment.addEnvironmentView(new
VacuumEnvironmentViewActionTracker(envChanges));
environment.stepUntilDone();
System.out.println(“Actions:
System.out.println(“Actions: ” + environment);

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

general. Históricamente, esta área ha sido un vaivén de expectativas y


decepciones. Sin embargo, la incorporación de la IA en distintos los ámbitos de
nuestra vida ha crecido exponencialmente en los últimos años debido a la
creciente necesidad de analizar grandes volúmenes de datos de forma
automatizada (big data) en un tiempo razonable. Tareas cotidianas como
búsqueda de información en un buscador, la detección de correo basura ( spam),
visualización de anuncios personalizados en función de los gustos del usuario en
una red social incorporan IA.

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.

Uno de los mayores logros de la IA es el de desarrollar técnicas que lleven a


cabo el análisis de datos de forma automatizada. Esto hace que los expertos
puedan dedicarse a tareas más reflexivas. A pesar de eso, aún queda mucho

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

resolvente-problemas. Su principal característica es que buscan la secuencia de


acciones que conduzca a los estados deseables. Para ello elige un objetivo que
tratará de satisfacerlo y buscará la secuencia de acciones que conduzcan desde
un estado inicial a algún estado objetivo. De cara a poder resolver un problema de
búsqueda es necesario realizar los siguientes pasos:

 Formulación del objetivo: este p


primer
rimer paso consiste e
en
n ffijar
ijar las metas
perseguidas en base a la situación actual y la medida de rendimiento
del agente. Este objetivo se considera un conjunto de estados que
satisfacen dicho objetivo.
 Formulación del problema: tras fij
fijar
ar el objetivo, lo siguiente es dec
decidir
idir
qué acciones y estados tienen que ser considerados. Para ello habrá
que realizar un proceso de abstracción que elimine aquellos detalles
del problema que no aportan información útil y/o dificulten su
resolución.
 Búsqueda: proceso que consiste en la estrategia que exam
examina
ina
diferentes secuencias posibles de acciones para hallar aquella que
nos lleve al objetivo perseguido. Tiene como entrada un problema y,
como salida, una solución.
 Ejecución: e
ell conj
conjunto
unto de acciones recom
recomendadas
endadas por la solución
que son llevadas a cabo.
 Por ejem
ejemplo,
plo, se puede considerar el ssiguiente
iguiente problem
problema
a de ruta.
Suponga que estamos en Rumanía, en la ciudad de Arad. El avión
de vuelta sale de Bucarest. Las distintas etapas a seguir son:
 Formulación del obj
objetivo:
etivo: llegar a Bucarest en el m
menor
enor tiempo
posible.

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.

Para formular un problema es necesario definir los siguientes componentes:


 Estado inicial en el que comienza el agente.
 Conjunto de acciones que puede lllevar
levar a cabo el agente. Para ello
suele usarse una función sucesor que asocia, a cada estado, el par
acción y estado al que puede acceder el agente. El estado inicial
junto con la función sucesor definen el espacio de estados del
problema, que representa el conjunto de todos los estados
alcanzables desde el estado inicial.

Coste del camino es una función que asigna un coste numérico a


( )
cada camino. Para ello deberá ser capaz de asociar, a cada acción,
un coste individual.
 Test obj
objetivo
etivo que determina ssii un estado es u
un
n estado objetivo.

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.

Como se ha visto, resolver un problema consiste en buscar el conjunto de


acciones en el espacio de estados. Una solución no es más que un camino desde
un estado inicial a un estado objetivo. La calidad de dicha solución se mide a
través de la función de costo. Diremos que una solución es óptima si es aquella
que optimiza dicha función de costo. Sin embargo, existen diversas estrategias

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:

 Completitud: hace referencia a si encuentra la solución en caso de


que exista.
 Optimalidad: si encuentra la m
mejor
ejor solución en caso d de
e que haya
varias.
 Complejidad temporal: ¿cuánto tiempo tarda en encontrar la
solución?
 Complejidad espacial: ¿cuánta memoria utiliza durante la búsqueda?

1.5.2. Búsquedas no Informadas


Este tipo de estrategias no dependen de la información propia del problema para
resolverlos. Basan la búsqueda en la estructura del espacio de estados y aplican
estrategias sistemáticas para su exploración. Por lo tanto, pueden aplicarse en
cualquier circunstancia. Son algoritmos exhaustivos que, en el peor de los casos,
recorren todos los nodos para encontrar la solución. Esto hace que su coste sea
prohibitivo para la mayoría de los problemas reales y solo puedan ser aplicado al
problema de tamaño pequeño. A continuación se describen las dos principales
estrategias de búsqueda: primero en anchura y primero en profundidad.

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
.

así sucesivamente hasta que no haya más nodos sucesores.

Esta búsqueda puede implementarse mediante un procedimiento FIFO ( First


Input First Output) en el que los sucesores del nodo que se visita son
almacenados en una cola. La Figura 11 muestra un ejemplo de búsqueda en
anchura que parte del nodo A y almacena en la cola los nodos B y C. A

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.

Atendiendo a los criterios anteriormente mencionados, esta estrategia tiene las


siguientes características:
 Completitud: es una estrateg
estrategia
ia com
completa
pleta si el factor de ramif
ramificación
icación
es finito.

Optimización: no garantiza una solución óptima. El nodo objetivo más
superficial no tiene por qué ser la solución óptima.
 Complejidad: si cada nodo tiene
nivel , en
 sucesores y la solución está a
en el peor de los casos tenemos que expandir todos menos el
último nodo del nivel
es exponencial en : . Tanto la complejidad espacial como temporal
Tanto

  = ()

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.

Las principales características de esta estrategia son:


 Completitud: si hay ramas
ramas infin
infinitas
itas el proceso de búsqueda podría no
terminar, aun teniendo una solución próxima a la raíz.
 Optimización: no garantiza que la solución encontrada sea óptima.
 Complejidad: si cada nodo tiene
máxima del árbol. Entonces:
 sucesores y  es la profundidad

◦ Temporal: complejidad exponencial


 (  )
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.

1.5.3. Búsquedas informadas


Una estrategia para reducir el tiempo de búsqueda es guiar la búsqueda con
conocimiento adicional del problema a resolver. Aunque esto haga que la
estrategia no sea de aplicación general, permitirá que se aplique a problemas
reales de mayor tamaño por la disminución en la complejidad temporal.

Como en el caso de las búsquedas no informadas tenemos que definir qué se


entiende por búsqueda del óptimo mediante la asociación de alguna medida de
costo. Estas estrategias guiarán la búsqueda en base al coste de los caminos
explorados. De esta manera se pierde la sistematicidad en la búsqueda de las
estrategias no informadas.

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.

Este algoritmo trabaja considerando un conjunto S de acciones seleccionadas

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

Arad Lugoj Rimnicu Vilcea


366 244 193
Craiova Mehadia Sibiu
160 241 253
Dobreta Oradea Timisoara
242 380 329
Fagaras Pitesti Zerind
176 100 374

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.

Las principales características de esta estrategia son:


 No garantiza que la solución final sea óptima.
 Suelen ser rápidos y fáciles de implementar.
 Solo genera una de entre todas las posibles secuencias de
decisiones.

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

El problema del puzzle 8 consiste en un tablero matricial de


de las cuales 8 están ocupadas por fichas numeradas (del 1 al 8) más un espacio
33 de 9 posiciones

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.

Figura 14. Estado inicial (izquierda) y final (derecha) del puzzle 8.


Fuente: adaptado por el autor.

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.

Fuente: adaptado por el autor.

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.

Figura 16. Estado inicial del puzzle a resolver.


Fuente: adaptado por el autor.

La Figura 17 muestra cómo procede el algoritmo para resolver este problema.


En el primer nivel el hueco solo podrá desplazarse en las posiciones izquierda,
arriba y derecha. La línea azul discontinua indica el orden de búsqueda. Tras
recorrer el primer nivel pasará al siguiente, y así sucesivamente. Haciendo uso de
la biblioteca introducida en la unidad anterior, se puede implementar un programa
que resuelva dicho problema.

La Figura 18 muestra dicho código. El código implementa mediante una variable


estática, el estado inicial del puzzle indicando la posición vacía con el valor 0.

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.

En el método principal se definen la clase problema y estrategia de búsqueda. Se


empieza definiendo la clase problema instanciando una clase de tipo Problem que
recibe, como parámetros de entrada, los distintos componentes que definen un

problema:
 Estado inicial, definido en la variable estática initialState.
 Operadores o conjunto de acciones permitidas.
 Coste del camino.
 Test objetivo, definida en EightPuzzleGoalTest.

A continuación se define la estrategia de búsqueda y un agente capaz de


resolver dicho problema teniendo la información del problema y estrategia de

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;

public class PrimeroEnAnchura {


static EightPuzzleBoard initialState = new EightPuzzleBoard(
new int[]{1,
int[]{1, 4, 3, 7, 0, 6, 5, 8, 2});
private static void printActions(List<Action> actions) {
for (
(int
int i = 0; i < actions.size(); i++) {
String action = actions.get(i).toStri
actions.get(i).toString();
ng();
System.out.println(action);
}
}
private static void printInstrumentation(Properties properties) {
printInstrumentation
Iterator<Object> keys = properties.keySet()
properties.keySet().iterator();
.iterator();
while (keys.hasNext()) {
String key = (String) keys.next();
String property = properties.getPropert
properties.getProperty(key);
y(key);
System.out.println(key + " : " + property);
}
}

public static void main(String[] args) throws Exception {


Problem problem = new Problem(
Problem(initialState
initialState,
,
EightPuzzleFunctionFactory.getActionsFunction(),
EightPuzzleFunctionFactory.getResultFunction(),
new EightPuzzleGoalTest());
Search search = new BreadthFirstSearch();
SearchAgent agent = new SearchAgent(problem, search);
printActions(agent.getActions());
printInstrumentation(agent.getInstrumentation());
}
}

Figura 18. Código para resolver el problema del puzzle 8 mediante una estrategia Primero en Anchura.

Fuente: elaboración propia.

53
1.5.5. Ejercicios de Reflexión

1. Considere el problema del puzzle 8. Siguiendo la Figura 17 como referencia,


dibuje el árbol de búsqueda de la estrategia primero en profundad. Solo es
necesario dibujar el árbol parcialmente explicando cómo procede la estrategia.

2. Implemente un programa, similar al de la Figura 18 pero con la estrategia


Primero en Profundidad.

3. Explique en qué consiste el problema de la mochila y, mediante un ejemplo,


indique cómo se resolvería mediante un Algoritmo Voraz.

54
Capítulo II

Aprendizaje Automático y Juegos

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.

El modelo general de un agente con capacidad de aprender puede verse en la


Figura 1. Los componentes de este tipo de agentes son el elemento de actuación,
la crítica, el elemento de aprendizaje y el generador de problemas. El elemento de
actuación corresponde a un agente completo como el visto en la Unidad 2. Este
elemento recibe los estímulos del medio ambiente y determina las acciones a

realizar A continuación está el elemento crítica, encargado de evaluar el


rendimiento del agente en base a un estándar fijo y proveer el grado de éxito del
agente. El elemento de aprendizaje es el encargado de formular mejoras, con
base a la crítica, que modificarán el elemento de actuación incorporando esta
mejora. Por último, el generador de problemas se encarga de explorar situaciones
nuevas e informativas que pueden ayudar a mejorar el conocimiento del agente
del entorno.

A continuación es oportuno retomar el ejem


ejemplo
plo del taxi automatizado de la
unidad 2 para ver cómo y en qué consistirían cada uno de los elementos del

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.

Figura 1. Modelo general de un agente que aprende.


Fuente: adaptado por el autor.

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.

En el diseño de un elemento de aprendizaje hay que considerar, principalmente,

los siguientes aspectos:

 Qué retroalimentación está disponible para aprender dichos


componentes.
 Qué elementos del elemento de acción tienen que aprenderse.
 Qué tipo de representación se usa para los componentes.

Como se ha comentado anteriormente, el tipo de retroalimentación indica la


naturaleza del aprendizaje a la que se enfrenta el agente. Los elementos de un
agente señalan qué aspectos relacionados con este son candidatos a que puedan

59
mejorar mediante el aprendizaje. Atendiendo a los distintos tipos de agente que
hay, los componentes son:

 Proyección de las condiciones del estado actual a las acciones a

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.

Estos componentes son susceptibles a mejorar de acuerdo al aprendizaje. Por


ejemplo, en el primer punto el objetivo del agente es aprender las reglas
condición-acción de una determinada actividad. Retomando el caso del taxi,
considere que durante el aprendizaje del agente, cada vez que el instructor le
indica que pare, el agente aprende una regla de condición-acción que le indica en
qué condiciones debe frenar. Desde el punto de vista del aprendizaje equivale a

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.

Finalmente, hay que destacar la importancia que tiene la forma de representar


la información aprendida de cara al diseño del algoritmo de aprendizaje. Algunas
representaciones que se pueden encontrar son descripciones probabilísticas,
sentencias en lógica proposicional y de primer orden, polinomios para representar
la función de utilidad, etc.

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

aprendizaje inductivo consiste en aprender una función ℎ que se aproxime a .


La función ℎ recibe el nombre de hipótesis y debido a que la función
desconocida, no se puede saber qué tan buena es la aproximación de ℎ. 
A pesar
es

de esto suele evaluarse la calidad de la hipótesis de acuerdo a su capacidad de


generalización y, por tanto, de predecir la salida de nuevos ejemplos.

Estimación del error de un algoritmo de aprendizaje


La evaluación de un algoritmo de aprendizaje (ℎ ) permite, por un lado, estimar
el rendimiento de una hipótesis y, por otro, poder seleccionar entre varias hipótesis
aquella con mejor rendimiento. Sin embargo, el algoritmo solo cuenta con un
conjunto de ejemplos de entrenamiento limitado para aprender la función
hace que surjan dos dificultades para la estimación del error de
ℎ. Esto
el sesgo y la

varianza.

El sesgo está asociado al error en la aproximación de la función


ℎ:ℎ con respecto
a la función . Este error no depende del tamaño del conjunto de ejemplos que se
use para aprender dicha función pues se debe al error asociado a no poder
modelar correctamente la hipótesis. La varianza, por el contrario, sí depende del
tamaño muestral y decrece a medida que aumenta la muestra. Este error se
refiere a la diferencia que hay entre la hipótesis aprendida y el mejor posible de la
hipótesis. En la Figura 2 se puede ver visualmente en qué consiste el sesgo y la
varianza con un ejemplo con dianas y dardos. Hay cuatro dianas con distinta

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 caso de un sesgo elevado, suele darse el fenómeno de subajuste


(underfitting). Dicho fenómeno consiste en que con la muestra considerada, el
modelo aprendido es más simple que el real y, por lo mismo, a pesar de que
disminuye el error en la muestra considerada, la capacidad predictiva será menor
en futuros casos. Otro fenómeno que hay que tener en cuenta es el sobreajuste
(overfitting), el cual se da en caso de que la varianza sea elevada. En este caso la
hipótesis se ajusta tanto a la muestra que pierde su capacidad de generalizar. La
Figura 3 muestra estos fenómenos considerando el ajuste de una curva. Como
puede ver, en la figura de la izquierda, la curva no se ajusta adecuadamente a los
puntos, mientras que en la de la derecha la curva se ajusta en exceso a los
puntos.

Figura 2. Sesgo y varianza visualizado mediante un ejemplo con dianas. 62


Fuente: elaboración propia.

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.

Figura 3. Fenómeno del subajuste y sobreajuste.


Fuente: elaboración propia.

Validación de un algoritmo de aprendizaje


Las técnicas de validación están motivadas por dos problemas fundamentales
en el aprendizaje automático: la selección del modelo y la estimación del

rendimiento del algoritmo de aprendizaje. De cara a la selección del modelo,


existen diversas técnicas de aprendizaje y cada una de ellas tiene una serie de
parámetros. ¿Cómo se selecciona el modelo adecuado o la combinación óptima
de parámetros? Una vez seleccionado el modelo, ¿qué medidas se usan para
estimar su rendimiento? El rendimiento debería medirse con base al error real.

Si se tuviera acceso a un número ilimitado de ejemplos, la respuesta a ambas


preguntas sería seleccionar aquel modelo que tenga el error más bajo. Sin
embargo, en aplicaciones reales solo se cuenta con un conjunto finito de ejemplos

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

conjunto de entrenamiento y otro de prueba. El conjunto de entrenamiento se

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.

La partición entre conjunto de entrenamiento y de prueba es aleatoria y de

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

conjunto de prueba, el ejemplo a clasificar, la clase asociada a dicho ejemplo,


y(() 
es la clase predicha por el clasificador inducido. 
Repeated holdout
Es una variante del holdout que consiste en repetir el procedimiento de
evaluación entrenamiento-prueba un número  de veces. Se caracteriza porque el
error estimado tiene una varianza elevada pero un sesgo pequeño. El error
estimado se promedia sobre las ejecuciones del siguiente modo:

^ ^ = 1  


Con  el error estimado de una ejecución.

K-fold cross validation


Es un método muy popular debido a que tiene un sesgo pequeño (menor que el
repeated holdout) aunque sigue conservando una varianza alta. El método
consiste en dividir el conjunto de datos en subconjuntos disjuntos y se procede a
 65
estimar el error de clasificación. Para ello se estima el error de clasificación
veces de modo que en cada ejecución se usan −1 
subconjuntos como conjunto
de entrenamiento y el que queda de prueba. Además, el conjunto de prueba varía
de una ejecución a otra de modo que al final de todas las ejecuciones se ha

estimado el error sobre uno de los subconjuntos disponibles.

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.

Figura 4. Tareas de regresión y clasificación.


Fuente: elaboración propia.

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

clasificación en modelar las hipersuperficies de decisión. Los generativos, por el


contrario, modelan la distribución de las distintas clases que tiene el conjunto de
datos que se está tratando. A continuación se describirá el algoritmo de
clasificación Naive Bayes debido a su popularidad y los buenos resultados que
suele obtener en problemas de distintos dominios.

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

en datos de distintos dominios.

3.2.3 Aprendizaje no supervisado


El aprendizaje no supervisado tiene como objetivo inferir una función que
describa la estructura implícita de los datos. A diferencia del caso supervisado, en
este caso no se cuenta con una variable de salida y, por tanto, el modelo
aprendido no tiene asociado ningún error o medida de evaluación que nos indique
la calidad de dicho modelo.

Algunas de las tareas asociadas a este tipo de aprendizaje son:


 Agrupamiento.
 Detección de casos anómalos (outliers).
 Extracción de características.
 Reducción de la dimensionalidad.

El agrupamiento tiene como objetivo particionar el conjunto de datos de entrada

en distintos grupos en función de una propiedad. La detección de casos anómalos


tiene el objetivo de buscar ejemplos que añadan error al análisis de los datos. La
extracción de características busca una serie de variables pequeñas medidas a
partir del conjunto original de variables que suele ser mucho mayor. Dichas
características contendrán la información más relevante del conjunto de datos
original. Por último la reducción de la dimensionalidad pretende reducir el conjunto
de datos originales aplicando una transformación lineal o no lineal a las
características originales. A pesar de las diversas tareas asociadas a este tipo de
aprendizaje, el término aprendizaje no supervisado suele usarse habitualmente
para referirse al agrupamiento.

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.

Los dos propósitos que persigue el agrupamiento son la comprensión y


descubrimiento. En lo relativo a la comprensión, esta tarea tiene el propósito de
entender cómo se organizan los datos. En este contexto, el objetivo es el estudio
de técnicas que automáticamente encuentren los grupos, que pueden verse como
una clasificación natural de los datos. En lo relativo a la comprensión, el objetivo
es proveer una abstracción de los datos individuales mediante los grupos
obtenidos. Esto permite reducir el conjunto de datos a los prototipos
representativos de cada grupo encontrados. En este ámbito se persigue estudiar
el conjunto de técnicas que encuentren los prototipos de los grupos que mejor
describan los datos.

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 cómputo respecto a la euclídea.



,  = () − ()
 Chebyshev: es una aproximación a la euclídea también
también más
más barata,
computacionalmente hablando, que esta.

,  =() − ()


Para el caso de que los atributos sean binarios, se puede calcular la proximidad

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

En este caso a representa el número de atributos que valen 1 en ambos


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:

,  = +++


+ 70
Por último, en caso de atributos nominales con más de dos etiquetas, una
posible medida de distancia se correspondería con el número de atributos que
 
coindicen dividido por el total de atributos :

,  = 
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.

En líneas generales está aceptado que se busca hacer un agrupamiento de


modo que los grupos sean lo más cohesionado posible y estos estén lo más
separados entre sí. La cohesión intragrupo mide lo compacto que son los grupos.
Una medida típica es WSS (within cluster sum of squares):

=
 ∈
(  −  ) 
Donde  representa una instancia perteneciente al grupo  
y es el centroide

o centro de masas asociado al grupo La distancia intergrupo nos indica cuán


.
71
separados están los distintos grupos encontrados. Una medida típica usada es la
BSS (between cluster sum of squares):

= || ( − )


=|
Donde
datos.
|| es el tamaño del grupo y  es el centroide de todo el conjunto de

La mayor dificultad en el contexto de la evaluación del agrupamiento surge en


cómo evaluar objetivamente qué tan correctos son los grupos encontrados. Por
ejemplo, en la Figura 5 puede verse un conjunto de datos de 20 puntos que ha
sido agrupado considerando 2, 4 y 6 grupos. Sin embargo, no se encuentra
ninguna elección que sea más adecuada que otra. Si se conoce el contexto de los
datos se podrá dar un sentido a cada uno de estos resultados o, bien, saber
cuáles elecciones tienen sentido y cuáles no.

Figura 5. Subjetividad en la elección del número de grupos adecuado en un conjunto de datos.

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,

bien, se aplica, previo al agrupamiento, una técnica de estimación del número de


grupos. La segunda aproximación abarca aquellos algoritmos que en cuentran un
número variable de grupos en función del valor de los parámetros. En estos casos
se varía el valor de dichos parámetros para poder evaluar los distintos grupos
encontrados.

La comunidad científica sigue trabajando en encontrar criterios adecuados, de


modo que existen una gran diversidad de métodos de evaluación. Dependiendo
del campo de aplicación, unas medidas serán más populares
populare s que otras.

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.

 Grupos separables. Este es el caso m


más
ás sencillo pues los puntos de
un grupo son más similares entre sí que puntos de distintos grupos.
 Grupos basado en centroides. En este caso cada grupo está
representado por un centroide o un medoide. Un centroide es el
centro de masas del grupo mientras que un medoide es el punto más
representativo. En este caso los puntos de un grupo están más
próximo al punto representativo del grupo al que pertenecen que de
cualquiera de otro grupo.

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

hasta que tenemos uno solo.


◦ Estrategia dividiva. Partiendo de un solo grupo, en cada etapa
etapa se
pasa a dividirlo en grupos de menor tamaño hasta que se tienen
tantos grupos como puntos.
 Bayesianos. Esta a
aproximación
proximación aplica una aproximación bayesiana para
modelar los datos en distintas particiones.

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

etiquetados que se usan como conjunto de entrenamiento. Cada tweet se asociará


con una secuencia de símbolos ( tokens). Si se considera que el tweet a analizar

75
tiene
modo:
,,...,
. ..,símbolos o tokens, (|) se calculará del siguiente

(|) = (|) ∗ (|) ∗. . ∗ (|)


El término asociado a cada token   se calcula mediante la expresión:
(|) = 
Con  
 y
el número de ocurrencias del token 
el número total de tokens que fueron etiquetados
en tweets etiquetados como
  . Por
ejemplo, si se considera que uno de los tokens es
números:
 con los siguientes

El número de veces que la palabra aparece en tweets


positivos: 455. 


 El número total de palabras que aparecen en tweets positivos: 1211.

Se tendrá (|) =0.376.


cada palabra que aparece en el tweet a clasificar.
Este cálculo ha de repetirse para

Una vez se calcule para el sentimiento positivo se continuará con los otros dos

sentimientos y se asociará el tweet al sentimiento que mayor probabilidad tenga.


De modo que la regla de clasificación se podrá expresar del siguiente modo:


 } 
ℎ = ∈∈{{,,} 
  (  | ℎ )  ( ℎ ) 
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. Describa los algoritmos de agrupamiento K-means y Single-Linkage

Clustering. Indique, para cada caso y mediante un ejemplo concreto, cómo se


genera el modelo descriptivo de los datos.

3. Haciendo uso de la herramienta Weka, haga una experimentación en la que


quiera estudiarse el rendimiento de los clasificadores Naive Bayes, KNN
(denominado en Weka IbK) y C4.5 (denominado en Weka J48). Para el caso del
KNN pruebe con 1, 3 y 5 vecinos. Para la experimentación considere 10 conjuntos
de datos distintos y valide los resultados aplicando validación cruzada con K=10.
Para manejar la herramienta Weka puede usar el tutorial que está en la
bibliografía.

Describa la experimentación indicando, en los resultados, el error de


clasificación mediante una tabla en la que cada fila corresponde a los resultados
de un conjunto de datos y cada columna a los resultados con un clasificador.
Indique también el error promedio sobre todos los datos en la última fila. Resalte
en negrita el mejor resultado para cada conjunto de datos. En promedio, ¿qué
clasificador es mejor? ¿Es mejor en todos los datos? ¿Cuál de ellos obtiene las

reglas de clasificación más fáciles de entender? Comente cómo es la regla de


clasificación de cada uno de las técnicas.

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.

2.5. Teoría de Juegos


La teoría de juegos aborda un tipo de problemas en la que hay un conflicto de
intereses entre varios agentes implicados. Este tipo de problemas son muy
frecuentes en el día a día y, por lo tanto, el ámbito de aplicación es muy amplio.
Por ejemplo, en el mundo empresarial, se puede abordar como juegos algunos
temas tan dispares como la guerra de precios, la introducción de nuevos
productos, pujas en contratos públicos, etc. Por regla general, las situaciones de
conflicto son difíciles de analizar y entender, pues interrelacionan diversos
aspectos de la actividad humana. La teoría de juegos nos da un marco conceptual
para estudiar este tipo de situaciones.

Esta unidad introduce el marco teórico de la teoría de juegos como un entorno


multiagente, donde cualquier agente (también denominado jugador) tomará una
serie de decisiones en función de las acciones llevadas a cabo por cualquier otro
agente. Se verá la estrategia minimax para resolver este tipo de problemas y se
extenderá para el caso de decisiones en tiempo real imperfectas. Finalmente se

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.

Los fundamentos de la teoría de juegos fueron establecidos por el matemático


John von Neumann en 1928, y junto con el economista Oskar Morgenstern fueron
expuestos en el libro Theory of games and economic behaviour, publicado en
1944. Un juego puede definirse como un problema de decisión en el que hay
involucrados más de un agente (o jugador) de modo que las decisiones de un
agente tienen efectos sobre el resto
r esto de agentes. Cabe destacar que esta definición

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:

 Representan una tarea estructurada que requiere una forma de inteligencia.


 Representa una competición entre dos o más oponentes.
 Son fáciles de formalizar pues las reglas están def
definidas
inidas y la definición de
éxito o fallo es clara.

Además, en IA suelen tratarse los juegos en el ca


caso
so de información completa y
multijugadores. En general, los problemas de juegos pueden clasificarse en
función de diferentes factores:

 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

los jugadores debe ser 0.


◦ Suma no nula: cualquier otro caso en e
ell que la sum
suma
a sea distinta
de 0.
 Duración
◦ Finitos: tienen un final programado como, por ej
ejemplo,
emplo, un número
de jugadas, un tiempo de duración, etc.
◦ Infinitos: no tienen ningún final programado.
 Información
◦ Información perfecta. Ambos jugadores tienen infomación
completa del estado del juego en cada instante.
◦ Información imperfecta. Am
Ambos
bos jjugadores
ugadores tienen información
parcial del estado del juego en cada momento.
 Incertidumbre
◦ Deterministas: tiene p
predeterminado
redeterminado a qué estado se llega a
all
hacer un movimiento.
◦ Estocástico: hay ccomponentes
omponentes aleatorias que hacen que no se
conozca a qué estado se llegará al realizar un movimiento. En

ese caso se tendrá una serie de estados posibles a los que se


puede llegar y cada uno de estos estados tendrá asociada una
probabilidad.

Por ejemplo, atendiendo a la información que se maneja así como a la


incertidumbre asociada a cada movimiento, se podrá hacer una tabla de juegos
asociados:

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

2.6. Los Juegos Como un Problema de Búsqueda


Búsq ueda
Los juegos pueden ser abordados como un problema
probl ema de búsqueda. Para ello se
requiere que la definición de juego cuente con los siguientes componentes:
 Estado inicial. Incluye la posición del tablero e identifica al jjugador
ugador al
que le toca mover.
 Función sucesor. P
Proporciona
roporciona una lista
lista de pares (movimiento,
estado), indicando qué estado corresponde a un movimiento legal.
 Test pro-prueba terminal. Determina cuándo se term
termina
ina el juego. A

los estados en los que el juego concluye se les denomina estados


terminales.
 Función de uti
utilidad
lidad u objetivo. Se encarga de asignar un valor
numérico a los estados terminales. El tipo de valor así como su rango
dependerá del tipo de juego.

Conociendo el estado inicial y los movimientos legales se puede definir el árbol


de juegos, que no es más que una representación, en forma de árbol, de los
distintos estados posibles del juego. La Figura 7 muestra un árbol con los distintos
estados para el juego tres en línea. Como puede verse, para el primer movimiento
hay 9 posibilidades, y para cada uno de estos movimientos habrá varias
posibilidades para el adversario haciendo que el número de nodos del árbol crezca
rápidamente. En este juego hay tres posibles resultados: que gane el jugador de
las X, el de las O o que haya empate.

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

cada jugador realice un movimiento. La utilidad de los estados terminales varía de


2 a 14. El objetivo (para MAX) será seleccionar, en cada movimiento, el máximo
valor minimax. El valor minimax de un nodo es la utilidad (para MAX) de estar en
el estado correspondiente, asumiendo que ambos jugadores juegan de forma
óptima. La Figura 8 muestra el árbol de estados de dos capas.

Figura 8.
8. Valor minimax de un juego trivial.

Por lo mismo, la estrategia óptima puede determinarse a partir del valor


minimax de cada nodo, denominando Valor-Minimax(n). El valor asociado a un
nodo terminal será el de su utilidad. El jugador MAX, durante el desarrollo del
juego (en un estado intermedio del árbol), elegirá la opción (el nodo)
nodo ) que maximice
el valor mientras que MIN el que lo minimice. De esta forma el valor minimax
vendrá dado por la siguiente expresión:

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

óptima entonces tendremos que MAX mejorará el valor de utilidad obtenido. En


caso de que MIN juegue de forma subóptima, existen otras estrategias que lo
hacen mejor que la minimax. Sin embargo, son peores para el caso en que MIN
juegue de forma óptima.

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.

Esta estrategia suele implementarse mediante recursividad y la búsqueda la


hace del siguiente modo: considerando la Figura 8, el algoritmo parte del nodo raíz

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.

función Decisión-Minimax(estado) devuelve una acción

←
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( ))

función Min-Valor(estado) devuelve un valor utilidad


si Test-Terminal(estado) entonces devolver Utilidad(estado)

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.

Si el árbol de juego tiene una profundidad máxima de


movimientos de cada jugador es
 y el número de
entonces la complejidad temporal del algoritmo

es La complejidad espacial dependerá de si genera todos los sucesores a


 (  ).  ( ).
la vez, que en ese caso sería
último caso
(,,)),
o si los genera uno por uno, siendo en este
El alto costo temporal de este algoritmo hace que no sea viable
para juegos reales.

2.7. Poda Alfa-Beta


El problema del algoritmo minimax es que el número de estados a explorar
aumenta exponencialmente con el número de movimientos. Sin embargo, es
posible diseñar una estrategia completa sin necesidad de explorar todos los
85

estados posibles. Dicha estrategia, a pesar de seguir teniendo una complejidad


exponencial, el número de estados a explorar se reduce a la mitad (
técnica, conocida como poda alfa-beta, devuelve el mismo valor que la estrategia
⁄ ). Esta

minimax.

función Búsqueda-Alfa-Beta(estado) devuelve una acción

←
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.

Esta estrategia hace uso de los parámetros


referencia para los jugadores MAX y MIN respectivamente.
 , 
y los cuales se usan como
hace referencia al
máximo valor encontrado a lo largo del camino e cualquier punto de la búsqueda
para MAX. De forma equivalente se asocia con el jugador MIN y almacena el


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

mayor que A medida que avanza la búsqueda dichos valores se van


actualizando. .
2.8. Ejemplos
A continuación se propone un ejemplo de la técnica poda alfa-beta para
entender mejor cómo funciona. Para ello, se retomará el juego trivial que se
introdujo en la sección estrategias óptimas.

Figura 11. Estrategia de búsqueda de la técnica poda alfa-beta.


Fuente: adaptado por el autor.
87

La Figura 11 muestra las etapas de la búsqueda de la decisión óptima en el


árbol de juego. A medida que se avanza en la búsqueda se irán mostrando el
rango de valores posibles para cada nodo. A) El nodo raíz examina el primer nodo

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

encontró previamente (3); de modo que seguirá explorando. F) La segunda acción


(d2) tiene un valor 5 de modo que deberá seguir explorando. El último sucesor
tiene un valor 2 y, por lo tanto, este será el valor asociado a MIN. Otra forma de
ver esto, atendiendo a la fórmula Valor-Minimax sería considerar las siguientes
evaluaciones:

−() = =(),(),()


Con y En

() =(33,,12,8),() =(14,14,5,2) () =(2,2,,).


este último caso, sea el menor valor de los tres valores, entonces se sabe que
88

⩽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.

2.9. Ejercicios de Reflexión


1. Explicar las propiedades de la estrategia minimax (completitud, optimalidad,
complejidad espacial y temporal), y argumente la motivación de la poda alfa-beta.

2. Dado el siguiente árbol de juego, aplique la técnica poda alfa-beta indicando,


en cada etapa de la búsqueda, los valores de alfa y de beta.
89
90

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

CAPÍTULO 3: PROBLEMA DE SATISFACCIÓN


DE RESTRICCIONES Y LÓGICA

Este capítulo aborda dos grandes temas: la resolución de problemas de


satisfacción de restricciones (PSR) y la lógica. El primero de ellos es ampliamente
usado en problemas grandes y complejos y, principalmente, combinatorios. Se
partirá de una introducción en la que se da una definición formal y se continuará
presentando cómo se modelan varios problemas para resolverlos como un PSR.
Finalmente, se presentará los tipos de técnicas que hay y se entrará en detalle con
la estrategia vuelta atrás.

En el segundo tema se introduce la lógica, cuyo objetivo de estudio es el


aprendizaje de las técnicas de demostración formales y sus aplicaciones en la
resolución de problemas.
conocimiento y aprender Para ello es necesario
la manipulación llevar aLa
del mismo. cabo la formalización
formalización del
se hace
mediante el lenguaje formal lógico. En este tema se introduce el lenguaje de la
lógica de primer orden para aprender a formular proposiciones y razonamiento con
dicho lenguaje.

2. Problemas de Satisfacción de Restricciones y Lógica


2.1. Introducción
Los problemas de satisfacción de restricciones (PSR) se caracterizan porque los
estados y el test objetivo están representados de forma estructurada. Un estado

está compuesto por variables que pueden tomar diferentes valores y un estado
es de tipo meta si los valores que cumplen las variables implicadas (en dicho
estado) cumplen una serie de restricciones.

Desde un punto de vista formal, un PSR se define como una tripleta


donde:
(,,,,)


:→
,, … , 
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

como y contiene los posibles


es valores que puede tomar la variable.
 
La cardinalidad del dominio
 = ||. 
93

  = ,, … ,  
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.

Una variable viene dada por el par variable-valor que representa la



asignación del valor a la variable
 ( =  ). (,,)
De la misma firma un conjunto de
variables viene dado por una tupla de pares ordenados, donde cada par ordenado
(  ,   )
asigna el valor { ∈ }
a la variable  .
Una tupla ,, … , , 
se
dice que es localmente consistente si satisface todas las restricciones formadas
por las variables
, … , . , … , .
Por simplificación sustituiremos dicha tupla por

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

una asignación de valores a unas o todas las variables A una asignación


 =. , … .
se le dice consistente si no viola ninguna restricción y es completa si todas las
variables están representadas. De esta forma se puede definir una solución de un
PSR como una asignación completa y consistente. Este tipo de problemas pueden
tener asociados una función objetivo, de modo que se requiere que la solución
encontrada maximice o minimice dicha función.

Un PSR puede modelarse como un grafo de restricciones, de modo que cada


nodo representa una variable y los arcos las restricciones. Esta modelización
permite aplicar algoritmos de búsqueda sobre grafos. Además, un PSR se le
puede dar una formulación incremental similar a la de un problema de búsqueda
estándar:
 Estado inicial: asignación vacía
sido asignada.
{ },en la que ninguna variable ha

 Función sucesor: un valor se puede asignar a cualquier variable no


asignada, siempre y cuando no viole ninguna restricción.
 Test objetivo: la asignación actual es completa.
 Costo del camino: un coste constante para ccada
ada paso.

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

2.2. Modelización de Problemas de Satisfacción de Restricciones

A continuación se introducirá un par de problemas y cómo


cómo se deslizan para ser
tratados como un PSR.

El Problema de las N-Reinas


Dado un tablero de ajedrez ×, hay que colocar  reinas de tal modo que
ninguna de ellas pueda ser alcanzada por otra con un movimiento. En otras
palabras, que ninguna reina pueda ser comida por otra con los movimientos que
tiene permitidos. Las restricciones, por tanto, son que dos reinas no pueden
coincidir en la misma fila o columna, y tampoco pueden estar en diagonal. Esto
hace que se pueda asociar cada reina con una columna distinta y se reduzcan las

variables a las filas de modo que su valor representa la fila en la que se coloca la
reina correspondiente a dicha variable. Desde el punto de vista de un PSR se
puede formular del siguiente modo:
 Variables: {{ },  =1,} … ,  .
 Dominio: 1, … ,∀ ,,  ,≠
para todas las variables.
 Restricciones (  ):
◦ No pueden estar en la misma fila.

 ≠−  ≠ | − | No pueden estar en la diagonal.
95

Figura 1. Dos soluciones del problema de la N Reinas para N=4.


Fuente: elaboración propia.

La Figura 1 muestra dos soluciones del problema para el caso


tendría las siguientes restricciones:
=4, que

 || − || ≠ 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.

Por ejemplo, la Figura 2 muestra un mapa de cuatro regiones ,,,


coloreadas con los colores rojo, verde y azul. La formulación PSR sería:
para ser

 Variables: {,,,}
 Dominio:
 Restricciones:
{,{≠,≠,≠,≠,≠}
,}
 }
≠,≠,≠,≠,≠ }
97

Figura 3.
3. Grafo de restricciones del problema de coloreado de mapa.
Fuente: adaptado por el autor.

La Figura 3 muestra la representación de este problema como un grafo de


restricciones en que cada nodo representa una región del mapa mientras que los
arcos son las restricciones entre las mismas. Por tanto, se tendrán 5 aristas. En
esta representación, todos los nodos adyacentes deben tener un valor distinto.

2.3 Técnicas de Resolución de PSR


Al formularse el PSR como un problema de búsqueda, se puede aplicar
cualquier estrategia de búsqueda. Sin embargo, hay que tener en cuenta la
complejidad del algoritmo pues el árbol de búsqueda con muchas ramificaciones
que hacen que no pueda aplicarse algoritmos exhaustivos.

Las técnicas más usuales que se llevan a cabo para manejar un PSR se
pueden agrupar en tres tipos:
98

 Búsqueda sistemática: se centran en buscar en e


ell espacio de
estados del problema. Este tipo de técnicas pueden ser completas, si
buscan en todo el espacio de estados o incompletas si solo buscan
en una región de este.

Técnicas inferenciales: tienen como objetivo deducir nuevas
restricciones a partir de las planteadas de forma explícita en el
problema. Por lo general inducen restricciones implícitas entre
variables que hacen que se plantee un nuevo PSR equivalente al de
partida.
 Técnicas híbridas: com
combinan
binan las dos anteriores de modo
modo que
mediante una técnica inferencia plantea un PSR más restringido y
equivalente al original. Esto permite acotar el espacio de búsqueda y
aplica, sobre este nuevo espacio, una estrategia de búsqueda.

Búsqueda con vuelta atrás (backtracking)


Esta técnica es una estrategia primero en profundidad que en cada nivel del
árbol de búsqueda, asigna un valor a una variable y vuelve para atrás cuando no
hay opción de asignarle un valor consistente.
función Búsqueda-con-Vuelta-Atrás(psr) devuelve una solución o fallo
devolver Vuelta-Atrás-Recursiva({}, psr)

función Vuelta-Atrás-Recursiva(asignación, psr) devuelve una solución o fallo

←ó
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)

Australia del Sur (AS)


 Queensland (Q)
 Nueva Gales del Sur (NGS)
 Victoria (V).
 Tasmania (T)
100

La formulación del problema es:


 Variables: {,,,,,,,,,
,,,}
 Dominio:

 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;

public class VueltaAtras {


public static void main(String[] args) throws Exception {
MapCSP csp = new MapCSP();
BacktrackingStrategy
BacktrackingStrategy strategy = new BacktrackingStrategy();
Assignment assignment = strategy.solve(csp);
System.out.println(assignment);
}
}

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.

5.4. Ejercicios de Reflexión


1. Representar el siguiente problema como problema de satisfacción de
restricciones (no es necesario resolverlo, solo plantear la representación).
Suponga el siguiente puzzle lógico: hay cinco casas de diferentes colores, en las
cuales viven personas de diferentes nacionalidades, con diferentes mascotas, que
gustan de diferentes bebidas y practican diferentes deportes, además se
consideran las siguientes restricciones:
 El inglés vive en la casa roja.
 El español tiene un perro.

El hombre de la casa verde bebe café.


 El irlandés bebe té.
101

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

2. Resuelva, manualmente, el problema anterior planteado de modo que pueda


responder a las siguientes preguntas: ¿quién es el dueño de la cebra? y ¿quién
bebe cerveza?

3. Diseñe una estrategia Vuelta Atrás que resuelva el problema de la cebra.

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.

5.6. Conocimiento Racional


No puede hablarse de inteligencia sin hablar de conocimiento. En IA todos los
agentes manejan conocimiento de una u otra forma. Sin embargo, el conocimiento
que manejan es muy específico de acuerdo al problema. En este sentido, los
agentes basados en conocimiento pueden aprovechar el conocimiento expresado
102

mediante alguna técnica de representación para combinar la información que


extraen y adaptarse a diversos propósitos.

El uso explícito que se hace en la IA del conocimiento es la diferencia

fundamental entre esta disciplina y la informática convencional. Desde este punto


de vista se puede decir que los objetivos que se persiguen son:
 Estudiar técnicas generales de representación del conocimiento.
 Estudiar nuevas estrategias de resolución de problemas.

En esta unidad se hará un énfasis en el primer objetivo mediante el uso de la


lógica como técnica de representación del conocimiento.

5.7. Representación del Conocimiento y Razonamiento


El conocimiento y el razonamiento son dos conceptos centrales en el ámbito de
la IA. Para poder inferir a partir de un conocimiento previo es necesario encontrar
una forma de modelarlo. No obstante, los desafíos a los que se enfrenta son:
 La representación del conocimiento del sentido común.
 La habilidad p
para
ara com
compensar
pensar la eficiencia computacional en busca de
inferencias precisas.
 La habi
habilidad
lidad de representar y manipular conocimiento e información
con incertidumbre.

La representación del conocimiento puede definirse como la transformación del


conocimiento de un dominio a un lenguaje simbólico. En este caso se hace un
planteamiento simbólico de resolución de problemas en el que cada elemento de
la representación (símbolo) se refiere a un objeto, hecho o relación de interés
perteneciente al dominio a representar. Este lenguaje de representación debe
definir dos aspectos:
103

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

La representación del conocimiento tiene una fase de codificación, encargada


de convertir los hechos reales en una representación interna, y otra de
decodificación, que vuelve a convertir en hechos del mundo real los resultados de
los procesos inferenciales realizados sobre la representación interna del
conocimiento. El instrumento para codificar el dominio real en otra representación
se denomina esquema de representación. Desde un punto de vista computacional
un esquema de representación puede ser descrito como una combinación de
estructuras de datos y procedimientos que representan la componente estática y
dinámica del esquema:

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

▪ Interpretar los datos del p


problema
roblema (de la pa
parte
rte estática) a partir
del conocimiento del dominio (de la parte dinámica).
104

▪ Controlar el uso de los datos: estrategias de control.


▪ Adquirir nuevo conocimiento.

Además, todo esquema de representación debe presentar una serie de

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.

En IA se usa la lógica como instrumento para la representación del


conocimiento. Los principales motivos para esta elección son:
 Desde un punto de vista m
matemático
atemático son precisos, de modo que puede
conocerse sus limitaciones, sus propiedades, la complejidad de una inferencia,
etc.
 Son lenguajes formales, de modo que los programas computacionales pueden
manipular sentencias en el propio lenguaje.
 Presentan una sintaxis y una semántica.

Para manejar estos conceptos se introducen los agentes basados en


conocimiento debido a su capacidad para inferir aspectos ocultos del estado del
entorno a partir del conocimiento y las percepciones. Para ello requiere que el
agente sea capaz de razonar con el conocimiento que maneja.
105

Agentes basados en conocimientos


El principal componente de este tipo de agentes es su base de conocimiento
(BC). Informalmente, una BC es un conjunto de sentencias de modo que cada
sentencia se expresa en un lenguaje de representación del conocimiento y

representa alguna aserción acerca del mundo. Además, el agente debería estar
dotado de tres cualidades fundamentales:

 Representar el conocimiento del mundo que le rodea.


 Razonar para generar nuevo conocimiento a partir del
del conocimiento
disponible.
 Aprender nuevo co
conocimiento
nocimiento a partir de las observaciones que
obtiene del entorno.

Adicionalmente, estos agentes deben tener la capacidad de aceptar nuevas


tareas, usar el conocimiento o inferir de forma eficiente y adaptarse a cambios en
el entorno. Para ello, deben contar con mecanismos para conocer el estado actual
del entorno, y cómo evoluciona a lo largo del tiempo. También necesita de algún
mecanismo para poder inferir a partir de propiedades no vistas.
función AGENTE-BC(percepción)
AGENTE-BC(percepción) devuelve un acción
variables estáticas: BC, una base de conocimiento
t, un contador, inicializado a 0, que indica el
tiempo

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.

La Figura 7 muestra el esquema general de un agente basado en conocimiento.


Como otros agentes, este recibe una percepción y devuelve una acción. El agente
mantiene una BC que contiene algún tipo de conocimiento de antecedentes. En
106

dicho esquema los mecanismos para añadir sentencias nuevas a la BC y


preguntar qué sabe el agente de acuerdo a dicho BC vienen dadas por las tareas
DECIR y PREGUNTAR, respectivamente. Ambas tareas requieren realizar
inferencia. Cada vez que el agente es invocado realiza dos cosas: primero dice a

la BC lo que ha percibido y, a continuación, pregunta a la BC qué acción ejecutar.


Tras elegir la acción, el agente graba su elección mediante la tarea DECIR y
ejecuta la acción.

Las funciones CONSTRUIR-SENTENCIA-DE-PERCEPCIÓN y PEDIR-ACCION


ocultan los detalles del lenguaje de representación. La primera de ellas toma una
percepción en un instante de tiempo y devuelve una sentencia afirmando lo que el
agente ha percibido en dicho instante de tiempo. La segunda función toma un
instante de tiempo como entrada y devuelve una sentencia para preguntarle a la
BC qué acción se debe realizar en dicho instante de tiempo. En este esquema los
detalles de los mecanismos de inferencia (DECIR y PREGUNTAR) están ocultos.

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:

 Una sintaxis, que indica qué sím


símbolos
bolos pueden usarse y cómo construir las
sentencias legales.
 Una sem
semántica,
ántica, que asocia los elem
elementos
entos del lenguaje con los elem
elementos
entos reales
del dominio. Da el significado de las sentencias lógicas.
 Un conj
conjunto
unto de reglas de inferencia, que permiten inferir conocim
conocimiento
iento nuevo a

partir del ya existente.


107

La semántica del lenguaje define el valor de la verdad de cada sentencia


respecto al modelo. Dicho
Dicho modelo no es m
más
ás que una abstracción matemática de
un entorno real que permite definir la verdad o falsedad de una sentencia.

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.

Estos métodos de inferencia deben caracterizarse por ser sólidos y completos.


Se dice que un método de inferencia es sólido o mantiene la verdad si solo deriva
conocimiento implicado y es completo si puede derivar cualquier conocimiento que
está implicado.

5.9. Tipos de lógica


Los modelos lógicos más conocidos en IA son la lógica proposicional y la lógica

de predicados o de primer orden. Básicamente, se diferencian en que la primera


no admite argumentos en los predicados mientras que la segunda sí.
108

Lógica proposicional (orden 0)


Es una lógica que representa hechos discretos del mundo real que pueden ser
ciertos o falsos. Está compuesto de proposiciones, que son afirmaciones (ciertas o

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

y/o sentencias mediante conectivas lógicas.


109

Con el objetivo de evitar la ambigüedad, cada sentencia construida a partir de


conectivas binarias puede estar encerrada en paréntesis. Por ejemplo, se podría
poner (∧∧ ) ⇒  en vez de ∧∧  ⇒ . Sin embargo, con el objetivo de mejorar
Sin
la legibilidad suele omitirse dicho paréntesis atendiendo al siguiente orden de
precedencia descendente (de mayor a menor) de los símbolos: , , , y La
¬ ∧ ∨ ⇒ ⇔.
semántica, en cambio, define las reglas para asociar un valor de verdad (V o F) a
cada sentencia. La interpretación de las sentencias consistirá en asignar un valor
de verdad a cada proposición y habrá que considerar la correspondencia que haya
entre elementos del lenguaje y el mundo a representar.

Lógica de primer orden


La lógica proposicional tiene muchas limitaciones derivadas del uso exclusivo
de la proposición como construcción del lenguaje. Su lenguaje no permite
representar de forma precisa el conocimiento de entornos complejos. La lógica de
primer orden (LPO) extiende la lógica proposicional adoptando sus fundamentos,
es decir, adoptando una semántica composicional declarativa, que es
independiente del contexto y no ambigua. Además, construye una lógica más
expresiva basada en dicho fundamento y tomando prestada, de los lenguajes
naturales, su idea de la representación. La representación del conocimiento se
lleva a cabo considerando que en el lenguaje natural los nombres y las sentencias
nominales se refieren a objetos que tienen unas características distintivas
(propiedades). Por otro lado, están los verbos y las sentencias verbales que hacen
referencia a relaciones entre objetos. Algunas de estas relaciones son funciones,
las cuales son un tipo de relaciones que requieren una entrada determinada y
proporcionan una salida. Los siguientes son ejemplos de lo mencionado
anteriormente:

 Objetos: gente, casas, números, colores,...


Propiedades: alto, rojo,..


 Relaciones: hermano, más alto que,...
110

 Funciones: padre de, tejado de,...

Así pues, la prin


principal
cipal diferencia entre la lógica
l ógica proposicional y la LPO es lo que
cada uno asume, que es la naturaleza de la realidad y lo que comprende el
compromiso ontológico de cada lenguaje. La lógica proposicional considera que
hay hechos que suceden o no en el mundo mientras que la LPO asume que el
mundo se compone de objetos con ciertas relaciones que suceden o no.

El compromiso epistemológico es otra caracterización posible de la lógica, la


cual se refiere a los posibles estados del conocimiento respecto a cada hecho que
la propia lógica permite. En este caso, ambas lógicas analizadas permiten que el
agente adopte tres posibles valores ante un hecho representado mediante una
sentencia: verdadero, falso o desconocido.

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:

 Símbolos de constante, que representan los objetos.


 Símbolos de predicado, que representan las relaciones.
 Símbolos de función, que representan funciones.

Cada símbolo de predicado y de función tiene una aridad que establece su


número de argumentos. Cada relación tiene una aridad mayor o igual a 0 mientras
que una función tiene una aridad mayor que 0. Por ejemplo, se puede representar
el lenguaje de la aritmética para representar los números naturales:
 Símbolos de constantes: {0,1}.
 Símbolos de función:

Monaria: s (siguiente).

◦ Binarias:{+,∗}.
111

 Símbolo de relaciones binaria: { }.


Otros símbolos que usa la sintaxis de la LPO son:
 Símbolos lógicos:
◦ Variables: x, y, z, etc.

◦ Cuantificadores:
¬ ∧ ∨∀,⇒∃. ⇔.
Conectivas: , , , y


◦ Símbolo de igualdad:
Símbolos auxiliares:
.
◦ Los paréntesis: “(“, “)”.
◦ La coma: “,”.

A partir de los símbolos anteriormente descritos se pueden definir las siguientes


nociones:
 Términos. Un término es una expresión lógica que se refiere a un objeto. Por
tanto abarca los símbolos de variable, constante y los de función. En este
último caso tendrá la forma ,, … , , 
con
con haciendo referencia a un
símbolo de función,  es la aridad y
del lengiaje de la aritmética se tendría:
 es un término. Siguiendo con el ejemplo

◦ Es un término que se suele escribir ( ∗ 1) +  ( ) .


no es un término.



,<∗∗ +, ()
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

interactuar con la BC.

A continuación se tratará, como e


ejemplo,
jemplo, el dominio de las relaciones familiares
o de parentesco. La modelización de este dominio se caracterizaría del siguiente
modo:
 Objetos: personas

Propiedades: género → predicados unarios: masculino y femenino.
113

 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

A partir de esto se pueden escribir algunas sentencias sobre lo que se sabe


acerca de los símbolos:
 La madre de alguien es su progenitor femenino.


∀,() =⇔() ∧(,,)
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

 Tres relaciones unitarias: corona, rey y persona.


 Una función unitaria: pierna izquierda.

Figura 8. Modelo sencillo en lógica de primer orden.

Fuente: http://www.slideshare.net/rushdishams/first-order-logic-26695335

Los símbolos de LPO del modelo son:


 Símbolos de constante: Ricardo y Juan.
 Símbolos de predicado: hermano,
hermano, sobre la cabeza,
cabeza, persona,
persona, rey y corona.
 Símbolo de función: pierna izquierda.

La semántica ayuda a interpretar qué objetos, relaciones y funciones son


referenciados mediante los símbolos anteriormente mencionados. Una posible
interpretación de este ejemplo podría ser:



Ricardo se refiere a Ricardo Corazón de León.
Símbolos de constante:

JHeruanmsanoe refsierefalierReye a lJauan.relación de hermandad entre dos personas.


Símbolos de predicado:

115

◦ 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

que son una persona, un rey y una corona.


situada en dicha posición.

A partir de aquí se pueden considerar diversas sentencias que representarán


los axiomas de este modelo.

5.11. Ejercicios de reflexión

1. Considerando el dominio del parentesco para la LPO, indicar cómo se


escribirían las siguientes sentencias:
 Padre e hijo son relaciones inversas.
 Un abuelo es el padre del padre de uno.
 Un hermano es otro hijo del padre de uno.

2. Considere una serie de bloques dispuestos como se muestra en la Figura X.


Modele su lenguaje dentro de la lógica de primer orden indicando qué tipo de
símbolo es cada cosa. Para el caso de los símbolos de predicado y función,
indique su aridad:

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.

3. En el lenguaje del mundo de los bloques indique:


116

 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

Considerando que el número de estados suele crecer exponencialmente a


medida que aumenta el tamaño del problema, se hace necesario estudiar la
eficacia y eficiencia de los distintos tipos de estrategias.

En IA los juegos han sido estudiados ampliamente ayudando al desarrollo de la


IA. Adoptar decisiones óptimas es intratable en la mayoría de los casos, de modo
que suelen tratarse mediante algoritmos aproximados que ayudan a buscar una
estrategia que se aproxime lo más posible a la óptima.

En el mundo de la industria esta temática ha tenido mucho éxito en el mundo


del videojuego pues ha permitido que los jugadores humanos puedan enfrentarse
a oponentes de calidad similar o superior en sus decisiones a las que tendría
cualquier otro jugador humano.

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

Agente inteligente: entidad con capacidad de percibir su entorno, procesar


dichas percepciones y responder o actuar sobre un entorno de manera racional,
es decir, correcta y maximizando el resultado esperado.

Inteligencia artificial (IA): disciplina de las ciencias de la computación que


trata de desarrollar sistemas capaces de adoptar comportamientos que, si fuesen
realizados por humanos, no dudaríamos en calificar como inteligentes.
120

Inteligencia artificial débil: corriente de la IA que adopta dos posibles posturas


respecto a la conciencia. La primera es que considera que la conciencia no se
puede atribuir a procesos puramente físicos y, por lo tanto, no es posible abordarlo
científicamente. La otra considera que, aunque la conciencia puede atribuirse a
procesos puramente físicos, su elevada complejidad hace que no pueda ser
entendido ni simulado.

Inteligencia artificial fuerte: corriente de la IA que sostiene que en un futuro


seremos capaces de comprender y simular los procesos que dan lugar a la
conciencia. De esta forma, una máquina que haya sido provisto con la suficiente
inteligencia podrá adquirir conciencia.
121

Bibliografía

Franklin, S., & Graesser, A. (1996). Is it an agent, or just a program? a taxonomy


for autonomous agents. Proceedings of the third International Workshop on
Agent Theories, Architectures, and Languages. New York: Springer-Verlag.

Nwana, H.S. (1996). Software agents: an overview. Knowledge Engineering


Review, 11 (3), p. 1-40.

Russel, S., Norvig, P. (2008). Inteligencia Artificial. Un enfoque moderno. Madrid:


Pearson Prentice Hall.
122

Wooldridge, M., & Jennings, N.R. (1995). Intelligent agents: theory and practice.
Knowledge Enginnering Review, 10 (2), p. 115-152.

García Morate, D. (2016). Manual de Weka. Obtenido de:


http://sci2s.ugr.es/sites/default/files/files/Teaching/GraduatesCourses/I
nteligenciaDeNegocio/weka.pdf

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.

Barber, F., & Salido, M. (2008). Problemas de Satisfacción de Restricciones


(CSP). En Inteligencia Artificial: Técnicas, métodos y aplicaciones. México:
McGraw-Hill, p. 385-432. Obtenido de:
http://users.dsic.upv.es/~msalido/papers/capitulo.pdf

Russel, S., Norvig, P., (2008). Inteligencia Artificial. Un enfoque moderno. Madrid:
Pearson Prentice Hall.
123
124
125
126

También podría gustarte