Sunteți pe pagina 1din 101

MODULO INTELIGENCIA ARTIFICIAL

Edgar Alberto Quiroga Rojas

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD FACULTAD DE CIENCIAS BSICAS E INGENIERA PROGRAMA INGENIERIA DE SISTEMAS BOGOT D.C., 2005

MODULO INTELIGENCIA ARTIFICIAL @Copyright Universidad Nacional Abierta y a Distancia ISBN Autor: Edgar Alberto Quiroga Rojas Diseo Portada Juan Olegario Monroy V.

2005 Centro Nacional de Medios para el Aprendizaje

CONTENIDO
INTRODUCION JUSTIFICACIN INTENCIONALIDADES FORMATIVAS UNIDADES DIDCTICAS Primera Unidad INTRODUCCIN A LA INTELIGENCIA ARTIFICIAL Temas Definiciones, historia y limites de la I.A. El test de turing Aplicaciones (Sistemas expertos, procesamiento del lenguaje natural, Percepcin) Agentes Definiciones y caractersticas de un Agente Inteligentes Inteligente. Tipos y arquitecturas de agentes. Complejidad de Problemas de tiempo polinomial (P) los problemas. Problemas no polinomiales (NP) Segunda Unidad Captulos Temas LOS SISTEMAS Introduccin a los El papel de la bsqueda en la Inteligencia Artificial. DE BUSQUEDA sistemas de Componentes de un sistema de bsqueda bsquedas Clasificacin. Algoritmos generales de bsqueda. Bsquedas en Estrategias de bsqueda. espacios de Bsqueda heurstica estados Otros tipos de Algoritmos Genticos bsquedas Bsqueda en sistemas de juegos Tercera Unidad Captulos Temas Paradigmas simblico y conexionista. REPRESENTACI El papel del N DEL conocimiento en Modelos de representacin Puntos de vista declarativos y normativos CONOCIMIENTO la Inteligencia Aplicaciones en la ciencia e Ingeniera Y Artificial. RAZONAMIENTO Representacione El lenguaje de la lgica de predicados Extensiones de la lgica clsica s basadas en Programacin lgica lgicas Gestin de reglas Inferencia de produccin Reglas de produccin sin y con variables Introduccin al aprendizaje automtico de reglas. Captulos Objetivos y aplicaciones de la inteligencia Artificial

INTRODUCCIN
Inteligencia Artificial es un curso de carcter terico, que se inscribe en el campo de formacin electiva profesional del Programa de Ingeniera de Sistemas con un valor acadmico de tres crditos. El estudiante en el desarrollo de este curso recibe una Introduccin a la Inteligencia Artificial (IA) conociendo algunos de los mtodos utilizados para construir Sistemas Inteligentes. Para ello se introducen las tcnicas ms comunes de manipulacin y representacin del conocimiento y se analizan las caractersticas de las herramientas disponibles para la construccin de aplicaciones reales. Dada la naturaleza constructiva y experimental de la IA se da una gran importancia a la parte prctica es decir se busca que el estudiante en forma personal trabaje en las tcnicas de programacin efectiva de este tipo de sistemas, tambin es de resaltar que como estudiante, a este nivel de la carrera, los conocimientos de las reas de Teora de Grafos, Estructuras de Datos y Lgica le van a permitir abordar el curso con ms suficiencia en los conocimientos. El enfoque "orientado al mtodo" que se utilizara en el curso hace hincapi en los modelos de resolucin de problemas, el aprendizaje, conexionismo lenguajes de programacin o herramientas de construccin de sistemas basados en conocimientos. En lo referente a las prcticas se concede mayor importancia a estas ya que el alumno debe utilizar lenguajes de programacin o herramientas de desarrollo para construir programas que apliquen los mtodos vistos en la teora para resolver pequeos problemas de mundo real. Como se expone en las lneas anteriores en el curso hemos de considerar los trabajos prcticos como el medio ideal para: Fomentar la capacidad evaluadora y de decisin de los alumnos. Comprender y afianzar los conocimientos adquiridos en el estudio terico del curso. Conseguir que los alumnos tomen conciencia de la aplicabilidad de las tcnicas aprendidas.

En este sentido, es importante resaltar que las prcticas de los alumnos no deben consistir en meros esfuerzos de programacin, el planteamiento que debe primar es el que el alumno se vea obligado a evaluar distintas posibilidades de solucin, seleccionar e integrar tcnicas, comprobar que las soluciones obtenidas respondan a lo esperado, comparar los resultados obtenidos con tcnicas distintas y, en definitiva, aprender a aplicar la IA en dominios cotidianos. Segn esto, la programacin de tcnicas no debe considerarse como un fin en s mismo, sino ms bien como un medio para alcanzar los objetivos mencionados. Adems existe

una preferencia generalizada por la utilizacin de problemas reales, para potenciar la capacidad de anlisis del alumno. Durante este curso, la metodologa de trabajo buscar dinamizar la experiencia individual y grupal as como el acompaamiento que el tutor realiza al estudiante para dinamizar el aprendizaje y la formacin, que favorecer la disposicin a ser partcipe en la solucin de problemas. El trabajo que se promueve en el estudiante es de dos tipos: individual y grupal. El trabajo individual que es un estudio independiente y personal en donde las actividades se realizan autnomamente como por ejemplo lecturas, desarrollo de tareas, interaccin con medios tecnolgicos y tutoriales, al igual que la revisin de los materiales que se presentan en el mdulo y el aula virtual. El trabajo grupal que se refiere a las actividades en pequeos grupos colaborativos de aprendizaje para el desarrollo de talleres y tareas relacionadas. Mediante diversas actividades de aprendizaje que orientan el trabajo de los estudiantes se pretende que se logren los objetivos, de la siguiente manera: Tutor-estudiante: a travs del acompaamiento individual, foros, chat, correo electrnico. Estudiante-estudiante: mediante la participacin activa en los grupos colaborativos de aprendizaje. Estudiantes-tutor: a travs del acompaamiento a los pequeos grupos colaborativos de aprendizaje, grupos de discusin, foros, chat, correo electrnico Tutor-estudiantes: mediante el acompaamiento en grupo de curso Estudiantes-estudiantes: en los procesos de socializacin que se realizan en el grupo de curso.

El sistema de evaluacin del curso se realiza a travs de la evaluacin formativa, que constituye distintas formas de comprobar el avance en el autoaprendizaje del estudiante. En este sentido, se realizarn tres tipos de evaluacin alternativas y complementarias, estas son: Autoevaluacin: evaluacin que realiza el estudiante para valorar su propio proceso de aprendizaje. Coevaluacin: se realiza a travs de los grupos colaborativos, y pretende la socializacin de los resultados del trabajo personal. Heteroevaluacin: Es la valoracin que realiza el tutor.

No olvidar que la evaluacin tiene un examen nacional de 40% y regional de 60% Para el desarrollo del curso es importante el papel que juega los recursos tecnolgicos como medio activo e interactivo, buscando la interlocucin durante todo el proceso de dilogo Tutor-estudiante.

Los materiales impresos en papel, se han convertido en el principal soporte para favorecer los procesos de aprendizaje autodirigido. Aula Virtual: propician el acercamiento al conocimiento, la interaccin y la produccin de nuevas dinmicas educativas. Sistemas de interactividades sincrnicas: permite la comunicacin a travs de encuentros presenciales directos o de encuentros mediados (chat, audio conferencias, videoconferencias, tutoras telefnicas) Sistemas de interactividades diferidas: permite la comunicacin en forma diferida favoreciendo la disposicin del tiempo del estudiante para su proceso de aprendizaje, mediante la utilizacin de correo electrnico, foros, grupos de discusin, entre otros.

El acceso a documentos adquiere una dimensin de suma importancia en tanto la informacin sobre el tema exige conocimientos y planteamientos preliminares, por tal razn es imprescindible el recurso a diversas fuentes documentales y el acceso a diversos medios como son: bibliotecas electrnicas, hemerotecas digitales e impresas, sitios Web especializados. Por ltimo y para alcanzar los objetivos planteados en este curso es importante que usted como gestor de su propio proceso de aprendizaje considere los siguientes puntos como rectores de sus tareas autnomas: Organizacin del tiempo. Organizacin del material. Desarrollo de actividades de autoaprendizaje. Desarrollo de tareas individuales y grupales.

Organizacin del tiempo: dedique por lo menos una hora diaria al estudio de este curso. El xito de este aprendizaje est fundamentado en la disciplina individual que Ud. se proponga como hbito personal. No deje acumular su trabajo para la vspera de la fecha de entrega de las tareas. Organizacin del material y de estudio: planifique diariamente tanto el tiempo como el material que va a utilizar y revisar en cada actividad. Intercambie sus puntos de vista, materiales encontrados, opiniones de textos y autores con el propsito de alimentar y enriquecer su producto final. Desarrollo de actividades de autoaprendizaje: desarrolle ejercicios y actividades de autoaprendizaje, incorpore a su estudio, otros contenidos que sean producto de investigaciones bibliogrficas y de Internet. Desarrollo de tareas individuales y grupales: desarrolle a conciencia cada una de las tareas individuales y grupales a distancia. La suma de estos trabajos integrarn gran parte de su trabajo final.

JUSTIFICACIN
Dentro del campo de la Informtica una de las reas que ms ha hecho evolucionar los problemas que se pueden resolver por la utilizacin de los computadores ha sido la Inteligencia Artificial. El objetivo de la Inteligencia Artificial consiste en la construccin de sistemas tanto hardware como software que sean capaces de replicar aspectos de lo que se suele considerar inteligencia. Evidentemente este objetivo est muy ligado a la definicin de la propia palabra inteligencia de la que existe aproximadamente una definicin por cada persona. Esto nos obliga a adoptar un punto de vista practico y definir la Inteligencia Artificial como el conjunto de tcnicas mtodos herramientas y metodologas que nos ayudan a construir sistemas que se comportan igual que un humano en la resolucin de problemas concretos. Segn esta definicin la Inteligencia Artificial involucra a muchos campos de investigacin y desarrollo diferentes tales como la Robtica, la Visin Artificial, la Resolucin de Problemas, los Sistemas Expertos, la Traduccin Automtica etc. Nuestro curso acadmico se va a centrar en las tcnicas bsicas de realizacin de este tipo de sistemas, que son la representacin del conocimiento y la bsqueda de soluciones. Ya que el tipo de conocimiento que poseemos, sobre un determinado campo, no est normalmente estructurado; segn los mecanismos de representacin utilizados en programacin convencional como pilas, listas, matrices, variables etc. sino que estn estructurados, utilizando mecanismos de representacin ms complejos, es necesario ampliar el conjunto de tcnicas computacionales bsicas, con un conjunto de formalismos de representacin, que permitan mostrar estas estructuras ms complejas que empleamos los humanos. Estos formalismos son los que se estudiaran en la unidad didctica titulada Representacin del Conocimiento Una vez representado el conocimiento del humano, utilizando estos formalismos de representacin, es necesario resolver los mismos problemas que resuelve el humano experto. Apoyados en la unidad didctica de los Sistemas de Bsqueda particularmente en la bsqueda heurstica, en donde se estudian una serie de mtodos de seleccin, de las mejores alternativas de decisin para poder resolver problemas. Utilizando el desarrollo de rboles de bsqueda que describen las posibles alternativas que tiene la resolucin de un determinado problema. As mismo se estudiar cmo representar y manejar el conocimiento que hace que las personas expertas resuelvan directamente problemas complejos seleccionando en la mayor parte de las ocasiones las mejores alternativas. Esto se har definiendo el concepto de heurstica que consiste en el conocimiento que ayuda a los expertos en un campo a resolver problemas de forma mas eficiente, que los faltos de experiencia en el mismo campo.

Caractersticas de la Inteligencia Artificial. La caracterstica fundamental que distingue a los mtodos de Inteligencia Artificial de los mtodos numricos es el uso de smbolos no matemticos, aunque no es suficiente para distinguirlo completamente. Las conclusiones de un programa declarativo no son fijas y son determinadas parcialmente por las conclusiones intermedias alcanzadas durante las consideraciones al problema especfico. Los lenguajes orientados al objeto comparten esta propiedad y se han caracterizado por su afinidad con la Inteligencia Artificial. El razonamiento basado en el conocimiento, implica que estos programas incorporan factores y relaciones del mundo real y del mbito del conocimiento en que ellos operan. Al contrario de los programas para propsito especfico, como los de contabilidad y clculos cientficos; los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de inferencia y base de conocimientos dndole la capacidad de explicar discrepancias entre ellas. Aplicabilidad a datos y problemas mal estructurados, sin las tcnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolucin de conflictos en tareas orientadas a metas como en planificacin, o el diagnstico de tareas en un sistema del mundo real: con poca informacin, con una solucin cercana y no necesariamente exacta. Las competencias que promueve el curso y que son necesarias son: COGNITIVA : Capacidad de apropiarse de un conjunto de conocimientos a travs del desarrollo, monitoreo y aplicacin de procesos de pensamiento. COMUNICATIVA: Capacidad de comprender, expresar mensajes y de desarrollar procesos argumentativos, apoyados por la asertividad en las relaciones interpersonales. CONTEXTUAL: Capacidad de ubicar el conocimiento en el contexto cientfico, poltico, cultural, tecnolgico, social y en el plano nacional e internacional, as como la disposicin y capacidad para aplicarlo en procesos de transformacin que inciden en la calidad de vida de la poblacin. VALORATIVA: Capacidad de apropiarse de valores como el respeto a la vida. La dignidad humana, la convivencia, la solidaridad, la tolerancia y la libertad que orientan las acciones del individuo como persona, como ser social y como profesional. Para el logro de stas competencias, es necesario que se planifique de manera responsable el proceso de autoestudio por parte del estudiante si se quieren lograr

resultados positivos en el aprendizaje de los conceptos incluidos en el curso, este proceso se puede planificar de la siguiente manera: Autoestudio: Estudio individual del material sugerido y consulta de otras fuentes (documentales, consulta en biblioteca, Internet, bibliografa recomendada, consulta a bases de datos documentales, entre otros) Trabajo en grupo: Creacin de grupos de estudio o discusin con el propsito de preparar consultas estructuradas al tutor. Consultas al tutor: Consulta al tutor de las inquietudes surgidas en el punto anterior. Retroalimentacin: Una vez el tutor haya resuelto las inquietudes, estudie nuevamente el tema, teniendo en cuenta las sugerencias o respuestas dadas por el tutor. Procesos de evaluacin: Una vez se haya realizado el proceso de retroalimentacin, desarrolle los diferentes momentos de evaluacin propuestos en el curso como son la autoevaluacin, coevaluacin y heteroevaluacin.

INTENCIONALIDADES FORMATIVAS
PROPSITOS Facilitar la apropiacin de conocimientos para que el estudiante pueda Adquirir los conceptos bsicos de la inteligencia artificial. Lograr que el estudiante Comprenda los elementos bsicos de representacin, eligiendo el formalismo ms adecuado y entender el funcionamiento de los diferentes algoritmos de bsqueda.

OBJETIVOS Estudiar los conceptos fundamentales de la inteligencia artificial (IA) y usar algunos de los mtodos ms utilizados para construir Sistemas Inteligentes. Analizar problemas y decidir si se puede o no aplicar bsqueda y en caso afirmativo que tipo de tcnica utilizar. Examinar las principales caractersticas de los Agentes Inteligentes, su funcionamiento, estandarizacin y elementos que los componen.

COMPETENCIAS El estudiante conoce La lgica de predicados consistente en un lenguaje para expresar proposiciones y reglas para inferir nuevas proposiciones a partir de las que ya conocemos. El estudiante desarrolla la capacidad de abstraccin y anlisis terico en relacin con la teora, para adquirir herramientas como los algoritmos de bsqueda y los rboles de bsqueda para aplica estas capacidades a algunas asignaturas de la carrera.

METAS Al terminar el curso el estudiante: Debe demostrar la asimilacin de los conceptos fundamentales mediante la resolucin de problemas acerca de los mismos, as como la realizacin de un reducido grupo de practicas en el computador. Desarrollar la capacidad de entender los problemas computacionales, y lograr una comprensin acabada de ciertos tpicos de la ciencia de la computacin; en particular, en lo referente a modelos bsicos de conmutabilidad y complejidad de problemas.

UNIDAD DIDCTICA 1
1. INTRODUCCIN A LA INTELIGENCIA ARTIFICIAL INTRODUCCIN

OBJETIVO GENERAL

OBJETIVOS ESPECIFICOS

ESTRUCTURA TEMTICA

1. INTRODUCCIN A LA INTELIGENCIA ARTIFICIAL


1.1. inteligencia, definicin de Inteligencia Artificial (IA) y evolucin histrica 1.2. Tcnicas de resolucin de problemas de IA 1.3. Criterios de xito de la IA 1.4. Resolucin de problemas de IA: 1.4.1. Definicin formal del problema 1.4.2. Estrategia de control: Mtodos de bsqueda 1.4.3. Anlisis del problema 1.2. Agentes Inteligentes 1.2.1 Definiciones y caractersticas de un Agente Inteligente. 1.2.2 Tipos y arquitecturas de agentes. 1.3 Complejidad de los problemas. 1.3.1 Problemas de tiempo polinomial (P) 1.3.2 Problemas no polinomiales (NP)

CONCEPTOS BSICOS 1. INTRODUCCIN A LA INTELIGENCIA ARTIFICIAL

1.1. Inteligencia, definicin de Inteligencia Artificial.


La Inteligencia Artificial, o IA en trminos cortos, es una combinacin de la ciencia de las computadoras, la sicologa y la filosofa. La IA cubre un espectro amplio, consistente en campos de estudio diferentes, estos van desde la visin por computadora hasta las redes neuronales y los sistemas expertos. El elemento que los campos de la IA tienen en comn es la creacin o simulacin de maquinas que puedan pensar.

Para clasificar las maquinas como pensantes, es necesario definir inteligencia. El problema que aparenta ser simple es uno de los ms complejos del rea, en el entendido que la inteligencia puede representar, por ejemplo, la solucin adecuada de problemas complejos o a establecer generalizaciones y relaciones entre objetos. Qu se podra decir acerca de la percepcin y la comprensin? Dnde podr situarse las formas de adquisicin del conocimiento? y, si el pensar es un acto natural concomitante con la naturaleza Cules son las herramientas que se necesitan para simular un comportamiento natural del pensar humano? INTELIGENCIA Es completamente posible establecer una escala aproximada de la inteligencia: muchas personas son ms inteligentes que algunos chimpancs, un procesador de textos es una mquina ms inteligente que una maquina de escribir mecnica, etc. Sin embargo no existe una definicin cientfica de inteligencia. Se reconoce que es difcil precisar el significado de la Inteligencia, sin embargo algunas definiciones mencionadas por algunos investigadores son: a) BINET: buen discernimiento, buena comprensin, buen razonamiento. b) SPEARMAN: la inteligencia general..... supone principalmente saber relacionar y correlacionar. c) TERMAN: capacidad para desarrollar conceptos y captar su significado. d) VERNON: todo lo relacionado con capacidad para pensar o eficiencia mental. e) BURT: capacidad innata, general, habilidad cognoscitiva. f) HEIM: la inteligencia denota capacidad para captar lo esencial de una situacin y responder en consecuencia. g) WECHSLER: capacidad general o global del individuo para actuar segn un propsito, pensar racionalmente y relacionarse eficazmente con su entorno. h) PIAGET: adaptacin al entorno fsico y social. i) MINSKY: inteligencia es todo lo que puede ser medido mediante pruebas de inteligencia. La combinacin de aptitudes, criterio, comprensin, razonamiento, conceptualizacin, saber responder adecuadamente, adaptacin, etc. que se encuentran presentes en estas definiciones sealan la naturaleza polifactica de la inteligencia. La inteligencia por otra parte esta relacionada con la habilidad para reconocer patrones, deducir conclusiones razonables, analizar sistemas complejos como elementos simples y resolver sus contradicciones, y aun es mucho ms que todo lo mencionado. La inteligencia esta en un nivel mayor que la informacin y el conocimiento pero debajo del nivel de la sabidura. Una de las formas mas aceptadas para explicar la inteligencia, desde el punto de vista computacional, constituye la prueba de Alan Turing elaborada en 1950. La idea de la prueba de Turing es que si un interrogador decide errneamente que

una mquina es una persona, entonces se dice que dicha mquina exhibe inteligencia.
INTELIGENCIA ARTIFICIAL

Resulta obvi que la inteligencia es de por s un concepto bastante complicado de definir. Por esta razn intentar definiciones para la inteligencia artificial es tambin compleja. Quiz la inteligencia artificial debera llamarse inteligencia sinttica para que concuerde mejor con el lenguaje comercial. As los diamantes artificiales son falsas imitaciones, mientras que los diamantes sintticos son diamantes autnticos, slo que manufacturados en lugar de desenterrados. No obstante el nombre, la inteligencia artificial aspira a una inteligencia autntica, no a una falsa imitacin. Marvin Minsky sugiere el carcter practico de la inteligencia artificial mencionando: La inteligencia artificial es la ciencia de hacer que las mquinas hagan cosas que requeriran inteligencia si fueran hechas por seres humanos. Elaine Rich: La inteligencia artificial es el estudio de cmo hacer que los ordenadores hagan cosas que por el momento las personas realizan de una forma ms perfecta. Otras definiciones que pueden darnos una idea de lo que se llama inteligencia artificial:

Una de las reas de las ciencias computacionales encargadas de la creacin de hardware y software con comportamiento inteligentes. El estudio de las computaciones que permiten percibir, razonar y actuar Estudia como lograr que las mquinas realicen tareas que, por el momento, son realizadas mejor por los seres humanos.

Desde el punto de vista de los objetivos, la IA puede considerarse como parte de la ingeniera o de la ciencia:

El objetivo ingenieril de la IA es resolver problemas reales, actuando como un armamento de ideas acerca de cmo representar y utilizar el conocimiento, y de como ensamblar sistemas El objetivo cientfico de la IA es explicar varios tipos de inteligencia. Determinar qu ideas acerca de la representacin del conocimiento, del uso que se le da a ste, y del ensamble de sistemas explican distintas clases de inteligencia.

Algunas aplicaciones de la inteligencia artificial:

Tareas de la vida diaria (ms difcil para una mquina que las tareas de un experto) o Percepcin (visin y habla) o Lenguaje natural (comprensin, generacin, traduccin) o Sentido comn o Control de un robot Tareas formales o Juegos (ajedrez, backgammon, damas) o Matemticas (geometra, lgica, clculo, demostracin de propiedades) Tareas de los expertos (necesitan un conocimiento menor que el conocimiento necesario en las tareas ms comunes) o Ingeniera (diseo, deteccin de fallos, planificacin de manufacturacin) o Anlisis cientfico o Diagnosis mdica o Anlisis financiero

Objetivos

Puesto que la meta de la inteligencia artificial es desarrollar sistemas que se comporten de manera inteligente, es decir de manera similar a los seres humanos, Cercone & McCalla en 1984 disearon objetivos que cualquier sistema ideal de inteligencia artificial debe cumplir. Un investigador de la inteligencia artificial debe ser capaz de: a) Desarrollar un sistema de trabajo que se comporte de una manera inteligente. b) Validar el comportamiento del sistema mediante comparaciones con seres humanos (objetivo de diseo externo); c) Entender las implicaciones del sistema - su cobertura, lo que puede hacer (objetivo de diseo interno); d) Determinar que es lo que puede ser generalizado acerca del sistema, las lecciones que ensea, las reas de impacto.
AREAS DE INVESTIGACION Los mayores esfuerzos de la investigacin en inteligencia artificial se concentraron en el entendimiento del lenguaje natural, la visin por computadora, aprendizaje, prueba de teoremas y programacin lgica, bsqueda, solucin y planeacin de problemas, sistemas expertos, representacin de conocimiento y otras categoras tales como instruccin y tutora inteligente asistida por computadoras, juegos, pronunciacin, programacin automtica y herramientas de inteligencia artificial. Sistemas Expertos

Son programas computacionales diseados para actuar como expertos en un dominio particular restringido. Es importante debido a que trabaja con conocimiento en lugar del tradicional dato.

La investigacin en representacin de conocimiento es central para el avance de los sistemas expertos. Los componentes bsicos de un sistema experto son: a) Base de Conocimiento. Es la representacin el conocimiento del dominio para la solucin de problemas especficos, normalmente dicho conocimiento se estructura en forma modular y declarativa. b) Mquina de Inferencia. Es el procedimiento que se encarga de realizar el razonamiento a partir de los datos y utilizando el conocimiento acumulado en la base de conocimiento. Es genrica, es decir, se puede aplicar a diferentes dominios slo cambiando la base de conocimiento. c) Memoria de Trabajo. Es el lugar donde se almacenan los datos de entrada y conclusiones intermedias que se van generando durante el proceso de razonamiento. d) Interfaz de Usuario. Se refiere a la entrada/salida al usuario del sistema, incluyendo, normalmente, mecanismos de pregunta (porqu) y de explicacin (cmo). e) Interfaz de Adquisicin. Hace referencia a la interface para la adquisicin del conocimiento del dominio, puede incluir mecanismos para facilitar su adquisicin y depuramiento interactivo y para automatizar la adquisicin (aprendizaje). Los Sistemas Expertos son uno de los puntos que componen las investigaciones en el campo de la IA. Un sistema de ordenadores que trabaje con tcnicas de IA deber estar en situacin de combinar informacin de forma "inteligente", alcanzar conclusiones y justificarlas. Los Sistemas Expertos son una expresin de los sistemas basados en el conocimiento. Con la aplicacin de tcnicas de Inteligencia Artificial finaliza la transicin del procesamiento de datos al procesamiento de conocimientos. Los sistemas expertos se aplican por norma general en problemas que implican un procedimiento basado en el conocimiento. Un procedimiento de solucin basado en el conocimiento comprende las siguientes capacidades: a) Utilizacin de normas o estructuras que contengan conocimientos y experiencias de expertos especializados. b) Deduccin lgica de conclusiones. c) Capacidad para interpretar datos ambiguos. d) Manejo de conocimientos afectados por valores probabilsticos. Debido a la gran capacidad de almacenamiento de los computadores, los sistemas expertos tienen el potencial de interpretar estadsticas, para interpretar el formalismo de representacin conocido como reglas de produccin. Un sistema experto trabaja de manera parecida a un detective encargado de resolver un misterio. Utilizando la informacin, y un formalismo de representacin de conocimiento, un sistema experto puede resolver el problema que se le plantee. Por ejemplo un sistema experto diseado para distinguir aves puede tener la siguiente configuracin:

EJEMPLO DE SISTEMA ESPERTO OJO

Fig. 1.2. Reglas del Sistema Experto en Aves

El Procesamiento del Lenguaje Natural (PLN) es una parte esencial de la IA que investiga y formula mecanismos computacionalmente efectivos que faciliten la interrelacin hombremquina y permitan una comunicacin mucho ms fluida y menos rgida que los lenguajes formales. Todo sistema de PLN intenta simular un comportamiento lingstico humano; para ello debe tomar conciencia tanto de las estructuras propias del lenguaje, como del conocimiento general acerca del universo de discurso. De esta forma, una persona que participa en un dilogo sabe cmo combinar las palabras para formar una oracin, conoce los significados de las mismas, sabe cmo stos afectan al significado global de la oracin y posee un conocimiento del mundo en general que le permite participar en la conversacin. El PLN hace referencia a programas que permiten la comunicacin hombremaquina en un lenguaje parecido al humano. Cuenta con dos reas: comprensin del lenguaje natural y generacin del lenguaje natural. La comprensin del lenguaje natural investiga los mtodos que permitan al computador comprender las instrucciones dadas en lenguaje natural, de tal manera que los computadores puedan entender de manera ms fcil al ser humano. La generacin del lenguaje natural intenta mostrar que el ordenador puede ser capaz de expresarse en lenguaje ordinario, de tal forma que se pueda entender a los computadores de una manera mucho ms sencilla.
Reconocimiento del Habla

Hace ya tiempo que se estudia la posibilidad de desarrollar interfaces hombremquina controlados por la voz para sustituir en ciertas aplicaciones a las interfaces tradicionales basadas en teclados, paneles y dispositivos similares. Este nuevo tipo de interfaz constara de dos mdulos de entrada/salida: uno de reconocimiento de habla, mediante el cual el ordenador sera capaz de extraer

informacin de los comandos orales del operador o usuario, y otro de sntesis de voz, que podra ser una de las vas de presentacin de resultados. La utilizacin de la voz, y el Reconocimiento de Habla, como va de dar ordenes a los computadores ofrece varias ventajas respecto al mtodo tradicional de comunicacin entre el usuario y la mquina: a) Hace esta comunicacin ms rpida, y ms agradable para los nuevos usuarios, ya que al ser la forma natural de comunicarse no se necesita ninguna habilidad especial. b) Permite tener las manos libres para utilizarlas en alguna otra actividad, a la vez que se van dando ordenes por medio de la voz. c) Permite movilidad, ya que la voz se puede enviar a distancia y ser recogida por un micrfono, por oposicin a un teclado que no se puede mover de la mesa de trabajo. d) Permite acceso remoto, al poder acceder a un ordenador usando la red telefnica, que es la red de comunicaciones ms extendida. e) Permite la disminucin del tamao de los paneles de control. Piense en el panel de un avin, cuantos conmutadores manuales podran suprimirse si se utilizara la voz como forma de comunicacin con un sistema de control Esta rea de investigacin permite que los ordenadores entiendan el habla humana, de tal manera que se puedan or voces y reconocer palabras habladas, simplificando el proceso de comunicacin interactiva hombre - maquina. Incrementa el mtodo interactivo de comunicacin primaria utilizada por las personas, el habla.
Visin por Computador

El trmino Visin por Computador (VC) dentro del campo de la Inteligencia Artificial puede considerarse como el conjunto de todas aquellas tcnicas y modelos que permiten el procesamiento, anlisis y explicacin de cualquier tipo de informacin espacial obtenida a travs de imgenes digitales. Desde sus inicios la VC ha inspirado sus desarrollos en el estudio del sistema visual humano el cual sugiere la existencia de diferentes tipos de tratamiento de la informacin visual dependiendo de metas u objetivos especficos, es decir, la informacin visual percibida es procesada en distintas formas con base en las caractersticas particulares de la tarea a realizar, por lo que la VC propone varias tcnicas que permiten obtener una representacin del mundo a partir del anlisis de imgenes obtenidas desde cmaras de video. Debido a que la informacin visual es una de las principales fuentes de datos del mundo real, resulta til el proveer a una computadora digital del sentido de la vista (a partir de imgenes tomadas con cmaras digitales o analgicas), que junto con otros mecanismos como el aprendizaje hagan de esta una herramienta capaz de detectar y ubicar objetos en el mundo real.

Fig. 1.3. Procedimiento macro para obtener una imagen digital Por consiguiente la investigacin en visin por computador tiene como objetivo dotar a los computadores con la herramienta de visualizacin para el entendimiento y comprensin del entorno que el computador est observando.
Robtica

Cuando se escucha la palabra Robot, algunas ocasiones se piensa de manera directa en esas pelculas que han sorprendido por presentar Robots que realizan acciones superiores a las capacidades del ser humano. Los modelos ms famosos de robots han sido los creados por George Lucas en su pelcula Star Wars a quienes se conoce como C3PO y R2D2.

Mikell Groover, en su libro Automation, Production Systems and Computer Integrated Manufacturing, define al robot industrial como: una mquina programable, de propsito general, que posee ciertas caractersticas antropomrficas, es decir, con caractersticas basadas en la figura humana.... Cabe destacar que la caracterstica antropomrfica ms comn en nuestros das es la de un brazo mecnico, el cual realiza diversas tareas industriales. Existen en el mercado diversas empresas dedicadas a la fabricacin de robots industriales por lo que existen diferentes marcas y modelos. Estos ltimos son normalmente asignados para identificarlos o de acuerdo a su funcin. Un resumen general de lo que constituye un robot industrial puede ser considerado sobre la base de los siguientes puntos: a) Un robot industrial es una mquina programable de propsito general que posee ciertas caractersticas antropomrficas. b) El componente principal lo constituye el manipulador, el cual consta de varias articulaciones y sus elementos. c) Las partes que conforman el manipulador reciben los nombres de cuerpo, brazo, mueca y efector final o gripper. Otros elementos son el controlador, los mecanismos de entrada y salida de datos y los dispositivos especiales.

d) Existen dos categoras de efectores finales (grippers): las pinzas y las herramientas. Las pinzas pueden ser de tipo pivotante o de movimiento lineal entre otras. Entre las herramientas se tiene a los desarmadores y las pistolas para soldar. e) Los movimientos de un robot estn relacionados con los grados de libertad que posea. Un grado de libertad es un nmero o tipo de movimiento del manipulador. Los grados de libertad se determinan por los movimientos que ejecutan el brazo y la mueca del robot que pueden ser de uno a tres cada uno. La investigacin en esta rea tiende al estudio de las capacidades de los robots de poder insertarse en la sociedad a manera de seres mecnicos capaces de controlar y resolver los problemas discretos y mecanizados de su entorno. Otras reas Otras reas significativas para su estudio al interior de la inteligencia artificial son: las lgicas no clsicas como la Lgica Difusa, las Redes Neuronales, los Algoritmos Genticos, la Realidad Virtual, la Vida Artificial, los Agentes Inteligentes, etc. Estas reas pueden ser visualizadas en la Fig. 1.5.

En el resto del texto la visin que se intenta brindar es la comprensin, anlisis y aplicacin de estas reas de la inteligencia artificial. No es intencin revisar a detalle cada una de estas reas, sin embargo es menester reconocer la importancia que han cobrado en esta ltima dcada de investigacin en la inteligencia artificial. La mayor de las expectativas es compartir los principios y fundamentos bsicos que proporcionan la importancia natural a estas reas, tan trilladas y comentadas en este ultimo tiempo. Desarrollo histrico de la Inteligencia Artificial segn Jackson:

1950-1965. Periodo "clsico'' .

- Gestacin [McColluck y Pitts, Shannon, Turing] -1956, la I.A. tuvo su boom a partir de la conferencia efectuada en Darmouth College. Estaban presentes importantes cientficos como McCarty (le dio el nombre a esta nueva rea del conocimiento), Minsky (fundador del laboratorio de IA del MIT), Shannon (laboratorios Bell), Rodhester (IBM), Newell (presidente de la A.A.A.I. Asociacin Americana de IA), Simmon (premio Nbel de Carnegie Mellon University) - Redes neuronales, robtica (Shakey). -Bsqueda en un espacio de estados, Heursticas, LISP. - Resolutor general de problemas (GPS) [Newell, Simon]. Resolucin de problemas de sentido comn, los cuales incluyen razonamiento de objetos fsicos y sus relaciones, como tambin razonamiento de acciones y sus consecuencias. Solo se resolvieron tareas muy simples, pues no se pudo crear un programa con la cantidad suficiente de conocimiento de un dominio especfico - Se pone principal nfasis en la implementacin de juegos (ajedrez, damas, etc.) as como en la demostracin de teoremas matemticos. - Limitaciones de pura bsqueda, explosin combinatoria.

1965-1975. Periodo "romntico''

- Representacin "general'' del conocimiento. - Redes semnticas [Quillian] - Prototipos (frames) [Minsky] - Perceptrn [Minsky y Papert] - Lgica [Kowalski] - Mundo de bloques (SHDRLU) [Winograd] - Percepcin (visin y habla), compresin de lenguaje natural, robtica. - Dificultades de representacin "general'', problemas de "juguete''. 1975- actualidad. Periodo "moderno'', Inteligencia "especifica'' vs. "general''. - Se identifica la necesidad de trabajar en sociedad con profesionales de otras reas de conocimiento. - Representacin explcita del conocimiento especfico del dominio. - Sistema experto mdico MYCIN (experto en enfermedades infecciosas de la sangre) iniciado en la Universidad de Stanford. - Sistemas expertos o basados en conocimiento. -Regreso de redes neuronales [Hopfield, Rumelhart, Hinton], algoritmos genticos [Holland, Goldberg].

-Reconocimiento de voz (HMM), incertidumbre (RB, Lgica difusa), planeacin, aprendizaje. -Aplicaciones "reales'' (medicina, finanzas, ingeniera, exploracin, etc.). - Comercializacin de la IA

1.2. Tcnicas de resolucin de problemas de IA


Uno de los resultados que surgieron de las primeras investigaciones en IA fue que la inteligencia necesita conocimiento. El conocimiento posee algunas propiedades poco deseables como:

Es voluminoso Es difcil caracterizarlo Cambia Se organiza de manera que se corresponde con la forma en que va a se usado

Una tcnica de IA es un mtodo que explota el conocimiento representado de manera que se cumpla que:

Representa generalizaciones, es decir, no es necesario representar cada situacin individual, sino que las situaciones que comparten propiedades importantes se agrupan. Debe ser entendido por las personas que lo provean. Puede ser modificado para corregir errores y reflejar cambios en el mundo Puede usarse en muchas situaciones aun sin ser totalmente exacto o completo Puede usarse para superar su propio volumen, y disminuir el rango de posibilidades que normalmente deben considerarse

Se pueden caracterizar las tcnicas de IA con independencia del problema a tratar. Para solucionar problemas complicados, los programas que utilizan las tcnicas de IA presentan numerosas ventajas con respecto a los que no lo hacen:

son menos frgiles, es decir, que no se despistan frente a una perturbacin pequea de la entrada. el conocimiento del programa es comprendido fcilmente por la gente usa generalizaciones. tiene facilidad de extensin.

Como contraposicin, generalmente tienen ms complejidad que otras soluciones.

Se analizan brevemente a continuacin dos tipos de problemas bien diferenciados, y dentro de cada uno se ejemplifica lo que se entiende por una tcnica de IA. Ejemplo 1: tres en raya A continuacin se plantean tres soluciones diferentes del problema de tres en raya analizando la conveniencia de cada una. Para mejor detalle de las mismas consultar [Rich98].

Solucin 1: Una primera solucin directa a este juego podra ser la de almacenar en un vector las 19.693 (39) posibilidades de un tablero de 3 x 3 con tres valores posibles en cada casilla (vaco-X-O), as como las correspondientes jugadas sucesoras. Para realizar una jugada, bastara con acceder a la posicin del tablero actual y la jugada sucesora correspondiente. Las desventajas de este eficiente programa son bastante obvias: necesita gran cantidad de memoria; alguien debe realizar el pesado trabajo de introducir todas las jugadas y sus sucesoras; y el juego no se puede ampliar, por ejemplo a tres dimensiones. Solucin 2: El programa posee una estrategia para cada turno de jugador. Analiza el posible triunfo a partir de un estado del tablero dado. Aunque es menos eficiente que la solucin anterior en trminos de tiempo, tiene la ventaja que es ms eficiente en trminos de espacio. Su estrategia es ms facil de comprender y realizar cambios, aunque el programador debe comprender la totalidad de la estrategia de antemano. Adems, no es posible generalizar parte del conocimiento del programa hacia un dominio distinto, como tres en raya 3D. Solucin 3: Una estructura contiene el tablero actual, as como una lista de posiciones del tablero que podran ser el prximo movimiento, y una estimacin de la probabilidad de que esa jugada lleve a la victoria. Para decidir la siguiente jugada se tienen en cuenta las posiciones de tablero que resultan de cada movimiento posible. Se decide la posicin que corresponde a la mejor jugada, considerando si la jugada produce la victoria, y en caso contrario considerando todos los movimientos que el oponente puede realizar asumiendo que ste elegir el peor para nosotros. El algoritmo inspecciona varias secuencias de movimientos intentando maximizar la probabilidad de victoria. Necesita mucho ms tiempo que los dems, ya que debe realizar una bsqueda en un rbol de posibilidades antes de realizar cada movimiento. Sin embargo, es superior a las dems soluciones pues podra ser ampliado para manipular juegos ms complicados. Adems, puede aumentarse su potencia usando conocimiento sobre el juego, por ejemplo, en lugar de considerar todos los posibles movimientos considerar solo un

subconjunto siguiendo algn criterio razonable. Este programa es un ejemplo del uso de una tcnica de IA.

Ejemplo 2: respuestas a preguntas Se quiere realizar un programa que a partir de un texto escrito en espaol pueda responder a preguntas en espaol sobre este texto. En este caso, es ms difcil que en el ejemplo anterior determinar formalmente y con precisin en qu consiste el problema y en qu consiste una solucin correcta para l. Un ejemplo de programa de preguntas y respuestas en ingls es el programa POLITICS (Carbonell, 1980). A continuacin se plantean tres soluciones diferentes analizando la conveniencia de cada una. Para mejor detalle de las mismas consultar [Rich98]. Solucin 1: Se tienen conjunto de plantillas (templates) preguntas, por ejemplo "Que x y" asociada con patrones (patterns) respuesta, por ejemplo "y x z". Responde a las preguntas usando el texto de entrada de forma literal. Se hace coincidir fragmentos de texto de entrada con el patrn respuesta, y se obtiene la respuesta, por ejemplo "z". Este algoritmo no puede contestar el tipo de preguntas que la gente puede responder despus de una simple lectura del texto. La habilidad para responder depende de la forma exacta de la pregunta, y de las variaciones contempladas en el diseo de plantillas y patrones. El proceso de sustitucin de patrones usado es llamado pattern matching. Pese a que lo que se entiende por IA no incluye programas como ste, sta tcnica es la usada en uno de los programas ms clebres de IA, ELIZA. Solucin 2: Transforma el texto de entrada dndole una estructura interna que intenta capturar el significado de las frases, y tambin transforma las preguntas de igual manera. Las respuestas se encuentran emparejando unas con otras formas estructuradas. Este enfoque est ms basado en conocimiento que el primero, y tambin es ms efectivo. Puede responder a la mayora de las preguntas cuyas respuestas se encuentran en el texto, y es menos quebradizo con respecto a las formulaciones exactas de preguntas y respuestas. Algunas preguntas necesitan conocimiento adicional sobre el mundo con el que trate el texto, que esta solucin no posee. Solucin 3: Al igual que la solucin anterior se transforma el texto en forma estructurada, pero a diferencia del anterior, se combina esta forma con otras formas estructuradas que describen conocimiento previo sobre los objetos y situaciones que aparecen en el texto. Este programa es ms potente que los otros dos, debido a que

responde a preguntas usando esta estructura de conocimiento aumentada. Se utiliza lo que se denomina tcnica de IA, pues est basado en el conocimiento y en uso computacional eficaz de ese conocimiento. Estos ejemplos ponen de manifiesto tres importantes tcnicas de IA:

Bsqueda: proporciona una forma de resolver problemas en los que no se dispone de un mtodo directo Uso del conocimiento: proporciona una forma de resolver problemas complejos explotando las estructuras existentes entre los objetos involucrados Abstraccin: proporciona una forma de separar aspectos y variaciones importantes de aquellos otros sin importancia, y que en caso contrario podran colapsar el proceso.

1.3. Criterios de xito de la IA


Para determinar el xito de un programa de IA, se deben realizar las siguientes preguntas:

Est definida con claridad la tarea? Existe un proceso instrumentado que efecta la tarea? Existe un conjunto de restricciones identificables a partir de las cuales el procedimiento implantado tiene poder? Resuelve un problema real? Crea una nueva oportunidad?

Test de Turing En 1950, Alan Turing propuso el siguiente mtodo para determinar si una mquina es capaz de pensar. Una persona es un entrevistador y se halla en una habitacin separado de otra persona y un ordenador a evaluar. El entrevistador hace preguntas a ambos de forma escrita. Si luego de un cierto nmero de preguntas y respuestas, el interrogador no puede identificar quin es el computador y quin es la persona, entonces podemos decir que el computador piensa. Se puede calibrar el xito de la IA en dominios ms restringidos? Por ejemplo, El xito de un programa que juega al ajedrez se puede evaluar segn los jugadores que pueda derrotar; El xito de otros programas puede medirse comparando el tiempo que tarda un ordenador en llevar a cabo una tarea con el que tarda una persona en hacer lo mismo. Por ej. programas usados en empresas informticas para configurar sistemas particulares a las necesidades del cliente; en tareas de cada da es ms difcil, por ej. parafrasear un artculo del peridico, la mejor forma de evaluarlo es ver si el programa responde de la misma forma que hara una persona.

Cuando se quiere disear un programa de IA, se debe intentar especificar tan bien como sea posible el criterio de xito para el funcionamiento del programa en su dominio particular.

1.4. Resolucin de problemas de IA


Para construir un sistema que resuelva un sistema especfico, es necesario: 1- Definir el problema formalmente con precisin. 2- Analizar el problema. 3- Representar el conocimiento necesario para resolver el problema. 4- Elegir la mejor tcnica que resuelva el problema y aplicarla.

1.4.1. Definicin formal del problema.


El primer paso para disear un programa que resuelva un problema es crear una descripcin formal y manejable del propio problema. Sera adecuado contar con programas que produzcan descripciones formales a partir de descripciones informales, proceso denominado operacionalizacin. Dado que por ahora no se conoce la forma de construir estos programas este proceso debe hacerse manualmente. Hay problemas que por ser artificiales y estructurados son fciles de especificar (por ej. el ajedrez, el problema de las jarras de agua, etc. ). Otros problemas naturales, como por ej. la comprensin del lenguaje, no son tan sencillos de especificar. Para producir una especificacin formal de un problema se deben definir: espacio de estados vlidos; estado inicial del problema; estado objetivo o final; reglas que se pueden aplicar para pasar de un estado a otro. Un estado es la representacin de un problema en un instante dado. Para definir el espacio de estados no es necesario hacer una enumeracin exhaustiva de todos los estado vlidos, sino que es posible definirlo de manera ms general. El estado inicial consiste en uno o varios estados en los que puede comenzar el problema. El estado objetivo consiste en uno o varios estados finales que se consideran solucin aceptable. Las reglas describen las acciones u operadores que posibilitan un pasaje de estados. Una regla tiene una parte izquierda y una parte derecha. La parte izquierda determina la aplicabilidad de la regla, es decir, describe los estados a los

que puede aplicarse la regla. La parte derecha describe la operacin que se lleva a cabo si se aplica la regla, es decir, como obtener el estado sucesor. Por ejemplo, en el problema de jugar al ajedrez: El espacio de estados son la totalidad de tableros que se puede generar en un juego de ajedrez. El estado inicial es el tablero de 8 x 8 donde cada celda contiene un smbolo de acuerdo a las piezas situadas. El objetivo o estado final se define como cualquier posicin de tablero en la que el contrario no puede realizar ningn movimiento legal y su rey est amenazado. Las reglas son los movimientos legales, que pueden describirse mediante una parte patrn para ser contrastado con la posicin actual de tablero y otra parte que describe el cambio que debe producirse en el tablero. Dado que escribir exhaustivamente todas las reglas es imposible prcticamente, (en el ejemplo, escribir todas las posiciones de tablero), las reglas deben escribirse de la manera ms general posible. La representacin como espacio de estados forma parte de la mayora de los mtodos de IA. Su estructura se corresponde con la resolucin de problemas porque:

permite definir formalmente el problema, mediante la necesidad de convertir una situacin dada en una situacin deseada mediante un conjunto de operaciones permitidas. permite definir el proceso de resolucin de un problema como una combinacin de tcnicas conocidas y bsqueda (la tcnica general de exploracin del espacio intenta encontrar alguna ruta desde el estado actual hasta un estado objetivo).

Ejercicio 1: Problema de las jarras de agua Se tienen dos jarras de agua, una de 4litros y otra de 3litros sin escala de medicin. Se desea tener 2 litros de agua en la jarra de 4 litros. Las siguientes operaciones son vlidas: llenar las jarras, tirar agua de las jarras, pasar agua de una jarra a otra. Solucin: El espacio de estados se define como { (X,Y)/ X son los litros en la jarra de 4l con 0<=X<=4 AND Y son los litros de la jarra de 3l con 0<=Y<=3 }

El estado inicial es (0,0) El estado final es (2,0). El estado final podra ser (2,N) en caso de que no importen los litros de la segunda jarra. Las reglas que se pueden aplicar son:

1. Llenar la jarra de 4l: Si (X,Y) AND X<4 => (4,Y) 2. Llenar la jarra de 3l: Si (X,Y) AND Y<3 => (X,3) 3. Vaciar la jarra de 4l: Si (X,Y) AND X>0 => (0, Y) 4. Vaciar la jarra de 3l: Si (X,Y) AND Y>0 => (X, 0) 5. Pasar agua de la jarra de 4l a la jarra de 3l hasta llenarla: Si (X,Y) AND X>0 AND X+Y>=3 => (X-(3-Y),3) 6. Pasar agua de la jarra de 3l a la jarra de 4l hasta llenarla: Si (X,Y) AND Y>0 AND X+Y>=4 => (4, Y-(4-X)) 7. Pasar toda el agua de la jarra de 4l a la jarra de 3l: Si (X,Y) AND X>0 AND X+Y<3 => (0,X+Y) 8. Pasar toda el agua de la jarra de 3l a la jarra de 4l: Si (X,Y) AND Y>0 AND X+Y<4 => (X+Y,0) El programa debera encontrar un pasaje de estados para ir del estado (0,0) al estado (2,0). Puede existir ms de un pasaje de estados hacia la solucin, por ejemplo: (0,0) => (0,3) => (3,0) => (3,3) => (4,2) => (0,2) => (2,0) en la cual, a partir del estado inicial, se aplicaron las reglas 2, 8, 2, 6, 3 y 8, hasta conseguir el estado objetivo. Otro pasaje de estados hacia la solucin es la siguiente (0,0) => (4,0) => (1,3) => (1,0) => (0,1) => (4,1) => (2,3) => (2,0) en la cual se aplicaron las reglas 1, 5, 4, 7, 1, 5 y 4 Con respecto a las reglas se puede concluir que:

Las condiciones que se establecen en la parte izquierda a veces no son altamente necesarias pero restringen la aplicacin de la regla a estados ms adecuados. Esto incrementa la eficiencia del programa que utiliza las reglas. En el ejemplo anterior, la regla 1. Llenar la jarra de 4l: Si (X,Y) AND X<4 => (4,Y) contiene la condicin (X<4), especificando que la jarra no se encuentra llena. Si esta condicin no se incluye, se puede aplicar la regla an cuando la jarra est llena. Dado que en este caso el estado del problema no cambia la aplicacin de la regla se considera intil. Las reglas no slo deben describir el problema sino tambin algn tipo de conocimiento sobre su solucin. Si en el ejemplo anterior se considera la siguiente nueva regla: Vaciar "un poco" la jarra de 4l: Si (X,Y) AND X>0 =>

(X-Q, Y) es decir, tirar agua sin cuantificar, intuitivamente se concluye que la aplicacin de esta regla nunca nos acercar a la solucin del problema. A veces, cuando se alcanzan algunos estados resulta obvio cmo se debe continuar hacia la solucin. Es posible agregar reglas de propsito especial que capturen el conocimiento sobre casos especiales que conducen a la resolucin del problema. En el ejemplo anterior, se pueden agregar las siguientes reglas de propsito especial: Si (X,2) => (2,0) Si (2,Y) AND Y>0 => (2,0)

Estas reglas no aaden ms potencia al sistema ya que las operaciones que describen las proporcionan otras reglas ms generales. En el ejemplo, la primera regla agregada es equivalente a la aplicacin de las reglas generales 3 y 8; y la segunda regla agregada es equivalente a la aplicacin de la regla general 4. Dependiendo de la estrategia de control que se utilice para seleccionar reglas durante la resolucin del problema se puede mejorar el rendimiento si se les da preferencia a las reglas de casos especiales.

Ejercicio 2: Problema de los Canbales y Monjes Se tienen 3 monjes y 3 canbales en el margen Oeste de un ro. Existe una canoa con capacidad para dos personas como mximo. Se desea que los seis pasen al margen Este del ro, pero hay que considerar que no debe haber ms canbales que monjes en ningn sitio porque entonces los canbales se comen a los monjes. Adems, la canoa siempre debe ser conducida por alguien. Solucin: El espacio de estados est definido por {(Mo, Co, Me, Ce, C) / Mo es el nmero de monjes en el margen oeste con 0<=Mo<=3 AND Co es el nmero de canvales en el margen oeste con 0<=Co<=3 AND (Co<=Mo OR Mo=0) AND Me es el nmero de monjes en el margen este con 0<=Me<=3 AND Ce es el nmero de canvales en el margen este con 0<=Ce<=3 AND (Ce<=Me OR Me=0) AND Co+Ce=3 AND Mo+Me=3 AND C = [E|O] es el margen dnde est la canoa} El estado inicial es (3,3,0,0,O) El estado final es (0,0,3,3,E) Las reglas que se pueden aplicar son: 1. Viajan un monje y un canbal de O a E: Si (Mo, Co, Me, Ce, O) AND Mo>=1 AND Co>=1 AND Ce+1<=Me+1 => (Mo-1, Co-1, Me+1, Ce+1, E)

2. Viajan un monje y un canbal de E a O: Si (Mo, Co, Me, Ce, E) AND Me>=1 AND Ce>=1 AND Co+1<=Mo+1=> (Mo+1, Co+1, Me-1, Ce-1,O) 3. Viajan dos monjes de O a E: Si (Mo, Co, Me, Ce, O) AND Mo>=2 AND (Mo-2=0 OR Co<=Mo-2) AND Ce<=Me+2=> (Mo-2, Co, Me+2, Ce, E) 4. Viajan dos monjes de E a O: Si (Mo, Co, Me, Ce, E) AND Me>=2 AND (Me-2=0 OR Ce<=Me-2) AND Co<=Mo+2 => (Mo+2, Co, Me-2, Ce, O) 5. Viajan dos canbales de O a E: Si (Mo, Co, Me, Ce, O) AND Co>=2 AND (Me=0 OR Ce+2<=Me) => (Mo, Co-2, Me, Ce+2, E) 6. Viajan dos canbales de E a O: Si (Mo, Co, Me, Ce, E) AND Ce>=2 AND (Mo=0 OR Co+2<=Mo) => (Mo, Co+2, Me, Ce-2, O) 7. Viaja un monje de O a E: Si (Mo, Co, Me, Ce, O) AND Mo>=1 AND (Mo-1=0 OR Co<=Mo-1) AND Ce<= Me+1 => (Mo-1, Co, Me+1, Ce, E) 8. Viaja un monje de E a O: Si (Mo, Co, Me, Ce, E) AND Me>=1 AND (Me-1=0 OR Ce<=Me-1) AND Co<=Mo+1 => (Mo+1, Co, Me-1, Ce,O) 9. Viaja un canbal de O a E: Si (Mo, Co, Me, Ce, O) AND Co>=1 AND (Me=0 OR Ce+1<=Me) => (Mo, Co-1, Me, Ce+1, E) 10. Viaja un canbal de E a O: Si (Mo, Co, Me, Ce, O) AND Ce>=1 AND (Mo=0 OR Co+1<=Mo) => (Mo, Co+1, Me, Ce-1, E) Nota: En referencia a la regla 3 la condicin Ce<=Me+2 puede intuirse como redundante. Esta condicin no se cumple slo en el caso Ce=3 y Me=0. Pese a que es un estado que pertenece al espacio de estados vlidos, podemos intuir que nunca se llega a tener 3 canbales y ningn monje del lado Este y la barca del lado Oeste. De todas maneras slo se puede eliminar si podemos demostrar formalmente la imposibilidad de esta situacin. Un pasaje de estados para ir de (3,3,0,0,O) a (0,0,3,3,E) es el siguiente: (3,3,0,0,O) => (3,1,0,2,E) => (3,2,0,1,O) => (3,0,0,3,E) => (3,1,0,2,O) => (1,1,2,2,E) => (2,2,1,1,O) => (0,2,3,1,E) => (0,3,3,0,O) => (0,1,3,2,E) => (0,2,3,1,O) =>(0,0,3,3,E) 1.4.2. Estrategia de control: Mtodos de bsqueda El problema puede resolverse con el uso de reglas en combinacin con una estrategia de control para trasladarse a travs del espacio de estados hasta encontrar un camino desde el estado inicial hasta el estado final. Se elige una regla entre aquellas cuya parte izquierda concuerda con el estado actual. Se

aplica la regla elegida realizando el cambio de estado tal como se describe en la parte derecha de la regla. Si el nuevo estado es estado objetivo o final se ha encontrado la solucin. En caso contrario se contina con la aplicacin de reglas al nuevo estado. Una estrategia de control especifica el orden en el que se deben aplicar las reglas, as como tambin la forma de resolver conflictos cuando es posible aplicar ms de una regla. Para que una estrategia de control sea vlida debe cumplir con dos requisitos:

Causar cambios:

las estrategias de control que no causan cambios de estado nunca alcanzan la solucin. Un ejemplo de estrategia de control que no causa cambios es seleccionar siempre la primera regla aplicable de la lista de reglas definidas. En el ejemplo de las jarras de agua, se continuara indefinidamente aplicando las reglas 1 y 3 sin posibilidad de arribar a la solucin.

Ser sistemtica:

las estrategias de control que no son sistemticas pueden utilizar secuencias de operaciones no apropiadas varias veces hasta alcanzar la solucin. Un ejemplo de estrategia de control no sistemtica es seleccionar la regla a aplicar al azar. Esta estrategia puede encontrar la solucin eventualmente, pero luego de haber realizado varios pasos innecesarios e incluso haber vuelto varias veces al mismo estado. En caso de no contar con una aproximacin directa al problema, el proceso de bsqueda resulta fundamental en la resolucin del mismo. Los algoritmos de bsqueda detallados a continuacin son ejemplos de estrategias de control sistemticas. Todos se basan en considerar un rbol de estados cuya raz es el estado inicial, y en cada nivel se hallan los estados sucesores correspondientes.

Bsqueda Breadth-First Search (primero en ancho) Este algoritmo de bsqueda visita cada nodo del rbol por niveles, es decir, visita todos los nodos de un nivel antes de visitar los del siguiente. A continuacin se detalla un pseudo-cdigo de este algoritmo:

Lista_nodos = [estado_inicial]; Mientras Not Vacia(lista_nodos)


estado_actual = lista_nodos.primero; Si EstadoFinal(estado_actual) entonces Terminar; Sino

lista_reglas = ReglasAplicables (estado_actual); Mientras NOT Vacia(lista_reglas) estado_sucesor = AplicarRegla (lista_reglas); lista_nodos = lista_nodos + [estado_sucesor]; Fin Mientras; Fin Sino; Fin Mientras; Este algoritmo bsico debera modificarse para detectar el caso en que se vuelva a alcanzar un estado que ya ha sido visitado con anterioridad. En este caso, debera realizarse una "poda" de la rama del rbol, ya que en caso contrario se volvera a generar un subrbol ya generado. Con la bsqueda a lo ancho se asegura que una vez alcanzada una solucin no existe otra ruta hacia la solucin que tenga menor cantidad de pasos. Una desventaja de este algoritmo es que para alcanzar una solucin de n pasos, debe haber explorado todo el espacio de estados hasta ese nivel. Ejercicio: Realizar el rbol de bsqueda a lo ancho para encontrar la solucin del problema de las jarras de agua. Bsqueda Depth-First Search (primero en profundidad) Este algoritmo de bsqueda contina por una rama del rbol hasta encontrar la solucin o decidir terminar la bsqueda por esa direccin (por llegar al estado final, por tener un largo de ruta que supera una cota mxima determina, por haber llega a un estado ya visitado, etc.). Al fracasar una ruta, se realiza un backtracking o vuelta atrs, continuando la exploracin en el paso inmediatamente anterior. A continuacin se detalla un pseudo-cdigo de este algoritmo recursivo que incialmente es llamado con el estado_inicial:

Funcin Buscar (estado_actual) devuelve Boolean Comienzo


Si EstadoFinal(estado_actual) entonces Devolver TRUE; Sino exito = FALSE; lista_reglas = ReglasAplicables (estado_actual); Mientras NOT exito AND NOT Vacia(lista_reglas) estado_sucesor = AplicarRegla (lista_reglas); exito = Buscar (estado_sucesor); Fin Mientras; Devolver exito; Fin Sino; Fin Buscar;

Este algoritmo bsico debera modificarse para terminar la bsqueda en una rama que se alcanza un estado que ya visitado. Con la bsqueda en profundidad no es necesario tener almacenado todo el espacio de estados, sino slo el camino que se est explorando. Puede encontrar la solucin sin tener que explorar gran parte del espacio de estados. Como desventajas de este algoritmo se seala que puede seguir una ruta infructuosa durante muchos pasos, y adems la primera solucin que encuentra puede distar mucho de ser la solucin de mnima cantidad de pasos. Bsqueda Heurstica Existen algunos problemas en los que resulta imposible explorar el rbol del espacio de estados pues resulta en una explosin combinatoria. Por ej. en el problema del viajante, se debe encontrar la ruta mnima entre N ciudades a visitar. Si se aplica cualquiera de los dos algoritmos de bsqueda anteriores, nos encontramos ante un costo computacional no polinomial O(N!). Una heurstica es una tcnica que aumenta la eficiencia de un proceso de bsqueda. El objetivo es guiar al proceso de bsqueda en la direccin ms provechosa sugiriendo el camino a seguir cuando hay ms de una opcin. Las heursticas pueden ser:

generales: son adecuadas para una amplia variedad de dominios. Por ej. la heurstica del vecino ms prximo (nearest neighbor) se aplica a muchos problemas combinatorios. En el ejemplo del problema del viajante, se comienza por una ciudad arbitraria continuando en cada paso por la ciudad ms cercana no visitada. Esto resulta en una reduccin del costo computacional a O(N2). de propsito especial: explotan el conocimiento especfico de un dominio para resolver problemas particulares.

Las heursticas pueden sacrificar la completitud, es decir, pueden pasar por alto una buena solucin. Sin embargo, existen varios argumentos a favor de usarlas:

Sin el uso de heursticas se puede tener una explosin combinatoria. En muchos casos no se necesita la solucin ptima sino una buena aproximacin. Segn Simon (1981), las personas resuelven problemas "satisfaciendo" y no "optimizando". Las aproximaciones que se logran con heursticas pueden ser malas para los peores casos de un problema, pero stos raramente sedan en el mundo real. El esfuerzo de intentar comprender por qu funciona o no una heurstica sirve para profundizar en la comprensin del problema.

Las heursticas se pueden incorporar a un proceso de bsqueda basado en reglas de dos maneras:

Dentro de las mismas reglas. Por ej. en el ajedrez, las reglas pueden describir, adems de los movimientos legales, tambin las buenas jugadas. Como una funcin que evala estados determinando su grado de "deseable". Esta funcin evala aspectos del problema dando pesos a aspectos individuales, de manera que el valor que devuelve es una estimacin de que el nodo pertenece a la ruta que conduce a la mejor solucin. Por ej. en el ajedrez se puede tener una funcin a maximizar la cual devuelve el nmero de piezas de ventaja; en el problema del viajante se puede tener una funcin a minimizar la cual devuelve la suma de distancias recorridas; en el tres en raya se puede tener una funcin que compute un punto por cada ficha en cada fila, columna o diagonal que se pueda ganar.

En conclusin, las heursticas representan el conocimiento general y especfico del mundo, que hace que sea abordable solucionar problemas complejos. 1.4.3. Anlisis del problema Luego de definir el problema formalmente, el segundo paso en la resolucin del problema es el anlisis del mismo. A fin de poder elegir el mtodo ms apropiado para resolver un problema particular, es necesario analizar distintas cuestiones que afectan a al definicin del mismo y a las caractersticas de la solucin deseada. Existen varias preguntas a responder acerca del problema: 1. Puede descomponerse el problema en subproblemas ms pequeos? 2. Pueden deshacerse pasos inadecuados hacia la solucin? 3. Es predecible el universo del problema? 4. Una solucin es buena de manera absoluta o relativa? 5. La solucin deseada es un estado o la ruta hacia un estado? 6. El conocimiento se necesita para resolver el problema o para restringir la bsqueda de la solucin? 7. El programa que soluciona el problema busca la solucin solo o necesita interactuar con una persona? 1. Puede descomponerse el problema en subproblemas ms pequeos? Algunos problemas pueden descomponerse en subproblemas independientes, de manera que encontrar una solucin global es la composicin de soluciones particulares. Por ej. en la resolucin de integrales, una integral puede descomponerse por partes, y resolver las partes simples directamente o descomponerlas recursivamente. Por otra partes, existen otros problemas que no pueden descomponerse y componer la solucin a partir de las soluciones parciales de sus partes. Por el

contrario, una solucin necesita considerar globalmente el problema. Por ej. el problema del mundo de los bloques. 2. Pueden deshacerse pasos inadecuados hacia la solucin? Algunos problemas permiten deshacer uno o varios pasos hacia una solucin una vez realizados. En este aspecto, existen tres categoras en las que puede dividirse un problema:

Recuperables: En un punto dado es posible deshacer todos los pasos inadecuados hacia la solucin. Por ej. en el juego 8-puzzle. La estructura de control se implementa con una pila push-down en la que se almacenan las decisiones para poder volver atrs. No recuperables: En un punto dado no es posible deshacer ningn paso realizado. Por ej. en una partida de ajedrez no se puede volver atrs una vez movidas las piezas. En estos problemas el sistema debe esforzarse en la toma de decisiones pues stas son irrevocables. Algunos usan una planificacin en la que se analiza por adelantado una secuencia de pasos antes de realizar el primer paso para descubrir a donde conduce. Ignorables: en un punto dado es posible ignorar los pasos realizados hasta el momento y comenzar de nuevo con una nueva solucin. Por ej. un demostrador de teoremas puede abandonar una demostracin basada en un lema dado y comenzar nuevamente. Estos problemas se resuelven con estrategias de control sencillas que nunca vuelven hacia atrs.

3. Es predecible el universo del problema? Los problemas pueden se de:

Consecuencia cierta: es posible planificar una secuencia de movimientos estando seguros del resultado a obtener. Se puede realizar una planificacin para generar operadores que garanticen llegar a la solucin. Consecuencia incierta: no es posible planificar con certeza pues no se sabe que ocurrir luego del siguiente movimiento. Sin embargo, se puede realizar una planificacin para generar operadores que tengan una buena probabilidad de llegar a la solucin.

Los problemas ms difciles de resolver son los no recuperables de consecuencia incierta. Por ej. el control del brazo de un robot: es de consecuencia incierta pues alguien puede interponer un objeto en la ruta del brazo, se puede atascar, etc. 4. Una solucin es buena de manera absoluta o relativa? La solucin de un problema puede consistir en encontrar:

Algn camino: slo importa encontrar una solucin sin importar si existen otros caminos que conducen a la solucin. Generalmente se resuelven con heursticas. Por ej. programa de respuestas a preguntas. El mejor camino:importa encontrar la ruta ms corta hacia la solucin. Son problemas ms complicados de computar. Algunos requieren una bsqueda ms exhaustiva que usando heursticas. Por ej. en el problema del viajante importa encontrar la ruta ms corta entre las ciudades a visitar.

5. La solucin deseada es un estado o la ruta hacia un estado? La solucin de un problema puede consistir en encontrar:

un estado final: no es necesario el registro del proceso seguido, slo importa arribar a la solucin final. Por ej. interpretar texto. una ruta hacia un estado final: se necesita dar el camino seguido desde el estado inicial al estado final. Por ej. problema de las jarras de agua.

6. El conocimiento se necesita para resolver el problema o para restringir la bsqueda de la solucin? El conocimiento puede emplearse para:

Reconocer la solucin: se necesita gran cantidad de conocimiento acerca del problema para poder encontrar una solucin. Por ej. comprensin de texto. Acotar la bsqueda: la solucin bsica puede encontrarse con poco conocimiento, pero para restringir el rbol de bsqueda y encontrar la solucin de manera ms eficiente es necesario contar ms conocimiento. Por ej. en el ajedrez se necesita bsicamente poco conocimiento para conocer los movimientos legales y un mecanismo sencillo de bsqueda. Pero dado que para aumentar la eficiencia de la bsqueda sta debe restringirse, se necesita conocimiento de heursticas de buenas estrategias y tcticas para jugar.

7. El programa que soluciona el problema busca la solucin solo o necesita interactuar con una persona? Con respecto a la relacin programa-usuario, existen dos tipos de programas que solucionan el problema:

Solitarios: reciben como entrada el problema y dan como salida la solucin. No importa el razonamiento que haya seguido la mquina para encontrar la solucin. Por ej. problema de las jarras de agua. Conversacionales: existe una comunicacin hombre-mquina de manera que el usuario puede ayudar a la mquina o la mquina puede informar al usuario durante la bsqueda de la solucin. Para que esta comunicacin sea posible debe existir una correspondencia entre el razonamiento seguido

por la mquina y la forma de razonamiento humano. Por ej. en un sistema experto de diagnstico mdico, el usuario no aceptara el veredicto de una mquina si no puede comprender el razonamiento que la llev a l.

1. 2 AGENTES INTELIGENTES Una de las ramas de la inteligencia artificial que empieza a tener ms auge hoy en da, es la de los Agentes Inteligentes. A pesar de que esta tuvo su origen a principios de los 80s, es apenas hasta ahora cuando se empieza ha ver su aplicacin debido al gran desarrollo que han tenidos las redes. Los Agentes Inteligentes se caracterizan por desenvolverse en un entorno, ejecutar acciones sobre el, basndose en percepciones para lograr metas deseadas por el usuario. INTRODUCCION Hoy en da lo que podemos encontrar en Internet son servicios sofisticados y herramientas para acceder a ellos, como servidores de informacin o navegadores. Pero lo que los usuarios desean realmente son soluciones concretas: encontrar en la red el hotel ms cmodo al mejor precio o la mejor inversin en bolsa. Para lograr estos los Agentes Inteligentes dialogan con el usuario de forma sencilla y natural definiendo as lo que este realmente desea, despus de haber definido el problema, el agente empieza a solucionarlo consultando sus fuentes de informacin o dialogando con otros agentes, y le va informando de manera evolutiva las soluciones logradas al usuario. Si ste no queda satisfecho, contina la bsqueda hasta agotar las fuentes o hasta que el usuario quede satisfecho con la solucin. La inteligencia del agente es demostrada a travs de su funcionalidad. El usuario se dar cuenta de esta a medida que el agente le resuelva las tareas que le plantee, de manera eficiente; su funcionalidad mejorar a medida que resuelve mayor nmero de casos. Esta capacidad de adaptacin permite al agente conocer mejor las preferencias de los usuarios y atenderlos de forma personalizada. Los Agentes Inteligentes se caracterizan por actuar en un ambiente en particular y ser capaces de realizar ciertas acciones, basados en su entorno, hasta realizar la tarea que les fue encomendada, esas tareas van desde recomendaciones para el usuario hasta solucin de problemas. A pesar de que los Agentes Inteligente son una rama de la Inteligencia Artificial relativamente muy nueva, se tienen grandes expectativas sobre estos ya que tiene enormes perspectivas de aplicacin QU ES UN AGENTE? Existen muchas definiciones de Agentes, pero una de las mas simples es la de Franklin and Graesser Un agente es un sistema situado en y parte de un entorno

que siente ese entorno y acta sobre l, a travs del tiempo, persiguiendo sus propios objetivos de forma que afecte lo que siente en el futuro. Basndonos en algunos ejemplos que mostraremos posteriormente, el entorno en el cual esta situado el agente, es Internet, la percepcin se puede ver cuando acta sobre el entorno a medida que va recibiendo e instruyndose de las peticiones que hace el usuario sobre el y las acciones se clarifican cuando el agente nos muestra informacin que el mismo ha buscado en Internet. Como podemos ver en la imagen 1 el agente percibe su ambiente mediante sensores y acta en l mediante actuadores, para entender esto de una mejor manera, observemos un agente humano, este posee ojos y odos los cuales le sirven como sensores, as como piernas, manos, boca y otros rganos que le sirven como actuadores.

Imagen 1 V. Julin, V. Botti Dpto. sistemas

Informticos y Computacin Universidad Politcnica de Valencia vbotti,vinglada@dsic.upv.es

http://agamenon.uniandes.edu.co/yubarta/agentes/agentes3.htm AGENTE INTELIGENTE Imaginmonos al llegar por la maana al trabajo, sentarse al teclado del PC e ingresar a nuestra cuenta de correo electrnico, muchas personas se ven

inundadas por decenas, incluso cientos de mensajes de correo electrnico. Algunos de esos mensajes tienen algo interesante: se refieren a una pregunta que alguien haba hecho anteriormente, contienen informacin que puede conducir a una venta, o son simplemente un mensaje de un amigo hacindonos una invitacin. Otros, solo, contienen correo basura. La cuenta de correo, solo nos proporciona informacin mnima sobre el contenido del mensaje: el nombre del autor, su direccin de correo, a veces una lnea de Subject o tema que tiene que ver con el contenido, a veces no. Imaginemos, por el contrario: al sentarnos al teclado del PC, una ventana se abre en pantalla y nos muestra dos o tres mensajes de correo, clasificados como importantes o urgentes. Tambin nos da la opcin de leer los menos urgentes, y muestra claramente un cubo de basura al cual han sido enviados otros mensajes. Al da siguiente, los mensajes similares a los "menos urgentes" ledos anteriormente son considerados ms importantes, y colocados ms arriba en la lista de lectura. Adems, uno de los mensajes de la lista de correo se considera importante, y se coloca en la lista de "importantes", y nos avisa de que el peridico al cual estamos suscritos en lnea contiene una noticia "interesante". Aqu se puede ver la existencia de un agente inteligente. Otros ejemplos en los cuales se puede ver la aplicacin de Agentes Inteligentes: estos pueden organizar agendas de visitas, citas, fechas alternativas, tareas pendientes, etc. En las universidades se han desarrollado agentes que usan el correo electrnico para resolver tareas, como: planificacin de clases, citas de los alumnos, agenda, etc. El "agente" recoge en el computador la peticin de entrevista de un alumno, acepta y anota la cita o, si el profesor est ocupado, propone una nueva y negocia la fecha con el estudiante. En los negocios, se han comenzado a desarrollar asistentes personales para realizar inversiones, para proporcionar informacin especializada sobre determinados temas (econmicos, jurdicos, polticos, de ocio etc.) El comercio electrnico y la publicidad son otros campos de aplicacin, as como el seguimiento de las incidencias de los clientes o la realizacin de posibles ofertas, en el caso de que decidan utilizar los servicios de la competencia. Un Agente Inteligente, al igual que un sistema operativo no se puede llamar un programa. Una de las caractersticas que distingue a los Agentes inteligentes de los dems programas es su autonoma, y al ser autnomos son proactivos, esto quiere decir, que no slo actan cuando responden a una accin del usuario, sino que tambin actan siguiendo sus propios objetivos; y tambin son persistentes que no se pueden "apagar"; incluso aunque el usuario no est interaccionando con ellos; los agentes siguen funcionando, recolectando informacin, aprendiendo y comunicndose con otros agentes.

El afectar lo que se perciba en el futuro implica inteligencia, al menos en el sentido que se aprenda de los fallos para no volver a cometerlos en el futuro, lo cual implica adaptatividad. El aprendizaje normalmente se realizar a travs de la interaccin con un usuario. Y adems, la percepcin y accin implican comunicacin, que se puede realizar con programas no-agentes o con otros agentes, lo cual puede dar lugar a sociedades de agentes. Los agentes inteligentes han tenido tres generaciones: Primera generacin: Estos agentes ya existen, y bsicamente se basan en hacer comparaciones de precios cuando se desea realizar una compra. Segunda Generacin: Estos agentes tambin se pueden ver hoy en da, a diferencia de la primera generacin, estos agentes aparte de comparar el precio tambin comparan el producto como tal. Tercera Generacin: Este tipo de agentes aun no existe, pero lo que se pretende es que hagan todo el proceso de la compra, para el usuario. Un agente tiene un conjunto de propiedades las cuales los caracterizan y diferencian de los dems programas, aunque, un agente puede poseer solo algunas de estas propiedades: PROPIEDADES DE LOS AGENTES INTELIGENTES Continuidad Temporal: El agente debe estar ejecutndose constantemente y desarrollando sus funciones, no se detiene as el usuario no este interactuando con el. Personalidad: Tiene una personalidad creble, bien definida, que facilita la interaccin con usuarios humanos. Autonoma: Si el agente se encuentra en un entorno cambiante es capaz de adaptarse y tomar decisiones dependiendo de su experiencia. Sociabilidad: El agente interacta con otros agentes e incluso con otras entidades. Racionalidad: el agente siempre realiza lo correcto a partir de los datos que percibe del entorno. Adaptatividad: Se adapta fcilmente a las indicaciones de los usuarios y a los cambios en el entorno basndose en su experiencia. Movilidad: capacidad de un agente de trasladarse a travs de una red telemtica. CLASIFICACION DE LOS AGENTES INTELIGENTES Los agentes se clasifican segn el entorno en el cual se encuentren:

Agentes De Reflejo Simple: Son agentes que funcionan segn un conjunto de reglas codici-accin. El agente capta el estado actual del entorno en el cual se encuentra por medio de los censores, luego busca entre las reglas cual coincide con la percepcin para luego ejecutar la accin conveniente. Este agente funciona correctamente solo si se toma la decisin adecuada basndose en la percepcin de ambiente en un momento dado. Agentes Informados De Lo Que Pasa: Es un agente capas de ejecutar acciones basndose en percepciones y acciones ejecutadas anteriormente analizando el entorno no solo en el momento actual, tambin en momentos anteriores. Agentes Basados En Metas: El agente debe saber las metas que se desean alcanzar, no es suficiente solo con saber el estado actual del entorno en el cual se encuentra. El agente deber ser capaz de analizar la situacin actual del entorno con las posibles acciones que se podran ejecutar y de esta manera seleccionar la accin que mas le convenga para alcanzar las metas de una manera mas sencilla. Agentes De Interfaz: Se caracteriza por su capacidad de hacer comprensible las interfaces. Tambin denominados asistentes personales, tiene como objetivo simplificar las tareas rutinarias que realiza un usuario, por ejemplo, detectar que una noticia pueda ser importante para un usuario y comunicrselo. Agentes Mviles: Esto quiere decir que el agente puede transitar entre varias maquinas para utilizar recursos de los cuales no dispone en su propia maquina o simplemente para evitar una sobre carga de comunicacin. En este tipo es principal problema es la seguridad. Agentes De Informacin: Su objetivo es recolectar informacin a travs de la red , indexarla y ofrecrsela al usuario cuando realiza una consulta. Estos agentes han tenido gran acogida debido ha las grandes cantidades de informacin que circulan hoy por hoy en la red. Agentes Consejeros: Este tipo de agente da consejos al usuario referentes a una herramienta, o un sistema de diagnostico o ayuda. Agentes De Navegacin: Estos agentes son utilizados para navegar en la red, su funcin principal es recordar sitios y direcciones de inters para el usuario. Agentes De Monitoreo: Estos agentes proporcionan informacin de manera eficaz y oportuna para el usuario, en el momento que ocurre un evento. Agentes De Recomendacin: Este agente posee una base de datos con informacin acerca de un tpico de inters para un grupo, al hacer las recomendaciones se basan en analogas con otros usuarios de perfil similar.

ESTRUCTURA DE LOS AGENTES INTELIGENTES

La estructura tradicional de los agentes consiste de un Programa de Agente que se ejecuta sobre una Arquitectura, obedeciendo a la siguiente ecuacin: Agente = Programa de Agente + Arquitectura El Programa de Agente implanta una funcin que mapea las percepciones del agente en un conjunto de acciones. La Arquitectura utilizada por el Programa de Agente le permitir ejecutarse. sta puede variar desde un computador o algn otro hardware especfico para el procesamiento de percepciones, como por ejemplo una cmara de vdeo. Para disear y desarrollar un pro grama de agente es necesario especificar previamente los elementos constituyentes del mismo, tales como, las percepciones que capturaran los sensores del agente as como las acciones con las cuales responder a travs de los efectores. Las metas a alcanzar y las medidas de desempeo del agente. Finalmente el ambiente en el cual operar el agente. A estos elementos se les denomina el PAMA del agente, donde PAMA es igual a Percepciones, Acciones, Metas y Desempeo y Ambiente. En la Tabla se muestran algunos ejemplos de tipos de agentes y su respectivo PAMA.
Tipo de Agente
Sistema de diagnostico mdico Sistema de anlisis de imgenes de satlite Controlador de Refinera

Percepciones
Sntomas, evidencias, y respuestas del paciente Pixeles y colores

Acciones
Preguntas, pruebas y tratamientos Clasificacin de escena

Metas Paciente saludable reduccin al mnimo costo


Clasificacin correcta

Ambiente
Paciente, Hospital

Imgenes enviadas desde un satlite Refinera

Lecturas de temperatura y presin

Abrir y cerrar vlvulas, ajuste de temperatura

Lograr rendimiento y seguridad

CONTRUCCION DE AGENTES INTELIGENTES Los Agentes Inteligentes son una clase de software con caractersticas especificas. Para llevar a cabo el desarrollo y construccin de Agentes, es recomendable utilizar mtodos similares a los utilizados comnmente en desarrollo de Ingeniera de Software y Sistemas de Informacin. De esto se desprende que los procesos a ejecutar son los tpicos Anlisis, Diseo, Implantacin y Prueba. Es importante antes de describir un mtodo que permita desarrollar y construir Agentes Inteligentes, considerar el significado del vocablo mtodo. Mtodo viene de la palabra griega meta y odos. Odos significa va, camino o curso y meta significa con, alrededor, despus, por lo que mtodo sera la descripcin de una va o curso de accin a seguir para alcanzar un objetivo. Los

mtodos tienen cuatro componentes: una teora, un lenguaje, una estructura y tcnicas.1

La teora es una conceptualizacin que se adopta para describir el mtodo, representa las abstracciones de mayor nivel sobre las que ste se basa. El lenguaje es la manera de comunicacin del mtodo. La estructura es la organizacin de los diferentes componentes del mtodo. Un mtodo debe poseer una organizacin secuencial de procesos, donde cada proceso est constituido por una serie de actividades, las cuales se llevan a cabo por la aplicacin de tcnicas. Las tcnicas son procedimientos (normas, guas, indicaciones) que facilitan la realizacin de las actividades. La aplicacin de las tcnicas requiere de la utilizacin de herramientas.

Mtodo de desarrollo y construccin de Agentes Inteligentes. A continuacin, se presenta una propuesta de Mtodo para el desarrollo y construccin de agentes inteligentes. Hay que dejar en claro que este no es ms que un conjunto de pasos estructurados, a los cuales no se asocian herramientas especficas para la ejecucin de sus pasos pues se considera que la eleccin de una u otra herramienta para uno u otro paso del mtodo depender de las condiciones especficas del problema que se pretenda resolver, as como de los recursos con los que se cuente. El Mtodo que se propone consta de cinco Procesos bsicos, que se desglosan en diversas actividades. Dichos procesos son: 1. Proceso de Definicin del Problema del Agente 2. Proceso de Adquisicin y Representacin del conocimiento 3. Proceso de Diseo del Agente 4. Proceso de Implantacin del Agente 5. Proceso de Prueba del Agente. Proceso 1. Definicin del Problema del Agente El objetivo de este proceso es lograr establecer una conceptualizacin amplia y clara del problema que se pretende resolver con el uso de agentes inteligentes, y el mismo se divide en las siguientes actividades: Actividad 1.1. Identificacin del Problema Actividad 1.2. Anlisis del Problema Actividad 1.3. Construccin del modelo Conceptual de la situacin

Ramos Esmeralda. Mtodo de Adquisicin de Conocimiento en Grupo. Trabajo de Ascenso a la categora de Agregado. Escuela de Computacin. Facultad de Ciencias. Universidad Central de Venezuela. 1.998

Proceso 2. Adquisicin y Representacin del Conocimiento En base al modelo conceptual obtenido en el proceso previo, este proceso persigue generar una representacin de este modelo conceptual en trminos de conocimiento, la cual sea transportable al medio computacional. Las actividades que conforman este proceso son: Actividad 2.1 Adquisicin del conocimiento Tarea 2.1.1. Definicin de las Percepciones Tarea 2.1.1. Definicin de la Acciones Tarea 2.1.3. Definicin de Objetivos y Metas Tarea 2.1.1. Definicin del ambiente Actividad 2.2. Representacin del Conocimiento Tarea 2.2.1. Anlisis del conocimiento Adquirido Tarea 2.2.2. Seleccin del esquema de representacin Tarea 2.2.3. Representacin del Conocimiento Proceso 3. Diseo del Agente Este proceso corresponde con el diseo de la solucin en el mtodo clsico de diseo y construccin de sistemas de informacin, y en el se pretende generar un modelo del agente, que sea computacionalmente aplicable. Para lograr esto, el proceso se divide en las siguientes actividades: Actividad 3.1. Diseo de la Base de Conocimiento Actividad 3.2. Diseo del motor de Inferencia o Motor de ejecucin Actividad 3.3. Diseo de la Interfaz Actividad 3.4. Diseo del Lenguaje de Comunicacin Proceso 4. Implantacin del Agente Este proceso est enfocado en la construccin computacional del agente inteligente diseado, que no es ms que la implantacin del diseo obtenido en el proceso previo. Las actividades que permitirn lograr este objetivo son: Actividad 4.1. Anlisis y Seleccin de Herramientas de Implantacin Actividad 4.2. Implantacin del Agente Tarea 4.2.1 Implantacin de la Base de Conocimiento Tarea 4.2.1 Implantacin del Motor de Inferencia o de ejecucin Tarea 4.2.1 Implantacin de la Interfaz Tarea 4.2.1 Implantacin de la Comunicacin Proceso 5. Prueba del Agente Se puede decir que este proceso representa una validacin del agente construido, en el cual se verifica y ajusta el funcionamiento de dicho agente, en funcin de los requerimientos y la situacin analizada en el primer proceso planteado. Para lograr esta validacin, se definen las siguientes actividades: Actividad 5.1. Diseo de Pruebas Actividad 5.2. Aplicacin de pruebas Actividad 5.3. Depuracin del Agente

ENTORNOS DE APLICACIN Administracin de Redes y Sistemas: Los agentes pueden ser utilizados para mejorar los software de gestin y administracin de sistemas, ayudando en el filtrado de informacin y en la ejecucin de acciones automticas bajo un alto nivel de abstraccin. Correo y Mensajera: El software de manejo de mensaje ha existido por algn tiempo y es un rea donde actualmente se utilizan los agentes inteligentes. Los usuarios desean priorizar sus mensajes y quieren que con el manejo del tiempo esto cada vez se haga mas y mas automtico. Recuperacin y Manejo de Informacin: En esta rea no solo se busca la informacin, los agentes tambin ayudan a categorizarla y priorizarla. Comercio Electrnico: Los agentes pueden ir de compras tomando las especificaciones del usuario y regresando con recomendaciones de compra que cumplan estas especificaciones. Tambin pueden actuar como agentes de ventas y primores de productos. FUTURO DE LOS AGENTES INTELIGENTES. Hoy en da las investigaciones se centran mas hacia los Agentes Inteligentes ya que cada vez las aplicaciones se hacen mas avanzadas y complicadas para los usuarios. Con los agentes lo que se busca es una ayuda que le permita al usuario desenvolverse cada vez mejor con las aplicaciones. Para analizar el futuro de los agentes se deben tener enguanta aspectos como: Los Computadores: Se busca que los Agentes Inteligentes cada da se han capaces de adaptarse al entorno dinmico que genera la constante evolucin de los computadores y el desarrollo de Internet. Los Usuarios: Hoy en da los Agentes solo son usados por investigadores, se espera que en un futuro no muy lejano todos los usuario de computadores utilicen agentes inteligentes ya que estos harn mas amigable y sencilla la interaccin con sus PC e Internet.

REFLEXION ACTIVIDADES Inteligencia Artificial Gua de Ejercicios para el Certamen 1. 1. Capitulo 1: Introduccin y Motivacin.
1. Defina con sus propias palabras Inteligencia Artificial.

2. Nombre los cuatros enfoques de la Inteligencia Artificial, y explique cada uno de ellos brevemente. 3. En qu consiste el Test de Turing? 4. Indique algunos hechos relevantes de la historia de la IA. 5. Nombre 3 Aplicaciones de la IA. 6. Desarrolle la hiptesis del Sistema de Smbolos Fsicos que dice: Un sistema de smbolos fsicos tiene los medios suficientes y necesarios para la accin inteligente. 7. Escriba, de manera sucinta, las biografas de los padres de la inteligencia artificial, debe incluir entre otros a: Marvin Minsky, John McCarthy, Claude Shannon , Nataniel Rochester, Allen Newell y Herbert Simon. 8. Lea el artculo original (Turing, A.M. Computing machinery and intelligence. Mind, 59: 433-460. 1950.) de Alan Turing sobre la IA. En este articulo Turing predijo que para el ao 200 es probable que una computadora tenga 30% de oportunidad de aprobar una prueba de Turing con duracin de cinco minutos aplicada por un evaluador inexperto. Considera razonable lo anterior? 9. Son bien conocidos ciertos tipos de problemas inmanejables por los computadores, as como otros que probablemente evidencian que ningun computador puede tomar decisiones. Significa esto entonces que la IA es un imposible?. 10. Algunos consideran que la percepcin y las habilidades motoras son la parte ms importante de la inteligencia y que las capacidades de alto nivel son ms bien parsitas (meros agregados a las capacidades bsicas). Es un hecho que la mayor parte de la evolucin y del cerebro se han concentrado en la percepcin y las habilidades motoras, en tanto se ha encontrado que en la IA tareas como juegos e inferencia lgica resultan ms sencillas, en muchos sentidos, que percibir y actuar en el mundo real. Considerara usted que ha sido un error la concentracin tradicional de la IA en las capacidades cognoscitivas de alto nivel?. Unidad Prctica 1 1 Desarrollar un mapa conceptual sobre inteligencia artificial, donde se establezcan los conceptos y sus relaciones. 2 Desarrollar los mtodos de bsqueda en profundidad y en anchura en un grafo dirigido. Por ejemplo, usar un mapa de carreteras e ir de una ciudad a otra. 3 Resolver problemas de juegos clsicos de la IA, empleando un lenguaje simblico: gato, damas chinas, el agente viajero, misioneros y canbales, el

problema de las jarras. (Si se emplea Jess, se pueden implementar en el algn sitio servidor WEB).

2. Captulo 2: Agentes Inteligentes.


1. Defina con sus palabras un Agente Inteligente. Dentro de qu enfoque de la IA se circunscribe los Agentes Inteligentes. Por qu? 2. Nombre y explique los elementos de un Agente Inteligente y sus Interaccin. 3. Mencione y explique al menos 5 caractersticas de los Agentes. De ejemplos. 4. Cul es la estructura de un Agente Inteligente? 5. En qu consiste el anlisis PAMA? 6. Desarrolle un anlisis PAMA de un Agente de un sistema medidor de los ritmos cardiacos de un paciente Desarrolle un anlisis PAMA de un Agente buscador de Internet. 8. Desarrolle un anlisis PAMA de un Operador de Telfono automtico. 9. Mencione y explique 3 tipos de agentes. En qu se diferencian? 10. Mencione y explique 4 propiedades de los ambientes. 11. Analice el ambiente de los puntos 6, 7 y 8.

3. Captulo 3: Complejidad de los problemas


1. Desarrolle un anlisis de complejidad detallado del peor caso (O-grande) del algoritmo de ordenamiento burbuja. 2. Sealar cul es la complejidad de T1(n) = 3nlogn, T2(n) = 2n +n3 +25 y T3(n,k) = k +n con k n. Ordenar de menor a mayor las complejidades resultantes. Desarrollar una tabla en el que indique el tiempo de ejecucin requerido en una maquina capaz de ejecutar 109 pasos de programa por segundo (1000 MIPS) para T1, T2 y T3. 3. Explique en cul es la diferencia entre problema abierto y cerrado. 4. Explique en qu consiste las clases P, NP y NP completo. 5. Seale y explique 3 problemas NP. Por qu se consideran problemas NP?

Certamen #3. Pregunta para la Casa.

1. Forma de entrega
Ud. deber elaborar un informe en el que se explique claramente cada una de las preguntas que se presentan a continuacin, en forma INDIVIDUAL. Adems deber colocar los programas ms importantes por ud. Desarrollados en el informe. El informe deber ser entregado a ms tardar el da forma impresa y va e-mail, adems deber enviar los programas desarrollados. Los archivos debern comprimirse con el formato nombrealumno.zip o nombrealumno.rar. Esta pregunta tendr el 50% del valor del certamen final.

2. Formulacin del Problema

La empresa PUERTO DECOM-UV lo ha contratado a ud. para analizar, disear e implementar una solucin para el siguiente problema: La empresa PUERTO DECOM-UV tiene que administrar M muelles cada una con capacidad para Km, m = 1::M buques, es decir Ki es el numero de sitios en cada muelle. El objetivo del problema que ud. debe resolver consiste en realizar una planificacin naviera de manera tal que los buques descarguen su mercadera de manera que el costo sea mnimo para el empresa. Se debe tener en cuenta las siguientes consideraciones: 1. Cada buque posee una capacidad de carga Cl (en Toneladas), l = 1::N, donde N es el nmero total de buques. 2. Cada sitio (i; j), donde i = 1::Km es el ndice del sitio ubicado en el muelle j = 1::M, puede recibir buques hasta de una capacidad maxima de Si j . 3. Cada sitio posee un costo de desembarco de Pi j , i = 1::Km, j = 1::M por cada Tonelada de carga. 4. La planificacin es diaria y la estada es por hora. El da va desde las 8:00 hasta las 20:00 horas, es decir, 12 horas continuas. 5. Cada buque puede reservar slo horas continuas, enteras y el mximo es siempre 12horas. 6. La informacin se ingresa por medio de un archivo de texto y tiene los siguientes campos: Nombre, Capacidad de carga, horas de reserva. Ejemplo: Nombre Capacidad Horas buque 1 10000 3 buque 2 20000 5 buque 3 15000 2

3. Preguntas a desarrollar
1. Desarrollar el modelo matemtico identificando claramente la funcin de costo a minimizar. Indicar todas las restricciones del problema. Definir claramente la variable que contendr la informacin de asignacin. 2. Dada las siguientes condiciones: a) Nmero de buques: N = 50 b) Nmero de Muelles M = 3 c) Nmero de sitios por muelle Km = K = 4 Generar la Matriz Si j de tamao 43 con nmeros aleatorios entre 10000 y 90000, generar una matriz Pi j de tamao 43 con nmeros aleatorios entre 0 y 10000. Generar un archivo llamado Buques.txt generada

aleatoriamente con la informacin mostrada en la tabla anterior, debe respetar los rangos de cargas y hora. Mostrar las matrices y archivos desarrollados y enviarlos por correo. 3. Implementar el algoritmo de Simulated Annealing que resuelva el problema. Identificar claramente cada uno de los parmetros del algoritmo y definir la funcin de vecindad. Explicar las funciones ms importantes desarrolladas. 4. Implementar el algoritmo Gentico que resuelva el problema. Identificar claramente cada uno de los parmetros del algoritmo y definir claramente los operadores genticos (cruzamiento y mutacin) utilizados adems de los criterios de seleccin. Explicar las funciones ms importantes desarrolladas. 5. Resumir los resultados obtenidos: a) Ejecutar varias veces los algoritmos y mostrar la mejor solucin obtenida en cada una de ellas y el costo mnimo alcanzado. b) Graficar Costo v/s iteracin de una de las ejecuciones de cada algoritmos. En el algoritmo gentico agregar adems el costo de la poblacin. 6. Explicar los resultados y concluir.

4. Criterios de Evaluacin
Ponderacin: Aspecto Puntos Informe 40 Programas 10 Cualquier copia ser castigada severamente. tarea El problema del vendedor viajero, tambin conocido como TSP consiste en que se tienen n ciudades y el vendedor desea visitar todas las ciudades pasando por ellas una nica vez al menor costo posible. Es decir se desea hacer un circuito hamiltoniano de menor costo. Se asume que todas las ciudades estn conectadas entre ellas. Responder: a) El problema del TSP es de clase P o NP. Justifique. b) Dada n ciudades Cuntas rutas posibles existen sabiendo que se parte de la ciudad 1 y se llega a la misma ciudad?. c) Desarrollar un algoritmo que encuentre una posible solucin (No determinista). d) Desarrollar un algoritmo determinista que evale la solucin. e) Entregue una cota superior en inferior al problema del TSP. f ) Suponiendo que existen 5, 10, 100, 500 ciudades, y que se usa un algoritmo que deba probar todas las soluciones posibles, es decir, de bsqueda exhaustiva, para encontrar la solucin de menor costo. Cuanto tiempo tomara en un computador evaluar todas las soluciones, suponiendo que el algoritmo

tarda 103 segundos en evaluar cada solucin?. Graficar. 2. Buscar un problema NP y realizar un estudio como el de la pregunta 1. (Ejemplos: time tabling, coloration de grafos, VRP, biparticin de grafos). Explique claramente en qu consiste el problema escogido. BIBLIOGRAFA DE LA UNIDAD Bibliografa Borrajo, D. y otros Inteligencia artificial: Mtodos y tcnicas. Centro de estudios Ramn Areces, 1993. Copeland, J. Inteligencia artificial. Editorial Alianza, 1996. Crevier, D. Inteligencia artificial. Editorial Acento, 1996. Dean, T.; Allen, J. & Aloimonos, Y. Artificial Intelligence: Theory and Practice. Benjamin Cummings, 1995. Ginsberg, M. Essentials of Artificial Intelligence. Morgan Kaufmann Publishers, 1993. Haton, J.P. & Haton, M.C. La Inteligencia Artificial: una aproximacin. Editorial Paids, 1991. Luger, G.F. & Stubblefield, W.A. Artificial Intelligence: Structures and Strategies for Complex Problem Solving. 2nd edition. Benjamin Cummings, 1993. McCorduck, P. Mquinas que piensan. Editorial Tecnos, 1991. Milner, W.L. Common Lisp: A tutorial. Prentice Hall, 1988. Mira, J.; Delgado, A.E.; Boticario, J.G. & Dez, F.J. Aspectos bsicos de la Inteligencia Artificial. Editorial Sanz y Torres, 1995. Rich, E. & Knight, K. Inteligencia Artificial. Segunda edicin. Editorial McGraw-Hill Interamericana, 1994. Russell, S. y Norvig, P. Artificial Intelligence: A Modern Approach. Prentice-Hall International, 1995. Shirai, Y. y Tsujii, J. Inteligencia Artificial: Conceptos, tcnicas y aplicaciones. Editorial Ariel, 1987. Tanimoto, S.L. The Elements of Artificial Intelligence: Using Common Lisp. Computer Science Pres, 1990. Winston, P.R. Inteligencia artificial. Tercera edicin. Editorial Addison-Wesley, 1994. REFERENCIAS: 1. Articulo, Agentes Inteligentes en la red, Julio 2002 No.2. 2. Revista, Intelligent Agents, julio de 1994. 3. Agentes Autnomos Inteligentes. http://www.redcientifica.com/doc/doc199903310001.html 4. http://www.ubp.edu.ar/english/organigrama/departamentos/informatica/agentes 97/Articulos/HechosFiccion/Agentes%20Inteligentes%20en%20Internet.html. 5. Los agentes inteligentes y el etiquetado en la web http://gced.com/tematema/index.cfm?id_tematema=12

Referencias Electrnicas

Advanced Computing Research Centre (ACRC). http://www.fen.bris.ac.uk/engmaths/research/aigroup/acrc.html Asociacin Argentina de Inteligencia Artificial. http://www.laguia.com.ar/aaia.htm Aircenter http://www.aircenter.net/ Aphex's Website http://www.aphex.ipfox.com/ Aplicacin de las calculadoras http://decsai.ugr.es/docencia/lm/lm_ac.html Artificial Intelligence group at the University of Bristol http://www.fen.bris.ac.uk/engmaths/research/aigroup/aigroup.html Bibliografa de Inteligencia Artificial http://grial.uc3m.es/docweb/ia/bibliografia.html

Segunda Unidad Captulos Temas LOS SISTEMAS DE BUSQUEDA Introduccin a los sistemas de bsquedas El papel de la bsqueda en la Inteligencia Artificial. Componentes de un sistema de bsqueda Clasificacin. Bsquedas en espacios de estados Algoritmos generales de bsqueda. Estrategias de bsqueda. Bsqueda heurstica Otros tipos de bsquedas

ALGORITMOS GENETICOS
FUNDAMENTOS Los algoritmos genticos son mtodos de optimizacin de problemas basados en los mecanismos de la reproduccin natural, los cuales son operaciones sobre el material gentico de los organismos vivientes. Esta informacin gentica est contenida en el ncleo de las clulas sexuales de las criaturas. La informacin gentica contiene un cierto numero de cromosomas, denominados genes, que se encargan de transportar la informacin gentica. As, por razones obvias, los algoritmos genticos operan sobre estructuras que estn organizadas de manera similar a los cromosomas.

Como ejemplo considere el siguiente problema de optimizacin: Encontrar un x0 que pertenece a X tal que f es mximo en x0, donde f : X una funcin arbitraria de valor real, es decir f(x0)=sup f(x). R es

Se denomina a X el espacio de bsqueda no codificado asociado al problema; f es denominada la funcin objetivo del problema de optimizacin. Considerando S un conjunto de strings y G una gramtica, la cual describe la sintaxis de los strings contenidos en S, se define la funcin: c: X S x c(x) y la funcin: c': S X s c'(s) son denominadas funciones de codificacin y decodificacin respectivamente, si y solo si c es inyectiva y (coc')=idS ; S es denominado el espacio de bsqueda del siguiente problema alternativo codificado de optimizacin: Encontrar un s0 que pertenece a S tal que f' :=f'oc' es mximo en s0, es decir f'(s0)=sup[f'(s)] Un algoritmo gentico es por consiguiente un mtodo de optimizacin probabilstico que trata de resolver la tarea de optimizacin, planteada en el prrafo precedente, mediante la aplicacin de operaciones genticas.
TEORIA DE LA EVOLUCION La teora de la evolucin46, fue descrita por Charles Darwin 20 aos despus de su viaje por las islas Galpagos en el Beagle, en el libro Sobre el Origen de las Especies por medio de la Seleccin Natural. Este libro fue bastante polmico en su tiempo, y en cualquier caso es una descripcin incompleta de la evolucin. La hiptesis de Darwin, presentada junto con Wallace, que lleg a las mismas conclusiones independientemente, es que pequeos cambios heredables en los seres vivos y la seleccin son los dos hechos que provocan el cambio en la Naturaleza y la generacin de nuevas especies. Pero Darwin desconoca cual es

la base de la herencia, pensaba que los rasgos de un ser vivo eran como un fluido, y que los "fluidos" de los dos padres se mezclaban en la descendencia; esta hiptesis tena el problema de que al cabo de cierto tiempo, una poblacin tendra los mismos rasgos intermedios. Fue Mendel quien descubri que los caracteres se heredaban de forma discreta, y que se tomaban del padre o de la madre, dependiendo de su carcter dominante o recesivo. A estos caracte res que podan tomar diferentes valores se les llamaron genes, y a los valores que podan tomar, alelos. En realidad, las teoras de Mendel, que trabaj en total aislamiento, se olvidaron y no se volvieron a redes cubrir hasta principios del siglo XX. Adems, hasta 1930 el geneticista ingls Robert Aylmer no relacion ambas teoras, demostrando que los genes mendelianos eran los que proporcionaban el mecanismo necesario para la evolucin.

Fig. 5.1. Cromosoma biolgico Ms o menos por la misma poca, el bilogo alemn Walther Flemming describi los cromosomas biolgicos, descritos en la Fig. 5.1., como ciertos filamentos en los que se agregaba la cromatina del ncleo celular durante la divisin; ms adelante se descubri que las clulas de cada especie viviente tenan un nmero fjo y caracterstico de cromosomas. Y no fue hasta los aos 50, cuando Watson y Crick descubrieron que la base molecular de los genes est en el ADN, cido

desoxiribonucleico, vista en la Fig. 5.2. Los cromosomas estn compuestos de ADN, y por tanto los genes estn en los cromosomas.

Fig. 5.2. cido Desoxiribonucleico La macromolcula de ADN est compuesta por bases pricas y pirimdicas, la adenina, citosina, guanina y timina. La combinacin y la secuencia de estas bases forma el cdigo gentico , nico para cada ser vivo. Grupos de 3 bases forman un codon, y cada codon codifica un aminocido; el cdigo gentico codifica todas las proteinas que forman parte de un ser vivo. Mientras que al cdigo gentico se le llama genotipo, al cuerpo que construyen esas protenas, modificado por la presin ambiental, la historia vital, y otros mecanismos dentro del cromosoma, se llama fenotipo. No toda la cadena de ADN codifica protenas, es decir, no todos son genes; las zonas que codifican protenas se llaman intrones, las zonas que no lo hacen, exones. La cantidad de ADN basura aumenta desde los seres vivos ms simples, como las bacterias, donde no hay nada, hasta los seres humanos, donde gran cantidad del ADN no codifica. Un gen comienza con el sitio 3' o aceptor y termina con el sitio 5' o donante. Proyectos como el del Genoma Humano tratan de identificar cules son estos genes, sus posiciones, y sus posibles alteraciones, que habitualmente conducen a enfermedades. Todos estos hechos forman hoy en da la teora del neo-darwinismo, que afirma que la historia de la mayora de la vida est causada por una serie de procesos que actan en y dentro de las poblaciones: reproduccin, mutacin, competicin y seleccin. La evolucin se puede definir. entonces como cambios en el pool o conjunto gentico de una poblacin. 5.3. COMPARACIN CON LO CONVENCIONAL La tabla 5.1 muestra las analogas entre la evolucin natural y el paradigma de los algoritmos

genticos. EVOLUCION NATURAL Genotipo Fenotipo Cromosoma Gen Alelo Adaptacin ALGORITMO GENETICO string codificado punto no codificado string posicin en string valor en cierta posicin valor de la funcin objetivo

La representacin grfica de un cr omosoma idealizado puede ser visto en la Fig.5.3.. Por otra parte, un algoritmo gentico puede ser visto solamente como un modelo simplificado del proceso de evolucin sin embargo, la diferencia ms importante es que la "adaptabilidad" en el mundo real no puede expresada por un valor simple. La adaptabilidad en el mundo real es un vector formado por componentes tales como: inteligencia, crecimiento o fertilidad.

Se ha mencionado que un algoritmo gentico trata de resolver un problema de optimizacin, codificado o transformado, en reemplazo del problema real. La segunda diferencia significativa entre los mtodos convencionales y los algoritmos genticos es que los mismos no operan sobre puntos simples, sino sobre conjuntos completos de puntos (Referido como una poblacin o generacin de strings) 5.4. ALGORITMO GENETICO SIMPLE John Holland En la historia de los algoritmos genticos es considerado su principal representante. desde pequeo, se preguntaba cmo logra la naturaleza, crear seres cada vez ms perfectosAunque, como se ha visto, esto no es totalmente cierto, o en todo caso depende de qu entienda uno por perfecto. . Lo curioso era que todo se lleva a cabo sobre la base de interacciones locales entre individuos, y entre estos y lo que les rodea. No saba la respuesta, pero tena una cierta idea de como hallarla: tratando de hacer pequeos modelos de la naturaleza, que tuvieran alguna de sus caractersticas, y ver cmo funcionaban, para luego extrapolar sus conclusiones a la totalidad. De hecho, ya de pequeo

haca simulaciones de batallas clebres con todos sus elementos: copiaba mapas y los cubra luego de pequeos ejrcitos que se enfrentaban entre s. En los aos 50 entr en contacto con las primeras computadoras, donde pudo desarrollar algunas de sus ideas, aunque no se encontr con un ambiente intelectual frtil para propagarlas. Fue a principios de los 60, en la Universidad de Michigan en Ann Arbor, donde, al interior del grupo Logic of Computers, sus ideas comenzaron a desarrollarse y a proporcionar frutos. Adems, leyendo un libro escrito por un bilogo evolucionista, R. A. Fisher, titulado La teora gentica de la seleccin natural, comenz a descubrir los medios de llevar a cabo sus propsitos de comprensin de la naturaleza. De ese libro aprendi que la evolucin era una forma de adaptacin ms potente que el simple aprendizaje, y tom la decisin de aplicar estas ideas para desarrollar programas bien adaptados para un fin determinado. En esa universidad, Holland imparta un curso titulado Teora de sistemas adaptativos. Dentro de este curso, y con una participacin activa por parte de sus estudiantes, fue donde se crearon las ideas que ms tarde se convertiran en los algoritmos genticos. Por tanto, cuando Holland se enfrent a los algoritmos genticos, los objetivos de su investigacin fueron dos: a) imitar los procesos adaptativos de los sistemas naturales, y b) disear sistemas artificiales (normalmente programas) que retengan los mecanismos importantes de los sistemas naturales. Unos 15 aos ms adelante, David Goldberg, actual delfn de los algoritmos genticos, conoci a Holland, y se convirti en su estudiante. Golberg era un ingeniero industrial trabajando en diseo de pipelines, y fue uno de los primeros que trat de aplicar los algoritmos genticos a problemas industriales. Aunque Holland trat de disuadirle, porque pensaba que el problema era excesivamente complicado como para aplicarle algoritmos genticos, Goldberg consigui lo que quera, escribiendo un algoritmo ge ntico en un ordenador personal Apple II. Estas y otras aplicaciones creadas por estudiantes de Holland convirtieron a los algoritmos genticos en un campo con base suficientemente aceptada para celebrar la primera conferencia en 1985 ICGA85. Tal conferencia se sigue celebrando bianualmente. Anatoma Los algoritmos genticos son mtodos sistemticos para la resolucin de problemas de bsqueda y optimizacin que aplican a estos los mismos mtodos de la evolucin biolgica: seleccin basada en la poblacin, reproduccin sexual y mutacin. Los algoritmos genticos son mtodos de optimizacin, que tratan de resolver un conjunto de problemas que se ha contemplado anteriormente, es decir, hallar (xi,...,xn) tales que F(xi,...,xn) sea

mximo. En un algoritmo gentico, tras parametrizar el problema en una serie de variables, (xi,...,xn) se codifican en un cromosoma. Todas los operadores utilizados por un algoritmo gentico se aplicarn sobre estos cromosomas, o sobre poblaciones de ellos. En el algoritmo gentico va implcito el mtodo para resolver el problema; son solo parmetros de tal mtodo los que estn codificados, a diferencia de otros algoritmos evolutivos como la programacin gentica. Hay que tener en cuenta que un algoritmo gentico es independiente del problema, lo cual lo hace un algoritmo robusto, por ser til para cualquier problema, pero a la vez dbil, pues no est especializado en ninguno. Las soluciones codificadas en un cromosoma compiten para ver cul constituye la mejor solucin50. El ambiente, constituido por las otras camaradas soluciones, ejercer una presin selectiva sobre la poblacin, de forma que slo los mejor adaptados 51 sobrevivan o transmitan su legado de material gentico a las siguientes generaciones, igual que en la evolucin de las especies. La diversidad gentica se introduce mediante mutaciones y reproduccin sexual. En la Naturaleza lo nico que hay que optimizar es la supervivencia, y eso significa a su vez maximizar diversos factores y minimizar otros. Un algoritmo gentico, sin embargo, se usar para optimizar habitualmente slo una funcin, no diversas funciones relacionadas entre s simultneamente. Este tipo de optimizacin, denominada optimizacin multimodal, tambin se suele abordar con un algoritmo gentico especializado. Por lo tanto, un algoritmo gentico consiste en lo siguiente: hallar los parmetros de los cuales depende el problema, codificarlos en un cromosoma, y luego aplicar los mtodos de la evolucin: seleccin y reproduccin sexual con intercambio de informacin y alteraciones que generan diversidad. 5.3.2. Codificacin de Variables Los algoritmos genticos requieren que el conjunto se codifique en un cromosoma. Cada cromosoma tiene varios genes, que corresponden a sendos parmetros del problema. Para poder

trabajar con estos genes en una computadora, es necesario codificarlos en una cadena, es decir, una cadena de smbolos (nmeros o letras) que generalmente estn compuestas de ceros y unos. El nmero de bits usado para cada parmetro depender de la precisin que se quiera en el mismo o del nmero de opciones posibles (alelos) que tenga ese parmetro. Hay otras codificaciones posibles, usando alfabetos de diferente cardinalidad; sin embargo, uno de los resultados fundamentales en la teora de algoritmos genticos, el teorema de los esquemas, afirma que la codificacin ptima, es decir, aquella sobre la que los algoritmos genticos funcionan mejor, es aquella que tiene un alfabeto de cardinalidad 2. Aqu se est codificando cada parmetro como un nmero entero de n bits. En realidad, se puede utilizar cualquier otra representacin interna: bcd, cdigo Gray y codificacin en forma de nmeros reales, por ejemplo. La mayora de las veces, una codificacin correcta es la clave de una buena resolucin del problema. Generalmente, la regla heurstica que se utiliza es la llamada regla de los bloques de construccin, es decir, parmetros relacionados entre s deben de estar cercanos en el cromosoma. En todo caso, se puede ser bastante creativo con la codificacin del problema, teniendo siempre en cuenta la regla anterior. Esto puede llevar a usar cromosomas bidimensionales, o tridimensionales, o con relaciones entre genes que no sean puramente lineales de vecindad. En algunos casos, cuando no se conoce de antemano el nmero de variables del problema, caben dos opciones: codificar tambin el nmero de variables, fijando un nmero mximo, o bien, lo cual es mucho ms natural, crear un cromosoma que pueda variar de longitud. Para ello, claro est, se necesitan operadores genticos que alteren la longitud. Normalmente, la codificacin es esttica, pero en casos de optimizacin numrica, el nmero de bits dedicados a codificar un parmetro puede variar, o incluso lo que representen los bits dedicados a codificar cada parmetro. Algunos paquetes de algoritmos genticos adaptan

automticamente la codificacin segn convergen los bits menos significativos de una solucin. 5.5. PROCEDIMIENTO GENERAL La forma general de un algoritmo gentico est constituida por las lneas asociadas al siguiente algoritmo: Algoritmo 1 t := 0 ; Calcular B0 ; WHILE la condicin de salida no se cumpla DO Begin Bt+1 := ? (Bt) ; t := t+1 End es denominado operador de transicin probabilstico que se encarga de calcular la siguiente generacin Bt+1 partiendo de la generacin anterior Bt y tomando en cuenta la adaptabilidad de sus componentes. Normalmente es una composicin de varios operadores probabilsticos. Comparado con los mtodos tradicionales de optimizacin, tales como los mtodos de Newton o del gradiente descendente se puede establecer las siguientes diferencias significativas: a) Los algoritmos genticos manejan versiones codificadas asociadas a los parmetros pertenecientes a los problemas, en reemplazo de los parmetros originales de los mismos. b) Mientras que casi todos los mtodos convencionales se encargan de realizar la bsqueda de un punto simple, los algoritmos genticos siempre operan sobre una poblacin completa de puntos (strings). Esto contribuye a que los mismos sean robustos, reconocindose el hecho de que proporcionan la opcin de tomar el optimo global, reduciendo el riesgo de quedar atrapado en un punto estacionario local. c) Los algoritmos genticos normales no utilizan ninguna informacin auxiliar acerca del valor de la funcin objetivo tales como las derivadas. d) Los algoritmos genticos utilizan operadores de transicin probabilsticos, los mtodos convencionales para la optimizacin continan aplicando exclusivamente operadores de transicin determinsticos. Desde este punto de vista, est claro que los algoritmos genticos son mtodos robustos, los cuales pueden, debido a su generalidad, ser aplicados a un rango amplio de diferentes problemas

de optimizacin. Por otra parte, los algoritmos genticos pueden ser de rendimiento dbil debido a que desagregan toda la informacin que puede ser til. En el resto del texto, se considera la clase ms simple de un algoritmo gentico la cual es ampliamente utilizada en la solucin de problemas de optimizacin continuos como tambin en la optimizacin discreta. Esto est caracterizado como un algoritmo gentico simple que opera sobre strings de tamao fijo n (no necesariamente binario). 5.6. ALGORITMO GENETICO CON OBJETOS DE TAMAO FIJO Un Algoritmo Gentico simple, el cual opera sobre strings de tamao fijo, incorpora los siguientes mtodos en su operador de transicin ( ): a) Seleccin: Los individuos con adaptabilidad alta son favorecidos en el proceso de reproduccin. De manera concreta, los individuos con adaptabilidad alta tienen una gran probabilidad de sobrevivir y de reproducirse por cuenta propia. b) Emparejamiento52: Se denomina as al mtodo de mezclar la informacin gentica de dos individuos; este mecanismo ha contribuido bastante a la adaptacin rpida de las especies que se reproducen sexualmente. c) Mutacin: En la evolucin real el material gentico puede ser cambiado randomicamente por reproduccin errnea u otras deformaciones de los genes (ej. radiaciones gama). En los Algoritmos Genticos la mutacin puede ser realizada como una deformacin randmica de los strings con una cierta probabilidad. Algoritmo 2 Sea m el tamao de la poblacin t :=0 Calcular la poblacin inicial B=(b1,0,... , bm,0) ; WHILE no se cumpla la condicin de parada DO Begin FOR i=1 TO m DO Begin Seleccionar un elemento g de Bt; IF Random[0,1]<=Pc THEN Aparear g con un elemento individual de Bt ; Mutar g bi,t+1 :=g End t :=t+1 End Este algoritmo contiene los mecanismos de seleccin, mutacin y apareamiento.

5.6.1. Seleccin La seleccin es el componente que gua el algoritmo hacia la solucin de un problema. Puede ser un mecanismo que favorece a los individuos o elementos ms aptos con desventajas para los menos aptos. Puede ser una operacin determinista, pero, en la mayora de las implementaciones, tiene componentes aleatorios. Una variante, la cual es muy popular, constituye el siguiente esquema, donde la probabilidad de elegir un cierto elemento es proporcional a su capacidad de adaptacin. Esto puede ser considerado como un experimento randmico con: P[bj,t sea seleccionada] :=f(bj,t )/ f(bk,t ) (Ec. 4.1.1) Por supuesto esta frmula solamente tiene sentido si todos los valores adaptables son positivos. Si este no es el caso, se puede aplicar una transformacin apropiada. Este experimento aleatorio es, en algn sentido, un juego de ruleta en aquellos casos en los cuales la probabilidad para seleccionar un cierto individuo o elemento depende de su adaptabilidad. Puede ser necesario utilizar una funcin de adaptabilidad transformada en la seleccin. Luego las probabilidades pueden ser expresadas como: P[bj,t sea seleccionada] := f(bj,t )/ f(bk,t ) (Ec. 4.1.2) donde : R R+ es una funcin no decreciente. La funcin puede tambin ser utilizada para acelerar la acumulacin de individuos o elementos con gran capacidad de adaptacin. Considere por ejemplo que (x)=xp con p>1, en este caso llega a ser, dependiendo de p, menos probable la seleccin de strings menos adaptables. La formulacin algortmica del esquema de seleccin (Ec. 4.1.1) puede ser escrito como sigue (de manera anloga puede escribirse el caso asociado a la (Ec. 4.1.2)) Algoritmo 3 x := Random[0,1]; i :=1 WHILE i<m & x< ? f(bj,t)/ ? f(bj,t) DO i :=i+1; seleccionar bi,t ; De manera concreta esta seleccin matemtica es un equivalente a la seleccin natural en la cual los individuos ms adaptados tienen mejores opciones de sobrevivir. Este mtodo es denominado tambin seleccin proporcional. 5.6.2. Apareamiento

En la reproduccin sexual, el material gentico de dos padres es mezclado durante el proceso de meiosis. Este mecanismo es una herramienta bastante poderosa para introducir nuevo material gentico, el cual es llevado a cabo con la probabilidad ms alta, o con la capacidad de adaptacin ms alta que la de sus padres o predecesores. Muchas investigaciones demostraron que el apareamiento es la razn por la cual las especies que se reproducen sexualmente se hayan adaptado ms rpido y de mejor forma que las especies que se reproducen asexualmente. Bsicamente, el apareamiento es el intercambio de genes entre los cromosomas de los dos padres. En la meiosis53 real esto es, de manera simple, el intercambio de partes de los cromosomas. En la investigacin sobre algoritmos genticos con objetos de tamao fijo el apareamiento puede, en el caso ms simple, ser realizado como el corte de dos strings en una posicin aleatoriamente elegida y el intercambio de las partes. Este proceso es visualizado en la Fig. 5.4.

Se denomina a este proceso apareamiento en un punto, y responde al siguiente algoritmo: Algoritmo 4 pos :=Random{1,...,n-1} ; FOR i := 1 TO pos DO Begin Child1[i] := Parent1[i] ; Child2[i] := Parent2[i] ; End FOR i := pos +1 TO n DO Begin Child1[i] := Parent2[i] ; Child2[i] := Parent1[i] ; End El apareamiento en un punto es un mtodo simple y frecuentemente utilizado para los algoritmos genticos que operan sobre strings binarios. Para otros problemas, con diferentes cdigos, pero

tambin para el caso de strings binarios, existen diferentes tcnicas de apareamiento, tales como: a) Apareamiento de N-puntos : en lugar de solo un punto N puntos de corte son elegidos de manera aleatoria. Cada segunda seccin es intercambiada. b) Apareamiento Segmentado: similar al apareamiento de N-puntos con la diferencia que el numero de puntos de corte puede variar. c) Apareamiento Uniforme: Para cada posicin se decide de manera aleatoria como intercambiar las posiciones. d) Apareamiento con permutacin: Primero es aplicada una permutacin elegida de manera aleatoria a los dos padres, luego es aplicado el apareamiento de N-puntos a los parientes permutados, finalmente, los hijos permutados son transformados con la permutacin inversa. 5.6.3. Mutacin El ultimo ingrediente del algoritmo gentico simple es la mutacin. En el mundo real, la mutacin hace referencia a la deformacin randmica de la informacin gentica de un individuo mediante una radiacin radioactiva u otras influencias similares. En la reproduccin real es la probabilidad de que un cierto gen mutado sea casi igual para todos los genes.

De esta manera se puede utilizar la binario S: Algoritmo 5 FOR i :=1 TO n DO IF Random[0,1]<PM THEN invert S[i] ; Nuevamente, de manera similar al mutacin apropiada depende de la codificacin misma algunas alternativas: a) Inversin de bits simples: Con manera

siguiente tcnica de mutacin para un string

apareamiento, la eleccin de la tcnica de del problema. A continuacin se menciona probabilidad PM se niega un bit elegido de

aleatoria. b) Inversin: Con probabilidad PM el string completo es invertido bit a bit. c) Seleccin Aleatoria : Con probabilidad PM el string es reemplazado por otro elegido de manera aleatoria. 5.7. ALGORITMO GENETICO GENERAL En base a los operadores genticos descritos en la anterior seccin, se muestra a continuacin la estructura general de un algoritmo gentico en trminos de su estructura bsica, la modificacin para su implantacin como procedimiento computacional depende del anlisis y diseo de la solucin a un problema determinado. Algoritmo 6 t :=0 Calcular la poblacin inicial B=(b1,0,... , bm,0) ; WHILE no se cumpla la condicin de parada DO Begin FOR i=1 TO m DO Begin (* seleccin proporcional *) x := Random[0,1]; l :=1 WHILE l<m & x< (f(bj,t)/ (f(bj,t) DO l :=l+1; g := bl,t ; (* apareamiento en un punto *) IF Random[0,1]<=Pc THEN Begin Parent1 := g ; Parent2 := bRandom{1,...,m},t ; pos :=Random{1,n-1} ; FOR i := 1 TO pos DO Begin Child1[i] := Parent1[i] ; Child2[i] := Parent2[i] ; End FOR i := pos+1 TO n DO Begin Child1[i] := Parent2[i] ; Child2[i] := Parent1[i] ; End IF Random[0,1] < 1/2 THEN g := Child1 ; ELSE g := Child2 ; End (* mutacin *)

FOR i :=1 TO n DO IF Random[0,1]<pM THEN invert g[i] ; bi,t+1 := g end t := t+1 ; End En este algoritmo, como es usual, n es el tamao de los strings y m es el tamao de la poblacin. 5.8. PROBLEMA DEL AGENTE VIAJERO Considere el ejemplo de un viajante que parte de una ciudad origen y tiene que pasar por un nmero determinado de ciudades, por decir 20. La ruta a escoger resulta diferente segn el orden en que se visiten las ciudades. Si se van visitando ciudades en un orden en que cada una est lo ms cerca posible de la prxima entonces el viaje resultar ms rentable que si se visita primero una ciudad que est muy lejos de la ciudad origen, luego se vuelve a otra cerca de sta, luego se vuelve a ir al otro extremo etc. Por eso resulta interesante visitar las ciudades en un orden en que la distancia total sea la ms corta posible. Ahora se intenta desarrollar un programa que consista en lo siguiente: dadas las coordenadas (x,y) de las ciudades origen y de las dems ciudades a visitar, que el programa se encargue de evaluar todas las maneras posibles de efectuar el recorrido y vaya calculando sus respectivas distancias una a una, proporcionando como resultado el recorrido ms pequeo. Pero esto sin duda tiene un problema. En el ejemplo con 20 ciudades el nmero de maneras diferentes de recorrerlas es 20!, este es un nmero astronmico an para las computadoras contemporneas. Si se disea un programa que intente calcular la solucin exacta por evaluacin de todas las rutas posibles, el programa no ser rentable en tiempo. Si el nmero de ciudades en lugar de ser 20 fuese 40 el nmero de maneras distintas de recorrerlas resulta del orden de 8x1047. Es decir, se descarta este mtodo por ser demasiado costoso en tiempo, incluso irrealizable en muchos casos. Los algoritmos genticos permiten encontrar una solucin aproximada a este problema, una solucin que puede ser muy cercana a la mejor. Se identifica cada ciudad con un nmero secuencial (1, 2, 3... 20) y se genera 20 ristras 54 con los 20 nmeros de las ciudades ordenados de

manera aleatoria se generan 20 rutas diferentes generadas al azar. A continuacin se reproducen esas ristras; esto significa que a partir de cada una se generan 10 ms, a la primera de ellas se la nombra como la ristra padre y en cada una de las otras 9 se permutan dos ciudades al azar. Por ejemplo, si una de las 20 ristras generadas de manera aleatoria contiene un orden concreto de visita de las ciudades: 20 3 4 1 15 16 18 2 5 6 7 11 12 8 9 10 19 17 14 13, entonces la primera de las 10 ristras que se llamaran hijas ser ella misma y la segunda ser la misma, excepto que se habr permutado 2 elementos (por ejemplo la posicin del 20 por la del 4), obteniendo as una ristra diferente que implica una nueva manera de recorrer las ciudades. Y las dems anlogamente a esta segunda. Se tenia 20 ristras padres, de cada una se ha generado 10 ristras hijas diferentes, por tanto se tienen 200 ristras diferentes. Ahora es posible calcular la distancia que supondra recorrer las ciudades en cada una de estas 200 rutas ordenadas. Con este mtodo se har solamente 200 operaciones frente a las 2.432.902.008.176.640.000 que tendran que hacerse si se evaluara todas las posibilidades. De estas 200 rutas se opta por las 20 mejores, esto es, con las ristras que generaban las 20 maneras ms rentables (en distancia) para realizar el viaje. Con estas 20 se repetir el proceso de generar otras 200, de ellas se calcula de nuevo sus 20 mejores y se puede repetir toda esta operacin (es lo que se llama el algoritmo gentico) todas las veces que se quiera. Se puede comprobar cmo en cada reproduccin y seleccin de las 20 mejores ristras van apareciendo mejores resultados que en la anterior reproduccin. Al terminar del programa, de esas 20 mejores ristras solamente se elige la mejor, considerndola como resultado final. sa es una buena aproximacin a la solucin. Pero, cmo saber si esa aproximacin es buena, si lo nico que se ha realizado es evaluar un cierto nmero de ristras que es mucho menor al nmero de maneras posibles de visitar todas las ciudades? Y si se repite el algoritmo, por decir 50 veces, no sera menos complicado considerar 50x200=10000 ristras y evaluar las distancias de cada una de ellas prescindiendo de los operadores genticos de mutacin y reproduccin?

Las dos preguntas son ampliamente razonables. Es molestoso considerar, si se repite el algoritmo gentico 50 veces y por lo tanto analizar 50x200=10000 ristras aleatorias, que la mejor solucin no pueda acercarse a la manera de recorrer las ciudades por el camino ms corto, ya que el nmero de maneras distintas es 2.432.902.008.176.640.000 y solamente se ha considerado 10.000 de ellas. Por otra parte, tambin se hace la pregunta acerca de la evaluacin gentica de esas 10.000 ristras y la razn por la que no se considera una evaluacin secuencial, cosa que ahorrara tiempo. Continuando con las consideraciones, al igual que un padre se parece a su hijo, las ristras generadas se parecen a las ristras padres que se usaron para generarlas. Cuando se generaron las 20 primeras ristras, stas contaban con una posibilidad de ser buenas o malas aleatoriamente, pero las ristras hijas que generan una ristra buena tienen tendencia a ser en su mayora buenas, y as, al ir seleccionando las mejores, es posible recorrer adecuadamente el espacio de las soluciones buenas y no es lo mismo generar 10.000 ristras aleatoriamente y buscar el mejor resultado. Con este ejemplo se ilustra los algoritmos genticos. La eficiencia de stos depende de la eleccin correcta, a priori desconocida, del nmero de iteraciones, ristras seleccionadas inicialmente, ristras hijas que genera cada ristra padre, etc. Se puede decir que los algoritmos genticos resuelven a diario problemas similares al del viajante. 5.9. PROGRAMACION GENETICA La segunda clase importante de algoritmos genticos est comprendida bajo el termino de programacin gentica. Esto constituye un enfoque gentico bastante importante para el problema de la induccin de programas en la inteligencia artificial. La induccin de programas es el mtodo para ensear a una computadora como resolver un problema sin que el mismo sea programado de manera explcita. Esto es, en algn sentido, un problema inverso, en lugar de decirle a una computadora como resolver de manera explcita un problema, se presenta el problema a la computadora y se le alienta para encontrar un programa que resuelva el problema.

La idea de aplicar los algoritmos genticos al problema de la induccin de programas puede ser atribuida a J. Holland. Otra fuente importante de investigacin fue realizada por J.R. Koza quien introdujo el trmino "programacin gentica". Obviamente, la aplicacin de los algoritmos genticos a programas completos requiere mas o menos modificaciones significativas a la maquinaria gentica discutida previamente. La ms importante es la referida a los strings de tamao fijo. Aunque es posible restringir el tamao de un programa a un cierto valor, no se puede preservar la universalidad de un lenguaje de programacin si se restringe el tamao de los programas a un numero determinado de instrucciones. En lo que sigue se asume que la sintaxis de un lenguaje de programacin esta proporcionada en la forma Backus -Naur (BNF) la cual describe la sintaxis de los lenguajes de manera recursiva. Un programa, escrito en dicho lenguaje, puede ser considerado como un rbol55 que puede ser escrito como una lista anidada. El proceso de reescribir un programa como un rbol o una lista anidada puede ser realizado para cualquier lenguaje de programacin utilizado de manera comn tal como: C, FORTRAN, PASCAL o LISP. Es fcil ver que la implementacin es menos dificultosa para lenguajes restringidos, los cuales solo permiten recursiones, tales como el LISP. 5.9.1. Eleccin del Lenguaje de Programacin Es posible reescribir cada programa como una lista o un rbol, pero esta puede ser una tarea crucial para muchos de los lenguajes de programacin procedimentales comunes. En muchas aplicaciones y tratamientos tericos es utilizado el lenguaje LISP. Los programas LISP son listas anidadas fciles en su manejo, debido a que no es necesaria su reescritura. Otro aspecto importante a considerar es cual subconjunto del lenguaje se podra utilizar. Esta claro que no es til en cada aplicacin utilizar el conjunto completo de instrucciones que el lenguaje ofrece. Considere por ejemplo un problema en el que se tiene que aprender operaciones lgicas. Para tal caso se puede restringir solamente a las operaciones lgicas AND, OR y NOT o a un subconjunto de las mismas. Bajo la suposicin de que el problema puede ser resuelto dentro del subconjunto, una eleccin inteligente de dicho subconjunto puede incrementar el rendimiento

de manera marcada. La razn simple es que, el espacio de bsqueda es bastante pequeo, consecuentemente esto incrementa la eleccin de una solucin considerablemente buena. 5.9.2. Iniciacin En secciones anteriores no se prest demasiada atencin en la creacin de la poblacin inicial. Se asuma implcitamente que los individuos de la primera generacin podan ser generados de manera aleatoria con respecto a una cierta distribucin de probabilidad. La generacin aleatoria de rboles o listas anidadas es una tarea ms compleja. Considere por ejemplo la BNF del siguiente lenguaje que puede ser utilizado para representar funciones lgicas ternarias: Programa := <expresin>; <expresin> := "("<variable>")" | "("<unario><expresin>")"| "("<binario><expresin><expresin>")" ; <variable> := "x"|"y"|"z" ; <unario> := "NOT" ; <binario> := "AND"|"OR" ; Obviamente, lo s elementos sintcticos de este lenguaje parecido al LISP son los parntesis, las variables x,y y z y los operadores NOT, AND y OR. Est claro que un procedimiento, el cual crea strings con entradas randmicas a partir de este conjunto de elementos sintcticos, no es una variante buena de un procedimiento de inicializacin, a causa de que la probabilidad de creacin de strings sintcticamente correctos es demasiado baja. Una mejor alternativa podra constituir un procedimiento el cual est basado en el BNF del lenguaje mismo. Tal algoritmo puede ser establecido como sigue : Algoritmo BNFL Empezar con la raz de la sintaxis (en nuestro caso el Programa). Seleccionar una alternativa de la expresin sintctica actual de manera randmica. Llenar la alternativa y aplicar el procedimiento de manera recursiva para todas las subexpresiones atmicas de la alternativa. Fin BNFL Es comprensible, de manera intuitiva, que se deben incluir mecanismos que eviten el final de la recursin en este mtodo. Una oportunidad comn consiste en fijar una profundidad mxima y evitar alternativas no atmicas si esta profundidad es alcanzada o excedida. El siguiente ejemplo ilustra este mtodo de manera mas clara para el caso del lenguaje definido. Ejemplo:

El punto de inicio es, por supuesto, la expresin raz56. <expresin> segunda alternativa (<unario> <expresin> <expresin>) <unario> es una expresin atmica con solo una alternativa (NOT <expresin> <expresin>) tercera alternativa (NOT (<binario> <expresin> <expresin>) <expresin> primera alternativa (NOT (AND (<expresin> <expresin>) <expresin> primera alternativa (NOT (AND (<variable> <expresin>) <expresin> segunda alternativa (NOT (AND (y) <expresin>) <expresin>) ... y as sucesivamente 5.9.3. Programas de Apareamiento La segunda cuestin, que difiere del caso asociado a los strings de manera notable, es el apareamiento sobre la operacin. Por supuesto, las listas anidadas pueden ser consideradas como strings para los cuales un apareamiento estndar puede ser aplicado sobre la operacin. El problema es nuevamente que la probabilidad de generar strings sintcticamente correctos mediante esta forma es muy pequea. Por consiguiente, es necesario encontrar una alternativa la cual preserve la correctitud sintctica. Para este propsito, se utiliza la interpretacin de los programas como rboles. Por supuesto, existen muchas interpretaciones posibles de esta clase, el enfoque que se discute es el propuesto por A. Geyer-Schulz. Un programa correcto puede derivarse de una gramtica resaltada en al menos una forma (no necesariamente nica). Esta derivacin de rboles por si misma es utilizada luego como una representacin. No es trivial proporcionar una formulacin exacta del procedimiento para determinar la derivacin de rboles para una expresin dada. A continuacin se presenta un ejemplo simple el cual aclara los conceptos mencionados. Ejemplo: En la Fig. 5.6. se muestra la derivacin de rboles de la expresin: ((x ? ? y) ? ? z), que puede ser escrito como: (OR(AND(x)(NOT(y)))(NOT(z))), en el lenguaje establecido en el anterior prrafo. Puede considerarse fcilmente que cada subarbol corresponde a una subexpresin. Las races de estos subarboles son denominadas etiquetas. El mtodo ms comn para aparear dos expresiones,

las que pueden ser expresadas como rboles de derivacin, consiste en intercambiar subarboles que empiezan con nodos iguales, es decir los cuales cuentan con etiquetas iguales. Esto garantiza que la descendencia a partir de los nodos intercambiados es correcta sintcticamente. Ejemplo 2: La figura adjunta muestra un ejemplo simple para aparear dos rboles de derivacin. El resultado en forma de lista anidada es el siguiente: (AND (x) (NOT(z))) (AND(x)(OR(y)(x))) (NOT(OR(y)(x))) (NOT(NOT(z)) 5.9.4. Mutacin de Programas Despus de todo este trabajo preparatorio resulta comparativamente fcil proporcionar una tcnica de mutacin, de la manera usual, para los programas. El mtodo ms comn es seleccionar aleatoriamente un subarbol del rbol de derivacin y reemplazarlo por otro subarbol que fue generado aleatoriamente aplicando el mismo mtodo discutido en conexin con el procedimiento de inicializacin. Por supuesto, se debe prestar atencin especial a la profundidad de este subarbol. Luego se garantiza que la correctitud sintctica del programa no es daada por la operacin de mutacin.
Fig. 5.6. rbol de derivacin para (OR(AND(x)(NOT(y)))(NOT(z)))

Fig. 5.6. rbol de derivacin para (OR(AND(x)(NOT(y)))(NOT(z)))

En la Fig. 5.6. se muestra la derivacin de rboles de la expresin: ((x ? ? y) ? ? z), que puede ser

escrito como: (OR(AND(x)(NOT(y)))(NOT(z))), en el lenguaje establecido en el anterior prrafo. Puede considerarse fcilmente que cada subarbol corresponde a una subexpresin. Las races de estos subarboles son denominadas etiquetas. El mtodo ms comn para aparear dos expresiones, las que pueden ser expresadas como rboles de derivacin, consiste en intercambiar subarboles que empiezan con nodos iguales, es decir los cuales cuentan con etiquetas iguales. Esto garantiza que la descendencia a partir de los nodos intercambiados es correcta sintcticamente. Ejemplo 2: La figura adjunta muestra un ejemplo simple para aparear dos rboles de derivacin. El resultado en forma de lista anidada es el siguiente: (AND (x) (NOT(z))) (NOT(OR(y)(x))) (AND(x)(OR(y)(x))) (NOT(NOT(z))

5.9.4. Mutacin de Programas Despus de todo este trabajo preparatorio resulta comparativamente fcil proporcionar una tcnica de mutacin, de la manera usual, para los programas. El mtodo ms comn es seleccionar aleatoriamente un subarbol del rbol de derivacin y reemplazarlo por otro subarbol que fue generado aleatoriamente aplicando el mismo mtodo discutido en conexin con el procedimiento de inicializacin. Por supuesto, se debe prestar atencin especial a la profundidad de este subarbol. Luego se garantiza que la correctitud sintctica del programa no es daada por la operacin de mutacin. 5.9.5. Funcin de Adaptacin Otra tarea no trivial en conexin con la programacin gentica es la definicin de una funcin de adaptacin apropiada la cual se encargue de medir cuan bien, un determinado programa, resuelve un problema. La solucin de este problema depende fuertemente del problema mismo, una receta universal para definir la medida de adaptacin apropiada no puede ser proporcionada de manera eficiente. Una tcnica utilizada comnmente consiste en aplicar un programa a un numero finito de pruebas de entrada para las cuales la salida deseada es conocida. Por supuesto, esos casos deben ser seleccionados de manera clara de tal forma que sean realmente representativos. Luego, el nmero

de casos para los cuales la salida correcta es obtenida puede ser tomada como una medida para la correctitud del programa. El siguiente ejemplo muestra un caso donde este mtodo no es til. Ejemplo: Funcin := <expresin>; <expresin> := "("<variable>")" | "("<constante>")"| "("<binario><expresin><expresin>")" ; <variable> := "x"; <constante> := <numero>"/"<numero> ; <numero> := "0" | ... | "9" | <numero> ; <binario> := "+" | "-" | "*" ; Esta gramtica describe un lenguaje de programacin para representar polinomios con coeficientes racionales. La tarea a emprender es encontrar un polinomio de algn grado tal que corresponda a un conjunto de puntos representativos de prueba {(x1, y1),...( xn , yn)} tan buenos como sea posible. Puesto que la probabilidad de que un polinomio elegido aleatoriamente corresponda al menos a un punto de manera exacta es aproximadamente 0, el nmero de emparejamientos exactos son usados como medida de adaptacin. Una alternativa puede ser: f(P) := ||(y1 - P (x1), ... , yn - P (xn))|| la cual puede ser minimizada, donde f es la funcin de adaptacin del polinomio P, y || . || es una norma arbitraria sobre Rn (por ejemplo la norma euclideana). 5.10. APLICACIONES En toda ejecucin de un algoritmo gentico hay que decidir con qu frecuencia se va a aplicar cada uno de los algoritmos genticos; en algunos casos, como en la mutacin o el apareamiento uniforme, se debe de aadir algn parmetro adicional, que indique con qu frecuencia se va a aplicar dentro de cada gen del cromosoma. La frecuencia de aplicacin de cada operador estar en funcin del problema; teniendo en cuenta los efectos de cada operador, tendr que aplicarse con cierta frecuencia o no. Generalmente, la mutacin y otros operadores que generen diversidad se suele aplicar con poca frecuencia; la recombinacin se suele aplicar con frecuencia alta. En general, la frecuencia de los operadores no vara durante la ejecucin del algoritmo, pero hay que tener en cuenta que cada operador es ms efectivo en un momento de la ejecucin. Por

ejemplo, al principio, en la fase denominada de exploracin , los ms eficaces son la mutacin y el apareamiento; posteriormente, cuando la poblacin ha convergido en parte, el apareamiento no es til, pues se est trabajando con individuos bastante similares, y es poca la informacin que se intercambia. Sin embargo, si se produce un estancamiento, la mutacin tampoco es til, pues est reduciendo el algoritmo gentico a una bsqueda aleatoria; y hay que aplicar otros operadores. En todo caso, se pueden usar operadores especializados. Una de las primeras aplicaciones de las tcnicas evolutivas fue la reportada por Friedman, quien propuso la evolucin de circuitos de control, similares a las actuales redes neuronales. Lawrence Davis propone varios ejemplos de algoritmos evolutivos con representaciones y operadores especiales para resolver problemas del mundo real. Este cambio es til en la mayora de los casos, pero no es fcil generalizarlo para problemas similares. a) Llaves aleatorias . Propuestas por James C. Bean, consisten de una representacin llamada Random Key Enconding la cual se utiliza para eliminar la necesidad de operadores especiales de apareamiento y mutacin codificando las soluciones con nmeros aleatorios los cuales sern las llaves para decodificar sus valores. La propuesta es interesante, pero los resultados obtenidos con ella no han sido muy exitosos. b) GENOCOP. GEnetic algorithm for Numerical Optimization for COnstrained Problems, propuesto por Michalewicz asume puntos iniciales para comenzar la bsqueda y slo admite restricciones lineales. Los resultados obtenidos con este algoritmo gentico han sido exitosos. c) Algoritmo Gentico Consistente en Restricciones. Propuesto por Kowalczyk para acotar el espacio de bsqueda previniendo la instanciacin de variables que no satisfacen a las restricciones. Por lo tanto, slo se producen soluciones factibles. d) Localizacin de Lmites de Regin Factible. Su motivacin radica en que en optimizacin no lineal se suelen tener restricciones activas en el ptimo global, razn sugerente para explorar el lmite entre la zona factible y la no-factible del espacio de bsqueda. e) Decodificadores. Consiste en que un cromosoma proporcione la manera de construir una solucin factible. Cada decodificador impone una relacin entre una solucin factible y una solucin decodificada. Propuesta por Koziel y Michalewicz. Ejercicios # 5 1. Encontrar un x0 que pertenece a X tal que f es mnimo en x0, donde f: X R es una funcin arbitraria de valor real, es decir f(x0)= Infimo f(x).

2. Escribir los pasos que representen un algoritmo gentico general. 3. Construir un algoritmo gentico para resolver el juego del tic tac toe (tres en raya). 4. Modificar el algoritmo gentico de las ciudades imponiendo bloqueos entre algunas de ellas (por ejemplo que no se pueda ir directamente de la ciudad 8 a la 5 ni de la 2 a la 12 porque sus carreteras suelen estar muy frecuentadas y se tarda ms). Crear un algoritmo gentico que reparta los asientos de los invitados de una boda segn sus preferencias, es decir cada invitado dar una lista de personas al lado de las que querra estar sentado y otra lista con las personas que no quiere que se sienten a su lado. Hay que conseguir que se cumplan en su mayora sus preferencias 6. Construir un algoritmo gentico que se utilice para el juego de las damas en un tablero de 8x8 entradas. 7. Se tiene una lista de profesores, cada uno puede impartir una o varias asignaturas, y una lista de clases con el numero de horas que debe recibir cada asignatura y se pide disear un algoritmo gentico que reparta el horario de las asignaturas y asigne a ellas profesores de manera que no se solapen clases del mismo profesor. El problema se puede complicar si se impone restricciones como que un profesor no puede dar clase a una cierta hora, etc. 8. Explicar las razones por las cuales se utiliza la programacin gentica, en lugar de la programacin tradicional, y en que casos es til contar con este paradigma. 9. Construir un rbol de derivacin para la siguiente expresin (a ? ? b) ? ? c. 10. Desarrollar el rbol de derivacin para la expresin ((? x? y)? ? z) y luego aparearlo con el rbol (x ? ? y) . Bibliografa Daniels, R.L. & Carrillo, J.E. Beta-Robust scheduling for single-machine systems with uncertain processing times, IEEE Transactions, Volume 29, pages 977-985, 1997. Davis, L. Job Shop Scheduling with Genetic Algorithms, Proceedings of the First International Conference on Genetic Algorithms, 1986. Gideon, W. A Tutorial in Stochastic Scheduling. Editors: Chretienne, P. and Coffman, E.G. Jr. and Lenstra, J.K. and Liu, Z., Scheduling: Theory and its applications, chapter 3, pages 33-64, John Wiley & Sons, 1995. Goldberg, D.E. Genetic Algorithms in Search, Optimization, and Machine Learning, Addison Wesley, MA, 1989.

Goldberg, D.E. Genetic and Evolutionary Algorithms come of Age. Communications of the ACM, Volume 37, No. 3, pages 113-119, 1994. Holland, J.H. Adaptation in Natural and Artificial Systems. MIT Press, Cambridge MA, 1975. James C. Bean. Genetics and random keys for sequencing and optimization.ORSA Journal on Computing, 6(2):154-160, 1994. Jia, C. & Tu, F. Stochastic Single Machine Scheduling Problem with V-Shaped or Lambdashaped Optimal Sequences. Proceedings of the 35th Conference on Decision and Control, 1996. Jones, A. & Rabelo, L.C. Survey of Job Shop Scheduling Techniques, NISTIR, National Institute of Standards and Technology, Gaithersburg, MD, 1998 (on-line publication). Kowalczyk, R. Constraint Consistent Genetic Algorithms. In Proceedings of the 1997 IEEE Conference on Evolutionary Computation, pages 343-348, Indianapolis, USA, April 1997. IEEE. Koziel S. and Z. Michalewicz. A Decoder-based Evolutionary Algorithm for Constrained Parameter Optimization Problems. In T. B.ack, A. E. Eiben, M. Schoenauer, and H.-P. Schwefel, editors, Proceedings of the 5th Parallel Problem Solving from Nature (PPSN V), pages 231-240, Amsterdam, September 1998. Springer-Verlag. Lawrence D. editor. Handbook of Genetic Algorithms. Van Nostrand Reinhold, New York, 1991. Lin, Shyh-Chang, Goodman, E.D. and Punch, W.F.III. A Genetic Algorithm Approach to Dynamic Job Shop Scheduling Problem. Proceedings of the Seventh International Conference on Genetic Algorithms,1997. Matfeld, D. Evolutionary Search and the Job Shop. Heidelberg, Physica Verlag, 1995. Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs. SpringerVerlag, third edition, 1996. Montana, D., Brinn, M., Moore, S. & Bidwell, G. Genetic Algorithms for Complex, RealTime Scheduling, IEEE International Conference on Systems, Man and Cybernetics, Volume 3, pages 2213-2218, 1998. Morton, T.E. & Pentico, D.W. Heuristic Scheduling Systems with Applications to Production Systems and Project Management. Wiley series in engineering and technology management, Wiley-Interscience, 1993. Pinedo, M. Scheduling: Theory, Algorithms and Systems. Englewood Cliffs,Prentice Hall,N.J.,

1995. Referencias Electrnicas The Hitch-Hicker's Guide to Evolutionary Computation ftp://ftp.cerias.purdue.edu/pub/doc/EC/Welcome.html Gua resumen de computacin evolutiva http://alife.santafe.edu/~joke/encore/www/ Programacin por expresin gentica http://www.gene-expression-programming.com/ Gramticas evolutivas http://www.grammatical-evolution.org/ Algoritmos genticos aplicados a clustering de KDD http://www.cs.uwa.edu.au/robvis/theses.html#CO Algoritmos genticos http://www-cs.us.es/~delia/sia/html98-99/pag-alumnos/web12/indice.html Algoritmos genticos y Programacin evolutiva http://gal4.ge.UIUC.edu/techreps.php3 Computacin evolutiva ftp://ftp.krl.caltech.edu/pub/EC/Welcome.html Algoritmos Genticos en C++ http://kal-el.ugr.es/gags.html Biblioteca de algoritmos genticos http://lancet.mit.edu/ga/ Cdigo de programacin gentica ftp://ftp.mad-scientist.com/pub/genetic-programming/code Programacin gentica exhaustiva ftp://ftp.cs.bham.ac.uk/pub/authors/W.B.Langdon/biblio
Pgina: 88

Programacin gentica http://www.genetic-programming.org/

Bsqueda en sistemas de juegos Tercera Unidad Captulos Temas REPRESENTACIN DEL CONOCIMIENTO Y RAZONAMIENTO El papel del conocimiento en la Inteligencia Artificial. Paradigmas simblico y conexionista . Modelos de representacin Puntos de vista declarativos y normativos Aplicaciones en la ciencia e Ingeniera Representaciones basadas en lgicas El lenguaje de la lgica de predicados Extensiones de la lgica clsica Programacin lgica Gestin de reglas de produccin Inferencia Reglas de produccin sin y con variables Introduccin al aprendizaje automtico de reglas. REPRESENTACION DE CONOCIMIENTO INTRODUCCION La representacin constituye el ncleo de la ciencia de las computadoras. Cada pieza de cdigo escrita es significativa para la representacin de algn objeto. En la actualidad la representacin del conocimiento es potencialmente investigada, de tal forma que cualquier libro que trate sobre inteligencia artificial o sistemas expertos considera a la representacin del conocimiento como un resultado central. Los ingredientes bsicos para la representacin del conocimiento son tres: el primero est referido a un lenguaje de representacin, el segundo a la capacidad de inferencia de la representacin y el tercero al conocimiento del dominio. En general una representacin debe de tener dos capacidades: por un lado una expresividad adecuada y por otro una eficiencia de razonamiento. La expresividad y el razonamiento le confieren al formalismo la capacidad adecuada para ser considerado como una alternativa util para la representacin. Se establece, a priori la definicin de los formalismos, que los criterios para juzgar una representacin adecuada son tres: lo primero que hay que observar es la capacidad lgica, referida a que el formalismo sea capaz de expresar el conocimiento que se desea expresar; lo

segundo es el podero heurstico, que se refiere a la capacidad para resolver problemas utilizando inferencias; finalmente el tercer criterio es la conveniencia de la notacin, que significa la simplicidad para acceder al conocimiento y la facilidad de su entendimiento. 2.2. DEFINICIN La definicin del concepto de representacin de conocimiento se realiza desde dos puntos de vista, atmico y holstico. 2.2.1. Vista Atmica En su etimologa la palabra representacin viene del latn Repraesentare que significa: hacer aparecer como presente. Por otro lado la palabra Conocimiento deriva de la palabra latina Gnosco que significa: aquello que ha sido sujeto al acto de reconocimiento. Si se combinan ambos significados se tiene que: la representacin de conocimiento es hacer que aparezca como presente lo que ha sido sujeto al acto de reconocimiento. Otra definicin sostiene que la representacin de conocimiento puede ser algo como la correspondencia de reglas conocidas y el estado del mundo en alguna estructura apropiada. 2.2.2. Vista Holstica Esta vista corresponde al holismo que dice, l todo es mas que la suma de sus partes72. As la representacin de conocimiento es mas que solo la conjuncin de los conceptos de conocimiento y representacin. a) Modelo Realstico Simple Este mode lo conceptual corresponde al proceso de cognicin. El dominio de inters es alguna parte (P) del mundo (W) y el resultado ser una teora acerca de dicha parte P. Un modelo realstico-simple es una abstraccin extractada de lo concreto. El proceso de abstraccin o construccin tiene tres fases: a) Se realiza la seleccin de un conjunto de datos acerca del mundo. La seleccin es en principio sin ninguna teora de respaldo. b) Los datos se combinan en una estructura. c) Se refina la estructura hasta que la misma refleja al mundo concreto, lo suficientemente bien.
2

Segn Aristteles 384-322 a. C.

Ejemplo: Considere a una persona X preguntarse por qu un yate anclado en un puerto no se encauza por efecto del viento?. X primero observa el yate y toma notas acerca de su forma (fase a); luego X construye un modelo a escala en una pieza de madera (fase b); en tercer lugar examina el modelo en un cubo lleno de agua y lo refina hasta que el mismo se comporte como el yate del puerto (fase c). Finalmente X entiende que una quilla grande es crucial para los movimientos del yate. b) Modelo Lgico Matemtico Este modelo conceptual corresponde a la asignacin de significado a la representacin. El modelo lgico matemtico de una teora o realizacin, es una estructura para la cual todos los axiomas de la teora son validos.

Ejemplo: Considere la teora de cmo el yate se comporta en el agua. Un teorema de esta teora puede ser expresado de manera muy informal como: un yate estable tiene una quilla grande. Una realizacin de la teora son yates de madera con grandes quillas de hierro. 2.2.3. Notas Finales Sobre la base de lo observado en los dos modelos holsticos para la representacin de conocimiento se puede decir que: a) El conocimiento es algo que tiene los seres humanos. Se relaciona con algn mundo W, entendido o conocido por una persona. b) La representacin es un proceso, pero no necesariamente un proceso de representar conocimiento. c) El conocimiento representado es expresado en algn lenguaje 8 3L. Para hablar de conocimiento representado tambin se requiere que el mismo pueda ser interpretado por alguna persona. d) La representacin de conocimiento es el acto de representar conocimiento. Con lo mencionado en los anteriores cuatro puntos se tiene que la representacin de conocimiento involucra a: a) Un dominio del discurso, es decir algn mundo fsico abstracto W. b) Un lenguaje L, en el que se representa conocimiento acerca del mundo W. c) Conexiones entre el mundo y el conocimiento representado y viceversa. d) La representacin94 de conocimiento de algn mundo W, en algn lenguaje L. e) La interpretacin105 del conocimiento representado. 2.3. EVOLUCION DE LOS SISTEMAS BASADOS EN CONOCIMIENTO 2.3.1. Dato El concepto de dato es, por supuesto, el concepto central en la ciencia de las computadoras. Dicha afirmacin es evidente en la siguiente definicin proporcionada por Eriksen, Helms y Romer en 1975: Los datos constituyen una representacin formalizada de hechos o ideas en forma tal que puedan ser comunicados o transformados mediante un proceso.
3 4 5

En este contexto el lenguaje debe ser entendido en el sentido ms amplio que sea posible. Se considera como una codificacin del conocimiento. Se considera como una decodificacin del conocimiento.

2.3.2. Sistema de Programacin Convencional Un sistema de programacin convencional consta de un conjunto de archivos, los que normalmente pueden ser utilizados por programas, adems de un programa que trabaja sobre esos archivos. El programa y el conjunto de archivos estn relacionados de manera cerrada.

2.3.3. Sistema de Base de Datos De manera esencial un Sistema de Base de Datos es un sistema computarizado para la acumulacin de registros. Consta de una Base de Datos (BD), descrip tores de la Base de Datos y un Sistema de Administracin de la Base de Datos 116, el cual es utilizado por un programa.

Una BD es una coleccin de archivos de datos computarizados. Los descriptores de la BD describen por ejemplo los campos que estn en los archivos y la longitud de los mismos. El DBMS proporciona facilidades al usuario 127 relativos a la operacin sobre los archivos. Alguna de
6

Corresponde al Data Base Management System (DBMS).

las operaciones son: adicionar y remover archivos, insertar, recuperar, actualizar y eliminar datos de los archivos existentes.

En este caso incluso puede ser un programa.

Mas an el DBMS forma el control y cuidado del mantenimiento de la integridad de la BD. El sistema de BD es una entidad general que puede ser utilizado por muchos usuarios programas en diferentes conexiones. Ejemplo: Programa conve ncional para la emisin de una planilla de pagos.

2.3.4. Sistema Basado en Conocimiento Un Sistema Basado en Conocimiento (SBC) puede ser visto como la evolucin de un sistema de BD. En muchos casos incluye un sistema de BD, e involucra una maquina de inferencias que opera sobre la base de conocimiento interactuando con el sistema de BD.

2.4. FORMALISMOS DE REPRESENTACION DEL CONOCIMIENTO Es til considerar la representacin de conocimiento como una combinacin de estructuras de datos y procesamientos interpretativos capaces de hacer que un programa exhiba un comportamiento experto. Un sistema de inteligencia artificial necesita distintos tipos de conocimiento para comportarse inteligentemente o de modo experto. Algunos tipos son: a) Conocimiento de Objetos: donde se guardan los hechos relacionados con objetos (saber que...). b) Conocimiento de acciones y sucesos: donde se guardan los hechos sobre los sucesos ocurridos (saber que...). c) Conocimiento sobre prestaciones: donde se guardan habilidades como montar una bicicleta, nadar, jugar ftbol, etc. (saber como...).

d) Meta conocimiento: saber sobre lo que se sabe, como ejemplo conocer las limitaciones de nuestro conocimiento. 2.4.1. Redes Semnticas La red semntica fue introducida por Quillian en 1966, bsicamente es un modelo de memoria humana que se encarga de capturar la semntica de las palabras y lograr uso del significado de manera parecida a los seres humanos. Se llama red semntica porque se utiliz originalmente para representar el sentido en las expresiones escritas en lenguaje natural. Desde la perspectiva de la teora de grafos se dice que una red semntica es un grafo compuesto por nodos y arcos. Los nodos representan conceptos de palabras y los arcos se encargan de enlazar los conceptos para establecer las definiciones. Cada palabra o nodo conceptual se considera la cabeza de un plano que contiene su definicin. Los enlaces en el plano representan su definicin. En una red semntica existen apuntadores a supe rclases138, modificaciones, disyunciones, conjunciones y las relaciones sujeto-objeto. Los apuntadores fuera del plano hacen referencia a otros objetos en los cuales se definen. Una red semntica distingue dos enlaces principales: a) subclase es-un: las clases de arriba' estn definidas en trminos de conceptos generales que se asume se cumplen en todas sus subclases. b) modificadores: propiedades particulares de conceptos especficos. Ejemplo 1: Relacin semntica simple que representa Pioln es un ave.

Ejemplo 2: Relacin semntica para representar la relacin entre una silla y su propietario.

El enlace ms notable entre clases es el enlace: es-un (IS-A). A travs de este enlace se establecen tambin relaciones jerrquicas y herencia.

Las redes semnticas tambin son denominadas redes asociativas, debido principalmente al carcter asociativo de los enlaces149. 2.4.2. Armazones1510 En pocas palabras se puede decir que un armazn es una estructura de datos que se encarga de representar situaciones prototpicas. Una de las ideas intuitivas detrs de los armazones, es que la memoria se basa mucho en estereotipos1611. Los sistemas de armazones razonan acerca de clases de objetos utilizando representaciones prototpicas, estas pueden modificarse para capturar las complejidades del mundo real. Los armazones son grandes trozos de informacin que hacen nfasis en el razonamiento por omisin (default). Constan bsicamente de una estructura de datos, con la caracterstica principal de que esta estructura puede incluir informacin declarativa y procedimental. Un armazn consta de un conjunto de ranuras que describen el aspecto de los objetos. Estas ranuras se llenan mediante otros armazones que describen otros objetos. Asociado con cada ranura puede existir un conjunto de condiciones que deben cumplir las entidades que vayan a llenarla. Cada ranura puede tambin llenarse con un va lor por defecto, de forma que, en ausencia de informacin
9

Conocidas tambin como relaciones o asociaciones.

10

En el lenguaje ingles corresponde a la palabra "frame", en algunos textos est traducido como marco, la traduccin correcta nombrada por Frost corresponde a "Armadura" o "Armazn". En este caso hace referencia a las propiedades tpicas de los objetos.

11

especifica, pueda suponerse que las cosas sean lo que usualmente son. Puede tambin asociarse informacin procedimental con cada ranura. Los armazones estn puestos en una jerarqua en donde los armazones de abajo pueden heredar los valores de las ranuras de los armazones de arriba. Normalmente la herencia se hace por medio de los arcos es-un (is-a). Ejemplo 1: Especificar el armazn para representar a un camin. (Camin: Armazn: (nombre camin) (es-un objeto) (color rojo) (llantas 10) ...) Ejemplo 2: Especificar el armazn para describir la silla de Eddy Armazn: SILLA Especializacin de MUEBLE Numero de patas un entero (por omisin 4) Tipo de forro tela, cuero, etc. Numero de brazos 0, 1 o 2 Armazn: SILLA DE EDDY Especializacin de SILLA Numero de patas 4 Tipo de forro cuero Numero de brazos 0 Armazn: Persona Nombre hilera de caracteres Direccin hilera de caracteres Edad rango entre 0 y 100 (en aos) Profesin hilera de caracteres Nota: En el armazn persona se puede adicionar una ranura denominada fecha de nacimiento y un procedimiento que permita calcular la edad actual de la persona. Aqu se puede notar una diferencia sustancial de los armazones, la posibilidad de manejar conocimiento procedimental. 2.4.3. Reglas de Produccin La inteligencia se asocia muchas veces con las regularidades' y el comportamiento inteligente parece que se ejecuta a travs de reglas. Newell y Simon en los aos sete nta proponen los sistemas de produccin como un modelo psicolgico del comportamiento humano. En este

modelo parte del conocimiento humano se representa en forma de producciones o reglas de produccin. Las reglas de produccin se asemejan al proceso de memoria humano: memoria a corto plazo (deducciones intermedias) y memoria a largo plazo (producciones). Normalmente las reglas de produccin se ven como un formalismo en el cual se representa el conocimiento de manera simple y es el formalismo ms utilizado en los sistemas expertos. El formalismo de reglas de produccin debe su origen a los trabajos de Post, enriquecidos en la lingstica con los trabajos de Noam Chomsky. Una regla de produccin consta de un par ordenado de smbolos, miembros izquierdo y miembro derecho, los que forman una pareja de situacinaccin. Existe una amplia variedad de este tipo de sistemas de produccin, desde los ms simples, con un antecedente y un consecuente, hasta las ms complejas de mltiples antecedentes y mltiples cons ecuentes. A cada regla de produccin puede aadirse un factor de certeza probabilstico tanto al antecedente como al consecuente. En una regla de produccin se pueden observar los siguientes elementos: a) Un conjunto N de nombres de objetos en el dominio b) Un conjunto P de propiedades que representan atributos de los objetos c) Un conjunto V de valores que los atributos pueden tener De manera general para representar una regla de produccin se utiliza una tripleta: (objeto atributo valor). De modo formal las reglas se colocan como: P1 , P2, ..., Pm Q1 , ..., Qn, que significa: si las condiciones P1 y P2 y ... y Pm se cumplen entonces se realiza las acciones Q1 y ... y Qn. La estructura general de una regla de produccin es: SI miembro izquierdo (suposicin) ENTONCES miembro derecho (conclusin) Las propiedades de las reglas de produccin son las siguientes: a) Modularidad. Cada regla define un pequeo y relativamente independiente pedazo de conocimiento. b) Incrementalidad. Nuevas reglas pueden ser aadidas a la base de conocimiento de manera relativamente independiente de las dems. c) Modificabilidad. Como consecuencia de la modularidad, las reglas viejas pueden ser modificadas.

d) Transparencia. Hacer referencia a la habilidad de explicar sus decisiones y soluciones Finalmente se puede decir que un sistema de produccin tiene: a) un conjunto de reglas (base de conocimiento) b) un interprete de reglas o mquina de inferencia (que decide que regla aplicar, controla la actividad del sistema) c) una memoria de trabajo (que guarda los datos, metas, y resultados intermedios) Ejemplo No 1: IF: ($AND (SAME CNTXT INFECT PRIMARY_BACTEREMIA) (MEMBF CNTXT SITE STERILESITES) (SAME CNTXT PORTAL GI)) THEN: (CONCLUDE CNTXT INDENT BACTEROIDES TALLY.7) Que puede ser interpretado como: SI: la infeccin es una bacteremia primaria, y el lugar de cultivo es un sitio estril y el conducto sospechoso para su entrada al organismo es va canal gastrointestinal. ENTONCES: Existe una evidencia sugestiva de 0.7 de que la identidad del organismo sea un bacteroide. Ejemplo 2: SI Animal es-un carnvoro Y Animal color caf Y Animal tiene rayas ENTONCES Animal es tigre Ejemplo No 3: SI un empleado divulga proyectos secretos. ENTONCES l viola la poltica de la compaa Ejemplo No 4: SI un estudiante no lee mucho (.80) ENTONCES corre el peligro de quedar desactualizado (.95) En este ejemplo puede observarse los factores de certeza probabilsticos en la suposicin y en la conclusin. 2.4.4. Redes de Herencia Estructurales Como principio de la explicacin se indica que Ronald J. Brachmann identifica cuatro niveles diferentes en los que se utilizan las redes semnticas: a) El nivel de implementacin, en el cual las redes son vistas como estructuras de datos, con punteros y listas como primitivas. b) El nivel lgico, en el cual los operadores lgicos y predicados son primitivas, llevando a la red semntica como una variante notacional de alguna lgica. c) El nivel conceptual que enfoca sobre relaciones conceptuales y semnticas, las primitivas

en este nivel son, por ejemplo, las relaciones de casos y acciones primitivas y objetos 1712. d) El nivel lingstico, en el cual las palabras arbitrarias y las expresiones son utilizadas como primitivas, las cuales son por tanto grandemente dependientes del lenguaje. Adems Brachman argumenta que un nivel importante no es considerado en los anteriores cuatro niveles es el nivel epistemolgico1813. El nivel epistemolgico es una capa intermedia entre el nivel lgico y conceptual. En este nivel son formadas e interrelacionadas descripciones intencionales. El formalismo denominado red de herencia estructural se encarga de capturar el nivel epistemolgico utilizando un conjunto pequeo de primitivas epistemolgicas. Los principales bloques de construccin de este formalismo son los conceptos. Los conceptos son descritos por superconceptos, por roles, que son posibles relaciones a otros conceptos, y por descripciones estructurales, que se encargan de contar las relaciones entre roles. Los conceptos son en su divisin: a) Conceptos genricos: destinados para denotar clases de individuos. b) Conceptos individuales: destinados para denotar individuos. La clase formadora de los conceptos puede ser dividida a su vez en: a) Conceptos definidos: completamente determinados por su descripcin. b) Conceptos primitivos: parcialmente determinados por su descripcin. Clase natural: que no puede ser descrita de forma exhaustiva, por ejemplo las especies de animales. Ejemplo: Taxonoma simple de conceptos

12 13

En este nivel conocidos como grafos de dependencia conceptual. Hace referencia a lo estructural o descripcional.

2.4.5. Representacin Terminolgica La primera implementacin de las redes de herencia estructural fue KLONE1914, que evolucion con el paso de los aos y ha provocado esfuerzos de investigacin substanciales en la forma de aplicaciones, trabajo terico y el desarrollo de sistemas similares, documentados en muchos eventos y reuniones. KL-ONE ha logrado un estatus afrontado a los pocos esfuerzos en la breve historia de la IA, en un periodo significativo de tiempo (al menos seis aos) y sobre un numero de proyectos, ha servido como el fundamento central para mucha de la investigacin bsica sobre la representacin del conocimiento, y al mismo tiempo ha proporcionado soporte para la representacin en un numero grande de sistemas implementados de IA. En esencia KL-ONE representa: a) las relaciones entre un concepto y sus roles, b) las relaciones entre un concepto y sus descripciones estructurales, c) la estructura interna de un rol, d) la estructura interna de una descripcin estructural, e) relaciones entre partes de las descripciones estructurales y los roles.

14

Esta denominacin original sufri una variacin para denominarse KL-ONE.

KL-ONE distingue entre conocimiento terminolgico y conocimiento asercional. El nivel terminolgico tiene que ver con un conjunto de descripciones intencionales normadas por un pequeo conjunto de operadores formadores de conceptos y sus relaciones taxonmicas, las cuales estn determinadas por sus propiedades estructurales. Esas relaciones taxonmicas no tienen importancia asercional pero pueden utilizarse las descripciones para hacer aserciones acerca del mundo, y por virtud de su estructura pueden realizar inferencias adicionales. En esencia KL-ONE ha resultado sobre el inters en la funcionalidad, en la que en lugar de preguntar. Que estructuras debera mantener el sistema para el usuario? se pregunta Que es lo que exactamente debera hacer el sistema para el usuario?. Visto desde este ngulo KL-ONE puede ser dividido en dos componentes: a) TBOX es un componente terminolgico utilizado para hacer definiciones y para razonar acerca de las relaciones entre esas definiciones. b) ABOX es un componente utilizado para hacer aserciones. Mientras que el TBOX est muy bien definido, el tratamiento del ABOX en el KLONE ha sido superficial y fortuito. 2.4.6. Guiones2015 Un guin es una forma de representar una situacin prototpica2116, pero en lugar de tener una descripcin de un objeto, el guin describe una secuencia de eventos. A diferencia del armazn, se presenta en un contexto particular. Para describir una secuencia de eventos, el guin utiliza un conjunto de ranuras que contienen informacin acerca de gente, objetos y acciones involucradas en los eventos. Un guin es una estructura utilizada para guardar prototipos de secuencias de sucesos. Se pueden emplear muchos componentes diferentes para construir un guin. Algunos de los ms comunes son:

15 16

Traduccin de la palabra inglesa Script. En algn sentido parecido a los armazones.

a) Condiciones de Entrada: Condiciones que deben existir para que el libreto se pueda aplicar. b) Resultados: Condiciones que sern verdaderas despus de que hayan ocurrido los eventos en el guin. c) Utilera: Ranuras que representan objetos involucrados en el guin. d) Papeles: Ranuras que representan agentes que realizan acciones en el guin. e) Escenas: Secuencias especificas de eventos que hacen al guin. Ejemplo: Guin que representa el viaje a un estadio de ftbol. Guin : Viaje al estadio Utilera: Automvil Llaves Puerta automvil Espacio de parqueo Papeles: (Roles) Dueo (propietario) Acomodador Vehculos (Valet) Condiciones de ingreso: Dueo y automvil en punto de partida Escena 1. ARRANQUE Dueo busca llaves Dueo abre puerta automvil Dueo arranca automvil Dueo pone automvil en marcha Escena 2. CONDUCCION Dueo encuentra transito libre Dueo ingresa al trafico Dueo se dirige al estadio Escena 3. CONTACTO CON ACOMODADOR Dueo buscar primer espacio libre Dueo parquea automvil Dueo sale del automvil Dueo encarga al acomodador

RESULTADO: Propietario en el estadio y automvil parqueado Ejercicios #2 1. Establecer un modelo conjunto que utilice los dos modelos holsticos observados en este captulo.. 2. Desarrolle un mtodo para representar conocimiento con redes semnticas a partir de los armazones. 3. Complemente su visin de las redes semnticas investigando lo referente a los sistemas de redes semnticas ARCH y SCHOLAR. 4. Construir una red semntica que represente la informacin relativa a una competencia ciclista. 5. Representar conocimiento con guiones para viajar de una capital departamental de Bolivia a otra, empleando el transporte adecuado (emplear costo-beneficio).

6. Empleando el modelo conjunto realstico-simple y lgico-matemtico, desarrolle el marco de explicacin de la geometra euclidiana. 7. Establecer las reglas necesarias para realizar el diagnstico de evaluacin de los alumnos en una determinada materia de un plan de estudios. 8. Definir una red de herencia estructural para representar el conocimiento de la burocracia (emplear la Direccin de una determinada Carrera universitaria y los diferentes procesos que realiza). Establecer roles y restricciones. 9. Elegir el formalismo adecuado para representar el conocimiento asociado a la compra de una computadora, la computadora debe ser utilizada como cliente de un sistema distribuido. 10. Construir un guin pa ra representar la ingesta de alimentos por parte de un comensal con dinero en un restaurante. Bibliografa Lucas, P. y Van der Gaag, L. Principles of Expert Systems. Addison Wesley, 1991. Brachman, R y Levesque, H. Readings in Knowledge Representation. Morgan Kaufmann, 1985. Russel, S., Norvig, P., Artificial Intelligence: A Modern Approach , Prentice-Hall, 1995. Jackson, P. Introduction to Expert Systems. Addison-Wesley, 1990 (2a. edicin). Winston, P., Artificial Intelligence. Addison-Wesley (Tercera Edicin) 1992. Shapiro, S.C. Encyclopedia of Artificial Intelligence. Wiley, New York (segunda edicin), 1992. Is the Brain Mind a Computer Program? John R. Searle. Scientific American, Jan. 1990, pp. 2631. Could a Machine Think? Paul M. Churchland, Patricia Smith Churchland. Scientific American, Jan. 1990, pp. 32-37. On Computational Wings: Rethinking the Goals of Artificial Intelligence. Kenneth M. Ford, Patrick J. Hayes. Scientific American, Vol. 9 (4): pp. 78-83. Christopher John Hogger, Essential of Logic Programming, Oxford University Press, 1990. Referencias Electrnicas ARPA Knowledge Sharing Effort Informacin y programas relacionados con el ARPA Knowledge Sharing Effort, en Stanford. http://www-ksl.stanford.edu/knowledge-sharing/README.html CODE4 Entornos por descripcin orientada a conceptos, en la Universidad de Ottawa. http://www.csi.uottawa.ca/~tcl/CODE4.html Description Logics Teoras y sistemas para expresar conocimiento estructurado.

http://dl.kr.org/dl/ KADS Esprit Project Metodologa para el desarrollo basado en el conocimiento. http://www.swi.psy.uva.nl/projects/ CommonKADS/home.html Knowledge-Base Projects Proyectos KB alrededor del mundo; lista completada por Peter Clark. http://www.cs.utexas.edu/users/mfkb/related.html Knowledge Sharing and the Logic Group at Stanford Informacin sobre el KIF (Formato de intercambio de conocimiento) en Stanford. http://hpdce.stanford.edu/logic.html KQML Investigaciones sobre el conocimiento y la manipulacin del lenguaje, en la Universidad de Maryland, Baltimore Country. http://www.cs.umbc.edu/kqml/ Multifunctional Knowledge Base Group Universidad de Texas en Austin. http://www.cs.utexas.edu/users/mfkb/index.html SNePS Research Group SNePS es un sistema KRR integrado totalmente y desarrollado en SUNY Buffalo. http://www.cs.buffalo.edu/pub/sneps/WWW/index.html

AUTOEVALUACION FORMATO EVALUACION ACTIVIDAD INDIVIDUAL Cada tarea individual ser revisada y evaluada segn esta pauta de carcter formativo, se considerarn los siguientes aspectos:
Actividad N _____ Nota : Formativa Nombre: ________________________________________________________ Fecha: Aspectos considerados en la revisin Fecha recepcin Envo archivo Presentacin de los contenidos Respuesta a lo solicitado Nivel de profundidad y/o anlisis Observaciones

Fecha :

PAUTA EVALUACION PRESENTACIN FINAL PROYECTO Nombre de los integrantes en orden de presentacin:

1._____________________________________________________________________ 2._____________________________________________________________________ 3._____________________________________________________________________ 4._____________________________________________________________________ 5. ASPECTOS A EVALUAR Dominio del contenido de persona que expone en representacin del grupo Exposicin complementada con el uso del recurso tecnolgico (presentacin en PPT) Defensa del proyecto con calidad y precisin de las respuestas del expositor y/o grupo Habilidad para motivar y mantener la atencin de la audiencia por parte del expositor. Coordinacin grupal para antes, durante y despus de la presentacin. Exposicin dentro del tiempo estipulado (15 minutos por grupo). Puntaje mximo 14 puntos Nota 10%
Puntaje por aspecto para cada integrante (1 a 3 puntos y 1 a 2 puntos)

1 1/ 2 / 3 1/2/3 1/2 1/2 1/2 1/2

2 1/ 2 / 3 1/2/3 1/2 1/2 1/2 1/2

3 1/ 2 / 3 1/2/3 1/2 1/2 1/2 1/2

4 1/ 2 / 3 1/2/3 1/2 1/2 1/2 1/2

5 1/ 2 / 3 1/2/3 1/2 1/2 1/2 1/2

Nombre del Tutor: ________________________________________________________

AUTOEVALUACION Evaluacin individual de cada integrante del grupo Nombre: _______________________________________ Fecha: _____________

A continuacin se presenta una serie de aspectos relacionadas con su participacin en el desarrollo del curso acadmico Para autoevaluar su participacin individual y grupal, asigne para cada aspecto un puntaje de 1 a 5. Aquellos aspectos o afirmaciones aseveraciones que no puede calificar, asigne 0 (cero) y justifique por escrito. Puntaje y su descripcin: 1 2 Insuficiente Menos que regular

3 Regular

4 Bueno

5 Muy Bueno

Aspectos o afirmaciones Estuve en permanente contacto con mi grupo colaborativo. Me comuniqu con mi tutor frente a alguna emergencia, duda, etc. Acus recibo de las comunicaciones realizadas por e-mail. Realic las tareas que me compromet en forma oportuna Colabor oportunamente en la fases del desarrollo de las guas didcticas Tom en cuenta las observaciones y sugerencias hechas por el tutor en la planificacin de las actividades. Busqu otras fuentes de informacin (textos, URL, etc.) para el desarrollo del sitio web. Particip activamente en el desarrollo de los contenidos de la gua didctica Particip activamente en las reuniones grupales para la realizacin de las actividades. Los aportes realizados a mi grupo de trabajo fueron oportunos. Mantuve una interaccin respetuosa con mis compaeros de grupo y tutor. Asist puntualmente a todas las reuniones fijadas por el grupo Qu aspectos ha mejorado en sus procesos de aprendizaje

Puntaje

Justificacin para afirmaciones o aspectos no calificadas con puntaje de 1 a 5:

COEVALUACION
Evaluacin del coordinador a su grupo o de cada integrante del grupo a un compaero

Nombre del Evaluador:___________________________ Fecha: ____________ El trabajo grupal colaborativo relaciona con la participacin y aporte de cada integrante en las actividades grupales solicitadas en la gua, en aspectos como son la discusin, anlisis y generacin conjunta de los contenidos requeridos en los mismos, al igual que la participacin activa y colaborativa en el proceso de aprendizaje. Como Integrante de su grupo de trabajo, le solicitamos evaluar el grado de participacin de cada uno de los participantes, asignando un puntaje de 1 a 5 para cada una de los siguientes aspectos. Aunque esta evaluacin implica apreciacin personal, le solicitamos que asigne el puntaje de manera objetiva. Puntaje y su descripcin:
1 Insuficiente 2 Menos que regular 3 Regular 4 Bueno 5 Muy Bueno

NOMBRE DEL PARTICIPANTE AFIRMACIONES aspectos


Asisti a las reuniones de trabajo de grupo. Mantuvo permanente comunicacin con el resto de los participantes del grupo. Ayud a aclarar dudas o confusiones en torno a los temas tratados en las actividades. Intercambi informacin, datos, ideas, etc. con sus compaeros de grupo durante el desarrollo de las actividades. Hizo algn aporte en el desarrollo de las actividades. Particip en la solucin de problemas durante el trabajo grupal. Ayud a organizar el trabajo grupal. Fue responsable con las acciones asumidas dentro del grupo de trabajo. Fue puntual en las reuniones convocadas para el trabajo grupal. Mantuvo una interaccin respetuosa con todos los integrantes del grupo. Consider las ideas y aportes del resto del grupo de trabajo. Colabor en la bsqueda de informacin y recursos para la fase del desarrollo de las unidades didcticas. En su rol de Coordinador del grupo de trabajo o de integrante le solicitamos nos seale cmo se sinti respecto al trabajo en equipo, adems de las debilidades y fortalezas percibidas en su grupo de trabajo. _______________________________________________________________________________ _______________________________________________________________________________

S-ar putea să vă placă și