ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDACTICO DEL CUSO: 90169 INTELIGENCIA ARTIFICIAL
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA
PROGRAMA DE INGENIERA DE SISTEMAS
90169 INTELIGENCIA ARTIFICIAL
ANGELA MARIA GONZALEZ AMARILLO Directora Nacional
MARCO ANTONIO LPEZ Acreditador
Julio de 2013 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA CONTENIDO DIDACTICO DEL CUSO: 90169 INTELIGENCIA ARTIFICIAL
ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO
El presente mdulo fue iniciado en el ao 2005 por el Ing. Edgar Alberto Quiroga, docente de la UNAD, y ubicado en la zona Centro Boyac, el Ing. Quiroga es Ingeniero de Sistemas, y especialista en Binica de MIT, se ha desempeado como tutor de la UNAD desde el 2001 hasta el ao 2007 hoy docente de la UPTC.
El presente mdulo ha tenido tres actualizaciones, desarrolladas por el ing. John Arroyave Gutirrez, quien ha sido tutor de la UNAD en el CEAD Medelln. Adicionalmente, el Ing. Nelson Castro Cacante, tutor de la UNAD en la Guajira, apoy el proceso de revisin de estilo del mdulo en aspectos disciplinares, didcticos y pedaggicos durante el proceso de acreditacin de material didctico desarrollado en el mes de julio de 2009.
El presente mdulo, como herramienta para el aprendizaje autnomo, no espera reinventar o redefinir el conocimiento sobre la Inteligencia Artificial sino que articula mltiples fuentes de informacin donde se publican teoras, problemas y ejercicios comunes sobre el tema para que el estudiante adquiera el conocimiento y competencias esperadas. En ese orden de ideas es normal que el mdulo cuente con mltiples referencias hacia otros textos o sitios web que extienden los temas aqu tratados y que se relacionan en las fuentes bibliogrficas.
La ltima versin de este mdulo fue emitida en Junio de 2013. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL INTRODUCCIN AL CURSO nteligencia Artificial es un curso de carcter terico, que se inscribe en el campo de formacin electiva profesional del Programa de ngeniera de Sistemas con un valor acadmico de tres crditos. El estudiante en el desarrollo de este curso recibe una introduccin al rea de la nteligencia Artificial (A) 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 A 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 utiliza 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, aunque su carcter sea terico, en el curso se consideran los trabajos prcticos complementarios como el medio ideal para: Fomentar la capacidad evaluadora y de decisin de los estudiantes. Comprender y afianzar los conocimientos adquiridos en el estudio terico del curso. Conseguir que los estudiantes 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 A 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 estudiante. 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 activar los UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL aprendizajes y la formacin, que favorece 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, para algunas actividades 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 se debe olvidar que la evaluacin global del curso se compone de un examen nacional (o prueba final) con un peso del 40% y una calificacin de seguimiento obtenida como el cmputo de las calificaciones obtenidas en las diferentes actividades solicitadas por el tutor o realizadas a travs del aula virtual y con un peso del 60%. Para el desarrollo del curso es importante el papel que juegan 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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, sitios web, 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 y sitios Web especializados 1 . 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 usted se proponga como hbito personal. No deje acumular su trabajo para la vspera de la fecha de entrega de las tareas. Tenga presente que un crdito acadmico representa 48 horas de estudio y por lo tanto este curso espera que usted dosifique su tiempo para que estudie al menos 144 horas durante el perodo acadmico. Organizacin del material y de estudio: planifique diariamente tanto el tiempo como el material que va a utilizar y revisar en cada actividad. ntercambie 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 nternet. Desarrollo de tareas individuales y grupales: desarrolle a conciencia cada una de las tareas individuales y grupales a distancia. La suma de estos trabajos integra gran parte de su 1 La Universidad Nacional Abierta y a Distancia cuenta con una biblioteca virtual con ms de 30.000 ejemplares en formato digital que le permiten al estudiante encontrar informacin sobre diferentes reas, descargarla, imprimirla, etc. Ms informacin en http://biblioteca.unad.edu.co UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL trabajo final. Las competencias que promueve el curso y que son necesarias para todo ingeniero son: COGNTVA: Capacidad de apropiarse de un conjunto de conocimientos a travs del desarrollo, monitoreo y aplicacin de procesos de pensamiento. COMUNCATVA: 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. VALORATVA: 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 aprendizaje autnomo 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, nternet, 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 cuando la actividad as lo solicite. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL INDICE DE CONTENIDO UNIDADES DIDCTICAS Primera Unidad CaptuIos Temas NTRODUCCN A LA NTELGENCA ARTFCAL Objetivos y aplicaciones de la inteligencia Artificial nteligencia, definicin de nteligencia Artificial (A) y evolucin histrica Tcnicas de resolucin de problemas de A Criterios de xito de la A Resolucin de problemas de A: Agentes nteligentes Definiciones y caractersticas de un Agente nteligente. Tipos y arquitecturas de agentes. Complejidad de los problemas. Problemas de tiempo polinomial (P) Problemas no polinomiales (NP) Segunda Unidad CaptuIos Temas LOS SSTEMAS DE BUSQUEDA ntroduccin a los sistemas de bsquedas El papel de la bsqueda en la nteligencia 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 Genticos Bsqueda en sistemas de juegos Tercera Unidad CaptuIos Temas REPRESENTAC N DEL CONOCMENTO Y RAZONAMENTO El papel del conocimiento en la nteligencia Artificial. Paradigmas simblico y conexionista. Modelos de representacin Puntos de vista declarativos y normativos Aplicaciones en la ciencia e ngeniera Representacione s basadas en lgicas El lenguaje de la lgica de predicados Extensiones de la lgica clsica Programacin lgica Gestin de reglas de produccin nferencia Reglas de produccin sin y con variables ntroduccin al aprendizaje automtico de reglas. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL INTENCIONALIDADES FORMATIVAS PROPSITOS Facilitar la apropiacin de conocimientos para que el estudiante pueda Adquirir los conceptos bsicos de la nteligencia 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 (A) y conocer 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 nteligentes, su funcionamiento, estandarizacin y elementos que los componen. Explorar los conceptos bsicos sobre redes neuronales y lgica difusa. 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 nteligencia Artificial. El objetivo de la nteligencia Artificial consiste en la construccin de sistemas tanto en 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 prctico y definir la nteligencia 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 nteligencia 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, redes neuronales, sistemas difusos, etc. El curso acadmico se centra 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 entonces, 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 deI 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 estudia 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 a partir del concepto de heurstica, y apoyados en el concepto de la Wikipedia 2 que indica que "heurstica es la capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines. La capacidad heurstica es un rasgo caracterstico de los humanos, desde cuyo punto de vista puede describirse como el arte y la ciencia del descubrimiento y de la invencin o de 2 Heurstica. (2010, 3) de junio. Wikipedia, La enciclopedia libre. Fecha de consulta: 19:30, junio 29, 2010 en Wikipedia UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL resolver problemas mediante la creatividad y el pensamiento lateral o pensamiento divergente. La palabra heurstica aparece en ms de una categora gramatical. Cuando se usa como sustantivo, identifica el arte o la ciencia del descubrimiento, una disciplina susceptible de ser investigada formalmente. Cuando aparece como adjetivo, se refiere a cosas ms concretas, como estrategias heursticas, reglas heursticas o silogismos y conclusiones heursticas. Claro est que estos dos usos estn ntimamente relacionados ya que la heurstica usualmente propone estrategias heursticas que guan el descubrimiento. Es decir que ayuda a los expertos en un campo a resolver problemas de forma ms eficiente, que a los faltos de experiencia en el mismo campo. Caractersticas de Ia InteIigencia ArtificiaI. La caracterstica fundamental que distingue a los mtodos de nteligencia 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 nteligencia 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 nteligencia 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 nteligencia 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL UNIDAD DIDCTICA 1 INTRODUCCIN A LA INTELIGENCIA ARTIFICIAL INTRODUCCIN La nteligencia Artificial, o A en trminos cortos, es una combinacin de la ciencia de los computadores, la sicologa y la filosofa. La A cubre un espectro amplio, consistente en campos de estudio diferentes, estos van desde la visin por computador hasta las redes neuronales y los sistemas expertos. El elemento que los campos de la A 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? OBJETIVO GENERAL Establecer los principios que rigen la inteligencia artificial sus aplicaciones y evolucin. OBJETIVOS ESPECIFICOS Reconocer las diferentes definiciones de inteligencia artificial y la evolucin histrica de la inteligencia artificial. Describir y usar las tcnicas de resolucin de problemas con el nimo de establecer normas para este propsito. Reconocer el uso de los agentes inteligentes y su aplicacin Estudiar la complejidad de los problemas y representar su estructura y las posibles soluciones UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL ESTRUCTURA TEMATICA Primera Unidad CaptuIos Temas 1. ntroduccin a la nteligencia Artificial 1.1. Objetivos y aplicaciones de la inteligencia artificial 1.1.1 Definicin de nteligencia Artificial (A) y evolucin histrica 1.1.2. Tcnicas de resolucin de problemas de A 1.1.3. Criterios de xito de la A 1.1.4. Resolucin de problemas de A: 1.1.4.1. Definicin formal del problema 1.1.4.2. Estrategia de control: Mtodos de bsqueda 1.1.4.3. Anlisis del problema 1.2. Agentes nteligentes 1.2.1 Definiciones y caractersticas de un Agente nteligente. 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 Objetivos y ApIicaciones de Ia InteIigencia ArtificiaI 3 InteIigencia, definicin de InteIigencia ArtificiaI. 4 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 nteligencia, sin embargo algunas definiciones mencionadas por algunos investigadores son: a) BNET: 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. 3 nteligencia Artificial. (2010, 17) de mayo. Santiago, Pablo David. Fecha de consulta: marzo 15, 2010 disponible en este enlace. 4 ntroduccin a la nteligencia Artificial. (2009, 21) de agosto. Absolo, Maria Jos. Universitat de Les lles Balears. Fecha de consulta: marzo 15, 2010 disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL d) VERNON: todo lo relacionado con capacidad para pensar o eficiencia mental. e) BURT: capacidad innata, general, habilidad cognoscitiva. f) HEM: 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) PAGET: adaptacin al entorno fsico y social. i) MNSKY: 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 5 . 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. 5 nteligencia Artificial . (2007, 6) de junio. Jess Rocha Vera, Adrian Quisbert Vilela, Juan Condori Canaviri. Universidad Salesiana de Bolivia. Fecha de consulta: abril 16, 2010 disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 A puede considerarse como parte de la ingeniera o de la ciencia: El objetivo ingenieril de la A 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 A 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. AIgunas apIicaciones de Ia inteIigencia artificiaI: Tareas de la vida diaria (ms difcil para una mquina que las tareas de un experto) Percepcin (visin y habla) Lenguaje natural (comprensin, generacin, traduccin) Sentido comn Control de un robot Tareas formales Juegos (ajedrez, backgammon, damas) Matemticas (geometra, lgica, clculo, demostracin de propiedades) Tareas de los expertos (necesitan un conocimiento menor que el conocimiento necesario en las tareas ms comunes) ngeniera (diseo, deteccin de fallos, planificacin de manufacturacin) Anlisis cientfico Diagnosis mdica 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 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL diseo interno) d) Determinar que es lo que puede ser generalizado acerca del sistema, las lecciones que ensea, las reas de impacto. reas de investigacin 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 computador, 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 nferencia. 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) nterfaz de Usuario. Se refiere a la entrada/salida al usuario del sistema, incluyendo, normalmente, mecanismos de pregunta (porqu) y de explicacin (cmo). e) nterfaz 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 A. Un sistema de computadores que trabaje con tcnicas de A deber estar en situacin de combinar informacin de forma "inteligente", alcanzar conclusiones y UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL justificarlas. Los Sistemas Expertos son una expresin de los sistemas basados en el conocimiento. Con la aplicacin de tcnicas de nteligencia 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. El Procesamiento del Lenguaje Natural (PLN) es una parte esencial de la A que investiga y formula mecanismos computacionalmente efectivos que faciliten la interrelacin hombre mquina 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 hombre-maquina 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 computador 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 deI HabIa Hace ya tiempo que se estudia la posibilidad de desarrollar interfaces hombre-mquina controlados por la voz para sustituir en ciertas aplicaciones a las interfaces tradicionales UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 rdenes 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 rdenes 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. ncrementa 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 nteligencia 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 un computador 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL no clsicas como la Lgica Difusa, las Redes Neuronales, los Algoritmos Genticos, la Realidad Virtual, la Vida Artificial, los Agentes nteligentes, etc. En este mdulo se intenta brindar 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. DesarroIIo histrico de Ia InteIigencia ArtificiaI segn Jackson: 1950-1965. Periodo "cIsico'' Gestacin [McColluck y Pitts, Shannon, Turing] 1956, la .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 A del MT), Shannon (laboratorios Bell), Rodhester (BM), Newell (presidente de la A.A.A.. Asociacin Americana de A), Simmon (premio Nbel de Carnegie Mellon University) - Redes neuronales, robtica (Shakey). Bsqueda en un espacio de estados, Heursticas, LSP. 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 - actuaIidad. Periodo "moderno'', InteIigencia "especifica'' vs. "generaI'' Se identifica la necesidad de trabajar en sociedad con profesionales de otras reas de UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL conocimiento. Representacin explcita del conocimiento especfico del dominio. Sistema experto mdico MYCN (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 A
1.1.2 Tcnicas de resoIucin de probIemas de InteIigencia ArtificiaI Uno de los resultados que surgieron de las primeras investigaciones en A 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 A 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 A con independencia del problema a tratar.
Para solucionar problemas complicados, los programas que utilizan las tcnicas de A 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Como contraposicin, generalmente tienen ms complejidad que otras soluciones. Se anaIizan brevemente a continuacin dos tipos de probIemas bien diferenciados, y dentro de cada uno se ejempIifica Io que se entiende por una tcnica de IA. EjempIo 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] 6 Ejemplo de tres en raya finalizado. 7 El tres en raya, tambin conocido como juego del gato, tatet, triqui, tres en gallo, michi o la vieja, es un juego de lpiz y papel entre dos jugadores: O y X, que marcan los espacios de un tablero de 33 alternadamente. Un jugador gana si consigue tener una lnea de tres de sus smbolos: la lnea puede ser horizontal, vertical o diagonal. Esta partida la gana el primer jugador, X: SoIucin 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. SoIucin 2: El programa posee una estrategia para cada turno de jugador. Analiza el posible triunfo a 6 [Rich98] Rich E., Knight K. Inteligencia Artificial. McGraw-Hill, SBN: 84-481-1858-8, 1998 7 Tres en lnea. (2010, 1) de julio. Wikipedia, La enciclopedia libre. Fecha de consulta: 19:16, julio 6, 2010 disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 fcil 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. SoIucin 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 A. EjempIo 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 POLTCS (Carbonell, 1980). A continuacin se plantean tres soluciones diferentes analizando la conveniencia de cada una. Para mejor detalle de las mismas consultar [Rich98]. 8 SoIucin 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 8 [Rich98] Rich E., Knight K. Inteligencia Artificial. McGraw-Hill, SBN: 84-481-1858-8, 1998 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 A no incluye programas como ste, sta tcnica es la usada en uno de los programas ms clebres de A, ELZA. SoIucin 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. SoIucin 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 A, pues est basado en el conocimiento y en uso computacional eficaz de ese conocimiento. Estos ejemplos ponen de manifiesto tres importantes tcnicas de A: Bsqueda: proporciona una forma de resolver problemas en los que no se dispone de un mtodo directo Uso deI 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.1.3 Criterios de xito de la nteligencia Artificial Para determinar el xito de un programa de A, 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? UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 separada de otra persona y un compuador 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 A 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 computador 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 A, se debe intentar especificar tan bien como sea posible el criterio de xito para el funcionamiento del programa en su dominio particular. 1.1.4 Resolucin de problemas de nteligencia Artificial 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.1.4.1. Definicin formaI deI probIema 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 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 estados 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 A. 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 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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: ProbIema de Ias jarras de agua Se tienen dos jarras de agua, una de 4l y otra de 3l sin escala de medicin. Se desea tener 2l de agua en la jarra de 4l. Las siguientes operaciones son vlidas: llenar las jarras, tirar agua de las jarras, pasar agua de una jarra a otra. SoIucin: 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Ejercicio 2: ProbIema de Ios CanbaIes 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. 9 SoIucin: 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 canbales 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 canbales 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) 9 Una animacin del problema y un juego interactivo del mismo donde el estudiante puede probar las reglas puede ser encontrado en el contenido en lnea del curso UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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.1.4.2. Estrategia de controI: Mtodos de bsqueda 10 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 controI 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 10 Una ampliacin del tema puede ser encontrada en la segunda unidad didctica de este mdulo. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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. Se le recomienda al lector realizar este ejercicio como prctica. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 llegado 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 inicialmente 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Las heursticas pueden ser: GeneraIes: 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 especiaI: 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.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 1.1.4.3. AnIisis deI probIema 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 eI probIema en subprobIemas 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 Ia soIucin? 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: RecuperabIes: 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 recuperabIes: 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 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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. IgnorabIes: 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 predecibIe eI universo deI probIema? 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 soIucin es buena de manera absoIuta o reIativa? La solucin de un problema puede consistir en encontrar: AIgn 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. EI mejor camino: mporta 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 5. La soIucin deseada es un estado o Ia ruta hacia un estado? La solucin de un problema puede consistir en encontrar: Un estado finaI: No es necesario el registro del proceso seguido, slo importa arribar a la solucin final. Por ej. nterpretar texto. Una ruta hacia un estado finaI: Se necesita dar el camino seguido desde el estado inicial al estado final. Por ej. Problema de las jarras de agua. 6. EI conocimiento se necesita para resoIver eI probIema o para restringir Ia bsqueda de Ia soIucin? El conocimiento puede emplearse para: Reconocer Ia soIucin: Se necesita gran cantidad de conocimiento acerca del problema para poder encontrar una solucin. Por ej. comprensin de texto. Acotar Ia 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. EI programa que soIuciona eI probIema busca Ia soIucin soIo o necesita interactuar con una persona? Con respecto a la relacin programa-usuario, existen dos tipos de programas que solucionan el problema: SoIitarios: 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. ConversacionaIes: 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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. Ejercicio propuesto: Torres de Hanoi 11 Definir formalmente y analizar los 7 puntos anteriores en el siguiente problema: Se hallan N discos de distinto tamao apilados sobre una base 1 de manera que cada disco se encuentra sobre uno de mayor radio. Existen otras dos bases vacas 2 y 3. El objetivo es llevar todos los discos de la base 1 hasta la base 3, para lo cual puede usarse la base 2. Considerar que se puede mover slo un disco a la vez, y cada disco puede descansar solamente en las bases y no en el suelo. Recordar que los discos deben situarse siempre sobre uno de mayor radio.
Estado iniciaI deI juego: SoIucin: 11 Una versin en lnea del juego puede ser encontrada en la web de Gonzalo Mena-Mendoza a travs de este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL AGENTES INTELIGENTES 12 Una de las ramas de la inteligencia artificial que empieza a tener ms auge hoy en da, es la de los Agentes nteligentes. A pesar de que sta tuvo su origen a principios de los 80s, es apenas hasta ahora cuando se empieza a ver su aplicacin debido al gran desarrollo que han tenidos las redes. Los Agentes nteligentes 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 nternet 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 nteligentes 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 nteligentes 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 nteligente son una rama de la nteligencia 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 12 Agentes nteligentes, Luz Adriana Roldn Pardo. Estudiante de ngeniera de sistemas Cod.200010075010, Universidad EAFT, Abril de 2004 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 nternet, 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 nternet. Como podemos ver en la imagen de la derecha 13 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. Conceptos bsicos de Agentes 14 13 V. Julin, V. Botti Dpto. sistemas nformticos y Computacin Universidad Politcnica de Valencia vbotti,vingladadsic.upv.es 14 Agentes y Sistemas Multiagente: ntegracin de conceptos bsicos. Grupo de nvestigacin HDRA . Universidad de los Andes. Fecha de consulta: febrero 10, 2010 disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL AGENTE INTELIGENTE 15 maginmonos al llegar por la maana al trabajo, sentarse al teclado del computador 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. maginemos, por el contrario: al sentarnos frente al computador y encontrar una ventana que 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 nteligentes: 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 nteligente, 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 15 Agentes Autnomos nteligentes, REDCientifica. J.J. Merelo disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 TemporaI: El agente debe estar ejecutndose constantemente y desarrollando sus funciones, no se detiene as el usuario no este interactuando con el. PersonaIidad: 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. SociabiIidad: El agente interacta con otros agentes e incluso con otras entidades. RacionaIidad: 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. MoviIidad: capacidad de un agente de trasladarse a travs de una red telemtica. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL CLASIFICACION DE LOS AGENTES INTELIGENTES Los agentes se clasifican segn el entorno en el cual se encuentren: Agentes de refIejo simpIe: Son agentes que funcionan segn un conjunto de reglas condicin-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 Io 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 mviIes: 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 programa 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 Percepciones Acciones Metas Ambiente Sistema de diagnostico mdico Sntomas, evidencias, y respuestas del paciente Preguntas, pruebas y tratamientos Paciente saludable reduccin al mnimo costo Paciente, Hospital Sistema de anlisis de imgenes de satlite Pixeles y colores Clasificacin de escena Clasificacin correcta mgenes enviadas desde un satlite Controlador de Refinera Lecturas de temperatura y presin Abrir y cerrar vlvulas, ajuste de temperatura Lograr rendimiento y seguridad Refinera CONTRUCCION DE AGENTES INTELIGENTES Los Agentes nteligentes son una clase de software con caractersticas especficas. Para llevar a cabo el desarrollo y construccin de Agentes, es recomendable utilizar mtodos similares a los utilizados comnmente en desarrollo de ngeniera de Software y Sistemas de nformacin. De esto se desprende que los procesos a ejecutar son los tpicos Anlisis, Diseo, mplantacin y Prueba. Es importante antes de describir un mtodo que permita desarrollar y construir Agentes nteligentes, considerar el significado del vocablo mtodo. Mtodo viene de UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 unas tcnicas. 16 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 desarroIIo y construccin de Agentes InteIigentes. 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 mplantacin del Agente 5. Proceso de Prueba del Agente Proceso 1. Definicin deI ProbIema deI 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. dentificacin del Problema Actividad 1.2. Anlisis del Problema Actividad 1.3. Construccin del modelo Conceptual de la situacin 16 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 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Proceso 2. Adquisicin y Representacin deI Conocimiento Con 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 deI 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 nferencia o Motor de ejecucin. Actividad 3.3. Diseo de la nterfaz. Actividad 3.4. Diseo del Lenguaje de Comunicacin. Proceso 4. ImpIantacin deI 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 mplantacin. Actividad 4.2. mplantacin del Agente. Tarea 4.2.1 mplantacin de la Base de Conocimiento. Tarea 4.2.1 mplantacin del Motor de nferencia o de ejecucin. Tarea 4.2.1 mplantacin de la nterfaz. Tarea 4.2.1 mplantacin de la Comunicacin. Proceso 5. Prueba deI 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 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 el 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 EIectrnico: 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 ms hacia los Agentes nteligentes ya que cada vez las aplicaciones se hacen ms 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 en cuenta aspectos como: Los Computadores: Se busca que los Agentes nteligentes cada da sean capaces de adaptarse al entorno dinmico que genera la constante evolucin de los computadores y el desarrollo de nternet. 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 nternet. Entornos de desarroIIo: Entorno: plataformas para el diseo, implementacin, pruebas y ejecucin de agentes autnomos y sistemas multiagente. La mayora implementan la arquitectura abstracta de la UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL especificacin FPA (www.fipa.org) y proporcionan servicios o facilidades para la ejecucin de MAS (Multi Agent System), dentro de estos se encuentran los siguientes: ZEUS (BritishTelecom) JADE (Telecom talia) FPA-OS (Emorphia) April Agent Platform (Fujitsu America) JAS (Fujistu America) MASK (MAG, Grenoble) MADKT (U. Montpellier) AgentBuilder (Reticular System) JACK (Agent OrientedSoftware Australia) ZEUS 17 Software libre que contiene un conjunto de herramientas para ayudar en la creacin de sistemas de agentes colaborativos (limitados en competencias y recursos, por lo que deben compartir sus habilidades con otros para realizar un problema ms complejo). Departamento de nteligencia Artificial Doctorado en Ciencias de la Computacin e nteligencia Artificial Curso2002-2003 Ana Garca Serrano y David Teruel agarca@dia.fi.upm.es JADE 18 Java Agent DEvelopment framework Soporta la implementacin de MAS (FPA compliant) : posee una Librera de paquetes para programar agentes, adems herramientas para la depuracin y la ejecucin de agentes. Es adicional una plataforma distribuida para la ejecucin de agentes (heterogneos como Zeus): middle-ware para MAS con servicios para 17 La versin 1.2.1 del software Zeus se encuentra disponible para descargar en este enlace. Un manual tcnico del software podr ser encontrado aqu. 18 La versin 2.6 del Framework Jade puede ser descargado en este enlace. Una librera adicional para la comunicacin de los agentes a travs de protocolo HTTP puede ser descargada aqu. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL agentes como directorios, codificacin y transporte de mensajes, herramientas como monitor remoto de agentes, sniffer agent, dummy agent este software esta completamente desarrollado en JAVA y es de Libre distribucin bajo licencia LPGL. A continuacin se puede encontrar la plataforma distribuida (Jade Container). (Contenedores distintos tres en la figura, cada uno con sus respectivos agentes y que pueden estar en mquinas distintas). Usa los servicios de red que le proporciona Java. Departamento de nteligencia Artificial. Doctorado en Ciencias de la Computacin e nteligencia Artificial Curso2002-2003 Ana Garca Serrano y David Teruel agarca@dia.fi.upm.es EJEMPLO COMPLETO: EL MUNDO DEL SUPERMERCADO 19 Vamos a definir el conocimiento necesario para que un agente pueda comprar alimentos en un supermercado. Para demostrar que tal conocimiento es suficiente probaremos un agente basado en el conocimiento dentro del simulador de ambientes. Para ello necesitaremos un mundo de compras simulado, que necesariamente deber ser ms sencillo que el mundo real. sin embargo buena parte del conocimiento mostrado aqu es el mismo tanto para mundos simulados como para mundos reales. La diferencia es ms bien de gradacin en lo complejo de la visin, el movimiento y la manipulacin tctil. Una descripcin completa de la simulacin de compras Empezaremos por hacer una descripcin PAMA (percepciones, acciones, metas y ambiente) de la simulacin de las compras. En primer lugar, las percepciones: 1. En cada etapa temporal, el agente recibe tres percepciones: tctil, sonora y visual. 19 Fundacin San Valero. El mundo del supermercado. Visitado en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 2. La percepcin tctil se reduce a tropezar o no tropezar. El agente percibe un tropezn slo si en el paso de tiempo anterior ejecut una accin Avance y en la ubicacin a la que intent desplazarse no hay suficiente espacio. 3. La percepcin sonora consiste en una lista de palabras verbales. El agente percibe las palabras por otros agentes, a una distancia de dos cuadros. 4. Si se realiza un acercamiento mediante la cmara, percibir imgenes detalladas de cada uno de los objetos, en el cuadro en donde la cmara est enfocada. 5. Si no hay acercamiento mediante la cmara del agente, ste percibir imgenes difusas de cada uno de los objetos a una distancia de tres cuadrados directamente y diagonalmente frente a l. 6. Las percepciones visuales estn constituidas por la ubicacin relativa, tamao aproximado, color, forma y, quizs algunas otras Caractersticas. Ms adelante se explicar con ms detalle. Ahora, las acciones: 1. Los agentes pueden emitir cadenas de palabras. 2. Los agentes pueden avanzar un cuadro. 3. Los agentes pueden dar vueltas de 90, a la izquierda o a la derecha. 4. Los agentes pueden realizar acercamientos de lo que est enfocando la cmara, en el cuadro en donde se encuentren en un momento dado, o lo que est a una distancia mxima de tres cuadrados directa o diagonalmente frente a ellos. 5. Los agentes pueden hacer alejamientos con su cmara. 6. Los agentes pueden tomar todo objeto que est a una distancia de un cuadro de ellos. Para ello, tiene que especificar las coordenadas relativas de donde se encuentra dicho objeto y tiene que tener las manos vacas. 7. Un agente puede soltar un objeto que haya tomado. Para ello, tiene que especificar las coordenadas relativas del punto en donde desee dejar el objeto. La meta original del agente es comprar todo lo que aparece en una lista de compras. Tal meta se podra modificar si no hubiese algunos artculos o si resultasen demasiado caros. El agente intentar realizar las compras lo ms rpido posible y evitar tropezar con cosas. En un problema ms ambicioso se pedira al agente que cocinase la cena y que elaborara la lista de compras. El ambiente es el interior de la tienda, as como los objetos y las personas que estn dentro de ella. La tienda se representa mediante una cuadrcula, con pasillos que separan las hileras de anaqueles. En un extremo de la tienda estn las cajas registradoras y sus cajeros. Clientes y empleados se encuentran en diversos sitios de la tienda El agente empieza en la entrada y debe salir de la tienda por el mismo cuadro por donde entr. En caso de que se le olvide, hay un letrero de SALDA. Tambin hay letreros para sealar los pasillos, y letreros ms pequeos (legibles slo mediante acercamiento de la cmara) para sealar algunos (no necesariamente todos) artculos que estn rebajados. En el caso de agentes reales, es necesario que descifren las seales de vdeo de la cmara UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL (o la digitalizacin de sta). Supondremos que este trabajo ya fue realizado. Aun as, el elemento visin de las percepciones consta de una compleja lista de descripciones La primera componente de una descripcin es su posicin relativa respecto de la posicin y orientacin del agente. Por ejemplo, la posicin relativa [-2,1] es el cuadro que est a dos cuadros a la izquierda del agente y un cuadro adelante segundo componente es el tamao del objeto, expresado como el dimetro promedio del objetos metros. El siguiente es el color del objeto, expresado como un signo (rojo, verde, amarillo, naranja ...), seguido de la forma del objeto (plano, redondo, cuadrado, ...). Por ltimo, supondremos que en la imagen de vdeo se ha realizado una rutina de reconocimiento de caracteres; si hay letras en el campo visual, se expresarn como una lista de palabras. En la figura se muestra una vista general del supermercado, en la que el agente que est en [4,5]. El agente mira a la izquierda. Cmo organizar eI conocimiento El dominio de la compra de elementos es demasiado grande para abordarlo de una sola vez. En vez de ello, lo dividiremos en pequeos grupos de conocimiento, trabajaremos por separado cada uno de estos para luego ver cmo integrarlos. Un buen mtodo para dividir el dominio por grupos es el de identificar cada una de las tareas que tiene que desempear el agente. A lo anterior se le conoce como descomposicin funcional. Dividiremos el dominio en cinco grupos: PIanificacin deI men: El agente tiene que ser capaz de adaptar la lista de compras cuando en la tienda no haya alguno de los artculos. Navegacin: EI agente debe ser capaz de comprender el efecto de sus acciones de movimiento y crear un mapa interno del mundo. RecopiIacin: El agente debe ser capaz de localizar y tomar los artculos que est buscando. Parte de ello implica inducir la existencia de objetos determinados a partir de las percepciones correspondientes: el agente necesita contar con reglas de reconocimiento que le permitan inferir que un objeto rojo ms o menos esfrico de unos siete centmetros de dimetro podra ser un tomate. Comunicacin: EI agente debe ser capaz de formular preguntas cuando no puede encontrar algo por s mismo. Pago: Aun un tmido agente al que no le guste hacer preguntas deber contar con la suficiente capacidad para comunicarse con otros agentes con el fin de que pueda hacer su pago al cajero. El agente debe saber que 5.00E es demasiado para pagar un tomate, y que si el total de la cuenta asciende a 17.35E, y paga con un billete de 20E deber recibir 2.65E de cambio. Una de las ventajas de la descomposicin funcional es que nos permite plantear un problema completamente dentro de un grupo y ver si el conocimiento puede resolverlo. En otros tipos de descomposicin por lo general es necesario desmenuzar toda la base de conocimientos antes de plantear la primera pregunta. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Planificacin del men Un buen mandadero es capaz de hacer perfectamente las compras si se le da la lista correspondiente. Nuestro agente est ms bien prximo a este ltimo, pero tambin lo dotaremos de cierta capacidad para hacer elecciones inteligentes. Supongamos que un di determinado no hay tomates. Un agente cuya lista de compras tenga "tomates, lechuga, pepino, aceite de oliva, vinagre", se dar cuenta de que se trata de ingre- dientes para preparar una ensalada y se le ocurrir que un pimiento rojo podra ser un buen sustituto, pues aadira color y sabor a la ensalada. Un agente cuya lista sea `tomates, cebolla amarilla, apio una zanahoria, carne molida, leche, vino blanco, tagliatela", inferir que se trata de preparar una salsa a la boloesa (Hazan, 1973), por lo que no hay problema si hace el reemplazo con tomates enlatados. Para hacer estas inferencias, el agente necesita comprender que los artculos de la lista de compras son los necesarios para formar objetos ms complejos conocidos como platos, , que stos a su vez se combinan para formar objetos conocidos como comidas y que a un objeto puede reconocrsele por sus componentes. Nuestro agente tendr que hacer dos tipos de inferencia. La primera, de la lista de partes deber inducir el objeto compuesto que estas partes conforman. Es difcil porque la combinacin de las partes (los artculos de la lista de compras) puede dar por resultado varios objetos compuestos, y tambin porque algunos de los ingredientes no aparecen en la lista (algunos ya estn en casa, en la despensa). La segunda, el agente debe ser capaz de decidir cmo reemplazar una parte que no se encuentra para complementar el objeto compuesto que interesa. Esto se puede hacer en dos niveles: reemplazando un ingrediente por otro y completar as el plato o, de no ser esto posible, reemplazando todo el plato por otro y completar as la comida. Parte del conocimiento necesario tiene que ver con platos especficos y parte es de nivel tan general que podra servir para, por ejemplo, reemplazar el silenciador averiado de un carro. El primer paso consiste en convertir la lista de compras -una lista de palabras- en una lista de partes: una lista de categoras. Se usa el diccionario para asociar palabras con sus referentes respectivos: Referente("tomates", Tomates) Referente("cebollas", Cebollas) El siguiente paso consiste en describir los objetos en funcin de sus partes necesarias y de las opcionales. Si de lo que realmente se trata es de ser capaz de preparar un plato, necesitamos saber ms acerca de las relaciones que guardan entre s las partes. Pero para ir a comprar los ingredientes, slo necesitamos la lista correspondiente. Definimos PartesRequeridas, y PartesRequeridas({Lechuga,Aderezo}EnsaladasDeVerduras) significar que todo objeto que sea un elemento de EnsaladasDe Verduras tiene una ParteRequerida que es un elemento de Lechuga, y otra que es un elemento de Aderezo. El que la lechuga sea una UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL parte requerida de las ensaladas de verduras significa que en cada uno de los elementos de stas hay un elemento de lechuga que forma parte de ellas. Un razonamiento semejante se aplia a PartesOpciona/es, excepto que slo algunos elementos de una categora tienen que manifestar las partes opcionales: b' r, w PartesRequeridas(r, w) ~ d p p e r_ - :> ParteRequerida(p, w) V o, w PartesOpcionales(o, w) ~ b' p p e o => PartesOpcionales(p, w) t 7'r, w ParteDe(r, w) <_-> d c c E w~3 i i e r A ParteDe(i, c) b' o, w ParteOpcional(o, w) <_-> 3 c c e w => >3 i E O n ParteDe(o, c) El paso siguiente consiste en describir comidas y platos en funcin de sus partes respectivas: PartesRequeridas({PlatosPrincipales}, Comidas) PartesOpciona/es({Entradas, Guarniciones, Ensaladas, Postres, ...}, Comidas) PartesRequeridast (Lechuga, Aderezo}, EnsaladasDe Verduras) PartesOpcionales({Tomates, Pepinos, Pimientos, Zanahorias,...), EnsaldasDe Verduras) PartesRequeridas({Pasta, Sa/sa8oloesa}, PastaBoloesa) PartesOpcionales( { QuesoRallado }, PastaBoloesa) PartesRequeridas({Cebollas, Aceite Oliva, Mantequilla, Apio, Zanahoria, Carne Molida, Sal, VinosB/ancos, Leche, Jugo Tomate), SalsaBoloesa) Ahora necesitamos la siguiente infornacin taxonmica sobre platos y alimentos: Ensaladas Verdes c Ensaladas Ensaladas c Platos PastaBoloesa c Entradas Entradas c Platos Tomat es c Jugo Tomate TomatesEnlatados c JugoDeTomate Tagliatela c Pasta Ahora tenemos que decidir qu platos se pueden preparar de la lista de compras "tomates, cebollas amarillas, una zanahoria, carne molida, leche, vino blanco, tagliatela". Como se mencion anteriormente, esto se complica por el hecho de que la sal, la mantequilla y el aceite de oliva necesarios para el plato con salsa boloesa no figuran en la lista de compras. Definiremos el predicado PuedePreparar para que sea vlido entre una lista de compras y un plato siempre y cuando las categoras de la lista -cuando se combinen con ingredientes tpicos- provean todoslos ingredientes indispensables o requeridos de un plato. VI, d PuedePreparar(l, d) <_-> d e Platos A PartesNecesarias(p, d) A p c Combinacin(l, Ingredientes) {Sal, Mantequilla, AceiteDeOliva} c Ingredientes Con lo que hasta ahora contamos podemos inferir que el nico plato que se puede preparar con lo que hay en la lista de compras es la pasta a la boloesa. La siguiente pregunta es qu hacer si no encontramos tomates frescos. Resulta que todo lo que hay que hacer es reemplazar la lista de compras (o la parte de sta necesaria para preparar este plato) por la lista de categoras de partes correspondientes al mismo plato. En este caso, quiere decir que Tomates se reemplazar por JugoTomate, lo que se puede resolver utilizando una lata de TomatesEnlatados. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Navegacin Si un agente busca un libro en una librera, puede recorrer sta de principio a fin, mirando cada libro hasta dar con el que le interesa. Sin embargo, lo ms eficiente sera que mediante el nmero de clasificacin del libro, y con un diagrama que le indicase en qu anaquel se encuentra dicho nmero, localizase directamente el libro en cuestin. Sucede lo mismo en el caso de un supermercado, si bien el catlogo de ste no es tan bueno como el de la librera. El agente de compras deber saber que los Supermercados estn ordenados por pasillos, que en stos hay letreros en donde se explica de manera sucinta qu hay en ellos y los objetos cercanos en la jerarqua taxonmica es muy probable que tambin estn muy prximos fsicamente. Por ejemplo, los inmigrantes britnicos que viven en Estados Unidos aprenden que los paquetes de t se encuentran en el pasillo sealado con el letrero "Caf". Buena parte del problema de la navegacin es que el agente tiene que recordar en dnde empez su recorrido, y puede calcular su ubicacin actual a partir de los movimientos que haya realizado hasta ese momento. El agente tiene la posibilidad de encontrar mejores rutas siempre que est consciente de que por lo general la distribucin de los supermercados se hace por pasillos. En los supermercados los pasillos estn numerados, lo que le evita la pena de tener que hacer recorridos a ciegas. La segunda vez que visita un supermercado puede ahorrar mucho tiempo si recuerda en dnde se encuentra cada cosa. Sin embargo, no es prctico que recuerde la ubicacin exacta de cada artculo puesto que el tomate que ahora se encuentra en la ubicacin [x,y], probablemente ya no est all el da de maana. Un problema tpico de navegacin es el de la localizacin de los tomates. La siguiente estrategia se considera funcional: 1. Si el agente sabe, gracias a una vista anterior, en dnde se encuentran los tomates, calcule la ruta para ir de la ubicacin actual a ese sitio. 2. Pero si se sabe en qu pasillo estn las verduras, disee un ruta para ir a dicho pasillo. 3. De no ser el caso, desplcese al frente del supermercado hasta encontrar el letrero de las verduras. 4. Si nada de lo anterior funcionara, desplcese y pregunte a alguien en dnde estn los tomates. (De esto se habla en la seccin "Comunicacin".) 5. Una vez localizado el pasillo de las verduras, recorra ste con acercamientos de cmara, y busque algo de color rojo. Cuando se localice esto, mediante un acercamiento determine si se trata de tomates. (De esto se habla en la seccin "Recopilacin".) Recopilacin Una vez ubicado en el pasillo correcto, el agente tiene que ir encontrando los artculos de su lista Para ello, debern coincidir las percepciones visuales y las percepciones esperadas de cada categora de objetos. En el mundo del supermercado existen miles de objetos diferentes, muchos de ellos (como los tomates y las manzanas) ofrecen percepciones UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL semejantes. El agente nunca estar totalmente seguro de que con base en sus percepciones haya logrado clasificar correctamente un objeto; lo que s puede es darse cuenta de si una conjetura en efecto es correcta. El agente de compras puede recurrir a una de las siguientes reglas de clasificacin: 1. S solamente una categora conocida corresponde a una percepcin, suponga que el objeto es miembro de dicha categora. (Esto puede dar lugar a errores cuando se tiene ante la vista objetos desconocidos.) 2. Si una percepcin corresponde a varias categoras a la vez, pero un letrero cercano permite identificar una de ellas, suponga que el objeto es miembro de esa categora. 3. Si hay un letrero en un pasillo que identifica una categora (o una supercategora), suponga que el objeto pertenece a dicha categora. Por ejemplo, si nos encontrramos en el pasillo identificado como "Verduras", y no en el pasillo de las "Frutas", una percepcin redonda, roja, la categorizaramos como un tomate, no como manzana. En un partido de cricket, podra interpretarse como otra cosa. Para implantar lo anterior, empezamos con un conjunto de reglas causales correspondientes a las percepciones: b'x x e Tomates ~-~-> ColorSuperficie(x, Rojo) dx x E NaranJas _-:> ColorSupenrcie(x, Naranja) b'x x e Manzanas =;> ColorSuperficie(x, Rojo) v ColorSuperficie(x, Verde) b'x x E Tomates ~ Forma(x, Redonda) b'x x E Naranjas ~ Forma(x, Redonda) b'x ColorSuperficie(x, c) A Visible(x) => ProducePercepcinColor(x, c) dx Forma (x, s) A Visible(x) _-:> ProducePercepcinForma(x, s) Reglas como las anteriores, y otras ms semejantes, constituyen una muestra de una teora causal acerca de cmo a partir de los objetos del mundo se forman las percepciones. Observe cun simplista es. Por ejemplo, en ningn momento se habla sobre iluminacin. (Por fortuna, las luces siempre estn encendidas en un supermercado). A partir de estas reglase el agente podr deducir todo un conjunto de posibles objetos que pudieran explicar las percepciones recibidas. Mediante el conocimiento acerca de qu tipos de objetos aparecen en dnde permitir eliminar todas las categoras, excepto una. Desde luego, el hecho de que el agente slo sepa acerca de un tipo de objeto que pudiera producir una percepcin determinada no significa necesariamente que tal percepcin haya sido producida realmente por dicho objetos. D)esde luego es posible que existan otros tipos de objetos (p. ej., tomates de plstico) que produzcan la misma percepcin que la de la categora conocida. Para resolver lo anterior se puede utilizar el axioma de cierre de dominio, mediante el que se especifique que las categoras conocidas es todo lo que existe, o mediante un supuesto previamente definido, que no se explica aqu. La parte restante del problema de la recopilacin es la manipulacin: cmo tomar los objetos y transportarlos. En el caso de nuestra simulacin, se supone que la accin realizada se reduce a la primitiva toma de un objeto y a que el agente sea capaz de transportar todos los artculos que necesite En el mundo real, las acciones necesarias para coger un racimo de pltanos sin estropearlos, o una botella de leche de un litro sin derramar una gota, plantean serios problemas. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Comunicacin Un eficiente comprador cabe cundo preguntar. (En dnde estn las anchoas?. ,Son estos tomates verdes?) Desafortunadamente la de mantener una conversacin es una tarea difcil, por lo que pospondremos su estudio. Por de pronto, hablaremos de una modalidad ms sencilla de comunicacin unidireccional: la lectura de letreros. Si en el letrero de un pasillo aparece una palabra, los miembros pertenecientes a la categora a la que se refiere esa palabra se encontrarn en dicho pasillo. t , ' a (a E Pasillos n 3. s, w LetreroDe(s, a) A w b E Palabras(s))_-_> 3 x, c Referente(w, c) AEn(x, a) Si en un letrero pequeo aparece una palabra, los artculos que pertenecen a esa categora se encontrarn en sus proximidades: b' s, w, 1 (s e Signos A Tamao(x) < Metros(. 3) n w E Palabras(x) A En(s, 7)) => -3x, c Referente(w, c) A x e c, , , En(x, AreaAlrededor()) Pago El agente de compras debe contar con el suficiente conocimiento con el fin que no pague de ms por un artculo. En primer lugar, debe conocer cules son los precios tpicos de los artculos, por ejemplo: d g g e Tpica (CameMolida) A Peso(g) = Libras(I) ~--~> E(9) s PrecioJusto(g) _< E(2) El agente deber saber que el precio total es aproximadamente proporcional a la cantidad, y tambin que es frecuente obtener descuentos cuando se compran cantidades mayores. La regla siguiente establece que el descuento puede ser de hasta 50%: d q, c, w, p g e c A Peso(q) = w A Precio(q )= p=> b' m, q2 m> 1 A Aq2 E cA Peso(g2) =mxw- ~ - > ( 7 + (m - 7) / 2) ) X p _< PrecioJusto(q2) _< m X p Es muy importante que el agente sepa que es un mal negocio pagar ms del precio justo por un artculo, y todo lo que sea mal negocio es una mala accin: di Precio() > PrecioJusto(i) => Ma/aCompra(i) di MalNegocio (i) => b'a Ma/a(Compra (a, i)) Los eventos de compra pertenecen a la categora Compra r(b,x, s, p): el comprador b compra el objeto x con el vendedor s por el precio p. Aunque la descripcin completa de una compra es muy compleja, corresponde al patrn general definido anteriormente para el caso del matrimonio. Entre las condiciones previas figura el hecho de que p es el precio del objeto x; que b posee, al menos dinero equivalente al precio, y en forma de uno o ms instrumentos monetarios; y que s es el propietario de x. El evento incluye un intercambio monetario cuyo resultado final es una ganancia neta para s por el valor p y que b se convierte en propietario de x. Y algo ms que debe saber el agente acerca de las compras: no es correcto salir de una tienda llevndose algo que todava es propiedad de sta. V a, x, s, i s e Tiendas A T(Llevando(a, x) A En (x, s) A DeSuPropiedad(s x) ) => T(Mal(Exito(a)), i) Todo agente cuya meta sea salir del supermercado utilizar esta meta para definir la submeta UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL de convertirse en propietario de todos los objetos que se est llevando. As, todo lo que necesitamos es una descripcin de las partes correspondientes a un evento de compra, de manera que el agente pueda realizarla. En el supermercado, el evento de la compra consiste en dirigirse a las cajas registradoras, poner todos los artculos sobre el mostrador, esperar a que el cajero los contabilice, entregar una cantidad de dinero igual al precio total marcado y recoger cada uno de los artculos. Note que si el total es de E4, no se entregar al cajero el mismo billete de un euro cuatro veces. V b, m, s, p, e e e Supermercado(b, m, s, p) => 3 e,, e2, e3, e4, e5, e, = lr(b, c) A Caja(c) A e2 = Poner(b, m, c) A e3 = PrecioTotal(s, m) ~ e4 = Poner(b, p, c) A e5 = Tomar(b, m) A Antes(e,, e2) A Antes(e2, e3) A Antes(e3, e4) A Antes(e4, e5) ~ ParteDe(e,, e) A ParteDe(e2, e) A ParteDe(e3, e) n ParteDe(e4, e) A ParteDe(e5, e) Hemos as comentado lo referente a todas las principales reas del conocimiento necesarias para que un agente se desenvuelva adecuadamente en el mundo de las compras en un supermercado. De haber realizado una especificacin exhaustiva, este ejercicio habra resultado excesivamente largo; se opt ms bien por bosquejar el mtodo que se empleara para realizar dicha especificacin. No obstante el arduo trabajo implicado, la elaboracin de este tipo de bases de conocimiento reales constituye una valiossima experiencia. 8 7 Rbano $480 lb Manzanas $1000 lb Sopa lata $4500 u Salmn $5300 lb Carne $4600 lb 6 Calabazas $930 lb Naranjas $950 lb Pollo pec $12000 u Pollo mus $13000 u Crema dent $1300 u 5 Cebollas $850 lb Duraznos $1200 lb Jabn Liq $4000 u Pauelos $700 u Enjuague $3600 u 4 Verdura 1 Frutas 2 Sopas Salsas 3 Tomate 4 Consom de pollo 5 3 2 1 Salida 1 2 3 4 5 6 7 8 Vista general del supermercado. Preste atencin al agente que est en [4,5], a los otros compradores que estn en [2,2] y [6,2], a los cajeros que estn en [4,2] y [8,2], los letreros de la cuarta ilera y todas las mercancas distribudas por toda la tienda 20 . 20 Fundacin San Valero. El mundo del supermercado. Visitado en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 1.3 COMPLEJIDAD DE LOS PROBLEMAS 21 Teora de Ia compIejidad Definicin: La complejidad se refiere a la condicin del cosmos que - a pesar de que el principio cuntico (todo interacta con todo) lo integra en una realidad nica - es demasiado rico y variado como para ser entendido por rutas lineales simples, que no conducen ni a novedades ni a asombros. Algunas porciones del cosmos se entienden mediante dichas rutas, pero los fenmenos ms intrincados slo se pueden entender por sus patrones generales, pero no en detalle. La teora de la complejidad, dentro de la mecnica estadstica (captulo de la fsica), se preocupa del estudio de los atractores asociados a sus dinmicas y de la teora de la innovacin, de la autoorganizacin, del aprendizaje, de la adaptacin, de los sistemas disipativos (relacionados con la segunda ley) y no-lineales, de las transiciones de fase (en especial las que ligan la fase caos con la fase orden), de las roturas de simetra en condiciones alejadas del equilibrio, de la emergencia de nuevos fenmenos a partir de redes y de interacciones. Para entender muchos fenmenos hasta ahora mal explicados, la ciencia se inclina hacia la teora del caos, de los fractales y a sta de la complejidad. Aplicada esta teora tan rica al cerebro, ste la pone de manifiesto a travs de su habilidad impresionante para detectar detalles. Se interpreta que existe una tremenda presin evolucionaria para que (en los animales con un atractor para su evolucin del tipo inteligencia-intensivo) los cerebros se vuelvan especialistas en detalles y logros. Denominamos conciencia a un atributo de la arquitectura del cerebro que se aplica innovativamente a detectar detalles, atributo que es de por s autorreferencial y emergente, quizs el ms avanzado en su complejidad, no-linealidad, autoorganizacin y capacidad de aprender del entorno. El logro ms misterioso es el de combinar una impresionante cantidad de fragmentos sensoriales de la realidad, parcialmente estructurados, descubriendo a partir de ellos nuevos detalles, que siempre se pueden aplicar a controlar alarmas. (deas de diversos autores, entre ellos de Jack Cohen y an Stewart). La moderna teora de la complejidad (Chaitin, 1975; Rabin, 1977) se basa en principios informacionales y computacionales que intentan abordar con cierto nivel de abstraccin campos tales como el estudio de la naturaleza y consecuencias de las interacciones y no- linearidades de sistemas con muchas variables, con muchos objetos y que presentan mltiples objetivos. ncluye tpicos de teora general de sistemas, vida artificial, autmatas celulares, caos, valles de atraccin en redes neurales, criticalidad, computacin evolucionaria, algoritmos genticos, fractales, computacin paralela, sistemas autoorganizantes, sistemas adaptivos compartimentalizados, sistemas dinmicos, inteligencia artificial, complejidad en biologa. 21 URANA SCENA & TPCAP. 2008. Visitado en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL CompIejidad 22 Definiciones del texto de Barral y von der Becke: "Diversos matemticos y cientficos han definido la complejidad. a) Supngase ya un sistema complejo y aplquense a l las ideas del premio Nobel Herbert Simon. Por ms que se conozcan acabadamente todos sus subsistemas constituyentes, en realidad ello no alcanza para conocer la funcin verdaderamente fundamental del sistema. Por qu? Porque el sistema no es solamente suma ingenua de sus partes. Para ser un sistema, debe ser ms que la suma trivial. Una bicicleta y un ciclista forman un sistema con una funcin ms all de la suma de las funciones aisladas de ambos subsistemas. Cuanto mayor sea la diferencia entre la suma ingenua de las partes y la operacin total, tanto ms significativa es la complejidad del sistema. b) Los sistemas complejos muestran una dinmica propia que los hace acercarse a (aunque tambin alejarse de) diversos ordenamientos posibles, ordenamientos que implican a veces autoorganizaciones inesperadas para un observador desinformado. Esos diferentes ordenamientos o estructuras disipativas de Prigogine, estn separados entre s por transiciones de fase, que incluso pueden ocurrir en cascada. Cuanto mayor sea el nmero de grados de libertad de un sistema complejo (que tambien lo es porque los tiene muy numerosos) tanto mayor es la posibilidad que se vuelque sobre s mismo en el espacio de grados de libertad y como resultado se obtenga algo inesperado. c) Gregorio Chaitin identifica complejidad como principio de la codificacin de longitud mnima. Para codificar todo lo que realiza un sistema complejo se necesitan mucho ms instrucciones que para codificar lo que ejecuta un sistema simple. Entonces la longitud de la codificacin de longitud mnima permite discriminar entre sistema complejo y sistema simple. Un sistema muy simple es una sucesin de n ceros. Para codificarlo basta con dos instrucciones muy breves. "mprimir un cero. Repetir esto n veces." Pero para codificar lo que hace un cerebro, pese a que un sabio logre finalmente una codificacin de longitud mnima que lo describa, sin duda que se necesitar mucho ms longitud en las instrucciones. La codificacin del sistema complejo "ciclista pedaleando", por ms mnima que sea, aporta elementos nuevos y realimentaciones que no estn en cada uno de los dos subsistemas. La bicicleta depende del status econmico del ciclista y el ciclista depende de la bicicleta que adquiri. d) Se pueden ubicar en un plano x versus y la siguiente coleccin de informaciones. y = b 0 (para todo x). Ser una paralela a x ubicada a la altura b 0 . y = b 0 + b 1 .x. Ser una recta de ordenada al origen b 0 y pendiente b 1 . 22 Biotermodinamica del Cerebro. Raul Barral - Carlos von der Becke. Marzo del 2000. Disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL y = b 0 + b 1 .x + b 2 . x 2 . Ser una parbola. y = b 0 + b 1 .x 1 + b 2 2.x 2 . x 2 + b 3 .x 1 .x 2 + b 4 .x 1 2 + b 5 . X 2 2 (2) Ser un paraboloide de revolucin. Estos son modelos relativamente simples, que se vuelven ms y ms complejos a medida que se les agreguen nuevos sumandos (como b 6 .x 1 .x 2 ) o nuevas variables independientes (x 3 , x 4 , ...). La complejidad se define por la cantidad de informacin mnima necesaria para su reconocimiento. Para muchos autores, cuanto ms regular y ordenado sea un modelo, tanto menor es la cantidad de informacin que encierra. Para describir la posicin y la velocidad de molculas de gas en el equilibrio, se necesita un juego de informaciones diferente para cada molcula: hay que enumerarlas a todas para intentar cumplir con el requisito de lograr una codificacin de mnima longitud. La distribucin de la direccin y sentido de las trayectorias es muy amplia. Al salir del equilibrio gaseoso empieza a haber una coherencia de trayectorias (tendencia hacia la avalancha) para anular las fuerzas impulsoras presentes, por imperativo de la segunda ley de la termodinmica. La simplicidad, la regularidad y el orden, as como el apartamiento del equilibrio en el caso de los gases, se caracterizan todos ellos por su tendencia a requerir comparativamente poca cantidad de informacin. Todo lo contrario sucede con la complejidad, las irregularidades y el desorden, as como la aproximacin y acceso al equilibrio en el caso de los gases, pues, comparativamente, su codificacin de longitud mnima es muy exigente en lo que se refiere a la cantidad de informacin requerida." Definir si un sistema es simple o complejo es bastante subjetivo: es observador-dependiente. Tiene mucho que ver con los intereses que el observador tiene al considerar la complejidad de un sistema. Ahora vamos a tomar en cuenta la complejidad de los problemas enfocada a la resolucin de los problemas y los algoritmos. AnIisis de AIgoritmos: CompIejidad 23 La resolucin prctica de un problema exige por una parte un algoritmo o mtodo de resolucin y por otra un programa o codificacin de aquel en un ordenador real. Ambos componentes tienen su importancia; pero la del algoritmo es absolutamente esencial, mientras que la codificacin puede muchas veces pasar a nivel de ancdota. A efectos prcticos o ingenieriles, nos deben preocupar los recursos fsicos necesarios para que un programa se ejecute. Aunque puede haber muchos parmetros, los mas usuales son el tiempo de ejecucin y la cantidad de memoria (espacio). Ocurre con frecuencia que ambos parmetros estn fijados por otras razones y se plantea la pregunta inversa: cual es el tamao del mayor problema que puedo resolver en T segundos y/o con Mbytes de memoria? En lo que sigue nos centraremos casi siempre en el parmetro tiempo de ejecucin, si bien 23 Anlisis de Algoritmos. Jos Maas. 1997. Disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL las ideas desarrolladas son fcilmente aplicables a otro tipo de recursos. Para cada problema determinaremos un medida N de su tamao (por nmero de datos) e intentaremos hallar respuestas en funcin de dicho N. El concepto exacto que mide N depende de la naturaleza del problema. As, para un vector se suele utilizar como N su longitud; para una matriz, el nmero de elementos que la componen; para un grafo, puede ser el nmero de nodos (a veces es mas importante considerar el nmero de arcos, dependiendo del tipo de problema a resolver); en un fichero se suele usar el nmero de registros, etc. Es imposible dar una regla general, pues cada problema tiene su propia lgica de costo. Tiempo de Ejecucin Una medida que suele ser til conocer es el tiempo de ejecucin de un programa en funcin de N, lo que denominaremos T(N). Esta funcin se puede medir fsicamente (ejecutando el programa, reloj en mano), o calcularse sobre el cdigo contando instrucciones a ejecutar y multiplicando por el tiempo requerido por cada instruccin. As, un trozo sencillo de programa como S1; for (int i= 0; i < N; i++) S2; Requiere: T(N)= t1 + t2*N Siendo t1 el tiempo que lleve ejecutar la serie "S1" de sentencias, y t2 el que lleve la serie "S2". Prcticamente todos los programas reales incluyen alguna sentencia condicional, haciendo que las sentencias efectivamente ejecutadas dependan de los datos concretos que se le presenten. Esto hace que mas que un valor T(N) debamos hablar de un rango de valores Tmin(N) <= T(N) <= Tmax(N) Los extremos son habitualmente conocidos como "caso peor" y "caso mejor". Entre ambos se hallara algn "caso promedio" o ms frecuente. Cualquier frmula T(N) incluye referencias al parmetro N y a una serie de constantes "Ti" que dependen de factores externos al algoritmo como pueden ser la calidad del cdigo generado por el compilador y la velocidad de ejecucin de instrucciones del ordenador que lo ejecuta. Dado que es fcil cambiar de compilador y que la potencia de los ordenadores crece a un ritmo vertiginoso (en la actualidad, se duplica anualmente), intentaremos analizar los algoritmos con algn nivel de independencia de estos factores; es decir, buscaremos estimaciones generales ampliamente vlidas. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Asintotas Por una parte necesitamos analizar la potencia de los algoritmos independientemente de la potencia de la mquina que los ejecute e incluso de la habilidad del programador que los codifique. Por otra, este anlisis nos interesa especialmente cuando el algoritmo se aplica a problemas grandes. Casi siempre los problemas pequeos se pueden resolver de cualquier forma, apareciendo las limitaciones al atacar problemas grandes. No debe olvidarse que cualquier tcnica de ingeniera, si funciona, acaba aplicndose al problema ms grande que sea posible: las tecnologas de xito, antes o despus, acaban llevndose al lmite de sus posibilidades. Las consideraciones anteriores nos llevan a estudiar el comportamiento de un algoritmo cuando se fuerza el tamao del problema al que se aplica. Matemticamente hablando, cuando N tiende a infinito. Es decir, su comportamiento asinttico. Sean "g(n)" diferentes funciones que determinan el uso de recursos. Habr funciones "g" de todos los colores. Lo que vamos a intentar es identificar "familias" de funciones, usando como criterio de agrupacin su comportamiento asinttico. A un conjunto de funciones que comparten un mismo comportamiento asinttico le denominaremos un orden de complejidad'. Habitualmente estos conjuntos se denominan O, existiendo una infinidad de ellos. Para cada uno de estos conjuntos se suele identificar un miembro f(n) que se utiliza como representante de la clase, hablndose del conjunto de funciones "g" que son del orden de "f(n)", denotndose como: g N O(f(n)) Con frecuencia nos encontraremos con que no es necesario conocer el comportamiento exacto, sino que basta conocer una cota superior, es decir, alguna funcin que se comporte "an peor". La definicin matemtica de estos conjuntos debe ser muy cuidadosa para involucrar ambos aspectos: identificacin de una familia y posible utilizacin como cota superior de otras funciones menos malas: Dcese que el conjunto O(f(n)) es el de las funciones de orden de f(n), que se define como O(f(n))= {g: NTEGER -> REAL+ tales que Existen las constantes k y N 0 tales que para todo N > N0, g(N) <= k*f(N) } En palabras, O(f(n)) esta formado por aquellas funciones g(n) que crecen a un ritmo menor o igual que el de f(n). UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL De las funciones "g" que forman este conjunto O(f(n)) se dice que "estn dominadas asintticamente" por "f", en el sentido de que para N suficientemente grande, y salvo una constante multiplicativa "k", f(n) es una cota superior de g(n). rdenes de CompIejidad Se dice que O(f(n)) define un "orden de complejidad". Escogeremos como representante de este orden a la funcin f(n) ms sencilla del mismo. As tendremos: O(1) orden constante O(log n) orden logartmico O(n) orden lineal O(n log n) O(n2) orden cuadrtico O(na) orden polinomial (a > 2) O(an) orden exponencial (a > 2) O(n!) orden factorial Es ms, se puede identificar una jerarqua de rdenes de complejidad que coincide con el orden de la tabla anterior; jerarqua en el sentido de que cada orden de complejidad superior tiene a los inferiores como subconjuntos. Si un algoritmo A se puede demostrar de un cierto orden O1, es cierto que tambin pertenece a todos los rdenes superiores (la relacin de orden ota superior de' es transitiva); pero en la prctica lo til es encontrar la "menor cota superior", es decir el menor orden de complejidad que lo cubra. Impacto Prctico Para captar la importancia relativa de los rdenes de complejidad conviene echar algunas cuentas. Sea un problema que sabemos resolver con algoritmos de diferentes complejidades. Para compararlos entre si, supongamos que todos ellos requieren 1 hora de computador para resolver un problema de tamao N=100. Qu ocurre si disponemos del doble de tiempo? Ntese que esto es lo mismo que disponer del mismo tiempo en un computador el doble de potente, y que el ritmo actual de progreso del hardware es exactamente ese: "duplicacin anual del nmero de instrucciones por segundo". UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Qu ocurre si queremos resolver un problema de tamao 2n? O(f(n)) N=100 t=2h N=200 log n 1 h 10000 1.15 h n 1 h 200 2 h n log n 1 h 199 2.30 h n2 1 h 141 4 h n3 1 h 126 8 h 2n 1 h 101 1030 h Los algoritmos de complejidad O(n) y O(n log n) son los que muestran un comportamiento ms "natural": prcticamente a doble de tiempo, doble de datos procesables. Los algoritmos de complejidad logartmica son un descubrimiento fenomenal, pues en el doble de tiempo permiten atacar problemas notablemente mayores, y para resolver un problema el doble de grande slo hace falta un poco ms de tiempo (ni mucho menos el doble). Los algoritmos de tipo polinmico no son una maravilla, y se enfrentan con dificultad a problemas de tamao creciente. La prctica viene a decirnos que son el lmite de lo "tratable". Sobre la tratabilidad de los algoritmos de complejidad polinmica habra mucho que hablar, y a veces semejante calificativo es puro eufemismo. Mientras complejidades del orden O(n2) y O(n3) suelen ser efectivamente abordables, prcticamente nadie acepta algoritmos de orden O(n100), por muy polinmicos que sean. La frontera es imprecisa. Cualquier algoritmo por encima de una complejidad polinmica se dice "intratable" y slo ser aplicable a problemas ridiculamente pequeos. A la vista de lo anterior se comprende que los programadores busquen algoritmos de complejidad lineal. Es un golpe de suerte encontrar algo de complejidad logartmica. Si se encuentran soluciones polinomiales, se puede vivir con ellas; pero ante soluciones de complejidad exponencial, ms vale seguir buscando. No obstante lo anterior: ... si un programa se va a ejecutar muy pocas veces, los costos de codificacin y depuracin son los que ms importan, relegando la complejidad a un papel secundario. ... si a un programa se le prev larga vida, hay que pensar que le tocar mantenerlo a otra persona y, por tanto, conviene tener en cuenta su legibilidad, incluso a costa de la complejidad de los algoritmos empleados. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL ... si podemos garantizar que un programa slo va a trabajar sobre datos pequeos (valores bajos de N), el orden de complejidad del algoritmo que usemos suele ser irrelevante, pudiendo llegar a ser incluso contraproducente. Por ejemplo, si disponemos de dos algoritmos para el mismo problema, con tiempos de ejecucin respectivos:
aIgoritmo tiempo compIejidad f 100 n O(n) g n2 O(n2) asintticamente, "f" es mejor algoritmo que "g"; pero esto es cierto a partir de N > 100. Si nuestro problema no va a tratar jams problemas de tamao mayor que 100, es mejor solucin usar el algoritmo "g". El ejemplo anterior muestra que las constantes que aparecen en las frmulas para T(n), y que desaparecen al calcular las funciones de complejidad, pueden ser decisivas desde el punto de vista de ingeniera. Pueden darse incluso ejemplos ms dramticos: aIgoritmo tiempo compIejidad f n O(n) g 100 n O(n) an siendo dos algoritmos con idntico comportamiento asinttico, es obvio que el algoritmo "f" es siempre 100 veces ms rpido que el "g" y candidato primero a ser utilizado. ... usualmente un programa de baja complejidad en cuanto a tiempo de ejecucin, suele conllevar un alto consumo de memoria; y viceversa. A veces hay que sopesar ambos factores, quedndonos en algn punto de compromiso. ... en problemas de clculo numrico hay que tener en cuenta ms factores que su complejidad pura y dura, o incluso que su tiempo de ejecucin: queda por considerar la precisin del clculo, el mximo error introducido en clculos intermedios, la estabilidad del algoritmo, etc. etc. Propiedades de Ios Conjuntos O(f) No entraremos en muchas profundidades, ni en demostraciones, que se pueden hallar en los libros especializados. No obstante, algo hay que saber de cmo se trabaja con los conjuntos O() para poder evaluar los algoritmos con los que nos encontremos. Para simplificar la notacin, usaremos O(f) para decir O(f(n)). UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Las primeras reglas slo expresan matemticamente el concepto de jerarqua de rdenes de complejidad: A. La relacin de orden definida por: f < g <=> f(n) N O(g) es reflexiva: f(n) N O(f) y transitiva: f(n) N O(g) y g(n) N O(h) => f(n) N O(h) B. f N O(g) y g N O(f) <=> O(f) = O(g) Las siguientes propiedades se pueden utilizar como reglas para el clculo de rdenes de complejidad. Toda la maquinaria matemtica para el clculo de lmites se puede aplicar directamente: C. Lim(n->inf)f(n)/g(n) = 0 => f N O(g) => g NOT_N O(f) => O(f) es subconjunto de O(g) D. Lim(n->inf)f(n)/g(n) = k => f N O(g) => g N O(f) => O(f) = O(g) E. Lim(n->inf)f(n)/g(n)= NF => f NOT_N O(g) => g N O(f) => O(f) es superconjunto de O(g) Las que siguen son reglas habituales en el clculo de lmites: F. Si f, g N O(h) => f+g N O(h) G. Sea k una constante, f(n) N O(g) => k*f(n) N O(g) H. Si f N O(h1) y g N O(h2) => f+g N O(h1+h2) I. Si f N O(h1) y g N O(h2) => f*g N O(h1*h2) J. Sean los reales 0 < a < b => O(na) es subconjunto de O(nb) K. Sea P(n) un polinomio de grado k => P(n) N O(nk) L. Sean los reales a, b > 1 => O(loga) = O(logb) UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL La regla [L] nos permite olvidar la base en la que se calculan los logaritmos en expresiones de complejidad. La combinacin de las reglas [K, G] es probablemente la ms usada, permitiendo de un plumazo olvidar todos los componentes de un polinomio, menos su grado. Por ltimo, la regla [H] es la basica para analizar el concepto de secuencia en un programa: la composicin secuencial de dos trozos de programa es de orden de complejidad el de la suma de sus partes. RegIas Prcticas Aunque no existe una receta que siempre funcione para calcular la complejidad de un algoritmo, si es posible tratar sistemticamente una gran cantidad de ellos, basndonos en que suelen estar bien estructurados y siguen pautas uniformes. Loa algoritmos bien estructurados combinan las sentencias de alguna de las formas siguientes: sentencias sencillas secuencia (;) decisin (if) bucles llamadas a procedimientos Sentencias sencillas Nos referimos a las sentencias de asignacin, entrada/salida, etc. siempre y cuando no trabajen sobre variables estructuradas cuyo tamao este relacionado con el tamao N del problema. La inmensa mayora de las sentencias de un algoritmo requieren un tiempo constante de ejecucin, siendo su complejidad O(1). Secuencia (;) La complejidad de una serie de elementos de un programa es del orden de la suma de las complejidades individuales, aplicndose las operaciones arriba expuestas. Decisin (if) La condicin suele ser de O(1), complejidad a sumar con la peor posible, bien en la rama THEN, o bien en la rama ELSE. En decisiones multiples (ELSE F, SWTCH CASE), se tomara la peor de las ramas. Bucles En los bucles con contador explcito, podemos distinguir dos casos, que el tamao N forme parte de los lmites o que no. Si el bucle se realiza un nmero fijo de veces, UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL independiente de N, entonces la repeticin slo introduce una constante multiplicativa que puede absorberse. Ej.- for (int i= 0; i < K; i++) { algo_de_O(1) } => K*O(1) = O(1) Si el tamao N aparece como lmite de iteraciones ... Ej.- for (int i= 0; i < N; i++) { algo_de_O(1) } => N * O(1) = O(n) Ej.- for (int i= 0; i < N; i++) { for (int j= 0; j < N; j++) { algo_de_O(1) } } tendremos N * N * O(1) = O(n2) Ej.- for (int i= 0; i < N; i++) { for (int j= 0; j < i; j++) { algo_de_O(1) } } El bucle exterior se realiza N veces, mientras que el interior se realiza 1, 2, 3, ... N veces respectivamente. En total, 1 + 2 + 3 + ... + N = N*(1+N)/2 -> O(n2)
A veces aparecen bucles multiplicativos, donde la evolucin de la variable de control no es lineal (como en los casos anteriores) Ej.- c= 1; while (c < N) { algo_de_O(1) c= 2*c; } El valor incial de "c" es 1, siendo "2k" al cabo de "k" iteraciones. El nmero de iteraciones es tal que 2k >= N => k= eis (log2 (N)) [el entero inmediato superior] y, por tanto, la complejidad del bucle es O(log n). Ej.- c= N; while (c > 1) { algo_de_O(1) c= c / 2; } UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Un razonamiento anlogo nos lleva a log2(N) iteraciones y, por tanto, a un orden O(log n) de complejidad. Ej.- for (int i= 0; i < N; i++) { c= i; while (c > 0) { algo_de_O(1) c= c/2; } } Tenemos un bucle interno de orden O(log n) que se ejecuta N veces, luego el conjunto es de orden O(n log n) Llamadas a procedimientos La complejidad de llamar a un procedimiento viene dada por la complejidad del contenido del procedimiento en s. El coste de llamar no es sino una constante que podemos obviar inmediatamente dentro de nuestros anlisis asintticos. El clculo de la complejidad asociada a un procedimiento puede complicarse notablemente si se trata de procedimientos recursivos. Es fcil que tengamos que aplicar tcnicas propias de la matemtica discreta, tema que queda fuera de los lmites de esta nota tcnica. EjempIo: evaluacin de un polinomio Vamos a aplicar lo explicado hasta ahora a un problema de fcil especificacin: disear un programa para evaluar un polinomio P(x) de grado N; class Polinomio { private double[ ] coeficientes; Polinomio (double[ ] coeficientes) { this.coeficientes= new double[coeficientes.length]; System.arraycopy(coeficientes, 0, this.coeficientes, 0, coeficientes.length); } double evalua_1 (double x) { double resultado= 0.0; for (int termino= 0; termino < coeficientes.length; termino++) { double xn= 1.0; for (int j= 0; j < termino; j++) xn*= x; // x elevado a n UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL resultado+= coeficientes[termino] * xn; } return resultado; } } Como medida del tamao tomaremos para N el grado del polinomio, que es el nmero de coeficientes en C. As pues, el bucle ms exterior (1) se ejecuta N veces. El bucle interior (2) se ejecuta, respectivamente 1 + 2 + 3 + ... + N veces = N*(1+N)/2 => O(n2) ntuitivamente, sin embargo, este problema debera ser menos complejo, pues repugna al sentido comn que sea de una complejidad tan elevada. Se puede ser ms inteligente a la hora de evaluar la potencia xn: double evalua_2 (double x) { double resultado= 0.0; for (int termino= 0; termino < coeficientes.length; termino++) { resultado+= coeficientes[termino] * potencia(x, termino); } return resultado; } private double potencia (double x, int n) { if (n == 0) return 1.0; // si es potencia impar ... if (n%2 == 1) return x * potencia(x, n-1); // si es potencia par ... double t= potencia(x, n/2); return t*t; } El anlisis de la funcin Potencia es delicado, pues si el exponente es par, el problema tiene una evolucin logartmica; mientras que si es impar, su evolucin es lineal. No obstante, como si "j" es impar entonces "j-1" es par, el caso peor es que en la mitad de los casos tengamos "j" impar y en la otra mitad sea par. El caso mejor, por contra, es que siempre sea "j" par. Un ejemplo de caso peor seria x31, que implica la siguiente serie para j: 31 30 15 14 7 6 3 2 1 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Cuyo nmero de trminos podemos acotar superiormente por: 2 * eis (log2(j)), Donde eis(r) es el entero inmediatamente superior (este clculo responde al razonamiento de que en el caso mejor visitaremos eis(log2(j)) valores pares de "j"; y en el caso peor podemos encontrarnos con otros tantos nmeros impares entremezclados). Por tanto, la complejidad de Potencia es de orden O(log n). nsertada la funcin Potencia en la funcin EvaluaPolinomio, la complejidad compuesta es del orden O(n log n), al multiplicarse por N un subalgoritmo de O(log n). As y todo, esto sigue resultando extravagante y excesivamente costoso. En efecto, basta reconsiderar el algoritmo almacenando las potencias de "X" ya calculadas para mejorarlo sensiblemente: double evalua_3 (double x) { double xn= 1.0; double resultado= coeficientes[0]; for (int termino= 1; termino < coeficientes.length; termino++) { xn*= x; resultado+= coeficientes[termino] * xn; } return resultado; } Que queda en un algoritmo de O(n). Habiendo N coeficientes C distintos, es imposible encontrar ningun algoritmo de un orden inferior de complejidad. En cambio, si es posible encontrar otros algoritmos de idntica complejidad: double evalua_4 (double x) { double resultado= 0.0; for (int termino= coeficientes.length-1; termino >= 0; termino--) { resultado= resultado * x + coeficientes[termino]; } return resultado; } No obstante ser ambos algoritmos de idntico orden de complejidad, cabe resaltar que sus tiempos de ejecucin sern notablemente distintos. En efecto, mientras el ltimo algoritmo UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL ejecuta N multiplicaciones y N sumas, el penltimo requiere 2N multiplicaciones y N sumas. Si, como es frecuente, el tiempo de ejecucin es notablemente superior para realizar una multiplicacin, cabe razonar que el ltimo algoritmo ejecutar en la mitad de tiempo que el anterior. Medidas de Iaboratorio La siguiente tabla muestra algunas medidas de la eficacia de nuestros algoritmos sobre una implementacin en Java 24 : grado evaIua_1 evaIua_2 evaIua_3 evaIua_4 1 0 10 0 0 2 10 0 0 0 5 0 0 0 0 10 0 10 0 0 20 0 10 0 0 50 40 20 0 10 100 130 60 0 0 200 521 140 0 10 500 3175 400 10 10 1000 63632 1171 872 580
magen "artificial inteligente a modern approach, Second Edition Stuar Russell, Peter Norvig. 24 Una implementacin completa del algoritmo puede ser encontrada en este enlace para revisin del estudiante. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL ProbIemas P, NP y NP-compIetos Hasta aqu hemos venido hablando de algoritmos. Cuando nos enfrentamos a un problema concreto, habr una serie de algoritmos aplicables. Se suele decir que el orden de complejidad de un problema es el del mejor algoritmo que se conozca para resolverlo. As se clasifican los problemas, y los estudios sobre algoritmos se aplican a la realidad. Estos estudios han llevado a la constatacin de que existen problemas muy difciles, problemas que desafan la utilizacin de los ordenadores para resolverlos. En lo que sigue esbozaremos las clases de problemas que hoy por hoy se escapan a un tratamiento informtico. CIase P.- Los algoritmos de complejidad polinmica se dice que son tratables en el sentido de que suelen ser abordables en la prctica. Los problemas para los que se conocen algoritmos con esta complejidad se dice que forman la clase P. Aquellos problemas para los que la mejor solucin que se conoce es de complejidad superior a la polinmica, se dice que son problemas intratables. Seria muy interesante encontrar alguna solucin polinmica (o mejor) que permitiera abordarlos. CIase NP.- Algunos de estos problemas intratables pueden caracterizarse por el curioso hecho de que puede aplicarse un algoritmo polinmico para comprobar si una posible solucin es vlida o no. Esta caracterstica lleva a un mtodo de resolucin no determinista consistente en aplicar heursticos para obtener soluciones hipotticas que se van desestimando (o aceptando) a ritmo polinmico. Los problemas de esta clase se denominan NP (la N de no-deterministas y la P de polinmicos). CIase NP-compIetos.- Se conoce una amplia variedad de problemas de tipo NP, de los cuales destacan algunos de ellos de extrema complejidad. Grficamente podemos decir que algunos problemas se hayan en la "frontera externa" de la clase NP. Son problemas NP, y son los peores problemas posibles de clase NP. Estos problemas se caracterizan por ser todos "iguales" en el sentido de que si se descubriera una solucin P para alguno de ellos, esta solucin sera fcilmente aplicable a todos ellos. Actualmente hay un premio de prestigio equivalente al Nobel reservado para el que descubra semejante solucin. y se duda seriamente de que alguien lo consiga! Es ms, si se descubriera una solucin para los problemas NP-completos, esta sera UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL aplicable a todos los problemas NP y, por tanto, la clase NP desaparecera del mundo cientfico al carecerse de problemas de ese tipo. Realmente, tras aos de bsqueda exhaustiva de dicha solucin, es hecho ampliamente aceptado que no debe existir, aunque nadie ha demostrado, todava, la imposibilidad de su existencia. 25 ProbIema: Retomar la explicacin dada en el primer captulo. Tres Monjes y tres canbales se encuentran juntos con un bote el mismo lado del ro, el bote puede transportar como mximo 2 personas. La nica manera segura de hacerlo es que en cada orilla del ro nunca puedan haber mas canbales que Monjes, Como podemos trasladar a las 6 personas de un lado del ro al otro? Estado inicial: 3 canbales y 3 Monjes estn al lado izquierdo del ro El estado lo definirn 5 valores (C,M,CD,MD,DEB). C: Canbales lado izquierdo M: Monjes lado izquierdo CD: Canbales lado derecho MD: Monjes lado derecho DEB: Donde esta el bote -> si esta a la izquierda es 0 , si esta a la derecha es 1 por lo tanto el estado inicial es el siguiente (3,3,0,0,0) Limitaciones: NO pueden haber ms canbales que Monjes en cualquiera de las dos orillas del ro -> C La restriccin dice: la cantidad de canbales del lado izquierdo debe ser menor o igual que la cantidad de Monjes del lado izquierdo y la cantidad de canbales del lado derecho debe ser menor o igual que la cantidad de Monjes del lado derecho. Operaciones: hay 5 posibles operaciones que se pueden realizar siempre y cuando cumplan con las limitaciones anteriormente descritas. OP1: cruzar 1 canbal y 1 misionero OP2: cruzar 2 canbales y 0 misionero OP3: cruzar 0 canbal y 2 Monjes OP4: cruzar 0 canbal y 1 misionero OP5: cruzar 1 canbal y 0 misionero 25 Ejemplo completo del anlisis de complejidad de un algoritmo. Cesar Augustos Cepeda Garca. Disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Estado final: Los 3 canbales y los tres Monjes se encuentran al lado derecho del rio ->(0,0,3,3,1) Solucin: la solucin correcta la podemos encontrar en 11 pasos, Como haran un programa de bsqueda para encontrar la solucin de una manera ptima. ACTIVIDADES 26 Gua de ejercicios y prcticas complementarias opcionales para la unidad didctica No. 1 CapituIo 1: Introduccin 1. Defina con sus propias palabras "nteligencia Artificial. 2. Nombre los cuatros enfoques de la "nteligencia Artificial, y explique cada uno de ellos brevemente. 3. En qu consiste el Test de Turing? 4. ndique algunos hechos relevantes de la historia de la A. 5. Nombre 3 Aplicaciones de la A. 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. (opcional) Lea el artculo original (Turing, A.M. Computing machinery and intelligence. Mind, 59: 433-460. 1950.) de Alan Turing sobre la A. En este articulo Turing predijo que para el ao 2000 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 ningn computador puede tomar decisiones. Significa esto entonces que la A 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 A 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 A en las capacidades cognoscitivas de alto nivel?. Unidad Prctica (opcional) Desarrollar un mapa conceptual sobre inteligencia artificial, donde se 26 Documento con prcticas y actividades complementarias. nstituto Tecnolgico de Toluca. Disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL establezcan los conceptos y sus relaciones. 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. Resolver problemas de juegos clsicos de la A, empleando un lenguaje simblico: gato, damas chinas, el agente viajero, Monjes y canbales, el problema de las jarras. (Si se emplea Jess, se pueden implementar en el algn sitio servidor WEB). CaptuIo 2: Agentes InteIigentes. 1. Defina con sus palabras un Agente nteligente. Dentro de qu enfoque de la A se circunscriben los Agentes nteligentes. Por qu? 2. Nombre y explique los elementos de un Agente nteligente y sus nteraccin. 3. Mencione y explique al menos 5 caractersticas de los Agentes. De ejemplos. 4. Cul es la estructura de un Agente nteligente? 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. 7. Desarrolle un anlisis PAMA de un Agente buscador de nternet. 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. CaptuIo 3: CompIejidad de Ios probIemas 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 MPS) 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? Tarea de repaso adicionaI 1. 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?. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 10~3 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 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 nteramericana, 1994. Russell, S. y Norvig, P. Artificial Intelligence: A Modern Approach. Prentice-Hall nternational, 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. Articulo, Agentes nteligentes en la red, Julio 2002 No.2. Revista, ntelligent Agents, julio de 1994. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Referencias EIectrnicas Advanced Computing Research Centre (ACRC). Disponible en este enlace. Los agentes inteligentes y el etiquetado en la web. Disponible en este enlace. Agentes Autnomos nteligentes. Disponible en este enlace. Asociacin Argentina de nteligencia Artificial. Disponible en este enlace. Aircenter. Disponible en este enlace. Aphex's Website. Disponible en este enlace. Aplicacin de las calculadoras. Disponible en este enlace. Artificial ntelligence group at the University of Bristol. Disponible en este enlace. nteligencia Artificial. Disponible en este enlace. Bibliografa de nteligencia Artificial. Disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL UNIDAD DIDCTICA 2 LOS SISTEMAS DE BUSQUEDA Introduccin Tcnicas de bsqueda de soluciones aplicando Inteligencia Artificial 27 Un aspecto importante de la hiptesis del sistema simblico propuesto por Newell y Simon 28 , es que los problemas resueltos por medio de la bsqueda entre varias alternativas, se basan en la aplicacin del sentido comn humano. Los humanos generalmente consideran un nmero de estrategias alternas que las guen a la solucin de problemas. De este modo, se han establecido diferentes alternativas o cursos de accin que conduzcan a la solucin en dependencia de las caractersticas del espacio de estados del problema a resolver. El espacio de estados (EE) se define como la representacin de un problema o situacin que abarca todas las posibles situaciones que se pueden presentar en la solucin del mismo as como las relaciones que existen entre ellas. Est formado de nodos que describen situaciones particulares del problema y arcos que conectan pares de nodos y representan los movimientos legales o reglas que rigen el EE; ellos determinan si es posible pasar de una situacin del problema a otra (Luger y Stubblefield, 1989). De esta forma, la solucin al problema se establece como un algoritmo de bsqueda que analiza los nodos del EE y se representa por el conjunto definido de la siguiente forma [N, A, ,D] (Luger y Stubblefield, 1989) donde: N es el conjunto de nodos del EE. Estos corresponden a los estados en el proceso de solucin del problema. A es el conjunto de arcos o ligas entre nodos. Corresponden a los pasos en el proceso de solucin del problema. es un subconjunto no vaco de N que contiene el los estados iniciales del problema. D es un subconjunto no vaco de N que contiene el los estados finales o la solucin al problema, los cuales pueden ser obtenidos usando una propiedad medible de los estados encontrados durante la bsqueda una propiedad de la ruta recorrida durante la bsqueda. La funcin de un algoritmo de bsqueda es encontrar una trayectoria que conduzca a una solucin del problema por medio del EE. 27 Bruno Lpez Takeyas. nstituto Tecnolgico de Nuevo Laredo. Reforma Sur 2007, C.P. 88250, Nuevo Laredo, Tamps. Mxico. Disponible en este enlace. 28 Por la poca del computacionalismo clsico liderado por Newell y Simon (Newell, Shaw y Simon, 1958) haban logrado que los modelos simblicos resolvieran teoremas lgicos utilizando el clculo proposicional. Estos resultados favorables hicieron que prosperara la bsqueda de representaciones de tipo simblico y que los logros alcanzados por los modelos paralelos cayeran en el olvido. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Cuando se intenta encontrar un nodo solucin analizando completamente el EE, se est aplicando un mtodo conocido como bsqueda exhaustiva (Luger y Stubblefield, 1989); sin embargo existen algunos problemas cuyos espacios de estados son demasiado complejos y extensos que resulta prcticamente imposible recorrerlos en forma completa, an por medio de dispositivos de cmputo demasiado poderosos. Los humanos no solo usan la bsqueda exhaustiva, es decir, tambin resuelven los problemas basados en la aplicacin de reglas de juicio que guen la bsqueda por aquellas porciones del EE que parezcan "prometedoras. Estas reglas son conocidas como heursticas. Una heurstica es una estrategia de bsqueda selectiva en el espacio de un problema y gua la bsqueda a lo largo de las lneas que tienen una alta probabilidad de xito mientras que descartan aquellas trayectorias que no la ofrecen (Luger y Stubblefield, 1989). Las heursticas no son infalibles, ya que no siempre garantizan una solucin ptima al problema, pero una buena heurstica puede y debe aproximarse lo ms que se pueda la mayora de las veces a ella. Lo ms importante es que emplea conocimiento relacionado con la naturaleza del problema para encontrar una solucin de manera eficiente. Si el EE proporciona un medio de formalizar el proceso de solucin a problemas, entonces las heursticas permiten manipular ese formalismo con inteligencia. Un Algoritmo Gentico es un ejemplo de un procedimiento de bsqueda que aplica eleccin aleatoria o heurstica como herramienta para guiarse a travs del anlisis del EE. El uso de eleccin aleatoria como la principal herramienta para dirigir el proceso de bsqueda parece extrao al principio, ya que, tradicionalmente se han usado tcnicas de bsqueda basadas en clculo y enumerativas para resolver problemas de optimizacin, sin embargo, existen numerosas aplicaciones que han demostrado que ofrece buen comportamiento para localizar o aproximarse a ptimos globales durante la solucin de problemas (Goldberg, 1989). OBJETIVO GENERAL Ofrecer una introduccin a las tcnicas bsicas de la bsqueda en inteligencia artificial (A), bajo una orientacin prctica encaminada a la resolucin de problemas en este rea. OBJETIVOS ESPECIFICOS Tratar con mayor detalle la resolucin general de problemas y las tcnicas de representacin del conocimiento (bsqueda de la solucin en un espacio de estados, heurstica, inferencia y control) Una parte fundamental de la nteligencia Artificial es su aspecto prctico, para ello se Estudiarn y desarrollarn programas que permitan comprobar su inters desde el punto de vista informtico. Se utilizar el lenguaje Common Lisp en la programacin de dichos trabajos. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Estructura temtica Segunda Unidad CaptuIos Temas 2.LOS SSTEMAS DE BUSQUEDA 2.1ntroduccin a los sistemas de bsquedas 2.1.1 El papel de la bsqueda en la nteligencia Artificial. 2.1.2 Componentes de un sistema de bsqueda 2.1.3 Clasificacin. 2.2 Bsquedas en espacios de estados 2.2.1 Algoritmos generales de bsqueda. 2.2.2 Estrategias de bsqueda. 2.2.3 Bsqueda heurstica 2.3 Otros tipos de bsquedas 2.3.1 Algoritmos Genticos 2.3.2 Bsqueda en sistemas de juegos 2. LOS SISTEMAS DE BSQUEDA 29 2.1 Introduccin a Ios sistemas de bsquedas. 30 En inteligencia artificial el tema de bsquedas es central, dado que, por ejemplo, realizar acciones mecanizadas o resolver problemas, se reduce a buscar en un espacio de estados como se explicaba en el apartado anterior. En esa disciplina se estudian bsquedas ciegas (bsqueda primero en amplitud, primero en profundidad, profundidad iterativa, de costo uniforme, etc.) y bsquedas inteligentes (bsqueda avara, A*, DA*, A* restricta por memoria simplificada, ascenso de cima (hill-climbing), etc.) Relacionado con la bsqueda del ptimo est el problema del control de la bsqueda, control planteado por Newell y Simon que ha generado una abundancia de trabajos en el campo de la inteligencia artificial. Se trata de elegir entre bsquedas heursticas lo suficientemente buenas (no perfectas) como para que se pueda dar por concluida la bsqueda con una aceptable respuesta al problema en un lapso aceptable de tiempo. No se discute que las bsquedas aumentan "explosivamente" cuando el espacio de problema se vuelve demasiado vasto por bifurcacin de nodos a buscar o por incorporacin de ms variables. Un control de bsqueda basado en tcnicas mediocres tambin llega a proponer una respuesta adecuada, aunque en un tiempo demasiado largo. En un modelo de mundo o en un contexto con ms y ms variables que participan y que no se reducen a un nmero manejable por descarte, surge un problema de control de la bsqueda: ella se vuelve "explosiva". El problema del control de bsqueda (por ejemplo el problema del operador a elegir, el problema de la planificacin, etc.) an est casi sin resolver. 29 nteligencia Artificial. Elisa Guerrero Vsquez. Universidad de Cdiz. Disponible en este enlace. 30 Software en plataforma Java para realizar animaciones sobre algoritmos de bsqueda puede ser encontrado en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 2.1.1 EI papeI de Ia bsqueda en Ia InteIigencia ArtificiaI 31 En nteligencia Artificial (A) los trminos resolucin de problemas y bsqueda se refieren a un ncleo fundamental de tcnicas que se utilizan en dominios como la deduccin, elaboracin de planes de actuacin, razonamientos de sentido comn, prueba automtica de teoremas, etc. Aplicaciones de estas ideas generales aparecen en la prctica totalidad de los sistemas inteligentes, como por ejemplo en los programas que tratan de entender el lenguaje natural, en los programas que tratan de sintetizar un conjunto de reglas de clasificacin en un determinado dominio de actuacin, o en los sistemas que realizan inferencias a partir de un conjunto de reglas. 2.1.2 Componentes de un sistema de bsqueda La resolucin de problemas en A requiere, normalmente, determinar una secuencia de acciones o decisiones. Esta secuencia ser ejecutada posteriormente por un agente con el fin de alcanzar un objetivo a partir de una situacin inicial dada. Dependiendo del problema concreto, la ejecucin de la secuencia de acciones o decisiones tiene asociado un costo que se tratar de minimizar, o bien tiene asociado un beneficio que se tratar de maximizar. En la descripcin de los sistemas de bsqueda, se supone que el agente se mueve en un entorno accesible, o lo que es lo mismo, que es capaz de percibir el entorno con precisin. Adems, se supone tambin que tanto el efecto como el coste o costo de las acciones se pueden predecir con exactitud. De este modo, la secuencia de acciones se puede obtener antes de su ejecucin; en otro caso, la siguiente accin no podra ser determinada hasta conocer el resultado de la ejecucin de la anterior. 2.1.3 CIasificacin. Para elaborar una clasificacin de los sistemas de bsqueda se tienen muchas clasificaciones tantas como investigadores y autores en inteligencia artificial existen, en el mdulo se ha tratado de organizar esta informacin para ofrecer un panorama lo ms amplio posible para que el estudiante abarque la mayor cantidad de informacin, los nombres de los algoritmos y mtodos de solucin en unos casos tienen diferencias que se aclaran en el transcurso del documento. La siguiente clasificacin se puede tomar como genrica para tener una idea de las posibilidades de bsqueda. 31 ntroduccin a los sistemas de bsqueda disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Fuente: Manuel Montes Gmez. nstituto Nacional de Astrofsica, ptica y Electrnica. Disponible en este enlace. 2.2 Bsquedas en Ios espacios de estado. Agentes para Ia soIucin de probIemas 32 Son agentes basados en metas que determinan que debern hacer por medio de secuencias de acciones que les permitan obtener estados deseables. Pasos para Ia soIucin de probIemas: FormuIacin de metas: se establece el objetivo FormuIacin deI probIema: se decide que acciones y estados habrn de considerarse. Bsqueda: evaluacin de las posibles secuencias de acciones que le llevan a la meta y eleccin de la ms apta. Ejecucin: se llevan adelante la solucin que presenta la bsqueda. Tipos de probIemas: ProbIemas de un soIo estado: el agente conoce con exactitud en que estado se encuentra y el resultado de cada una de sus acciones. 32 nteligencia artificial. Exmenes orales. Pedro Popik Disponible en este enlace. Bsqueda Una ruta Ruta optima Juegos Profundidad primero Amplitud primero Ascenso de colina Bsqueda en haz Primero el mejor Museo britnico Ramificacin y cota Programacin dinmica A* Minimax Poda Alfa-beta Continuacin heurstica Profundidad progresiva A tientas Heuristicos UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL ProbIemas de estados mItipIes: el agente no conoce con exactitud en que estado se encuentra, pero si el resultado de cada una de sus acciones. ProbIemas de contingencias: el agente no conoce con exactitud en que estado se encuentra, pero si el resultado de cada una de sus acciones, aunque se le pueden presentar ciertas contingencias en las mismas. ProbIemas de expIoracin: el agente no conoce con exactitud en que estado se encuentra, ni el resultado exacto de cada una de sus acciones. ProbIemas Definicin: Es un conjunto de informacin que el agente utiliza para decidir lo que va a hacer. Un probIema esta compuesto por: Un estado iniciaI que es donde se encuentra el agente. Un conjunto de acciones que le agente puede emprender. La prueba de meta para saber si alcanzo un estado meta. La funcin costo de ruta que le asigna un valor a una ruta determinada. Eficiencia para resoIver probIemas Hay tres formas para medir la eficiencia de la bsqueda: Segn permita o no alcanzar la solucin, Segn su costo de ruta Segn el costo de tiempo y memoria para alcanzar la solucin EIeccin de estados y acciones Los estados y acciones se eligen mediante un proceso de abstraccin (eliminacin de detalles de una representacin). Para escoger una buena abstraccin hay que eliminar todos los detalles que sea posible siempre y cuando se conserve la validez y se garantice que es fcil emprender las acciones abstractas. Bsqueda de soIuciones La bsqueda consiste en escoger una opcin, haciendo a un lado las dems para UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL considerarlas posteriormente en caso de no obtener respuesta alguna mediante la primera opcin. La bsqueda termina cuando se encuentra una solucin o cuando no hay mas estados que expandir. rboIes de bsqueda Componentes en la estructura de datos para los rboles de bsqueda: El estado al que corresponda el nodo, El nodo padre, El operador que se aplico para generar el nodo, La profundidad del nodo (distancia hasta la raz), El costo de ruta desde el estado inicial hasta el nodo. Estrategia de bsqueda Las estrategias de bsqueda se evalan segn los siguientes criterios: CompIetez: si garantiza o no encontrar la solucin si es que existe. CompIejidad temporaI: cantidad de tiempo necesario para encontrar la solucin. CompIejidad espaciaI: cantidad de memoria necesaria para encontrar la solucin. Optimidad: si se encontrar o no la mejor solucin en caso de que existan varias. Tipos de estrategias de bsqueda Las estrategias de bsqueda se pueden agrupar en dos grandes grupos: Bsquedas sin contar con informacin (o bsqueda ciega): no existe informacin acerca de la cantidad de pasos necesarios o sobre el costo de ruta para pasar del estado de un momento dado a la meta. Bsqueda respaIdada con informacin (o bsqueda heurstica): se posee informacin muy valiosa para orientar la bsqueda para que sea mas ptima. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Bsquedas sin contar con informacin Las seis estrategias de bsqueda sin contar con informacin son las siguientes: Bsqueda preferente por amplitud Bsqueda de costo uniforme Bsqueda preferente por profundidad Bsqueda limitada por profundidad Bsqueda por profundizacin iterativa Bsqueda direccional Bsqueda preferente por ampIitud: En esta bsqueda todos los nodos que estn en la profundidad d del rbol de bsqueda se expanden antes de los nodos que estn en la profundidad d+1. Si son varias las soluciones, este tipo de bsqueda permitir siempre encontrar primero el estado meta ms prximo a la raz. En esta bsqueda el tiempo y la cantidad de memoria necesaria crece exponencialmente con respecto a la profundidad. Es ptima y completa. Bsquedas de costo uniforme: En esta bsqueda se modifica la estrategia preferente por amplitud en el sentido de expandir siempre el nodo de menor costo en el margen (medido por el costo de la ruta g(n)) en vez del nodo de menor profundidad. Este tipo de bsqueda permitir siempre encontrar la solucin mas barata siempre y cuando el costo de ruta nunca disminuya conforme avanzamos por la ruta. En esta bsqueda el tiempo y la cantidad de memoria necesaria crece exponencialmente con respecto a la profundidad. Es ptima y completa. Bsqueda preferente por profundidad: En esta bsqueda siempre se expande uno de los nodos que se encuentren en los mas profundo del rbol. Solo si la bsqueda conduce a un callejn sin salida, ser revierte la bsqueda y se expanden los nodos de niveles menos profundos. Esta bsqueda o se queda atorada en un bucle infinito y nunca es posible regresar al encuentro de una solucin, o a la larga encontrar una ruta de solucin mas larga que la solucin ptima. En esta bsqueda el tiempo necesario crece exponencialmente con respecto a la profundidad, mientras que el espacio requerido en memoria lo hace en forma UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL lineal No es ptima ni completa. Bsqueda Iimitada por profundidad: Esta bsqueda es similar a la bsqueda preferente por profundidad con la diferencia que se impone un lmite a la profundidad mxima de una ruta. Se utilizan operadores que informan constantemente de la profundad del nodo. En esta bsqueda el tiempo necesario crece exponencialmente con respecto a la profundidad, mientras que el espacio requerido en memoria lo hace en forma lineal No es ptima, pero si completa cuando la profundidad del lmite es menor o igual a la profundidad de la solucin. Bsqueda por profundizacin iterativa: Esta bsqueda es similar a la bsqueda limitada por profundidad con la diferencia que se repiten las bsquedas dando en cada iteracin un valor distinto de profundiad para la misma. En esta bsqueda el tiempo necesario crece exponencialmente con respecto a la profundidad, mientras que el espacio requerido en memoria lo hace en forma lineal Es ptima y completa. Bsqueda bidireccionaI: Esta es una bsqueda que avanza a partir del estado inicial y que retrocede a partir de la meta y que se detiene cuando ambas bsquedas se encuentran en algn punto intermedio. En esta bsqueda el tiempo y el espacio requerido en memoria crecen exponencialmente con respecto a la mitad de la profundidad (bd/2). Es ptima y completa. Comparacin entre Ias diferentes estrategias de bsqueda: Criterio Preferente por ampIitud Costo uniforme Preferente por profundidad Limitada en profundidad Profundizaci n iterativa BidireccionaI (cuando apIica) Tiempo b d b d b m b l b d b d/2 Espacio b d b d bm bl bd b d/2 Es ptima? S S No No S S Es compIeta? S S No S, cuando l>=d S S Evaluacin de las estrategias de bsqueda. b es el factor de ramificacin; d es la profundidad de la solucin; m es la profundidad mxima del rbol de bsqueda; l es el lmite de profundidad. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 2.2.3 Bsqueda heurstica ntroduccin En nteligencia Artificial (A) se emplea el calificativo heurstico, en un sentido muy genrico, para aplicarlo a todos aquellos aspectos que tienen que ver con el empleo de conocimiento en la realizacin dinmica de tareas. Se habla de heurstica para referirse a una tcnica, mtodo o procedimiento inteligente de realizar una tarea que no es producto de un riguroso anlisis formal, sino de conocimiento experto sobre la tarea. En especial, se usa el trmino heurstico para referirse a un procedimiento que trata de aportar soluciones a un problema con un buen rendimiento, en lo referente a la calidad de las soluciones y a los recursos empleados. En la resolucin de problemas especficos han surgido procedimientos heursticos exitosos, de los que se ha tratado de extraer lo que es esencial en su xito para aplicarlo a otros problemas o en contextos ms extensos. Esta bsqueda tambin es conocida como bsqueda respaldada con informacin que puede dividir en los siguientes tipos de bsqueda: Bsqueda preferente por lo mejor. Bsqueda limitada por la capacidad de la memoria. Bsquedas de mejoramiento iterativo. Bsqueda preferente por Io mejor: Esta bsqueda consiste en expandir primero aqul nodo con mejor evaluacin. Dicha evaluacin es el resultado de aplicar la funcin de evaIuacin al nodo, la cual devuelve un nmero que sirve para representar lo deseable que sera la expansin de un nodo. Dentro de este tipo de bsqueda se encuentran: Bsqueda avara. Bsqueda A*. Bsqueda avara: Consiste en reducir al mnimo el costo estimado para alcanzar una meta. Para ello se utiliza una funcin llamada heurstica, la cual estima el costo que implica llegar a una meta desde un estado determinado, y elige cual es el siguiente nodo que se va a expandir aplicando esta funcin a cada nodo. En esta bsqueda el tiempo y la cantidad de memoria necesaria crece exponencialmente con respecto a la profundidad. Pero la eleccin de una buena funcin heurstica permite disminuir notablemente la complejidad tanto en UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL tiempo como en espacio. No es ptima ni completa. Etapas de una bsqueda avara para llegar a Bucarest. Se utiliza la distancia en lnea recta a Bucarest y la funcin heurstica hDLR. Los nodos se identifican con sus valores h correspondientes. Bsqueda A*: Esta bsqueda es una bsqueda preferente por lo mejor en la que se utiliza f como funcin de evaluacin. La funcin f calcula el costo estimado de la solucin ms barata, pasando por n y se calcula de la siguiente manera: f=g(n) + h(n) Siendo g(n) el costo de ruta y h(n) una heurstica admisible (que nunca sobreestima el costo que implica alcanzar la meta). En esta bsqueda la cantidad de memoria necesaria crece exponencialmente con respecto a la profundidad. Pero la eleccin de una buena funcin heurstica permite disminuir notablemente la complejidad tanto en tiempo como en espacio. Es ptima y completa. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Etapas de una bsqueda A* para llegar a Bucarest. Los nodos se identifican con f=g+h. Los valores de h corresponden a las distancias en lnea recta a Bucarest de la figura anterior. Bsqueda Iimitada por Ia capacidad de Ia memoria: Cuando se implementan las bsquedas vistas hasta el momento, hay ciertos problemas muy difciles de resolver y por lo tanto siempre hay que dar algo a cambio para resolverlos, y lo primero que se cede es la memoria disponible. Para poder conservar la memoria existen: La bsqueda A* por profundizacin iterativa La bsqueda A* acotada por memoria simplificada. Bsqueda A* por profundizacin iterativa (A*PI): En este algoritmo, cada iteracin es una bsqueda preferente por profundidad, la cual se modifica para utilizar un lmite de costo f en vez de un lmite de profundidad. En esta bsqueda el espacio requerido en memoria crece en forma lineal con respecto a la profundidad, mientras que la complejidad temporal depende de la cantidad de distintos valores que adopte la funcin heurstica. Es ptima y completa. Bsqueda A* acotada por memoria simpIificada (A*SRM): Tiene las siguientes caractersticas: Hace uso de toda la memoria que puede disponer UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL En la medida que se lo facilite la memoria, evitar los estados repetidos Es completa si la memoria disponible tiene capacidad suficiente para guardar la ruta de solucin ms cercana Es ptima si dispone de suficiente memoria para guardar la ruta de solucin ptima ms cercana. De lo contrario produce la mejor solucin que sea posible obtener con la memoria disponible. Bsqueda de mejoramiento iterativo: La idea bsica de los algoritmos de estos tipos de bsqueda consiste en empezar con una configuracin completa y efectuar modificaciones para mejorar su calidad. Entre estas bsquedas se pueden encontrar: Bsqueda por ascenso de cima. Bsqueda con endurecimiento simulado. Bsqueda por ascenso de cima: Esta bsqueda se trata de un bucle que constantemente se desplaza en la direccin de un valor ascendente. Como el algoritmo no mantiene un rbol de bsqueda, la estructura de datos del nodo slo tiene que registrar el estado y su evaluacin, denominado VALOR. Cuando el algoritmo llega a un punto mas all del cual no se logra ningn avance, es obvio que debe empezarse de nuevo en otro punto. Bsqueda por endurecimiento simuIado: Esta bsqueda es muy similar a la bsqueda por ascenso a la cima, pero con la diferencia de que en vez de empezar otra vez al azar luego de quedarse atorado en un mximo local, sera conveniente descender unos cuantos pasos y as escapar del mximo local en cuestin. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 2.3 OTROS TIPOS DE BUSQUEDAS 2.3.1 ALGORITMOS GENETICOS 2.3.1.1 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. Es una tcnica de bsqueda interactiva inspirada en los principios de seleccin natural, estos no buscan modelar la evolucin biolgica sino derivar estrategias de optimizacin. La informacin gentica est contenida en el ncleo de las clulas sexuales de las criaturas. La informacin gentica contiene un cierto nmero 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. Los algoritmos genticos fueron desarrollados por John Holland y sus colegas en la universidad de michigan En 1975, se basan en la mecnica de la seleccin natural que afirma que solo los organismos que mejor se adaptan sobreviven. 2.3.1.2 HISTORIA DE LOS ALGORITMOS GENTICOS 33 Los primeros ejemplos de lo que hoy podramos llamar algoritmos genticos aparecieron a finales de los 50 y principios de los 60, programados en computadoras por bilogos evolutivos que buscaban explcitamente realizar modelos de aspectos de la evolucin natural. A ninguno de ellos se le ocurri que esta estrategia podra aplicarse de manera ms general a los problemas artificiales, pero ese reconocimiento no tardara en llegar: ``La computacin evolutiva estaba definitivamente en el aire en los das formativos de la computadora electrnica'' (Mitchell 1996). En 1962, investigadores como G.E.P. Box, G.J. Friedman, W.W. Bledsoe y H.J. Bremermann haban desarrollado independientemente algoritmos inspirados en la evolucin para optimizacin de funciones y aprendizaje automtico, pero sus trabajos generaron poca reaccin. En 1965 surgi un desarrollo ms exitoso, cuando ngo Rechenberg, entonces de la Universidad Tcnica de Berln, introdujo una tcnica que llam estrategia evolutiva, aunque se pareca ms a los trepacolinas que a los algoritmos genticos. En esta tcnica no haba poblacin ni cruzamiento; un padre mutaba para producir un descendiente, y se conservaba el mejor de los dos, convirtindose en el padre de la siguiente ronda de mutacin. Versiones posteriores introdujeron la idea de poblacin. Las estrategias evolutivas todava se emplean hoy en da por ingenieros y cientficos, sobre todo en Alemania. 33 Documento introductorio a los algoritmos genticos. Disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL El siguiente desarrollo importante en el campo vino en 1966, cuando L.J. Fogel, A.J. Owens y M.J. Walsh introdujeron en Amrica una tcnica que llamaron programacin evolutiva. En este mtodo, las soluciones candidatas para los problemas se representaban como mquinas de estado finito sencillas; al igual que en la estrategia evolutiva de Rechenberg, su algoritmo funcionaba mutando aleatoriamente una de estas mquinas simuladas y conservando la mejor de las dos (Mitchell 1996; Goldberg 1989). Tambin al igual que las estrategias evolutivas, hoy en da existe una formulacin ms amplia de la tcnica de programacin evolutiva que todava es un rea de investigacin en curso. Fue John Holland en los aos 60 quien en su estudio sobre sistemas adaptativos estableci las bases para desarrollos posteriores. Holland desde pequeo se preguntaba cmo logra la naturaleza crear seres cada vez ms perfectos. Lo curioso era que todo se lleva a cabo a base de interacciones locales entre individuos, y entre stos y lo que les rodea. No saba la respuesta, pero tena una cierta idea de cmo 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 los primeros ordenadores, donde pudo llevar a cabo algunas de sus ideas, aunque no se encontr en un ambiente intelectual frtil para propagarlas. Fue en 1962, en la Universidad de Michigan en Ann Arbor, donde, dentro del grupo Logic of computers, sus ideas comenzaron a desarrollarse y a dar frutos. Y fue, adems, leyendo un libro escrito por un bilogo evolucionista, R.A. Fisher, titulado La teora gentica de la seleccin natural, como comenz a descubrir los medios de llevar a cabo sus propsitos de comprensin de la naturaleza. De este 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 fn determinado. En esta universidad, Holland imparta un curso titulado Teora de los 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: mitar los procesos adaptativos de los sistemas naturales, y 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. Goldberg 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 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL genticos, Goldberg consigui lo que quera, escribiendo un algoritmo gentico en un ordenador personal Apple . Estas y otras aplicaciones creadas por estudiantes de Holland convirtieron a los algoritmos genticos en un campo con base suficiente aceptado para celebrar la primera conferencia en 1985 CGA'85. Tal conferencia se sigue celebrando bianualmente. 2.3.1.3. MECANISMOS BIOLGICOS UTILIZADOS PARA EL DESARROLLO DE LOS ALGORITMOS GENTICOS. En esta seccin se abordan los mecanismos de la herencia con el objetivo de evidenciar la analoga entre los algoritmos genticos y aquello que pretenden simular. Cada individuo de cada una de las especies del planeta posee ciertas caractersticas que lo identifican. Dichas caractersticas, que suelen ser externas (como el color de ojos) aunque tambin pueden ser internas (como el grupo sanguneo), forman el fenotipo de un individuo que es el resultado de la interaccin del medio ambiente en que se desarrolla y la herencia que recibe de sus ancestros. Dicho fenotipo est determinado por las protenas que produce y est definido en la informacin gentica de cada una de las clulas del individuo.
A su vez, la informacin acerca de las protenas que se producirn est contenida en los cromosomas. En cada clula existen dos juegos de cromosomas que definen las mismas caractersticas. Un cromosoma es una larga molcula de ADN formada por protenas que definen los genes. El conjunto de todos los cromosomas, es decir, de toda la informacin gentica de un individuo se llama genoma y el conjunto de genes contenidos en el genoma se denomina genotipo que es que determina en buena medida el fenotipo del individuo.
Existen unas clulas especiales, llamadas gametos, que intervienen en la reproduccin dividindose mediante un proceso denominado meiosis del siguiente modo: 1) Se duplica el nmero de cromosomas en la clula, esto es, se hace una copia de cada cromosoma. Al final quedan dos juegos correspondientes al padre y dos a la madre. 2) Se cruzan un juego de cromosomas del padre con uno de la madre, formndose dos juegos de cromosomas hbridos. 3) Se divide la clula dos veces y al final del proceso quedan cuatro clulas haploides (con un solo juego de cromosomas): una con cromosomas puros del padre, una con cromosomas puros de la madre y dos con cromosomas hbridos. Para el cruzamiento de dos cromosomas se forman entre ellos puntos de ruptura y unin de las cadenas de ADN que se denominan quiasmas y cortan el cromosoma en segmentos llamados cromticas y unen cromticas complementarias de dos cromosomas distintos. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Proceso de Meiosis Para la rplica un cromosoma ya existente interviene una enzima denominada ADN- polimerasa. La molcula de ADN tiene forma de doble hlice y dicha enzima se encarga de abrir por la mitad la molcula y replicar el cromosoma. Ocasionalmente la ADN-polimerasa comete un error que puede ser causado por radiaciones energticas externas o sustancias extraas. La alteracin de dicha molcula de ADN constituye una mutacin que puede manifestarse en el fenotipo y hacer al individuo diferente del resto de sus congneres. Por lo general las mutaciones son desfavorables e incluso letales para el organismo mutante pero a veces pueden no serlo y conferir a dicho organismo alguna ventaja que le permita sobrevivir ms fcilmente en su medio. Dicha caracterstica ser transmitida a sus descendientes y se habr producido un pequeo paso evolutivo. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 2.3.1.4 DEFINICIN Y PROCESO DE CONSTRUCCIN. Los algoritmos genticos (AGs) son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acuerdo con los principios de la seleccin natural y la supervivencia de los ms fuertes, postulados por Darwin. Por imitacin de este proceso, los algoritmos Genticos son capaces de ir creando soluciones para problemas del mundo real. La evolucin de dichas soluciones hacia valores ptimos del problema depende en buena medida de una adecuada codificacin de las mismas. No sera conveniente la utilizacin de algoritmos genticos en las siguientes situaciones: Si se requiere llegar forzosamente al mximo global en el caso de que estemos maximizando una funcin. Si conocemos la funcin de optimizacin. Si el problema est muy delimitado y se presta a un tratamiento analtico (funciones de una variable). Si la funcin es suave y convexa. Si el espacio es limitado, entonces es mejor enumerar todas las soluciones posibles. 2.3.1.5 DEFINICIN FORMAL DE ALGORITMO GENTICO Un aIgoritmo gentico consiste en una funcin matemtica o una rutina de software que toma como entradas a los ejemplares y retorna como salidas cuales de ellos deben generar descendencia para la nueva generacin. Algunas versiones ms complejas de algoritmos genticos generan un ciclo iterativo que directamente toma a la especie (el total de los ejemplares) y crea una nueva generacin que reemplaza a la antigua una cantidad de veces determinada por su propio diseo. Una de sus caractersticas principales es la de ir perfeccionando su propia heurstica en el proceso de ejecucin, por lo que no requiere largos perodos de entrenamiento especializado por parte del ser humano, principal defecto de otros mtodos para solucionar problemas, como los Sistemas Expertos. La aplicacin ms comn de los algoritmos genticos ha sido la solucin de problemas de optimizacin, en donde han mostrado ser muy eficientes y confiables. Sin embargo, no todos los problemas pudieran ser apropiados para la tcnica, y se recomienda en general tomar en cuenta las siguientes caractersticas del mismo antes de intentar usarla: Su espacio de bsqueda (i.e., sus posibles soluciones) debe estar delimitado dentro de un cierto rango. Debe poderse definir una funcin de aptitud (funcin fitness) que nos indique cmo es UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL de buena o mala es una cierta respuesta. Las soluciones deben codificarse de una forma que resulte relativamente fcil de implementar en el computador. El primer punto es muy importante, y lo ms recomendable es intentar resolver problemas que tengan espacios de bsqueda discretos aunque stos sean muy grandes. Sin embargo, tambin podr intentarse usar la tcnica con espacios de bsqueda continuos, pero preferentemente cuando exista un rango de soluciones relativamente pequeo. La funcin de aptitud no es ms que la funcin objetivo de nuestro problema de optimizacin. El algoritmo gentico nicamente maximiza, pero la minimizacin puede realizarse fcilmente utilizando el recproco de la funcin maximizante (debe cuidarse, por supuesto, que el recproco de la funcin no genere una divisin por cero). Una caracterstica que debe tener esta funcin es que tiene ser capaz de "castigar" a las malas soluciones, y de "premiar" a las buenas, de forma que sean estas ltimas las que se propaguen con mayor rapidez. La codificacin ms comn de las soluciones es a travs de cadenas binarias, aunque se han utilizado tambin nmeros reales y letras. El primero de estos esquemas ha gozado de mucha popularidad debido a que es el que propuso originalmente Holland, y adems porque resulta muy sencillo de implementar. 2.3.1.6 PROCESO DE CONSTRUCCIN DE UN ALGORITMO GENTICO El algoritmo gentico simula el proceso de evolucin natural. En esta seccin se intenta aclarar la manera como se lleva a cabo esta simulacin. Codificacin del dominio En la naturaleza las caractersticas de los seres vivos, incluso aqullas que los hacen ptimos para habitar en su medio, estn determinadas por las protenas que producen, las cuales se codifican en el material gentico contenido en cada una de las clulas del individuo. As pues, la naturaleza ha codificado el dominio del problema (todos los posibles individuos) aplicndolo al conjunto de todas las posibles secuencias de nucletidos (que son los elementos que forman las protenas). As, para un algoritmo gentico lo primero que se requiere es determinar en qu espacio se encuentran las posibles soluciones al problema que se pretende resolver. En caso de tener un problema de optimizacin de una funcin cuyo dominio es un subconjunto de nmeros reales, entonces este subconjunto es al que nos referimos. Es necesario codificar de alguna manera el dominio del problema para obtener estructuras manejables que puedan ser manipuladas por el algoritmos gentico. Cada una de estas estructuras constituye el equivalente al genotipo de un individuo en trminos biolgicos. El elemento del dominio del problema al que se mapea este genotipo es el anlogo al fenotipo. Es frecuente que el cdigo de los elementos del dominio del problema utilice un alfabeto binario (0's y 1's). Una vez que se ha definido la manera de codificar los elementos del dominio del problema y se conoce la forma de pasar de un elemento a su cdigo y viceversa, es necesario fijar un punto de partida. Los algoritmos genticos manipulan conjuntos de cdigos (poblaciones de UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL cdigos) en generaciones sucesivas. El algoritmo se encargar de favorecer la aparicin en la poblacin de cdigos que correspondan a elementos del dominio que estn prximos a resolver el problema. Es decir, dicho algoritmo recibir como entrada una poblacin de cdigos y a partir de sta generar nuevas poblaciones, donde algunos cdigos desaparecern mientras que otros, que se mapean en mejores soluciones posibles, aparecen con ms frecuencia hasta que se encuentra una satisfactoria o hasta que se cumpla alguna otra condicin de terminacin. Los elementos de la poblacin sern llamados individuos y a los cdigos se les denominar indistintamente cromosomas, genotipo, genoma o cdigo gentico. Evaluacin de la poblacin En la naturaleza hay individuos ms hbiles que otros para sobrevivir y al igual que sucede en la naturaleza, en los algoritmos genticos es necesario establecer algn criterio que permita decidir cules de las soluciones propuestas en una poblacin son mejores respecto del resto de las propuestas y cules no lo son.
Para determinar cules de estos individuos corresponden a buenas propuestas de solucin y cules no, es necesario calificarlos de alguna manera. Cada individuo de cada generacin de un algoritmo gentico recibe una calificacin o una medida de su grado de adaptacin (fitness). ste es un nmero real no negativo que ser ms grande cuanto mejor sea la solucin propuesta por dicho individuo. Por ejemplo, si el problema a resolver consiste en maximizar una funcin, entonces la calificacin asignada a un individuo determinado debe indicar qu tan alto es el valor de la funcin en el elemento de su dominio codificado por el individuo. Si, en cambio, el problema es determinar la ruta ms corta entre dos puntos, la calificacin deber ser tanto ms alta cuanto ms corto sea el camino codificado en el individuo que est siendo calificado. Al hablar de que a cada individuo de la poblacin se le asigna una y slo una calificacin, se est hablando de una funcin que se denomina funcin de adaptacin, cuya evaluacin puede no ser sencilla y es, de hecho, lo que en la mayora de los casos consume ms tiempo en la ejecucin de un algoritmo gentico. Hay que tener en cuenta que se evala una vez en cada individuo en cada generacin. Si un AG es ejecutado con una poblacin de tamao 100 durante 100 generaciones, la funcin es evaluada 10000 veces. Adems, puede darse el caso de que la funcin de evaluacin no tenga una regla de correspondencia explcita, esto es, una expresin algebraica, y puede ocurrir incluso que la funcin cambie de generacin en generacin. Seleccin Una vez calificados todos los individuos de una generacin, el algoritmo debe seleccionar a los individuos ms calificados para que tengan mayor oportunidad de reproduccin. De esta forma se incrementa la probabilidad de tener individuos 'buenos' en el futuro. Si de una determinada generacin se seleccionaran slo aquellos con una calificacin mayor o igual que cierto nmero c para pasarlos a la siguiente generacin, es claro que en sta la calificacin superar c y por tanto al promedio de la generacin anterior. La seleccin explota el conocimiento que se ha obtenido hasta el momento, procurando elegir lo mejor que se haya encontrado, elevando as el nivel de adaptacin de toda la poblacin. En principio podra parecer que es conveniente tener una estrategia de seleccin estricta UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL para que se mejore rpidamente la poblacin y converja el algoritmo, es decir, que la poblacin se acumule alrededor de un genotipo ptimo. Esto puede no ser cierto, ya que podra ocurrir que la poblacin se acumulara rpidamente alrededor de algn individuo que sea bueno, comparativamente con el resto de los individuos considerados a lo largo de ejecucin del algoritmo, pero este individuo puede no ser el mejor posible. A esto se le suele llamar convergencia prematura y no se puede asegurar pero s procurar que lo anterior no ocurra. Adems de la explotacin es necesario que exista exploracin. El AG debe, no slo seleccionar de entre lo mejor que ha encontrado, sino procurar encontrar mejores individuos. A esto se dedican los operadores que se describirn a continuacin (cruzamiento y mutacin). En la estrategia de seleccin normalmente se incluye un elemento extra que sirve de 'ancla'. Si slo se hace seleccin forzando que sea ms probable elegir al mejor individuo de la poblacin pero sin asegurarlo, es posible que este individuo se pierda y no forme parte de la siguiente generacin. Para evitar lo anterior se fuerza la seleccin de los mejores n individuos de la generacin para que pasen intactos a la siguiente. A esta estrategia se le denomina elitismo y puede ser generalizada especificando que permanezcan en la poblacin los nmejores individuos de las pasadas k generaciones. Cruzamiento La cruza de los cdigos genticos de individuos exitosos favorece la aparicin de nuevos individuos que heredan de sus ancestros caractersticas deseables. En el contexto de los algoritmos genticos reproducirse significa que, dados dos individuos seleccionados en funcin de su grado de adaptacin, stos pasen a formar parte de la siguiente generacin o, al menos, mezclen sus cdigos genticos para generar 'hijos' que posean un cdigo hbrido. Es decir, los cdigos genticos de los individuos se cruzan. Existen muchos mecanismos de cruzamiento y todos tienen por objeto que el cdigo de un individuo A y el de uno B, previamente seleccionados, se mezclen, es decir, se fragmenten y recombinen para formar nuevos individuos con la esperanza de que stos hereden de sus progenitores las caractersticas deseables. El mecanismo de cruzamiento ms comn es el llamado cruzamiento de un punto que se describe en la seccin siguiente cuando se describa el algoritmo gentico simple. Mutacin Ocasionalmente algunos elementos del cdigo de ciertos individuos de un algoritmo gentico se alteran a propsito. stos se seleccionan aleatoriamente en lo que constituye el smil de una mutacin. El objetivo es generar nuevos individuos que exploren regiones del dominio del problema que probablemente no se han visitado an. Esta exploracin no presupone conocimiento alguno. Aleatoriamente se buscan nuevas soluciones posibles que quiz superen las encontradas hasta el momento. Esta es una de las caractersticas que hacen aplicables los algoritmos genticos a gran variedad de problemas: no presuponer conocimiento previo acerca del problema a resolver ni de su dominio, no slo en la mutacin sino en el proceso total. De hecho, el problema a resolver slo determina la funcin de evaluacin y la manera de codificar las soluciones posibles. El resto de los subprocesos que constituyen el algoritmo son independientes y universalmente aplicables. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 2.3.1.7 ALGORITMO GENTICO SIMPLE Y ALGORITMO GENTICO PARALELO EL ALGORITMO GENTICO SIMPLE El algoritmo gentico simple, tambin denominado cannico, se representa a continuacin 34 : BEGlN /* Algoritmo Genetico Simple */ Generar una poblacion inicial. Computar la funcion de evaluacion de cada individuo. WHlLE NOT Terminado DO BEGlN /* Producir nueva generacion */ FOR Tamao poblacion/2 DO BEGlN /*Ciclo Reproductivo */ Seleccionar dos individuos de la anterior generacion, para el cruce (probabilidad de seleccion proporcional a la funcion de evaluacion del individuo). Cruzar con cierta probabilidad los dos individuos obteniendo dos descendientes. Mutar los dos descendientes con cierta probabilidad. Computar la funcion de evaluacion de los dos descendientes mutados. lnsertar los dos descendientes mutados en la nueva generacion. END lF la poblacion ha convergido THEN Terminado := TRUE END END Codificacin del problema: Se supone que los individuos (posibles soluciones del problema), pueden representarse como un conjunto de parmetros (que denominaremos genes), los cuales agrupados forman una ristra de valores (a menudo referida como cromosoma). Si bien el alfabeto utilizado para representar los individuos no debe necesariamente estar constituido por el {0, l}, buena parte de la teora en la que se fundamentan los algoritmos genticos utiliza dicho alfabeto. Durante la fase reproductiva se seleccionan los individuos de la poblacin para cruzarse y 34 Documento complementario sobre algoritmos genticos. Disponible en este enlace. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL producir descendientes, que constituirn, una vez mutados, la siguiente generacin de individuos. La seleccin de padres se efecta al azar usando un procedimiento que favorezca a los individuos mejor adaptados, ya que a cada individuo se le asigna una probabilidad de ser seleccionado que es proporcional a su funcin de adaptacin. Este procedimiento se dice que est basado en la ruleta sesgada. Segn dicho esquema, los individuos bien adaptados se escogern probablemente varias veces por generacin, mientras que, los pobremente adaptados al problema, no se escogern ms que de vez en cuando. Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando habitualmente los operadores de cruce y mutacin. Las formas bsicas de dichos operadores se describen a continuacin. El operador de cruce utilizado es el denominado cruzamiento en un punto y acta del siguiente modo: coge dos padres seleccionados y corta sus ristras de cromosomas en una posicin escogida al azar, para producir dos subristras iniciales y dos subristras finales. Despus se intercambian las subristras finales, producindose dos nuevos cromosomas completos (vase la lustracin 3). Ambos descendientes heredan genes de cada uno de los padres. Este operador se conoce como operador de cruce basado en un punto. Habitualmente el operador de cruce no se aplica a todos los pares de individuos que han sido seleccionados para emparejarse, sino que se aplica de manera aleatoria, normalmente con una probabilidad comprendida entre 0.5 y 1. En el caso en que el operador de cruce no se aplique, la descendencia se obtiene simplemente duplicando los padres. Operador de cruce basado en un punto. El operador de mutacin se aplica a cada hijo de manera individual, y consiste en la alteracin aleatoria (normalmente con probabilidad pequea) de cada gen componente del cromosoma. La lustracin muestra la mutacin del quinto gen del cromosoma. S bien puede en principio pensarse que el operador de cruce es ms importante que el operador de mutacin, ya que proporciona una exploracin rpida del espacio de bsqueda, ste ltimo asegura que ningn punto del espacio de bsqueda tenga probabilidad cero de ser examinado, y es de UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL capital importancia para asegurar la convergencia de los algoritmos genticos. Operador de mutacin Para criterios prcticos, es muy til la definicin de convergencia introducida en este campo por De Jong en su tesis doctoral en relacin con los algoritmos genticos simples. Si el algoritmo ha sido correctamente implementado, la poblacin evolucionar a lo largo de las generaciones sucesivas de tal manera que la adaptacin media extendida a todos los individuos de la poblacin, as como la adaptacin del mejor individuo se irn incrementando hacia el ptimo global. El concepto de convergencia est relacionado con la progresin hacia la uniformidad: un gen ha convergido cuando al menos el 95 % de los individuos de la poblacin comparten el mismo valor para dicho gen. Se dice que la poblacin converge cuando todos los genes han convergido. Se puede generalizar dicha definicin al caso en que al menos un pequeo porcentaje de los individuos de la poblacin hayan convergido. Adaptacin media y mejor adaptacin en un algoritmo gentico simple. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL La ilustracin muestra como vara la adaptacin en un algoritmo gentico simple tpico. A medida que el nmero de generaciones aumenta, es ms probable que la adaptacin media se aproxime a la del mejor individuo. Resumiendo, se puede explicar el proceso de un algoritmo gentico simple del siguiente modo: 1. Decidir cmo codificar el dominio del problema. 2. Generar un conjunto aleatorio (poblacin inicial) de N posibles soluciones codificadas al problema. A sta se le llamar poblacin actual. 3. Calificar cada posible solucin (individuo) de la poblacin actual. 4. Seleccionar dos individuos de la poblacin actual con una probabilidad proporcional a su calificacin. 5. Lanzar una moneda al aire (supongamos que la probabilidad de cara es p c). 6. Si cay cara mezclar los cdigos de los dos individuos seleccionados para formar dos hbridos, a los que llamaremos nuevos individuos. 7. Si cay cruz llamamos a los individuos seleccionados nuevos individuos. 8. Por cada bit de cada nuevo individuo lanzar otra moneda al aire (supongamos que en este caso cae cara con probabilidad p m ). 9. Si cae cara cambiar el bit en turno por su complemento. 10. Si cae cruz, el bit permanece inalterado. 11. ncluir a los dos nuevos individuos en una nueva poblacin. 12. Si la nueva poblacin tiene ya N individuos, llamarla poblacin actural y regresar al paso 3, a menos que se cumpla alguna condicin de terminacin. 13. Si no, regresar al paso 4. Un ejemplo sencillo de algoritmo gentico simple Como ilustracin de los diferentes componentes del algoritmo gentico simple, supongamos el problema adaptado de Goldberg de encontrar el mximo de la funcin f(x) = x 2 sobre los enteros {1,2,...,32}. Evidentemente para lograr dicho ptimo, bastara actuar por bsqueda exhaustiva, dada la baja cardinalidad del espacio de bsqueda. Se trata por tanto de un mero ejemplo con el que pretendemos ilustrar el comportamiento del algoritmo anteriormente descrito. Consultando el pseudocdigo del algoritmo gentico simple planteado inicialmente vemos que el primer paso a efectuar consiste en determinar el tamao de la poblacin inicial, para a continuacin obtener dicha poblacin al azar y computar la funcin de evaluacin de cada uno de sus individuos. Suponiendo que el alfabeto utilizado para codificar los individuos est constituido por {0, 1}, necesitaremos ristras de longitud 5 para representar los 32 puntos del espacio de bsqueda. En la Tabla siguiente hemos representado los 4 individuos que constituyen la poblacin inicial, junto con su funcin de adaptacin al problema, as como la probabilidad de que cada uno de dichos individuos sea seleccionado segn el modelo de ruleta sesgada para emparejarse (la probabilidad de que un individuo sea seleccionado es el cociente entre su UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL funcin adaptacin y la suma de las funciones de adaptacin de sus competidores). Poblacin inicial de la simulacin efectuada a mano correspondiente al AG simple Volviendo a consultar el pseudocdigo vemos que el siguiente paso consiste en la seleccin de 2 parejas de individuos. Para ello es suficiente, con obtener 4 nmeros reales provenientes de una distribucin de probabilidad uniforme en el intervalo (0, 1), y compararlos con la ltima columna de la Tabla l. As por ejemplo, supongamos que dichos 4 nmeros hayan sido: 0.58; 0.84; 0.11 y 0.43. Esto significa que los individuos seleccionados para el cruce han sido: el individuo 2 junto con el individuo 4, as como el individuo 1 junto con el individuo 2 (para ello basta fijarnos en que un individuo i se elige cuando el nmero obtenido al azar est comprendido entre la probabilidad de seleccin acumulada del individuo i-1 y la probabilidad de seleccin acumulada del individuo i. Para seguir con el algoritmo gentico simple, necesitamos determinar la probabilidad de cruce (p). Supongamos que se fije en p = 0.8. Valindonos al igual que antes de nmeros provenientes de la distribucin uniforme (dos en este caso), determinaremos si los emparejamientos anteriores se llevan a cabo. Admitamos, por ejemplo, que los dos nmeros extrados sean menores que 0.8, decidindose por tanto efectuar el cruce entre las dos parejas. Para ello escogeremos un nmero al azar entre 1 y L (siendo L la longitud de la ristra utilizada para representar el individuo). Notse que la restriccin impuesta al escoger el nmero entre 1 y L, se realiza con la finalidad de que los descendientes no coincidan con los padres. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Poblacin en el tiempo 3, proveniente de efectuar los operadores de cruce y mutacin sobre los individuos de la tabla anterior Supongamos, tal y como se indica en la Tabla, que los puntos de cruce resulten ser 2 y 3. De esta manera obtendramos los 4 descendientes descritos en la tercera columna de la Tabla 2. A continuacin siguiendo el pseudocdigo de la Figura 1, mutaramos con una probabilidad p, cercana a cero, cada uno de los bit de las cuatro ristras de individuos. En este caso suponemos que el nico bit mutado corresponde al primer gen del tercer individuo. En las dos ltimas columnas se pueden consultar los valores de los individuos, as como las funciones de adaptacin correspondientes. Como puede observarse, tanto el mejor individuo como la funcin de adaptacin media han mejorado sustancialmente al compararlos con los resultados de la Tabla de PobIacin iniciaI de Ia simuIacin efectuada a mano correspondiente aI AG simpIe . 2.3.1.8 EL ALGORITMO GENTICO PARALELO Un programa es paralelo si en cualquier momento de su ejecucin puede ejecutar ms de un proceso. Para crear programas paralelos eficientes hay que poder crear, destruir y especificar procesos as como la interaccin entre ellos.
Bsicamente existen tres formas de paralelizar un programa: Paralelizacin de grano fino: la paralelizacin del programa se realiza a nivel de instruccin. Cada procesador hace una parte de cada paso del algoritmo (seleccin, cruce y mutacin) sobre la poblacin comn. Paralelizacin de grano medio: los programas se paralelizan a nivel de bucle. Esta paralelizacin se realiza habitualmente de una forma automtica en los compiladores. Paralelizacin de grano grueso: se basan en la descomposicin del dominio de datos UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL entre los procesadores, siendo cada uno de ellos el responsable de realizar los clculos sobre sus datos locales. La computacin paralela se ha convertido en una parte fundamental en todas las reas de clculo cientfico, ya que permite la mejora del rendimiento simplemente con la utilizacin de un mayor nmero de procesadores, memorias y la inclusin de elementos de comunicacin que permitan a los procesadores trabajar conjuntamente para resolver un determinado problema. En el caso que nos ocupa, podemos decir que los algoritmos genticos tienen una estructura que se adapta perfectamente a la paralelizacin. De hecho la evolucin natural es en si un proceso paralelo ya que evoluciona utilizando varios individuos. Los principales mtodos de paralelizacin de AGs consisten en la divisin de la poblacin en varias subpoblaciones. El tamao y distribucin de la poblacin entre los distintos procesadores ser uno de los factores fundamentales a la hora de paralelizar el algoritmo. Existen varias formas de paralelizar un algoritmo gentico. La primera y ms intuitiva es la global, que consiste bsicamente en paralelizar la evaluacin de los individuos manteniendo una poblacin. Otra forma de paralelizacin global consiste en realizar una ejecucin de distintos AGs secuenciales simultneamente (estas dos formas de paralelizacin no cambian la estructura del algoritmo utilizado). El resto de aproximaciones s cambian la estructura del algoritmo y dividen la poblacin en subpoblaciones que evolucionan por separado e intercambian individuos cada cierto nmero de generaciones. Si las poblaciones son pocas y grandes, tenemos la paralelizacin de grano grueso. Si el nmero de poblaciones es grande y con pocos individuos en cada poblacin tenemos la paralelizacin de grano fino. Por ultimo, existen algoritmos que mezclan propiedades de estos dos ltimos y que se denominan mixtos. Adems de conseguir tiempos de ejecucin menores, al paralelizar un AG estamos modificando el comportamiento algortmico, y esto hace que podamos obtener otras soluciones y experimentar con las distintas posibilidades de implementacin y los distintos factores que influyen en ella. Estas poblaciones van evolucionando por separado para detenerse en un momento determinado e intercambiar los mejores individuos entre ellas. Tcnicamente hay 3 caractersticas importantes que influyen en la eficiencia de un algoritmo gentico paralelo: La topologa que define la comunicacin entre subpoblaciones. La proporcin de intercambio: nmero de individuos a intercambiar. Los intervalos de migracin: periodicidad con que se intercambian los individuos. 2.3.1.9 MODELOS DE ISLAS En este apartado se introducirn tres maneras diferentes de explotar el paralelismo de los Algoritmos Genticos, por medio de los denominados modelos de islas. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL La idea bsica consiste en dividir la poblacin total en varias subpoblaciones en cada una de las cuales se lleva, a cabo un Algoritmo Gentico. Cada cierto nmero de generaciones, se efecta un intercambio de informacin entre las subpoblaciones, proceso que se denomina migracin. La introduccin de la migracin hace que los modelos de islas sean capaces de explotar las diferencias entre las diversas subpoblaciones, obtenindose de esta manera una fuente de diversidad gentica. Cada subpopulacin es una "isla", definindose un procedimiento por medio del cual se mueve el material gentico de una "isla" a otra. La determinacin de la tasa de migracin, es un asunto de capital importancia, ya que de ella puede depender la convergencia prematura de la bsqueda. Se pueden distinguir diferentes modelos de islas en funcin de la comunicacin entre las subpoblaciones. Algunas comunicaciones tpicas son las siguientes: Comunicacin en estrella, en la cual existe una subpoblacin que es seleccionada como maestra (aquella que tiene mejor media en el valor de la funcin objetivo), siendo las dems consideradas como esclavas. Todas las subpoblaciones esclavas mandan sus h1 mejores individuos (h1 > 1) a la subploblacin maestra la cual a su vez manda sus h2 mejores individuos (h2 >1) a cada una de las subpoblaciones esclavas. Comunicacin en red, en la cual no existe una jerarqua entre las subpoblaciones, mandando todas y cada una de ellas sus h3 (h3 > 1) mejores individuos al resto de las subpoblaciones. Comunicacin en anillo, en la cual cada subpoblacin enva sus h4 mejores individuos (h4 > 1), a una poblacin vecina, efectundose la migracin en un nico sentido de flujo. 2.3.2 Bsqueda en sistema de Juegos: Una definicin formal de juego sera la de un tipo de problema de bsqueda integrado por lo siguiente: El estado inicial Un conjunto de operadores Una prueba terminal Una funcin de utilidad Bsqueda MnimaX: El algoritmo minimax se compone de 5 pasos: Generacin de todo el rbol de juego Aplicacin de la funcin de utilidad a cada estado terminal UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Uso de la utilidad de los estados terminales para calcular la utilidad de los nodo del siguiente nivel superior en el rbol de bsqueda Continuacin del respaldo a los valores de los nodos hojas Los valores respaldados llegan a la parte superior del rbol; en ese sitio, MAX elige la jugada que le permitir obtener el valor ms alto. Arbol de bsqueda parcial del juego Tres en lnea. El nodo del estado superior es el estado inicial; MAX inicia el juego poniendo una X en uno de los cuadros. Se muestra parte del rbol de bsqueda presentando diversas jugadas para MN (0) y para MAX, hasta finalmente llegar a estados terminales, a los que se asignan utilidades, de conformidad con las reglas del juego. Funcin evaIuacin: Debido a que en muchas ocasiones no se dispone de todo el tiempo necesario para efectuar una bsqueda hasta que se llegue a los estado terminales y de esta forma aplicarles la funcin de utilidad, lo que se hace es suspender la bsqueda y aplicar la funcin de evaluacin a los nodos hojas, la cual produce una estimacin de la utilidad esperada de un juego correspondiente a una posicin determinada. La funcin evaluacin debe cumplir lo siguiente: Debe coincidir con la funcin de utilidad de los estados terminales. Su clculo no debe tomar mucho tiempo. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Debe reflejar las posibilidades reales de poder ganar. Suspensin de una bsqueda: Una de las formas de controlar la cantidad de bsqueda consiste en definir un lmite de profundidad fija de manera que cuando se alcance un nodo de profundidad d se suspenda la bsqueda. Otra forma es aplicar la profundizacin iterativa y cuando se agote el tiempo el programa proponga la jugada determinada durante la ms profunda de las bsquedas hasta entonces llevada a cabo. Poda AIfa-Beta: Al proceso para evitar la exploracin de una de las ramas del rbol de bsqueda se lo conoce como poda del rbol de bsqueda. La poda Alfa-Beta se aplica en bsquedas minimax. El principio general es el siguiente: considrese un nodo n del rbol, tal que exista la posibilidad de que el jugador pueda ir a ese nodo. Si tuviera una mejor opcin m, en un juego real nunca se alcanzar n. Una vez que se cuenta con suficiente informacin sobre n que permita llegar a esta conclusin, se procede a podar. Poda AIfa-Beta. Sea d el valor de la mejor opcin encontrada hasta entonces en un punto de eleccin a travs de la ruta de MAX y sea el valor de la mejor opcin encontrada hasta entonces en un punto de opcin a lo largo de la ruta de MN. Conforme se efecta la bsqueda alfa-beta se van actualizando los valores de d y y se poda un subrbol en cuanto se determina que es peor que el valor actual de d o . Si es posible explorar primero aquellos sucesores que aparentemente tienen ms posibilidades de ser los mejores, para encontrar la mejor jugada alfa-beta slo se tendrn que explorar O(bd/2) nodos. Juegan Ias negras: El problema del horizonte. La serie de jaques de la torre negra fuerzan la inevitable jugada de coronacin de las blancas "encima del horizonte y parecera que esta posicin es ligeramente ms ventajosa para las negras, cuando en realidad es seguro el triunfo de las blancas. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Juegos en Ios que interviene un eIemento aIeatorio: En la vida real diversos elementos externos impredecibles nos llevan a situaciones imprevistas. Estos elementos impredecibles se representan mediante nodos aleatorios. Cada una de las ramas que salen de ese nodo aleatorio representa una de las posibles instancias que puede tomar ese elemento aleatorio junto con la probabilidad de que ocurra. Las posibles posiciones ya no tienen un valor minimax definido, sino un valor esperado, calculado como un promedio de los posibles resultados del elemento aleatorio. Distribucin tpica en un juego de backgammon. El objetivo del juego es lograr sacar todas las piezas del tablero. Las fichas blancas se desplazan en sentido de las manecillas del reloj hasta el 25; las negras, en sentido contrario, hasta llegar a 0. Las piezas pueden colocarse en cualquier sitio, excepto en donde haya dos o ms piezas del contrincante. Cuando una pieza cae en una posicin donde hay una ficha del contrincante, se toma sta y tiene que volver a iniciar su desplazamiento desde el principio. En esta posicin, al tocar el turno a las blancas se obtuvo con los dados 6-5, con lo que slo hay cuatro posibles jugadas: (5-10, 5-11), (5-11, 19- 24), (5-10, 10-16) y (5-11, 11-16). UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL UNIDAD DIDCTICA 3 3. REPRESENTACION DEL CONOCIMIENTO Y RAZONAMIENTO INTRODUCCION La representacin constituye el ncleo de la ciencia de los computadores. 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. ESTRUCTURA TEMTICA Tercera Unidad CaptuIos Temas REPRESENTACN DEL CONOCMENTO Y RAZONAMENTO El papel del conocimiento en la nteligencia Artificial. Paradigma simblico y conexionista. Modelos de representacin Puntos de vista declarativos y normativos Aplicaciones en la ciencia e ngeniera Representaciones basadas en lgicas El lenguaje de la lgica de predicados Extensiones de la lgica clsica Programacin lgica Gestin de reglas de produccin nferencia Reglas de produccin sin y con variables ntroduccin al aprendizaje automtico de reglas. 3. REPRESENTACION DE CONOCIMIENTO INTRODUCCION 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 til para la representacin. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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. 3.2 DEFINICIN La definicin del concepto de representacin de conocimiento se realiza desde dos puntos de vista, atmico y holstico. 3.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. 3.2.2. Vista HoIstica Esta vista corresponde al holismo que dice, l todo es mas que la suma de sus partes segn aristoteles. As la representacin de conocimiento es mas que solo la conjuncin de los conceptos de conocimiento y representacin. a) ModeIo ReaIstico SimpIe Este modelo 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: Se realiza la seleccin de un conjunto de datos acerca del mundo. La seleccin es en principio sin ninguna teora de respaldo. Los datos se combinan en una estructura. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Se refina la estructura hasta que la misma refleja al mundo concreto, lo suficientemente bien. EjempIo: 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) ModeIo 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL EjempIo: 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. 3.2.3. Notas FinaIes 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 35 L. 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 representacin 36 de conocimiento de algn mundo W, en algn lenguaje L. e) La interpretacin1 37 del conocimiento representado. 3.3. EVOLUCION DE LOS SISTEMAS BASADOS EN CONOCIMIENTO 3.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.3.2. Sistema de Programacin ConvencionaI 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 35 En este contexto el lenguaje debe ser entendido en el sentido ms amplio que sea posible. 36 Se considera como una codificacin del conocimiento. 37 Se considera como una decodificacin del conocimiento. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL cerrada. 3.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 38 , 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 12 39 relativos a la operacin sobre los archivos. Alguna de las operaciones son: adicionar y remover archivos, insertar, recuperar, actualizar y eliminar datos de los archivos existentes. 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. EjempIo: 38 Corresponde al Data Base Management System (DBMS). 39 En este caso incluso puede ser un programa. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Programa convencional para la emisin de una planilla de pagos. 3.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. 3.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. 3.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 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 superclases 40 , 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. EjempIo 1: Relacin semntica simple que representa "Pioln es un ave. EjempIo 2: Relacin semntica para representar la relacin entre una silla y su propietario. 40 El enlace ms notable entre clases es el enlace: es-un (S-A). A travs de este enlace se establecen tambin relaciones jerrquicas y herencia. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Las redes semnticas tambin son denominadas redes asociativas, debido principalmente al carcter asociativo de los enlaces 41 . 3.4.2. Armazones15 42 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 estereotipos 43 . 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 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). EjempIo 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: SLLA 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: SLLA DE EDDY 41 Conocidas tambin como relaciones o asociaciones. 42 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". 43 En este caso hace referencia a las propiedades tpicas de los objetos. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL Especializacin de SLLA 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. 3.4.3. RegIas 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 consecuentes. 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, UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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: S 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) ncrementalidad. 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) EjempIo No 1: F: ($AND (SAME CNTXT NFECT PRMARY_BACTEREMA) (MEMBF CNTXT STE STERLESTES) (SAME CNTXT PORTAL G)) THEN: (CONCLUDE CNTXT NDENT BACTERODES TALLY.7) Que puede ser interpretado como: S: 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. EjempIo 2: S Animal es-un carnvoro Y Animal color caf Y Animal tiene rayas ENTONCES Animal es tigre EjempIo No 3: S un empleado divulga proyectos secretos. ENTONCES l viola la poltica de la compaa EjempIo No 4: S un estudiante no lee mucho (.80) ENTONCES corre el peligro de quedar desactualizado (.95) UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL En este ejemplo puede observarse los factores de certeza probabilsticos en la suposicin y en la conclusin. 3.4.4. Redes de Herencia EstructuraIes 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 44 . 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 epistemolgico 45 . 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 44 En este nivel conocidos como grafos de dependencia conceptual. 45 Hace referencia a lo estructural o descripcional. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL animales. EjempIo: Taxonoma simple de conceptos 3.4.5. Representacin TerminoIgica La primera implementacin de las redes de herencia estructural fue KLONE19 46 , 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 A, 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 A. 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, 46 Esta denominacin original sufri una variacin para denominarse KL-ONE. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL e) relaciones entre partes de las descripciones estructurales y los roles. 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 KL-ONE ha sido superficial y fortuito. 3.4.6. Guiones 47 Un guin es una forma de representar una situacin prototpica 48 , 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: 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. 47 Traduccin de la palabra inglesa Script. 48 En algn sentido parecido a los armazones. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL EjempIo: Guin que representa el viaje a un estadio de ftbol. Guin : Viaje al estadio Utilera: Automvil Llaves Puerta automvil Escena 1. ARRANQUE Dueo busca llaves Dueo abre puerta automvil Dueo arranca automvil Espacio de parqueo Dueo pone automvil en marcha Papeles: (Roles) Dueo (propietario) Acomodador Vehculos (Valet) Escena 2. CONDUCCON Dueo encuentra transito libre Dueo ingresa al trafico Dueo se dirige al estadio Condiciones de ingreso: Dueo y automvil en punto de partida 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 compIementarios para Ia unidad 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. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL 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 para representar la ingesta de alimentos por parte de un comensal con dinero en un restaurante. BIBLIOGRAFA RUSSEL, S. and NORVG, P. nteligencia Artificial. Un enfoque moderno. Prentice Hall, 1995. NLSSON, N. J., Artificial ntelligence. Una Nueva Sntesis. Morgan Kaufmann Publishers, 2000. BORRAJO, D., JURSTO, N., MARTNEZ, V. y PAZOS SERRA, J., nteligencia Artificial, mtodos y tcnicas, p. 591, Editorial Centro de Estudios Ramn Areces, Madrid, 1993 GNSBERG, M. L., Essentials of Artificial ntelligence, p. xiii+430, Morgan Kaufmann Publishers, San Mateo. (California), 1993. N.R. 450 AC RCH, E. and KNGHT, K., nteligencia artificial. McGraw-Hill, 1994. Edicin original: Artificial ntelligence. WNSTON, P. H., nteligencia Artificial. Tercera Edicin, p. xxv+805, Addison-Wesley beroamericana, Wilmington, Delaware, EE.UU., 1994 (traduccin de la tercera edicin en ingls de 1992) PEARL, J., Heuristics. Addison-Wesley Publishing Company, Massachusetts, 1984. DEAN, T. et all. Artificial ntelligence. Theory and Practice. Addison-Wesley, 1995. FERNNDEZ GALAN, s., GONZLEZ BOTCARO, J. y MRA MRA, J. Problemas Resueltos de nteligencia Artificial Aplicada. Bsqueda y Representacin. Addison Wesley, 1998. M. Mitchell, Machine Learning, McGraw Hill, 1997 Referencias eIectrnicas Universidad Carnegie Mellon. Seccin de Inteligencia Artificial Avanzada. Disponible en . Universidad de Mlaga. Departamento de Lenguajes y Ciencias de la Computacin. Disponible en . UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL http://www.aic.uniovi.es/ Universidad de Oviedo. http://scalab.uc3m.es/~docweb/index.html Univ. Carlos III de Madrid. Contiene gran variedad de material para prcticas y docencia sobre IA, investigacin, etc. http://diana.cps.unizar.es/banares/A/A.html Univ. de Zaragoza. Prcticas y exmenes. http://grial.uc3m.es/~docweb/doctorado/aa/descripcion.html Univ. Carlos III de Madrid. Contiene gran variedad de material para prcticas y docencia sobre Aprendizaje Automtico, investigacin, etc. http://www.cs.us.es/~delia/sia/html98-99/referencias.html Enlaces a pginas sobre Aprendizaje http://www.ia.uned.es/~jgb/util/cbr.html Pgina de la UNED sobre Razonamiento basado en casos De Lisp http://www.apl.jhu.edu/~hall/lisp.html Recursos de Common Lisp http://www.franz.com/downloads/#acl Descarga de Alegro Common Lisp, Faqs, etc http://www-2.cs.cmu.edu/~dst/LispBook/index.html Common Lisp: A Gentle Introduction to Symbolic Computation. (David S. Touretzky) De todo tipo de Recursos sobre InteIigencia ArtificiaI UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD ESCUELA DE CENCAS BSCAS, TECNOLOGA E NGENERA CONTENDO DDCTCO DEL CUSO: 90169 NTELGENCA ARTFCAL http://www.faqs.org/faqs/ai-faq/general/part1/ FAQ on-line de Inteligencia Artificial http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/areas/0.html Software de IA. Contiene todo tipo de software de libre distribucin de Inteligencia Artificial. http://www.compapp.dcu.ie/~humphrys/eliza.html Mark Humphrys - How my program passed the Turing Test http://www.cs.berkeley.edu/~russell/ai.html AI on the Web de Stuart Russel. Esta pgina enlaza a 874 sitios de la web con informacin sobre IA Referencias EIectrnicas ARPA KnowIedge Sharing Effort nformacin 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 KnowIedge-Base Projects Proyectos KB alrededor del mundo; lista completada por Peter Clark. http://www.cs.utexas.edu/users/mfkb/related.html KnowIedge Sharing and the Logic Group at Stanford nformacin sobre el KF (Formato de intercambio de conocimiento) en Stanford. http://hpdce.stanford.edu/logic.html KQML nvestigaciones sobre el conocimiento y la manipulacin del lenguaje, en la Universidad de Maryland, Baltimore Country. http://www.cs.umbc.edu/kqml/ MuItifunctionaI KnowIedge 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