Está en la página 1de 124

Programa

Programa
ð Introducción histórica
ð Lenguaje de programación LISP
ð Paradigmas de representación del conocimiento
ð Frames
ð Sistemas de producción
ð Paradigma lógico
ð Exploración de espacios de estados. Búsqueda
ð Exploración de árboles de juego
ð Planificación
ð Aprendizaje simbólico. ID3
ð Algoritmos genéticos
Bibliografía
Bibliografía
ð Serradilla, F.; Barros, B. Representación e Inferencia en Inteligencia Artificial.
Un Enfoque Práctico. Escuela Universitaria de Informática, UPM. 1996.

ð Russell, S, Norvig, P. Artificial Intelligence, a modern approach. Prentice-Hall.


1995.

ð Barros, B; Foulquié, T; Serradilla, F. Programación Funcional en Lisp.


Escuela Universitaria de Informática, UPM. 1992.

ð Feigenbaum y otros. The Handbook of AI (4 volúmenes). Addison-Wesley.

ð Luger, G. F. & Stubblefield, W. A. Artificial Intelligence: structures and


strategies for complex problem solving.
The Benjamin-Cummings Redwood City. 1993.

ð Nilsson, Nilss J. Principios de Inteligencia Artificial. Díaz de Santos. 1987.

ð Rich, E. Inteligencia Artificial. Mac Graw-Hill. 1991.

ð Winston, P. H. Inteligencia Artificial. 3ª ed. Addison-Wesley. 1992.

ð Winston, P. H. Lisp. Addison-Wesley. 1993.


Introducción
Introducción histórica
histórica

Fco. Javier Alcalá Casado


Introducción
Introducción histórica
histórica
ð El problema de la inteligencia
ð Objetivos de la inteligencia artificial (IA)
ð Historia
û Rama lógico-matemática
û Rama de la psicología
û Rama de la informática
û Conferencia de Darmouth
û Rama de la simulación
û Panorama actual
ð Los primeros sistemas
ð Áreas de estudio
El
El problema
problema de
de la
la inteligencia
inteligencia

ð El principal problema de la inteligencia natural es que no


tiene una fácil definición

ð Hofstadter (1987): Inteligencia es la habilidad para


û responder flexiblemente a diferentes situaciones,
û saber aprovechar circunstancias fortuitas,
û dar sentido a mensajes ambiguos o contradictorios,
û encontrar similitudes entre situaciones diferentes, y
û generar nuevos conceptos e ideas innovadoras
El
El problema
problema de
de la
la inteligencia
inteligencia (II)
(II)

ð La inteligencia artificial trata de “imitar” a la inteligencia


natural. ¿Cómo definirla?

Eficiencia humana Racionalidad

Sistemas que piensan Sistemas que piensan


Procesos mentales
como humanos racionalmente
y razonamiento (Bellman) (Winston)

Sistemas que actúan Sistemas que actúan


Conducta como humanos racionalmente
(Minsky) (Luger)
El
El problema
problema de
de la
la inteligencia
inteligencia (III)
(III)

ð Bellman (1978): IA es la automatización de actividades


que vinculamos con procesos del pensamiento humano,
actividades tales como toma de decisiones, resolución de
problemas, aprendizaje...

ð Winston (1992): La IA se ocupa del estudio de las


computaciones que permiten percibir, razonar y actuar

ð Minsky (1986): IA es el arte de construir máquinas


capaces de hacer cosas que requerirían inteligencia en
caso de que fuesen hechas por los seres humanos

ð Luger (1989): IA es la rama de la informática que trata de


la automatización del comportamiento inteligente
Test
Test de
de Turing
Turing

ð Turing (1950) dio una definición empírica: el juego de la


imitación.

ð Test de Turing:

¿Puede saber el hombre


de fuera en qué habitación
está la máquina?
Test
Test de
de Turing
Turing (II)
(II)

ð Para superar el test de Turing, una máquina debería ser


capaz de:
û procesar lenguaje natural: para poder establecer una
comunicación satisfactoria
û representar el conocimiento: para guardar toda la
información recibida antes o durante el interrogatorio
û razonar automáticamente: para utilizar esa información al
responder a las preguntas y obtener conclusiones
û autoaprendizaje de la máquina: para adaptarse a nuevas
situaciones y detectar y extrapolar esquemas determinados

ð Test total de Turing: También imita físicamente. Necesita:


û Percepción: Visión artificial, reconocimiento del habla…
û Robótica: Habilidades para andar, saltar, subir escaleras…
Objetivos
Objetivos de
de la
la inteligencia
inteligencia artificial
artificial

ð La IA es una ciencia multidisciplinar: matemáticas,


filosofía, psicología e ingeniería

ð Objetivos de ingeniería: desarrollo de sistemas


inteligentes mejorando otros anteriores para los que no
existe un método algorítmico

ð Objetivos científicos: comprender mejor el


funcionamiento de la inteligencia, tanto en el hombre
como en las máquinas (filosofía, psicología)
û ¿Es la inteligencia independiente del hardware?
û ¿Cómo se interrelacionan las estructuras mentales?
û ¿Qué reglas las gobiernan?
Historia
Historia

ð La IA es el punto de encuentro de varias líneas de


investigación
û Rama lógico-matemática
û Rama de la psicología
û Rama de la informática
û Conferencia de Darmouth
û Rama de la simulación
û Panorama actual
Rama
Rama lógico-matemática
lógico-matemática

ð Mecanización de los procesos de razonamiento desde el


punto de vista de la manipulación de símbolos lógicos

ð Hitos importantes:
û El primer esfuerzo de mecanización del pensamiento fueron
los silogismos de Aristóteles.
û Leibniz construye el primer sistema axiomático de lógica
formal (cálculo de predicados)
û Euler formaliza la Teoría de Grafos
û Hilbert intentó encontrar un conjunto de axiomas y un
sistema formal que sintetizasen toda la matemática
Gödel, con el teorema de incompletitud, demostró que no
era posible
Rama
Rama de
de la
la psicología
psicología

ð Estudia los fundamentos de la inteligencia en el hombre

ð Hitos importantes
û Dualismo mente/cuerpo de Descartes. La mente constituye
una entidad independiente del cuerpo y puede estudiarse
por separado
û Los primeros psicólogos (James, Wundt) estudiaron el
pensamiento con una metodología basada en la
introspección (subjetiva, poco científica)
û Los conductistas (Skinner) consideran a la mente como una
caja negra capaz de asociar estímulos con respuestas
û La psicología cognitiva (Chomsky, Fodor) es el paradigma
más aceptado
Rama
Rama de
de la
la psicología
psicología (II)
(II)

ð Características de la psicología cognitiva:


û Estructuralista: los modelos de la conducta se explican por
estructuras abstractas
û Los estímulos son procesados por el organismo para producir
respuestas (no conductista)
û Mentalismo: la mente utiliza representaciones simbólicas de los
conceptos y los procesos mentales manipulan los símbolos
û Paradigma del procesamiento de la información: la mente funciona
como un ordenador; los programas son teorías psicológicas
û Memoria semántica, modelo de memoria asociativa: los conceptos
se representan por símbolos interrelacionados (redes semánticas)
û Modularidad: los procesos mentales son afrontados por módulos
débilmente acoplados
Rama
Rama de
de la
la psicología
psicología (III)
(III)

û Isomorfismo. Hofstadter: “Dos sistemas son isomórficos cuando


se puede encontrar un conjunto de reglas que traduzca o
identifique estados de cualquiera de ellos en estados del otro.”

Objeto ∈ Mundo

Representación ∈ Mente

Conexiones ∈ Cerebro
Rama
Rama de
de la
la informática
informática

ð Inteligencia artificial ⇒ inteligencia + artefacto


El ordenador se reconoce como el artefacto con mayor
posibilidad de manifestar inteligencia
ð Hitos importantes
û Charles Babbage (principio siglo XIX) diseñó la primera
máquina capaz de desarrollar cálculos automáticos
û Junto con Ada Lovelace diseñó la máquina analítica de
propósito general introduciendo conceptos como la
memoria, procesador, programas almacenados, saltos
condicionales, etc.
û Alan Turing (1937) propone la máquina de Turing.
Cualquier procedimiento matemático puede desarrollarse
con dicha máquina con una tabla de instrucciones adecuada
Rama
Rama de
de la
la informática
informática (II)
(II)

û La Cibernética o Teoría de Sistemas (Wiener) puede


aplicarse a sistemas biológicos, sociales y artificiales.
Se basa en la retroalimentación negativa

Objetivo + Error Actuación


CONTROL SISTEMA
-

Medida Comportamiento
SENSOR
Objeciones
Objeciones de
de Turing
Turing
ð En 1950, Turing publica Maquinaria de computación e
inteligencia. Propone el test de Turing, defiende la
posibilidad de construir máquinas que piensen y enumera
las posibles objeciones contra estas máquinas:
û Teológicas: la mente no reside en el cuerpo sino en el alma. Si
se admite el dualismo, se niega la psicología
No es científica
û Del avestruz: si las máquinas pensaran, las consecuencias
serían desastrosas; luego esto no puede ocurrir
Sin comentarios
û Matemáticas: el teorema de incompletitud de Gödel demuestra
que en un sistema formal suficientemente complejo existen
proposiciones indecidibles
La mente humana no supera esta limitación
Objeciones
Objeciones de
de Turing
Turing
ð Más objeciones:
û De conciencia: las máquinas no saben lo que están haciendo
cuando trabajan.
Minsky ⇒ los tres estados de conciencia de un termostato
û De las diversas incapacidades: una máquina nunca podrá ser
afectuosa, ingeniosa, amistosa, tener iniciativa...
Ahora no, pero sí podría en el futuro
û Objeción de Lady Lovelace: una máquina sólo realiza lo que
sabemos cómo ordenarle que haga
Se le puede ordenar que sea inteligente
Objeciones
Objeciones de
de Turing
Turing (II)
(II)

ð Más objeciones:
û Continuidad del sistema nervioso: una máquina de estados
discretos no puede emular al hombre
La discretización no supone limitaciones
û Basadas en la informalidad de la conducta: el hombre no
tiene un conjunto de reglas para regir su vida y las
máquinas funcionan con reglas
Las neuronas presentan un comportamiento rígido y de
ellas surge comportamiento flexible inteligente
û Basado en la percepción extrasensorial: Test de Turing
extrasensorial
No científica
Conferencia
Conferencia de
de Darmouth
Darmouth

ð Tuvo lugar en 1956

ð Todas las ramas anteriores confluyen en una nueva


disciplina, agrupando a psicólogos, matemáticos,
informáticos, neurólogos e ingenieros eléctricos

ð John McCarthy acuña el término de Inteligencia Artificial

ð Esta rama unificada de psicólogos cognitivos,


lógico-matemáticos y computación simbólica se denomina
IA clásica o IA simbólica
Rama
Rama de
de la
la simulación
simulación
ð También llamada IA conexionista
Desarrolla sistemas inteligentes imitando sistemas biológicos
con comportamiento inteligente (animales o seres humanos)

ð Su objetivo es construir cerebros artificiales formalmente


similares a los cerebros biológicos para dotarles de aprendizaje
ð Hitos importantes:
û Células de McCulloch y Pitts (1943). Emulación de neuronas con
circuitos eléctricos
û Perceptrón (Rosenblatt, 1958). Mecanismo de aprendizaje
mediante ajuste automático de las conexiones de una red de
neuronas
û Perceptrón multicapa (Rumelhart, Hinton y Williams, 1986).
Generalización del perceptrón
û Algoritmos Genéticos (Friedberg, 1958). Basados en la teoría
evolucionista de Darwin
Panorama
Panorama actual
actual
ð IA clásica + Rama de la Simulación = Ciencia Cognitiva
ð Su objetivo es el estudio de los “objetos con mente” y los
procesos implicados en el pensamiento
ð Cuestiones abiertas:
û Objeciones al Test de Turing, orientado a resolución de
problemas, olvidando la percepción, el aprendizaje y la
destreza
û Objeciones de la Reglas
Habitación china
Símbolos

¿Sabe chino el hombre de la habitación?


Panorama
Panorama actual
actual (II)
(II)

ð Más cuestiones abiertas:


û Mezcla de técnicas de IA clásica con técnicas de la rama de
simulación
û Importancia creciente del aprendizaje
û Problema de los problemas de juguete
û Evolución desde los objetivos científicos a los ingenieriles
û Con ordenadores más potentes se consideran métodos que
antes se desechaban
û Herbert Simon: la complejidad demostrada por seres vivos
se debe a la complejidad del medio con el que interactúan
más que a la complejidad interna de sus “programas” ⇒
⇒ Vida artificial
Los
Los primeros
primeros sistemas
sistemas
ð Logic Theorist. Demostración automática de teoremas. Primer
programa que utilizó símbolos en lugar de cantidades numéricas

ð DENDRAL. Primer sistema experto para análisis de datos de


espectografía de masas (isótopos)

ð SHRDLU. Comprensión del lenguaje natural y planificación de tareas

ð Turochamp. Primer programa de ajedrez

ð Programa de damas de Samuel. Primer programa que incorpora


aprendizaje

ð MYCIN. Sistema experto sobre infecciones bacterianas en sangre.


Introduce el grado de certeza

ð PROSPECTOR. Sistema experto sobre búsqueda de yacimientos


minerales
Áreas
Áreas de
de estudio
estudio
ð La IA está en continua evolución. Áreas más relevantes:
û Representación del conocimiento: Modeliza el conocimiento
en estructuras de datos adecuadas
û Exploración del espacio de estados: Busca soluciones en
problemas modelizados con grafos
û Heurística: Conocimiento intuitivo. Atajos entre el estado
actual y la solución
û Resolución de problemas: Planificación de tareas
û Demostración de teoremas: Programación lógica
û Teoría de juegos: Estrategias de búsqueda (ajedrez)
û Ingeniería del conocimiento (Sistemas Expertos): Requieren
de la ayuda de un experto humano
Áreas
Áreas de
de estudio
estudio
ð Más áreas de estudio:
û Diagnóstico: Establece hipótesis sobre el mal funcionamiento
de un sistema
û Aprendizaje: Refina el conocimiento inicial para hacerlo más
operativo
û Comprensión del lenguaje natural (y traducción automática):
û Percepción computacional (reconocimiento de patrones):
interpreta la información sensorial
û Simulación de procesos psicológicos humanos: Estudia la
inteligencia humana mediante procesos de simulación
û Sistemas multiagente: Coordinación de la conducta inteligente
entre un conjunto de agentes autónomos y heterogéneos
Lenguaje
Lenguaje de
de Programación
Programación LISP
LISP

Fco. Javier Alcalá Casado


Marco
Marco histórico
histórico

ð McCarthy lo creó en 1958

ð Se creó para procesar de listas en un proyecto de IA

ð La primera versión consumía mucha memoria (recurso


caro)

ð Se crearon varias versiones: FRANZLISP, ZETALISP,


MULISP, XLISP, LELISP, SCHEME...

ð Con el avance del hardware se solucionó el problema de


la memoria y surgió el estándar actual: COMMON LISP
Características
Características de
de LISP
LISP

ð Lenguaje funcional. Utiliza las propiedades matemáticas


de las funciones
ð Simbólico. Utiliza el símbolo como unidad fundamental
ð Procesamiento de listas (LISt Procesing)
ð Flexibilidad
û Utiliza la misma estructura para datos y código
û Paso de funciones como parámetro (reusabilidad)
û Autodefinición del lenguaje (entorno a la medida)
û Estructura de datos muy flexible (Garbage collector)
ð Recursividad. Definiciones muy claras y concisas
ð Interpretado. Desarrollo rápido de prototipos
ð Compacto: funcional + recursivo + listas
Lenguajes
Lenguajes funcionales
funcionales

ð La primitiva básica es la función

ð Una función es una regla de correspondencia entre


miembros de un dominio y miembros de un rango

ð Un programa es un conjunto de funciones que se llaman


unas a otras y se pasan los datos en las llamadas

ð Una ventaja importante es la recursividad

ð La asignación está definida y se utiliza; a pesar de ser


considerado un lenguaje sin asignación
Componentes
Componentes de
de LISP
LISP
ð Conjunto de objetos o datos. Estructura fundamental: lista

ð Funciones primitivas. Aquéllas aportadas inicialmente por


el lenguaje

ð Operación de aplicación (read-eval-print loop). Primitiva


encargada de gestionar y realizar el proceso de
interpretación: lectura-escritura-devolución de resultados

ð Formas funcionales (DEFUN). Funciones definidas por el


programador que pasan a formar parte del lenguaje como
una primitiva más

ð Operadores aplicativos. Funciones cuyos parámetros son


otra función y los argumentos de esta otra función
Campos
Campos de
de aplicación.
aplicación. Funcionalidad
Funcionalidad

ð Campos de aplicación:
û Inteligencia Artificial
û Entornos gráficos

ð Funcionalidad:
û No se deben utilizar variables globales dentro de funciones.
Atenta contra la reusabilidad y la claridad del programa.
En su lugar, se utilizan variables locales o paso de
parámetros
û No se deben utilizar estructuras iterativas, sino recursividad
Paradigmas
Paradigmas de
de Representación
Representación del
del Conocimiento
Conocimiento

Fco. Javier Alcalá Casado


Paradigmas
Paradigmas de
de representación
representación del
del conocimiento
conocimiento

ð Computación sobre representaciones

ð Tipos de conocimiento

ð Uso del conocimiento

ð Tipos de razonamiento

ð Tipos clásicos de representación:


û Frames (marcos)
û Sistemas de producción
û Paradigma lógico
û Exploración de espacios de estados
Computación
Computación sobre
sobre representaciones
representaciones

ð Una estructura de datos no representa conocimiento. Es


necesario establecer mecanismos para acceder y
relacionar distintas partes del conocimiento

ð Un sistema inteligente se divide en:


û representaciones del conocimiento y
û computaciones sobre estas representaciones

⇒ Paradigma C-R

ð Se independiza el proceso de resolución del problema,


inferencia, de la naturaleza del mismo
Computación
Computación sobre
sobre representaciones
representaciones (II)
(II)

Modelización
Problema Representación

Inferencia

Solución Explicación
Tipos
Tipos de
de conocimiento
conocimiento
ð Objetos. Conceptos con entidad propia
ð Eventos. Especifican sucesos en el tiempo
ð Reglas de inferencia. Indican cómo obtener nuevo
conocimiento a partir del que ya tiene el sistema
ð Conocimiento procedural. Indica la manera de realizar
determinadas cosas. Son las computaciones sobre las
representaciones. El cómo
ð Metaconocimiento. Conocimiento a nivel más abstracto.
Da una idea de cuál es la mejor manera de resolver un
problema
ð Conocimiento declarativo. Representa los conceptos que
intervienen en el problema. Hechos, reglas y metaconoci-
miento. El qué
Ejemplo
Ejemplo del
del Metro
Metro

ð Definir un sistema que permita calcular el camino más


corto entre dos estaciones:
û Objetos: las estaciones
û Eventos: las horas a las que pasan los trenes
û Reglas de inferencia: determinan a qué estaciones puedo
pasar a partir de una dada
û Conocimiento procedural: cómo encontrar un camino entre
dos estaciones
û Metaconocimiento: para encontrar un camino debo buscar
explorando hacia la estación destino
Uso
Uso del
del conocimiento
conocimiento

ð Problemas que se plantean con el uso del conocimiento:


û Adquisición. Los modelos de representación deben ser
capaces de recoger nueva información para que se integre
con la adquirida anteriormente, completándola o
actualizándola
û Recuperación. El acceso a parte del conocimiento debe ser
sencilla y eficiente.
La memoria asociativa humana relaciona información con
un contexto
û Razonamiento. Permite obtener nuevo conocimiento a partir
del que ya se tiene. Este conocimiento está implícito, pero
es de difícil obtención
Tipos
Tipos de
de razonamiento
razonamiento

ð Formal. Deduce, con reglas de inferencia, estructuras de


datos manipulando sintácticamente otras estructuras
(gramáticas generativas)

ð Procedural. Razonamiento mediante la ejecución de


determinados algoritmos

ð Por analogía. Razonamiento por semejanza. Frecuente


en los humanos

ð Generalización y abstracción. Proceso de obtención de


conocimiento más refinado a partir de otro más simple
Tipos
Tipos clásicos
clásicos de
de representación
representación

ð La representación se divide en dos partes: conocimiento


declarativo e inferencia o conocimiento procedural

ð Conocimiento declarativo (K). Representa objetos y


conceptos que intervienen en el problema.
Es dependiente del problema
û Hechos (H): cosas ciertas en un momento dado. Constituyen
la memoria de trabajo (a corto plazo)
û Reglas (R): conocimiento a largo plazo. Permiten obtener
nuevo conocimiento a partir del que ya se tiene
û Metaconocimiento (M): ayuda a la inferencia a manipular las
reglas para obtener un hecho concreto
Tipos
Tipos clásicos
clásicos de
de representación
representación (II)
(II)

ð Inferencia o conocimiento procedural (I): Representa el


modo de obtener nuevo conocimiento a partir del que ya
se tiene en un instante dado.
Es independiente del problema
ð Paradigmas clásicos de representación
û Frames (marcos)
Ÿ H: Valores de atributos
Ÿ R: Herencia y demonios
Ÿ I: Funciones de manipulación, equiparación
û Sistemas de producción
Ÿ H: Ternas objeto-atributo-valor
Ÿ R: Reglas de producción
Ÿ M: Parámetros, metarreglas
Ÿ I: Encadenamiento de reglas
Tipos
Tipos clásicos
clásicos de
de representación
representación (III)
(III)

û Paradigma lógico
Ÿ K (H y R): Cálculo de predicados, reglas lógicas, cláusulas de
Horn
Ÿ I: Unificación, resolución
û Exploración de espacios de estados
Ÿ H: Estados
Ÿ R: Transiciones de estado
Ÿ M: Funciones heurísticas
Ÿ I: Algoritmos de búsqueda
Sistemas
Sistemas de
de Producción
Producción

Fco. Javier Alcalá Casado


Sistemas
Sistemas de
de Producción
Producción

ð Introducción

ð Hechos

ð Reglas

ð Metaconocimiento

ð Motor de Inferencia

ð Módulo de explicación
Introducción
Introducción

ð En los sistemas de producción se representa el


conocimiento mediante hechos, reglas de producción y
metaconocimiento.

Hechos
Motor de Módulo de
Inferencia Explicación
Reglas

Metaconocimiento
Introducción
Introducción (II)
(II)

ð Base de hechos: conjunto de todos los hechos

ð Base de reglas: conjunto de todas las reglas

ð El metaconocimiento establece criterios para aplicar las


reglas

ð El motor de inferencia permite obtener nueva información


a partir de la inicial

ð El módulo de explicación justifica las conclusiones que se


han obtenido.
Hechos
Hechos

ð Los hechos se representan por ternas Objeto-Atributo-Valor

(<objeto>, <atributo>, <valor>)

ð Ejemplos:
û (rayo, es-un, caballo)
û (veloz, es-un, caballo)
û (cometa, es-un, caballo)
û (rayo, valioso, sí)
û (veloz, hijo-de, cometa)
û (cometa, rápido, sí)
Reglas
Reglas
ð Tienen el siguiente formato:
IF <expresión-lógica> Antecedente
THEN <acciones> Consecuente

ð Una terna en el antecedente es cierta sólo si existe en la


base de hechos
ð Si se aplica la regla, se ejecutan todas las acciones del
consecuente, que pueden ser nuevas ternas o llamadas a
función
ð R1:
IF (X, es-un, caballo) AND (X, hijo-de, Y) AND
(Y, es-un, caballo) AND (Y, rápido, sí)
THEN (X, valioso, sí)
Metaconocimiento
Metaconocimiento

ð El metaconocimiento ayuda a determinar qué regla se


aplica cuando hay varias aplicables
ð Criterios de aplicación de reglas:
û La primera regla de la base de reglas
û Azar
û La más específica (con más elementos en el antecedente)
û La más genérica (con menos elementos en el antecedente)
û La más recientemente utilizada
û La menos recientemente utilizada
û La que añada más información (con más elementos en el
consecuente)
û Todas
Metaconocimiento
Metaconocimiento (II)
(II)

ð Si tras aplicar todos los criterios, sigue habiendo varias


posibilidades, se elige la primera regla en orden de
aparición

ð Las metarreglas son reglas que expresan cuándo


debemos dar preferencia a una regla concreta

Ejemplo:
Si la consulta es sobre gripe,
entonces dar preferencia a las reglas R3 y R4
Motor
Motor de
de Inferencia
Inferencia
ð Repetir
û Establecer el conjunto conflicto (CC). Se obtienen todas
las reglas cuyo antecedente se equipara con los elementos
de la base de hechos y se especifica una lista de pares
(regla, sustitución)
û Seleccionar un único par (regla, sustitución) con los criterios
establecidos por el metaconocimiento
û Disparar la regla seleccionada. Se aplica la sustitución y se
añaden a la base de hechos las ternas del consecuente.
Si ya existe el atributo del objeto en alguna terna del CC, se
actualiza su valor para evitar inconsistencias

Hasta que el hecho buscado esté en la base de hechos o


la base de hechos no haya cambiado
Módulo
Módulo de
de explicación
explicación

ð Se encarga de dar una justificación a posteriori de las


conclusiones a las que ha llegado el sistema

ð Se guarda una traza para saber qué reglas y en qué


orden se han utilizado, así como los hechos que permitían
utilizarlas y las conclusiones intermedias
Frames
Frames

Fco. Javier Alcalá Casado


Frames
Frames

ð Introducción

ð Estructura de un frame

ð Herencia

ð Demonios

ð Tipos de facets

ð Representación en LISP

ð Funciones de manipulación de frames

ð Inferencia en frames
Introducción
Introducción

ð Un frame es una estructura activa de almacenamiento de


información

ð Utiliza mecanismos para buscar automáticamente un dato


si éste no se encuentra en el propio frame
Estos mecanismos son:
û Herencia: mediante una relación de jerarquía, busca el dato
solicitado en otros frames
û Demonios (o valores activos): son funciones que son
llamadas automáticamente cuando se hace referencia a
ciertos datos

ð Un frame se puede relacionar con otro con relaciones de


pertenencia, inclusión o de usuario
Estructura
Estructura de
de un
un frame
frame

ð Un frame es una estructura con


compartimentos en los que se
guarda la información.
Representa un objeto Pedro
ð Se compone de:
ES-UN Value Hombre
û Atributos (slots): cada uno
de los compartimentos Profesión Default Pintor

û Valores: el contenido del


Altura Value 180
compartimento
û Facetas (facets): indica
cómo se puede utilizar el
conocimiento del slot
Herencia
Herencia

ð Si A tiene una relación de instancia o de subclase con B,


los atributos de A que no tengan ningún valor lo toman de
los que tengan esos mismos atributos en B

ð Una relación de instancia se define a través del atributo


IS-A (ES-UN). Su valor será el nombre del frame del que
hereda

ð Una relación de subclase se define a través del atributo


AKO (a kind of)

ð En una cadena de herencia puede haber varios atributos


AKO, pero sólo uno IS-A
Demonios
Demonios

ð Los demonios o valores activos son funciones que se


disparan automáticamente cuando se almacenan o se
recuperan datos en un frame

ð Un demonio tiene dos parámetros: frame y slot

ð IF-NEEDED se dispara al intentar recuperar el valor de un


atributo que no tiene ningún valor asociado. Proporciona
la información requerida ejecutando un algoritmo
û El demonio ASK pregunta al usuario el valor de un atributo

ð IF-ADDED se dispara después de asignar un valor a un


atributo
Tipos
Tipos de
de facets
facets

ð Un sistema básico dispone de los siguientes facets:


û Value: el contenido del slot es un valor literal
û Default: el contenido del slot es un valor por defecto (sólo se
devuelve si no está definido el facet Value)
û Range: indica el rango de valores válidos para el slot
û IF-ADDED: el contenido del slot es un demonio IF-ADDED
û IF-NEEDED: el contenido del slot es un demonio IF-NEEDED
Representación
Representación en
en LISP
LISP

ð Hay dos maneras:


û Representación muy eficiente pero incómoda de manipular:
( Frame1 Frame2 ... FrameN )
donde cada Frame-i es ( <Nombre-frame> Slot1 ... SlotN )
donde cada Slot-i es ( <Nombre-slot> Facet1 ... FacetN )
donde cada Facet-i es ( <Nombre-facet> <valor> )
û Representación muy sencilla de manipular pero menos
eficiente:
( E1 E2 ... EN)
donde cada Ei es un par
( ( <Nombre-frame> <Nombre-slot> <Nombre-facet> ) <valor> )
Funciones
Funciones de
de manipulación
manipulación de
de frames
frames

ð FPUT permite añadir información al sistema


( FPUT Frame Slot Valor &OPTIONAL (Facet ‘value) )

ð FGET permite recuperarla


( FGET Frame Slot &OPTIONAL (Origen Frame) (Is-a T) )

ð FFIND encuentra los frames que mejor se equiparan con


ciertas restricciones
( FFIND ( Slot1 Valor1 ) ( Slot2 Valor2 ) ... ( SlotN ValorN ) )
Inferencia
Inferencia en
en frames
frames

ð La inferencia en frames se realiza de distintas maneras:


û Con los valores por defecto
û A través de la herencia, cuando se solicita un valor que no
está en el frame, pero sí en sus antecesores
û A través de los demonios, cuando se disparan
procedimientos para calcular el valor solicitado
û A través de la equiparación, cuando se busca en la base de
frames con FFIND
Paradigma
Paradigma lógico
lógico

Fco. Javier Alcalá Casado


Paradigma
Paradigma lógico
lógico

ð Introducción

ð Unificación de predicados

ð Encadenamiento de reglas dirigido por el objetivo


Introducción
Introducción
ð Procesamiento realizado por el lenguaje de programación
PROLOG

ð Representación basada en:


û Términos: variables (A, B, X), constantes (juan, 2, caballo) y
funciones cuyos argumentos son términos (f(x), padre(juan))
û Predicados: símbolos de n argumentos (que son términos)
que toman valor verdadero o falso
caballo(X), valioso(veloz), es-padre(veloz, padre(cometa))
û Cláusulas de Horn: hechos o reglas formadas por varios
antecedentes (conjunción) y un consecuente
consecuente :- antecedente1, antecedente2 ...
La disyunción se representa añadiendo reglas
Unificación
Unificación de
de predicados
predicados

ð La unificación es un proceso por el cual se transforman dos


expresiones lógicas para hacerlas idénticas
No siempre es posible realizarla
ð Algoritmo para unificar dos predicados:
û Los símbolos de los predicados han de ser iguales y con el mismo
número de argumentos. Si no se termina con FALLO
û Por cada término de ambos predicados puede suceder:
Ÿ Si un término es una variable y el otro es cualquier término que
no contenga a esa variable, se sustituye la variable por el término
Ÿ Si los dos términos son constantes con el mismo valor, ya están
unificados. Si el valor es distinto se termina con FALLO
Ÿ Si los términos son funciones, deberán llamarse igual y tener el
mismo número de argumentos. Se aplica recursivamente el
algoritmo a los argumentos de la función
Ÿ Si no se cumple ningún caso, se termina con FALLO
Ejemplos
Ejemplos de
de unificación
unificación de
de predicados
predicados

ð Unificar:
û {tos(X), tos(juan)} ⇒ <X,juan>
û {amigo(X,Y), amigo(andres,julio)} ⇒
<X,andres> <Y,julio>
û {colocado(X,Y,atras), colocado(X,grande,X)} ⇒
<X,atras> <Y,grande>
û {B(a,g(X,b),Y), B(Z,g(c,b),d)} ⇒ <X,c> <Y,d> <Z,a>
û {A(X,g(Y)), A(c,Y)} ⇒ FALLO
û {A(X,g(Y)), A(c,Z)} ⇒ <X,c> <Z,g(Y)>
Encadenamiento
Encadenamiento de
de reglas
reglas dirigido
dirigido por
por el
el objetivo
objetivo
1. Se parte de una lista L de objetivos O1 O2 ... On
2. Selección
2.1 Seleccionar un objetivo Oi por orden de aparición
2.2 Seleccionar una cláusula Rj por orden de aparición.
Renombrar sus variables.
Si el consecuente de Rj puede unificarse con Oi, se crea
una nueva rama realizando las sustituciones necesarias;
si no se puede unificar ⇒ la rama termina en FRACASO
3. Resolución: Oi se sustituye en L por el antecedente de Rj . A
todas las cláusulas de L se les aplica las sustituciones de la
unificación
4. Si L vacía ⇒ la rama termina en ÉXITO
si no, volver al paso 2
El algoritmo termina cuando se han recorrido todas las ramas
Métodos
Métodos de
de Exploración
Exploración en
en Espacios
Espacios de
de Estados
Estados

Fco. Javier Alcalá Casado


Métodos
Métodos de
de exploración
exploración en
en espacios
espacios de
de estados
estados

ð Introducción

ð Algoritmos de búsqueda
û Expansión de un camino
û Esquema básico de un algoritmo de búsqueda
û Método de escalada
û Primero el mejor
û Algoritmo A*

ð Representación en árbol
Introducción
Introducción

ð La exploración de espacios de estados es una de las


técnicas más importantes en IA

ð Se manejan estados (hechos del problema), transiciones


(reglas) y funciones heurísticas (metaconocimiento). La
inferencia se realiza a través de algoritmos de búsqueda

ð Un estado es cada configuración posible de un problema.


Se representan con estructuras de datos.
Ej: Problema del Metro ⇒ estado: “estar en la estación X”
û Los sucesores son los estados que se pueden alcanzar en
un único paso desde un estado.
Son el resultado de una transición de estado
Ej: Metro ⇒ sucesores: “estaciones consecutivas”
Introducción
Introducción (II)
(II)

ð Una transición permite obtener una lista de estados a los


que se llega desde un estado previo tras la aplicación de
operaciones definidas en el dominio del problema.
Se describe con un algoritmo y puede tener un coste
asociado.
Ej: Metro ⇒ coste: “tiempo medio entre estaciones”

ð Una función heurística o heurístico es una función


matemática que devuelve un valor numérico menor
cuanto más cerca está un estado cualquiera del estado
objetivo. El valor no tiene por qué ser exacto.
Ej: Metro ⇒ función: “distancia euclídea entre estaciones”
Introducción
Introducción (III)
(III)

ð Elementos a definir para la exploración de espacios de


estados:
û Una estructura de datos para los estados
û Operaciones aplicables a un estado para obtener nuevos
estados (y un coste asociado, si es preciso)
û Una función heurística que devuelva la proximidad entre un
estado cualquiera y el estado objetivo
û Una función que determine si un estado X es o no un
estado solución
Algoritmos
Algoritmos de
de búsqueda
búsqueda

ð Un algoritmo de búsqueda permite encontrar, desde un


estado inicial, una secuencia de estados hasta alcanzar el
estado objetivo.

ð Cada estado intermedio es consecuencia de aplicar una


regla de transición al estado precedente

ð Se llama camino a una secuencia de estados que lleva de


un estado a otro
û Camino solución es el que va desde el estado inicial hasta
el estado objetivo
û Camino parcial es el que va desde el estado inicial hasta un
estado que no es solución (estado actual)
Expansión
Expansión de
de un
un camino
camino

ð La expansión de un camino C resulta de añadir a C cada


uno de los nuevos estados alcanzables desde el último
estado de C. Se excluyen los caminos cíclicos, es decir,
los que llegan a un nodo que ya está incluido en C

ð EXPANDIR ( C )
û Calcular los sucesores del último estado de C utilizando
reglas de transición
û Inicializar R = { }
û Para cada sucesor Ei que no esté en C
Añadir a la lista R un nuevo camino, obtenido de añadir a C el
estado Ei
û Devolver R
Expansión
Expansión de
de un
un camino
camino (II)
(II)

C E
A B

D F
ð Camino = (A B D)
ð EXPANDIR ( Camino )
Sucesores: B, C, E, F
R={}
R = { (A B D C) }
R = { (A B D C), (A B D E) }
R = { (A B D C), (A B D E), (A B D F) }

ð En LISP, las listas se crean a la inversa


Esquema
Esquema básico
básico de
de un
un algoritmo
algoritmo de
de búsqueda
búsqueda

BUSCAR ( INICIO OBJETIVO HEURISTICO COSTE )


1. Formar la lista CP de caminos pendientes (lista de posibles
caminos solución). Inicialmente CP contiene el estado INICIO
2. Mientras CP ≠ { } y estado actual del primer camino ≠ OBJETIVO
Ÿ Expandir primer camino obteniendo una nueva lista E
Ÿ Quitar de CP el primer camino
Ÿ Formar una nueva lista CP combinando CP y E y la
información de HEURISTICO y COSTE
3. Si CP = { }, devolver FALLO
en caso contrario, devolver como solución el primer camino
Método
Método de
de escalada
escalada

ESCALADA ( INICIO OBJETIVO HEURISTICO )


1. Formar la lista CP de caminos pendientes (lista de posibles
caminos solución). Inicialmente CP contiene el estado INICIO
2. Mientras CP ≠ { } y estado actual del primer camino ≠ OBJETIVO
Ÿ Expandir primer camino obteniendo una nueva lista E
Ÿ Quitar de CP el primer camino
Ÿ Ordenar E de menor a mayor según el valor devuelto por
HEURISTICO
Ÿ Añadir E por delante a la lista CP
3. Si CP = { }, devolver FALLO
en caso contrario, devolver como solución el primer camino

ð Se da prioridad a los nuevos caminos más prometedores


Representación
Representación en
en árbol
árbol

ð Se coloca en la raíz el estado inicial

ð Por cada estado seleccionado se indica en el árbol el


número de iteración con un recuadro y se añaden sus
descendientes (expansión)

ð Se selecciona el siguiente nodo a expandir según el


algoritmo de exploración que se esté utilizando

ð Junto a cada nodo se anota el valor de la función


heurística (para escalada y “primero el mejor”) o de la
función de estimación (para A*).
En el A* se señalan también las “podas” realizadas por la
programación dinámica (PD)
Problemas
Problemas del
del método
método de
de escalada
escalada

ð Sensible a mínimos locales: un mínimo local se produce


cuando estando en un estado la función heurística se
hace mínima localmente. Esto lleva a caminos que no
conducen a la solución o a caminos más largos

ð Mesetas: se produce cuando la función heurística toma


valores similares en todos los caminos pendientes. El
progreso hacia la solución es lento

ð Importancia del heurístico: un buen heurístico debe dar


valores bajos cuando el estado actual esté cerca de la
solución.
Un heurístico ideal nos guiaría hacia la solución con un
coste computacional mínimo y con el menor número de
nodos
Primero
Primero el
el mejor
mejor

PRIMERO_EL_MEJOR ( INICIO OBJETIVO HEURISTICO )


1. Formar la lista CP de caminos pendientes (lista de posibles
caminos solución). Inicialmente CP contiene el estado INICIO
2. Mientras CP ≠ { } y estado actual del primer camino ≠ OBJETIVO
Ÿ Expandir primer camino obteniendo una nueva lista E
Ÿ Quitar de CP el primer camino
Ÿ Añadir E por detrás a la lista CP
Ÿ Ordenar la nueva lista CP de menor a mayor según el valor
devuelto por HEURISTICO
3. Si CP = { }, devolver FALLO
en caso contrario, devolver como solución el primer camino

ð La ordenación se realiza en todos los caminos pendientes


ð Da mejores resultados que el método de “escalada” con mayor carga
computacional
Algoritmo
Algoritmo A*
A*

ð A* encuentra la solución óptima siempre que la función


heurística cumpla la condición de minorancia:
h(e) ≤ h*(e) ∀e
h(e) valor del heurístico en el estado e
h*(e) coste real del menor camino desde e hasta el estado solución
La distancia euclídea cumple la condición de minorancia
ð Utiliza dos nuevos elementos:
û Programación dinámica: si hay dos caminos que llegan al
mismo nodo, se eliminan los de mayor coste
û Función de estimación: f(c) = g(c) + h(c)
g(c) coste acumulado desde el inicio hasta el estado actual
h(c) valor del heurístico desde el estado actual hasta el objetivo
f(c) estimación del coste total que tendrá el camino solución
Algoritmo
Algoritmo A*
A* (II)
(II)

A* ( INICIO OBJETIVO HEURISTICO COSTE )


1. Formar la lista CP de caminos pendientes (lista de posibles
caminos solución). Inicialmente CP contiene el estado INICIO
2. Mientras CP ≠ { } y estado actual del primer camino ≠ OBJETIVO
Ÿ Expandir primer camino obteniendo una nueva lista E
Ÿ Quitar de CP el primer camino
Ÿ Añadir E por detrás a la lista CP
Ÿ Ordenar la nueva lista CP de menor a mayor según la función
de estimación (HEURISTICO + COSTE acumulado)
Ÿ Aplicar programación dinámica: si hay dos caminos que llegan
al mismo nodo, se elimina el de mayor coste
3. Si CP = { }, devolver FALLO
en caso contrario, devolver como solución el primer camino
Exploración
Exploración de
de Árboles
Árboles de
de Juegos
Juegos

Fco. Javier Alcalá Casado


Exploración
Exploración de
de árboles
árboles de
de juego
juego

ð Introducción

ð Juegos de suma cero

ð Implementación de juegos

ð Los jugadores y la heurística

ð Algoritmo Minimax

ð Algoritmo Alfa-beta
Introducción
Introducción

ð Shannon (1950) publicó “Programando un ordenador para


jugar al ajedrez”

ð El ajedrez plantea problemas similares a los de la deducción


lógica: hay que elegir entre varias situaciones posibles y el
objetivo no está totalmente definido

ð El modelo discreto que define Shannon se conoce como árbol


de juego y el modelo matemático como teoría de juegos de
suma cero de dos jugadores con información completa

û Juego de suma cero: aquél en el que los


intereses de los jugadores son contrarios. Si uno
gana el otro pierde
û Juego de información completa: aquél en el que
cada jugador conoce las posibles jugadas que
puede realizar el adversario
Juegos
Juegos de
de suma
suma cero
cero

ð Características:
û Suelen ser juegos de dos contrarios con turno alternativo
û Terminan en dos o tres resultados posibles: ganar, perder o
tablas (no se da en todos)
û Cada movimiento implica una elección sobre todas las
jugadas posibles. La elección sigue criterios determinados
por el juego y no depende del azar (como en los dados,
cartas...)
û En todo momento los jugadores conocen las jugadas ya
realizadas y las que se pueden realizar
û Cada jugador tiene un nº determinado de movimientos en
un momento dado. El árbol resultante es finito
Implementación
Implementación de
de juegos
juegos

ð Son necesarios 4 elementos:


û abstracción de datos: para almacenar y representar el
tablero (estado del juego)
û generador de movimientos: genera todas las posibles
jugadas inmediatas a partir de una situación del juego
û función heurística: devuelve un valor, llamado valor estático,
que evalúa cómo de favorable es cada jugada para orientar
al algoritmo de búsqueda
û estrategia de búsqueda: permite decidir qué estrategia es la
más apropiada en cada momento
Los
Los jugadores
jugadores yy la
la heurística
heurística

ð Se consideran dos jugadores, MAX y MIN, que intentan


maximizar y minimizar la función heurística

ð MAX (ordenador) elige la posición que tenga más valor en


la evaluación de la función heurística

ð MIN (adversario) elige la posición con menos valor

ð La función heurística debe asignar valores tanto mayores


cuanto mejor sea el estado del juego. Los valores
deberán ser positivos para MAX y negativos para MIN

ð Si MAX gana, la función devolverá +∞; si gana MIN, -∞


Algoritmo
Algoritmo Minimax
Minimax
ð El objetivo es encontrar una buena jugada rápidamente
ð La generación y la exploración del árbol están separadas
ð Algoritmo:
û Generar el árbol con profundidad n etiquetando cada nivel
con MAX y MIN, alternativamente. El primer nivel es MAX
û Calcular los valores estáticos para los nodos hoja
û Explorar desde el nivel n hasta la raíz:
Ÿ Si el nivel es MIN, elegir el menor valor de sus nodos hijos.
Si el nivel es MAX, elegir el mayor valor de sus nodos hijos
Ÿ Etiquetar el nodo con ese valor
û Elegir como mejor jugada la correspondiente al valor
elegido por el nodo raíz
Algoritmo
Algoritmo Alfa-beta
Alfa-beta
ð Alfa-beta mejora el minimax utilizando dos valores:
û alfa (α): asociado a MAX; no puede decrecer; inicio, α = -∞
û beta (β): asociado a MIN; no puede crecer; inicio, β = +∞

ð ALFA-BETA (nodo, profundidad, F, α, β, jugador)


Iniciar α, β localmente
Si profundidad = 0 ó es final de juego, devolver F
Si jugador = MIN
Repetir hasta terminar todos los hijos ó α ≥ β
V = ALFA-BETA ( HIJOi, profundidad-1, F, α, β , MAX)
Si V < β entonces β = V
Si α ≥ β, devolver -∞ (corte β); si no, devolver β
Si jugador = MAX
Repetir hasta terminar todos los hijos ó α ≥ β
V = ALFA-BETA ( HIJOi, profundidad-1, F, α, β , MIN)
Si V > α entonces α = V
Si α ≥ β, devolver +∞ (corte α); si no, devolver α
Planificación
Planificación de
de Tareas
Tareas

Fco. Javier Alcalá Casado


Planificación
Planificación de
de Tareas
Tareas

ð Visión general

ð Método STRIPS

ð Operador STRIPS

ð Algoritmo STRIPS
Visión
Visión General
General

ð La planificación pertenece al campo de resolución de


problemas

ð La planificación se basa en la división de un problema en


subproblemas más pequeños que se resuelven por
separado. La combinación de todas las subsoluciones
forma la solución del problema original

Barra de Dejar Coger Cortar


pan entera tenedor cuchillo Cuchillo en pan
Mano libre Pan cortado
Tenedor en la mano
la mano
Visión
Visión General
General (II)
(II)

ð La planificación debe encontrar un conjunto de acciones,


operaciones o tareas que transformen un estado inicial en
un estado objetivo

ð La solución del problema estará formada por una


sucesión de operaciones denominado plan

PLAN = { Dejar Tenedor, Coger Cuchillo, Cortar Pan }


Visión
Visión General
General (II)
(II)

ð El primer planificador, desarrollado por Newell y Simon


(1957), fue el sistema GPS (General Problem Solver). Su
objetivo era resolver cualquier tipo de problema

ð La principal aportación de GPS a los planificadores de


tareas se centra en la organización de los datos:
û Selector: atributo que define una característica relevante del
entorno del problema (subobjetivos)
û Estado: conjunto de selectores que definen una situación
del mundo en un instante concreto
û Operador: acción que transforma un estado en otro
Método
Método STRIPS
STRIPS

ð STRIPS (STanford Research Institute Problem Solver)


utiliza la lógica para mejorar la resolución del problema

ð Utiliza gran parte de los elementos del sistema GPS

ð Realiza una exploración en profundidad sobre el espacio


de estados del problema (despliega un árbol)

ð Opcionalmente, proporciona un mecanismo de


aprendizaje utilizando la información de tareas resueltas
previamente (tablas triangulares)
Operador
Operador STRIPS
STRIPS

ð Un operador STRIPS consta de los siguientes elementos:


û Nombre del operador
û Parámetros del operador. Son opcionales
û Precondiciones (P): lista de selectores que se tienen que
cumplir para poder aplicar el operador
û Lista de Adición (A): lista de selectores que se añaden al
estado actual al aplicar el operador
û Lista de Supresión (S): lista de selectores que se suprimen
del estado actual al aplicar el operador
Algoritmo
Algoritmo STRIPS
STRIPS
ð STRIPS consiste en seleccionar un operador que permita
alcanzar el objetivo al aplicarlo. Las precondiciones pasan
a ser subobjetivos que deben alcanzarse

ð Se seguirá descomponiendo hasta que todas las


precondiciones se cumplan y se pueda aplicar el operador

ð Un nodo de exploración contiene dos variables:


û ESTADO, que almacena el estado en ese nodo
û PILA, que almacena selectores, operadores y conjunciones
de selectores

ð Un nodo de FALLO es aquél en el cual, para alcanzar un


determinado objetivo A, es necesario que A se cumpla
Algoritmo
Algoritmo STRIPS
STRIPS (II)
(II)
ESTADO = ESTADO_INICIAL; PILA = OBJETIVO
REPETIR HASTA que PILA = ø ó todos los nodos sean de FALLO
SI la cima de la PILA es un operador
ENTONCES aplicarlo y obtener el nuevo ESTADO (suprimiendo y
añadiendo selectores), suprimirlo de la cima (PLAN++)
SI la cima de la PILA es una conjunción de selectores
ENTONCES SI se verifica la conjunción
ENTONCES suprimirla de la cima
EN CASO CONTRARIO añadir la precondición que falla
SI la cima de la PILA es un selector ∈ ESTADO
ENTONCES suprimirlo de la cima
EN CASO CONTRARIO
SI el selector aparece más abajo en la PILA
ENTONCES es un nodo de FALLO, la rama se aborta
y recorre otra rama en profundidad

Determinar operadores que contenga en su lista


de adición el selector de la cima de la pila

POR CADA operador


Añadir la instancia del operador
Añadir la conjunción de sus precondiciones
Añadir cada una de sus precondiciones
SI PILA ≠ ø
ENTONCES devolver FALLO, no hay solución
EN CASO CONTRARIO hemos ejecutado el PLAN
Aprendizaje
Aprendizaje Simbólico
Simbólico aa partir
partir de
de Ejemplos
Ejemplos

Fco. Javier Alcalá Casado


Aprendizaje
Aprendizaje Simbólico
Simbólico aa partir
partir de
de Ejemplos
Ejemplos

ð Introducción

ð Parámetros del algoritmo ID3

ð Algoritmo ID3

ð Generación de las reglas derivadas del árbol ID3


Introducción
Introducción
ð El aprendizaje automático se puede clasificar en:
û Métodos simbólicos: basados en símbolos
Ÿ Sintéticos o inductivos: ID3
Ÿ Analíticos o deductivos
û Métodos subsimbólicos: basados en cantidades numéricas

ð El objetivo del algoritmo ID3 consiste en clasificar varios


elementos, utilizando ejemplos y valores de condición,
representándolos en forma de árbol de decisión
û Cada ejemplo es un individuo
û Los valores de condición son propiedades
û Los elementos se clasifican según el valor de una
propiedad concreta binaria llamada resultado (con 2 valores
posibles)
Introducción
Introducción (II)
(II)

ð El árbol de decisión resultante determina el conjunto al


que pertenece un individuo según los valores que toman
alguna de sus propiedades (no todas)
û Cada nodo interno representa una propiedad
û Cada rama es un valor posible de esa propiedad
û Cada hoja es un valor de la propiedad resultado

ð Un individuo nuevo se clasifica atravesando las ramas del


árbol hasta llegar a una propiedad resultado ⇒ REGLAS

ð Para clasificar los individuos se utiliza la idea de entropía.


La entropía mide la cantidad de información necesaria
para representar los datos de un conjunto (nº bits).
A menor valor de entropía, mayor orden en los datos
Parámetros
Parámetros del
del algoritmo
algoritmo ID3
ID3
ð Del conjunto inicial de ejemplos se definen:
û nt: número total de ejemplos
û c: valores posibles para el resultado
û nc: nº individuos que tienen el valor c como resultado
û P: nombre de las propiedades
û d: propiedad decisora de la propiedad resultado
û b: valores posibles para una propiedad d
û nb: nº individuos con valor b para una propiedad
û nbc: nº individuos con valor b para una propiedad y un
valor c para un resultado
û Pc: probabilidad de que un individuo tenga como
resultado valor c (Pc = nc / nt)
û Pb: probabilidad de que suceda b (Pb = nb / nt)
û Pbc: probabilidad de que suceda c suponiendo que
sucede b (Pbc= n bc / n b )
Parámetros
Parámetros del
del algoritmo
algoritmo ID3
ID3 (II)
(II)
ð Estos parámetros se utilizan para calcular la entropía:
û Entropía de un conjunto
nc nc
Entropía = ∑ − Pc log 2 Pc = ∑ − log 2
c c nt nt
û Entropía del valor de una propiedad ndecisora
n
Entropía(b) = ∑ − Pbc log 2 Pbc = ∑ − bc
log 2 bc

c c nb nb
û Entropía media de una propiedad decisora
nb nbc nbc
EntropíaMedia (d ) = ∑ Pb ∗ Entropía(b) = ∑ ∗∑ − log 2
b∈d b∈d nt c nb nb
ln x
log 2 x = x log 2 x = 0
ln 2
(Recordatorio: ; si x=0, )
ð Un conjunto es homogéneo si todos los ejemplos dan como
resultado el mismo valor c
Un conjunto es equilibrado si los valores de su propiedad
resultado son equiprobables (máxima entropía)
Algoritmo
Algoritmo ID3
ID3

ID3 ( Conjunto, P )
SI Entropía = 0
Devolver un nodo hoja etiquetado con la clase
SI NO
Calcular EntropiaMedia(P)
Seleccionar la PROPIEDAD con menor EntropiaMedia
Hacer PROPIEDAD raíz del árbol actual
Borrar PROPIEDAD de P
Para cada valor b de PROPIEDAD
Crear una rama del árbol etiquetada con b
Crear CONJUNTOb con todos los elementos con valor b
para PROPIEDAD
ID3 ( CONJUNTOb, P )
Generación
Generación de
de las
las reglas
reglas derivadas
derivadas del
del árbol
árbol ID3
ID3

ð A partir del árbol ID3 generado se puede obtener un


conjunto de reglas para clasificar nuevos individuos

ð Cada nodo hoja genera una regla diferente

ð Para ello:
û Se recorre el árbol desde la raíz hasta las hojas
û El antecedente de cada regla se crea tomando la etiqueta
de la raíz más la etiqueta de la rama que recorre
û Se añade un AND por cada pareja raíz-rama que se recorre
û El consecuente de la regla es el nodo hoja
Aprendizaje
Aprendizaje con
con Algoritmos
Algoritmos Genéticos
Genéticos

Fco. Javier Alcalá Casado


Aprendizaje
Aprendizaje con
con Algoritmos
Algoritmos Genéticos
Genéticos

ð Introducción

ð Componentes de un Algoritmo Genético


û Representación de individuos
û Procedimientos generales de elección aleatoria
û Operador selección
û Operador emparejamiento
û Operador mutación

ð Algoritmo general
Introducción
Introducción

ð Los algoritmos genéticos son adecuados cuando se


dispone de mecanismos para establecer el rendimiento
de un sistema, modificando ciertos parámetros

ð El problema de aprendizaje consiste en encontrar una


configuración adecuada de los parámetros, para que el
rendimiento sea óptimo

ð Ejemplo: ajuste del flujo de agua de un generador


hidroeléctrico para que la producción eléctrica sea
máxima

ð Los algoritmos genéticos se apoyan en las teorías


evolutivas de Charles Darwin (1859, El Origen de las
Especies)
Introducción
Introducción (II)
(II)

ð En cada generación se crea un nuevo conjunto de


individuos utilizando parte del material genético de los
mejores individuos de la generación anterior

ð Objetivos de los algoritmos genéticos:


û abstraer y explicar los procesos adaptativos de los sistemas
naturales
û diseñar sistemas artificiales basados en estos procesos

ð La principal característica es la robustez del sistema

ð Surge una nueva rama, la Programación Genética:


generación automática de programas que evolucionan
para resolver cada vez mejor la tarea encomendada
Principios
Principios de
de Evolución
Evolución por
por Selección
Selección Natural
Natural

1. Cada individuo tiende a transmitir sus rasgos a su


progenie

2. La naturaleza produce individuos con rasgos diferentes

3. Los individuos más adaptados, cuyos rasgos son más


favorables para desenvolverse en el medio, tienden a
producir más progenie

4. Durante largos períodos de tiempo se puede acumular la


variación produciendo nuevas especies completamente
adaptadas a nichos particulares
Componentes
Componentes de
de un
un Algoritmo
Algoritmo Genético
Genético

ð Los componentes básicos de un algoritmo genético son


los siguientes:
û Una representación para los individuos
û Una función de calidad, que da una medida del grado de
adaptación de un individuo al medio
û Un operador selección, con probabilidad de selección de
cada individuo proporcional a la calidad (principio 3)
û Un operador emparejamiento o reproducción, que producirá
nuevos individuos en la siguiente generación (principio 1)
û Un operador mutación, capaz de alterar el código de los
nuevos individuos, incrementando la riqueza genética de la
población (principio 2)
Representación
Representación de
de Individuos
Individuos

ð Se utiliza la idea de cromosoma, que es una secuencia


que determina la estructura de un individuo

ð La secuencia es de longitud L y se compone de caracteres


que pertenecen a un alfabeto Ω. Cada carácter es un gen

ð Dado un cromosoma C, se puede construir el individuo I al


que representa aplicando una función

ð Normalmente se utiliza el alfabeto binario, Ω = {0,1}


Procedimientos
Procedimientos Generales
Generales de
de Elección
Elección Aleatoria
Aleatoria
ð Se utiliza una función random(), devuelve un real ∈ [0,1)
ð Hay tres situaciones en las que es necesario realizar
elecciones aleatorias:
A) Ejecutar una acción con probabilidad p:
IF (random() < p) THEN <acción>
B) Elegir entre N elementos equiprobables:
Ÿ Generar random() y ver dónde cae
Ÿ Elegir el elemento correspondiente al tramo en el que caiga el
valor aleatorio

E1 E2 E3
0 1/N 2/N 3/N ... 1
Procedimientos
Procedimientos Generales
Generales de
de Elección
Elección Aleatoria
Aleatoria (II)
(II)

C) Elegir entre N elementos no equiprobables:


Ÿ Calcular las probabilidades acumuladas
Ÿ Generar random() y ver dónde cae
k
ak = ∑ pi
i =1

E1 E2 E3
0 a1 a2 a3 ... 1
Operador
Operador Selección
Selección

ð Cada vez que se necesita, se extraen ciertos individuos


de la población. Para ello, se calcula la probabilidad de
selección de cada individuo proporcional a la calidad

ð Existen dos métodos: estándar y del rango

ð Método estándar:
û Establecer la calidad de cada individuo de la población
û Calcular la probabilidad de selección de cada individuo
dividiendo cada calidad por la calidad total
û Elegir un individuo entre N elementos no equiprobables
(procedimiento C)
Operador
Operador Selección
Selección (II)
(II)

ð Método del rango:


û Fijar una probabilidad a priori de elección, p
û Establecer la calidad de cada individuo de la población
û Ordenar los individuos según su calidad (de mayor a
menor)
û Para cada individuo i desde 1 hasta N-1
Ÿ Elegir, con probabilidad p, el individuo i (procedimiento A)
Si se ha elegido uno, salir y devolver dicho individuo
û Si no se ha elegido ninguno, devolver el individuo N
Operador
Operador Emparejamiento
Emparejamiento

ð Este operador intercambia información genética entre dos


individuos seleccionados

ð Dados 2 individuos a emparejar:


û Ejecutar el emparejamiento con probabilidad Pe
(procedimiento A). Si no hay que emparejar, salir.
û Elegir un punto de corte de las cadenas entre 1 y L-1
(procedimiento B)
û Las cadenas que representan a los individuos se parten en
dos trozos y se intercambian, dando lugar a dos individuos
nuevos
Operador
Operador Mutación
Mutación

ð Altera aleatoriamente el código genético de un individuo


para variar ligeramente sus características

ð Permite que aparezcan rasgos en los nuevos individuos


que no existían antes en la población original

ð La probabilidad de aplicación de este operador debe ser


pequeña

ð Dado 1 individuo a mutar:


û Para cada gen del cromosoma, hacer:
Ÿ Con probabilidad Pm (procedimiento A), cambiar el valor del
gen por un nuevo valor. El nuevo valor se elige (procedimiento
B) sobre los elementos del alfabeto Ω
Algoritmo
Algoritmo General
General
EVOLUCIONAR (NI Pe Pm N)
û Generar una POBLACION aleatoria de NI individuos
û Repetir hasta haber realizado N iteraciones
Ÿ Hacer NUEVA_POBLACION = { }
Ÿ Repetir hasta que NUEVA_POBLACION tenga NI individuos
Aplicar operador SELECCIÓN para extraer 2 individuos
de POBLACION
Aplicar operador EMPAREJAMIENTO con probabilidad
Pe a los individuos seleccionados.
Esto genera 2 nuevos individuos
Aplicar operador MUTACION con probabilidad Pm a
cada individuo generado en el paso anterior
Añadir el resultado a NUEVA_POBLACION
Ÿ Copiar NUEVA_POBLACION en POBLACION
û Devolver el individuo con mayor calidad de POBLACION

También podría gustarte