Está en la página 1de 101
CUADERNO DE TRABAJO Inteligencia Artificial Profesor Mag. Eduardo F. Alonso Pérez Febrero 2012 iNDICE DE FIGURAS INDICE DE TABLAS. INTRODUCCION CAPITULO I: INTI 1.1 Enfoques de los sistemas inteligentes. 1.2 Prueba de Turing... 1.3 Fundamentos de la Inteligencia Artificial 1.4 Historia de la Inteligencia Artificial 1.5 Aplicaciones de la Inteligencia artificial CAPITULO I: AGENTES. 2.1 Agentes inteligentes 2.2 Programa para un agent 2.3 Tipos de programas para Agentes. 2.4 Agentes Reactivos.. 2.5 Ejemplo de un Agente Reactivo (robot) 2.6 Percepcion y Accién 2.7 Implementaci6n del agente Reactivo Robot 2.8 Cédigo completo en Visual Basic ... CAPITULO Ill: RESOLUCION DE PROBLEMAS MEDIANTE BUSQUEDAS ... 3.1 Agente resolvente-Problema: 3.2 Mundo de la Aspiradora. 3.3 Estrategia de busqueda 3.4 Algoritmo general de busqueda 3.5 Busqueda Ciega (no informada)... 3.5.1 Busqueda Primero en Anchura. 3.5.2 Busqueda de Costo Uniforme. 3.5.3 Busqueda Primero en Profundidad. 3.5.4 Busqueda de Profundidad Limitada.. 3.5.5 Busqueda Primero en Profundidad con Profundidad Iterativa B*SoeaVSFHRGNR A SS0OND 3.5.6 Busqueda Bidireccional 3.6 Busqueda Heuristica (informada) 3.6.1 Busqueda Voraz (Avara) Primero el Mejor .. 3.6.2 Busqueda A* Primero el Mejor. 3.6.3 Otros algoritmos .. CAPITULO IV: SISTEMAS EXPERTOS 4.1 Introducci6n.. 4.2 Sistemas clasicos y sistemas expertos... 4.3 Breve historia... 4.4 Importancia de los sistemas experto: 4.5 Inconvenientes de los sistemas expertos ... 4.6 Arquitectura de un sistema experto 4.7 Base de conocimientos..... 4.7.1 Reglas..... 4.7.2 Atributos y valores 4.7.3 Preguntas... 4.8 Motor de inferencia.. 4.8.1 Encadenamientos 4.8.2 Algoritmo de Forward chaining 4.8.3 Algoritmo de Backward chaining.. 4.8.4 Comparacién de las dos estrategias.. 4.8.5 Resolucion de Contlicto....... CAPITULO V: PROGRAMACION LOGICA.. 5.1 Programaci6n declarativa .. 5.2 Programacion logica 5.3 Breve historia de! Prolog 5.4 Elementos principales del Prolog. 5.4.1 Hechos..... 5.4.2 Variables 5.4.3 Reglas .. 5.4.4 Consultas 5.4.5 Ambito de las variables 6.4.6 Mecanismo de control. 5.5 Aplicacién del Prolog a los Sistemas Expertos . CAPITULO VI: RECONOCIMIENTO DE PATRONES.. 6.1 Introduccion... 6.2 Algunas aplicaciones . SShSS 28883888882 Beees BBUISLSsssr22s ss 6.3 Conceptos basicos .... 6.3.1 Objetos admisibles, clases, rasgos. 6.3.2 Descripcion estandar de un objeto 6.3.3 Funcién de comparaci6n de rasgos .. 6.3.4 Funcion de semejanza.... 6.3.5 R-uplo de Pertenencia de O 6.3.6 Informacion Estandar de Clases. 6.3.7 Matriz de aprendizaje (de control 6 muestra). 6.4 Problemas que abarca el reconocimiento de patrones 6.4.1 Clasificacién supervisada .. 6.4.2 Seleccién de rasgos..... 6.4.3 Clasificacién no supervisada (agrupamiento 6 clustering). 6.5 Algoritmo NN (Nearest Neighbour). Clasificacion Supervisada..67 6.6 Algoritmo K-NN (K-Nearest Neighbour). Clasificacion Supervisada .. 6.7 Algunas funciones de distancia . 6.8 Analisis Discriminante. Clasificacion Supervisada 6.8.1 Funciones discriminantes 6.8.2 Puntuaciones Discriminantes. 6.8.3 Coeficientes de las funcione: 6.8.4 Aprendizaj 6.8.5 Clasificacio 6.9 Prototipos. Clasificacion Supervisad: 6.9.1 Idea general de los métodos..... 6.9.2 Algoritmos de prototipos 6 centroides 6.9.3 Algoritmo de Medios o Centros.... 6.9.4 Algoritmo de Convexos. 6.9.5 Clasificaciér 6.9.6 Implementacién del Algoritmo: Medios 6 Centros. CAPITULO VII: REDES NEURONALES ARTIFICIALES 8.1 Introducci6n... 8.2 Breve historia de las RNA. 8.3 Algunas aplicaciones de las RNA: .. 8.4 Neuronas biologicas 8.5 Neuronas artificiales 8.6 Especificacién de una RNA... 8.7 Clasificacin general de las RNA... 8.8 Modelos de neurona (Funciones de transferencia)... 8.9 Topologias de RNA... 8.10 Aprendizaje supervisado. Perceptron 8.10.1 Aprendizaje de las RNA. 8.10.2 Red Perceptron ..... 8.10.3 Modelo de neurona del Perceptrén. 8.10.4 Topologia del Perceptron .. 8.10.4 Regla de aprendizaje del Perceptré 8.10.5 Algoritmo general de aprendizaje 8.10.6 Limitacién del Perceptron 8.11 Aprendizaje no supervisado. Redes competitiva 8.11.1 Introduccion . 8.11.2 Breve historia... 8.11.3 Redes Competitiva: 8.11.4 Red de Kohonen 8.11.5 Topologia 8.11.6 Etapa de Aprendizaje (no supervisado) . 8.11.7 Algoritmo de Aprendizaje. REFERENCIAS... INDICE DE FIGURAS Figura 1. Elementos de un agente: Figura 2. Entorno del Robot. Figura 3. Entradas del Robot.. Figura 4. Percepcion y Accién Figura 5. Variables sensoriales . Figura 6. Entorno del Robot en Excel. Figura 7. Mundo de la Aspiradora.. Figura 8. Grafo de Transiciones. Aspiradora Figura 9. Arquitectura de un Sistema Experto . Figura 10. Representacién de una Regla ... Pura 11. Arquitectura de un Sistema de Reconocimiento de Patrones Figura 12. Ejemplos de objetos agrupados en 3 clases. Figura 13. Objeto de clase desconocida. Figura 14. Objetos sin agrupar ... Figura 15. Conjuntos de objetos y sus clases.. Figura 16. Problema del algoritmo NN Figura 17.Centroides Figura 18. Neurona Bioldgica ..... Figura 19. Neurona Biologica y Neurona Artificial... Figura 20. Elementos de una neurona artificial... Figura 21. Clasificacién de redes neuronales Figura 22. Neurona Simple. Figura 23. Red Simple... Figura 24. Red con elementos de asociacidn... Figura 25. Red multicapa.... Figura 26. Modelo interactivo ..... Figura 27. Topologia de la Red para el Robot. Figura 28. Pesos entra la capa de entrada y la intermedia Figura 29. Pesos entre la capa intermedia y la de salida... Figura 30. Topologia del Perceptron .. Figura 31. Objetos en R2, separados en 2 clases Figura 32. Red final. Perceptrén.... Figura 33. Topologia de la Red de Kohonen... INDICE DE TABLAS Tabla 1. Enfoques de los sistemas inteligentes Tabla 2. Historia de la inteligencia artificial .... Tabla 3. Ejemplos de REAS.. Tabla 4. Tipos de programas de agente .. Tabla 5. Sistemas Clasicos vs Sistemas Expertos ..... Tabla 6. Paso Inicial. Forward Chaining .. Tabla 7. Primera Iteracién. Forward Chaining . Tabla 8. Segunda Iteracion. Forward Chaining............-...-+.+ Tabla 9. Tercera Iteracion. Forward Chaining.. Tabla 10. Cuarta Iteracién. Forward Chaining .. Tabla 11. Quinta y ultima Iteracion. Forward Chaining . Tabla 12. Paso Inicial. Backward Chaining Tabla 13. Primera Iteracién. Backward Chaining. Tabla 14. Segunda Iteraci6n. Backward Chaining Tabla 15. Cuarta y Ultima Iteracién. Backward Chaining... Tabla 16. Comparacion entre las estrategias .. Tabla 17. Ejemplos de frases y hechos... Tabla 18. . Preguntas, Consultas y Respuestas .... Tabla 19. Tabla 20. Tabla 21. Tabla 22. Tabla 23, Matriz de Aprendizaje... Distancia del objeto desconocido a la muestra .. Matriz de Aprendizaje para el Analisis Discriminante....... Funciones Discriminantes... Modelos de Redes Neuronales... INTRODUCCION La investigacién y desarrollo tecnolégico en Inteligencia Arifcial ha contribuido con un conjunto de tecnologias poderosas que apoyan a las empresas ¢ insfituciones para resolver problemas relacionados con el manejo del conocimiento y en la toma de decisiones. Por otro lado, se tiene un gran avance en lo que se refiere a las tecnologias de la informacién, por lo cual el desarrollo e implementacién de sistemas inteligentes son tareas fundamentales de cualquier institucién. Este curso tiene como objetivo ofrecer una visién de las técnicas de Inteligencia Artificial (IA) como una herramienta de soluciin de problemas complejos. Presenta una perspectiva general de los apartados més significativos de la IA mostrando las bases, herramientas teéricas y las aplicaciones practicas de esta rama de las tecnologias de la informacién. Para ello se estudian los aspectos basicos tedricos que sirven para desarrollar aplicaciones de IA relacionados con la busqueda de soluciones, los sistemas expertos, ol reconocimiento de patrones y las redes neuronales artiticiales. CAPITULO I: INTRODUCCION A LA INTELIGENCIA ARTIFICIAL La Inteligencia Artificial es un campo de la ciencia que trata de realizar, con méquinas, tareas que pueden ser realizadas por el hombre, aplicando cualquier tipo de razonamiento ti} En cierta media cualquier programa de computador puede considerarse inteligente. El problema es diferenciar entre lo que se considera un “programa inteligente” y el que no lo es, Un programa inteligente es aquel que exhibe un comportamiento similar al humano cuando se enfrenta a un problema idéntico. 1.1 Enfoques de los sistemas inteligentes. En la Tabla 1 se muestran cuatro enfoques de los sistemas inteligentes [1]. ‘Tabla 1. Enfoques de los sistemas inteligentes ‘Sistemas que PIENSAN como _| Sistemas que PIENSAN humanos EI nuevo y exitante esfuerzo de hacer que los computadores piensen’ ‘La automatizacién de actividades que vinculamos con procesos de pensamiento humano, actividades como la toma de decisiones, resolucion de —_ problemas, aprendizaje ‘Sistemas que ACTUAN como humanos “Desarrollar —-maquinas con capacidad para realizar funciones que cuando son realizadas por personas requieren de inteligencia” “El estudio de como lograr que los computadores realicen tareas, que por el momento, los humanos hacen mejor” racionalmente “El estudios de las facultades mentales mediante el uso de modelos computacionales” “El estudio de los calculos que hacen posible percibir, razonar y actuar" Sistemas que ACTUAN racionalmente “La inteligencia Computacional es el estudio del disefio de agentes inteligentes” “Esta relacionada con conductas inteligentes en artefactos” Pensar como un humano Es necesario contar con un mecanismo para determinar como piensan los humanos. Una vez que se tenga una teoria al respecto, se podré expresar esa teoria en la forma de un programa de computadoras. Si los datos de E/S y los tiempos de reaccién del programa son similares a los de un humano existe la evidencia de que algunos de los mecanismos del programa se pueden comparar con los del los humanos. Ciencia cognitiva: Convergen modelos computacionales de IA y técnicas experimentales de psicologia intentando elaborar teorias precisas y verificables sobre el funcionamiento de la mente humana. Pensar racionalmente Intentar codificar la “manera correcta de pensar”. Un proceso de razonamiento irrefutable. Arist6teles fue uno de los primeros, a través de sus silogismos (esquemas de estructuras de argumentacién en las que siempre se llega a conclusiones correctas si partimos de premisas correctas). Légica. Notacién precisa para definir sentencias sobre todo tipo de elementos del mundo y especificar relaciones entre ellos. Ya on 1965 habian programas que resolvian cualquier problema que pudiera expresarse mediante la notacién de la l6gica. No es facil transformar conocimiento informal y expresario en términos formales, sobre todo cuando el conocimiento es inferior al 100%. Es diferente a resolver un problema “en principio" y hacerlo en la practica. Hay problemas que alin con unos pocos datos pueden agotar los recursos computacionales. Actuar racionalmente Un enfoque basado en agentes. Algo que razona. Los agentes informaticos se deben distinguir de los programas convencionales. Perciben su entorno. Persisten en el tiempo. Se adaptan a los cambios y son capaces de aleanzar objetivos diferentes. Un agente racional actiian con la intencién de alcanzar el mejor resultado, 6 cuando hay incertidumbre, el mejor resultado esperado. Las habilidades que se necesitan en la prueba de Turing deben permitir empronder acciones racionales. Es necesario contar con la capacidad para representar el conocimiento y razonar basandonos en él. El enfoque de la IA basados en las leyes del pensamiento pone todo el énfasis en hacer inferencias correctas, lo cual podria considerarse como racional. Sin embargo una inferencia correcta no depende siempre de la racionalidad. Hay situaciones en las que no hay nada correcto que hacer y es necesario tomar una decision También hay maneras de actuar racionalmente que no implican realizar inferencias, 1.2 Prueba de Turing Fue propuesta por Alan Turing en 1950 [2]. Proporciona una definicién operacional y satisfactoria de Inteligencia. Est basada en la incapacidad de diferenciar entre entidades artificiales y seres humanos. En la actualidad, programar una computadora para que supere la prueba requiere un trabajo considerable. El computador supera la prueba si un evaluador humano no es capaz de distinguir si las respuestas a una serie de preguntas, son de una persona 6 no. Capacidades que debe tener la computadora Procesamiento de lenguaje natural: Para poder comunicarse satistactoriamente en lenguaje natural. Representacién del conocimiento: Para almacenar lo que se conoce 6 siento. Razonamiento automatico: Para utilizar el conocimiento almacenado para responder a preguntas y extraer nuevas conclusiones. Aprendizaje automatico: Para adaptarse a nuevas circunstancias y para detectar y ‘extrapolar patrones. Visién computacional: Para percibir objetos Robética: Para manipular y mover objetos La prueba se conserva vigente en la actualidad. Los cientificos han dedicado poco esfuerzo a la evaluacion de los sistemas con la prueba de Turing. Es mas importante el estudio de los principios en que se basa la inteligencia que duplicar un ejemplar. Los hermanos Wright tuvieron éxito en la bisqueda de un artefacto que volara, cuando dejaron de imitar a los pajaros y comprendieron los principios de la aerodinamica 1.3 Fundamentos de Inteligencia Artificial La Inteligencia Artificial tiene sus fundamentos en las siguientes areas de conocimiento [1] Filosofia Matematicas Economia Neurociencia Psicologia Ingenieria Computacional Teoria del Control y la Cibernética Linguistica Filosofia zExisten reglas formales para extraer conclusiones validas?. ¢Cémo se genera la inteligencia mental? {De donde viene el conocimiento? ¢Cémo se pasa del conocimiento ala acci6n? Silogismos: Aristételes. Extracci6n de conclusiones mecénicamente a partir de premisas iniciales). Dualismo: Descartes. Existe una parte de la mente que esta al margen de la naturaleza. Los animales no poseen esta cualidad dual; e igualmente a las maquinas) Materialismo: Las operaciones del cerebro realizadas de acuerdo con las leyes de la fisica constituyen la mente). Empirico: Nada existe en la mente que no haya pasado por los sentidos. Induccién: Las reglas generales se obtienen mediante la exposicién a asociaciones repetidas entre sus elementos. Positivismo ldgico: Todo el conocimiento se puede caracterizar mediante teorias légicas relacionadas. Teoria de la confirmacion: Intenta explicar cémo el conocimiento se obtiene a partir de la experiencia. Matematicas {Qué reglas formales seguir para obtener conclusiones validas? {Qué se puede computar? ;Cémo razonamos con incertidumbre?. Légica formal: Desarrollo matematico a través de la logica proposicional 6 Booleana. Algoritmo: El primer algoritmo trivial fue el Euclideo para calcular el mod. Algoritmos para realizar deducoiones légicas. Teorema de incompletitud: En cualquier lenguaje que tuviera la capacidad para expresar las propiedades de los némeros naturales, existen aseveraciones verdaderas no decidibles (no se pueden validar mediante algoritmos). Intratabilidad: Problemas en los que el tiempo necesario para la resolucién de los casos particulares crecen exponenciaimente con el tamafio de los casos. NP-Completitud: Método para identificar problemas intratables. Probabilidad: Ayuda al tratamiento de mediciones con incertidumbre Economia _Cémo tomar decisiones para maximizar rendimiento?. Teoria de la decision: Combina la teoria de la probabilidad con la teoria de la utiidad. Teoria de juegos: En algunos juegos, tun agente racional debia actuar de forma aleatoria, 0 al menos, aleatoria en apariencia con respecto a sus contrincantes. Investigacion operativa: Orienta a la optimizacion y toma de decisiones de direccién complejas. Satistaccién: Toma de decisiones que son “suficientemente buenas" Neurociencia zCémo procesa informacién el cerebro?. Neurociencia: Estudio del sistema neurolégico y en especial el cerebro. La forma exacta en que el cerebro genera los pensamientos. Neuronas: El cerebro esta formado por células nerviosas llamadas neuronas que han sido observadas y estudiadas individualmente Psicologia zCémo piensan y actian los humanos y los animales?. Conductismo: Rechaza cualquier teoria en la que intervengan procesos mentales. Insistieron en el estudio exclusivo de mediciones objetivas de percepciones (estimulos) y de las acciones resultantes (respuestas). Psicologia cognitiva: Conceptualizacién del cerebro como un dispositive de procesamiento de informacién. Pone énfasis en que la percepcién entrafia cierto tipo de inferencia logica inconsciente. Ciencia cognitiva: Utilizacién de modelos informaticos para modelar la psicologia de la memoria, el lenguaje y el pensamiento légico Ingenieria Computacional eCémo se puede construir un computador eficiente?. Computadora: La 1A necesita ademas de Inteligencia y un Artefacto (la computadora). Hardware: Cada generacién de dispositivos ha conllevado a un aumento en la velocidad de proceso y capacidad de almacenamiento. Software: Los Sistemas operativos, los lenguajes de programacién y las herramientas modernas para escribir programas. La investigacién en IA ha generado numerosas ideas importantes: Tiempo compartido, intérpretes imperativos, interfases graficas, entornos de desarrollo rapido, programacién simbdlica, funcional, dinamica, orientada a objetos. Teoria del Control y cibernética zCémo pueden los artefactos operar bajo su propio contro!?. Teoria del control: Ver el comportamiento determinista como algo emergente de un mecanismo regulador que intenta minimizar el “error” (la diferencia entre el estado actual y el objetivo). Cibernética: Modelos cognitivos matematicos y computacionales. Funcién objetivo: Teoria del control moderna, basados en disefiar sistemas que maximizan una funcién objetivo en el tiempo. Lingiiistica 4C6mo esté relacionado el lenguaje con el pensamiento?. Lingiifstica computacional Convergencia entre la lingUistica moderna y la IA (procesamiento de lenguaje natural) 1.4 Historia de la Inteligencia Artificial La Tabla 2 muestra una breve historia de la inteligencia artifi algunos de los hechos mas detacados [2]. ial, resaltando las fechas y ‘Tabla 2. Historia de la inteligencia artificial Periodo Hechos mas destacados Periodo de Gestacién | Los Modelos de neuronas artificiales (1943), Reglas (1943-1956) ‘de actualizacién de aprendizaje (1949), Programas de ajedrez para computadoras (1950,1953), Primera computadora para simular una red de 40 neuronas a partir de un computador de tubos de vacio (1951), Lenguaje LISP. Primer lenguaje de IA (1958), Reunion en el Darmouth College (1956), Programa capaz de demostrar teoremas de logica, Aparece por primera vez el término: “Inteligencia Artificial”. Entusiasmo y grandes expectativas (1952-1965) GPS. Solucionador general de problemas. Aborda un problema como un conjunto de subproblemas posibles cursos de accién. Juego de damas con aprendizaje de la experiencia de las partidas jugadas (1952) Contribuciones de McCarthy en el MIT. LISP Compartido y desarrollo del EC (programa que incorpora conceptos de representacion y conocimiento) (1958) Contribuciones de McCarthy en Stanford. Sistema de planificacin y respuesta de preguntas (1969). Solucién a problemas imitados ~ (micromundos, ANALOGY: analogia geométrica) Dosis de Realidad (1966- 1974) Se predjo que en 10 afos habria una maquina inteligente Teoria de NP-Completos. Programa ELIZA, en el MIT, que simulaba el comportamiento de un psicoanalista (1965) Experiments en Machine Evolution (ahora llamados algoritmos. genéticos). Perceptrones. Tipo de redes neuronales (1969) Sistemas basados en conocimientos —_(1968- 1979) Dendral. Sistema para inferir estructuras moleculares. Mycin. Sistema para el diagndstico médico de enfermedades —_sanguineas. Se modela la incertidumbre. HPP. Proyecto de programacién heuristica. SHDRLU. Sistema para la comprensién del lenguaje natural. Lenguaje PROLOG (1972) TA como industria (1980- 1988) R1. Primer sistema experto comercial, para la elaboracién de pedidos. Proyecto de quinta generacién en Japén (maquina PROLOG). Maquinas optimizadas para ejecutar LISP. Se produce un impacto industrial en los campos como la robética y la in artificial. Regreso a las redes neronales (1986- presente). Hopfield. Rumelhart y Hinton. Nuevos modelos de RN. = Reconocimiento de voz (HMM). Incertidumbre (Bayes). Robética. Aprendizaje, Realidad virtual 1.5 Aplicaciones de la Inteligencia artificial Tratamiento de lenguaje natural Sistemas Expertos Demostracion de teoremas Robotica Programacién automatica Problemas de planificacién Reconocimiento de patrones Manejo de incertidumbre Resoluci6n de problemas Visién artificial CAPITULO II: AGENTES Un agente es todo aquello que puede considerarse que percibe su ambiente mediante sensores y que responde o acta en tal ambiente por medio de efectores (3], tal como se muestra en la Figura 1 Figura 1. Elementos de un agente Ejemplo de un agente natural: ‘Agente: cuerpo biol6gico Entorno: naturaleza Sensores: ojos, oidos, lengua, piel, etc. Efectores: piernas, brazos, manos, etc. Medida de rendimiento: sobrevivir, reproducirse, Ejemplos de agentes artifciales Agentes hardware (robots) Interactizan directamente con un entorno fisico Disponen de un “cuerpo” fisico Sensores: cémaras, telémetros infrarojos, etc. Efectores: ruedasipiemas, manipuladores, etc. Agentes software (softbots): ‘Actdan en entornos virtuales (p.e. Intemet) Todo software: no necesitan manipular fisicamente el entorno Sensores y efectores: dependientes del entorno 2.1 Agentes inteligentes Se definen bajo en el enfoque de Agentes Racionales (3). Acttian de forma racional en su entorno. Un agente racional es el que percibe y acta para cumplir con sus objetivos con base a sus creencias de lo que es correcto. La racionalidad de un agente depende de cuatro factores: La medida del rendimiento: define el grado de éxito del agente en el cumplimiento de sus objetivos. La secuencia de percepciones: todo lo que ha percibido el agente hasta ese momento, El conocimiento del medio: todo el conocimiento que ha acumulado en el medio en que habita, Las acciones que el agente puede ejecutar. El comportamiento racional de un agente es el que realiza a partir de la secuencia de Percepciones hasta el momento, y el conocimiento a priori sobre ol entorno y ademas elige entre las capacidades, la acci6n que maximice la medida de rendimiento. Adicionalmente otras caracteristicas de los agentes racionales son la autonomia: Cuanto mas se rige su comportamiento por su propia experiencia y cuanto menos depende de Sus conocimientos a priori). Y el aprendizaje: Cuando no sélo recopila informacién, sino que aprende de lo que percibe Entorno de trabajo de los agentes (REAS) Rendimiento 6 metas Entorno 6 ambiente Actuadores 6 acciones ‘Sensores 6 percepciones En la Tabla 3 se muestran algunos ejemplos de REAS para varios tipos de agentes: Tabla 3. Ejemplos de REAS- Fewavoeete | Meitgste | morn | Actuators | semana [Seema [Reena | Ps Ene aie Semundan "| penonal tna emai | Soper = vat a feawaese, | Sctaen** | Sitmentzen | term | Shanker tigen | Sonat omar mae | See | Ss a os ‘Scoliie" | Spm | Waspomaor | Senor”? | Sag pce ‘os cubos ‘componentes, Comaar se | Sica | Regi Taga, = fem | Somat a metal =e Trae | swing | Cova de | vmarton | eg oe Genie [oa | mea. |” saase. |S | Se 2.2 Programa para un agente Es una funcién que, a partir de las percepciones del agente, le permite realizar las acciones. El trabajo de la Inteligencia Artificial es disefiar el programa del agente. Se ejecuta en algtin dispositive de cémputo, el cual es llamado arquitectura. 2.3 Tipos de programas para Agentes La Tabla 4, muestra cuatro tipos de programas de agente y sus principales caracteristicas. Tabla 4, Tipos de programas de agente Tipo de Agente Caracteris ‘Agentes reaciivos (reflejo) simple Este tipo de agente no contiene i couee internamente estados y sus procesos 0 acciones que realiza Ging enamide son respuestas a la entrada de nls nner? percepciones. Ignoran las. percepciones hist6ricas, icas en Diapanassquenctznt deur agit etfesinple “Agentes reactivos basados en modelos (con | Este tipo de agente guarda estado interno) estados internos sobre la historia a percibida lo cual le sirve para Agente Samres ejecutar una accién. Los. Geo sensores no nos pueden informar Conmmaend ‘ira ef mundo a la vez de todos los estados que ae }A neste roman? maneja nuestro ambiente, es por este caso que el agente necesita actualizar algo de informacién en el estado interno. (epancnms ones? ‘usar dabe (Recs contin acc} > enrente en meer? Fides sania cone a intr ‘Agentes basados en metas (u objetivos) ‘Ademas de los estados, los agentes necesitan cierto tipo de informacién sobre sus metas Estas metas van a detallar las situaciones a las que se desea llegar de este modo, el programa de agente puede combinar las metas con la informacion de los —) [resultados (acciones) que Agente ‘Sensores emprenda y de esta manera (Gain) poder elegir aquellas acciones - Giamdaak que permitan alcanzar la meta (Cémo evoluciona el oa fe cnccenerow || | | | Basa : tae rian | | & : i Diaainsao || | t cramer ese || | to teors nope nln Agentes basados en utilidad Utiliza un modelo del mundo, junto con una funcién de utilidad que calcula sus preferencias entre los estados del mundo. hme emande Después selecciona la accion Srosteromars? que le lleve a alcanzar la mayor [Ee (See preaarenme ae acer utidad esperada, entre todos los aces Ff anprnanta scan w —_—e resultados posibles oasanaquEO a encanta en estado? ‘ud alin ato fener sor? i ectores nape compli teed wn ic 2.4 Agentes Reactivos Los agentes reactivos se basan en tres ideas claves [3]: 1. No existe una especificacién o plan a priori del comportamiento del agente reactive. La dindmica de la interaccién conduce a una alta complejidad. 2. Descomposicién en tareas. Un agente reactivo es visto como una coleccién de médulos que operan en forma autnoma y son responsables de tareas especificas (sensar, controlar el motor, efectuar célculos, etc.). La comunicacién entre los médulos es minima y de muy bajo nivel. 3. Tienden a operar sobre representaciones bien conocidas por los sensores, en contraste a las representaciones simbdlicas de alto nivel que abundan en otros tipos de agentes. 2.5 Ejemplo de un Agente Reactivo (robot) Un robot que se encuentra en un espacio bidimensional dividido en cuadriculas (Figura 2). Este robot esta limitado por una frontera, dentro de la cual hay también objetos inméviles (no existen caminos cuyo ancho sea menor a dos cuadriculas) [1] El robot debe seguir la siguiente pauta de comportamiento: Ir a una celda fronteriza, o que limite con un objeto, y seguir su perimetro indefinidamente. El robot debe ser capaz de percibir si una determinada celda esta libre para ser ocupada no, y para ello debe llevar a cabo acciones i aumemehg cls, tee See ft stp Arbet surg ere wil go Arab sarang here il Gouieclecintesmndiic — guclclwsrarvnd be Stride bouayoftiecbecr deaf ou Gouna Figura 2, Entorno del Robot El robot puede percibir si las (8) coldas que lo rodean estéin libres 0 no (Figura 3). Estas ocho entradas sensoriales las llamaremos: $1, $2, 83, $4, $5, $6, 7,58 Estas variables tendran el valor O siestan vacias 1 siestén ocupadas Sensory El robot puede moverse a una celda libre adyacente que esté en su misma fila o columna. Por tanto, existen 4 movimientos posibles: Norte, mueve el robot hacia arriba Este, mueve el robot hacia la derecha. Sur, mueve el robot hacia abajo. Oeste, mueve el robot hacia la izquierda. 2.6 Percepcion y Accion Para realizar el disefio, lo comin seria dividir el caloulo de una accién, a partir de las sefiales sensoriales, en dos fases distintas, como se muestra en la Figura 4. En la fase de procesamiento perceptual se genera un vector de caracteristicas x (x1 , ... xN ) y en la fase de célculo de la accién se selecciona una accién teniendo en cuenta dicho vector. Los valores de este vector pueden ser nimeros reales o bien categorias. Las caracteristicas binarias constituyen un caso especial ya que pueden ser consideradas como caracteristicas numéricas (0 , 1) 0 categorizadas (Vo F) ‘Danie ies meang: Foun, —[F]_-Been Leacome a“ }—e| jeter, |» Aa Figura 4, Pereepeién y Accién. Percepcién Las entradas sensoriales del robot estan representadas por el valor de las variables: $1, 52,....88, por lo cual existen 265 combinaciones posibles de estos valores. En nuestro entorno, por las restricciones que hemos puesto hay muchas combinaciones que pueden ser descartadas. Por tanto definiremos cuatro cardcteristicas binarias definidas sobre las variables sensoriales: x1. x2. x3, y x4 que resumiran los casos que se pueden presentar, ilustrados en la Figura 5. $861 8263 =1 84685 =1 $6687 Figura 5. Variables sensoriales Accion Dadas las cuatro caracteristicas definidas anteriormente, el siguiente paso es definir una funcién que, de dichas caracteristicas, nos proporcione la accién adecuada para llevar a cabo la tarea del seguimiento de los bordes. Si ninguna de las caracteristicas toma el valor uno (quiere decir que el robot percibe que todas las celdas alrededor estan vacias), la accién pude ser moverse a cualquier lugar. Tomaremos que se mueva al norte. Si al menos una caracteristica es 1, se aplicaran las siguientes reglas: Sixt=t y 2-0, moverse al este ), moverse al sur , moverse al ceste 2.7 Implementacién del agente Reactivo Robot Se disefiara el ambiente de trabajo del robot en una hoja de calculo Excel, como se muestrra en la Figura 6. ALBICIOUELFIGIMJ I JKJLIMIN/O|P/aiR| S| T|ULV 20) i) Pasion e ual cl lity sion CLA+ SR], pra nar 22/2) Preaona CuVSnitsparaMoer el obet Figura 6, Entorno del Robot en Excel La programacién del agente se hard en Visual Basic (utlizando macros en Excel) Se necesitardn las siguientes variables y funciones Variables: ‘S(1..8) : Vector Sensor Valores iguales a 0 6 1 (libre-ocupado) También puede ser booleanos X(1..4): Vector Caracteristica Valores booleanos false-true E(1..M,1..N): Matriz con el disefio del Espacio Valores iguales a 0 6 1 (libre-ocupado) F, C: Posicién actual del Robot (enteros). Fila y Columna Funciones: F_Sensor(f,c) Calcula el valor del vector S (Sensor) para la celda(f.c) F Carac() Calcula el valor del vector X (Caracteristicas) a partir de Ia informacion del Sensor F_Mover() Realizar la acci6n de calcular la nueva posicién del robot, coordenadas F,C, a partir del vector de caracteristicas X. Pseudo cédigo de las funciones: F_Sensor(f,c) Calcula el valor del vector S (Sensor) para la celda(f,c) S(1) < E(t-t,c-1) S(2) < E(f-t,c) S(3) < E(f-1,c+1) S(4) <- Elf,c#1) 8(5) <- E(ft,c+1) 8(6) <- E(f+1,0) S(7) < E(t+1,¢-1) S(8) < E(f,c-1) F_Carac() Calcula el valor del vector X (Caracteristicas) a partir de la informacién del Sensor X(1) < S(2) = 1 OR $3(3) = 1 X(2) < S(4) = 1 OR S3(5) = 1 X(3) <- S(6) = 1 OR $3(7) = 1 X(4) <- (8) = 1 OR S3(1) = 1 F_Mover() Realizar la accién de calcular la nueva posicién del robot, coordenadas F.C, a partir del vector de caracteristicas X. Regla: Sixt=1 y 2-0, moverse al este Pseudo cédigo: siX(1) = true AND X(2) = false entonces df<0 do<1 finsi FoF sat CeCrde 2.8 Cédigo completo en Visual Basic Dim ${1 To 8) As Integer Dim X(1 To 4) As Integer Dim F As Integer Dim C As Integer Sub DibujarRobot () Cells (F, C) = "Xx" Range (Cells (F, C), Cells(F, C))-Select End Sub sub Macrol () * Acceso directo: Ctrl+Mayus+I F = ActiveCell.Row C = ActiveCell.Column DibujarRobot End Sub Function Celda(fe As Integer, cc As Integer) As Integer Range (Cells(fc, cc), Cells(fc, cc)).Select If Selection.Interior.ColorIndex <> xlNone Then Celda = 1 Else Celda = 0 End If End Function Sub Sensor () S(1) = Celda(F - 1, c - 1) (2) = Celda(F - 1, Cc) (3) = Celda(F - 1, C + 1) 5(4) = Celda(F, C + 1) 5(5) = Celda(F + 1, C + 1) 5(6) = Celda(F + 1, C) S(7) = Celda(F + 1, C - 1) (8) = Celda(F, C - 1) End Sub Sub Caracteristica( If (2) = 1 or s(3 xq) =1 Else x(1) = 0 End If Tf S(4) x(2) Else x(2 End If If 3(6) = XG) = Else x(3) = 0 End Tf If 3(8) xU4) Else x(4) = 0 End If End Sub Then or s(5) Then or 5(7) Then or 8(1) Then Sub Accion() If X(1} = 1 And X(2) = 0 Then teste/der c=c#1 Exit Sub End If Tf X(2] = 1 And X(3) = 0 Then 'sur/abajo FoF. Exit Sub End If Tf X(3) = 1 And x(4) cec-1 Exit Sub End If Tf ¥(4) = 1 And X(1) = 0 Then ‘norte/arriba FeF-1 Exit Sub End Tf ‘accion por defecto: norte FoF-l 0 Then ‘oeste/izq End Sub Sub Mover () DibujarRobot End Sub Sub Macro2() * Acceso directo: Ctrl+Mayust™ Sensor Caracteristica Accion Mover End Sub CAPITULO lll: RESOLUCION DE PROBLEMAS MEDIANTE BUSQUEDAS Los agentes reactivos, explicados en el capitulo antrerior, basan sus acciones en la aplicacién directa desde los estados a las acciones. No pueden funcionar bien en entornos en los que la aplicacién sea demasiado grande para almacenarla [2] 3.1 Agente resolvente-Problemas Los Agente Resolvente-Problemas deciden qué hacer para encontrar secuencia de acciones que conduzcan a los estados deseables. Formaimente un Agente Resolvente-Problemas se describe definiendo los siguientes aspectos: Formulacién del Objetivo Formulaci6n del Problema Busqueda Solucién Ejecucién Formulacién del Objetivo Los objetivos ayudan a organizar el comportamiento, limitando las metas que debe alcanzar el agente. Ejemplo: Agente que esta de viaje por una ciudad A. Los objetivos Podrian ser muchos: Tomar fotos, disfrutar de la vida nocturna, conocer a los pobladores, etc, con lo cual las decisiones en cada momento son muy complejas. Ahora, supongamos que tiene un pasaje no reembolsable para viajar desde la ciudad B al dia siguiente, entonces todas las acciones que no alcancen a B, se pueden rechazar, y ol objetivo seria muy simple: Llegar a B (6 Estar en B) Formulacién del Problema Es el proceso de decidir qué acciones y estados hay que considerar para alcanzar el objetivo formulado. Por ejemplo: Las acciones podria ser, viajar de una ciudad grande a otra, 6 tomar las rutas mas cortas, etc. En este caso los estados serian el estar en una determinada ciudad. Supongamos que hay tres caminos que salen de A (a C, D y E), pero ninguno directo a 8. Habrian dos posibilidades: 1) El agente no conoce la geogratia del lugar. asi que tendria que tomar cualquiera de las rutas ya que no sabria cual de las acciones es la mas mejor. En este caso el agente no conoce lo suficiente los estados que resultan de tomar una accion. 2) El agente tiene un mapa que le brinda informacién sobre los estados en que podria estar, asi como las acciones que podria tomar. Busqueda Utilizando esa informacién puede encontrar un camino de A a B, y tomar las acciones que correspondan en cada momento. De esta manera alcanzaria su objetivo (Llegar a B). Un agente decide qué hacer en cada estado examinando las diferentes secuencias posibles de acciones que le conducen a otros estados, para entonces escoger la mejor secuencia. Hallar esta secuencia es la Busqueda. Solucion Es la secuencia de acciones que devuelve un algoritmo de Bisqueda. El algoritmo de Busqueda recibe como entrada un Problema y devuelve la Solucién para alcanzar el Objetivo. Ejecucion Una vez que tenemos Ia solucién, se procede a ejecutar las acciones. A esta fase se le llama Ejecucién. En la préctica para plantear la busqueda de soluciones mediante este tipo de agentes se necesita definir: Espacio de estados Estado inicial Estado (0 estados) final (es) Acciones posibles Grafo de transiciones Algoritmo de busqueda de la solucion Espacio de estados: El estado inicial y su Sucesor definen el espacio de estados del problema (todos los estados alcanzables desde el estado inicial). Se representa mediante ln Grafo, en el que los nodos son los estados y los arcos las acciones. Estado Inicial (en el que comienza el agente) Estado (0 estados) final (es). Son los estados a los cuales debe llegar el agente para indica que ha concluido la busqueda. Acciones posibles. Se describen mediante una funcién Sucesor. Sucesor(X) es un conjunto de pares . Xy Y son estados. Grafo de transiciones: Es la representacién de todos los estados y las transiciones de unos a otros mediante las acciones. Algoritmo de bisqueda de la solucién: Estrategia para encontrar la solucién. Otros términos Camino: Secuencia de estados conectados por una secuencia de acciones Test Objetivo: Determina si un estado es Objetivo Costo del camino: Se asigna un costo numérico a cada camino. El agente R-P elige una funcién costo que refleje una medida de rendimiento. Por ejemplo, para el caso de las ciudades podria ser la distancia en kilémetros. Supondremos que el costo del camino se calcula sumando los costos individuales de las acciones a lo largo del camino: c( a, x, y) Costo Individual de la accién a la cual nos lleva del estado x al y Solucién Optima: La solucién cuyo costo del camino es el minimo entre todas las posibles, soluciones. Veamos un ejemplo. 3.2 Mundo de la Aspiradora ‘Su funcién es limpiar las dos localizaciones sobre las cuales se puede mover [2]. Se puede observar en la Figura 7. Condiciones: Hay solo dos localizaciones (Izquierda y Derecha) Las localizaciones pueden estar limpias 6 sucias En cada momento la aspiradora sabe donde esté y si hay suciedad 6 no en cada lugar. Figura 7. Mundo dela Aspiradora Estados: Describen la ubicacién de la aspiradora y la situacién de las localizaciones (limpias 6 sucias). Serian tres valores. En el caso del dibujo: 0-0-1 Estado inicial: Cualquiera Acciones: Desplazarse a la Izquierda, a la Derecha y Limpiar. Objetivo: Que no haya suciedad en ninguna de las celdas y la aspiradora esté cualquier localizacién. Estados objetivos: 0-0-0 6 1-0-0 Espacio de solucion. Es un grafo, que describe todos los posibles caminos que conducen a la solucién del problema. Los vértices son los estados y las aristas son las acciones que ‘conducen de un estado a otfo. En este caso existen 2x2x2 = 8 estados (vértices) ya que hay dos posibilidades para cada componente de la descripcién de los mismos. Las aristas unen a los estados de acuerdo a los resultados de las acciones aplicadas a cada estado. Las acciones serian las etiquetas de las aristas. 3g 3 Figura 8. Grafo de Transiciones. Aspiradora Para escoger los estados y las acciones se requiere de un proceso de la eliminacién de detalles de una representacién que se denomina Abstraccidn. Se debe abstraer tanto en la descripcién del estado como en las acciones. El verdadero arte de la solucién de problemas consiste en saber decidir que es lo servird para describir los estados y acciones y qué no. Busqueda Utilizando la informacién del espacio de solucién (grafo), se puede encontrar un camino desde el estado inicial al estado final, realizando las acciones que correspondan en cada momento. Un agente decide qué hacer en cada estado examinando las diferentes secuencias posibles de acciones que le conducen a otros estados. Finalmente, después de realizar este proceso de exploracién, encuentra una secuencia que lo conduce a la solucién (objetivo). Hallar esta secuencia es la Bisqueda Algoritmo de Bésqueda de Soluciones Durante la busqueda de la solucién el algoritmo va construyendo un arbol en el que se almacena, en cada nods, informacién sobre los estados que se van obteniendo al realizar las acciones. La raiz del arbol se corresponde con el estado inicial. Sus hijos (otros estados) son los que resultan de realizar las acciones a ese estado. Se continua con la creacién del arbol, aplicando el mismo razonamiento a cada hijo (sin repetir estados en cada camino), hasta que se llegue al estado final. Durante el proceso de construccién del atbol se utiliza una funcién que dado un Nodo (estado) obtiene los estados que resultan de realizar todas las acciones en ese estado. A esta operacién le llamaremos Expandir. Debe expandir nodos que conduzcan a estados que no estén en el mismo camino. Esta funcién obtiene la informacién a partir del Grafo, 3.3 Estrategia de biisqueda Criterio para elegir cual sera el siguiente estado a Expandir. Utiliza el concepto de Frontera. La Frontera son todos los nodos del Arbol que han sido generados, pero no expandidos. Al comienzo, la frontera contiene Unicamente a la raiz del érbol. La estrategia de busqueda consistiré entonces en determinar, de la frontera, cual sera el siguiente nodo a expandir. En el caso de la estrategia Primero en profundidad la Frontera se implementa mediante una Pila. Para la estrategia de Primero en Anchura la Frontera se implementa mediante una Cola. Estrategias de bisquedas: No Informadas 6 a Ciegas: Significa que no se tiene informacién adicional acerca de los estados. La Unica informacién es la que proporciona la formulacién del problema. Sélo generan sucesores y distinguen si han llegado al objetivo 6 no. Informadas 6 Heuristicas: Estrategias en las que se sabe, cuando un estado no es objetivo, si es mas ‘prometedor” que otro, Estrategias de Bisquedas No Informadas (A ciegas) Busqueda Primero en Anchura Busqueda de Costo Uniforme Busqueda Primero en Profundidad Busqueda de Profundidad Limitada Busqueda Primero en Profundidad con Profundidad Iterativa Busqueda Bidireccional Estrategias de Busquedas Informadas (Heuristicas): Busqueda Primero el Mejor Busqueda A* Existen algunos criterios para evaluar las estrategias: Completitud: gLa estrategia garantiza encontrar una solucién, si es que esta existe? Complejidad en tiempo: {Cuanto tiempo se necesitara para encontrar una solucién? Complejidad en espacio: ¢Cuénta memoria se necesita para efectuar la busqueda? Optimizacion: ;Con esta estrategia se encontrar una Solucién Optima? 3.4 Algoritmo general de busqueda Utiliza una Lista, para representar la frontera. Sobre Ia lista se necesitan las siguientes operaciones: Crear, Vacia?, Primero, EliminarPrimero, InsertarUno, InsertarTodos. Utiza una funcién Expandir que retora todos los nodos resultantes de expandir uno determinado Pseudo cédigo del algoritmo general funcion Busqueda_Arbol (problema) retorna Solucién Crear(frontera) ; lista vacia InsertarUno(frontera, NodoInicial (ESTADOINICIAL (problema) ) ) repetic si Vacia?(frontera) retornar Solucién Vacta nodo <- EliminarPrimero(frontera) si TEST_OBJETIVO (problema, nodo.Estado) es Verdadero retornar SOLUCION(nodo) InsertarTodos (frontera, Expandir(nodo, problema) ) fin funcion funcion Expandir(nodo, problema) retorna Conjunto de Nodos Crear(conjunto) ; vacio sucesores <- SUCESOR (problema, nodo. Estado} para cada en sucesores hacer n <- nuevo nodo Estado <- resultado -Padre <- nodo sAccion <- accion n.CostoCamino <- nodo.CostoCamino + CostoIndividual (nodo. estado, accion, n. estado) n.Profundidad <- n.Profundidad + 1 adicionar(n,conjunto) retornar conjunto fin funcion 3.5 Busqueda Ciega (no informada) 3.5.1 Busqueda Primero en Anchura Es una estrategia de busqueda sencilla. Se expande primero el nodo raiz, y luego todos los nodos sucesores de éste; a continuacién todos los sucesores de éstos titimos y asi sucesivamente. En general, se expanden todos los nodos de una misma profundidad, antes de expandir cualquier nodo del préximo nivel. Se puede implementar, mediante el Algoritmo General, considerando la Lista, como una Cola (cuyas operaciones de Insercién y Eliminacién funcionan en forma FIFO (primero en entrar, primero en salir). De esta manera todos los nodos que se van generando a través de la expansién se van colocando al final de la Cola, garantizando esto que los nodos de un mismo nivel 6 profundidad se expandan antes que los de un nivel mas bajo 6 mayor profundidad. Este tipo de busqueda permitiré siempre encontrar primero el estado objetivo més préximo. Esta estrategia en general no es buena debido a la cantidad de tiempo y memoria necesaria para realizar una busqueda 3.5.2 Busqueda de Costo Uniforme En lugar de expandir el nodo mas superficial, expande aquel que tiene menor costo en su camino. Mediante esta estrategia se puede encontrar la solucién mas barata siempre y cuando se satisfaga un requisito muy sencillo “costo de la ruta nunca debe ir disminuyendo conforme avanzamos por la ruta’. Notar que si todos los costos son iguales a 1, la estrategia se comporta similar a la de Primero en Anchura. Se puede implementar, mediante el Algoritmo General, considerando la Lista como una Cola de Prioridad, cuyo criterio para obtener el Primero (Eliminar) de la Cola seria el de menor Costo 3.5.3 Busqueda Primero en Profundidad Esta busqueda se contra en expandir un nico camino desde la raiz. Siempre se expande el nodo mas profundo en la frontera actual. En el caso de llegar a un “callején sin salida® se retrocede hasta el nodo mas cercano (siguiendo al nodo padre) donde se puede tomar una rama alternativa para poder seguir avanzando. Se puede implementar, mediante el Algoritmo General, considerando la Lista, como una Pila (cuyas operaciones funcionan en forma LIFO (ditimo en entrar, primero en salir). De esta manera el siguiente nodo a expandir siempre serd el dltimo que se haya colocado en la pila de ese nivel, garantizando ‘esto que la expansion vaya aumentando en la profundidad de los nodos. Es comin aplicar esta estrategia mediante una algoritmo recursivo que recorra el arbol en Pre-Orden. Tiene modestos requisitos de memoria. Sdlo necesita almacenar un camino, junto con los hermanos restantes no expandidos en cada nodo. 3.5.4 Busqueda de Profundidad Limitada Similar a la estrategia de Primero en Profundidad, pero se trata de eliminar el problema de que se puedan general arboles “ilimitados’. Para ello establece un limite L a la profundidad del Arbol. Todo nodo cuya profundidad sea L, no es expandido (se considera sin sucesores). EI problema que puede pasar es si escogemos un valor de L menor que la profundidad del Objetivo, en cuyo caso no llegariamos a la Solucién. 3.5.5 Busqueda Primero en Profundidad con Profundidad lterativa Combina la estrategia de Primero en Profundidad con la de Profundidad Limitada, comenzando con Limite igual a 0, aumentandolo de 1 en 1 hasta encontrar el objetivo. Combina las ventajas de las dos estrategias. 3.5.6 Busqueda Bidireccional La idea es ejecutar dos bisquedas simulténeas: una hacia delante, desde el estado inicial y otra hacia atrés, desde el estado objetivo. La busqueda termina cuando las dos busquedas se encuentren (las busqueda deben comprobar, antes de la expansién, si los nodos de sus fronteras coinciden) 3.6 Busqueda Heuristica (informada) Utilizan conocimiento especitico del problema, mas alla de la definicion del problema en si mismo. Pueden encontrar la solucién de manera mas eficiente Estos algoritmos estén basados en una funcién heuristica h(n) h(n) = costo estimado del camino mas barato desde el nodo n hasta el Objetivo La funcion heuristica h(n) se una heuristica admisible, significa que la funcion nunca sobreestime el costo de alcanzar el objetivo. Los dos algoritmos mas importantes de busqueda informada son: Busqueda Primero El Mejor ~ Bisqueda Voraz (Avara) - Bisqueda A* Busqueda Primero el Mejor . Es un caso particular del algoritmo general de busqueda en Arboles en la cual se selecciona el siguiente nodo a expandir en base a una funcién de evaluacién f(n). Esta funcién mide la “distancia” al objetivo. Se expande el nodo con la evaluacién mas baja. Se implementa de manera similar al método de “Busqueda con Costo Uniforme’, mediante una cola de prioridad. La funcién de evaluacién nos brinda el nodo que “parece” ser el mejor y por tanto el que se debe expandir. 3.6.1 Busqueda Voraz (Avara) Primero el Mejor Expande el nodo mas cercano al Objetivo, asumiendo que probablemente conduzca mas rapidamente a la solucién. La funcién de evaluacién f(n) seria la funcién heuristica h(n) {(n) = h(n) h(n) = costo estimado del camino mas barato desde el nodo n hasta el Objetivo El término Voraz 6 Avara es porque en cada paso trata de ponerse tan cerca del objetivo como pueda, seleccionando el nodo con menor funcion de evaluacién f(n). No necesariamente brinda la solucién éptima (ver ejemplo de las ciudades). Al igual que los otros métodos estudiados es necesario verificar los “callejones sin salidas” (no exapandir estados repetidos) 3.6.2 Busqueda A* Primero el Mejor El objetivo es minimizar el costo estimado total de la solucién, para ello evalia los nodos combinando g(n) y hin) {9(n): costo de haber alcanzado n h(n): costo para llegar desde n hasta el objetivo {(n) = g(n) + h(n) Costo mas barato estimado de la solucién a través de n La funcién {(n) combina el costo del camino para llegar a n y el costo estimado para llegar desde n al objetivo. En cada paso se expande el nodo con el valor mas bajo de f(n), 6 sea, de g(n}+h(n). 3.6.3 Otros algoritmos Busqueda A’ con Profundidad Iterativa (A*PI). Similar al algoritmo de profundidad iterativa, pero utilizando f(n) (g+h) como criterio de corte en cada iteracién, en lugar de la profundidad. El valor del corte es el costo f(n) mas pequefio de cualquier nodo que haya excedido el corte de la iteracion anterior. Busqueda recursiva del primero mejor (BRPM): Similar al algoritmo de primero el mejor, ero en un espacio lineal, sin almacenar todo el arbol, sino almacenando tinicamente la pista del mejor valor f alternativo disponible desde cualquier antepasado del nodo actual. Si el nodo excede ese limite se regresa al camino alternativo. CAPITULO IV: SISTEMAS EXPERTOS 4.1 Introduccion Los sistemas expertos constituyen un campo de la Inteligencia Artificial. Son programas que reproducen el proceso intelectual de un Experto Humano en un espacio de conocimientos limitado. En principios deben dar solucién a un problema siguiendo los pasos que daria un experto humano [4] Los principales objetivos para los cuales se crea un sistema experto son mejorar la productividad. Ahorrar tiempo, dinero. Conservar el conocimiento y difundirlo. Los sistemas expertos ofrece un extenso campo de posibilidades en resolucién de problemas. Estan ampliamente extendidos debido a su importante impacto en los negocios, la industria, la medicina, etc. Estan diseriados para actuar como un especi humano en un dominio 6 érea particular del conocimiento Constiuyen um intermediario entre el experto, que transmite el conocimiento al Sistema y el Usuario que lo utiliza para resolver un problema. Utilizan para su funcionameinto: -Conocimiento que tiene aimacenado -Mecanismo de inferéncia Simulténeamente el usuario puede observar el comportamiento del Sistema en el proceso de solucién de un problema se representan los mecanismos Heuristics de razonamiento del Experto Un sistema experto contiene [5]: El conocimiento almacenado (Base de Conocimiento) Programa que lo controla (Mecanismo de Inferencia) Datos propios del problema (Base de Hechos) 4.2 Sistemas clasicos y sistemas expertos La Tabla 5, muestra una comparacién entre los sistemas clasicos y los sistemas expertos. ‘Tabla 5, Sistemas Clisicos vs Sistemas Expertos ‘SISTEMA CLASICO ‘SISTEMA EXPERTO Conocimiento y procesamiento Base de conocimiento separada del combinados en un programa mecanismo de procesamiento No contiene errores Puede contener errores No da explicaciones, los datos solo se usan 0 escriben Los cambios son tediosos El sistema sélo opera completo ‘Se ejecuta paso a paso Necesita informacion completa para operar Representa y usa datos Una parte del sistema experto la forma ‘el modulo de explicacion Los cambios en las reglas son faciles ET sistema puede funcionar con pocas: reglas Ta ejecucion usa heuristicas y lOgica Puede operar con informacion incompleta Representa y usa conocimiento 4.3 Breve historia El primer resultado data de mediados de la década del 60. El GPS (General Problem Solver). Estaba limitado a problemas matematicos. Se cambié el enfoque restringiendo el aleance a un dominio especifico. Se trat6 de simular el razonamiento de un experto humano [4]. En 1965, un equipo liderado por Edward Feigenbaum, comenzé a desarrollar sistemas expertos utizando bases de conocimiento muy especificas. En 1967 se construye DENDRAL, que se considera como el primer sistema experto. Se utilzaba para identificar estructuras quimicas moleculares a partir de su andlisis, espectrografico. Entre 1970 y 1980 se desarrolls MYCIN para consulta y diagnéstico de infecciones de la sangre. (Utilizacién de conocimiento impreciso para razonar y posibilidad de explicar el proceso de razonamiento) Con el MYCIN aparecen claramente diferenciados motor de inferencia y base de conocimientos. Aparecié el término Sistema Vacio o Shell (concha). Asi surgid EMYCIN (MYCIN Esencial) con el que se construyé SACON, utllizado para estructuras de ingenieria, PUFF para estudiar la funcién pulmonar y GUIDON para elegir tratamientos terapéuticos. En esa época se desartollaron también: HERSAY, que intentaba identificar la palabra hablada, y PROSPECTOR, utilizado para hallar yacimientos de minerales. De este tiltimo derivé el shell KAS (Knowledge Adquisition System) A partir de 1980 se ponen de moda los sistemas expertos. Numerosas empresas de alta tecnologia investigan en este area de la inteligencia artificial, desarrollando sistemas expertos para su comercializacién. Con todas las experiencias se llega a la conclusién de que el éxito de un sistema experto depende casi exclusivamente de la calidad de su base de conocimiento. El inconveniente ‘es que codificar la pericia de un experto humano puede resultar dificil, largo y laborioso Aplicaciones de los sistemas expertos Son muy eficases cuando se tiene que analizar una gran cantidad de informacién, interpretandola y proporcionando una recomendacion a partir de la misma. Andlisis financiero: oportunidades de inversion, dependiendo de los datos financieros de un cliente y de sus propésitos. Detectar y reparar fallos en equipos electrénicos (diagnéstico y depuracién de errores mediante listas de preguntas con las que obtienen los datos necesarios para llegar a una conclusién) Localizar problemas en sistemas informaticos grandes y complejos. Predecir resultados futuros a partir del conocimiento que tienen (Sistemas meteorol6gicos y de inversién en bolsa) Planificacién (secuencia de acciones necesaria para lograr una meta). Gestionar proyectos de desarrollo, planes de produccién de fabricas, estrategia militar y configuracién de complejos sistemas informaticos, entre otros Controlar procesos tomando decisiones como respuesta a su estado y no existe una solucién algoritmica adecuada (supervision de fabricas automatizadas, factorias quimicas © centrales nucleares. Estos sistemas son extraordinariamente criticos porque normalmente tienen que trabajar a tiempo real) Ayuda a los disefiadores a completar especificaciones y requisitos de forma competente y dentro de los limites de costes y de tiempo (circuitos electrénicos, circuitos integrados, tarjetas de circuito impreso, estructuras arquitect6nicas, autos, piezas mecanicas, etc) Evaluar el nivel de conocimientos y comprensién de un estudiante, y ajustar el proceso de aprendizaje de acuerdo con sus necesidades 4.4 Importancia de los sistemas expertos El acceso al conocimiento y al juicio de un experto es extremadamente valioso en muchas ocasiones (prospecciones petroliferas, manejo de valores bursatiles, diagnéstico de enfermedades, etc.) En la mayoria de los campos de actividad existen mas problemas por resolver que expertos para resolverlos. El sistema experto actuara como ayudante para los Expertos Humanos y como consultor cuando no se tiene otro acceso a la experiéncia Mejora la productividad al resolver y decidir los problemas mas rpidamente. Esto permite ahorrar tiempo y dinero. A veces sin esa rapidez las soluciones obtenidas serian inutiles. Los valiosos conocimientos de un especialista se guardan y se difunden, de forma que, no se pierden aunque desaparezca el especialista. ‘Se pueden utilizar personas no especializadas para resolver problemas. Una persona que utiliza regularmente un sistema experto aprenderd de él, y se aproximara a la capacidad del especialista. Se obtienen soluciones mas fiables gracias al tratamiento automatico de los datos, y mas contrastadas, debido a que se suele tener informatizado el conocimiento de varios expertos Tienen gran flexibilidad debido a la separacién entre la base de conocimiento y el mecanismo de inferéncia. 4.5 Inconvenientes de los sistemas expertos El conocimiento humano es complejo de extraer y, a veces, es problemético representarlo Las estrategias de razonamiento de los motores de inferencia suelen estar programadas procedimentalmente y se adaptan mal a las circunstancias. Estan limitados para tratar problemas con informacién incompleta. Un experto humano no estudia progresivamente una hipétesis, sino que decide de inmediato cuando se enfrenta a una situaci6n andloga a otra ocurrida en el pasado. Los sistemas expertos no utiizan este razonamiento por analogia. Los costes y duracién del desarrollo de un sistema experto son bastante considerables y su campo de aplicacién es restringido y especifico 4.6 Arquitectura de un sistema experto Un sistema experto (Figura 9) est4 compuesto por [ Base de conocimientos (BC) Memoria de Trabajo (Base de Hechos y atributos calculados) (Memoria) Motor de inferencia (Ml) Interfaz con el usuario (IU)(Médulo de explicacién, Médulo de adquisicién dal conocimiento) hy] U Figura 9, Arquitectura de un Sistema Experto 4.7 Base de conocimientos La base de conocimientos contiene ol conocimiento especializado extraido del experto en el dominio. El método mas comun para representar el conocimiento es mediante regias de produccién. 4.7.1 Reglas El dominio de conocimiento se divide en fracciones de conocimiento 6 reglas de la forma SI... ENTONCES... Cada regla constara de una parte denominada condicién (antecedente) y de una parte denominada accion (consecuente): SI condicién ENTONCES acoién Ejemplo: Sl el termémetro marca 39° Y el termémetro funciona correctamente ENTONCES el aciente tiene fiebre La base de conocimientos es independiente del mecanismo de inferencia que se utiliza para resolver los problemas. Cuando los conocimientos almacenados se han quedado obsoletos, o cuando se dispone de nuevos conocimientos, es relativamente facil afiadir reglas nuevas, eliminar las antiguas 0 corregir errores en las existentes. No es necesario reprogramar todo el sistema experto. Las reglas suelen almacenarse en alguna secuencia jerarquica gia, pero esto no es estrictamente necesario. Se pueden tener en cualquier Secuencia y el motor de inferencia las usaré en el orden adecuado que necesite para resolver un problema. Ejemplo (vehicules): \dentificar vehiculos: Regla 1: SI tie ne 2 ruedas Y utiliza motor ENTONCES es una motocicleta Regla 2: SI tiene 2 ruedas Y es movido por el hombre ENTONCES es una bicicleta Regla 3: SI tiene 4 ruedas Y utiliza motor Y pesa menos de 3500 Kg ENTONCES es un auto 4.7.2 Atributos y valores La base de conocimiento debe expresarse en términos de Atributos y Valores. En el Ejemplo, los atributos y sus valores podrian ser: DOSRUEDAS (valor SI 6 NO para indicar si el vehiculo tiene 2 ruedas) MOTOR (valor SI 6 NO para indicar si el vehiculo utiiza motor) HOMBRE (valor SI 6 NO para indicar si el vehiculo es movido por el hombre) CUATRORUEDAS (valor SI 6 NO para indicar si ol vehiculo tiene 4 ruedas) MENKG (valor S16 NO para indicar si el vehiculo pesa menos de 3500Kq) VEHICULO (valores MOTOCICLETA, BICICLETA y AUTO que indicaran el resuttado del sistema experto) Las reglas, expresadas en términos de atributos y valores, serfan: Regla 1: SI DOSRUEDAS-'SI' Y MOTOR: ENTONCES VEHICUL Regla 2: SI DOSRUEDAS='SI' Y HOMBRE='SI’ ENTONCES VEHICULO='BICICLETA’ Regla 3: SI CUATRORUEDAS-'SI' Y MOTOR ='SI' Y MENKG-'SI’ ENTONCES VEHICULO="AUTO' BASE DE CONOCIMIENTOS (PREGUNTAS) 'MOTOCICLETA’ 4.7.3 Preguntas Durante el funcionamiento del sistemas experto, el médulo de Interfaz de Usuario requiere Pedir informacién al Usuario. Concretamente el valor de los atributos que se desconocen y que no se pueden inferir por ninguna regia. Para ello realiza preguntas al usuario las cuales se especifican en la Base de Conocimientos. En el Ejempio: DOSRUEDAS ="{E! vehiculo tiene 2 ruedas ?" MOTOR='¢E! vehiculo utiliza motor ? * HOMBRE='zEl vehiculo es movido por el hombre ?* CUATRORUEDAS ="(El vehiculo tiene 4 ruedas ?° MENKG="EI vehiculo pesa menos de 3500Kg ?° VEHICUL( Cual es el vehiculo? ' De igual manera puede sugerir las posibles respuestas (SI, NO, etc) las cuales también estarian en la Base de Conocimientos Ejemplo (arranque auto): Conocimiento del experto: El auto no arranca. Puede ser la bateria descargada la cual se puede verificar comprobando si funciona el Electrolito de la bateria. También se puede verificar si funciona al medirla con el Voltimetro. Si es la bateria descargada la reparacién es “Cambiar/Cargar la bateria’. Pueden ser los cables, los cudles hay que verificar si estan bien. Sino lo estuvieran la reparacion seria “Cambiar los cables’. Podrian ser también los contactos de los contactos en la bateria. Si estuvieran mal habria que “cambiar/arreglar los contactos”. Por uilimo podria ser el motor de arranque, el cual habria que verificar si esta funcionando. Si no, la solucién es “cambiar/arreglar el motor de arranque Atributos: BATDESC (Bateria Descargada, SI 6 NO) ELECBAT (Funciona el Electrolito de la bateria, SI 6 NO) VOLTBAT (Funciona al medir con el Voltimetro, SI 6 NO) CABLESMAL (Los cables estan mal, SI 6 NO) CONTACTOMAL (Los contactos estén mal, S16 NO) ARRANQUEMAL (EI motor de arranque esta mal, SI 6 NO) REPARACION (Reparacion sugerida) Base de Conocimientos: ‘S| ELECBAT='NO' ENTONCES BATDESC-'SI’ ‘SI VOLTBAT='NO' ENTONCES BATDESC='SI' SI ELECBAT='SI' Y VOLTBAT='SI' ENTONCES BATDESC='SI S| BATDESC='SI' ENTONCES REPARACION = ‘CAMBIO DE BATERIA’ ‘SI CABLESMAL-='SI' ENTONCES REPARACION = ‘CAMBIO DE CABLES’ SICONTACTOMAL-'SI' _ ENTONCES REPARACION = ‘CAMBIO DE CONTACTOS' ‘SI ARRANQUEMAL='SI" ENTONCES REPARACION = 'REPARA MOTOR DE ARRANQUE' SI BATDESC='NO' Y CABLESMAL='NO’ Y CONTACTOMAL='NO' Y ARRANQUEMAL='NO" ENTONCES REPARACION = 'NO HAY SUGERENCIA’ 4.8 Motor de inferencia EI motor de inferenci es la parte del Sistema Experto que controla el proceso de razonamiento. Utiliza los datos que se le suministran (Hechos) asi como la Base de Conocimientos. Recorre la base de conocimientos para alcanzar una solucién siguiendo cierta estrategia. La estrategia de control puede ser el encadenamiento hacia adelante (forward chaining) 6 el encadenamiento hacia atras (backward chaininig) 4.8.1 Encadenamientos Una regia de la Base de Conocimientos SIP1 Y P2 ENTONCES Q Se puede representar grdficamente mediante un Arbol, Figura 10, en el que la raiz representa la Conclusién y sus hijos la(s) Condicién(es) “iol para bree SUP, YPSENTONCES Q Figura 10, Representacién de una Regla En la estrategia de control forward chaining se parte de las condiciones (datos) hacia las conclusiones (resultados 0 metas), es decir, se recorre el arbol de abajo hacia arriba, en cambio en la estratégia backward chaining se parte de las conclusiones (metas) hacia las condiciones, es decir, se recorre el arbol de arriba hacia abajo. 4.8.2 Algoritmo de Forward chaining Enfoque guiado por Datos. Se parte de los hechos disponibles en la base de datos (Memoria de trabajo). Todas las reglas se marean “Sin Evaluar’ Introducimos el Atributo Objetivo (el que queremos inferir su valor) Durante el funcionamiento del algoritmo, las reglas podran estar: “sin evaluar’, “evaluadas” Algoritmo general: [iniciar] 0) Marcar todas las reglas como “sin evaluar’. Colocar en la memoria de trabajo todos los, hechos [verificar final del algoritmo} 1) Siel Atributo Objetivo esté en la Memoria de Trabajo, termina el Sistema Experto, de lo contrario ir al paso 2) [buscar regia a evaluar] 2) Se busca una regla “Sin Evaluar’ en la que todos los Atributos que intervienen en la Condicién estén en la Memoria de Trabajo. Si No Existe tal regla, termina el Sistema Experto, con la indicacién de que no hay suficiente conocimiento para inferir todos los atributos (también puede solicitar los datos al Usuario, con lo cual continuaria el algoritmo). Si existe la regia, continuar en el paso 3) [evaluar regia] 3) Se Evaltia (y se marca como evaluada) la regla encontrada. Si se cumple la Condicién se agrega la Conclusion a la memoria y se regresa al paso 1). De lo contrario se regresa al paso 2) Ejemplo: ENTONCES E='NO’ ENTONCES D='sI’ ENTONCES C='sI’ Regla4: SI B='sI’ ENTONCES D='sI ‘Supongamos que tenemos los Hechos: A=sr Bsr Aplicar el Algoritmo de Forward Chaining para obtener el valor del Atributo D (Atributo Objetivo) La inicializacién del algoritmo se muestra en la Tabla 6. ‘Tabla 6. Paso Inicial, Forward Chaininy MEMORIA DE TRABAJO | REGLAS ‘A=ST (hecho) Regia 1 (Sin evaluar) B='SI (hecho) Regla 2 (sin evaluar) Regla 3 (sin evaluar) Regla 4 (sin evaluar) Primera Iteracion Paso 1) Verificar si D (objetivo) esté en la memoria -> NO Paso 2) Buscar regla que se pueda evaluar La Regla 1 No se puede evaluar porque C (condicién) no estd en la memoria de trabajo -La Regia 2 Si se puede evaluar porque A est en la memoria de trabajo Paso 3) Se evalda la Regla. En este caso NO se cumple la condicién. Se regresa al paso 2) Después de esta iteracién los resultados se muestran en la Tabla 7. ‘Tabla 7. Primera Iteracién. Forward Chaining MEMORIA DE TRABAJO ‘| REGLAS. ‘A=ST (hecho) Regia 1 (sin evaluar) B='SI' (hecho) Regla 2 (evaluada) Regla 3 (sin evaluar) Regla 4 (sin evaluar) Segunda lteraci6n Paso 2) Buscar regla que se pueda evaluar -La Ragla 1 No se puede evaluar porque C (condicién) no esta en la memoria de trabajo -La Regla 3 Si se puede evaluar porque A est en la memoria de trabajo Paso 3) Se evalia la Regla. En este caso SI se cumple la condicién. Se agrega la Conclusién a la Memoria y se regresa al paso 1) Después de esta iteracién, los resultados se muestran en la Tabla 8.: ‘Tabla 8. Segunda eracién. Forward Chaining MEMORIA DE TRABAJO | REGLAS. ‘A=ST (hecho) Regia 1 (sin evaluar) B='SI' (hecho) Regla 2 (evaluada) C=SI (regia 3) Regla 3 (evaluada) Regla 4 (sin evaluar) Tercera ltereacién Paso 1) Verificar si D (objetivo) esta en la memoria -> NO Paso 2) Buscar regla que se pueda evaluar -La Regla { Si se puede evaluar porque C esta en la memoria de trabajo Paso 3) Se evalia la Regla. En este caso SI se cumple la condicién. Se agrega la Conclusién a la Memoria y se regresa al paso 1) Después de esta iteracién los resultados se muestran en la Tabla 9. Tabla 9. Tercera Iteracién. Forward Chaining MEMORIA DE TRABAJO | REGLAS. ‘ASST (hecho) Regia t (evaluadal ) B='SI' (hecho) Regla 2 (evaluada) C=SI' (regia 3) Regla 3 (evaluada) E="NO' (regla 1) Regla 4 (sin evaluar) Cuarta Iteracion Paso 1) Verificar si D (objetivo) esta en la memoria -> NO Paso 2) Buscar regla que se pueda evaluar -La Regla 4 Si se puede evaluar porque B esta en la memoria de trabajo Paso 3) Se evalia la Regia. En este caso SI se cumple la condicién. Se agrega la Conclusién a la Memoria y se regresa al paso 1) Después de esta iteracién los resultados se muestran en la Tabla 10. ‘Tabla 10, Cuarta Iteracién, Forward Chaining MEMORIA DE TRABAJO | REGLAS ASST (hecho) Regla 7 (evaluada) “SI (hecho) Regla 2 (evaluada) C='SI (regla 3) Regla 3 (evaluada) E="NO’ (regla 1) Regla 4 (evaluada) (regla 4) Quinta Iteraci6n Paso 1) Verificar si D esta en la memoria -> SI, por tanto termina la inferencia del Sistema Experto Estado Final, se muestra en la Tabla 11 ‘Tabla 11. Quinta y Gtima Keracién, Forward Chain MEMORIA DE TRABAJO [ REGLAS. Ae'ST (hecho) Regia t (evaiuada) B='SI' (hecho) Regla 2 (evaluada) C='SI' (regla 3) Regla 3 (evaluada) E="NO’ (regla 1) Regla 4 (evaluada) D='SI (regia 4) 4.8.3 Algoritmo de Backward chaining Enfoque guiado por Objetivo Se parte de los Hechos disponibles en la base de datos (Memoria de trabajo). Todas las reglas se marcan “Sin Evaluar” Introducimos el Atributo Objetivo (el que queremos inferir su valor) Se utiliza una Lista de Atributos que se estan evaluando (‘Atributos evaluandose” Se utiliza una Lista de Reglas que se estén evaluando ("Reglas evaluandose") Durante el algoritmo: -Los atributos en la memoria podran tener valor 6 podran estar “evaluandose” -Las reglas podran estar: “sin evaluar”, “evaluadas”, “evaluandose” Algoritmo general: [iniciar] 0) Colocar en la memoria de trabajo al Atributo Objetivo como “evaluandose”. Colocar en la lista de “Atributos evaluandose” al Objetivo. Marcar todas las reglas como “sin evaluar” [verificar final del algoritmo] 1) Si el Atributo Objetivo esta en la Memoria de Trabajo con un valor, termina el Sistema Experto, de lo contrario ir al paso 2) [elegir atributo a evaluar] 2) Sacar de la Lista de “Atributos evaluandose” al iltimo atributo agregado, sea Atrib e ir al paso 3) [buscar regla a evaluar] 3) Se busca una Regla ‘Sin Evaluar’ que tenga a Atrib como conclusién. Si No Existe tal regla se solicita el valor al Usuario, asignandole al atributo el valor ingresado y regresar al paso 1). Si existe la regla, ir al paso 4) Iverificar sila regia se puede evaluar] 4) Si todos los atributos de la Condicién de esa Regla estan en la memoria de Trabajo y tienen valor ir al paso 5) de lo contraro ir al paso 7) evaluar regia) 5) Se evalda (y se marca como evaluada) la regia. Si se cumple la condicién se agrega la Conclusion a la memoria (se le da valor al atributo de la conclusion) y se va al paso 6). De lo contrario volver a agregar a Ia lista de “Atributos evaluandose” a Atrib y regresar al paso 2) \verificar otras regias pendientes, que se puedan evaluar] 6) Verificar si habla alguna regla en la lista de “reglas evaluandose” que estaba pendiente Porque sélo le faltaba el valor del atributo recién evaluado. Si existe, quitarla de Ia lista (para evaluaria) y sea Atrib el atributo de su conclusién el cual quitaremos de la lista de atributos evaludndose. Ir al paso 5). De lo contrario ir al paso 1) [colocar regia para ser evaluada, asi como sus atributos} 7) Poner en la pila nuevamente a Atrib y a todos los atributos que estén en la condicién que no tengan valor y que no estén marcados como “evaluandose” en la memoria de trabajo. Marcar a estos como “evaluandose” y agregar la regia a la lista de reglas que se estén evaluando. Marcar la regla como “evaluandose”. Ir al paso 2) Ejemplo: Regla 1: SI a ENTONCES E=NO' Regla 2: SI ENTONCES D='sI Regla 3: SI ]O'ENTONCES C='sI’ Regla 4: SI B='SI’ ENTONCES C='sI ‘Supongamos que tenemos los Hechos: A=sr B='sI Aplicar el Algoritmo de Backward Chaining para obtener el valor del Atributo D (Atributo Objetivo) Paso 0 (Tabla 12) (hecho) Regia t (sin evaluar) I" (hecho) Regla 2 (sin evaluar) wvaludndose Regla 3 (sin evaluar) Regla 4 (sin evaluar) Lista de atributos evaludndose | Lista de regias evaluandose Primera lteracién Paso 1) Verificar si D esta en la memoria de trabajo con Valor -> NO Paso 2) Atrib <- D (Lltimo de la lista de atributos evaluandose) Paso 3) Buscar regla “sin evaluar’ que tenga a D como conclusién -> en este caso la Regla 2. Paso 4) Verificar la Condicién -> El atributo C no esta en la memoria. Paso 7) Agregar D y C alla lista de atributos evaluandose. Agregar la Regia 2 a la lista de reglas evaluandose. Regresar al paso 2) Después de esta iteracién los resultados se muestran en la Tabla 13, ‘Tabla 13. Primera Iteracién. Backward Chaini MEMORIA DE TRABAJO Regia 1 (sin evaluar) B='SI' (hecho) Regla 2 (evaluandose) Regla 3 (sin evaluar) Regla 4 (sin evaluar) Lista de atributos evaluandose | Lista de regias evaluandose ‘Segunda Iteracion Paso 2) Atrib <- C (citimo de la lista de atributos evaludndose) Paso 3) Buscar regla “sin evaluar’ que tenga a C como conclusién -> en este caso la Regla 3. Paso 4) Verificar la Condicién -> El atributo A esta en la memoria y tiene valor. Paso 5) Se evalua y marca la regla. En este caso No se cumple la condicién A='NO’. Se coloca nuevamente a C en la lista. Regresa al paso 2) Después de esta iteracion los resultados se muestran en la Tabla 14. Tabla 14. Segunda Iteracién. Backward Chaining MEMORIA DE TRABAJO REGLAS AEST (hecho) Regia 1 (sin evaluary Regla 2 (evaluandose) Regla 3 (evaluada) Regla 4 (sin evaluar) Lista de atributos evaludndose | Lista de regias evaluandose Tercera Iteracion Paso 2) Atrib <- C (tltimo de la lista de atributos evaluandose) Paso 3) Buscar regla “sin evaluar’ que tenga a C como conclusién -> en este caso la Regla 4. Paso 4) Verificar la Condicién -> El atributo B esta en la memoria y tiene valor. Paso 5) Se evalua y marca la regia 4. En este caso Si se cumple la condicion B='SI'. Se agrega la conclusion a la memoria (valor aC) Paso 6) La regia 2 se quita de la lista. Atrib <- Dy D se quita de la lista. Paso 5) Se evalua y marca la regia 2. En este caso Si se cumple la condicion C='SI'. Se agrega la conclusién a la memoria (valor a D) Paso 6) No hay reglas pendientes que dependan de D. Se regresa al paso 1) Cuarta Iteracion

También podría gustarte

  • 54454lase 14-03-2023
    54454lase 14-03-2023
    Documento6 páginas
    54454lase 14-03-2023
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Listado De-29!09!2023eeeee
    Listado De-29!09!2023eeeee
    Documento30 páginas
    Listado De-29!09!2023eeeee
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • INFORME JUlIO
    INFORME JUlIO
    Documento2 páginas
    INFORME JUlIO
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Informe Marzo
    Informe Marzo
    Documento2 páginas
    Informe Marzo
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Informe Abril
    Informe Abril
    Documento3 páginas
    Informe Abril
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Informe Mayo
    Informe Mayo
    Documento3 páginas
    Informe Mayo
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Taller de Tesis Posgrado
    Taller de Tesis Posgrado
    Documento1 página
    Taller de Tesis Posgrado
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Sesion Dirigir Iglesia
    Sesion Dirigir Iglesia
    Documento11 páginas
    Sesion Dirigir Iglesia
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Ejes de Misión EDUCAR
    Ejes de Misión EDUCAR
    Documento16 páginas
    Ejes de Misión EDUCAR
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Cuadriláteros 5to Grado
    Cuadriláteros 5to Grado
    Documento3 páginas
    Cuadriláteros 5to Grado
    Jhadyr Edgar Tello Montenegro
    0% (1)
  • Producto Acreditable 1 - 3
    Producto Acreditable 1 - 3
    Documento3 páginas
    Producto Acreditable 1 - 3
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Mayta QV
    Mayta QV
    Documento107 páginas
    Mayta QV
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • PRESUPUESTO Vs ACTUAL
    PRESUPUESTO Vs ACTUAL
    Documento2 páginas
    PRESUPUESTO Vs ACTUAL
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Guia EPICI 2021-I
    Guia EPICI 2021-I
    Documento9 páginas
    Guia EPICI 2021-I
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • INGRESOS Vs GASTOS
    INGRESOS Vs GASTOS
    Documento20 páginas
    INGRESOS Vs GASTOS
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • Lectura ADMIRACION COMO COMIENZO DE LA FILOSOFIA
    Lectura ADMIRACION COMO COMIENZO DE LA FILOSOFIA
    Documento2 páginas
    Lectura ADMIRACION COMO COMIENZO DE LA FILOSOFIA
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones
  • SISTEMATIZACIÓN
    SISTEMATIZACIÓN
    Documento2 páginas
    SISTEMATIZACIÓN
    Jhadyr Edgar Tello Montenegro
    Aún no hay calificaciones