Sie sind auf Seite 1von 126

Inteligencia

Inteligencia Artificial
Artificial

Fco. Javier Alcal Casado


Normas
Normas de
de la
la asignatura
asignatura

La asignatura consta de una parte terica y otra prctica.

La parte terica se evaluar con el correspondiente


examen de teora: 80% de la nota

La parte prctica se realizar con el lenguaje de


programacin LISP: 20% de la nota.

0.8 * Teora + 0.2 * Prctica 5.0

La no presentacin de la prctica significa la renuncia a la


parte correspondiente de la nota final.
Programa
Programa
Introduccin histrica
Lenguaje de programacin LISP
Paradigmas de representacin del conocimiento
Frames
Sistemas de produccin
Paradigma lgico
Exploracin de espacios de estados. Bsqueda
Exploracin de rboles de juego
Planificacin
Aprendizaje simblico. ID3
Algoritmos genticos
Bibliografa
Bibliografa
Serradilla, F.; Barros, B. Representacin e Inferencia en Inteligencia Artificial.
Un Enfoque Prctico. Escuela Universitaria de Informtica, UPM. 1996.

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


1995.

Barros, B; Foulqui, T; Serradilla, F. Programacin Funcional en Lisp.


Escuela Universitaria de Informtica, UPM. 1992.

Feigenbaum y otros. The Handbook of AI (4 volmenes). 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. Daz 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.


Introduccin
Introduccin histrica
histrica

Fco. Javier Alcal Casado


Introduccin
Introduccin histrica
histrica
El problema de la inteligencia
Objetivos de la inteligencia artificial (IA)
Historia
Rama lgico-matemtica
Rama de la psicologa
Rama de la informtica
Conferencia de Darmouth
Rama de la simulacin
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 fcil definicin

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. Cmo definirla?

Eficiencia humana Racionalidad

Sistemas que piensan Sistemas que piensan


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

Sistemas que actan Sistemas que actan


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

Bellman (1978): IA es la automatizacin de actividades


que vinculamos con procesos del pensamiento humano,
actividades tales como toma de decisiones, resolucin 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 mquinas


capaces de hacer cosas que requeriran inteligencia en
caso de que fuesen hechas por los seres humanos

Luger (1989): IA es la rama de la informtica que trata de


la automatizacin del comportamiento inteligente
Test
Test de
de Turing
Turing

Turing (1950) dio una definicin emprica: el juego de la


imitacin.

Test de Turing:

Puede saber el hombre


de fuera en qu habitacin
est la mquina?
Test
Test de
de Turing
Turing (II)
(II)

Para superar el test de Turing, una mquina debera ser


capaz de:
procesar lenguaje natural: para poder establecer una
comunicacin satisfactoria
representar el conocimiento: para guardar toda la
informacin recibida antes o durante el interrogatorio
razonar automticamente: para utilizar esa informacin al
responder a las preguntas y obtener conclusiones
autoaprendizaje de la mquina: para adaptarse a nuevas
situaciones y detectar y extrapolar esquemas determinados

Test total de Turing: Tambin imita fsicamente. Necesita:


Percepcin: Visin artificial, reconocimiento del habla
Robtica: Habilidades para andar, saltar, subir escaleras
Objetivos
Objetivos de
de la
la inteligencia
inteligencia artificial
artificial

La IA es una ciencia multidisciplinar: matemticas,


filosofa, psicologa e ingeniera

Objetivos de ingeniera: desarrollo de sistemas


inteligentes mejorando otros anteriores para los que no
existe un mtodo algortmico

Objetivos cientficos: comprender mejor el


funcionamiento de la inteligencia, tanto en el hombre
como en las mquinas (filosofa, psicologa)
Es la inteligencia independiente del hardware?
Cmo se interrelacionan las estructuras mentales?
Qu reglas las gobiernan?
Historia
Historia

La IA es el punto de encuentro de varias lneas de


investigacin
Rama lgico-matemtica
Rama de la psicologa
Rama de la informtica
Conferencia de Darmouth
Rama de la simulacin
Panorama actual
Rama
Rama lgico-matemtica
lgico-matemtica

Mecanizacin de los procesos de razonamiento desde el


punto de vista de la manipulacin de smbolos lgicos

Hitos importantes:
El primer esfuerzo de mecanizacin del pensamiento fueron
los silogismos de Aristteles.
Leibniz construye el primer sistema axiomtico de lgica
formal (clculo de predicados)
Euler formaliza la Teora de Grafos
Hilbert intent encontrar un conjunto de axiomas y un
sistema formal que sintetizasen toda la matemtica
Gdel, con el teorema de incompletitud, demostr que no
era posible
Rama
Rama de
de la
la psicologa
psicologa

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 psiclogos (James, Wundt) estudiaron el
pensamiento con una metodologa basada en la
introspeccin (subjetiva, poco cientfica)
Los conductistas (Skinner) consideran a la mente como una
caja negra capaz de asociar estmulos con respuestas
La psicologa cognitiva (Chomsky, Fodor) es el paradigma
ms aceptado
Rama
Rama de
de la
la psicologa
psicologa (II)
(II)

Caractersticas de la psicologa cognitiva:


Estructuralista: los modelos de la conducta se explican por
estructuras abstractas
Los estmulos son procesados por el organismo para producir
respuestas (no conductista)
Mentalismo: la mente utiliza representaciones simblicas de los
conceptos y los procesos mentales manipulan los smbolos
Paradigma del procesamiento de la informacin: la mente funciona
como un ordenador; los programas son teoras psicolgicas
Memoria semntica, modelo de memoria asociativa: los conceptos
se representan por smbolos interrelacionados (redes semnticas)
Modularidad: los procesos mentales son afrontados por mdulos
dbilmente acoplados
Rama
Rama de
de la
la psicologa
psicologa (III)
(III)

Isomorfismo. Hofstadter: Dos sistemas son isomrficos cuando


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

Objeto Mundo

Representacin Mente

Conexiones Cerebro
Rama
Rama de
de la
la informtica
informtica

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
mquina capaz de desarrollar clculos automticos
Junto con Ada Lovelace dise la mquina analtica de
propsito general introduciendo conceptos como la
memoria, procesador, programas almacenados, saltos
condicionales, etc.
Alan Turing (1937) propone la mquina de Turing.
Cualquier procedimiento matemtico puede desarrollarse
con dicha mquina con una tabla de instrucciones adecuada
Rama
Rama de
de la
la informtica
informtica (II)
(II)

La Ciberntica o Teora de Sistemas (Wiener) puede


aplicarse a sistemas biolgicos, sociales y artificiales.
Se basa en la retroalimentacin negativa

Objetivo + Error Actuacin


CONTROL SISTEMA
-

Medida Comportamiento
SENSOR
Objeciones
Objeciones de
de Turing
Turing
En 1950, Turing publica Maquinaria de computacin e
inteligencia. Propone el test de Turing, defiende la
posibilidad de construir mquinas que piensen y enumera
las posibles objeciones contra estas mquinas:
Teolgicas: la mente no reside en el cuerpo sino en el alma. Si
se admite el dualismo, se niega la psicologa
No es cientfica
Del avestruz: si las mquinas pensaran, las consecuencias
seran desastrosas; luego esto no puede ocurrir
Sin comentarios
Matemticas: el teorema de incompletitud de Gdel demuestra
que en un sistema formal suficientemente complejo existen
proposiciones indecidibles
La mente humana no supera esta limitacin
Objeciones
Objeciones de
de Turing
Turing
Ms objeciones:
De conciencia: las mquinas no saben lo que estn haciendo
cuando trabajan.
Minsky los tres estados de conciencia de un termostato
De las diversas incapacidades: una mquina nunca podr ser
afectuosa, ingeniosa, amistosa, tener iniciativa...
Ahora no, pero s podra en el futuro
Objecin de Lady Lovelace: una mquina slo realiza lo que
sabemos cmo ordenarle que haga
Se le puede ordenar que sea inteligente
Objeciones
Objeciones de
de Turing
Turing (II)
(II)

Ms objeciones:
Continuidad del sistema nervioso: una mquina de estados
discretos no puede emular al hombre
La discretizacin no supone limitaciones
Basadas en la informalidad de la conducta: el hombre no
tiene un conjunto de reglas para regir su vida y las
mquinas funcionan con reglas
Las neuronas presentan un comportamiento rgido y de
ellas surge comportamiento flexible inteligente
Basado en la percepcin extrasensorial: Test de Turing
extrasensorial
No cientfica
Conferencia
Conferencia de
de Darmouth
Darmouth

Tuvo lugar en 1956

Todas las ramas anteriores confluyen en una nueva


disciplina, agrupando a psiclogos, matemticos,
informticos, neurlogos e ingenieros elctricos

John McCarthy acua el trmino de Inteligencia Artificial

Esta rama unificada de psiclogos cognitivos,


lgico-matemticos y computacin simblica se denomina
IA clsica o IA simblica
Rama
Rama de
de la
la simulacin
simulacin
Tambin llamada IA conexionista
Desarrolla sistemas inteligentes imitando sistemas biolgicos
con comportamiento inteligente (animales o seres humanos)

Su objetivo es construir cerebros artificiales formalmente


similares a los cerebros biolgicos para dotarles de aprendizaje
Hitos importantes:
Clulas de McCulloch y Pitts (1943). Emulacin de neuronas con
circuitos elctricos
Perceptrn (Rosenblatt, 1958). Mecanismo de aprendizaje
mediante ajuste automtico de las conexiones de una red de
neuronas
Perceptrn multicapa (Rumelhart, Hinton y Williams, 1986).
Generalizacin del perceptrn
Algoritmos Genticos (Friedberg, 1958). Basados en la teora
evolucionista de Darwin
Panorama
Panorama actual
actual
IA clsica + Rama de la Simulacin = 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 resolucin de
problemas, olvidando la percepcin, el aprendizaje y la
destreza
Objeciones de la Reglas
Habitacin china
Smbolos

Sabe chino el hombre de la habitacin?


Panorama
Panorama actual
actual (II)
(II)

Ms cuestiones abiertas:
Mezcla de tcnicas de IA clsica con tcnicas de la rama de
simulacin
Importancia creciente del aprendizaje
Problema de los problemas de juguete
Evolucin desde los objetivos cientficos a los ingenieriles
Con ordenadores ms potentes se consideran mtodos que
antes se desechaban
Herbert Simon: la complejidad demostrada por seres vivos
se debe a la complejidad del medio con el que interactan
ms que a la complejidad interna de sus programas
Vida artificial
Los
Los primeros
primeros sistemas
sistemas
Logic Theorist. Demostracin automtica de teoremas. Primer
programa que utiliz smbolos en lugar de cantidades numricas

DENDRAL. Primer sistema experto para anlisis de datos de


espectografa de masas (istopos)

SHRDLU. Comprensin del lenguaje natural y planificacin 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 bsqueda de yacimientos


minerales
reas
reas de
de estudio
estudio
La IA est en continua evolucin. reas ms relevantes:
Representacin del conocimiento: Modeliza el conocimiento
en estructuras de datos adecuadas
Exploracin del espacio de estados: Busca soluciones en
problemas modelizados con grafos
Heurstica: Conocimiento intuitivo. Atajos entre el estado
actual y la solucin
Resolucin de problemas: Planificacin de tareas
Demostracin de teoremas: Programacin lgica
Teora de juegos: Estrategias de bsqueda (ajedrez)
Ingeniera del conocimiento (Sistemas Expertos): Requieren
de la ayuda de un experto humano
reas
reas de
de estudio
estudio
Ms reas de estudio:
Diagnstico: Establece hiptesis sobre el mal funcionamiento
de un sistema
Aprendizaje: Refina el conocimiento inicial para hacerlo ms
operativo
Comprensin del lenguaje natural (y traduccin automtica):
Percepcin computacional (reconocimiento de patrones):
interpreta la informacin sensorial
Simulacin de procesos psicolgicos humanos: Estudia la
inteligencia humana mediante procesos de simulacin
Sistemas multiagente: Coordinacin de la conducta inteligente
entre un conjunto de agentes autnomos y heterogneos
Lenguaje
Lenguaje de
de Programacin
Programacin LISP
LISP

Fco. Javier Alcal Casado


Marco
Marco histrico
histrico

McCarthy lo cre en 1958

Se cre para procesar de listas en un proyecto de IA

La primera versin consuma 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 estndar actual: COMMON LISP
Caractersticas
Caractersticas de
de LISP
LISP

Lenguaje funcional. Utiliza las propiedades matemticas


de las funciones
Simblico. Utiliza el smbolo como unidad fundamental
Procesamiento de listas (LISt Procesing)
Flexibilidad
Utiliza la misma estructura para datos y cdigo
Paso de funciones como parmetro (reusabilidad)
Autodefinicin del lenguaje (entorno a la medida)
Estructura de datos muy flexible (Garbage collector)
Recursividad. Definiciones muy claras y concisas
Interpretado. Desarrollo rpido de prototipos
Compacto: funcional + recursivo + listas
Lenguajes
Lenguajes funcionales
funcionales

La primitiva bsica es la funcin

Una funcin 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 asignacin est definida y se utiliza; a pesar de ser


considerado un lenguaje sin asignacin
Componentes
Componentes de
de LISP
LISP
Conjunto de objetos o datos. Estructura fundamental: lista

Funciones primitivas. Aqullas aportadas inicialmente por


el lenguaje

Operacin de aplicacin (read-eval-print loop). Primitiva


encargada de gestionar y realizar el proceso de
interpretacin: lectura-escritura-devolucin de resultados

Formas funcionales (DEFUN). Funciones definidas por el


programador que pasan a formar parte del lenguaje como
una primitiva ms

Operadores aplicativos. Funciones cuyos parmetros son


otra funcin y los argumentos de esta otra funcin
Campos
Campos de
de aplicacin.
aplicacin. Funcionalidad
Funcionalidad

Campos de aplicacin:
Inteligencia Artificial
Entornos grficos

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
parmetros
No se deben utilizar estructuras iterativas, sino recursividad
Paradigmas
Paradigmas de
de Representacin
Representacin del
del Conocimiento
Conocimiento

Fco. Javier Alcal Casado


Paradigmas
Paradigmas de
de representacin
representacin del
del conocimiento
conocimiento

Computacin sobre representaciones

Tipos de conocimiento

Uso del conocimiento

Tipos de razonamiento

Tipos clsicos de representacin:


Frames (marcos)
Sistemas de produccin
Paradigma lgico
Exploracin de espacios de estados
Computacin
Computacin 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 resolucin del problema,


inferencia, de la naturaleza del mismo
Computacin
Computacin sobre
sobre representaciones
representaciones (II)
(II)

Modelizacin
Problema Representacin

Inferencia

Solucin Explicacin
Tipos
Tipos de
de conocimiento
conocimiento
Objetos. Conceptos con entidad propia
Eventos. Especifican sucesos en el tiempo
Reglas de inferencia. Indican cmo 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 cmo
Metaconocimiento. Conocimiento a nivel ms abstracto.
Da una idea de cul 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 ms


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: cmo encontrar un camino entre
dos estaciones
Metaconocimiento: para encontrar un camino debo buscar
explorando hacia la estacin destino
Uso
Uso del
del conocimiento
conocimiento

Problemas que se plantean con el uso del conocimiento:


Adquisicin. Los modelos de representacin deben ser
capaces de recoger nueva informacin para que se integre
con la adquirida anteriormente, completndola o
actualizndola
Recuperacin. El acceso a parte del conocimiento debe ser
sencilla y eficiente.
La memoria asociativa humana relaciona informacin con
un contexto
Razonamiento. Permite obtener nuevo conocimiento a partir
del que ya se tiene. Este conocimiento est implcito, pero
es de difcil obtencin
Tipos
Tipos de
de razonamiento
razonamiento

Formal. Deduce, con reglas de inferencia, estructuras de


datos manipulando sintcticamente otras estructuras
(gramticas generativas)

Procedural. Razonamiento mediante la ejecucin de


determinados algoritmos

Por analoga. Razonamiento por semejanza. Frecuente


en los humanos

Generalizacin y abstraccin. Proceso de obtencin de


conocimiento ms refinado a partir de otro ms simple
Tipos
Tipos clsicos
clsicos de
de representacin
representacin

La representacin 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 clsicos
clsicos de
de representacin
representacin (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 clsicos de representacin
Frames (marcos)
H: Valores de atributos
R: Herencia y demonios
I: Funciones de manipulacin, equiparacin
Sistemas de produccin
H: Ternas objeto-atributo-valor
R: Reglas de produccin
M: Parmetros, metarreglas
I: Encadenamiento de reglas
Tipos
Tipos clsicos
clsicos de
de representacin
representacin (III)
(III)

Paradigma lgico
K (H y R): Clculo de predicados, reglas lgicas, clusulas de
Horn
I: Unificacin, resolucin
Exploracin de espacios de estados
H: Estados
R: Transiciones de estado
M: Funciones heursticas
I: Algoritmos de bsqueda
Sistemas
Sistemas de
de Produccin
Produccin

Fco. Javier Alcal Casado


Sistemas
Sistemas de
de Produccin
Produccin

Introduccin

Hechos

Reglas

Metaconocimiento

Motor de Inferencia

Mdulo de explicacin
Introduccin
Introduccin

En los sistemas de produccin se representa el


conocimiento mediante hechos, reglas de produccin y
metaconocimiento.

Hechos
Motor de Mdulo de
Inferencia Explicacin
Reglas

Metaconocimiento
Introduccin
Introduccin (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 informacin


a partir de la inicial

El mdulo de explicacin 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, rpido, s)
Reglas
Reglas
Tienen el siguiente formato:
IF <expresin-lgica> Antecedente
THEN <acciones> Consecuente

Una terna en el antecedente es cierta slo 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
funcin
R1:
IF (X, es-un, caballo) AND (X, hijo-de, Y) AND
(Y, es-un, caballo) AND (Y, rpido, s)
THEN (X, valioso, s)
Metaconocimiento
Metaconocimiento

El metaconocimiento ayuda a determinar qu regla se


aplica cuando hay varias aplicables
Criterios de aplicacin de reglas:
La primera regla de la base de reglas
Azar
La ms especfica (con ms elementos en el antecedente)
La ms genrica (con menos elementos en el antecedente)
La ms recientemente utilizada
La menos recientemente utilizada
La que aada ms informacin (con ms 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
aparicin

Las metarreglas son reglas que expresan cundo


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, sustitucin)
Seleccionar un nico par (regla, sustitucin) con los criterios
establecidos por el metaconocimiento
Disparar la regla seleccionada. Se aplica la sustitucin y se
aaden 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
Mdulo
Mdulo de
de explicacin
explicacin

Se encarga de dar una justificacin 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 permitan
utilizarlas y las conclusiones intermedias
Frames
Frames

Fco. Javier Alcal Casado


Frames
Frames

Introduccin

Estructura de un frame

Herencia

Demonios

Tipos de facets

Representacin en LISP

Funciones de manipulacin de frames

Inferencia en frames
Introduccin
Introduccin

Un frame es una estructura activa de almacenamiento de


informacin

Utiliza mecanismos para buscar automticamente un dato


si ste no se encuentra en el propio frame
Estos mecanismos son:
Herencia: mediante una relacin de jerarqua, busca el dato
solicitado en otros frames
Demonios (o valores activos): son funciones que son
llamadas automticamente cuando se hace referencia a
ciertos datos

Un frame se puede relacionar con otro con relaciones de


pertenencia, inclusin o de usuario
Estructura
Estructura de
de un
un frame
frame

Un frame es una estructura con


compartimentos en los que se
guarda la informacin.
Representa un objeto Pedro
Se compone de:
ES-UN Value Hombre
Atributos (slots): cada uno
de los compartimentos Profesin Default Pintor

Valores: el contenido del


Altura Value 180
compartimento
Facetas (facets): indica
cmo se puede utilizar el
conocimiento del slot
Herencia
Herencia

Si A tiene una relacin de instancia o de subclase con B,


los atributos de A que no tengan ningn valor lo toman de
los que tengan esos mismos atributos en B

Una relacin de instancia se define a travs del atributo


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

Una relacin de subclase se define a travs del atributo


AKO (a kind of)

En una cadena de herencia puede haber varios atributos


AKO, pero slo uno IS-A
Demonios
Demonios

Los demonios o valores activos son funciones que se


disparan automticamente cuando se almacenan o se
recuperan datos en un frame

Un demonio tiene dos parmetros: frame y slot

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


atributo que no tiene ningn valor asociado. Proporciona
la informacin requerida ejecutando un algoritmo
El demonio ASK pregunta al usuario el valor de un atributo

IF-ADDED se dispara despus de asignar un valor a un


atributo
Tipos
Tipos de
de facets
facets

Un sistema bsico dispone de los siguientes facets:


Value: el contenido del slot es un valor literal
Default: el contenido del slot es un valor por defecto (slo se
devuelve si no est definido el facet Value)
Range: indica el rango de valores vlidos 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
Representacin
Representacin en
en LISP
LISP

Hay dos maneras:


Representacin muy eficiente pero incmoda 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> )
Representacin 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 manipulacin
manipulacin de
de frames
frames

FPUT permite aadir informacin 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 travs de la herencia, cuando se solicita un valor que no
est en el frame, pero s en sus antecesores
A travs de los demonios, cuando se disparan
procedimientos para calcular el valor solicitado
A travs de la equiparacin, cuando se busca en la base de
frames con FFIND
Paradigma
Paradigma lgico
lgico

Fco. Javier Alcal Casado


Paradigma
Paradigma lgico
lgico

Introduccin

Unificacin de predicados

Encadenamiento de reglas dirigido por el objetivo


Introduccin
Introduccin
Procesamiento realizado por el lenguaje de programacin
PROLOG

Representacin basada en:


Trminos: variables (A, B, X), constantes (juan, 2, caballo) y
funciones cuyos argumentos son trminos (f(x), padre(juan))
Predicados: smbolos de n argumentos (que son trminos)
que toman valor verdadero o falso
caballo(X), valioso(veloz), es-padre(veloz, padre(cometa))
Clusulas de Horn: hechos o reglas formadas por varios
antecedentes (conjuncin) y un consecuente
consecuente :- antecedente1, antecedente2 ...
La disyuncin se representa aadiendo reglas
Unificacin
Unificacin de
de predicados
predicados

La unificacin es un proceso por el cual se transforman dos


expresiones lgicas para hacerlas idnticas
No siempre es posible realizarla
Algoritmo para unificar dos predicados:
Los smbolos de los predicados han de ser iguales y con el mismo
nmero de argumentos. Si no se termina con FALLO
Por cada trmino de ambos predicados puede suceder:
Si un trmino es una variable y el otro es cualquier trmino que
no contenga a esa variable, se sustituye la variable por el trmino
Si los dos trminos son constantes con el mismo valor, ya estn
unificados. Si el valor es distinto se termina con FALLO
Si los trminos son funciones, debern llamarse igual y tener el
mismo nmero de argumentos. Se aplica recursivamente el
algoritmo a los argumentos de la funcin
Si no se cumple ningn caso, se termina con FALLO
Ejemplos
Ejemplos de
de unificacin
unificacin 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. Seleccin
2.1 Seleccionar un objetivo Oi por orden de aparicin
2.2 Seleccionar una clusula Rj por orden de aparicin.
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. Resolucin: Oi se sustituye en L por el antecedente de Rj . A
todas las clusulas de L se les aplica las sustituciones de la
unificacin
4. Si L vaca la rama termina en XITO
si no, volver al paso 2
El algoritmo termina cuando se han recorrido todas las ramas
Mtodos
Mtodos de
de Exploracin
Exploracin en
en Espacios
Espacios de
de Estados
Estados

Fco. Javier Alcal Casado


Mtodos
Mtodos de
de exploracin
exploracin en
en espacios
espacios de
de estados
estados

Introduccin

Algoritmos de bsqueda
Expansin de un camino
Esquema bsico de un algoritmo de bsqueda
Mtodo de escalada
Primero el mejor
Algoritmo A*

Representacin en rbol
Introduccin
Introduccin

La exploracin de espacios de estados es una de las


tcnicas ms importantes en IA

Se manejan estados (hechos del problema), transiciones


(reglas) y funciones heursticas (metaconocimiento). La
inferencia se realiza a travs de algoritmos de bsqueda

Un estado es cada configuracin posible de un problema.


Se representan con estructuras de datos.
Ej: Problema del Metro estado: estar en la estacin X
Los sucesores son los estados que se pueden alcanzar en
un nico paso desde un estado.
Son el resultado de una transicin de estado
Ej: Metro sucesores: estaciones consecutivas
Introduccin
Introduccin (II)
(II)

Una transicin permite obtener una lista de estados a los


que se llega desde un estado previo tras la aplicacin 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 funcin heurstica o heurstico es una funcin


matemtica que devuelve un valor numrico menor
cuanto ms cerca est un estado cualquiera del estado
objetivo. El valor no tiene por qu ser exacto.
Ej: Metro funcin: distancia eucldea entre estaciones
Introduccin
Introduccin (III)
(III)

Elementos a definir para la exploracin 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 funcin heurstica que devuelva la proximidad entre un
estado cualquiera y el estado objetivo
Una funcin que determine si un estado X es o no un
estado solucin
Algoritmos
Algoritmos de
de bsqueda
bsqueda

Un algoritmo de bsqueda 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 transicin al estado precedente

Se llama camino a una secuencia de estados que lleva de


un estado a otro
Camino solucin 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 solucin (estado actual)
Expansin
Expansin de
de un
un camino
camino

La expansin de un camino C resulta de aadir a C cada


uno de los nuevos estados alcanzables desde el ltimo
estado de C. Se excluyen los caminos cclicos, 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 transicin
Inicializar R = { }
Para cada sucesor Ei que no est en C
Aadir a la lista R un nuevo camino, obtenido de aadir a C el
estado Ei
Devolver R
Expansin
Expansin 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 bsico
bsico de
de un
un algoritmo
algoritmo de
de bsqueda
bsqueda

BUSCAR ( INICIO OBJETIVO HEURISTICO COSTE )


1. Formar la lista CP de caminos pendientes (lista de posibles
caminos solucin). 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
informacin de HEURISTICO y COSTE
3. Si CP = { }, devolver FALLO
en caso contrario, devolver como solucin el primer camino
Mtodo
Mtodo de
de escalada
escalada

ESCALADA ( INICIO OBJETIVO HEURISTICO )


1. Formar la lista CP de caminos pendientes (lista de posibles
caminos solucin). 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 segn el valor devuelto por
HEURISTICO
Aadir E por delante a la lista CP
3. Si CP = { }, devolver FALLO
en caso contrario, devolver como solucin el primer camino

Se da prioridad a los nuevos caminos ms prometedores


Representacin
Representacin en
en rbol
rbol

Se coloca en la raz el estado inicial

Por cada estado seleccionado se indica en el rbol el


nmero de iteracin con un recuadro y se aaden sus
descendientes (expansin)

Se selecciona el siguiente nodo a expandir segn el


algoritmo de exploracin que se est utilizando

Junto a cada nodo se anota el valor de la funcin


heurstica (para escalada y primero el mejor) o de la
funcin de estimacin (para A*).
En el A* se sealan tambin las podas realizadas por la
programacin dinmica (PD)
Problemas
Problemas del
del mtodo
mtodo de
de escalada
escalada

Sensible a mnimos locales: un mnimo local se produce


cuando estando en un estado la funcin heurstica se
hace mnima localmente. Esto lleva a caminos que no
conducen a la solucin o a caminos ms largos

Mesetas: se produce cuando la funcin heurstica toma


valores similares en todos los caminos pendientes. El
progreso hacia la solucin es lento

Importancia del heurstico: un buen heurstico debe dar


valores bajos cuando el estado actual est cerca de la
solucin.
Un heurstico ideal nos guiara hacia la solucin con un
coste computacional mnimo y con el menor nmero 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 solucin). 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
Aadir E por detrs a la lista CP
Ordenar la nueva lista CP de menor a mayor segn el valor
devuelto por HEURISTICO
3. Si CP = { }, devolver FALLO
en caso contrario, devolver como solucin el primer camino

La ordenacin se realiza en todos los caminos pendientes


Da mejores resultados que el mtodo de escalada con mayor carga
computacional
Algoritmo
Algoritmo A*
A*

A* encuentra la solucin ptima siempre que la funcin


heurstica cumpla la condicin de minorancia:
h(e) h*(e) e
h(e) valor del heurstico en el estado e
h*(e) coste real del menor camino desde e hasta el estado solucin
La distancia eucldea cumple la condicin de minorancia
Utiliza dos nuevos elementos:
Programacin dinmica: si hay dos caminos que llegan al
mismo nodo, se eliminan los de mayor coste
Funcin de estimacin: f(c) = g(c) + h(c)
g(c) coste acumulado desde el inicio hasta el estado actual
h(c) valor del heurstico desde el estado actual hasta el objetivo
f(c) estimacin del coste total que tendr el camino solucin
Algoritmo
Algoritmo A*
A* (II)
(II)

A* ( INICIO OBJETIVO HEURISTICO COSTE )


1. Formar la lista CP de caminos pendientes (lista de posibles
caminos solucin). 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
Aadir E por detrs a la lista CP
Ordenar la nueva lista CP de menor a mayor segn la funcin
de estimacin (HEURISTICO + COSTE acumulado)
Aplicar programacin dinmica: 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 solucin el primer camino
Exploracin
Exploracin de
de rboles
rboles de
de Juegos
Juegos

Fco. Javier Alcal Casado


Exploracin
Exploracin de
de rboles
rboles de
de juego
juego

Introduccin

Juegos de suma cero

Implementacin de juegos

Los jugadores y la heurstica

Algoritmo Minimax

Algoritmo Alfa-beta
Introduccin
Introduccin

Shannon (1950) public Programando un ordenador para


jugar al ajedrez

El ajedrez plantea problemas similares a los de la deduccin


lgica: 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 matemtico como teora de juegos de
suma cero de dos jugadores con informacin completa

Juego de suma cero: aqul en el que los


intereses de los jugadores son contrarios. Si uno
gana el otro pierde
Juego de informacin completa: aqul en el que
cada jugador conoce las posibles jugadas que
puede realizar el adversario
Juegos
Juegos de
de suma
suma cero
cero

Caractersticas:
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 eleccin sobre todas las
jugadas posibles. La eleccin 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
Implementacin
Implementacin de
de juegos
juegos

Son necesarios 4 elementos:


abstraccin de datos: para almacenar y representar el
tablero (estado del juego)
generador de movimientos: genera todas las posibles
jugadas inmediatas a partir de una situacin del juego
funcin heurstica: devuelve un valor, llamado valor esttico,
que evala cmo de favorable es cada jugada para orientar
al algoritmo de bsqueda
estrategia de bsqueda: permite decidir qu estrategia es la
ms apropiada en cada momento
Los
Los jugadores
jugadores yy la
la heurstica
heurstica

Se consideran dos jugadores, MAX y MIN, que intentan


maximizar y minimizar la funcin heurstica

MAX (ordenador) elige la posicin que tenga ms valor en


la evaluacin de la funcin heurstica

MIN (adversario) elige la posicin con menos valor

La funcin heurstica debe asignar valores tanto mayores


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

Si MAX gana, la funcin devolver +; si gana MIN, -


Algoritmo
Algoritmo Minimax
Minimax
El objetivo es encontrar una buena jugada rpidamente
La generacin y la exploracin del rbol estn separadas
Algoritmo:
Generar el rbol con profundidad n etiquetando cada nivel
con MAX y MIN, alternativamente. El primer nivel es MAX
Calcular los valores estticos para los nodos hoja
Explorar desde el nivel n hasta la raz:
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 raz
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
Planificacin
Planificacin de
de Tareas
Tareas

Fco. Javier Alcal Casado


Planificacin
Planificacin de
de Tareas
Tareas

Visin general

Mtodo STRIPS

Operador STRIPS

Algoritmo STRIPS
Visin
Visin General
General

La planificacin pertenece al campo de resolucin de


problemas

La planificacin se basa en la divisin de un problema en


subproblemas ms pequeos que se resuelven por
separado. La combinacin de todas las subsoluciones
forma la solucin 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
Visin
Visin General
General (II)
(II)

La planificacin debe encontrar un conjunto de acciones,


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

La solucin del problema estar formada por una


sucesin de operaciones denominado plan

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


Visin
Visin 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 aportacin de GPS a los planificadores de


tareas se centra en la organizacin de los datos:
Selector: atributo que define una caracterstica relevante del
entorno del problema (subobjetivos)
Estado: conjunto de selectores que definen una situacin
del mundo en un instante concreto
Operador: accin que transforma un estado en otro
Mtodo
Mtodo STRIPS
STRIPS

STRIPS (STanford Research Institute Problem Solver)


utiliza la lgica para mejorar la resolucin del problema

Utiliza gran parte de los elementos del sistema GPS

Realiza una exploracin en profundidad sobre el espacio


de estados del problema (despliega un rbol)

Opcionalmente, proporciona un mecanismo de


aprendizaje utilizando la informacin de tareas resueltas
previamente (tablas triangulares)
Operador
Operador STRIPS
STRIPS

Un operador STRIPS consta de los siguientes elementos:


Nombre del operador
Parmetros del operador. Son opcionales
Precondiciones (P): lista de selectores que se tienen que
cumplir para poder aplicar el operador
Lista de Adicin (A): lista de selectores que se aaden al
estado actual al aplicar el operador
Lista de Supresin (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 exploracin 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 aqul 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
aadiendo selectores), suprimirlo de la cima (PLAN++)
SI la cima de la PILA es una conjuncin de selectores
ENTONCES SI se verifica la conjuncin
ENTONCES suprimirla de la cima
EN CASO CONTRARIO aadir la precondicin que falla
SI la cima de la PILA es un selector ESTADO
ENTONCES suprimirlo de la cima
EN CASO CONTRARIO
SI el selector aparece ms 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 adicin el selector de la cima de la pila

POR CADA operador


Aadir la instancia del operador
Aadir la conjuncin de sus precondiciones
Aadir cada una de sus precondiciones
SI PILA
ENTONCES devolver FALLO, no hay solucin
EN CASO CONTRARIO hemos ejecutado el PLAN
Aprendizaje
Aprendizaje Simblico
Simblico aa partir
partir de
de Ejemplos
Ejemplos

Fco. Javier Alcal Casado


Aprendizaje
Aprendizaje Simblico
Simblico aa partir
partir de
de Ejemplos
Ejemplos

Introduccin

Parmetros del algoritmo ID3

Algoritmo ID3

Generacin de las reglas derivadas del rbol ID3


Introduccin
Introduccin
El aprendizaje automtico se puede clasificar en:
Mtodos simblicos: basados en smbolos
Sintticos o inductivos: ID3
Analticos o deductivos
Mtodos subsimblicos: basados en cantidades numricas

El objetivo del algoritmo ID3 consiste en clasificar varios


elementos, utilizando ejemplos y valores de condicin,
representndolos en forma de rbol de decisin
Cada ejemplo es un individuo
Los valores de condicin son propiedades
Los elementos se clasifican segn el valor de una
propiedad concreta binaria llamada resultado (con 2 valores
posibles)
Introduccin
Introduccin (II)
(II)

El rbol de decisin resultante determina el conjunto al


que pertenece un individuo segn 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 entropa.


La entropa mide la cantidad de informacin necesaria
para representar los datos de un conjunto (n bits).
A menor valor de entropa, mayor orden en los datos
Parmetros
Parmetros del
del algoritmo
algoritmo ID3
ID3
Del conjunto inicial de ejemplos se definen:
nt: nmero 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 )
Parmetros
Parmetros del
del algoritmo
algoritmo ID3
ID3 (II)
(II)
Estos parmetros se utilizan para calcular la entropa:
Entropa de un conjunto
nc nc
Entropa = Pc log 2 Pc = log 2
c c nt nt
Entropa del valor de una propiedad ndecisora
n
Entropa(b) = Pbc log 2 Pbc = bc
log 2 bc

c c nb nb
Entropa media de una propiedad decisora
nb nbc nbc
EntropaMedia (d ) = Pb Entropa(b) = log 2
bd bd nt c nb nb
ln x
log 2 x = x log 2 x = 0
ln 2
(Recordatorio: ; si x=0, )
Un conjunto es homogneo si todos los ejemplos dan como
resultado el mismo valor c
Un conjunto es equilibrado si los valores de su propiedad
resultado son equiprobables (mxima entropa)
Algoritmo
Algoritmo ID3
ID3

ID3 ( Conjunto, P )
SI Entropa = 0
Devolver un nodo hoja etiquetado con la clase
SI NO
Calcular EntropiaMedia(P)
Seleccionar la PROPIEDAD con menor EntropiaMedia
Hacer PROPIEDAD raz 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 )
Generacin
Generacin 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 raz hasta las hojas
El antecedente de cada regla se crea tomando la etiqueta
de la raz ms la etiqueta de la rama que recorre
Se aade un AND por cada pareja raz-rama que se recorre
El consecuente de la regla es el nodo hoja
Aprendizaje
Aprendizaje con
con Algoritmos
Algoritmos Genticos
Genticos

Fco. Javier Alcal Casado


Aprendizaje
Aprendizaje con
con Algoritmos
Algoritmos Genticos
Genticos

Introduccin

Componentes de un Algoritmo Gentico


Representacin de individuos
Procedimientos generales de eleccin aleatoria
Operador seleccin
Operador emparejamiento
Operador mutacin

Algoritmo general
Introduccin
Introduccin

Los algoritmos genticos son adecuados cuando se


dispone de mecanismos para establecer el rendimiento
de un sistema, modificando ciertos parmetros

El problema de aprendizaje consiste en encontrar una


configuracin adecuada de los parmetros, para que el
rendimiento sea ptimo

Ejemplo: ajuste del flujo de agua de un generador


hidroelctrico para que la produccin elctrica sea
mxima

Los algoritmos genticos se apoyan en las teoras


evolutivas de Charles Darwin (1859, El Origen de las
Especies)
Introduccin
Introduccin (II)
(II)

En cada generacin se crea un nuevo conjunto de


individuos utilizando parte del material gentico de los
mejores individuos de la generacin anterior

Objetivos de los algoritmos genticos:


abstraer y explicar los procesos adaptativos de los sistemas
naturales
disear sistemas artificiales basados en estos procesos

La principal caracterstica es la robustez del sistema

Surge una nueva rama, la Programacin Gentica:


generacin automtica de programas que evolucionan
para resolver cada vez mejor la tarea encomendada
Principios
Principios de
de Evolucin
Evolucin por
por Seleccin
Seleccin Natural
Natural

1. Cada individuo tiende a transmitir sus rasgos a su


progenie

2. La naturaleza produce individuos con rasgos diferentes

3. Los individuos ms adaptados, cuyos rasgos son ms


favorables para desenvolverse en el medio, tienden a
producir ms progenie

4. Durante largos perodos de tiempo se puede acumular la


variacin produciendo nuevas especies completamente
adaptadas a nichos particulares
Componentes
Componentes de
de un
un Algoritmo
Algoritmo Gentico
Gentico

Los componentes bsicos de un algoritmo gentico son


los siguientes:
Una representacin para los individuos
Una funcin de calidad, que da una medida del grado de
adaptacin de un individuo al medio
Un operador seleccin, con probabilidad de seleccin de
cada individuo proporcional a la calidad (principio 3)
Un operador emparejamiento o reproduccin, que producir
nuevos individuos en la siguiente generacin (principio 1)
Un operador mutacin, capaz de alterar el cdigo de los
nuevos individuos, incrementando la riqueza gentica de la
poblacin (principio 2)
Representacin
Representacin 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 carcter es un gen

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


que representa aplicando una funcin

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


Procedimientos
Procedimientos Generales
Generales de
de Eleccin
Eleccin Aleatoria
Aleatoria
Se utiliza una funcin random(), devuelve un real [0,1)
Hay tres situaciones en las que es necesario realizar
elecciones aleatorias:
A) Ejecutar una accin con probabilidad p:
IF (random() < p) THEN <accin>
B) Elegir entre N elementos equiprobables:
Generar random() y ver dnde 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 Eleccin
Eleccin Aleatoria
Aleatoria (II)
(II)

C) Elegir entre N elementos no equiprobables:


Calcular las probabilidades acumuladas
Generar random() y ver dnde cae
k
ak = pi
i =1

E1 E2 E3
0 a1 a2 a3 ... 1
Operador
Operador Seleccin
Seleccin

Cada vez que se necesita, se extraen ciertos individuos


de la poblacin. Para ello, se calcula la probabilidad de
seleccin de cada individuo proporcional a la calidad

Existen dos mtodos: estndar y del rango

Mtodo estndar:
Establecer la calidad de cada individuo de la poblacin
Calcular la probabilidad de seleccin de cada individuo
dividiendo cada calidad por la calidad total
Elegir un individuo entre N elementos no equiprobables
(procedimiento C)
Operador
Operador Seleccin
Seleccin (II)
(II)

Mtodo del rango:


Fijar una probabilidad a priori de eleccin, p
Establecer la calidad de cada individuo de la poblacin
Ordenar los individuos segn 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 informacin gentica 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 Mutacin
Mutacin

Altera aleatoriamente el cdigo gentico de un individuo


para variar ligeramente sus caractersticas

Permite que aparezcan rasgos en los nuevos individuos


que no existan antes en la poblacin original

La probabilidad de aplicacin de este operador debe ser


pequea

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 SELECCIN 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
Aadir el resultado a NUEVA_POBLACION
Copiar NUEVA_POBLACION en POBLACION
Devolver el individuo con mayor calidad de POBLACION

Das könnte Ihnen auch gefallen