You are on page 1of 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 Procesos mentales y razonamiento


Sistemas que piensan como humanos (Bellman) Sistemas que actan como humanos (Minsky)

Racionalidad
Sistemas que piensan racionalmente (Winston) Sistemas que actan racionalmente (Luger)

Conducta

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

CONTROL

Actuacin

SISTEMA

Medida

SENSOR

Comportamiento

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 Habitacin china
Reglas 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)

Problema

Modelizacin

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 metaconocimiento. 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 Inferencia Reglas Mdulo de Explicacin

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 THEN <expresin-lgica> <acciones> Antecedente 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 Se compone de: Atributos (slots): cada uno de los compartimentos Valores: el contenido del compartimento Facetas (facets ): indica cmo se puede utilizar el conocimiento del slot ES-UN Profesin Altura

Pedro
Value Default Value Hombre Pintor 180

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 A 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) }

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 y y 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 pan entera Tenedor en la mano

Dejar tenedor

Mano libre

Coger cuchillo

Cuchillo en la mano

Cortar pan

Pan cortado

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 (ST anford 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 a a partir partir de de Ejemplos Ejemplos

Fco. Javier Alcal Casado

Aprendizaje Aprendizaje Simblico Simblico a a 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: c: nc: P: d: b: nb: nmero total de ejemplos valores posibles para el resultado n individuos que tienen el valor c como resultado nombre de las propiedades propiedad decisora de la propiedad resultado valores posibles para una propiedad d n individuos con valor b para una propiedad n individuos con valor b para una propiedad y un valor c para un resultado probabilidad de que un individuo tenga como resultado valor c (Pc = nc / nt) probabilidad de que suceda b (Pb = nb / nt) probabilidad de que suceda c suponiendo que sucede b (Pbc= n bc / n b )

nbc: Pc: Pb: Pbc:

Estos parmetros se utilizan para calcular la entropa:

Parmetros Parmetros del del algoritmo algoritmo ID3 ID3 (II) (II)
nc nc Entropa = Pc log 2 Pc = log 2 nt nt c c

Entropa de un conjunto Entropa del valor de una propiedad n decisora n


Entropa(b) = Pbc log 2 Pbc =
c c bc

nb

log 2

bc

nb

Entropa media de una propiedad decisora nb nbc


log 2 x = ln x ln 2
x log 2 x = 0

nbc EntropaMedia (d ) = Pb Entropa(b) = log 2 nb nb bd bd nt c

(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
0

E2 E3
3/N ... 1

1/N 2/N

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

ak = pi
i =1

E1
0

E2
a1

E3
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

You might also like