Apuntes de Inteligencia Artificial
Upcoming SlideShare
Loading in...5
×
 

Apuntes de Inteligencia Artificial

on

  • 5,799 views

 

Statistics

Views

Total Views
5,799
Views on SlideShare
5,750
Embed Views
49

Actions

Likes
2
Downloads
464
Comments
0

1 Embed 49

http://groupspaces.com 49

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Apuntes de Inteligencia Artificial Apuntes de Inteligencia Artificial Document Transcript

  • Inteligencia Artificial.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.PRIMERA UNIDAD:GENERALIDADES EN INTELIGENCIA ARTIFICIAL.1.1 Concepto de Inteligencia Artificial.1.2 Alcance de la Inteligencia Artificial. a) Percepción b) Sistemas expertos. c) Hardware (Memoria, rapidez y arquitectura) d) Robótica (Automatización). e) Cibernética (Interdisciplina para control de automatización)1.3 Algunos programas de la Inteligencia Artificial. a) Eliza. b) Mycin c) Dendral1.4 El proyecto Japonés de la Quinta Generación.1.1. INTRODUCCIÓN.En primer lugar, revisemos algunas definiciones generales de inteligencia, antes de intentar definirinteligencia artificial. Inteligencia es la aptitud de crear relaciones. Esta creación puede darse demanera puramente sensorial, como en la inteligencia animal; también puede darse de maneraintelectual, como en el ser humano, que pone en juego el lenguaje y los conceptos. También se lapuede conceptuar como la habilidad para adquirir, comprender y aplicar conocimiento; o como laaptitud para recordar, pensar y razonar.La IA es una nueva generación de tecnología informática, caracterizada no sólo por su arquitectura(hardware), sino también por sus capacidades. El énfasis de generaciones previas fue en lascomputaciones numéricas para aplicaciones científicas o de negocios. La nueva generación detecnología informática incluye además la manipulación simbólica, con el objetivo de emular elcomportamiento inteligente; y, la computación en paralelo, para tratar de conseguir resultadosprácticamente en tiempo real. La capacidad predominante de la nueva generación, tambiénconocida como la Quinta Generación, es la habilidad de emular (y tal vez en algunos casossuperar) ciertas funciones inteligentes del ser humano. Por ejemplo:Aprendizaje: Captación automática de conocimientos.Razonamiento: • Sistemas basados en conocimientos. • Bases de datos inteligentes. • Prueba de teoremas y juegos.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Percepción: • Comprensión de lenguaje natural. • Interpretación de escenas visuales (Visión por computadora).Locomoción y Manipulación: Realizar procesos mecánicos y tareas manuales (Robótica).Creación: Generación, verificación, depuración y optimización automática de programas.Algunas de las tareas que estos sistemas realizan en el campo de la IA son:Tareas generales • Percepción: Visión, Fonemas. • Lenguaje Natural: Comprensión, generación y traducción. • Razonamiento de sentido común. • Control de robots.Tareas formales • Juegos: Ajedrez, Backgammon, Damas. • Matemáticas: Geometría, Lógica, Cálculo Integral.Tareas expertas • Ingeniería: Diseño, Localización de fallas, Planeamiento. • Análisis Científico. • Diagnóstico Médico. • Análisis Financiero.La inteligencia artificial, en su sentido más amplio, indica la capacidad de un artefacto derealizar los mismos tipos de funciones que caracterizan al pensamiento humano. Laposibilidad de desarrollar un artefacto así ha despertado la curiosidad del ser humano desdela antigüedad; sin embargo, no fue hasta la segunda mitad del siglo XX, cuando esaposibilidad se materializó en herramientas tangibles.La Inteligencia Artificial comenzó como el resultado de la investigación en psicologíacognitiva y lógica matemática. Se ha enfocado sobre la explicación del trabajo mental yconstrucción de algoritmos de solución a problemas de propósito general. Punto de vistaque favorece la abstracción y la generalidad.El término inteligencia artificial (IA) fue acuñado en 1956 por John McCarthy, del Institutode Tecnología de Massachussets. En ese año se celebró la conferencia de Dartmouth, enHanover (Estados Unidos), y en ella, McCarthy, Marvin Minsky, Nathaniel Rochester yClaude E. Shannon establecieron las bases de la inteligencia artificial como un campoindependiente dentro de la informática. Previamente, en 1950, Alan M. Turing habíapublicado un artículo en la revista Mind, titulado “Computing Machinery and Intelligence”(“Ordenador e inteligencia”), en el que reflexionaba sobre el concepto de inteligenciaUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.artificial y establecía lo que luego se conocería como el test de Turing, una prueba quepermite determinar si un ordenador o computadora se comporta conforme a lo que seentiende como artificialmente inteligente o no.Con el avance de la ciencia moderna la búsqueda de la IA ha tomado dos caminosfundamentales: la investigación psicológica y fisiológica de la naturaleza del pensamientohumano, y el desarrollo tecnológico de sistemas informáticos cada vez más complejos.La Inteligencia Artificial es una combinación de la ciencia del computador, fisiología yfilosofía, tan general y amplio como eso, es que reúne varios campos (robótica, sistemasexpertos, por ejemplo), todos los cuales tienen en común la creación de máquinas quepueden "pensar".La idea de construir una máquina que pueda ejecutar tareas percibidas como requerimientosde inteligencia humana es un atractivo. Las tareas que han sido estudiadas desde este puntode vista incluyen juegos, traducción de idiomas, comprensión de idiomas, diagnóstico defallas, robótica, suministro de asesoría experta en diversos temas.Es así como los sistemas de administración de base de datos cada vez más sofisticados, laestructura de datos y el desarrollo de algoritmos de inserción, borrado y locación de datos,así como el intento de crear máquinas capaces de realizar tareas que son pensadas comotípicas del ámbito de la inteligencia humana, acuñaron el término Inteligencia Artificial en1956.Trabajos teóricos fundamentales fueron el desarrollo de algoritmos matemáticos porWarren McCullock y Walter Pitts, en 1943, necesarios para posibilitar el trabajo declasificación, o funcionamiento en sentido general, de una red neuronal. En 1949 DonaldHebb desarrolló un algoritmo de aprendizaje para dichas redes neuronales creando, enconjunto con los trabajos de McCullock y Pitts, la escuela creacionista. Esta escuela seconsidera hoy como el origen de la Inteligencia Artificial, sin embargo se trató poco pormuchos años, dando paso al razonamiento simbólico basado en reglas de producción, loque se conoce como sistemas expertos.En este sentido, el término IA se ha aplicado a sistemas y programas informáticos capacesde realizar tareas complejas, simulando el funcionamiento del pensamiento humano,aunque todavía muy lejos de éste. En esta esfera los campos de investigación másimportantes son el procesamiento de la información, el reconocimiento de modelos, losjuegos y las áreas aplicadas, como el diagnóstico médico. Un ejemplo de los logrosalcanzados fue la partida de ajedrez que el superordenador de IBM denominado Deep Blueganó, en mayo de 1997, al campeón del mundo Gari Kaspárov.Algunas áreas de la investigación actual del procesamiento de la información estáncentradas en programas que permiten a un ordenador o computadora comprender lainformación escrita o hablada, y generar resúmenes, responder a preguntas específicas oredistribuir datos a los usuarios interesados en determinados sectores de esta información.En esos programas es esencial la capacidad del sistema de generar frases gramaticalmenteUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.correctas y de establecer vínculos entre palabras e ideas. La investigación ha demostradoque mientras que la lógica de la estructura del lenguaje, su sintaxis, está relacionada con laprogramación, el problema del significado, o semántica, es mucho más profundo, y va en ladirección de una auténtica inteligencia artificial.Actualmente existen dos tendencias en cuanto al desarrollo de sistemas de IA: los sistemasexpertos y las redes neuronales. Los sistemas expertos intentan reproducir el razonamientohumano de forma simbólica. Las redes neuronales lo hacen desde una perspectiva másbiológica (recrean la estructura de un cerebro humano mediante algoritmos genéticos). Apesar de la complejidad de ambos sistemas los resultados distan mucho de un auténticopensamiento inteligente.Muchos científicos se muestran escépticos acerca de la posibilidad de que alguna vez sepueda desarrollar una verdadera IA. El funcionamiento de la mente humana todavía no hallegado a conocerse en profundidad y, en consecuencia, el diseño informático seguirásiendo esencialmente incapaz de reproducir esos procesos desconocidos y complejos.La metáfora entre mente y computadora se ha ampliado y madurado.Existe mecanismos o procesos básicos; sean comunes a actividades y comportamientos tanvariados como: Resolver un problema en general matemático, financiero,... Descubrir una estructura de pensamiento. Ir de casa a la oficina. Jugar al ajedrez. Otras actividades del pensamiento que habitualmente se reconoce que requieren inteligencia.La existencia de otros mecanismos Confirmación del funcionamiento de la inteligencia. Detección de la inteligencia. Entendimiento de la inteligencia.La confluencia de IA con la sicología cognitiva. El conocimiento que se tenga de la inteligencia y el aprendizaje, será alguna vez suficiente para que sirva de ayuda en la construcción de modelos mentales (Ej.: el conocimiento de la aeronáutica ayuda a construir aviones.) Estudiase el acto de aprender --> en las personas el aprendizaje parece estar íntimamente ligado al crecimiento de la estructura física del cerebro.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.1.2. CRONOLOGÍA DE LA IA. La inteligencia artificial es el estudio de la inteligencia como computación (Hayes.) Es la ciencia de hacer máquinas que hacen cosas que, realizadas por el hombre, requieran el uso de inteligencia (Minski.) El estudio de las ideas que permiten a los ordenadores ser inteligentes (Winston.) Conjunto de técnicas encaminadas al diseño y la construcción de sistemas informáticos que exhiban algún aspecto de inteligencia (Luis Arranz.) El nacimiento de la inteligencia artificial se refiere a la conferencia de Darwouth de 1956. Se reunieron ciertos investigadores de informática para intercambiar sus ideas. En 1957 aparece un programa que es el General Power Solver (GPS) desarrollado por Newell, Shan y Simon que era un intento de hacer un programa que resolviera problemas. Todo quedó en un fracaso. En 1958 aparece un lenguaje llamado LISP de McCarthy. En 1961 aparece un programa para jugar a las damas (Samel) que además era capaz de aprender cuantas más partidas ganaba. En 1965 se comienza a desarrollar DENTRAL, que es un sistema experto relacionado con la química y es el primer S.E. (Sistema Experto.) En 1966 aparece un programa de ajedrez creado por Greunblat. En 1968 aparece un robot denominado SHAKEY con movimientos muy torpes. En el 69 aparecen otros sistemas expertos: PROSPECTOR (yacimientos minerales), MYCIN (enfermedades infecciosas.) En 1975 aparece PROLOG (Colmenawer.) 1981: Conferencia de Tokyo MITI Robot Superordenadores Quinta generación MCC (Microelectronics and Computer technology Corporation) SCS (Strategic Computing and Survivability) MCNC (Microelectronics Center of Nort Carolina) Proyecto “Guerra de las galaxias”Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.1.3. CONCEPTO DE INTELIGENCIA ARTIFICIAL.No existe una definición para la IA que tenga una aceptación general, lo cual no es deextrañar ya que tampoco ha existido nunca una definición universalmente aceptada de lainteligencia humana. De las muchas definiciones de IA existentes tenemos: Inteligencia Artificial 1. “La interesante tarea de lograr que las computadoras piensen... maquinas con mentes, en su amplio sentido.” (Haugeland, 1985.) 2. Disciplina científico-técnica que trata de crear sistemas artificiales capaces de comportamientos que, de ser realizados por seres humanos, se diría que requieren inteligencia. 3. “La automatización de actividades que vinculamos con procesos de pensamiento humano, actividades tales como toma de decisiones, resolución de problemas, aprendizaje...” (Bellman, 1978.) 4. “El estudio de las facultades mentales mediante el uso de modelos computacionales”. (Charniak y McDermott, 1985.) 5. “El estudio de los cálculos que permiten percibir, razonar y actuar”. (Winston, 1992.) 6. Estudio de los mecanismos de la inteligencia y las tecnologías que lo sustentan. (Newell) 7. “El arte con crear máquinas con capacidad de realizar funciones que al realizadas por personas requieren de inteligencia”. (Kurzweil, 1990.) 8. “El estudio de cómo lograr que las computadoras realicen tareas que, por el momento, los humanos hacen”. (Rich y Knight, 1991.) 9. “Un campo de estudio que se enfoca a la explicación y emulación de la conducta inteligente en función de procesos computacionales”. (Schalkoff, 1990.) 10. “La rama de la ciencia de la computación que se ocupa de la automatización de la conducta inteligente”. (Luger y Stubblefield, 1993).Las primeras cinco definiciones se refieren a procesos mentales y al razonamiento, mientrasque las ultimas cinco a la conducta. La 1, 3, 5 y 7 miden la condición deseable en funciónUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.de eficiencia humana, y las 3, 4, 8, y 9 lo hacen en conformidad con un concepto deinteligencia ideal (racionalidad.)Desde sus comienzos hasta la actualidad, la Inteligencia Artificial ha tenido que hacerfrente a una serie de problemas: • Los computadores no pueden manejar (no contienen) verdaderos significados. • Los computadores no tienen autoconciencia (emociones, sociabilidad, etc.). • Un computador sólo puede hacer aquello para lo que está programado. • Las máquinas no pueden pensar realmente.Los esfuerzos de la Inteligencia Artificial (IA) están encaminados tanto a la construcción deentidades inteligentes como a su comprensión.En 1843, Lady Ada Augusta Byron, patrocinadora de Charles Babbage planteó el asunto desi la máquina de Babbage podía "pensar".Los primeros problemas que se trató de resolver fueron puzzles, juegos de ajedrez,traducción de textos a otro idioma.Durante la II Guerra Mundial Norbert Wiener y John Von Neumann establecieron losprincipios de la cibernética en relación con la realización de decisiones complejas y controlde funciones en máquinas.La teoría de la retroalimentación en mecanismos, como por ejemplo un termostato queregula la temperatura en una casa, tuvo mucha influencia. Esto aún no era propiamenteInteligencia Artificial. Se hizo mucho en traducciones (Andrew Booth y Warren Weaver),lo que sembró la semilla hacia el entendimiento del lenguaje natural.En el año 1955 Herbert Simon, el físico Allen Newell y J.C. Shaw, programador de laRAND Corp. y compañero de Newell, desarrolla el primer lenguaje de programaciónorientado a la resolución de problemas de la Inteligencia Artificial, el IPL-11. Un año mástarde estos tres científicos desarrollan el primer programa de Inteligencia Artificial al quellamaron Logic Theorist, el cual era capaz de demostrar teoremas matemáticos,representando cada problema como un modelo de árbol, en el que se seguían ramas enbusca de la solución correcta, que resultó crucial. Este programa demostró 38 de los 52teoremas del segundo capítulo de Principia Mathematica de Russel y Whitehead.En 1956, con la ahora famosa conferencia de Dartmouth, organizada por John McCarthy yen la cual se utilizó el nombre de inteligencia artificial para este nuevo campo, se separó laInteligencia Artificial de la ciencia del computador, como tal. Se estableció comoconclusión fundamental la posibilidad de simular inteligencia humana en una máquina.En 1957 Newell y Simon continúan su trabajo con el desarrollo del General ProblemsSolver (GPS). GPS era un sistema orientado a la resolución de problemas; a diferencia delLogic Theorist, el cual se orientó a la demostración de teoremas matemáticos, GPS noUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.estaba programado para resolver problemas de un determinado tipo, razón a la cual debe sunombre. Resuelve una gran cantidad de problemas de sentido común, como una extensióndel principio de retroalimentación de Wiener.Diversos centros de investigación se establecieron, entre los más relevantes están, laUniversidad Carnegie Mellon, el Massachusetts Institute of Technologie (MIT),encabezado por Marvin Minsky, la Universidad de Standford e IBM. Los temasfundamentales eran el desarrollo de heurísticas y el aprendizaje de máquinas.En 1957 McCarthy desarrolló el lenguaje LISP. La IBM contrató un equipo para lainvestigación en esa área y el gobierno de USA aportó dinero al MIT también parainvestigación en 1963.A finales de los años 50 y comienzos de la década del 60 se desarrolla un programaorientado a la lectura de oraciones en inglés y la extracción de conclusiones a partir de suinterpretación, al cual su autor, Robert K. Lindsay, denomina "Sad Sam". Este podía leeroraciones del tipo "Jim es hermano de John" y "La madre de Jim es Mary", a partir de ellael sistema concluía que Mary debía ser también la madre de John. Este sistema representóun enorme paso de avance en la simulación de inteligencia humana por una máquina, puesera capaz de tomar una pieza de información, interpretarla, relacionarla con informaciónanteriormente almacenada, analizarla y sacar conclusiones lógicas.En el mismo período de tiempo hay trabajos importantes de Herbert Gelernter, de IBM,quien desarrolla un "Demostrador Automático de Teoremas de la Geometría", AlexBernstein desarrolla un programa para el juego de ajedrez que se considera el antecedentepara "Deep Blue".En 1961 se desarrolla SAINT (Simbolic Automatic INTegrator) por James Slagle el cual seorienta a la demostración simbólica en el área del álgebra.En 1964 Bertrand Raphael construye el sistema SIR (Semantic Information Retrieval) elcual era capaz de comprender oraciones en inglés.Formalmente la IA inicia como disciplina en 1956.En la década del 60 se comienza en el MIT el estudio de la visión artificial, lo cual implicano solo captar imágenes a través de una cámara, sino también la comprensión, de lo queestas imágenes representan.Un resultado importante en este trabajo lo constituye el "mundo de micro-bloques", en elcual un robot era capaz de percibir un conjunto de bloques sobre una mesa, moverlos yapilarlos; el éxito se debió a los investigadores Larry Roberts, Gerald Sussman, AdolfoGuzman, Max Clowes, David Huffman, David Waltz, Patrick Winston, y Berthold Horn.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Posteriormente se obtuvieron resultados importantes entre ellos el de mayor resonancia fueel sistema SCHRDLU de Terry Winograd, pues permitía interrogar y dar órdenes a unrobot que se movía dentro de un mundo de bloques.En los primeros años de la década del 60 Frank Rosemblatt desarrolla, en la Universidad deCornell, un modelo de la mente humana a través de una red neuronal y produce un primerresultado al cual llama perceptrón. Este sistema era una extensión del modelo matemáticoconcebido por McCullock y Pitts para las neuronas, y funcionaba basándose en el principiode "disparar" o activar neuronas a partir de un valor de entrada el cual modifica un pesoasociado a la neurona, si el peso resultante sobrepasa un cierto umbral la neurona se disparay pasa la señal a aquellas con las que está conectada. Al final, en la última capa deneuronas, aquellas que se activen definirán un patrón el cual sirve para clasificar la entradainicial.Este trabajo constituye la base de las redes neuronales de hoy en día, sin embargo a raíz desu desarrollo sufrió fuertes críticas por parte de Marvin Minsky y Seymour Papert lo cualprovocó que la mayoría de los investigadores interesados en el tema lo abandonarán, y esteno se retomara hasta los años 80.En 1965-70, comenzaron a aparecer los programas expertos, que predicen la probabilidadde una solución bajo un set de condiciones, entre esos proyectos estuvo: DENDRAL, queasistía a químicos en estructuras químicas complejas euclidianas; MACSYMA, productoque asistía a ingenieros y científicos en la solución de ecuaciones matemáticas complejas,etc.En la década 1970-80, creció el uso de sistemas expertos, muchas veces diseñados paraaplicaciones médicas y para problemas realmente muy complejos como MYCIN, queasistió a médicos en el diagnóstico y tratamiento de infecciones en la sangre. Otros son:R1/XCON, PIP, ABEL, CASNET, PUFF, INTERNIST/CADUCEUS, etc. Algunospermanecen hasta hoy.De 1975 en adelante, comienza la era de los lenguajes expertos (shells) como EMYCIN,EXPERT, OPSS, etc. para luego tratar de que éstos sean más amigables y funcionales.Las definiciones de Inteligencia Artificial son muchas, pero podría decirse que sonprogramas que realizan tareas que si fueran hechas por humanos se consideraríaninteligentes.Estos programas obviamente corren en un computador y se usan, como por ejemplo, encontrol robótico, comprensión de lenguajes naturales, procesamiento de imágenes basadoen conocimientos previos, estrategias de juegos, etc. reproduciendo la experiencia que unhumano adquiriría y de la forma en que un humano lo haría.Para clasificar las máquinas como "pensantes", es necesario definir qué es inteligencia yqué grado de inteligencia implica resolver problemas matemáticos complejos, hacergeneralizaciones o relaciones, percibir y comprender. Los estudios en las áreas delUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.aprendizaje, del lenguaje y de la percepción sensorial han ayudado a los científicos a definira una máquina inteligente. Importantes desafíos han sido tratar de imitar el comportamientodel cerebro humano, con millones de neuronas y extrema complejidad. DIFERENCIA ENTRE LA INTELIGENCIA NATURAL Y LA ARTIFICIALAtributos Inteligencia Inteligencia Natural ArtificialCapacidad de usar detectores Alta BajaCapacidad de ser creativo Alta BajaCapacidad de aprender de la experiencia Alta BajaCapacidad de adaptación Alta BajaCapacidad de permitirse el costo de adquirir Alta BajaexperienciaCapacidad de usar diversas fuentes de información Alta AltaCapacidad de adquirir una gran cantidad de Alta Altainformación externaCapacidad de realizar cálculos complejos Baja AltaCapacidad de transferir información Baja AltaCapacidad de hacer una serie de cálculos con rapidez y Baja AltaexactitudLa IA tiene cuatro objetivos que alcanzar: • Sistemas que piensan como humanos. • Sistemas que actúan como humanos. • Sistemas que piensan racionalmente. • Sistemas que actúan racionalmente.Desde el punto de vista de los objetivos, la IA puede considerarse en parte como ingenieríay en parte como ciencia: • Como ingeniería, el objetivo de la IA es resolver problemas reales, actuando como un conjunto de ideas acerca de cómo representar y utilizar el conocimiento, y de cómo desarrollar sistemas informáticos. • Como ciencia, el objetivo de la IA es buscar la explicación de diversas clases de inteligencia, a través de la representación del conocimiento y de la aplicación que se da a éste en los sistemas informáticos desarrollados.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Preguntas fundamentales de la IA.1. ¿Cuales son las suposiciones subyacentes acerca de la inteligencia?2. ¿Cuáles son las técnicas útiles para la resolución de problemas en IA?3. ¿A qué nivel de detalle se trata de modelar la inteligencia humana?4. ¿Cómo se puede saber que se ha tenido éxito en el desarrollo de un sistema inteligente?La hipótesis del sistema físico de símbolosUn sistema físico de símbolos está formado por un conjunto de entidades básicas (llamadassímbolos), las cuales son patrones físicos que pueden ocurrir como componentes de otrotipo de entidad llamada expresión o estructura de símbolos. Una estructura de símbolos estácompuesta de un número de instancias de símbolos, relacionados en alguna forma física.Además de estas estructuras, el sistema también contiene una colección de procesos queoperan sobre las expresiones, para producir otras: procesos de creación, modificación,reproducción y destrucción.Un sistema físico de símbolos es una máquina que produce, a través del tiempo, unacolección evolutiva de estructuras de símbolos.Hipótesis: Un sistema físico de símbolos tiene los medios necesarios y suficientes paraactuar en general de forma inteligente.Importancia de la hipótesisRepresenta una importante teoría acerca de la naturaleza de la inteligencia humana.Constituye la base sobre la que se fundamenta la creencia de que es posible construirprogramas que pueden realizar tareas inteligentes como las que hacen las personas.Agentes Inteligentes.Agente, del latín agere, es "el que hace". En el ámbito delos negocios, un agente es "aquel que tiene por oficiogestionar negocios ajenos".¿Qué es un Agente Inteligente? Es todo aquello que puedeconsiderarse que percibe su ambiente mediante sensores yque responde o actúa en tal ambiente por medio deefectores. Es decir: "un tipo de programa informático que,por encargo de un usuario u otro programa, realiza deforma autónoma tareas que requieren cierto grado de inteligencia y aprendizaje".Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.El agente puede ser: • Autónomo: Un agente autónomo es un sistema anidado y parte integrante de un ambiente (environment) y que detecta o percibe (percepts) datos ambientales, momento a momento, y actúa sobre él con la intención de usar (actions) esos datos para su propia tarea (task) o agenda, afectando así lo que va a detectar en el futuro, sin intervención de terceras partes (basado en Franklin y Greasser, 1996). • Racional, que hace lo correcto, siendo "ideal" si hipoteticamente lo consigue del todo.- inteligente, siendo aceptable cualquiera de las numerosas definiciones de inteligencia, por ejemplo, capaz de aprender/adaptivo. • Activo, o sea que tiene en cuenta la gama de acciones abiertas a la elección y sus recompensas o penalidades. • Pro-activo donde más allá de actuar en respuesta a su mundo, lo hace tomando la iniciativa. • Meta-intensivo (orientado a metas), que elige las acciones que lo conducen a la meta, que intenta lograr prioritariamente. • Modelo-intensivo, que tiene internalizado un cierto modelo del mundo y lo respeta en sus acciones. • Utilidad-intensivo, que se esfuerza por obtener un máximo de "felicidad". • Social-intensivo o de comunicación, capaz de comunicarse en algun lenguaje de comunicación para agentes comprensible para otros. • De planificación, parecido al agente problema-intensivo (orientado a resolver problemas y tomar decisiones) • Softbot o sea robot basado en un software (como los robots bidimensionales de Beer que mimetizan a un invertebrado). • Reactivo cuando percibe perturbaciones en su mundo y responde a esa percepción de una manera actualizada (adaptada). • Reflejo o tropista, que responde de inmediato y en forma bien definida a un tropismo, a una percepción alarmante o beneficiosa (así un agente para el heliotropismo se orienta al Sol.)La mayoría de los agentes poseen las siguientes tres características: comunicación,inteligencia y autonomía.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. • Comunicación. El agente puede comunicarse con el usuario, con otros agentes y con otros programas. Con el usuario se comunica con un interfaz amigable, mediante el que personaliza sus preferencias. Algunos agentes permiten comunicarse en lenguaje natural, algo típico de los chatbots. • El grado de inteligencia varía mucho de unos agentes a otros, que suelen incorporar módulos con tecnologías procedentes de la Inteligencia Artificial. Los más sencillos se limitan a recoger las preferencias del usuario, quien debe personalizarlos. Un ejemplo son los agentes inteligentes basados en tecnología de redes neuronales especializados en identificar mensajes de correo electrónico sospechosos de contener spam -mensajes no deseados-. En una primera fase el usuario debe marcarlos como spam, el agente va aprendiendo a identificar los rasgos que caracterizan a estos mensajes y posteriormente los filtra. • Autonomía. Un agente no sólo debe ser capaz de hacer sugerencias al usuario sino de actuar. En el ejemplo anterior, el agente que filtra el spam no puede estar continuamente alertando al usuario en cada mensaje de correo que llega sobre la posibilidad de que sea un mensaje no deseado y su verdadera utilidad surge cuando elimina de forma autónoma dichos mensajes.Ejemplos de agentes. • Representante virtual. • Asistentes personales (Agentes, Asistentes Financieros, Auditores.) • Negociadores de mercados electrónicos (subastas.) • Agentes de búsquedas de información o rastreadores de información solicitada (Maimai, Googlealert, Copernic, Spypress, Tracerlook, Trademarkboots, Google News.) • Agente secreto espía, para monitorear páginas web previamente identificadas por el usuario e informa sobre cambios en dicha página (Changedetection, Spyweb.)En general no se trabaja con agentes aislados sino con sistemas multi-agente, como loilustra la figura.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.De manera intrínseca, los sistemas multiagentes tienen las ventajas tradicionales en lasolución de problemas concurrente y distribuido, además de incorporar patrones deinteracción sofisticados: • Cooperación: Trabajan juntos hacia un propósito común. • Coordinación: Organizan las actividades para solución de problemas, de tal forma que las interacciones dañinas (en conflicto muto) sean evitadas; y las interacciones benéficas sean explotadas. • Negociación: Llegan a acuerdos aceptables por todas las partes involucradasPractique con el agente inteligente de inversiones diligentdingo.(http://www.diligentdingo.com/DDingoLatest.exe)Existen cuatro programas de agentes: 1. Agente de reflejo simple. 2. Agente bien informado de todo lo que pasa. 3. Agentes basados en metas. 4. Agentes basados en utilidad.Los ambientes poseen las siguientes propiedades: 1. Accesibles y no accesibles: Si el aparato sensorial de un agente le permite tener acceso al estado total de un ambiente, se dice que este es accesible a tal agente.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. 2. Determinísticos y no determinísticos: Si el estado siguiente de un ambiente se determina completamente mediante el estado actual y las acciones escogidas por los agentes, se dice que el ambiente es determinista. 3. Episódicos y no episódicos: La experiencia del agente se divide en episodios. Cada episodio consta de una gente que percibe y actúa, la calidad de su actuación dependerá del episodio mismo (Para los ambientes episódicos). 4. Estáticos y dinámicos: Si existe la posibilidad de que el ambiente sufra modificaciones mientras el agente se encuentra deliberando se dice que el ambiente se comporta en forma dinámica en relación con el agente. 5. Discretos y continuos: Si existe una cantidad limitada de percepciones y acciones distintas y claramente discernibles, se dice que el ambiente es discreto.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.1.4. ALCANCE DE LA INTELIGENCIA ARTIFICIAL.Como se menciono anteriormente, no existe una definición universalmente aceptada de IA,pero existen los procesos que generalmente pueden ser llamados IA si son programados enuna computadora. La lista no es exhaustiva, pero se abordan las áreas principalesa) Percepción:Las maquinas serán capaces de reaccionar a su entorno e influenciarlo mediante sensores ydispositivos de interacción con el exterior. Podemos señalar las percepciones de la vista, laaudición y el tacto. La visión ya se ha llevado a cabo en una escala limitada medianteaparatos de televisión y dispositivos para la percepción de imágenes sintetizadores quepermiten al ordenador comunicarse mediante audición del lenguaje hablado en la salida yno escrito como se ha hecho hasta ahora, con el uso de pantallas o impresoras. Algunos delos progresos conseguidos con el desarrollo de circuitos integrados permitirán alcomputados aceptar órdenes y datos especializados, también mediante la utilización dellenguaje hablado.b) Sistemas expertos. Sistema experto, tipo de programa de aplicación informática que adopta decisiones o resuelve problemas de un determinado campo, como las finanzas o la medicina, utilizando los conocimientos y las reglas analíticas definidas por los expertos en dicho campo.Para algunas personas los términos IA y sistemas expertos son sinónimos. Muchos de lossistemas expertos existentes actualmente consisten en grandes bases de conocimientos,creadas para almacenar la información de que se dispone expertos humanos en varioscampos y a las que se aplica una serie de reglas de manipulación expresadas en lenguajesespecíficos. La diagnosis medica, la ingeniería química, la exploración geológica y elUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.diseño de computadoras han proporcionado material para el diseño de sistemas expertos degran éxito.Con el nacimiento de la Revolución Industrial, muchas fábricas tuvieron gran aceptaciónpor la automatización de procesos repetitivos en la línea de ensamblaje. La automatizaciónLos sistemas expertos, tienen dos elementos básicos y separados, aunque relacionados: unabase de conocimientos y una máquina de deducción, o de inferencia. La base de conocimientosproporciona hechos objetivos y reglas sobre el tema, mientras que la máquina de deducciónproporciona la capacidad de razonamiento que permite al sistema experto extraer conclusiones.consiste, principalmente, en diseñar sistemas capaces de ejecutar tareas repetitivas hechaspor los hombres, y capaces de controlar operaciones sin la ayuda de un operador humano.El término automatización también se utiliza para describir a los sistemas programables quepueden operar independientemente del control humano. La mayoría de las industrias hassido automatizadas o utilizan tecnología para automatizar algunas labores; en la industria dela telefonía, marcación, transmisión y facturación esta completamente automatizados.Pero no todas las industrias requieren el mismo grado de automatización. La agricultura esuna industria difícil de automatizar, y con esto se ha vuelto más mecanizada, esencialmenteen el procesamiento y empaque de comida. De manera similar, los doctores pueden darconsulta asistiéndose en una computadora, pero finalmente el doctor, y no la computadora,termina por dar el diagnóstico final al paciente.Los robots comenzaron a aparecer en este proceso de automatización industrial hasta laaparición de las computadoras en los 40’s. Estos robots computarizados, están equipadoscon pequeños microprocesadores capaces de procesar la información que le proveen lossensores externos y así es como el robot puede tomar cambiar o mantener una operación enejecución, a esto se le llama retroalimentación, y forma parte de la Cibernética. Laretroalimentación es esencial en cualquier mecanismo de control automático, ya que ayudaa controlar los factores externos que le afecten en la correcta ejecución de sus operacionesnormales. c) Hardware para la IA.El diseño tradicional de hardware no ha conseguido alcanzar, en gran medida el finpropuesto por la IA. Las técnicas de IA requieren acceso rápido a bancos de memoria,enormes según los estándares tradicionales y, por tanto, las velocidades de proceso sondemasiado lentas para las aplicaciones más exigentes. La antigua idea de solucionar unproblema paso a paso mediante la ejecución de una secuencia de instrucciones estacediendo al paso a la idea del procesamiento en paralelo, en el cual un conjunto deprocesadores trabajan simultáneamente en la diferentes partes del problema.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Según otros rumbos tomados se propone la inclusión de compiladores en hardware más queen software, y la obtención de un microcódigo para procesadores en un lenguaje lógicocomo el Prolog. d) Robótica La ciencia de la robótica implica diferentes técnicas de IA. La idea de un robot "listo" con la capacidad de aprender por experiencia es el tema central de teorías e investigaciones en IA. El robot debe sercapaz de comunicarse en lenguaje natural y debe poder realizar tareas que requieran que elequivalente a la iniciativa y la originalidad, esto implica que el robot debe llegar a realizar,tras un periodo de aprendizaje cosas para las cuales no estaba inicialmente programado, adiferencia de los robots que se utilizan actualmente en la aplicación industrial, los cuales noson más que meros autómatas.La idea global en la inteligencia artificial estuvo desacreditada durante varios años debidoparcialmente, al excesivo optimismo por parte de la primera teoría pero, mayormentecausado por la exageración y el sensacionalismo de algunos de sus divulgadores.Los primeros robots creados en toda la historia de la humanidad, no tenían más que un solofin: entretener a sus dueños. Estos inventores se interesaban solamente en conceder losdeseos de entretener a quien le pedía construir el robot. Sin embargo, estos inventores secomenzaron a dar cuenta de que los robots podían imitar movimientos humanos o de algunacriatura viva. Estos movimientos pudieron ser mecanizados, y de esta manera, se podíaautomatizar y mecanizar algunas de las labores más sencillas de aquellos tiempos. El origen del desarrollo de la robótica, se basa en el empeño por automatizar la mayoría de las operaciones en una fábrica; esto se remonta al siglo XVII en la industria textil, donde se diseñaron telares que se controlaban con tarjetas perforadas. Isaac Asimov formuló sus geniales "Tres Leyes de la Robótica":1. "Un robot no debe dañar a un ser humano o, por su inacción, dejar que un ser humano sufra daño."2. "Un robot debe obedecer las órdenes que le son dadas por un ser humano, excepto cuando etas órdenes están en oposición con la primera Ley."3. "Un robot debe proteger su propia existencia, hasta donde esta protección no esté en conflicto con la primera o la segunda Leyes."Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Cronología de la Robótica.FECHA DESARROLLOSigloXVIII. A mediados del J. de Vaucanson construyó varias muñecas mecánicas de tamaño humano que ejecutaban piezas de música1801 J. Jaquard invento su telar, que era una máquina programable para la urdimbre1805 H. Maillardet construyó una muñeca mecánica capaz de hacer dibujos.1946 El inventor americano G.C Devol desarrolló un dispositivo controlador que podía registrar señales eléctricas por medio magnéticos y reproducirlas para accionar un máquina mecánica. La patente estadounidense se emitió en 1952.1951 Trabajo de desarrollo con teleoperadores (manipuladores de control remoto) para manejar materiales radiactivos. Patente de Estados Unidos emitidas para Goertz (1954) y Bergsland (1958).1952 Una máquina prototipo de control numérico fue objetivo de demostración en el Instituto Tecnológico de Massachusetts después de varios años de desarrollo. Un lenguaje de programación de piezas denominado APT (Automatically Programmed Tooling) se desarrolló posteriormente y se publicó en 1961.1954 El inventor británico C. W. Kenward solicitó su patente para diseño de robot. Patente británica emitida en 1957.1954 G.C. Devol desarrolla diseños para Transferencia de artículos programada. Patente emitida en Estados Unidos para el diseño en 1961.1959 Se introdujo el primer robot comercial por Planet Corporation. estaba controlado por interruptores de fin de carrera.1960 Se introdujo el primer robot ‘Unimate’’, basada en la transferencia de articulaciones programada de Devol. Utilizan los principios de control numérico para el control de manipulador y era un robot de transmisión hidráulica.1961 Un robot Unimate se instaló en la Ford Motors Company para atender una máquina de fundición de troquel.1966 Trallfa, una firma noruega, construyó e instaló un robot de pintura por pulverización.1968 Un robot móvil llamado ‘Shakey’’ se desarrollo en SRI (standford Research Institute), estaba provisto de una diversidad de sensores así como una cámara de visión y sensores táctiles y podía desplazarse por el suelo.1971 El ‘Standford Arm’’, un pequeño brazo de robot de accionamiento eléctrico, se desarrolló en la Standford University.1973 Se desarrolló en SRI el primer lenguaje de programación de robots del tipo de computadora para la investigación con la denominación WAVE. Fue seguido por el lenguaje AL en 1974. Los dos lenguajes se desarrollaron posteriormente en el lenguaje VAL comercial para Unimation por Víctor Scheinman y Bruce Simano.1974 ASEA introdujo el robot Irb6 de accionamiento completamente eléctrico.1974 Kawasaki, bajo licencia de Unimation, instaló un robot para soldadura por arco para estructuras de motocicletas.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.1974 Cincinnati Milacron introdujo el robot T3 con control por computadora.1975 El robot ‘Sigma’’ de Olivetti se utilizó en operaciones de montaje, una de las primitivas aplicaciones de la robótica al montaje.1976 Un dispositivo de Remopte Center Compliance (RCC) para la inserción de piezas en la línea de montaje se desarrolló en los laboratorios Charles Stark Draper Labs en estados Unidos.1978 El robot T3 de Cincinnati Milacron se adaptó y programó para realizar operaciones de taladro y circulación de materiales en componentes de aviones, bajo el patrocinio de Air Force ICAM (Integrated Computer- Aided Manufacturing).1978 Se introdujo el robot PUMA (Programmable Universal Machine for Assambly) para tareas de montaje por Unimation, basándose en diseños obtenidos en un estudio de la General Motors.1979 Desarrollo del robot tipo SCARA (Selective Compliance Arm for Robotic Assambly) en la Universidad de Yamanashi en Japón para montaje. Varios robots SCARA comerciales se introdujeron hacia 1981.1980 Un sistema robótico de captación de recipientes fue objeto de demostración en la Universidad de Rhode Island. Con el empleo de visión de máquina el sistema era capaz de captar piezas en orientaciones aleatorias y posiciones fuera de un recipiente.1981 Se desarrolló en la Universidad de Carnegie- Mellon un robot de impulsión directa. Utilizaba motores eléctricos situados en las articulaciones del manipula dor sin las transmisiones mecánicas habituales empleadas en la mayoría de los robots.1982 IBM introdujo el robot RS-1 para montaje, basado en varios años de desarrollo interno. Se trata de un robot de estructura de caja que utiliza un brazo constituido por tres dispositivos de deslizamiento ortogonales. El lenguaje del robot AML, desarrollado por IBM, se introdujo también para programar el robot SR-1.1983 Informe emitido por la investigación en Westinghouse Corp. bajo el patrocinio de National Science Foundation sobre un sistema de montaje programable adaptable (APAS), un proyecto piloto para una línea de montaje automatizada flexible con el empleo de robots.1984 Robots 8. La operación típica de estos sistemas permitía que se desarrollaran programas de robots utilizando gráficos interactivos en una computadora personal y luego se cargaban en el robot. e) Cibernética. La cibernética es una ciencia interdisciplinaria, tratando con sistemas de comunicación ycontrol sobre organismos vivos, máquinas u organizaciones. El término es una derivacióndel vocablo griego kybernetes que significa gobernador o piloto, y fue aplicado por primeravez en 1948 a la teoría del control de mecanismos por el matemático americano NorbetWiener.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.En el cuerpo humano, el cerebro y el sistema nervioso funcionan para coordinar lainformación, la cual es utilizada para determinar el futuro curso de una acción; controlar losmecanismos para la auto corrección en máquinas que sirven con un propósito similar. Esteprincipio es conocido como retroalimentación, el cual es fundamental en el concepto deautomatización.La cibernética también se aplica al estudio de la psicología, servomecanismo, economía,neuropsicología, ingeniería en sistemas y al estudio de sistemas sociales, el términocibernética no es muy utilizado para describir por separado a un campo de estudio, ymuchas de las investigaciones en el campo ahora se centran en el estudio y diseño de redesneuronales artificiales. 1.3 ALGUNOS PROGRAMAS DE IA. a) El programa ELIZACasi cada publicación famosa en la IA menciona el programa ELIZA que fue escrito afinales de los sesenta por el profesor Joseph Weizenbaum de Massachusetts Institute ofTechnology (MIT). El programa fue diseñado como una ayuda al análisis del lenguaje y elprofesor J. W. Lo llamo así en honor a la muchacha que aparece en la obra de G. B. Shaw,que comenzó como una vendedora callejera de flores y su vida se transformo cuando elprofesor de dicción le enseño a hablar un correcto ingles, quien asumió esta tarea comoparte de una apuesta.Un elemento muy importante del mensaje de Shaw era que aunque Eliza continuaba siendola misma persona, con las misma virtudes y defectos antes y después de su transformación,la gente la veía de un manera deferente, como una señorita bien vestida y con un acentoculto, en contraste con la desastrada vendedora de flores que hablaba de una forma vulgar.Podemos obtener la moraleja de esta historia y observar que aunque un programa sea muycomplejo la computadora sigue siendo una acumulación inanimada de dispositivoselectrónicos y que, aunque algunos de los resultados puedan ser sorprendentes la maquinaes capaz de ejecutar únicamente las tareas para las cuales fue exactamente programada ynada más. b) El programa MYCIN La especialización de cualquier actividad requiere un gran conocimiento asociado. El proceso para poder practicar una cierta actividad depende de la asimilación de este conocimiento.Un conjunto de hechos constituyen una gran parte del conocimiento básico sobre un tema,pero son igualmente importantes la destreza que se puede adquirir con la experiencia, lasideas generales en algunos casos acerca de lo que es una buena practica y el arte de tomarUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.un decisión acertada basándose en información incompleta. Esto resulta tan importante parael aprendizaje de cualquier materia o para que el estudiante de cualquier ciencia adquieralos aspectos sutiles del tema, como aprender las premisas básicas.En la creación de un sistema experto hay una parte bastante inmediata de codificación delos hechos conocidos sobre un tema; la parte más difícil, conocida como modelación de lamaestría, consiste en la formulación y aplicación de reglas extraídas de la experiencia quese posee en el tema. En cualquiera de los casos el sistema esta constituido por una base deconocimientos que proporcionan los hechos y un motor de inferencia para desarrollar lasdeducciones lógicas y tomar decisiones (algunas veces acompañadas de un porcentaje deprobabilidad acerca de la corrección de las deducciones), basadas en los hechos y reglasconocidas.El programa MYCIN publicado por E. Schortcliffe en 1976 es un sistema que diagnosticaenfermedades infecciosas, en particular infecciones sanguíneas. MYCIN lo usan médicosen prácticas para obtener ayuda en sus diagnósticos, a su vez el sistema se actualiza con loshechos y reglas de inferencia que proporcionan los especialistas. c) El programa DENDRAL DENDRAL es un programa experto de análisis químico yse ha aplicado con mucho éxito en muchos lugares del mundo. DENDRAL soluciona unproblema de ingeniería química en tres fases. En primer lugar, el programa infiere cualquierposible restricción sobre la solución basándose en el conocimiento que posee en su base dedatos. A continuación permite a los usuarios añadir cualquier otro tipo de restricción yfinalmente genera y comprueba una lista de posibles soluciones, que imprime en orden depreferencia. DENDRAL se escribió originalmente en LIPS, pero ha sido reprogramado paraser usado en varias maquinas diferentes de entre las que se destaca la implementaciónrealizada sobre un PDP-10 en Edimburgo. Este programa basado en la estrategia de"planificar, generar y comprobar" se usa en las universidades y en las industrias de EstadosUnidos y en Europa y representa una de las aplicaciones prácticas de la IA que mas éxito haconseguido de entre las desarrolladas hasta la fecha. 1.5. EL PROYECTO JAPONÉS DE LA QUINTA GENERACIÓN.La investigación y el desarrollo japonés de nueva tecnología están dirigidos por la unión dela industria y el gobierno en el instituto para la nueva generación de Tecnología decomputadoras (ICOT). La investigación se desarrolla principalmente en tres campos:hardware, software y aplicaciones. Los investigadores en el campo del hardware estánconcentrados en una arquitectura de computadoras que se caracteriza por la inferenciasecuencial, inferencia en paralelo y el desarrollo de maquinas para bases de datos afines.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.El grupo de software esta investigando sobre un lenguaje que sea el núcleo del proyecto,esté incluye sistema operativo, lenguaje natural y representación del conocimiento. Eltercer grupo combina los resultados de los dos primeros grupos en la labor sobre sistemasde gestión de bases de datos afines y sistemas expertos y para conseguir validar la teoríapropuestas por el resto del grupo.En contraste en las aproximaciones que se han realizado en otras partes del mundo, losjaponeses están tratando de formular una nueva teoría unificada para todo el campo derepresentación y procesamiento de la información. Ya hemos visto que existen numerosasaproximaciones diferentes que pueden asimilarse a las diferentes ramas de la IA, pero solosi se aceptan estas aproximaciones incluyéndolas en una estrategia global, el número deopciones se reducirá y los japoneses creen que de este modo aumentarán las oportunidadespara lograr una estrategia global coherente.El mayor logro desarrollado en los primeros cuatro años del proyecto ha sido una maquinabasada en el conocimiento y que ha sido llamada Delta que comprende un sistema deinferencia, un sistema de conocimiento, un sistema de software y un sistema para eldesarrollo de prototipos de software. Las maquinas para bases de datos afines tienen acceso a algo así como unos 20 gigabytes de almacenamiento y en las etapas iniciales se encontraron algunos problemas debido al uso de las maquinas convencionales que se basan en un procesamiento secuencial y que se incluyeron como compromiso con la reconocida necesidad de efectuar un procesamiento en paralelo a gran escala. Se estima que las maquinas de inferencia que se necesitan al final del proyecto deberán ser capaces de ejecutar 10 LIPS y esta potencia de procesamiento sólo será proporcionada por el equivalente de 1000 procesadores trabajando en paralelo.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.SEGUNDA UNIDAD:REPRESENTACIÓN DEL CONOCIMIENTO2.1. Formalismos para la representación del conocimiento: listas y árboles, redes semánticas, frames, scripts.2.2. Fundamentos lógicos en inteligencia artificial: Lógica proposicional y de predicados. Sistemas conjuntivos, Forma de Skolen2.3.Inferencia a) Reglas de producción. b) Cláusulas de Horn.Introducción.Desde el punto de vista de ingeniería, la mayor parte del trabajo requerido para construir sistemasde IA, está basado en el desarrollo de adecuadas representaciones de conocimiento y suscorrespondientes estrategias de manipulación. No se puede manipular conocimiento a menosque esté adecuadamente representado. En consecuencia, las siguientes tres preguntas clavespueden guiarnos en el estudio de la IA. • ¿Qué es el conocimiento? • ¿Cómo se puede representar el conocimiento? • ¿Cómo se podría manipular el conocimiento?A continuación, se dan respuestas parciales a estas preguntas planteadas. En los capítulosposteriores se presenta un estudio más formal y detallado acerca del conocimiento, surepresentación y manipulación.ConocimientoPuede ser definido como el conjunto de hechos y principios acumulados por la humanidad, o elacto, hecho o estado de conocer. Es la familiaridad con el lenguaje, conceptos, procedimientos,reglas, ideas, abstracciones, lugares, costumbres y asociaciones, unida a la habilidad de utilizarestas nociones en forma efectiva para modelar diferentes aspectos del universo que nos rodea.Los conceptos de conocimiento e inteligencia están íntimamente ligados. La inteligencia requierede la posesión y acceso al conocimiento. Conocimiento no debe ser confundido con datos oinformación. El conocimiento incluye y requiere del uso de datos e información. Además, combinarelaciones, dependencias, y la noción del saber con datos e información.A veces es también útil o más aun necesario distinguir entre conocimiento y otros términos comocreencia e hipótesis.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Esencialmente, se define como creencia a toda expresión que tiene significado, que es coherentey puede ser representada. En consecuencia una creencia puede ser verdadera o falsa. Hipótesisse define como una creencia justificada que no se conoce sea verdadera. Una hipótesis es unacreencia que está respaldada por cierta evidencia, pero todavía puede resultar falsa. Finalmente,se puede también decir que conocimiento es una creencia justificada como verdadera.Otros términos relacionados con el conocimiento y que son ocasionalmente empleados sonepistemología y metaconocimiento. Epistemología es el estudio de la naturaleza del conocimiento,mientras que metaconocimiento es conocimiento acerca del conocimiento, esto es, conocimientoacerca de lo que se conoce.El conocimiento puede ser de tipo procedimental, declarativo o heurístico. Conocimientoprocedimental es aquel conocimiento compilado que se refiere a la forma de realizar una ciertatarea (el saber como hacerlo). Por ejemplo, los pasos necesarios para resolver una ecuaciónalgebraica son expresados como conocimiento procedimental.Por otro lado, el conocimiento declarativo es conocimiento pasivo, expresado como sentenciasacerca de los hechos del mundo que nos rodea (el saber que hacer). La información personal enuna base de datos es un típico ejemplo de conocimiento declarativo. Tales tipos de datos sonpiezas explícitas de conocimiento independiente.El conocimiento heurístico es un tipo especial de conocimiento usado por los humanos pararesolver problemas complejos. El adjetivo heurístico significa medio para descubrir. Estárelacionado con la palabra griega heuriskein que significa descubrir, encontrar. Se entiende porheurístico a un criterio, estrategia, método o truco utilizado para simplificar la solución deproblemas. El conocimiento heurístico usualmente se lo adquiere a través de mucha experiencia.El proceso de organizar y coleccionar el conocimiento es llamado ingeniería delconocimiento. Es tal vez la parte más difícil y la que consume más tiempo en cualquierproceso que desarrolla software de IA.Dado que el conocimiento es importante y primordial para el comportamiento inteligente, surepresentación constituye una de las máximas prioridades de la investigación en IA. Elconocimiento puede ser representado como imágenes mentales en nuestros pensamientos, comopalabras habladas o escritas en algún lenguaje, en forma gráfica o en imágenes, como cadenas decaracteres o colecciones de señales eléctricas o magnéticas dentro de un computador. En nuestroestudio de IA, consideraremos las representaciones escritas y sus correspondientes estructuras dedatos utilizadas para su almacenamiento en un computador. La forma de representación que seescoja dependerá del tipo de problema a ser resuelto y de los métodos de inferencia disponibles.Existen diferentes esquemas de representar el conocimiento, abordaremos algunas formasde representarlo y aplicarlo de una manera adecuada para su manipulación encomputadoras.Los esquemas de representación del conocimiento han sido categorizados comodeclarativos o procedimentales. Los métodos de representación declarativos se usan pararepresentar factores y aserciones; y un esquema de representación procedimental trata conacciones descritas paso a paso para llegar a un resultado final.Los métodos de representación del conocimiento declarativos incluyen lógica, listas,árboles, redes semánticas, marcos y libretos.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.En términos generales, se debe tratar que el conocimiento esté representado de tal forma que: • Capture generalizaciones. • Pueda ser comprendido por todas las personas que vayan a proporcionarlo y procesarlo. • Pueda ser fácilmente modificado. • Pueda ser utilizado en diversas situaciones aún cuando no sea totalmente exacto o completo. • Pueda ser utilizado para reducir el rango de posibilidades que usualmente debería considerarse para buscar soluciones.El conocimiento declarativo puede ser representado con modelos relacionales y esquemasbasados en lógica. Los modelos relacionales pueden representar el conocimiento en forma deárboles, grafos o redes semánticas. Los esquemas de representación lógica incluyen el uso delógica proposicional y lógica de predicados.Los modelos procedimentales y sus esquemas de representación almacenan conocimiento en laforma de cómo hacer las cosas. Pueden estar caracterizados por gramáticas formales, usualmenteimplantadas por sistemas o lenguajes procedimentales y sistemas basados en reglas (sistemas deproducción).Las representaciones declarativas son usualmente más expansivas y costosas, en el sentido quela enumeración puede ser redundante e ineficiente. Sin embargo, la modificación de lasrepresentaciones declarativas es usualmente muy fácil; simplemente se agrega o se eliminaconocimiento. Las representaciones procedimentales, en cambio, pueden ser más compactas,sacrificando flexibilidad. Representaciones prácticas pueden incluir elementos tanto declarativos(listado de hechos conocidos), como procedimentales (un conjunto de reglas para manipular loshechos).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Manipulación del conocimientoExisten tres paradigmas que los investigadores han utilizado tradicionalmente para la resolución deproblemas de IA: • Programación Heurística.- Está basado en el modelo de comportamiento humano y su estilo para resolver problemas complejos. Existen diversos tipos de programas que incluyen algoritmos heurísticos. Varios de ellos son capaces de aprender de su experiencia. • Redes Neuronales Artificiales.- Es una representación abstraída del modelo neuronal del cerebro humano. Las redes están formadas por un gran número de elementos simples y por sus interconexiones. Una red neuronal artificial puede ser simulada o ser real. Al elemento procesador de la red, se lo denomina neurona artificial. • Evolución Artificial.- Su modelo está basado en el proceso genético de evolución natural, propuesto por Charles Darwin. Se utilizan sistemas simulados en computador que evolucionan mediante operaciones de reproducción, mutación y cruce (Algoritmos Genéticos).Cada paradigma comprende una colección de métodos, configuraciones y técnicas desarrolladaspara manipular el conocimiento. En general, una técnica de IA está caracterizada por incluir lossiguientes componentes: • Procesos de Búsqueda.- Proporciona una forma de resolver problemas para los cuales no hay un método más directo, así como también se constituye en un marco de trabajo dentro del cual cualquier técnica directa puede ser incorporada. • Uso del Conocimiento.- Proporciona una forma de resolver problemasFUNDAMENTOS LÓGICOS EN INTELIGENCIA ARTIFICIALTal vez la forma más antigua de representar el conocimiento es la lógica. Esta trata elestudio científico de los procesos de razonamientos, de sistemas de reglas y procedimientosque ayudan al pensamiento adecuado. La lógica es considerada una subdivisión de lafilosofía, su desarrollo y el refinamiento de sus procesos son generalmente acreditados a losgriegos.La forma general de cualquier proceso lógico consiste de información dada, juicios hechoso de observaciones que son notadas; esto constituye las entradas al proceso lógico y sonllamadas premisas. Las premisas son empleadas por el procesamiento lógico para crear lassalidas que constituyen las conclusiones llamadas inferencias. Esto constituye hechos queson conocidos como verdaderos y pueden ser usados para derivar nuevos hechos quetambién deben ser verdaderos.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.FORMALISMOS PARA REPRESENTAR DEL CONOCIMIENTOLISTAS Y ÁRBOLESSon las estructuras más sencillas que se usan para representar un conocimiento jerárquico.Listas: Una lista es una serie de elementos del mismo tipo.Ejemplo: a) [Juan, Roberto, Ana, Inés ]: Lista de personas. b) [caramelos, galletas, bombones]: Cosas que se compran en una miscelánea. c) [clavos, bloques, cemento]: Productos de construcción. Lista 1 Cuadernos Libros Escritorio Escritorio Libros Madera Filosofía Metal Matemáticas Madera Historia Caoba Pino Representación gráfica y jerárquica de una lista.Árbol: Es una forma sencilla de ilustrar las listas y otros tipos de conocimiento jerárquicos.Ejemplo: Los nodos están representados por los círculos y las líneas que los unen son los arcos.REDES SEMÁNTICASEs la representación esquemática del conocimiento mediante descripciones graficas quemuestra una jerarquía relacional entre objetos. Se le denomina nodo a la representación deelementos del dominio y se muestran como rectángulos o círculos y son rotulados con losnombres de los elementos representados; y se denominan arcos a los enlaces desde unnodo a otro, se representan como un vector y se rotula con el nombre de las relacionesrepresentadas.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Nodo = objetoDonde un Objeto puede ser representado por: 1. Personas 2. Animales 3. Eventos 5. Acciones 6. Conceptos 7. Atributos o características que identifican a un objeto.Existen ciertos tipos de Arcos típicos entre los cuales están.1. ISA (Es-un): El cual usa para identificar que un cierto pertenece a una clase mayor deobjeto. Ser _humano Es un Hombre Es un Manuel2. HAVE-a (tiene-un), este tipo de arcos se utiliza para identificar que un cierto nodo tieneo pase una cierta características o atributo o propiedad. También se puede utilizar pararepresentar situaciones, acciones y eventos.Propiedades de las Redes SemánticasLas redes Semánticas posen la propiedad de la Herencia; en la que unos nodos heredaronlas propiedades o atributos de Nodos de una clase mayor. Así por ejemplo en las siguientesRed Semántica:Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Nota: A través de la característica de la herencia, las Redes Semánticas tienen la capacidadde inferir conocimiento.Ejemplo de Red Semántica.Considera la anterior Red Semántica acerca de SAM y su familia.1. Necesita Sam Alimento Si, por la herencia que recibe de los seres humanos.2. Trabaja SAM para AJAX Si por característica o por propiedades de herencia ya que CME pertenece AJAX.Nota: En Redes Semánticas las inferencias de información o respuestas o preguntas sehacen con base en las propiedades de herencia que existen entre los Nodos.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Ejemplo de Red Semántica: Roedor. Es_un Es_un Ejemplo de Red Semántica: Lassie. Tiene un Ti de en e po un Ti tieneUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Ejemplo de Red Semántica: Animal. puede Ti Ti de po po po de de Ti s ata vo come tiene p lar ne TieUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Ejemplo de Red Semántica: Animal2. ANIMAL Es del tipo Es del tipo respira come tiene Esta formado por Aire Masa Miembros Alimentos PAJARO puede Alas PERSONA Es del tipo Está formado por Está formado por Un Representante Plumas Alas de Piernas Brazos CANARIO Un representante ARTURO color Trabaja en Amarillo Piolín NASAUn animal come alimento,respira aire, tiene masa yestá formado por miembros.Una persona es del tipoanimal, la cual hereda todaslas características antesdescritas del animal. Asítambién tenemos laposibilidad de detallar mássus cualidades como quetiene piernas y brazos.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ejercicios:Dado el siguiente conocimiento construya la correspondiente Red Semántica.- Los Jorobados son personas pequeñas.- Bilbo es un jorobado.- Los jorobados tienen dedos gordos.- Bilbo posee un anillo mágico.- El anillo fue encontrado en una cueva.- Los jorobados son personas míticas y las personas míticas son estudiadas por losestudiantes de literatura.1. ¿Qué posee Bilbo? Un anillo mágico.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.FRAMES (MARCOS)Un Frames es una estructura de datos que contiene todo el conocimiento acerca de unobjeto. Los Frames son organizados en forma jerárquica y esta característica es utilizadacomo medio para responder a Preguntas. Los Frames surgieron de la pregunta orientada aobjetos. Cada frames describe un objeto en particular. Por lo tanto cada frames merepresenta una estructura de conocimiento en la cual se esta describiendo a un objeto, unevento o una situación ó cualesquier otro elemento. En los frames se describe elconocimiento acerca de un objeto utilizado SLOTS (Ranuras).Representación del conocimiento en una jerarquía de frames que heredan propiedades deframes del nivel superior.Modo de transporte Carro Ranura Generalidades Auto Ranura del carro Motor Ranura Especificaciones del AutomóvilTipos de SLOTS en los Frames 1. Hay Slot para describir Conocimiento Declarativo como lo es: - Peso de un Objeto. - La Altura - La forma - El color - Hobbies (leer, nadar, trotar) 2. Hay slots para describir conocimiento procedural (el cual se refiere a pequeños procesos que me identifica a ciertas funciones).Ejemplo: Velocidad, aceleración, trabajo, cálculo de energía, etc.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. 3. Que identifican a las Reglas. Ejemplo: If máquina caliente THEN prender ventilador. 4. Un Slot puede indicar la conexión con otro FRAME 5. Un Slot puede indicar la conexión con otros frame de representación de conocimiento como lo son con las Redes Semánticas.FRAME de un Auto. -Clase; transportación -Nombre del fabricante; Audi -Origen del fabricanteNota: Una de las características de los frames es que un frame puede identificar a toda unafamilia de objetos.SCRIPT (LIBRETO)Este tipo de Representación de conocimiento es utilizado para representar secuencias deEVENTOS de tipo: - Historias Visitas al: - Dramas - Doctor. - Visitas - Restaurante - Viajes - Museo, etc. - EstéticaEn los SCRIPTS o libretos intervienen elementos básicos como lo son:1. Requerimientos de Entrada.2. Roles o papeles de las personas o cosas que intervienen en el libreto.3. Herramientas utilizadas por los diferentes participantes o actores.4. Escenas.5. Resultados.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ejemplo 1. SCRIPT correspondiente a una visita al Restaurante de Auto-Servicio.Requerimiento de Entrada:- Hay un cliente que tiene hambre.- El cliente tiene dinero.Herramientas que intervienen:- carro - mostrador- dinero - palillos- bandeja - sal- bote de basura - cuchillo- alimentos - tenedor- catsup - cuchara- servilletas - mesaRoles o Papeles: - Hay un cliente (C)- Recepcionista (R)Escena 1: Entrada al Restaurante.- El cliente para el carro.- El (C) entra al Restaurante.- El (C) hace fila en el mostrador.- El (C) mira los distintos alimentos en la pared y decide cuales seleccionar.Escena 2: Ordenar.- El cliente lea la orden al (R).- El (R) comienza a poner los alimentos a la bandeja.- El (C) paga la orden.Escena 3: Comer.- El cliente toma servilletas, cuchillo, tenedor, cuchara, sal, palillos y salsa de tomate.- El (C) busca mesa.- El cliente consume los alimentos.Escena 4: Salida.- Recoge la basura de la mesa.- Vacía el contenido de la vasija en el bote de la basura.- Sale del restaurante.- Toma su carro.- Se va.Resultados: - Cliente ya no tiene hambre.- El (C) tiene menos dinero.- El (C) esta satisfecho.- El (C) no esta satisfecho.- El (C) trae dolor de estomago.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ejemplo 2. SCRIPT correspondiente a una visita al cine.• PAPELES: cinéfilo, taquillero, portero, acomodador• CONDICIONES DE ENTRADA: cinéfilo desea ver película• PROPIEDADES O HERRAMIENTAS: película, butaca, dinero, entrada• ESCENAS:-Sacar entrada Cinéfilo: Deme butaca” a taquillero Cinéfilo: Dinero a taquillero Taquillero: Entrada a cinéfilo-Entrar en sala Cinéfilo: Entrada a portero Portero: Entrada a cinéfilo Cinéfilo: Cinéfilo a sala-Acomodarse ...................-Ver película ..................-Salir de sala ..................• RESULTADOS:-Cinéfilo ha visto la película-Taquillero tiene más dinero-Cinéfilo tiene menos dinero.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Lógica proposicionalLa lógica proposicional trata con unidades básicas denominadas proposiciones. Unaproporción es una expresión que tiene un valor de verdad (falso o verdadero, pero no ambosa la vez).Ejemplo: Mozart fue un compositor. (Verdadero) Todo compositor escribe música. (Verdadero) Un perro es un animal. (Verdadero) Un gato es un perro. (Falso)Estas proposiciones se pueden representar mediante p, q, r, s, ... y se les llamaproposiciones simples o atómicas.Las proposiciones simples o atómicas son vinculadas o modificadas por los llamadosconectores: ^ : = AND v : = OR ~ ¬ : = NOT => : = Implicación := Doble implicaciónY son llamadas proposiciones compuestas o moleculares.Ejemplo: p: Mozart fue un compositor. ~ p : Mozart no fue un compositor. q: Mozart escribió música. p ^ q: Mozart fue un compositor y escribió música. p v q: Mozart fue un compositor o escribió música. p => q: Si Mozart fue un compositor entonces escribió música. p q: Mozart fue un compositor si y solo si escribió música.En el caso de las proposiciones simples asignarles su valor de verdad es obvio, se requieretener un conocimiento claro de los hechos relacionados a la proposición. En cambio paralas proposiciones compuestas se deben seguir ciertas reglas que señalaremos en la tablasiguiente: p q ~p p^q pvq p => q p q V V F V V V V V F F F V F F F V V F F V F F F V F F V V 1 2 3 4 5 6 7Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Negación: ~ pToma el valor de verdad opuesto al de la proposición p, o sea, si la proposición p esverdadera la negación ~ p es falsa y viceversa. Como se observa en la columna 3.Conjunción: p ^ qToma el valor de verdadero solo cuando ambas miembros son verdaderos. En cualquierotro caso es falsa. Como se observa en la columna 4.Disyunción: p v qToma el valor falso cuando ambos miembros son falsos. En cualquier otro caso esverdadera. Como se observa en la columna 5.Condicional: p => qSi el antecedente es verdadero y el consecuente es falso, la condicional es falsa. Encualquier otro caso es verdadera. Como se observa en la columna 6.Bicondicional: p qCuando ambos miembros tienen el mismo valor de verdad, la bicondicional es verdadera.En cualquier otro caso es falsa. Como se observa en la columna 7.Las variables, también pueden ser cuantificadas. Los cuantificadores que típicamente se utilizan enlógica de predicados son: • El cuantificador universal; ∀ indica que la fórmula bien formada, dentro de su alcance, es verdadera para todos los valores posibles de la variable que es cuantificada. Por ejemplo: ∀X.... Establece que "para todo X, es verdad que . . . " • El cuantificador existencial;∃ , indica que la fórmula bien formada, dentro de su alcance, es verdadera para algún valor o valores dentro del dominio. Por ejemplo: ∃X.... Establece que "existe un X, tal que . . . "A continuación se dan algunos ejemplos de predicados cuantificados: ∀ X, [niño (X) => le_gusta (X, helados)]. (∀X)(persona(X)) =>mortal(X) ∀ Y, [mamífero (Y) => nace (Y, vivo)]. (∀X)(perro(X)) =>mortal(X) ∃ Z, [cartero(Z) ^ mordió (boby, Z)].Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Desde el punto vista de representación, los cuantificadores son difíciles de usar. Por lo que esdeseable reemplazarlos con alguna representación equivalente, más fácil de manipular. El caso delcuantificador universal es más simple ya que se asume a todas las variables como universalmentecuantificadas.El cuantificador existencial es más difícil de reemplazar. El cuantificador existencial garantiza laexistencia de uno o más valores particulares (instancias) de la variable cuantificada, que hace a lacláusula verdadera. Si se asume que existe una función capaz de determinar los valores de lavariable que hace la cláusula verdadera, entonces simplemente se remueve el cuantificadorexistencial y se reemplaza las variables por la función que retorna dichos valores. Para laresolución de problemas reales, esta función, llamada función de Skolem, debe ser conocida ydefinida.Forma proposicional o función: p(x)Es aquella expresión que tiene un elemento desconocido, x , que al ser instanciado hace quela expresión se convierta en una proposición. Ejemplo: p (x): x es un mamífero.Si x se instancia con “clavo”, o sea, x = clavo. La forma proposicional se convierte en laproposición: p (clavo): clavo es un mamífero. (Falso)Si x se instancia con “gato”, o sea, x = gato. La forma proposicional se convierte en laproposición: p (gato): gato es un mamífero. (Verdadero)Los valores de x estan presente en un conjunto llamado dominio. Si todos los elementos deldominio hacen verdadera la proposición se utiliza el cuantificador universal “∀”. Si soloalgunos elementos del dominio hacen verdadera la proposición se utiliza el cuantificadorexistencial “∃”.Ejemplo:1. Sea la forma proposicional “p ( x ): x es una letra ” Dominio: x = { (x, p ( x )) | p ( x ): x es una letra } = { a, b, c, d, e} Instanciando tenemos: x = a, p(a): a es una letra. (Verdadero) x = e, p(e): e es una letra. (Verdadero) Todos los elementos del dominio cumplen la forma proposicional, esto se indica de la manera siguiente: ∀x, p( x ): para todo x, x es una letra.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.2. Sea la forma proposicional “p (x ): x es un número par ”Dominio: x = { (x, p ( x )) | p ( x ): x es un número par } = {1, 2, 5 }Instanciando tenemos:x = 1, p(1): 1 es un número par. (Falso)x = 2, p(2): 2 es un número par. (Verdadero)x = 5, p(5): 5 es un número par. (Falso)Existen algunos elementos del dominio que cumplen la forma proposicional, esto se indicade la manera siguiente: ∃x, p( x ): existe algún x, x es un numero par.Lógica de predicados.La lógica de predicados se refiere o sirve para identificar una relación existente entreelementos llamados argumentos, entre paréntesis o bien identifica a la propiedad ocaracterística de los argumentos en el paréntesis, o bien identifica el nombre de la clase a laque pertenecen los argumentos. Se expresa de la manera siguiente: PREDICADO (ARG1,ARG2,...,ARGN) NOMBRE NOMBRE DEL DEL PREDICADO ARGUMENTONota: Los argumentos siempre (usualmente) son SUSTANTIVOS.Ejemplo:1 El limón y el chile serrano son verdes: Son_verde (limón, chile serrano)2 La pitaya es roja y la manzana es roja: roja (pitaya, manzana)3 El limón es verde: Verde (limón)4 El perro ladra: ladra (perro)5 Todos los mamíferos son de sangre caliente: ∀x [ mamíferos (x) => sangre _ caliente(x)]6 Todo satélite terrestre tiene un punto sobre la Tierra: ∀x {satélite_terrestre(x) =>∃y [tiene (x, punto) ^ sobre(y, Tierra)]}La lógica de predicados esta formado por un conjunto de predicados concatenados a travésde las operaciones lógicas:Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Operaciones lógicas: ^ : = AND v : = OR ~ ¬ : = NOT => : = Implicación := Doble implicación ∀ : = Para todo ∃ : = ExisteJerarquía de las operaciones lógicas (orden de mayor a menor) 1. Se ejecutan primero las agrupaciones: ( ) 2. ~ : not 3. ^ : and 4. v : OR 5. => : Implicación (Si ... Entonces ... ) 6. := Doble implicación (... si y solo si ...)Sintaxis en la lógica de Predicados.Aquí se maneja la siguiente simbología. - variables x, y, z - funciones f, g, h - constantes a, b, c -Símbolo de predicado P, Q, R, S, T -Símbolos de apuntación "(", ")", ","Aunado a estos símbolos se utilizan los siguientes conceptos.UNIVERSO: El cual identifica a la totalidad de los valores que puede tomar una variable.TERMINO: Una variable es un termino, x, y, z. Así como f(t) donde f es una función y “t”es una secuencia de uno o mas términos.Ejemplo: f(x), h(y), g( x, y, h(x)), f( h(x, y), y(z, f(z) )FORMULA ATOMATICA: Una formula automática es un predicado p(x), donde P es elnombre del predicado y “x” es un termino.Ejemplo: Es-verde (limón), mamífero (Pedro), mamífero (ballena, delfín, cabra)Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.LITERAL: Los literales son predicados o negaciones de predicados.Ejemplo: mamífero (Pedro) ~ mamífero (vidrio)FORMULAS BIEN FORMADAS (FBF): Una FBF es una secuencias de formulasAtómicas (o predicados) concatenados por medio de operadores lógicos.Ejemplo: P(x) v Q(y) ^ ~R (S) P(x) ^ Q(z) ==> ~R(s) mamífero(perro) => tiene_sangre_caliente(perro)SENTENCE: Las expresiones son FBF donde el alcance de las variables estaperfectamente bien definido mediante cuantificadores o bien UNIVERSALES ó bienEXISTENCIALES.Símbolos: ∀ Para todo(cuantificador Universal) ∃ Existe(Cuantificadores Existencial) ~∃ ≡ ∀ ~∀ ≡ ∃Ejemplo: Todos los hijos tienen un padre y una Madre ∀x [mamífero(x) => tiene_sangre_caliente(x) ] ∀x [hijo(x) => ∃y ( madre(y)^ padre(z)) ]CLAUSULA: Es una disyunción de literales (una cláusula es una disyunción de predicadosy/o predicados negados.Ejemplos. Conjunción: And (^) Disyunción: OR (V) P(x) v Q(y) v~ R(s) R(y) v ~ Q(z)Lógica de predicado de primer orden.La lógica de predicados de primer orden esta formado por un conjunto de predicadosconcatenados por operadores lógicos.Ejemplo: Hermano (x, y ): x es hermano de y. Hijo (x, y ): x es hijo de y.Lógica de Predicado de Orden Superior: Es cuando una variable y una función tomansus valores de un mismo dominio.Ejemplo: Hermano (x, hijo(a, y)): x es tío de a. [Predicado de Segundo Orden] Colega (b, hermano (x, hijo(a, y))): “b” es colega del tío de “a”. [Tercer Orden]Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Sistema: Un sistema en la lógica de predicados de primer orden esta formado por unconjunto EXPRESIONES cada uno de los cuales tiene un valor de verdad (verdadero ofalso).Operaciones relacionadas con la lógica de predicados. La Asociatividad A v (B V C) = (A v B) v C A ^ (B ^ C) = (A ^ B) ^ C La Distributividad A ^ (B v C) = (A^ B) v (A ^ C) A v (B ^ C) = (A v B ) ^ (A v C) Leyes de Morgan. ~ (A v B) = ~ A ^ ~ B ~ (A ^ B) = ~ A v ~B Conmutativa AvB=BvA A^ B = B ^ A Ley de idempotencia A^A=A AvA=A Ley de la no contradicción ~ (A ^ ~ A) = 1 Ley del tercio excluso A v ~ A) = 1 Ley de la identidad A => A = 1 A A=1Definición de la equivalencia mediante la conjunción y la implicación: A B = A=> B ^ B => A Av1=1 A^1=A Av0=A A^0=0 A^~A=0Ley de la eliminación de la doble negación ~ ~ A = AEjemplos:Convertir las siguientes proposiciones a lógica de predicados (FBF). (Sistema que describeparte del mundo Romano).1. Marco fue un hombre: hombre (Marco)2. Marco fue pompeyano: pompeyano (Marco)3. Todos los pompeyanos fueron Romanos: ∀x [Pompeyanos(x) => Romano(x)]4. Cesar fue un rey: Rey (Cesar)5. Todos los Romanos eran leales a Cesar o lo odiaban: ∀x [ Romanos(x) =>leal(x,Cesar) v odiaba(x, Cesar) ]6. Todos son leales a alguien: ∀x [∃y leal(x, y)]; ∀x[ (∃(alguien), leal (x, alguien)) ]7. La gente que trata a los reyes son los no leales: ∀x ∀y [gente (x) ^ Rey (y) ^ trata_de_asesinar (x, y) => ~ leal(x, y) ]8. Marco trata de Asesinar a Cesar: Trata_de_ Asesinar(Marco, Cesar)Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Formas de Skolem1. Eliminar todas las implicaciones.Ejemplo: A=> B se convierten en ~A v B2. Correr las negaciones hasta los predicados correspondientes(Distribuir las negaciones entre los predicados)Ejemplo: ~ ( P(x) ^ Q(y) ) eq ~ P(x) v ~Q(y)3. Distribuir cuantificadores entre los predicados correspondientes.(Corregir cuantificadores o deslizarlos hasta los correspondientes predicados, considerandoel mismo orden)Ejemplo: ∀x ∀y P(x) ^ Q(y) es equivalente a ∀x P(x) ^ ∀y Q(y)4. Eliminar los Cuantificadores Existenciales 4.1 Convirtiéndolos a constantes cuando aparecen sin un cuantificador universal. Ejemplo: ∃x p(x) equivale a p(pato) ∃x Ave(x) equivale a Ave(pato) 4.1 Convirtiéndolos a funciones cuando aparezcan acompañados de un cuantificador universal. Ejemplo: ∀x ∃y P(x, y) equivale a P(x, f(x) ) f:= {(x, y) / y = f(x) }5. Eliminar todos los Cuantificadores Universales.Ejemplo: ∀x ∀y P(x) ^ Q(y) equivale a P(x) ^ Q(y)6. Convertir las conjunciones (ANDS) en disyunciones (ORS).Obteniendo una cláusulapor cada elemento de la conjunción.Ejemplo:1. P(x) ^ Q(y) No concebimos la libertad sin cultura; 1.1 P(x) ni la cultura sin pan; ni el pan sin 1.2 Q(y) trabajo honrado; ni el trabajo honrado2. P(x) ^ ( Q(y) v R(z) ) sin respeto a la dignidad del hombre; 2.1 P(x) ni el respeto a la dignidad del hombre 2.2 Q(y) v R(z) sin amor a Dios.3. P(x) ^ ( Q(y) ^ R(z) ) 3.1 P(x) 3.2 Q(y) 3.3 R(z)Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.2.3. InferenciaLa inferencia en la lógica formal es el proceso de generar nuevas formulas bien formadas(FBF) a partir de FBF existentes, mediante la aplicación de las reglas de inferenciasReglas para la extracción de conocimiento de sistemas en lógica de predicados.1. Modus Ponens la cual dice que si:A => B es verdadero y A es verdadero => B es verdadero2. Modus Tolen. La cual dice que si:A => B es verdadero y ~ B es verdadero => ~ A es verdadero.3. La Regla de Resolución dice que si:a1 v a2 es verdadero y ~ a2 v a3 es verdadero => a1 v a3 es verdaderoNota: A => B es equivalente ~A V Ba) Reglas de ProducciónUn sistema de producción proporciona una estructura que facilita la descripción y la ejecución deun proceso de búsqueda. Un sistema de producción consiste de: • Un conjunto de facilidades para la definición de reglas. • Mecanismos para acceder a una o más bases de conocimientos y datos. • Una estrategia de control que especifica el orden en el que las reglas son procesadas, y la forma de resolver los conflictos que pueden aparecer cuando varias reglas coinciden simultáneamente. • Un mecanismo que se encarga de ir aplicando las reglas.Dentro de esta definición general de sistema de producción, se incluyen: • Lenguajes básicos para sistemas de producción (LISP, CLIPS, PROLOG). También se los conoce como lenguajes de Inteligencia Artificial. • Sistemas híbridos y sistemas vacíos (shells) para producción de sistemas basados en conocimientos (VP-Expert, Expert Teach, Personal Consultant, Intelligence Compiler, EXSYS). • Arquitecturas generales para resolución de problemas (máquinas LISP, máquinas PROLOG).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Características de los Sistemas de ProducciónUn sistema de producción, al igual que los problemas, puede ser descrito por un conjunto decaracterísticas que permiten visualizar la mejor forma en que puede ser implementado.Un sistema de producción se dice que es monotónico si la aplicación de un regla nunca evita quemás tarde se pueda aplicar otra regla que también pudo ser aplicada al momento en que la primerafue seleccionada.Un sistema de producción es parcialmente conmutativo si existe un conjunto de reglas que alaplicarse en una secuencia particular transforma un estado A en otro B, y si con la aplicación decualquier permutación posible de dichas reglas se puede lograr el mismo resultado.Un sistema de producción es conmutativo, si es monotónico y parcialmente conmutativo.SISTEMA DE PRODUCCIÓN MONOTÓNICO NO-MONOTÓNICOPARCIALMENTE CONMUTATIVO Demostración de Teoremas Navegación RobóticaPARCIALMENTE NO CONMUTATIVO Síntesis Química Juego de AjedrezLa parte condicional de una regla de producción llamado Lado Izquierdo (LI), consiste enuna serie de elementos que describen las condiciones que deben ser verdaderas para que laregla sea aplicable. La parte de la acción de la regla llamada Lado Derecha (LD), describelas acciones que se van a llevar a cabo cuando se dispara la regla (ejecución).Ejemplo: Desarrolle una regla de producción que represente: 1) “Al aplicar el freno el automóvil de Juan se detiene”. (p accionar _ freno (Automóvil de Juan ^ freno aplicado) (modificar ^ movimiento interrumpido))Esta producción llamada accionar _ freno, indica que si el valor del atributo “freno” para elelemento de memoria automóvil de Juan viene a ser igual al valor aplicado, entonces elvalor del atributo”movimiento” debe modificarse al valor de “interrumpido”.Utilizando ReglasUna regla es una representación del tipoIf condición 1:condición nTHEN conclusion 1:conclusión nEjemplo.If esta lloviendo then saco mi paraguas.If tengo hambre then como alimentos.If tengo examen then debo estudiar OR Sentarme al lado de alguien.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Regla = ProducciónSistemas Basados en Reglas eq Sistemas de Producción.Ejemplo:Sistemas Deductivo basados en Reglas: • Para identificar animales de un zoológico:R1: If x tiene pelo THEN x es mamífero.R2: If x da leche THEN x es mamífero.R3: If x tiene plumas THEN x es ave.R4: If x vuela AND x pone huevos THEN x es ave.R5: If x es mamífero AND x come carne THEN x es carnívoroR6: If x es mamífero AND x tiene dientes agudos AND x tiene garras AND x tiene ojos que miran hacia adelante THEN x es carnívoro.R7: If x es mamífero AND x tiene cascos (pesuñas) THEN x es un ungulado.R8: If x es mamífero AND x mastica (rumia) hierba THEN x es un ungulado AND tiene dedos. • Reglas para identificar animales carnívoros:R9: If x es carnívoro AND x tiene color aleonado AND x tienemanchas obscuras THEN x es chita (cheetan).R10: If x es carnívoro AND x tiene color aleonado AND x tiene rayasnegras THEN x es un tigre. • Reglas para identificar ungulados:R11: If x es ungulado AND x tiene patas largas AND x tiene cuello largo AND x tiene coloraleonado AND x tiene manchas obscuras THEN x es una jirafa.Ahora supongamos que el encargado del zoológico conoce que:1. Un animal tiene color aleonado y manchas obscuras. De acuerdo a estos datos las Reglas9 y 11 son candidatas a dispararse, haciéndole hasta cumplir la totalidad de condiciones.2. El animal puede amamantar y rumia hierbas, con la cual la Regla 2 se disparaproduciéndose ahora que x es un mamífero, lo cual a su vez ocasiona que se dispare la regla8 produciendo (o conociéndose ahora) que x es un ungulado y tiene dedos.3. X tiene patas largas y cuello largo. Lo cual hace que se dispare la regla 11, con la cual el sistema de producción concluye que x es una jirafa.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Problema:Usted esta iniciando una noche tranquila cuando un viejo amigo le llama y le dice que vienea cenar. Peor lo cual usted inmediatamente comienza a hacer los preparativoscorrespondientes y usted posee un Sistema Experto para seleccionar las bebidas. Las Reglasque identifican a su Experto en bebidas son las siguientes:B1: If un vino caro es el indicado AND es Año Nuevo THEN el vino es lo indicado.B2: If un vino caro es el indicado AND el plato principal es Carne Roja(Steak) THEN seleccionarChateau Earl of Bartoville Red.B3: If un vino barato es el indicado AND plato principal es Pollo AND el invitado no es bien vistoTHEN seleccione Honest Henrys Apple Wine.B4: If un vino barato es el indicado AND plato principal desconocido THEN seleccionar Toe LokesRoses.B5: If cerveza es lo indicado AND el plato principal es Mexicano THEN seleccionar xx.B6: If cerveza es lo indicado THEN seleccionar Tecate.B7: If el invitado es escrupuloso con los alimentos THEN seleccionar Glop.B8: If el invitado es escrupuloso AND no se sirven zanahorias THEN seleccionar Jugo deZanahoria.B9: If vino es lo indicado AND la visita debe ser impresionada THEN un vino caro es lo indicado.B10: If un vino es lo indicado THEN un vino barato es lo indicado.B11: If el invitado es sofisticado THEN vino es lo indicado.B12: If el plato principal es mexicano THEN cerveza es lo indicado.B13: If el invitado es indeseable AND el plato principal es comprado a la Abastecedora elBuen Morir THEN cerveza es lo indicado.B14: If el Plato principal no importa es cualquier cosa THEN seleccione agua.Asumiendo que se dan los siguientes hechos como sabidos:1. El plato principal es comprado a la Abastecedora el Buen Morir.2. El plato principal es Mejicano.3. El invitado es indeseable (no bien visto)4. Es Año Nuevo.6. El plato principal es Pollo.Mostrar la secuencia en que las Reglas son usadas y diga cuando son disparadas.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Respuesta:Con el dato 4 se dispara regla 1.7. El vino es lo indicado.Con el dato 7 se dispara regla 10.8. Un vino barato es lo indicado.Con el dato 3,6,8 se dispara regla 3.9. Seleccionar Honest HenrysCon el dato 2 se dispara regla 12.10. Cerveza es lo indicado.Con el dato 10, 2 se dispara regla 5.11. Seleccionar xxCon el dato 10 se dispara regla 6.12. Seleccionar TecateCon el dato 1, 3 se dispara regla 13.13.Cerveza es lo indicadoCláusulas de HornLas cláusulas de Horn trabaja con el Modus Ponens, tomando como verdadero elconsecuente cuando se tiene como verdadero el antecedente. A =>B, Si A es verdadero,entonces B es verdadero.Forma Canónica: La Forma Canónica de Modus Ponens determina que cada oración de labase de conocimientos sea una oración atómica o una implicación con una conjunción deoraciones atómicas en el lado izquierdo y un solo átomo a la derecha.Al tipo de oraciones que cumplen con la forma Canónica del Modus Ponens se lesdenomina oraciones de Horn; a la base de conocimientos formadas exclusivamente pororaciones de Horn se dice que está en “Forma normal de Horn”.Ejemplo:1) Proyectil (x) Posee (y, x ) Proyectil (x ) ^ Posee (y, x ) => Vende (z, y, x ) Aplicando Modus Ponens se concluye: Vende (z, y, x)2) Mamífero (x) Tiene_pelo (x) Es _ cuadrúpedo (x) Tiene _ rayas (x) Tigre (x) Mamífero (x) ^ Tiene_pelo (x) ^ Es _ cuadrúpedo (x) ^ Tiene _ rayas (x) => Tigre (x) Aplicando Modus Ponens se concluye: Tigre (x)Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ejercicios:Las expresiones ¿Cómo llegaste? ¿Qué estudias? ¿Habla usted inglés? No sonproposiciones, pues de su significado no se puede decir si es falso o verdadero. Las órdenesque se dan a otra persona tampoco son proposiciones. ¿Cuáles de las expresiones siguientesson proposiciones? De las que no son diga por qué. 1. Todas las naranjas son amarillas 2. Un rectángulo es una figura verde 3. Medellín es la ciudad de la eterna primavera 4. Hay triángulos que son rectángulos 5. Algunas manzanas son rojas 6. El frío es una ciencia 7. La filosofía es cuadrada 8. El universo es suave 9. El sol saldrá mañana 10. El banano es una fruta que ríe 11. Todos los triángulos son isósceles 12. Tómese la medicina 13. ¿Cuáles son proposiciones? 14. El reconocimiento del pasado es separable del reconocimiento del futuro. 15. El reconocimiento del futuro es separable del reconocimiento del pasado 16. El conocimiento del pasado es posible 17. El conocimiento del futuro es posible 18. Nada triunfa como el éxito 19. Nada fracasa al final como el éxito.Escribir en lógica proposicional: • El gato es azul y come queso verde • Permaneceré en casa si llueve • Mañana es Martes o es Miércoles • El ser número par implica ser entero • Si es un número par, entonces también es entero • Es número par sólo si es entero • Es número entero, si es par • Es entero siempre que sea par • El ser número par es condición suficiente para ser entero • Ser número entero es condición necesaria para ser par • Si el cuadrilátero ABCD es un cuadrado entonces sus lados son iguales. • La aceleración de un cuerpo es proporcional al producto de su masa por la fuerza ejercida sobre él. • Juan es alto. • Juan es tío de María. • Todos los majadistanenses son de Majadistán. Rudistein es Majadistanense. En consecuencia, Rudistein es de Majadistan.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. • Los cantantes no duermen. • Comer mucho, engorda • Las montañas cantan bonito • Los mosquitos viven menos de un año • El hombre desciende del elefante. • El coronel no tienen quien le escriba. • La jubilación del Coronel Buendía es insuficiente para su familia. • El tejo es un deporte. • El Sol es una estrella. • El amor es un sentimiento sublime. • La lógica es ciencia o disciplina. • Todo está en movimiento. • Toda x que es estática implica que no está en movimiento. • Todos los deportes son saludables. • Todo trabajo debe ser pagado. • Si las elecciones son limpias entonces no son fraudulentas. • Todos los animales tienen un cerebro. • Si dos terminales están conectadas, entonces tienen la misma señal. o ∀x ∀y CONECTADO(x,y) ⇒ ( SEÑAL(x) = SEÑAL(y) ) • La expresión CONECTADO es conmutativa. o ∀x∀y CONECTADO(x,y) ⇒ CONECTADO(y,x). • Es delincuente aquella persona quien vende armas a naciones enemigas o ∀x∀y∀z PERSONA (x) ∧ARMA(y) ∧ NACION(z) ∧ ENEMIGO(z) ∧ VENDE(X,Y,Z) ⇒ DELINCUENTE(x) • Todas las personas aman a alguien. o ∀x, ∃y AMAR(x, y) • Si algo vale la pena entonces no puede obtenerse fácilmente. ∀x ValerLaPena(x) ⇒ ¬PoderObtenerseFacilmente(x) • Todos los caballos de carreras son de pura raza ∀x CaballoCarreras(x) ⇒ PuraRaza(x) • Para ser admitidos tienen que ser socios. o ∀x Admitido(x) ⇒ Socio(x) • A algunas mujeres no les gusta el fútbol. o ∃x Mujer(x) ∧ ¬Gustar(x, futbol) //futbol es una constante • Todos quieren ver el mundial de fútbol. o ∀x QuererVer(x, MundialFutbol) • Algunos temas musicales están pasados de moda o suenan mal o ∃x TemaMusical(x) ∧ ( PasadosDeModa(x)∨ SuenaMal(x) ) • Cualquier mono es un animal peludo. • Todo elefante que no sea miedoso o es un mono o es un ratón. • Todos los seres vivos son mortales, Todos los humanos son seres vivos; luego Todos los humanos son mortales. • Todas las personas educadas son atentas. Algunos funcionarios no son atentos, luego Algunos funcionarios no son personas educadas.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. • Todos los ácidos son corrosivos. Todos los ácidos tienen hidrógeno; luego Algo que tenga hidrógeno es corrosivo. • Ningún gas tiene volumen constante. Todos los gases son cuerpos; luego Algunos cuerpos no tienen volumen constante. • Todos los atletas cuidan su salud. Nadie que cuida su salud es vicioso; luego Nadie que sea vicioso es atleta. • Algunas plantas tienen flores. • Un hijo de Príamo mató a un hijo de Peleo. • Un aqueo mató a todos los hijos de Príamo • Algunos sobrevivientes de la guerra amaron a Elena • Todos los hijos de Héctor murieron a manos de algún aqueo. • Ningún personaje de la Iliada mató a Eneas. • Elena amó a uno de los hijos de Príamo. • Si alguien vive es por que no lo ha matado algo. • Cualquiera que conoce algo acerca de la lógica le gusta la lógica. • Ningún dragón que vive en un zoológico sería feliz. • Cualquier animal que conoce a gente agradable es feliz. • Las personas que visitan zoológicos son agradables. • Los animales que viven en zoológicos conocen a gente que visita zoológicos. • Colombia pertenece a América. • Bolívar libertó a Colombia. • El agua es un mineral. • La palabra “esdrújula” es esdrújula. • La Tierra es redonda. • Venus es uno de los planetas del sistema solar. • Entrarás sólo si has llegado a tiempo. • A no ser que consigas un aprobado en alguna asignatura, te echarán de la facultad. • Sólo lograrás que lo declaren culpable si aparece un testigo que refrende tu versión de los hechos. • Cuando apruebas todas las asignaturas te dan el título. • Cuando empieza a amanecer el gallo canta. • Juan vendrá única y exclusivamente si María se lo pide. • Vienes o te quedas • Antonio viaja en avión o en carro. • María será doctora en filosofía si y solo si defiende con éxito su tesis doctoral. • Ni contigo ni sin ti tienen mis males remedio • No es cierto que quiera y no puedaFormalice en lógica de predicados y analice si la conclusión corresponde a la hipótesis.• Si tengo tiempo, estudiaré y trabajaré. Tengo tiempo o tengo ánimo para emprender nuevas actividades. No tengo tiempo. Entonces trabajaré.• Si las lluvias aumentan, el caudal de los ríos crece. Si el caudal de los ríos crece, hay que construir represas que controlen el flujo del agua. No es verdad que no se construyanUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. tales represas o que haya escasez de pozos. Por lo tanto, las lluvias aumentan o hay escasez de pozos.• Si me gusta el arte, voy a la exposición de pintura o a ver danza moderna. Si estoy enfermo o no me gusta el arte, entonces me queda en casa. No me quedo en casa. En consecuencia, si no voy a la exposición de pintura, voy a ver danza moderna.• Si Alberto estudia medicina, Fernando le dará ayuda económica. Si la situación económica permanece estable, Alberto estudia medicina y Ricardo estudia computación. Si Fernando da ayuda económica a Alberto, Martha se disgustará con Fernando. Entonces, si Ricardo no estudia computación, Martha se disgustará con Fernando.• Mis amigos son sinceros o algunos disimulan. Pero si son honestos no deben disimular lo que sienten. Así, si mis amigos son sinceros, deben ser honestos.• Si armando tiró un árbol, lo vio la policía. Armando deberá pagar una multa si lo vio la policía. Como él está en la delegación, no deberá pagar una multa. Entonces tiró un árbol y está detenido en la delegación.• Si voy a la fiesta, no termino de estudiar. Si es viernes, no voy al cine. Si es viernes y no termino de estudiar, entonces voy a la fiesta. En consecuencia, voy al cine.• Los fenómenos atmosféricos se originan si los electrones chocan entre sí. Al pasar esto último, las cargas eléctricas se polarizan o se producen grandes tensiones electromagnéticas. Si se producen grandes tensiones electromagnéticas, se producen campos magnéticos que entran en choque. Los campos magnéticos entran en choque y se producen rayos. Por tanto, si los electrones chocan entre sí, entonces se producen rayos.• Isabel opinaba que el Dr. Juárez era demasiado viejo para casarse. Si la conducta de Isabel fuera siempre coherente con sus opiniones y si opinaba que el Dr. Juárez era demasiado viejo para casarse, entonces no se casaría con él. Pero Isabel se casó con el Dr. Juárez. Así, la conducta de Isabel no es siempre coherente con sus opiniones.• Pedro y Jaime son de la misma edad o Pedro es mayor que Jaime. Si Pedro y Jaime son de la misma edad, entonces Elena y Pedro no tienen la misma edad. Si Pedro es mayor que Jaime, entonces Pedro es mayor que Marcela. Así que o Elena y Pedro no son de la misma edad o Pedro es mayor que Marcela.• La inmortalidad existe si y sólo si el espíritu existe. Si lo que vemos es real, la sabiduría no es tan difícil de obtener El espíritu existe o la sabiduría no es tan difícil de obtener. Por tanto, si lo que vemos es real, la inmortalidad existe.Rescriba los siguientes fragmentos de “Cien años de Soledad” del escritor Gabriel GarcíaMárquez, como expresiones de lógica de predicados: • “Muchos años después, frente al pelotón de fusilamiento, el Coronel Aureliano Buendía había de recordar aquella tarde remota en que su padre lo llevó a conocer el hielo. ...” . MUCHOSAÑOSDESPUES( FUSILAR(PELOTONFUSILAMIENTO, CAB)∧ RECORDAR(CAB, TARDEREMOTA) ∧ LLEVAR(padre(CAB), CAB, CONOCER(CAB, HIELO)) )Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. • “...Cuando el pelotón lo apuntó, la rabia se había materializado en una sustancia viscosa y amarga que le adormeció la lengua y lo obligó a cerrar los ojos. Entonces desapareció el resplandor de aluminio del amanecer, y volvió a verse a si mismo, muy niño, con pantalones cortos y un lazo en el cuello, y vio a su padre en una tarde espléndida conduciéndolo al interior de la carpa, y vio el hielo. Cuando oyó el grito, creyó que era la orden final al pelotón...”. Apuntar(Pelotón, CAB) ⇒ ( (Materializar(CAB, Rabia, SustanciaViscosaAmarga) ⇒ (Adormecer(CAB, Lengua) ∧ Cerrar(CAB, Ojos) ) ∧ Desaparecer(Resplandor(aluminio), Amanecer) ∧ Ver(CAB, Niño(PantalónCorto, LazoCuello) ∧ Ver (CAB, Padre(CAB) ) ∧ TardeEspléndida ∧ Conducir(Padre(CAB, InteriorCarpa) ∧ Ver(CAB, Hielo) ) ) ∧ Oir(CAB, Grito) ∧ Creer(CAB, OrdenFinal(Pelotón) ) • “...Entonces fue al castaño, pensando en el circo, y mientras orinaba trató de seguir pensando en el circo, pero ya no encontró el recuerdo. Metió la cabeza entre los hombros, como un pollito, y se quedó inmóvil con la frente apoyada en el tronco del castaño. La familia no se enteró hasta el día siguiente, a las once de la mañana, cuando Santa Sofía de la Piedad fue a tirar la basura en el traspatio y le llamó la atención que estuvieran bajando los gallinazos.”. Ir(CAB, Castaño) ∧ Pensar(CAB, Circo) ∧ Orinar(CAB) ∧TratarPensar(CAB, Circo) ∧ Pensar(CAB, Circo) ∧ ¬Encontrar(Recuerdo) ∧ Meter(CAB, Cabeza, hombros) ∧ Parecer(CAB, Pollit o) ∧ Inmovil(CAB) ∧ Apoya(CAB, Frente, Tronco(Castaño) ) ) ∧ Εnterar(Familia, DiazSiguiente, 11AM) ∧ Tirar(SantaSofía, Basura, Traspatio) ∧ LLamarAtenciónl(SantaSofía, Gallinazos)Con las siguientes diez expresiones, del dominio de la obra de “Don Quijote de laMancha”, en lógica de predicados. Escriba una expresión en Español.: 1. ∃x ∃y (Escudero(x, y) ∧ ¬∃z Amigo(z, x) ) 2. ¬∀x (∃y Escudero(x, y) ⇒ Joven(x) ) 3. ∃x ¬( Caballero(x) ⇒ Joven(x) ) 4. ¬∃x ( Caballero(x) ∧ Joven(x) ) 5. ∃x ¬( Caballero(x) ⇒ ¬Joven(x) ) 6. ∃x ∃y (Escudero(x, y) ∧ ∀z ¬Amigo(z, x) ) 7. ∃x ∃y ¬(Escudero(x, y) ⇒ Joven(x) ) 8. ¬∀x ( Caballero(x) ⇒ Joven(x) ) 9. ∀x ¬( Caballero(x) ∧ Joven(x) ) 10. ¬∀x ( Caballero(x) ⇒ ¬Joven(x) )Represente en Lógica de Predicado: • La tubería A alimenta el depósito B. Cuando una tubería alimenta un depósito, la derivada del nivel de éste es proporcional al caudal de aquella. Luego, la derivada del nivel de B es proporcional al caudal de A.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Conteste la pregunta efectuada a. Eduardo pudo haber visto al asesino. b. Antonio fue el primer testigo de la defensa c. Eduardo estaba en clase o Antonio dio testimonio falso. d. ¿Nadie en clase pudo haber visto al asesino?Conteste las dos preguntas efectuadas Todos los que ayudan a Juan viven en casa de Manuel Antonio ayuda a todos los que trabajan con èl Juan trabaja con todos los amigos de carlos Antonio es amigo de Carlos ¿Antonio vive en casa de Manuel ¿Juan trabaja con Antonio? • Si x es la madre de y, y si z es la hermana de x, entonces z es la tía de y. Supongamos ahora que la madre de Braulio es Juana, y que Lola es hermana de Juana. Demostrar que Lola es tía de Braulio.Realizar la comprobación lógica de los siguientes razonamientos.• Si los Piratas son terceros, entonces si los Apaches son segundos los Bravos serán quintos. O los Gigantes no serán primeros o los Piratas serán terceros. En efecto, los apaches serán segundos. Por lo tanto, si los Gigantes son primeros, entonces los Bravos serán quintos.• la Lógica es difícil o no le gusta a muchos estudiantes. Si la matemática es fácil, entonces la lógica no es difícil. Por tanto, si a muchos estudiantes les gusta la lógica, la matemática es fácil.• Si Antonio no es primero, entonces Pedro es primero. Pero Pedro no es primero. O Antonio es primero o pablo es tercero. Si Jaime es segundo, entonces Pablo no es tercero. Por tanto, jaime no es segndo.• Fue X o Y quien cometió el crimen. X estaba fuera del pueblo cuando el crimen fue cometido. Si X estaba fuera del pueblo, no pudo haber estado en la escena del crimen. Si X no estaba en la escena del crimen, no lo pudo haber cometido.Represente en Lógica de Predicado1 Susie es una compañera de escuela de Calvin y lo considera un niño raro. El la molesta mucho y en invierno le lanza bolas de nieve. A Susie le gusta jugar a las casitas con Calvin, Hobbes y Mr Burn, su coneja de trapo. A Calvin no le gustan las niñas pero juega con Susie, entonces Calvin siente atracción por Susie o la odia. • niña(SUSIE) ∧ compañera(SUSIE, CALVIN) ∧ pensar(SUSIE, CALVIN, raro) • molestar(CALVIN, SUSIE) ∧ lanzar(CALVIN, BN, SUSIE) ∧ NIEVE(BN) ∧ haber(NIEVE, INVIERNO) • Conejo(Mr Burn) ∧ jugar(SUSIE, CASITAS) ∧ jugar(SUSIE, CALVIN) ∧ jugar(SUSIE, HOBBES) ∧ jugar(SUSIE, Mr Burn)Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. • ∀x[niñas(x) ∧ ¬gustar(CALVIN,x) ∧ jugar(CALVIN,SUSIE)] ⇒ atraer(SUSIE, CALVIN) • ∀x[niñas(x) ∧ ¬gustar(CALVIN,x) ∧ jugar(CALVIN,SUSIE)] ⇒ odiar(SUSIE, CALVIN) • ¬niñas(A) ∨ gustar(CALVIN,A) ∨ ¬ jugar(CALVIN,SUSIE) ∨ atraer(SUSIE, CALVIN) • ¬niñas(A) ∨ gustar(CALVIN,A) ∨ ¬ jugar(CALVIN,SUSIE) ∨ odiar(SUSIE, CALVIN) • atraer(SUSIE, CALVIN) : ⎯ niñas(A), ¬gustar(CALVIN,A), jugar(CALVIN,SUSIE), atraer(SUSIE, CALVIN) • odiar(SUSIE, CALVIN) : ⎯ niñas(A), ¬gustar(CALVIN,A), jugar(CALVIN,SUSIE), atraer(SUSIE, CALVIN)1 Cuando los niños causan problemas en la escuela son enviados por su profesora donde el rector • ∀x ∀y niño(x) ∧ profesora(y,x) ∧ causar(x,problemas,escuela) ⇒ enviar(y,x,director) • ¬niño(x) ∨ ¬profesora(y,x) ∨ ¬causar(x,problemas,escuela) ∨ enviar(y,x,director) • [niño(x) ∧ profesora(y,x) ∧ causar(x,problemas,escuela)] ⇒ enviar(y,x,director) • enviar(Y,X,director) : ⎯ niño(X), profesora(Y,X), causar(X,problemas,escuela).2 Todo niño que tiene un amigo que no está vivo significa que ese amigo es imaginario • ∀x ∀y niño(x) ∧ ¬vivo(y) ∧ amigo(x,y) ⇒ imaginario(y)3 Calvin es un niño que juega con un tigre llamado Hobbes; para él su tigre es un compañero insustituible; • Niño(CALVIN) ∧ tigre(HOBBES) ∧ pertenecer(HOBBES,CALVIN) ∧ jugar(CALVIN,HOBBES) ∧ compañero(HOBBES,CALVIN)4 Existen niños que son mas grandes que otros y se aprovechan de los mas pequeños • ∃x ∃y niño(x) ∧ niño(y) ∧ msg(y,x) ⇒ aprovechar(y,x)5 Todos los niños que creen en monstruos y se los imaginan, les tienen miedo. • ∀x ∀y niño(x) ∧ monstruo(y) ∧ creer(x,y) ∧ imaginar (x,y) ⇒ tenermiedo(x,y)6 Todo niño que es travieso es castigado por sus padres • ∀x ∀y ∀z niño(x) ∧ travieso(x) ∧ padres(y,x) ⇒ castigar(y,x)7 Si un niño es travieso y su madre es estricta, lo castiga. • ∀x ∀y niño(x) ∧ travieso(x) ∧ mama(y) ∧ estricto(y) ⇒ castigar(y,x)8 Los niños que no les gusta la escuela y no hacen las tareas son desaplicados • ∀x niño(x) ∧ ¬hacer(x,tareas) ∧ ¬gustar(x,escuela) ⇒ desaplicado(x)Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Responda la preguntaAnoche, una banda de ladrones robó una joyería y el botín se lo llevaron en un coche.Arresté a tres sospechosos: Makinavaja, Popeye y el Pirata y después del interrogatoriosupe que: Nadie aparte de estos tres estuvo involucrado en el robo, Popeye confesó que nunca trabaja sin la ayuda de Maki Y el Pirata me dijo que no sabía conducir. Premisas conocidas: • Nadie aparte de Maki, Popeye y el Pirata estuvo No tengo involucrado en el robo. claro • Popeye nunca trabaja sin la ayuda de Maki. quien es el culpable. • El Pirata no sabe conducir. RESPUESTA = Fue Maki Déjalos correr por que “más vale que se escapen mil ladrones a correr detrás de uno.”Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.TERCERA UNIDADRESOLUCION DE PROBLEMAS3.1 Bases de conocimiento.3.2 Elementos en la solución de problemas.3.3 Métodos de búsqueda (Ciegas – Heurística )INTRODUCCIÓN.Para construir un sistema básico de inteligencia artificial capaz de resolver un problemaespecífico, es necesario realizar las siguientes acciones: • Definir de una forma precisa el problema, incluyendo especificaciones de las condiciones iniciales y de las situaciones finales que pueden considerarse como soluciones aceptables al problema. • Analizar el problema. Puede darse el caso de que unos muy pocos rasgos importantes puedan tener un gran impacto en la identificación de la técnica más apropiada para resolver el problema. • Identificar y representar el conocimiento que es necesario para resolver el problema. • Escoger la mejor técnica y aplicarla para la resolución del problema.Las bases datos (DB: Data Base / Database) son anteriores en el tiempo a las bases deconocimiento. Nacieron en la temprana época de los ordenadores digitales, a mediados dela década de los 50 y fueron una de las principales herramientas que éstos ofrecían.Surgieron como extensiones de programas Fortran que permitían acceso compartido a losdatos. A finales de esta década se desarrollaron métodos de acceso soportados por elsistema operativo (acceso directo y secuencial) y maduraron con los sistemas operativos desegunda y tercera generación (principios de los 60). En esta época se desarrollaron las basesde datos estructuradas jerárquicamente y algo después las bases de datos de red. En estatemprana época no había distinción entre bases de datos e IA. A finales de los 60, TedCodd, investigador de IBM, desarrolló un lenguaje de programación de propósito generalque denominó "programación relacional", basado en la teoría de conjuntos y la lógica y quecontenía el germen de lo que había de ser el más extendido de los sistemas de bases dedatos hasta la fecha, las bases de datos relacionales.El objetivo primero de una base de datos es, como su nombre indica, almacenar grandescantidades de datos organizados siguiendo un determinado esquema o "modelo de datos"que facilite su almacenamiento, recuperación y modificación.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Por su parte, las bases de conocimiento (KB: Knowledge Base) pertenecen a una etapa muyposterior. Surgieron a partir de la investigación en Inteligencia Artificial como respuesta alas necesidades que las aplicaciones de esta disciplina planteaban. Más adelante haremos unmuestreo de las aportaciones que la IA ha hecho al estudio del lenguaje natural.Las bases de conocimiento son la evolución lógica de los sistemas de bases de datostradicionales, en un intento de plasmar no ya cantidades ingentes de datos, sino elementosde conocimiento (normalmente en forma de hechos y reglas) así como la manera en queéste ha de ser utilizado. También se les trata de dotar de conocimiento sobre sí mismas, esdecir, una KB ha de "saber lo que sabe". Por ejemplo, ante una pregunta del tipo "¿Tienentodos los empleados de Microsoft un CI de más de 100?", una base de datos tras consultarla información relacionada con la altura de los empleados de esta empresa, daría unarespuesta afirmativa o negativa, independientemente de que tenga o no la informacióncorrespondiente a estos trabajadores; en cambio, una KB respondería "sí", "no" o "no losé", en el caso de que le faltase información relativa a la altura sobre alguno de losempleados o de que no tuviese información sobre "todos" los empleados.Ambos sistemas de información cuentan con sus correspondientes gestores para simplificaral administrador las tareas comunes de mantenimiento: el sistema gestor de bases de datos(DBMS: Database Management System) y el sistema gestor de bases de conocimiento(KBMS: Knowledge Base Management System). También encontramos diferenciassustanciales en este aspecto. Básicamente los DBMSs actuales se encuentran perfectamenteestandarizados, ofreciendo un número de características y metodologías comunes queposibilitan la comunicación entre diversos tipos y productos comerciales. Lacomercialización de los KBMSs es prácticamente anecdótica, y por supuesto no existeningún estándar.La característica común a todos los sistemas basados en el conocimiento hasta hace muypoco tiempo es que han sido sistemas autónomos, es decir, que no permiten la utilizaciónde la información contenida en ellos por parte de aplicaciones externas. Por el contrario, lasbases de datos, sí cuentan con los mecanismos de conexión necesarios para poder ofrecer suinformación a muy distintos tipos de lenguajes de programación. En general, adelantamosque nuestra elección son los sistemas de bases de datos para el almacenamiento deinformación exclusivamente léxica, porque garantizan a priori la reutilización de lainformación almacenada. Por ejemplo, si decidimos guardar nuestra información léxica enun sistema de conocimiento, estaremos "atados" a este sistema, y si más adelanteobservamos que nuestras necesidades van más allá de lo que en principio habíamosprevisto, puede darse el caso de que el sistema de KB no sea lo suficientemente potentepara dar respuesta a estas necesidades, y puede ocurrir que tengamos que volver aintroducir toda la información de nuevo. Por lo general, esta situación es evitable en elentorno de las bases de datos.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.3.1 BASES DE CONOCIMIENTO 1. ConceptoUna base de conocimiento (KB: Knowledge Base) es la representación de conocimientorelacionado a un tema especifico, dicho conocimiento se plasma en forma de hechos yreglas.En las bases de conocimiento encontramos: una colección de hechos y reglas mediante loscuales el sistema es capaz de extraer conocimiento que no está almacenado de formaexplícita. Por tanto, para la IA, una estructura de datos que no contenga más que "hechos"no es considerada como conocimiento, sino tan sólo como una fuente potencial deinformación.Un Sistema de Representación de Conocimiento para un universo U consiste en:1. Una colección E de etiquetas que pueden representar individuos en U; estas etiquetas se dividen en constantes y variables.2. Una colección F de funciones.3. Una colección R de relaciones.4. Un lenguaje L consistente en reglas para combinar las funciones, relaciones y etiquetas en expresiones bien formadas de L.5. Una semántica S que provee de significado a las etiquetas, funciones y relaciones.Teniendo en cuenta la definición anterior, podemos deducir los problemas más importantes que larepresentación de conocimiento presenta: • La necesidad de un conocimiento profundo de nuestro propio conocimiento. Es evidente que no poseemos una comprensión lo suficientemente detallada de muchas materias. Entre ellas está la que a nosotros nos concierne, el lenguaje natural. Cuanto más amplio sea nuestro conocimiento de éste, más fácil nos será recrear sus mecanismos artificialmente. En especial deberíamos conocer con exactitud tres puntos cruciales: o ¿Cuáles son los individuos que constituyen el universo? o ¿Que propiedades poseen? o ¿Qué relaciones existen entre ellos? • El desarrollo de una notación precisa. Aun suponiendo que poseamos un conocimiento lo suficientemente detallado de la materia que pretendemos representar, resulta crucial el disponer de una notación lo suficientemente precisa como para poder plasmar ese conocimiento de forma que pueda ser usado de forma inteligente por un cerebro electrónico.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Podríamos estipular que, en general, el conocimiento identifica información sobreconceptos generales, mientras que los datos conforman información sobre entidadesespecíficas. Así, la aserción "Arturo Rodríguez mide 1,73m" es un dato mientras que "lamedia de altura de los españoles es 1,70m" es conocimiento.El conocimiento desde el punto de vista de las bases de datos: la posición generalmentecompartida por el entorno de las bases de datos es que un elemento de conocimiento tieneque ver con un Universo de Discurso (UoD: Universe of Discourse), que puede ser real,mental, social, o de cualquier otro tipo. Los datos, pues, son considerados comoaseveraciones sobre un determinado estado de cosas en un determinado UoD.A estas aseveraciones se las denomina hechos. "Juan ama a María" es un hecho perceptibleu observable dentro de un determinado UoD y puede ser representado por una estructura dedatos. Para alcanzar el dominio del conocimiento es necesario subir a un nivel deabstracción superior, en el que podemos hablar de las propiedades de los hechos y de lasrelaciones entre hechos individuales y entre hechos y el UoD, así como de las alteracionesde los hechos y las repercusiones de estas alteraciones sobre el UoD. Por ejemplo,aseveraciones como "todos los hombres casados tienen una esposa y sólo una", o "paracada humano x, y, z, se cumple que, si x es el padre de y, y y es el padre de z, entonces x esel abuelo de z".Este tipo de conocimiento, llamado por algunos investigadores metadatos, pues de hechoson datos que "hablan" sobre datos, no es, típicamente, el dominio de las bases de datos.Esta visión se puede resumir de la siguiente manera:(...) databases represent sets of definite atomic statements (facts) and knowledge basesmay, in addition, represent sets of general statements and conditional statements (rules).En las bases de conocimiento: una colección de hechos y reglas mediante los cuales elsistema es capaz de extraer conocimiento que no está almacenado de forma explícita. Portanto, para la IA, una estructura de datos que no contenga más que "hechos" no esconsiderada como conocimiento, sino tan sólo como una fuente potencial de información.La IA, por tanto, pone el énfasis en el comportamiento computacional, es decir el uso de losdatos por parte de los procedimientos.Podríamos estipular que, en general, el conocimiento identifica información sobreconceptos generales, mientras que los datos conforman información sobre entidadesespecíficas. En este sentido, los datos reflejan el estado de cosas de un determinado UoD enun momento determinado, y por tanto son altamente susceptibles de modificaciones. Encambio, el conocimiento sobre cómo interpretar y usar esos datos no cambiará tan amenudo. Además, aunque el conocimiento sea complejo, su dominio es el de lasgeneralizaciones sobre tipos, y no el de las instancias específicas, que es el dominio de losdatos.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Podemos resumir lo expuesto diciendo que una base de conocimiento contendráconocimiento sobre algo, y será capaz de referir ese conocimiento al mundo real. Esteconocimiento es abstracto y generalizador. Los datos son concretos y describen de formadetallada entidades del mundo real.Como es de suponer los sistemas para soportar el almacenamiento de conocimientonecesitan una notación muy avanzada y precisa, pero por lo general no son capaces dehacer frente a cantidades ingentes de información, aspecto en el que las bases de datossobresalen. Información es lo que se obtiene cuando los datos son analizados, ya sea por unagente humano o por una aplicación externa. Por tanto, de una base de datos se extraeinformación, mientras que ésta se encuentra explícitamente e implícitamente almacenada enuna base de conocimiento.Una interpretación en términos cognitivos de este extremo es que una KB contieneinformación representada de una forma más parecida a cómo los humanos la almacenamos.El término "conocimiento", hace referencia específica a las reglas en las que la informaciónha de ser usada, así como a diversos procesos cognitivos en relación con la actualización dela información contenida en un sistema.Si un sistema contiene información representada a modo de generalizaciones sobre datos yes capaz de usar esta información de forma inteligente, actualizarla según necesidades yproveer información acerca de la información que contiene (ser "consciente" de suslimitaciones), entonces es un sistema de conocimiento. Si, por el contrario, un sistemacontiene una gran cantidad de datos específicos sobre un determinado universo y provee losmecanismos necesarios para recuperar y modificar esa información, ya sea por un programao por un usuario humano2, entonces es un sistema de base de datos.El primer paso para desarrollar tanto una base de datos como una base de conocimiento ha de serla elección de un determinado modelo de datos en el caso del primero o de un esquema derepresentación en el caso del segundo (Mylopoulos 1986). Esta elección repercutirá directamenteen las características y posibilidades del sistema de información. En este apartado nos limitaremosa exponer una taxonomía de esquemas de representación para los sistemas basados en elconocimiento clásicos y otra clasificación tradicional de modelos de datos.A esta actividad, es decir, el estudio de los sistemas desde un punto de vista más o menosabstracto se le denomina modelado conceptual. Por tanto, se entiende por modelado conceptual ladescripción de un sistema de información (KBMS, DBMS, aplicaciones construidas con algúnlenguaje de programación) en un nivel de abstracción por encima del nivel de arquitectura eimplementación.En IA, el problema de diseñar un sistema experto se centra en construir una base de conocimientoque represente el conocimiento de una empresa determinada. También las metodologías de basesde datos han venido ofreciendo desde su etapa de madurez modelos semánticos de datos. Losmodelos de datos clásicos ofrecen niveles de abstracción muy bajos, es decir la correspondenciaentre el nivel conceptual y el nivel físico suele ser muy directa. Los modelos semánticos de datosintentan escalar en el nivel de abstracción para poder dar cuenta de estados y procesos complejosde una forma relativamente simple. Como veremos, estos modelos están altamente influenciadospor los sistemas de KB, que desde el principio fueron dotados de grandes capacidades deabstracción.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ejemplo: Se representa la base de conocimiento de los lenguajes de programación.Hechos: 1. El lenguaje posee funciones predefinidas. 2. El lenguaje trabaja sobre cualquier plataforma 3. El lenguaje trabaja con programación procedimental. 4. El lenguaje es declarativo. 5. El lenguaje es orientado a objeto. 6. El lenguaje trabaja únicamente sobre ambiente Windows. 7. El lenguaje trabaja sobre ambiente MS-DOS. 8. El lenguaje trabaja orientado a eventos. 9. El lenguaje permite la herencia 10. El lenguaje permite polimorfismo.Reglas: R1: 1 ^ 2 => 6 R2: 9 ^ 10 => 5 R3: - 7 v 5 => 10 R4: 10 ^ 8 => 9 2. Características • Las KB son la evolución lógica de los sistemas de bases de datos tradicionales, en un intento de plasmar no ya cantidades ingentes de datos, sino elementos de conocimiento así como la manera en que éste ha de ser utilizado. También se les trata de dotar de conocimiento sobre sí mismas, es decir, una KB ha de "saber lo que sabe". • El sistema gestor de bases de conocimiento (KBMS: Knowledge Base Management System) posee una comercialización prácticamente anecdótica, y por supuesto no existe ningún estándar. • Una de las principales características de los sistemas basados en el conocimiento es que no permiten la utilización de la información contenida en ellos por parte de aplicaciones externas. • La mayor parte de las aserciones de una KB contienen variables dependientes en el sentido lógico, son de muchos tipos diferentes, y existen muy pocas aserciones de cada tipo (generalmente sólo una). • Una KB es un sistema activo de forma inherente. Las acciones que una KB lleva a cabo van desde la invocación de procedimientos cuando se accede a un determinado slot o casilla (en el caso de un esquema de representación basado en marcos), pasando por procesos deductivos o propagación de restricciones (en el caso de esquemas de redes semánticas genéricas). A esto se le denomina activación deUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. procesos, disparo o triggering. Este mecanismo puede incluso acceder y modificar los hechos y reglas contenidos en su propio repositorio de datos. • La KB contiene conocimiento sobre algo, y será capaz de referir ese conocimiento al mundo real. Este conocimiento es abstracto y generalizador. • Los sistemas para soportar el almacenamiento de conocimiento necesitan una notación muy avanzada y precisa, pero por lo general no son capaces de hacer frente a cantidades ingentes de información. • En una KB se encuentra explícitamente e implícitamente almacenada la información. • Un KBMS debe ofrecer dos posibilidades fundamentales: 1) Mecanismos de razonamiento; y 2) Mecanismos de explicación . • Las KB se han desarrollado en diversos ámbitos con propósitos específicos. • Las KB son utilizadas en las siguientes aplicaciones de IA: Sistemas expertos, sistemas de procesamiento de lenguaje natural y sistemas de visión robótica.En general se supone que un KBMS, a diferencia de un DBMS, debe ofrecer estas dosposibilidades fundamentales (Mylopoulos 1986): • Mecanismos de razonamiento: el KBMS debe ser capaz de extraer conclusiones lógicas a partir de la información y reglas que contiene. • Mecanismos de explicación que permitan al usuario del KBMS averiguar el estado del mecanismo de razonamiento, obtener consejo, y justificación de una determinada conclusión obtenida por el mecanismo de razonamiento A partir de estos requerimientos deberíamos establecer alguna tipología de KBMSs atendiendono a su arquitectura (no existen arquitecturas genéricas estándar), sino a su funcionalidad. Lo quecaracteriza a los sistemas de representación de conocimiento es que se han desarrollado endiversos ámbitos con propósitos específicos. Mientras que un mismo sistema de bases de datos sepuede utilizar para múltiple propósitos, los KBMS no son por lo general de propósito general.(Jarke et al. 1989) presentan la siguiente tipología de aplicaciones de IA en las que las bases deconocimiento son utilizadas: • Sistemas expertos • Sistemas de procesamiento de lenguaje natural • Sistemas de visión robótica • Entornos de desarrolloSon los segundos los que nos interesan, aunque en realidad la mayoría de los sistemas de IAtoman la forma de sistemas expertos. Las relaciones entre el procesamiento del lenguaje natural ylos KBMS han estado siempre motivadas por los intereses de los investigadores en IA, no por losde lingüistas o lexicógrafos. La aplicación de sistemas basados en el conocimiento a la TA es muynovedosa, y, según pensamos, los clásicos sistemas de KBMS no se adaptan a las necesidadesde este tipo de aplicaciones, al no conceder la importancia necesaria a la información detallada engeneral ni a los aspectos procedimentales.El interés de los investigadores de IA por el lenguaje natural está centrado casi exclusivamente enla comunicación hombre-máquina, por tanto su objetivo es la construcción de interfaces enlenguaje natural que faciliten esta interacción. Éstos son los denominados interfaces de lenguajenatural (NLI: Natural Language Interfaces).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.De hecho, el interés por los sistemas de NLP basados en el conocimiento surgió a raíz de lanecesidad de construir interfaces en lenguaje natural para sistemas expertos. Estos sistemas sonalimentados con toda la información disponible sobre un determinado tema muy específico, porejemplo diagnósticos médicos, sistemas de ingeniería. Después, mediante un interfaz apropiadoque acepta un conjunto de estructuras sintácticas y elementos léxicos específico, son capaces deresponder adecuadamente a consultas complejas relacionando la información que poseen.Las tareas para las que estos sistemas se desarrollan son, casi por definición, complejas. Portanto, un sistema experto es un sistema computacional capaz de representar y razonar sobre undominio determinado que precisa de gran cantidad de conocimiento, tal como la aeronáutica o lamedicina. Se puede distinguir de otros tipos de aplicaciones de IA en que: • Trabaja con temas complejos que normalmente requieren una considerable cantidad de experiencia humana; • Debe ser una herramienta práctica y útil; para ello debe ofrecer un alto rendimiento en cuanto a velocidad de ejecución y fiabilidad; • Debe ser capaz de explicar y justificar sus soluciones y consejos para convencer al usuario de lo correcto de su razonamiento.Los sistemas expertos son el tipo de aplicación de IA que mejores resultados ha conseguido. Estossistemas son usados hoy en día en un amplio abanico de dominios y han probado ser altamentefiables. Por ello sería deseable la disponibilidad de interfaces en lenguaje natural que facilitasen lacomunicación con el sistema por parte de usuarios no expertos en computación (médicos,biólogos, ingenieros). Existen tres modos de ver la relación entre un NLI y el KBMS. La primera esla construcción de un NLI para manejar un KBMS. La segunda construir un KBMS paraimplementar un NLI. La tercera construir un NLI (soportado por el KBMS) para sistemas basadosen el conocimiento.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Para que un programa pueda ser calificado de NLI debe cumplir las dos condiciones siguientes: 1. Un subconjunto del input o el output del sistema se realiza en lenguaje natural 2. El procesamiento del input (generación del output) se basa en conocimiento de tipo sintáctico, semántico y/o pragmático.Los tres modos anteriormente citados de usar el lenguaje natural en IA reflejan a nuestro parecertres estadios de investigación, superando una primera fase en que se pretendía un análisisextremadamente simplista del lenguaje. Tras observar la enorme complejidad que éste conlleva, sehizo obvia la necesidad de tratar el lenguaje humano como un objeto de estudio en sí mismo, parapoder siquiera pensar en usarlo como medio de interacción hombre-máquina. En esta etapa seempezaron a plantear cuestiones que los lingüistas han estado estudiando desde mucho tiempoatrás. Un KBMS para NLI habrá de integrar los siguientes tipos de conocimiento (Jarke et al. 1989): • Conocimiento lingüístico. • Conocimiento conceptual. • Conocimiento inferencial. • Conocimiento del usuario.La Figura resume las fuentes de conocimiento lingüístico necesario para el desarrollo de NLIssegún la IA. Este cuadro revela cómo los investigadores de IA contemplan el estudio del lenguajenatural:Finalmente, en IA se señalan algunas características necesarias en una KB para el procesamientode lenguaje natural: • Representación de conocimiento: el sistema de representación10 debería ser un esquema híbrido que contuviese subesquemas basados en marcos (frames), hechos de base de datos y reglas de deducción. Las distintas unidades de conocimiento codificadas en uno de estos esquemas tendrán que ser agregadas a los esquemas híbridos de una fuente de conocimiento (lingüístico, conceptual, etc.), que a su vez tendrá que ser agregada a la base de conocimiento global. • Organización del conocimiento: el KBMS deberá organizar al menos dos bases de conocimiento en el caso de un sistema basado en NLI: la KB del lenguaje natural (NL KB) y la KB a la que el NLI proporciona acceso mediante lenguaje natural. A su vez, la NLKB habrá de estar organizada distinguiendo: conocimiento de entorno, conocimiento específico de trabajo y conocimiento específico de diálogo.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. • Entorno de integración: el KBMS deberá proporcionar un entorno que permita la entrada de datos para las distintas KBs. Este aspecto de adquisición de conocimiento se puede realizar mediante el NLI una vez se haya construido parcialmente. Lo ideal para crear la base de conocimiento de lenguaje natural es el trabajo conjunto de expertos en los dos campos: la lingüística y la IA.Como observamos, las diferencias de descripción detallada de bases de datos y bases deconocimiento son abismales. Las bases de datos son sistemas muy bien establecidos en dondetodo lo que puede o no puede llevar a cabo el sistema y cómo llevarlo a cabo está perfectamenteestablecido. El trabajo en bases de conocimiento se encuentra aún en una fase germinal, y por logeneral se trata de sistemas específicos para necesidades específicas. La literatura en torno a lasbases de conocimiento es aún altamente programática, intentando sentar las bases de lo que sesupone que estos sistemas serán capaces de hacer. No es extraño encontrar asercionescontradictorias en distintos autores con distintos fines. Incluso así, en el siguiente apartadointentaremos mostrar cuáles son las definiciones formales y arquitecturas que se han propuestohasta ahora. Ni que decir tiene que el entorno de bases de datos se encuentra totalmenteestablecido.ELEMENTOS EN LA SOLUCIÓN DE PROBLEMASEl proceso general en la solución de problemas tiene: 1. Estado del problema: Situación y condición de existencia. 2. Meta: Lograr respuesta final o solución. 3. Operadores: Procedimiento empleado para cambiar los estados y lograr las metas (Algoritmos y subrutinas). Esquema de representación de los elementos en la solución de problemas Representación de los elementos en la solución de problemas Estado Procedimiento Metas Inicial Estrategias de controlPara construir un sistema que resuelva un problema específico, es necesario realizar lassiguientes acciones:Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Definir el problema con precisión: La definición debe incluir especificaciones precisastanto sobre la o las situaciones iniciales como sobre las situaciones finales que se aceptaríancomo soluciones al problema.Analizar el problema: Algunas características de gran importancia pueden tener un granefecto sobre la conveniencia o no de utilizar las diversas técnicas que resuelven elproblema.Aislar y representar el conocimiento necesario para resolver el problema.Elegir la mejor técnica(s) que resuelve el problema y aplicarla(s) al problema particular.TÉCNICAS DE SOLUCIÓN.Las técnicas de solución de problemas en IA, en general, incorporan un proceso de búsqueda.Todo proceso de búsqueda puede ser visualizado como el recorrido por un árbol en el que cadanodo representa un estado y cada rama representa las relaciones entre los estados cuyos nodosconecta.En general, las reglas contienen en forma implícita el árbol, y se genera en forma explícita sóloaquellas partes que se decide explorar. Las principales diferencias que pueden aparecer en lasdiferentes técnicas de búsqueda, son: • La dirección en la cual se conduce la búsqueda (hacia adelante o hacia atrás). • La estrategia de control, o forma de seleccionar las reglas que pueden ser aplicables. Los principales requerimientos de una buena estrategia de control son: que cause desplazamiento en el espacio de estado; y, que sea sistemático. • La forma de representar cada nodo del proceso de búsqueda (representación del conocimiento).Muchas veces, tratar el proceso como búsqueda en un grafo en lugar de una búsqueda en unárbol, puede reducir el esfuerzo que se gasta en explorar senderos, esencialmente iguales, variasveces. Sin embargo, los requisitos asociados, son: • Cada vez que se genere un nodo se debe chequear para ver si ha sido generado antes. • Se deben introducir procedimientos especiales para que la búsqueda no quede atrapada en algún lazo.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Métodos de búsqueda: 1. Búsqueda en profundidad. 2. Búsqueda en amplitud. 3. Búsqueda de coste uniforme. 4. Búsqueda en profundidad limitada. 5. Búsqueda en profundidad iterativa. 6. Búsqueda bidireccional. Problema de los dos recipientes de agua Se tienen dos jarras, una de cuatro litros de capacidad y otra de tres. Ninguna de ellas tiene marcas de medición. Se tiene una bomba que permite llenas las jarras de agua. ¿Cómo se puede lograr tener exactamente dos litros de agua en la jarra de cuatro litros de capacidad? Los operadores que puede utilizar son:: llenar la jarra de 4 litros; llenar la jarra de 3 litros; vaciar un poco la jarra de 4 litros; vaciar un poco la jarra de 3 litros; vaciar la jarra de 4 litros en el suelo; vaciar la jarra de 3 litros en el suelo; verter agua desde la jarra de 3 litros a la jarra de 4 litros hasta que la jarra de 4 litros esté llena; verter agua desde la jarra de 4 litros a la jarra de 3 litros hasta que la jarra de 3 litros esté llena; verter todo el agua de la jarra de 3 litros en la jarra de 4 litros; verter todo el agua de la jarra de 4 litros en la jarra de 3 litros; verter 2 litros de la jarra de 3 litros en la jarra de 4 litros). Implementa el problema realizando búsqueda en anchura y en profundidad Reglas de Producción x = 0,1,2,3,4 y = 0,1,2,31. Llenar el recipiente de 4 galones: 2. Llenar el recipiente de 3 galones:SI x < 4 => (4, y) SI y < 3 => (x, 3)3. Vaciar el recipiente de 4 galones: 4. Vaciar el recipiente de 3 galones:SI x > 0 => (0, y) SI y > 0=> (x, 0)5. Pasar agua del recipiente de 3 galones al de 4, hasta 6. Pasar agua del recipiente de 4 galones al de 3, hastaque se llene: que se llene:SI (x + y) >= 4 ^ y > 0 => (4, y - (4 - x)) SI (x + y) >= 3 ^ x > 0 => (x - (3 - y), 3)7. Pasar toda el agua del recipiente de 3 galones al de 8. Pasar toda el agua del recipiente de 4 galones al de4: 3:SI (x + y) <= 4 ^ y > 0 => (x + y, 0) SI (x + y) <= 3 ^ x > 0 => (0, x + y) Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez Toruño Facultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Búsqueda en espacios de estados.begin estado := est_inic while not estado = est_fin do begin regla := selecc(R, estado) estado := aplicación(regla, estado) endend-------------------------------------------------------------regla := selecc (R, estado) Control, según sea, la búsqueda será más o menos“inteligente”.Estrategias de control: características fundamentales. • Debe causar que el problema avance. Ejemplo: en el problema de los “cubos de agua” no es válido seleccionar siempre la primera regla aplicable. • Debe ser sistemático. Es decir, siempre debe producir la misma solución ante el mismo problema. Ejemplo: no es válido como estrategia de control elegir una operación al azar.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.MÉTODOS DE BÚSQUEDA (CIEGAS – HEURÍSTICA )Métodos Ciegos Exploración del árbol de búsqueda sistemáticamente pero sin informaciónEstos métodos se caracterizan por no poseer experiencia, información o conocimientocorrespondiente al ambiente en donde se realizará la búsqueda, solo se posee conocimientode estado inicial y la meta que se pretende alcanzar.Ejemplo: Suponga que desea encontrar una trayectoria de una ciudad “S” (punto inicial)aotra “G”(meta). Para encontrar una trayectoria apropiada necesitará considerar dos costos:el costo de cálculo para encontrar la trayectoria y el costo del viaje cuando se sigue atrayectoria.Árbol de búsqueda: Es un tipo especial de árbol semántica en el que cada nodo representauna trayectoria, las ramas conectan trayectorias a extensiones de trayectorias en un solopaso. El árbol de búsqueda contiene escritores que conectan una trayectoria a unadescripción de trayectoria. Además contiene lectores que producen una descripción de unatrayectoria.Las trayectorias que no alcanzan la meta se conocen como trayectorias parciales; lastrayectorias que alcanzan la meta se llaman trayectorias completas. El nodo raíz es el queno tiene nodo antecesor. Cada hijo representa una trayectoria que es una extensión de unnodo de la trayectoria representada por su padre. Se conoce como profundidad del árbol a lacantidad de nodos existentes desde la raíz hasta la ultima hoja del árbol.La expansión de un nodo es cuando se determina los hijos den este. Se dice que los nodosestán abiertos cuando no se expande, en caso contrario se vuelven cerrados.Ejemplo: El árbol de búsqueda formado para el ejemplo anterior es: A B C S G D E FUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Búsqueda HeurísticaPara resolver muchos problemas difíciles (explosión combinatoria), es necesario muchas vecesllegar a un compromiso de los requerimientos de movilidad y sistematicidad y construir unaestructura de control que no necesariamente garantiza el encontrar la mejor respuesta, sino quecasi siempre encuentra una buena respuesta. Una técnica heurística mejora la eficiencia delproceso de búsqueda sacrificando, usualmente, exhaustividad. Las consideraciones que sirven desoporte a un proceso de búsqueda heurística, son: • Rara vez se requiere, en realidad, una solución óptima. Una buena aproximación, normalmente, sirve muy bien. • A pesar que una aproximación heurística no puede resultar muy buena en el peor de los casos, raras veces aparecen los peores casos en la práctica.El tratar de comprender por qué un heurístico funciona o por qué no funciona, a menudo conduce auna mejor comprensión del problema.Búsqueda en amplitudSe basa en desarrollar completamente cada nivel del árbol antes de pasar adesarrollar el siguiente.Algoritmo general1. lista := estado_inicial2. MIENTRAS (lista ≠ 0) y no solucion 2.1. Eliminar primer elemento de lista y asignarlo a E 2.2. Para cada regla aplicable a E 2.2.1. Aplicar la regla 2.2.2. Si el estado resultante el objetivo, salir devolviéndolo 2.2.3. Si no, añadir el nuevo estado a listaUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.La búsqueda en amplitud se extiende uniformemente en el árbol de búsqueda: Labúsqueda en amplitud revisa todas las trayectorias de una longitud dada antes de avanzar auna trayectoria más larga. Primero se expande el nodo raíz, y luego todos los nodosgenerados por este; luego, sus sucesores, y así sucesivamente. En general, todos los nodosque estan en la profundidad d del árbol de búsqueda se expanden antes de los nodos queestan en la profundidad d + 1. Este método de búsqueda permite encontrar primero la metamás próxima.Para efectuar una búsqueda en amplitud: 1. Forme una cola de un solo elemento consistente en una trayectoria de longitud cero que contenga solo al nodo raíz. 2. Hasta que la primera trayectoria de la cola concluya en el nodo meta o se vacíe la cola: 2.1.Elimine la primera trayectoria de la cola cree nuevas trayectorias extendiendo el primer paso a todos los vecinos del nodo terminal. 2.2.Rechace las trayectorias nuevas con ciclos. 2.3.Agregue las nuevas trayectorias, si las hay al final de la cola. 3. Si se halla el nodo meta, mencione que hubo éxito, si no, notifique el fracaso.Ejemplo: Para efectuar la búsqueda en amplitud se debe construir el árbol siguiente. S A D B D A E C E E B B F D F B F D E A C GAl considerar el factor de ramificación b (la raíz del árbol de búsqueda genera b nodos en elprimer nivel, cada uno de los cuales genera b nodos más, obteniendo b2 nodos en elsegundo nivel, y así sucesivamente). Supóngase que la en la solución hay una ruta deUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.longitud d, por lo que la cantidad máxima de nodos expandidos antes de poder encontraruna solución es bd. Al tener un árbol b = 2 como factor de ramificación, y una profundidadde d = 14, se expandirían 214 = 262,144 nodos antes de encontrar una solución, lo queprovocaría una explosión combinatoria, causando el incremento considerable de los costosy tiempos empleados en la búsqueda de solución.Búsqueda en profundidad (“depth-first”)Se basa en elegir un camino en el árbol y seguirlo hasta el final. Si no seencuentra la solución se retrocede (“backtraking”) y se prueba por otro camino.Algoritmo general:1- SI estado_inicial = estado_objetivo ENTONCES salir con éxito2- MIENTRAS no éxito y no fracaso a- Generar los sucesores del estado inicial. SI no hay más sucesores ENTONCES fracaso b- Llamar al algoritmo para cada uno de los nodos generados como estado inicial c- Si se devuelve éxito, devolver éxito, si no continuar el bucleVentajas de la búsqueda en profundidad • Requiere mucha menos memoria (sólo hay que guardar el camino actual.) • Puede encontrar una solución sin examinar mucho el árbol, sobre todo si hay varios caminos a la solución.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Búsqueda de coste uniformeSe basa en desarrollar el nodo con menor coste.Algoritmo general.1- lista := estado_inicial2- MIENTRAS (lista ≠ 0) y no solucion a- Eliminar primer elemento de lista y asignarlo a E b- Para cada regla aplicable a E i- Aplicar la regla ii- Si el estado resultante el objetivo, salir devolviéndolo iii- Si no, añadir el nuevo estado a listaBúsqueda en profundidad limitadaBúsqueda en profundidad con un límite de profundidad l. Implementación: losnodos a profundidad l no tienen sucesores.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Búsqueda en profundidad iterativaSe basa en elegir utilizar búsqueda en profundidad limitada, aumentando l si no seencuentra la solución.Algoritmo Generación y Prueba (GENERATE-AND-TEST)1. Generar una posible solución. (estado o camino)2. Comprobar para ver si es una solución, mediante comparación con los elementos del conjuntode objetivos aceptables.3. Si la solución ha sido encontrada salir, de otra manera, retornar al paso 1.Algoritmo Primero en Profundidad (DEPTH-FIRST) 1. Si el estado inicial es el objetivo, salir y retornar éxito. 2. Sino, haga lo siguiente hasta que se obtenga señal de éxito o fracaso: a. Genere un sucesor E del estado inicial. Si no hay más sucesores, retorne con señal de fracaso. b. Llame recursivamente al algoritmo, esta vez con E como el estado inicial. c. Si la señal es éxito, retorne, de otra manera, continúe en este lazoUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.La búsqueda en profundidad incursiona en el árbol de búsqueda: Siempre se expandeuna de los nodos que se encuentre en lo más profundo del árbol, solo si la búsquedaconduce a un callejón sin salida (un nodo sin meta que no tiene expansión), se revierte labúsqueda y se expanden los nodos de niveles menos profundos. Para llevar a cabo unabúsqueda en profundidad debe:1. Primero conforme una cola de un elemento consistente en una trayectoria de longitudcero que contenga solo al nodo raíz;2. Hasta que la primera trayectoria de la fila termine en el nodo meta o se vacíe la cola, 2.1 Elimine la primera trayectoria de la cola; cree nuevas trayectorias extendiendo el primer paso a todos los vecinos del nodo terminal; 2.2. Rechace todas las trayectorias nuevas con ciclos; 2.3. Agregue las nuevas trayectorias, si las hay, al frente de la cola. 1. Si el nodo meta se alcanza, mencione que hubo éxito; de otro modo, notifique el fracaso.1. Inicializar todos los nodos al estado de preparado (ESTADO=1)2. Meter el nodo inicial A en la pila y cambiar su estado a estado de espera(ESTADO=2).3. Repetir los pasos 4 y 5 hasta que la pila este vacia.4. Sacar el nodo N en la cima de la pila. Procesar el nodo N y cambiar su estado al de procesado (ESTADO=3).5. Meter en la pila todos los vecinos de N que estén en estado de preparados (ESTADO=1) y cambiar su estado a estado de espera (ESTADO=2). [ fin de bucle del paso 3 ]6. Salir. (Algoritmo recursivo) 1- SI estado_inicial = estado_objetivo ENTONCES salir con éxito 2- MIENTRAS no éxito y no fracaso a- Generar los sucesores del estado inicial. SI no hay más sucesores ENTONCES fracaso b- Llamar al algoritmo para cada uno de los nodos generados como estado inicial c- Si se devuelve éxito, devolver éxito, si no continuar el bucleUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ejemplo: Para el árbol de búsqueda anterior se tendría: S A B D C E D F GSe decide encontrar la trayectoria a través de la cola: S – A – B – C, pero esta trayectoria noencuentra la meta “G”. Por lo que se decide al nodo antecesor mas cercano que tenga unaalternativa sin explorar, que para el árbol en análisis es B, es este caso se sigue: S – A – B –E – D; igual que la cola anterior, no se encuentra la meta “G”. Nuevamente se ubica en elnodo antecesor mas cercano que tiene una alternativa sin explorar, en este caso es E, seencuentra la trayectoria:S – A – B – E – F – G. A través de esta trayectoria se logra encontrar la meta “G”, por loque se notifica el éxito.Si un árbol de búsqueda tiene un factor de ramificación b y profundidad máxima m, lacantidad de nodos a revisar será “bm”.La desventaja de la búsqueda en profundidad es la posibilidad de que se quede estancada alavanzar por una ruta equivocada. En muchas ocasiones los árboles de búsqueda son muyprofundos, o hasta infinitos, por lo que una búsqueda en profundidad no es recomendableen estos casos.Ventajas de la búsqueda en profundidad • Requiere mucha menos memoria (sólo hay que guardar el camino actual.) • Puede encontrar una solución sin examinar mucho el árbol, sobre todo si hay varios caminos a la solución.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Algoritmo Primero a lo Ancho (BREATH-FIRST) 1. Crear una variable NODE_LIST y ponerla al estado inicial. 2. Hasta que se encuentre el objetivo o hasta que NODE_LIST esté vacía haga lo siguiente: a. Remover el primer elemento de NODE_LIST, y llamarlo E. Si NODE_LIST estuvo vacía, salir. b. Para cada forma en que cada regla puede ajustarse al estado descrito en E, haga lo siguiente: i. Aplicar la regla para generar un nuevo estado. ii. Si el nuevo estado es un estado objetivo, salir y retornar este estado. iii. Sino, añada el nuevo estado al final de NODE_LIST.Búsqueda en Anchura: A diferencia con la búsqueda en profundidad ahora se visitantodos los vecinos de un vértice antes de pasar al siguiente. Por tanto no hay necesidad deretroceder. Una vez etiquetados todos los vecinos de un vértice X, se continúa con elprimer vértice alcanzado después de X en la búsqueda. Esta técnica se utiliza para resolverproblemas en los que se pide hallar una solución óptima entre varias.En general la búsqueda en anchura comenzando de un nodo de partida A es la siguiente:Primero examinamos el nodo de partida A. Luego examinamos todos los vecinos de A.Luego examinamos todos los vecinos de los vecinos de A y así sucesivamente. Con el usode una cola, garantizamos que ningún nodo sea procesado más de una vez y usando uncampo ESTADO que nos indica el estado actual de los nodos.Algoritmo para la Búsqueda en Anchura:Este algoritmo realiza la búsqueda en anchura en un grafo G comenzando en un nodo departida A:1. Inicializar todos los nodos al estado de preparados (ESTADO=1).2. Poner el nodo de partida A en la COLA y cambiar su estado a espera (ESTADO=2).3. Repetir pasos 4 y 5 hasta que COLA esté vacía.4. Quitar el nodo del principio de la cola, N. Procesar N y cambiar su estado a procesado (ESTADO=3).5. Añadir a COLA todos los vecinos de N que estén en estado de preparados (ESTADO=1) y cambiar su estado al de espera (ESTADO=2). [ fin del bucle del paso 3 ]6. Salir.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Búsqueda Bidireccional o Atrás y Adelante: Es una búsqueda simultanea que avanza apartir del estado inicial o nodo raíz y que retrocede a partir de la meta, deteniéndose cuandoambas búsquedas se encuentran en un punto intermedio. Si el factor de ramificación es b yla profundidad es d, entonces la solución estará a 2bd/2 pasos. Esta búsqueda es útil cuandoel factor de ramificación es b en ambas direcciones.La búsqueda no determinista se mueve al azar en el árbol de búsqueda: Cuando sehace una búsqueda no determinista se expande un nodo abierto que se escoge al azar. Deeste modo se evita la posibilidad de atascarse revisando un número excesivo de ramas oniveles.Para efectuar una búsqueda no determinista: 1. Forme una cola de un elemento consistente en una trayectoria de longitud cero que contenga solo al nodo raíz. 2. Hasta que la primera trayectoria de la cola concluya en el nodo meta o se vacíe la cola: a. Elimine la primera trayectoria de la cola; cree nuevas trayectorias extendiendo el primer paso a todos los vecinos del nodo terminal. b. Rechace las trayectorias nuevas con ciclos. c. Agregue las nuevas trayectorias al azar en la cola. 3. Si se halla el nodo meta, mencione que hubo éxito, si no, notifique el fracaso.Métodos de búsqueda Heurística Información sobre el problema (información del dominio) que permite reducir la búsqueda.Todos los algoritmos de fuerza bruta son poco eficientes debido a que son búsquedas aciegas, es decir, no usan conocimiento sobre el dominio para guiarse en busca del siguientenodo mejor situado.La búsqueda heurística se basa en que la mayor parte de los "espacios problemas"proporcionan información adicional con un pequeño coste computacional. Esta informaciónadicional nos ayuda a elegir los nodos que estén más cerca de la meta. Esta información sellama Heurística.Cuando se posee experiencia, información o algún conocimiento del medio en el cual serealizará la búsqueda se dice que esta es una búsqueda heurística.Se llama Función de Evaluación a una función f que relaciona cada nodo con un númeroreal y que sirve para estimar el costo relativo de continuar la búsqueda desde ese nodo. Porlo general, f(N) se considera que es la distancia estimada que queda entre N y el NodoMeta. Otras veces se dice que f(N) es la longitud estimada desde el Nodo Raíz hasta elNodo Meta, pasando por el nodo N, etc... Esta función de evaluación se utilizará paradecidir el orden en que se explorarán los nodos durante la búsqueda. Hay varios algoritmosde búsqueda que usan una de estas funciones de evaluación heurística.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Entre ellos están: Mejor primero (Primero el mejor.)Se basa en utilizar una función de evaluación para cada nodo (estimación de la idoneidadde expandir ese nodo). Se aplica: Al expandir siempre el nodo no expandido más idóneo.Mecanismos: • Búsqueda de Greedy. • Búsqueda A*. A*.Se basa en evitar expandir caminos que ya acumulan un coste elevado (tener en cuenta loque ha costado llegar al nodo actual. Su función de evaluación: f(n) = g(n) + h(n), (sedenomina potencia heurística): g(n): coste para llegar al nodo n. h(n): coste estimado para llegar a un nodo solución, desde el nodo n. f(n): coste total estimado del camino para llegar al objetivo a través del nodo n. Escalar colinas.Primero el mejor.Búsqueda primero el mejor: Se asemeja al ascenso de colina, diferenciándose en que elascenso de colina exige un movimiento más desde el nodo abierto de más reciente creacióncuando el movimiento hacia delante se ve impedido. En la búsqueda primero el mejor, elmovimiento adicional se realiza a partir del mejor nodo abierto que se tiene hasta ese punto,sin importar donde esté ese nodo en el árbol parcialmente desarrollado.Este algoritmo, combina las ventajas de los algoritmos primero en profundidad y primero enamplitud. Sigue un sendero a la vez, pero puede cambiarse a otro sendero que parece másprometedor que el que está siguiendo. En este sentido, puede considerarse que es un algoritmo que realiza su proceso de búsqueda entodos sus ramales por que representan una alternativa de solución. Para su operación, el algoritmonecesita dos listas de nodos y una función heurística que estime los méritos de cada nodo que segenere:1. ABIERTOS - Es una variable que contiene los nodos que han sido generados. La funciónheurística ha sido aplicada a ellos, pero todavía no han sido examinados, es decir no se hangenerado sus sucesores. ABIERTOS puede considerarse como una COLA DE PRIORIDADES enla que los elementos con mayor prioridad son los que tienen los valores más prometedores, dadospor la función heurística.2. CERRADOS - Es una variable que contiene los nodos que han sido examinados. Es necesariotener esta información, para que la búsqueda sea en un grafo y no en un árbol.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.3. FUNCIÓN HEURÍSTICA - Permite que el algoritmo busque primero por senderos que son oparecen más prometedores.Para muchas aplicaciones, es conveniente definir esta función f, como la suma de dos, que se lasllamará g y h. La función g es una medida del costo de llegar desde el nodo inicial al nodo actual.La función h es una estimación del costo adicional para llegar desde el nodo actual al estadoobjetivo. Aquí es donde se explota el conocimiento que se dispone sobre el dominio del problema.Es decir, la función combinada f representa una estimación del costo de llegar desde el estadoinicial hasta el estado objetivo, siguiendo el sendero que ha generado el nodo actual. Si el nodoactual ha generado más de un sendero, el algoritmo deberá dejar registrado sólo el mejor.El algoritmo, en la forma que fue formulado, se aplica a grafos. Puede ser simplificado paraaplicarse a árboles, si no se preocupa de comprobar si un nuevo nodo esta en ABIERTOS o enCERRADOS. Esto aceleraría la generación de nodos y la búsqueda, para casos en que es pocoprobable que se repitan nodos.Usualmente, el costo de ir de un nodo a su sucesor, g, se fija en una constante igual 1, cuando sedesea encontrar un sendero a la solución, que involucre el menor número de pasos. Si por elcontrario nos interesa encontrar el camino menos costoso y algunos operadores cuestan más queotros, se asume un valor de g, que refleje esos costos. Un valor de g igual a cero significaría quesimplemente nos interesa llegar a alguna solución, de cualquier manera.Si h es un estimador perfecto de h, hará que A* converja inmediatamente al objetivo, sinbúsqueda. Mientras mejor sea h, más cerca se estará de alcanzar esta aproximación directa. Si hvale cero, la búsqueda será controlada por g. Si el valor de g es también cero, hará que labúsqueda sea aleatoria. Si el valor de g es siempre 1, hará que la búsqueda sea primero enanchura. Para los casos en que h no sea perfecto ni cero, y nunca llega a sobrestimar el valor deh, el algoritmo A* está garantizado que encontrará un sendero óptimo a un objetivo, en caso de queexista solución. Cuando un algoritmo garantiza el encontrar una solución óptima, si esta existe, sedice que es admisible.En la búsqueda "el mejor primero" el movimiento hacia adelante se hace desde el nodomejor situado con respecto a la meta, sin tener en cuenta su situación en el árbol.Los caminos que se encuentren utilizando este método de búsqueda serán más cortos quelos que se encuentren buscando con otros métodos, ya que con esta estrategia se parte delnodo mejor situado.Igual que con el método de escalar colinas este método requiere clasificar los nodos deacuerdo con su situación. En este caso, sin embargo, se clasifica toda la estructura de datos.Por lo tanto, en cada paso del proceso de búsqueda se selecciona el nodo más prometedorde todos los que se han generado hasta el momento. Esto se consigue aplicando unafunción heurística apropiada a cada nodo generado expandiendo, a continuación, aquel queha dado el mejor resultado al evaluar dicha función heurística.Si uno de los sucesores (hijo) del nodo expandido es la meta, la búsqueda termina. En casocontrario, estos sucesores se suman al conjunto de nodos generados hasta el momento y serepite el proceso de selección del nodo más prometedor.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.El algoritmo que se presenta a continuación realiza la búsqueda a través de un grafodirigido en el cual cada nodo representa un punto, o estado, en el espacio del problema.Cada nodo es, entonces, una estructura que contiene, además de una descripción del estadodel problema que representa, una indicación de lo prometedor que es respecto a los demásnodos, un enlace-padre que apunta al mejor nodo de los nodos-padre que cuelga, y porúltimo, una lista de sus nodos sucesores (aquellos que se generan a partir de él). El enlace-padre permite recobrar el camino hasta la meta una vez se ha llegado a ella. La lista desucesores permite, cuando se encuentra un camino mejor hasta un nodo ya generado,propagar esta mejora hacia sus sucesores.Para implementar este procedimiento se necesitan dos listas de nodos OPEN: Contiene los nodos que se han generado y a los cuales se ha aplicado la función heurística pero todavía no han sido examinados (no se han generado sus sucesores). OPEN es, en realidad, una cola de prioridad en la que los elementos con mayor prioridad son aquellos con valor más prometedor para la función heurística. CLOSED: Contiene los nodos que ya han sido examinados. Es necesario mantener estos nodos en memoria ya que cuando se genera un nuevo nodo hay que comprobar su ya ha sido generado antes.DESCRIPCION GENERAL DEL ALGORITMO "EL MEJOR PRIMERO"Se comienza insertando el nodo S (nodo de comienzo) en la lista OPEN. A continuación sevan procesando sucesivamente los nodos en OPEN: se comprueba si son nodos meta, y encaso de que no lo sean, se meten en la lista CLOSED, se introducen sus sucesores enOPEN y se actualiza la función heurística f(N) para cada nodo N procesado. Los nodos enOPEN son tratados según un orden que da la mayor prioridad al nodo con menor f(N).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.ALGORITMO 1. Insertar el nodo de comienzo S en OPEN, evaluar f(S) y asociar este valor con S. Poner el enlace-padre a NULL. 2. Si OPEN está vacío, devolver FALLO y parar. 3. Elegir un nodo N de OPEN tal que f(N) < f(M) para cada M en OPEN, tal que N es un nodo meta algún nodo meta tiene ese valor mínimo para f. 4. Poner N en CLOSED y quitar N de 0PEN. 5. Si N es un nodo meta devolver el camino desde S hasta N. Este camino se obtiene recorriendo f hacia atrás los enlaces-padre desde N hasta S. Luego parar. 6. Para cada sucesor J de N que no está aún en OPEN o en CLOSED: a.- Evaluar f(J) y asociarlo con J. b.- Poner J en OPEN. c.- Poner el enlace-padre de- J apuntando hacia N. 7.- Para cada sucesor J que ya está en OPEN, reevaluar f(J) y comparar este valor con el anterior. Si el nuevo valor es menor, asociarlo con J y volver a colocar J en OPEN. 8.- Ir al paso 2 La eficiencia de este método de búsqueda depende de la función heurísticaf que se utilice.EJEMPLO: Resolver utilizando el método de mejor-primero:Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.SOLUCION1. OPEN Af(A) =8P(A) = NullLuego al final de esta primera etapa tenemos:OPEN = ACLOSE = NULL2.- A ≠ Meta y además es el único nodo en OPEN, luego CLOSE A Generamos los sucesores de A B, F, H ∉ OPEN v CLOSED f(B) = 6, P(B) = A f(F) = √37, P(F) = A f(H) =√37, P(H) = Aquedando entonces:OPEN = B, F, HCLOSED = A3. f(B) < f(F). por lo tanto metemos B en CLOSED CLOSED Bgeneramos los sucesores de BC ∉ OPEN v CLOSEDOPEN Cf(C) = 4, P(C) = Bquedando entonces:OPEN = F, H, CCLOSED = A, B4.-f(C) < f (F). por lo tanto metemos C en CLOSEDCLOSED Cgeneramos los sucesores de CD ∉ OPEN v CLOSEDf(D) = 2, P (D) = Cquedando entonces:OPEN = F, H, DCLOSED = A, B, C5.- f(D) < f(F). por lo tanto metemos D en CLOSEDCLOSED Dgeneramos los sucesores de DE, G ∉ OPEN v CLOSEDf(E) = 0, P(E) = Df(G) = 6, P(G) = DQuedamos entonces: OPEN = F, H, E, G CLOSE = A, B, C, D6. E es la meta, luego devolverá el camino desde el origen hasta la meta.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.METODO DE BUSQUEDA A*Este método de búsqueda examina los nodos en un orden que da la mayor prioridad a losnodos que parecen pertenecer al camino más corto desde el nodo inicial hasta la meta. Espor tanto, similar al método "El Mejor Primero" pero siendo la diferencia fundamental lafunción heurística f, ya que ésta no es, simplemente, la estimación de la distancia que quedadesde el nodo, en cuestión, hasta la meta, sino que se suma un factor g, que representa elcoste del mejor camino encontrado hasta el momento, desde el nodo inicial hasta el nodoactual.Así, la función heurística f utilizada en la búsqueda A* queda de la siguiente forma:f =g+hdonde las funciones g y h reflejan respectivamente: g = el coste del mejor camino desde el nodo inicial hasta el actual. h =estimación del coste involucrado en llegar desde el nodo actual a la meta. En esta función h es donde se explota, realmente, el conocimiento que se tiene sobre el dominio del problema.La función combinada f, para un nodo N, representa, por tanto, una estimación del costeinvolucrado en llegar desde el nodo inicial hasta un nodo meta a través del camino quegenera el presente nodo N. Si más de un camino generan el nodo N, el algoritmo A*registra el mejor.Asumiendo que la estimación dada por h nunca excede la distancia real entre el nodo actualy la meta, el método A* siempre encuentra el camino más corto entre el nodo inicial y lameta. Esto se conoce como la admisibilidad del método A*.Para implementar este método, cada nodo contendrá la misma información que para elmétodo "El Mejor Primero" y se utilizaran las mismas listas OPEN y CLOSED.ALGORITMO DE BÚSQUEDA A*1.-Meter en OPEN el nodo inicial. Inicializar el valor g de este nodo a 0, el valor h a lo que corresponda, y el valor f a (0 + h). Inicializar CLOSED con la lista vacía.2.-Hasta que se encuentre un nodo meta, repetir el siguiente procedimiento: Si no hay ningún nodo en OPEN, devolver fallo. En caso contrario coger el nodo de OPEN que tenga el menor valor para f. Llamar a este nodo MEJOR-NODO. Eliminarlo de OPEN. Ponerlo en CLOSED. Ver si MEJOR-NODO es un nodo meta. Si lo es devolver la solución (bien MEJOR-NODO o el camino creado entre el estado inicial y MEJOR-NODO, según lo que se quiera). En casoUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. contrario, generar los sucesores de MEJOR-NODO. Para cada SUCESOR hacer lo siguiente: a. Poner el enlace-padre de SUCESOR apuntando a MEJOR-NODO. b. Evaluar g(SUCESOR)=g(MEJOR-NODO) + coste de ir desde MEJOR- NODO a SUCESOR. c. Ver si SUCESOR está ya en OPEN (es decir, ya ha sido generado pero no procesado): i.- Si SUCESOR está ya en OPEN: llamar VIEJO a ese nodo. Hay que decidir si el enlace-padre de VIEJO debe cambiarse para apuntar a MEJOR-NODO. Este debe ser el caso cuando el camino que acabamos de encontrar hasta SUCESOR es más "barato" que el camino ya existente hasta VIEJO (SUCESOR y VIEJO son el mismo nodo en el grafo). Para ello se comparan los valores g de SUCESOR y VIEJO. Si VIEJO es más barato (o igual), no hacer nada. Si, por el contrario, SUCESOR es más barato, cambiar el enlace-padre de VIEJO para apuntar a MEJOR-NODO, registrar el nuevo camino más barato en g(viejo) y actualizar f(VIEJO). Añadir VIEJO a la lista de sucesores de MEJOR-NODO. ii.- Si SUCESOR no está ya en OPEN, ver si está en CLOSED. Si es así, llamar VIEJO a este nodo. Ver cual de los dos caminos, el nuevo o el viejo, es más barato (como en el paso anterior), y ajustar el enlace-padre, y los valores de g y f para VIEJO, según se indica en el apartado c.i.. Si se ha encontrado un camino mejor a VIEJO, esta mejora se debe propagar a los sucesores de VIEJO. Para conseguir esto, hay que tener en cuenta que VIEJO contiene la lista de sus sucesores. A su vez, cada uno de ellos tiene, respectivamente, la lista de sus sucesores, y así sucesivamente, hasta que cada rama termina con un nodo que, o bien está en OPEN, o no tiene sucesores. Por tanto, para propagar el nuevo coste hacia abajo, hay que hacer una búsqueda en profundidad del subarbol que comienza en VIEJO; cambiando el valor g de cada nodo (y luego el de f), y terminando cada rama cuando se llega, bien a un nodo sin sucesores o a un nodo que ya tenía un camino equivalente o mejor (esto garantiza que el algoritmo termina aún cuando se encuentren bucles en el h grafo). Para comprobar esta última condición, ay que recordar c que el enlace-padre de ada nodo apunta hacia el mejor padre de generados hasta el momento. Añadir VIEJO a la lista de sucesores de MEJOR-MODO.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. d.- Si SUCESOR no está ya en OPEN o en CLOSED: Poner SUCESOR EN OPEN y sumarlo a la lista de sucesores de MEJOR- NODO. Evaluar: f(SUCESOR) =g(SUCESOR) + h(SUCESOR).EJEMPLO.¿Es posible aplicar el método de búsqueda A* en este "mapa de carreteras"?Si tenemos la función f(N) = g(N) + h(N) donde: g(N) = menor distancia real desde el inició hasta N. h(N) = menor distancia estimada desde N hasta la meta.Mediante las coordenadas X, Y de cada nodo se puede calcular la distancia entrecada par de nodos, luego sí podemos hallar la g(N). Igualmente podemos estimarla "distancia en línea recta" desde N hasta la meta, por lo tanto, también se puedehallar h(N). Por consiguiente, podemos aplicar el método de A*.1.- Hay un único nodo de OPEN, el origen A.OPEN AP(A) = NULL g(A) = 0 h(A) = √173 f(A) = √173 quedando al final de esta primera etapa: OPEN = A CLOSED =NIL2.- A ≠ Meta y además es el único nodo en OPEN luego, CLOSED AUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Generamos los sucesores de A B, C ∉ OPEN v CLOSED P(B) = A P(C) = A g(B) = g(A) + dist (A - B) g(C) = g(A) + dist (A - C) = 0+√10 =√10 = 0+√20 h(B) = √109 h(C) = √81 f(B) = √10 + √109 = 13.6 f (C) = √20 + √81 = 13.47 OPEN B OPEN C quedando al final-de esta etapa: OPEN B, C CLOSED A3.- f(C) < f(B) luego metemos C a CLOSED CLOSED CGeneramos los sucesores de C, que en este caso es únicamente D D ∉ OPEN v CLOSED P(D) = C g(D) = g(C) + dist(C - D) = √20+√8=7.3 h(D)= √53 f(D)=7.3+√53=14.58 OPEN D Quedando al final de esta etapa: OPEN B, D CLOSED A, C4.- f(B) < f(D) CLOSED BGeneramos los sucesores de B que en este caso serían D y Cel sucesor D Є OPEN el sucesor C Є CLOSED P(D) = B P(C) = B g(D) = g(B) + dist (13 - D) g(C) = g(B) + dist (B - C) =√10 +√10 = 6.32 =√10+√10 = 6.32 g(D) = 6.32 < g (D) = 7. 3 g’ (C) > g(C) Luego hay que modificar luego no cambia nada P(D) = B P(C) = A g(D) = 6.32 g(C) = 4.47Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. f (D) = g(D) + h (D) f(C) = 13.47 = 6.32 + √53 = 13.6Quedando al final de esta etapa: OPEN D CLOSED A, B5.- Solo hay un nodo en OPEN, luego no hay que compararlo CLOSED DGeneramos los sucesores de D, y en este caso son E y F E ∉ OPEN v CLOSED F ∉ OPEN v CLOSED P(E) = D P(F) = D g(E) = g(D) + dist (D - E) g(F) = g(D) + dist (D - F) = 6.32 + √37 = 12.4 =6.32 + √8=9.15 h(E) = √10 h(F) = √25 = 5 f(E) =12.4 + √10 = 15.56 f(F) = 9.15+5 OPEN E OPEN F Quedando al final de esta etapa: OPEN E, F CLOSED A, B, D6.- f(F) < f(E), por lo tanto, metemos F en CLOSED CLOSED FGeneramos los sucesores de F, siendo en este caso solo G G ∉ OPEN v CLOSED P(G) = F g(G) = g(F) + dist (F - G) = 9.15 + 5 = 14.15 h(G) = 0 f(G)=14.15+0=14.15 OPEN GQuedando al final de esta etapa: OPEN E, G CLOSED A, B, D, F7.- f(G) < f(E) y además G es la meta luego metemos G a CLOSED CLOSED GUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Quedando al final de esta etapa:OPEN ECLOSED A, B, D, F, GPara, por fin, obtener el camino solución: G P(G) = F P(F) = D P(D) = B P(B) = AAscenso de ColinaBúsqueda mediante el ascenso de colina: Se procede como en el caso de la búsqueda enprofundidad, excepto que se ordenan las selecciones de acuerdo con alguna mediciónheurística de la distancia que queda por recorrer a la meta. Cuanto mejor sea la mediciónheurística, mejor será el ascenso de colina con relación a la búsqueda en profundidadnormal.El método de escalar colinas es el más simple de los métodos heurísticos. El nombre vienede la analogía existente entre el espacio del problema y un plano bidimensional donde lafunción heurística define la elevación de cada punto y la meta es alcanzar el punto más altodel terreno.Escalar colinas funciona efectuando movimientos en la dirección que tenga la subida máspronunciada localmente. Lo único que se memoriza es el estado en curso y el queoriginalmente era el nodo raíz. En cada ciclo se expande el nodo en curso y se aplica lafunción heurística a cada uno de sus sucesores y el que tenga el mejor valor se convierte enel nuevo estado en curso.Es semejante a la búsqueda en profundidad, excepto que el método de escalar colinasordena los posibles estados a elegir en cada paso de la búsqueda de acuerdo con algunamedida 1 función heurística de la distancia que queda desde cada uno de ellos hasta lameta. Cuanto mejor sea la medida heurística mejores resultados dará el método de escalarcolinas con respecto al de profundidad.Para llevar a cabo una búsqueda en ascenso de colina debe:1. Forme una cola de un elemento consistente en una trayectoria de longitud cero quecontenga solo al nodo raíz;2. Hasta que la primera trayectoria de la cola termine en el nodo meta o se vacíe la cola, 2.1 Elimine la primera trayectoria de la cola; cree nuevas trayectorias extendiendo el primer paso a todos los vecinos del nodo terminal; 2.2. Rechace todas las trayectorias nuevas con ciclos;Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. 2.3. Ordena las trayectoria nuevas, si las hay, según las distancias estimadas entre sus nodos terminales y la meta. 2.3. Agregue las nuevas trayectorias, si las hay, al frente de la fila.3. Si el nodo meta se alcanza, mencione que hubo éxito; de otro modo, notifique el fracaso.Siempre que se enfrente a un problema de búsqueda note que: un mayor conocimiento suelereducir el tiempo de búsqueda.Ejemplo:En la siguiente figura se muestran las distancias existentes desde cada ciudad a la meta. 10.4 B C A 6.7 4.0 11.0 S G D 8.9 6.9 3.0 E FSi desea alcanzar la meta, en general resulta mejor estar en la ciudad que se encuentre mascerca, aunque no necesariamente; la ciudad C se encuentra más cerca que las demás , conexcepción de la ciudad F, pero la ciudad C no es un lugar muy adecuado para estar. Lameta encontrada empleando la búsqueda de ascenso de colina es: S – D – E – F - G. S 10.4 8.9 A D 10.4 6.9 A E 3.0 6.7 B F GUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.ORDENAR UNA PILA DE BLOQUES.OPERADORES PARA LOS BLOQUES:1. Libre(x) → Sobre(x, Mesa)2. Libre(x) Y Libre(y) → Sobre(x, y)FUNCIÓN HEURÍSTICA:Local: Añadir un punto por cada bloque sobre el lugar correcto. Restar un punto por cada bloquesobre el lugar incorrecto.Global: Para cada bloque que esté sobre la estructura de apoyo correcta (es decir, la estructuraque tiene debajo es exactamente la que tiene que ser), añadir un punto por cada bloque en la pila.Para cada bloque que está sobre una estructura incorrecta, restar un punto por cada bloque en lapila.BÚSQUEDA EN HAZ: La búsqueda en haz es parecida a la búsqueda en amplitud encuanto a que avanza nivel por nivel. Sin embargo, se diferencia de esta, la búsqueda en hazse mueve hacia abajo solo a través de los mejores nodos de cada nivel; los otros nodos seignoran.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.CUARTA UNIDAD:PROLOG (PROGRAMACIÓN LÓGICA)4.1. Introducción4.2. Hechos4.3. Variables4.4. Reglas4.5. El ámbito de las variables4.6. Operadores4.7. La resolución de objetivos4.8. El mecanismo de control de PROLOG4.9. Entrada / Salida4.10. Historia y desarrollo de Prolog4.11. Tipos de datos en Prolog4.12. Estructura de un programa PROLOG4.13. Funciones y Pasos de Parámetros.4.14. Estructuras de Datos en PrologIntroducción.La Quinta Generación prevé máquinas diseñadas para el tratamiento lógico, de capacidadesanálogas a las capacidades de anteriores generaciones de ordenadores para trataroperaciones aritméticas. Se trata de ordenadores que tienen el PROLOG como lenguajenativo (lenguaje máquina), con capacidad para procesar millones de inferencias lógicas porsegundo (LIPS.)La programación lógica es un paradigma de los lenguajes de programación en el cual losprogramas se consideran como una serie de aserciones lógicas. De esta forma, elconocimiento se representa mediante reglas, tratándose de sistemas declarativos. Unarepresentación declarativa es aquélla en la que el conocimiento está especificado, pero noviene dada la manera en que dicho conocimiento debe ser usado. El más popular de lossistemas de programación lógica es el PROLOG.Prolog es un lenguaje de programación hecho para representar y utilizar el conocimiento que setiene sobre un determinado dominio. Más exactamente, el dominio es un conjunto de objetos y elconocimiento se representa por un conjunto de relaciones que describen las propiedades de losobjetos y sus interrelaciones. Un conjunto de reglas que describa estas propiedades y estasrelaciones es un programa Prolog.Prolog es un lenguaje de programación que es usado para resolver problemas que envuelven objetosy las relaciones entre ellos.Un programa escrito en PROLOG puro, es un conjunto de claúsulas de Horn. Sin embargo,PROLOG, como lenguaje de programación moderno, incorpora más cosas, comoinstrucciones de Entrada/Salida, etc.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Una claúsula de Horn puede ser ó bien una conjunción de hechos positivos ó unaimplicación con un único consecuente (un único termino a la derecha). La negación notiene representación en PROLOG, y se asocia con la falta de una afirmación (negación porfallo), según el modelo de suposición de un mundo cerrado (CWA); solo es cierto lo queaparece en la base de conocimiento ó bien se deriva de esta.HISTORIA Y DESARROLLO DE PROLOG.Una de las preocupaciones más tempranas de la computación de los años cincuenta fue laposibilidad de hacer programas que llevaran a cabo demostraciones automáticas de teoremas. Asíempezaron los primeros trabajos de inteligencia artificial que más de veinte años después dieronlugar al primer lenguaje de programación que contempla, como parte del intérprete, los mecanismosde inferencia necesarios para la demostración automática. Este primer lenguaje está basado en elformalismo matemático de la Lógica de Primer Orden y ha dado inicio a un nuevo y activo campode investigación entre las matemáticas y la computación que se ha denominado la ProgramaciónLógica.Estos mecanismos de prueba fueron trabajados con mucho entusiasmo durante una época, pero, porsu ineficiencia, fueron relegados hasta el nacimiento de PROLOG, ocurrido en 1970 en laUniversidad de Marsella, Francia, en el seno de un grupo de investigación en el campo de laInteligencia Artificial.La Programación Lógica tiene sus orígenes más cercanos en los trabajos de prueba automática deteoremas de los años sesenta. J. A. Robinson propone en 1965 una regla de inferencia a la que llamaresolución, mediante la cual la demostración de un teorema puede ser llevada a cabo de maneraautomática.La resolución es una regla que se aplica sobre cierto tipo de fórmulas del Cálculo de Predicados dePrimer Orden, llamadas cláusulas y la demostración de teoremas bajo esta regla de inferencia selleva a cabo por reducción al absurdo.Actualmente, la programación lógica ha despertado un creciente interés que va mucho más allá delcampo de la Inteligencia Artificial ( IA ) y sus aplicaciones. Los japoneses, con su proyecto demáquinas de la quinta generación, dieron un gran impulso a este paradigma de programación. Sinembargo, antes que ellos existían ya en Estados Unidos y en Europa grupos de investigación en estecampo, en países como Inglaterra, Holanda, Suecia y, desde luego, Francia.A principios de los años ochentas los japoneses comienzan a invertir recursos en un proyecto quedenominan la Quinta Generación, para lucrar con la buena fama de los 4GL. Con este ambiciosoproyecto Japón busca obtener el liderazgo en computación, usando como base la ProgramaciónLógica y la Inteligencia Artificial.La programación lógica tiene sus raíces en el cálculo de predicados, que es una teoría matemáticaque permite, entre otras cosas, lograr que un computador pueda realizar inferencias, capacidad quees requisito para que un computador sea una "máquina inteligente". La realización del paradigma dela programación lógica es el lenguaje Prolog.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.El Prolog estuvo un tiempo diseñado para ejecutarse en minicomputadoras o estaciones de trabajo,actualmente hay versiones en Prolog que pueden instalarse en computadores personales como IBM-PC y PC-Compatibles.PROgramación LOGicaLas diferencias sintácticas entre las representaciones lógicas y las representacionesPROLOG son las siguientes: • En PROLOG todas las variables están implícitamente cuantificadas universalmente. • En PROLOG existe un símbolo explicito para la conjunción "y" (","), pero no existe uno para la disyunción "o", que se expresa como una lista de sentencias alternativas. • En PROLOG, las implicaciones p --> q se escriben alrevés q :- p, ya que el interprete siempre trabaja hacia atrás sobre un objetivo, como se vera más adelante.Elementos fundamentales del lenguaje PROLOG. HECHOS VARIABLES REGLAS OPERADORESESTRUCTURA DE UN PROGRAMA PROLOGUn programa Prolog está formado por una secuencia de enunciados: hechos, reglas y comentarios.Una relación puede estar especificada por hechos, simplemente estableciendo objetos que satisfacenla relación o por reglas establecidas acerca de la relación. Cada regla está formada por un primermiembro (o la cabeza de la regla), un segundo miembro (o cola de la regla) ligados por " :- " ytermina con el carácter " . ".%código del programa%%Hechos ** mujer(maria). hombre(pedro). hombre(manuel). hombre(arturo).%%Relaciones ** padre(pedro,manuel). padre(pedro,arturo). padre(pedro,maria).%%Reglas ** nino(X,Y):- padre(Y,X) hijo(X,Y):-nino(X,Y),hombre(X). hija(X,Y):-nino(X,Y),mujer(X). hermano_o_hermana(X,Y):-padre(Z,X),padre(Z,Y).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. hermano(X,Y):-hermano_o_hermana(X,Y),hombre(X). hermana(X,Y):-hermano_o_hermana(X,Y),mujer(X).Hechos.Expresan relaciones entre objetos. Supongamos que queremos expresar el hecho de que "uncoche tiene ruedas". Este hecho, consta de dos objetos, "coche" y "ruedas", y de unarelación llamada "tiene". La forma de representarlo en PROLOG es: tiene(coche,ruedas). • Los nombres de objetos y relaciones deben comenzar con una letra minúscula. • Primero se escribe la relación, y luego los objetos separados por comas y encerrados entre paréntesis. • Al final de un hecho debe ir un punto (".").El orden de los objetos dentro de la relación es arbitrario, pero debemos ser coherentes a lolargo de la base de hechos.Ejemplo:Suponga que queremos escribir la información genealógica de un grupo de personas. Paraesto podemos utilizar los predicados madre y padre del siguiente modo:padre(juan, amanda).madre(ximena, amanda).madre(laura, juan).padre(andres, juan).padre(patricio, bonifacio).padre(juan, patricio).padre(juan, ana).madre(ximena, ana).El prompt | ?— indica que el intérprete está listo para escuchar los requerimientos delusuario. A partir de esto uno puede hacer consultas:| ?- madre(ximena,ana).yes| ?- padre(juan, ana).yes| ?- padre(juan, ximena).noNótese que PROLOG responde yes, sólo cuando el hecho asociado aparece en la base dedatos que tiene almacenada, o cuando se deriva de la información almacenada.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Una pregunta más interesante involucra el uso de variables. Por ejemplo, si queremos sabersi existe alguien que sea el padre de Juan, podemos preguntar:| ?- padre(X,juan).X = andres ?;no| ?-Al decir padre (X , juan) estamos preguntándole a PROLOG si existe alguna interpretaciónpara la variable X que haga que padre (X, juan) sea verdadera. PROLOG responde que X =andres es un valor que haria que la consulta sea verdadera.Mediante el signo ?. PROLOG pregunta si se desea buscar otra solución para el mismoproblema. Al decir “;” se le indica a PROLOG que efectivamente uno quiere buscar otrasolución. Al no haber otra solución. PROLOG responde no.Otro ejemplo puede ser:| ?- madre(X,Y).X = ximena,Y=amanda?;X = laura,Y = juan ?;X = ximena,Y = ana ?no| ?-En este último ejemplo. PROLOG busca todos los pares (X, Y) tales que madre (X, Y) esverdadero. También es posible realizar preguntas más complejas. Por ejemplo, supongamosque queremos saber ¿quién es el abuelo paterno de ana?:| ?- padre(X,ana), padre(Y,X).X = Juan,Y = andres ?;No| ?-En este ejemplo, la consulta padre (X,ana), padre(Y,X). se procesa en orden. Primero seresuelve la subconsulta padre (X, ana) y los valores resultantes de X se usan para responderla segunda subconsulta. La “;” se interpreta como conjunción.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.TIPOS DE DATOS EN PROLOGSymbol: Hay dos tipos de símbolos. Un grupo de caracteres consecutivos (letras, números y signosde subrayado) que comienzan con un carácter en minúscula. Ejemplo: alto, alto_edificio, el_alto_ edificio_en_la_ciudadUn grupo de caracteres consecutivos(letras y números) que comienzan y terminan con doblescomillas("). Este tipo es útil cuando se quiere comenzar el símbolo con un carácter en mayúscula osi se quieres agregar espacios entre los caracteres del símbolo.Ejemplo: "alto","alto edificio"String: Cualquier grupo de caracteres consecutivos (letras y números) que comience y termine condobles comillas("). Es igual a símbolo pero Prolog los trata de forma distinta.Ejemplo: "alto","alto edificio"Integer: Cualquier número comprendido entre (-32.768 y 32.768). El límite esta determinadoporque los enteros se almacenan como valores de 16 bits, este límite puede variar según la versiónde Prolog. Ejemplo: 4,-300,3004Real: Cualquier numero real en el rango +/- 1E-307 a +/-1E+308. El formato incluye estasopciones: signo, numero, punto decimal, fracción, E(exponente), signo para el exponente,exponente. Ejemplo: 3,3.1415Char: Cualquier carácter de la lista ASCII estándar, posicionado entre dos comillas sencillas(‘).Ejemplos: ‘t’,‘X’,‘f’Variables.Representan objetos que el mismo PROLOG determina. Una variable puede estarinstanciada ó no instanciada. Esta instanciada cuando existe un objeto determinadorepresentado por la variable. De este modo, cuando preguntamos "¿Un coche tiene X?",PROLOG busca en los hechos cosas que tiene un coche y respondería: X = ruedas.Instanciando la variable X con el objeto ruedas. • Los nombres de variables comienzan siempre por una letra mayúscula.Un caso particular es la variable anónima, representada por el carácter subrayado ("_"). Esuna especie de comodín que utilizaremos en aquellos lugares que debería aparecer unaUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.variable, pero no nos interesa darle un nombre concreto ya que no vamos a utilizarlaposteriormente.En Prolog una variables se indica iniciando con mayúsculas (X, Y, Persona, ...). Lasvariables representan cualquier objeto y se usan dentro de los predicados (NO comonombres de predicados).Por ejemplo, si a Juan le pertenece “algo”: pertenece(juan,X).Reglas.Las reglas se utilizan en PROLOG para significar que un hecho depende de uno ó mashechos. Son la representación de las implicaciones lógicas del tipo p ---> q (p implica q). • Una regla consiste en una cabeza y un cuerpo, unidos por el signo ":-". • La cabeza está formada por un único hecho. • El cuerpo puede ser uno ó mas hechos (conjunción de hechos), separados por una coma (","), que actúa como el "y" lógico. • Las reglas finalizan con un punto (".").La cabeza en una regla PROLOG corresponde al consecuente de una implicación lógica, yel cuerpo al antecedente. Este hecho puede conducir a errores de representación.Supongamos el siguiente razonamiento lógico: tiempo(lluvioso) ----> suelo(mojado) suelo(mojado)Que el suelo está mojado, es una condición suficiente de que el tiempo sea lluvioso, pero nonecesaria. Por lo tanto, a partir de ese hecho, no podemos deducir mediante la implicación,que está‚ lloviendo (pueden haber regado las calles). La representación correcta enPROLOG, sería: suelo(mojado) :- tiempo(lluvioso). suelo(mojado).Adviértase que la regla está "al revés". Esto es así por el mecanismo de deducción haciaatrás que emplea PROLOG. Si cometiéramos el error de representarla como: tiempo(lluvioso) :- suelo(mojado). suelo(mojado).PROLOG, partiendo del hecho de que el suelo está mojado, deduciría incorrectamente queel tiempo es lluvioso.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Para generalizar una relación entre objetos mediante una regla, utilizaremos variables. Porejemplo: Representación lógica Representación PROLOG es_un_coche(X) ----> tiene(X,ruedas) tiene(X,ruedas) :- es_un_coche(X).Con esta regla generalizamos el hecho de que cualquier objeto que sea un coche, tendráruedas. Al igual que antes, el hecho de que un objeto tenga ruedas, no es una condiciónsuficiente de que sea un coche. Por lo tanto la representación inversa sería incorrecta.EjemploAl programa que teníamos anteriormente, podemos agregarle las siguientes reglas:abuelo(X,Y):- padre(X,Z), madre(Z,Y).abuelo(X,Y) :- padre(XZ), padre(Z,Y).Con estas reglas podernos consultar quién es abuelo de quién:| ?- abuelo(X,Y).X = andres,Y=ainanda ?;X = andres,Y = patricio ? ;X = andres,Y = ana ?;X = juan,Y = bonifacio ?;no| ?-Las reglas para abuelo se pueden escribir como la regla: abuelo(X,Y):— padre(X,Z), (madre(Z,Y);padre(Z,Y)).En esta notación el símbolo “;” se utiliza corno disyunción. La regla anterior es equivalentea las dos reglas originales. El uso de “;” debe restringirse intentando mantener la claridadde las reglas que se escriban. No es recomendable utilizar “;” cuando el resultado sea difícilde leer.Como ejercicio, defina la relación herm (X , Y) entre dos individuos. Esta relación seráverdadera cuando los dos sujetos tengan al padre o a la madre en común.Suponga que se desea definir la relación antecesor (X , Y). En primer término, definiremos: antecesorDirecto(X,Y) :— (padre(X,Y) ;madre(X,Y)).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Con el significado obvio Así, podremos escribir que: antecesor(X,Y) antecesorDirecto(X,Y). antecesor(X,Y) antecesorDirecto(X,Z), antecesor(Z,Y).De modo que obtenemos:| ?— entecesor(X,Y).X = juan,Y = amanda ? ;X = andres,Y = juan ? ;X = patricio,Y = bonifacio ?;X = juan,Y = patricio ?;% y así sucesivamenteEl ámbito de las variables.Cuando en una regla aparece una variable, el ámbito de esa variable es únicamente esaregla. Supongamos las siguientes reglas: (1) hermana_de(X,Y) :- hembra(X), padres(X,M,P), padres(Y,M,P). (2) puede_robar(X,P) :- ladron(X), le_gusta_a(X,P), valioso(P).Aunque en ambas aparece la variable X (y la variable P), no tiene nada que ver la X de laregla (1) con la de la regla (2), y por lo tanto, la instanciación de la X en (1) no implica lainstanciacion en (2). Sin embargo todas las X de una misma regla sí que se instanciarán conel mismo valor.Operadores.Son predicados predefinidos en PROLOG para las operaciones X = Y igualmatemáticas básicas. Su sintaxis depende de la posición que X = Y distintoocupen, pudiendo ser infijos ó prefijos. Por ejemplo el operadorsuma ("+"), podemos encontrarlo en forma prefija +(2,5) ó X < Y menorbien infija, 2 + 5. También disponemos de predicados de X > Y mayorigualdad y desigualdad. X =< Y menor ó igualAl igual que en otros lenguajes de programación es necesario X >= Y mayor ó igualtener en cuenta la precedencia y la asociatividad de los Verdadero si X e X=:=Yoperadores antes de trabajar con ellos. Y son iguales Verdadero si X eEn cuanto a precedencia, es la típica. Por ejemplo, 3+2*6 se X== Y son diferentesevalúa como 3+(2*6). En lo referente a la asociatividad,Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.PROLOG es asociativo por la izquierda. Así, 8/4/4 se interpreta como (8/4)/4. De igualforma, 5+8/2/2 significa 5+((8/2)/2).Aritmética: comparaciones: =, $<$, $>$, $=<$, $>=$, $/=$ (resultado binario) operaciones: +, -, *, / (división float), // (división integer), mod (números enteros)X is A $<$op$>$ B (“X” debe ser una variable no instanciada)El operador is.Es un operador infijo, que en su parte derecha lleva un término que se interpreta como unaexpresión aritmética, contrastándose con el término de su izquierda.Por ejemplo, la expresión 6 is 4+3. es falsa. Por otra parte, si la expresión es X is 4+3., elresultado será la instanciación de X: X=7Una regla PROLOG puede ser esta: densidad(X,Y) :- poblacion(X,P), area(X,A), Y is P/A.Algunos comandos básicos • consult: El predicado consult esta pensado para leer y compilar un programa PROLOG o bien para las situaciones en las que se precise añadir las cláusulas existentes en un determinado fichero a las que ya están almacenadas y compiladas en la base de datos. Su sintaxis puede ser una de las siguientes: consult ( fichero ). consult( fichero.ext ). consult( c:iaprologfichero ). • recon: El predicado recon es muy parecido a consult, con la salvedad de que las cláusulas existentes en el fichero consultado, reemplazan a las existentes en la base de hechos. Puede ser útil para sustituir una única cláusula sin consultar todas las demás, situando esa cláusula en un fichero. Su sintaxis es la misma que la de consult. • forget: Tiene como fin eliminar de la base de datos actual aquellos hechos consultados de un fichero determinado. Su sintaxis es: forget( fichero ). • exitsys: Este predicado nos devuelve al sistema operativo.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Programación básica en PROLOG.Con los datos que conocemos, ya podemos construir un programa en PROLOG.Necesitaremos un editor de textos para escribir los hechos y reglas que lo componen. Unejemplo sencillo de programa PROLOG es el siguiente: quiere_a(maria,enrique). quiere_a(juan,jorge). quiere_a(maria,susana). quiere_a(maria,ana). quiere_a(susana,pablo). quiere_a(ana,jorge). varon(juan). varon(pablo). varon(jorge). varon(enrique). hembra(maria). hembra(susana). hembra(ana). teme_a(susana,pablo). teme_a(jorge,enrique). teme_a(maria,pablo). /* Esta linea es un comentario */ quiere_pero_teme_a(X,Y) :- quiere_a(X,Y), teme_a(X,Y). querido_por(X,Y) :- quiere_a(Y,X). puede_casarse_con(X,Y) :- quiere_a(X,Y), varon(X), hembra(Y). puede_casarse_con(X,Y) :- quiere_a(X,Y), hembra(X), varon(Y).Una vez creado, lo salvaremos para su posterior consulta desde el interprete PROLOG. Unprograma PROLOG tiene como extensión por defecto .PRO. Le daremos el nombrerelacion.pro.Un programa de “relaciones familiares” definiendo la relación “abuelo”. Sería: % familia: % hechos: m(luis). m(rico). m(fuhed). m(edgar). f(aida). f(bety). f(shafy). papa(fuhed,luis). mama(aida,luis).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. papa(fuhed,rico). papa(luis,edgar). papa(fuhed,bety). papa(fuhed,shafy). papa(jesus,fuhed). % reglas: abuelo(X, Z) :- papa(X,Y), papa(Y, Z). abuelo(X,Z) :- papa(X, Y), mama(Y, Z).Otro ejemplo.A modo de ilustración considere el siguiente programa:grande (oso).grande(elefante).pequeno (gato).cafe(oso).negro (gato).gris(elefante).oscuro(Z) :- negro(Z).oscuro(Z) :— cafe(Z).Junto con la consulta:? - oscuro(X), grande(X).La ejecución del programa PROLOG es equivalente a realizar una búsqueda enprofundidad en un espacio definido por el programa y por el objetivo inicial.La resolución de objetivos.Hemos creado un programa PROLOG [relacion.pro]. A partir de este momento podemosinterrogar la base de hechos, mediante consultas.Una consulta tiene la misma forma que un hecho.Consideremos la pregunta: ?-quiere_a(susana,pablo).PROLOG buscar por toda la base de conocimiento hechos que coincidan con el anterior.Dos hechos coinciden si sus predicados son iguales, y cada uno de sus correspondientesargumentos lo son entre sí. Si PROLOG encuentra un hecho que coincida con la pregunta,responderá yes. En caso contrario responderá no.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Además, una pregunta puede contener variables. En este caso PROLOG buscara por toda labase de hechos aquellos objetos que pueden ser representado por la variable. Por ejemplo:?-quiere_a(maria, Alguien).[NOTA: Alguien es un nombre perfectamente válido de variable, puesto que empieza poruna letra mayuscula.]El resultado de la consulta es: Alguien = enriqueEl hecho quiere_a(maria,enrique). coincide con la pregunta al instanciar la variableAlguien con el objeto enrique. Por lo tanto es una respuesta valida, pero no la única. Poreso se nos pregunta si queremos obtener más respuestas. En caso afirmativo, obtendríamos:Alguien = susanaAlguien = anaLa “,” (coma) representa una conjunción (Y). Es decir que hay que probar ambas submetaspara probar la meta representada por la regla.Negación - en Prolog se implementa por lo que se conoce como negación por fallo, es decirque si algo no se puede probar se considera falso.La disjunción (O) se puede implementar mediante dos reglas con la misma meta.También se pueden tener reglas recursivas, en las que una submeta es la misma meta (debehaber una condición de terminación). Esto se ilustra en el resto del ejemplo de la familia: hermano(X, Z) :- papa(Y,X), papa(Y, Z), not(X=Z). tio(X, Z) :- m(X), papa(Y, Z), hermano(X,Y). tia(X,Z):-f(X),papa(Y,Z),hermano(X,Y). proj(X, Y) :- papa(X, Y). proj(X, Y) :- mama(X, Y). ancestro(X, Z) :- proj(X, Z). ancestro(X, Z) :- proj(X, Y), ancestro(Y, Z).El operador "not".Se define de tal forma que el objetivo not(X) se satisface solo si fracasa la evaluación de X. Enmuchos casos, puede sustituir al operador corte, facilitando la lectura de los programas. Porejemplo: a :- b, c. a :- not(b), d. Equivale a: a :- b, !, c. a :- d.Sin embargo, en términos de coste, el operador corte es más eficiente, ya que en el primer casoPROLOG intentará satisfacer b dos veces, y en el segundo, solo una.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Estructuras de datos: Las Listas Lista Cabeza ColaUna lista es una arreglo ordenado se elementos cuya [a,b,c,d] a [b,c,d]longitud (numero de elementos) es variable. La lista esuna estructura de datos muy común en la programación no [a] a [] (lista vacía)numérica. Es una secuencia ordenada de elementos que [] no tiene no tienepuede tener cualquier longitud. Ordenada significa que elorden de cada elemento es significativo. Un elemento [[a,b],c] [a,b] [c]puede ser cualquier término e incluso otra lista. Se [a,[b,c]] a [[b,c]]representa como una serie de elementos separados por [a,b,[c,d]] a [b,[c,d]]comas y encerrados entre corchetes.Por ejemplo: [Dom, Lun, Mar, Mier, Jue, Vier, Sab]En Prolog se representa con una serie de elementos separados por “,” entre paréntesis cuadrados.Ejemplos: [a,b,c] [ ] - lista vacía [a,[b,c],d] - un elemento puede ser a su vez una listaPara procesar una lista, la dividimos en dos partes: la cabeza y la cola. Por ejemplo:Para dividir una lista, utilizamos el símbolo "|". Una expresión con la forma [X | Y] instanciar X a lacabeza de una lista e Y a la cola. Es decir, las listas se manipulan especificando su “cabeza” (Head -primer elemento), y “cola” (Tail - lista del resto de los elementos.) Por ejemplo: p([1,2,3]). p([el,gato,estaba,[en,la,alfombra]]). ?-p([X|Y]). X = 1, Y = [2,3] More (Y/N):y X = el, Y = [gato,estaba,[en,la,alfombra]] ------------------------------------------ [a,b,c] - H = a, T = [b,c] [a] - H = a, T = [ ] [[b,c],d] - H = [b,c], T = [d] [ ] - H = fail, T = [ ]El valor de las listas en un programa Prolog disminuye si no es posible identificar los elementosindividuales que habrán de integrarlas. Debido a ello, es necesario tener en cuenta el concepto de suUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.división en dos partes: cabeza y cola. La cabeza de la lista es el primer elemento de la misma. Lacola es el resto de la lista, sin importar lo que pueda contener.Para hacer uso practico de la capacidad de dividir listas en cabeza y cola, Prolog proporciona unanotación especial con la que se definen las listas en los programas. Existen dos símbolos especialesque se utilizan: El corchete abierto /cerrado. Se usa para denotar el inicio y el final de una lista. Elseparador, su símbolo es | y se usa para permitir que una lista se represente como una cabeza y unacola. Para procesar una lista, la dividimos en dos partes: la cabeza y la cola.Ejemplo: Lista Cabeza Cola ----- ------ ---- [a, b, c, d] a [b, c, d] [a] a [ ] (lista vacía) [ ] no tiene no tiene elementos [[a, b],c] [a, b] [c] [a,[b, c]] a [[b, c]] [a, b,[c, d]] a [b,[c, d]]Para dividir una lista, utilizamos el símbolo "|". Una expresión con la forma [ X | Y ] instanciar “X”a la cabeza de una lista e “Y” a la cola.Ejemplo: p([1,2,3]). ?-p([X | Y]). X = 1, Y = [2,3] p([el, gato, estaba,[ en, la, alfombra ]]). ?-p([X | Y]). X = el, Y = [gato, estaba, [en, la, alfombra]]Se pueden hacer estructuras tan complejas como se quiera en Prolog. Se pueden poner listas dentrode listas.Ejemplo:animales([[mono, búfalo, rata], [serpiente, iguana, cocodrilo], [paloma, pingüino]])A continuación veremos algunas operaciones importantes con listas. % inserta un elemento al inicio de una lista: inserta(E,Li,Lf):-Lf=[E$|$Li]. % inserta mejorado: inserta2(E,Li,[E$|$Li]). % match. match([],[]).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. match([H1$|$T1],[H2$|$T2]):-H1=H2, match(T1,T2). % concatena 2 listas (para búsqueda): agrega([ ],L,L). agrega([H$|$L1],L2,[H$|$L3]):- agrega(L1,L2,L3).Operador corteUtilizando el operador de corte, observaremos el siguiente comportamiento:| ?— rnernber(X,[a,b)), !.X = a ?;no| ?-Cuando se encuentra con el objetivo !, PROLOG se compromete con todas las unificaciones que sehan realizado antes del ! y desde el momento que se introduce el ! a la lista de objetivos pendientes.Como estilo de programación se recomienda escribir programas sin corteLa recursividad.La recursividad es un mecanismo que da bastante potencia a cualquier lenguaje de programación.Veamos un ejemplo de programación recursiva que nos permitirá determinar si un átomo esmiembro de una lista dada: (1) miembro(X,[X|_]). (2) miembro(X,[_|Y]) :- miembro(X,Y).La regla (1) es el caso base de la recursión. Se evaluará como cierta siempre que coincida lavariable X con la cabeza de la lista que se pasa como argumento. En la regla (2) está la definiciónrecursiva. X es miembro de una lista si lo es de la cola de esa lista (la cabeza se comprueba en laregla (1)).La regla (1) es una simplificación de la regla: miembro(X,[Y|_]) :- X = Y. La traza para el caso de miembro(b,[a,b,c]). es la siguiente: (1) miembro(b,[a,b,c]) :- b = a. ---> no. (2) miembro(b,[a,b,c]) :- miembro(b,[b,c]). (1) miembro(b,[b,c]) :- b = b. ---> yes.Si necesitamos conocer la longitud de una lista, emplearemos una función recursiva como lasiguiente: longitud([],0).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. longitud([_|Y],L1) :- longitud(Y,L2), L1 is L2 + 1. Otro ejemplo muy típico de función recursiva es el del factorial de un número: factorial(0,1) :- !. factorial(X,Y) :- X1 is X-1, factorial(X1,Y1), Y is X*Y1.ENTRADA / SALIDA PROLOG, al igual que la mayoría de lenguajes de programación modernos incorpora predicados predefinidos para la entrada y salida de datos. Estos son tratados como reglas que siempre se satisfacen. • write: Su sintaxis es: write(Hola mundo). Las comillas simples encierran constantes, mientras que todolo que se encuentra entre comillas dobles es tratado como una lista. También podemos mostrar elvalor de una variable, siempre que este instanciada: write(X). • nl: El predicado nl fuerza un retorno de carro en la salida.Ejemplo: • write(línea 1), nl, write(línea 2). tiene como resultado: línea 1 línea 2 • read: Lee un valor del teclado. La lectura del comando read no finaliza hasta que se introduce un punto ".". Su sintaxis es: read(X). Instancia la variable X con el valor leído del teclado. read(ejemplo).Se evalúa como cierta siempre que lo tecleado coincida con la constante entre paréntesis (en estecaso ejemplo).Por ejemplo con, write(X), si “X” esta instanciada se despliega su valor, si no se despliega unidentificador.Por ejemplo con, read(X), si “X” no esta instanciada se instancia al valor leído, si no se compara elvalor que tiene con el leído y falla si son diferentes.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.EL MECANISMO DE CONTROL DE PROLOGEl mecanismo empleado por PROLOG para satisfacer las cuestiones que se le plantean, es el derazonamiento hacia atrás (backward) complementado con la búsqueda en profundidad (depth first) yla vuelta atrás o reevaluación (backtracking).Razonamiento hacia atrás: Partiendo de un objetivo a probar, busca las aserciones que puedenprobar el objetivo. Si en un punto caben varios caminos, se recorren en el orden que aparecen en elprograma, esto es, de arriba a abajo y de izquierda a derecha.Reevaluación: Si en un momento dado una variable se instancia con determinado valor con el finde alcanzar una solución, y se llega a un camino no satisfactorio, el mecanismo de control retrocedeal punto en el cual se instanció la variable, la desinstancia y si es posible, busca otra instanciaciónque supondrá un nuevo camino de búsqueda.Ejemplo: Se puede ilustrar esta estrategia sobre el ejemplo anterior. Supongamos la pregunta: ?-puede_casarse_con(maria, X).PROLOG recorre la base de datos en busca de un hecho que coincida con la cuestión planteada. Loque halla es la regla:puede_casarse_con(X, Y) :- quiere_a(X, Y), varon(X), hembra(Y).Produciéndose una coincidencia con la cabeza de la misma, y una instanciación de la variable “X”de la regla con el objeto maria. Tendremos por lo tanto: (1) puede_casarse_con(maria,Y) :- quiere_a(maria,Y), varon(maria), hembra(Y).A continuación, se busca una instanciación de la variable “Y” que haga cierta la regla, es decir, queverifique los hechos del cuerpo de la misma.La nueva meta será : (2) quiere_a(maria, Y).De nuevo PROLOG recorre la base de datos. En este caso encuentra un hecho que coincide con elobjetivo: quiere_a(maria, enrique).instanciando la variable “Y” con el objeto enrique. Siguiendo el orden dado por la regla (1),quedan por probar dos hechos una vez instanciada la variable “Y”: varon(maria), hembra(enrique).Se recorre de nuevo la base de datos, no hallando en este caso ninguna coincidencia con el hecho“varón(maria)”. Por lo tanto, PROLOG recurre a la vuelta atrás, desistanciando valor de la variable“Y”, y retrocediendo con el fin de encontrar una nueva instanciación de la misma que verifique elhecho (2). Un nuevo recorrido de la base de hechos da como resultado la coincidencia con: quiere_a(maria, susana).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Se repite el proceso anterior. La variable Y se instancia con el objeto susana y se intentan probarlos hechos restantes: varón(maria), hembra(susana).De nuevo se produce un fallo que provoca la desinstanciación de la variable “Y”, así como unavuelta atrás en busca de nuevos hechos que coincidan con (2). Una nueva reevaluación da comoresultado la instanciación de “Y” con el objeto ana (la ultima posible), y un nuevo fallo en el hecho“varón(maria).” Una vez comprobadas sin éxito todas las posibles instanciaciones del hecho (2),PROLOG da por imposible la regla (1), se produce de nuevo la vuelta atrás y una nueva búsquedaen la base de datos que tiene como resultado la coincidencia con la regla: (3) puede_casarse_con(maria,Y) :- quiere_a(maria,Y), hembra(maria), varon(Y).Se repite todo el proceso anterior, buscando nuevas instanciaciones de la variable “Y” queverifiquen el cuerpo de la regla. La primera coincidencia corresponde al hecho: quiere_a(maria,enrique).que provoca la instanciación de la variable “Y” con el objeto enrique. PROLOG tratar de probarahora el resto del cuerpo de la regla con las instanciaciones actuales: hembra(maria), varon(enrique).Un recorrido de la base de datos, da un resultado positivo en ambos hechos, quedando probado ensu totalidad el cuerpo de la regla (3) y por lo tanto su cabeza, que no es mas que una de lassoluciones al objetivo inicial. X = enriquePROLOG utiliza un mecanismo de búsqueda independiente de la base de datos. Aunque puedaparecer algo ilógico, es una buena estrategia puesto que garantiza el proceso de todas lasposibilidades. Es útil para el programador conocer dicho mecanismo a la hora de depurar yoptimizar los programas.ControlProlog realiza, en forma general, una búsqueda por profundidad con retroceso(“backtracking”). Al intentar probar una meta (regla), busca primero probar la primeracondición, después la segunda, etc. Si alguna es falsa, entonces falla dicha regla, e intenta lasiguiente regla (si existe) para la misma meta.Hay ciertas formas de alterar la estrategia básica de búsqueda:CUT (!) - evita el ``backtrackingUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ejemplos: X:- a,b,c,!,d,e. Predicados mutuamente exclusivos - escalón: esc(X,-1):- X $<$ 0, !. esc(X, 0):- X $=$ 0, !. esc(X, 1):- X $>$ 0, !.FAIL - siempre es falso (TRUE - siempre es verdadero)Ejemplos: impuesto(Persona, X) :- desempleado(Persona), !, fail. impuesto(Persona, X) :- ... Excepciones: diferente(X,X):-!,fail. diferente(X,Y).NOT - verdadero si no se puede probar la meta.Predicado predefinido que se podría definir como:not(P):-P,!,fail. not(P)Ordenamiento de ListasUna solución es insertar el elemento en el lugar que le corresponde: sort([H|T],LO) :- insertao(H,[F|T],[F|R]) :- sort(T,TO), H > F, insertao(H,TO,LO). insertao(H,T,R). sort([],[]). insertao(H,[F|R],[H,F|R]) :- insertao(H,[],[H]). H =< F.Método Quicksort (Ej. Dividir en menores y mayores a un cierto elemento, ordenarlos yjuntarlos todos.) qsort([H|T],LO) :- El > H, divide(H,T,Men,May), divide(El,T,Men,May). qsort(Men,MenO), divide(El,[H|T],Men,[H|May]) :- qsort(May,MayO), El < H, agrega(MenO,[H|MayO],LO). divide(El,T,Men,May). qsort([],[]). divide(_,[],[],[]). divide(El,[H|T],[H|Men],May) :-Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Manipulación de la Base de ConocimientosUn programa en Prolog se puede ver como una ``base de datos, de forma que esta puede sermodificada dinámicamente -- agregando y borrando cláusulas. Para ello existen varios predicadospredefinidos:assert: agregar una cláusula a la base de datosasserta: agregar una cláusula al inicio de la base de datosassertz: agregar una cláusula al final la base de datosretract: borra una cláusula de la base de datosEjemplos:assert(padre(juan,rita)).retract(padre(juan,rita)).Estas facilidades son muy poderosas y útiles en algunas aplicaciones, pero hay que usarlas concuidado ya que en realidad se esta modificando el programa resultando en que en diferentesmomentos puede dar diferentes resultados.Sistemas Expertos en PrologEs casi inmediato el implementar un sistema de reglas de producción en Prolog, ya que suscláusulas se pueden ver como reglas y su interprete como una maquina de inferencias la cual realizaencadenamiento hacia atrás y búsqueda en profundidad.Un sistema experto para créditos bancarios podría codificarse como el siguiente programa enProlog: prest(X,C):- solv(X,C),hist(X,C),ref(X,C). hist(X,C):- tarjeta(X,T1),tarjeta(X,T2). hist(X,C):- prestamo(X,casa). hist(X,C):- prestamo(X,carro). solv(X,C):- ing(X,I), P is C / 10, T is 3 * P, I > T. ref(X,C):- refer(X,Y), refer(X,Z), refer(X,W), not(Y=Z), not(Z=W). % Un caso: prestamo(juan,carro). ing(juan,100). refer(juan,pedro). refer(juan,maria). refer(juan,sol).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.FUNCIONES Y PASOS DE PARÁMETROS.La recursividad es un mecanismo que da bastante potencia a cualquier lenguaje de programación.Ejemplo: La siguiente programación recursiva nos permitirá determinar si un tomo es miembro deuna lista dada: (1) miembro(X,[X|_]). (2) miembro(X,[_|Y]) :- miembro(X,Y).La regla (1) es el caso base de la recursión. Se evalúa como cierta siempre que coincida la variable“X” con la cabeza de la lista que se pasa como argumento. En la regla (2) es la definición recursiva.“X” es miembro de una lista si lo es de la cola de esa lista (la cabeza se comprueba en la regla (1)).La regla (1) es una simplificación de la regla: miembro(X,[Y|_]) :- X = Y.La traza para el caso de miembro(b,[a,b,c]). es la siguiente: (1) miembro(b,[a,b,c]) :- b = a. no. (2) miembro(b,[a,b,c]) :- miembro(b,[b,c]). (1) miembro(b,[b,c]) :- b = b. yes.Si necesitamos conocer la longitud de una lista, emplearemos una función recursiva como lasiguiente: longitud([ ],0). longitud([_|Y],L1) :- longitud(Y,L2), L1 is L2 + 1.Otro ejemplo muy típico de función recursiva es el del factorial de un número: factorial(0,1) :- !. factorial(X, Y) :- X1 is X-1, factorial(X1,Y1), Y is X * Y1.La definición de una función esta en los hechos que adoptemos para inferir sobre la base deconocimiento de Prolog, el paso de parámetros debe definirse en las reglas a través de lospredicados que los invoquen, ya sea por el mismo o por otro predicado.Para que los predicados definidos como función, no retornen un valor errado, el tipo de dato de lavariable del predicado llamador debe ser igual al del predicado llamado. Esto es debido a que lospredicados aritméticos propios de Prolog no identifican entre un número real o entero.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.QUINTA UNIDAD:SISTEMAS EXPERTOS5.1 Sistemas expertos. a) Problemas solubles con sistemas expertos. b) Estructuras y cualidades de un sistema experto. c) Herramientas para la construcción de un sistema experto. d) Manejo de incertidumbre y probabilidad.5.2. Algunos Shell de sistemas expertos.INTRODUCCIÓN.Ingeniería de conocimientoLa inteligencia artificial es la base de la ingeniería del conocimiento. Esta InteligenciaArtificial (IA) se puede ver como ciencia o como ingenieríaComo ciencia: Por que trata de entender la naturaleza de la inteligencia Como ingeniería procura elaborar software capaz de actuar como humano elaborar artefactos que presenten una conducta inteligenteObjetivos de la IA La inteligencia es una noción transparente aun más cuando se trata de simular en una máquina. La IA ha emprendido la tarea de proporcionar una base teórica al concepto de la Inteligencia. Utiliza la computadora como un laboratorio donde desarrollar nuevas formas de pensar acerca del pensar. La IA se ha visto considerablemente enriquecida al intentar de describir los rasgos análogos a la IALA IA COMO INGENIERIA Tiene como meta construir sistemas reales que funcionan Se percibe como un intento de crear una nueva tecnología informática Se ocupa de los conceptos, la teoría y las prácticas de cómo construir máquinas inteligentes, es decir, máquinas que resuelvan problemas.El ejemplo más paradigmático de máquinas inteligentes por el éxito que estánalcanzado comercialmente sean los sistemas basados en conocimientos(SSBBCC) y los sistemas expertos en concreto (SSEE)Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.A la actividad de construir estos sistemas se le denomina: Ingeniería delConocimiento (INCO)La INCO busca el adquirir, conceptuar, formalizar y usar grandes cantidades deconocimientos de la mas alta calidad INTELIGENCIA Sus programas exhiben ARTIFICIAL comportamientos inteligentes por SISTEMAS BASADOS EN CONOCIMIENTOS Hacen explícitos los conocimientos de un dominio y SISTEMAS Aplican los conocimientos EXPERTOS expertos a problemas difíciles delArquitectura típica de un sistema experto Motor de Inferencias. Interfaz Usuario Base de ConocimientosUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. E S MEMORIA A LARGO PLAZO R T E Í MEMORIA DE S M SENSORES MEMORIA TRABAJO MEMORIA MÚSCULOS U P L U O E S PROCESADOR T COGNITIVO A SUSBSISTEMA SUSBSISTEMA PRECEPTIVO MOTOR SUSBSISTEMA COGNITIVO Sistema humano de procesamiento de la informaciónUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.SOLUCIÓN INFORMÁTICA DE UN PROBLEMA PROBLEMA DEFINIRLO EN TERMINOS DE ESTADO Y OPERADORES (ALT) GENERAR Y ANALIZAR SOLUCION ESPACIO DE BUSQUEDA ALGORITMICA TRADICIONAL IDENTIFICAR CONOCIMIENTO PROGRAMACION APLICABLE A REDUCIR CONVENCIONAL ESPACIO BUSQUEDA DESARROLLAR MARCO CONCEPTUAL EN TERMINOS DE REPRESENTACION E INFERENCIA INSTRUMENTAR SISTEMA ADECUADO . PROBAR Y ACTUALIZAR SISTEMA BASADO EN EL CONOCIMIENTOUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Psicologia Nuevos conceptos en Cognitiva análisis de trabajos y diseño organizaciones Sistemas de Instrumentos Lógica computacion Formal VISION inteligentes simbolica COMPUTACIONAL Sistemas de Lenguajes de pequeña procesamiento de escala listas ROBOTICA Workstations INTELIGENCIA inteligentes ARTIFICIAL APLICADA LENGUAJE NATURAL Sistemas restringidos Entornos de grandes programacion SISTEMAS incremental EXPERTOS Computación Sistemas de tutoría interactiva inteligentes Desarrollo de la microelectrínica Herramientas Desarrollo de construccion SE computadores Sistemas hibridos grandes Computacion de la Sistemas hibridos V-generacion muy grandesUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.5.1 SISTEMAS EXPERTOS. Los mecanismos de explicación, la parte más fascinante de los sistemas expertos, permiten a los sistemas explicar o justificar sus conclusiones, y también posibilitan a los programadores verificar el funcionamiento de los propios sistemas.Desde que naciera la Inteligencia Artificial como tal ciencia, a principios de los 60, hasta laactualidad, se han venido realizando numerosos trabajos, especialmente en los Estados Unidos,para el desarrollo de los diversos campos que componen la Inteligencia Artificial. De todos esoscampos, quizá el que puede tener mayor número de aplicaciones prácticas sea el de los SistemasExpertos, siendo dichas aplicaciones de utilidad en temas tan variados que pueden ir desde lamedicina hasta la enseñanza pasando por el CAD.Un sistema experto es una aplicación informática que simula el comportamiento de un expertohumano en el sentido de que es capaz de decidir cuestiones complejas, si bien en un camporestringido.Siendo la principal característica del experto humano el conocimiento o habilidades profundas enese campo concreto, por consiguiente, un sistema experto debe ser capaz de representar eseconocimiento profundo con el objetivo de utilizarlo para resolver problemas, justificar sucomportamiento e incorporar nuevos conocimientos. Se podría incluir también el hecho de podercomunicarse en lenguaje natural con las personas, si bien esta capacidad no es tan determinantecomo las anteriores de lo que se puede definir como Sistema Experto.a) Problemas solubles con sistemas expertos.Las tareas para las que estos sistemas se desarrollan son, casi por definición, complejas. Portanto, un sistema experto es un sistema computacional capaz de representar y razonar sobre undominio determinado que precisa de gran cantidad de conocimiento, tal como la aeronáutica o lamedicina. Se puede distinguir de otros tipos de aplicaciones de IA en que: trabaja con temascomplejos que normalmente requieren una considerable cantidad de experiencia humana; debeser una herramienta práctica y útil; para ello debe ofrecer un alto rendimiento en cuanto aUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.velocidad de ejecución y fiabilidad; debe ser capaz de explicar y justificar sus soluciones yconsejos para convencer al usuario de lo correcto de su razonamiento.Los sistemas expertos son el tipo de aplicación de IA que mejores resultados ha conseguido.Estos sistemas son usados hoy en día en un amplio abanico de dominios y han probado seraltamente fiables. Por ello sería deseable la disponibilidad de interfaces en lenguaje natural quefacilitasen la comunicación con el sistema por parte de usuarios no expertos en computación(médicos, biólogos, ingenieros).b) Estructuras y cualidades de un sistema experto.Un diagrama general de bloques de un Sistema Experto se representa en la figura siguiente: Usuario Interfase del usuario Máquina de inferencia 1. Reglas de inferencias 2. Estrategias de control Base de conocimiento Base de datos 1. Reglas (Memoria de trabajo) 2. Marcos Estado del sistema 3. Redes semánticas Estados iniciales etc. Estado actual FactoresUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.La base del conocimiento representa el universo donde esta el sistema, es decir la informaciónque rodea al problema.A través del motor de inferencia sabemos como el experto decide cual regla aplicar a cualesdatos, como resolver conflictos entre reglas y entre datos; y como va ha inferir los nuevos hechoso nuevos datos; y para eso debemos saber como piensa el experto y debemos saber como utilizala base del conocimiento (base de reglas y la base de datos.)La interfaz del usuario debe servir para ingresar los datos, las reglas, cambiarlas, cambiar elmotor de inferencia; debe tener capacidad de circulación y capacidad de operación cuando se usaen el sistema experto.El Shell es un módulo formado por el motor de inferencia y la interface del usuario y son losgeneradores del sistema experto. De acuerdo a todos los estudios (desde 1987) usar un Shell esuna manera racional para desarrollar un sistema experto.La base de datos y las reglas deben cumplir ciertos formalismos para que el Shell lo entienda. Losresultados de utilizar sistemas expertos hasta el momento son apenas aceptables. en algunos casosbuenos o bastante buenos y en algunos casos realmente malos.Estos errores son debidos a que no se sabe elegir el Shell del sistema experto. No es lo mismousar un Shell que desarrolla una persona para un problema de Agricultura que usar el mismoprograma para resolver problemas de producción o de verificación de producción por poner unejemplo. La razón es que el dominio de la aplicación es diferente por lo tanto el sistema no va hafuncionar. Muchas empresas nos dicen el origen del Shell. Algunos son muy atractivos perocuando se les hace una prueba de escritorio funcionan mal. Por lo tanto un Ingeniero o futuroIngeniero debe desarrollar métodos para evaluar estos Shell.Motor de InferenciaEs la forma como el experto soluciona un problema haciendo funcionar las reglas, encadenandolas reglas para llegar a la solución. Antes se tiene que definir estas reglas.El ciclo de Cálculo: El motor sigue un orden. Selecciona cual es la regla que debe aplicar primerobasado en hechos, cuál es la hipótesis y cuáles son las metas; luego se aplican y se definen nuevasreglas con nuevos datos o se demuestra que la elección es valida.Función del Motor de Inferencia ♦ Determinar cuales son las acciones que deben de realizarse ♦ Determinar el orden de las acciones ♦ Determinar como se realizan las acciones entre las distintas partes del sistema experto, como se comunican con la base de conocimiento, la interface del usuario, etc. ♦ Como y cuando se procesan las reglasUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. ♦ Establecer los criterios de control de dialogo con la persona ♦ Establecer los criterios para resolver problemas; siempre existen criterios que utilizan mecanismos diferentes.La Interfaz del UsuarioDebe permitir correr el programa y tener todas las facilidades para consultar, preguntar porqué elprograma eligió esa regla y obtuvo ese hecho o dato, porqué se usó ese algoritmo diferente. Lainterfaz del usuario debe permitir desarrollo, es decir debe poder editarse reglas, crear nuevasreglas, crear bases de datos, agregar datos, etc.Tiene que haber una comunicación en forma amistosa y suave hacia el usuario, y mostrar todo elproceso que se esta desarrollando, ya que a nosotros nos interesa saber lo que esta sucediendo yporque se esta aplicando este teorema, esta regla, etc. La mayoría de estos Shell tienen estafacilidad. Un usuario paso a paso aprende a pensar como el experto, esto es algo nuevo pues elprograma experto nos permite no solamente resolver un problema con éxito, sino que tambiénprepararnos.Función de la Interfaz del Usuario ♦ Permite un aprendizaje rápido. ♦ Filtra los datos para eliminar errores. ♦ Presenta los resultados en forma clara y precisa. ♦ Permite dar explicaciones (hacer preguntas.)Estrategias para Aplicar Control ExpertoUna manera es meterse y buscar llegar hasta la respuesta final por una sola rama, llamadabúsqueda en profundidad. Otra manera es desarrollar todo lo que esta a lo ancho del problemahasta llegar a la solución. Otras maneras pueden ser: ♦ Elegir la regla que más influye en la hipótesis. ♦ Elegir la regla donde la recopilación de hechos sea menos costosa. ♦ Elegir la regla cuyos hechos determinen menos riesgos. ♦ Elegir la regla que reduzca el espacio de búsqueda.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Diagrama general de bloques de un Sistema ExpertoLos componentes claves son la base de conocimiento, el sistema de inferencias, la base de datos yel interfase con el usuario.El corazón de los Sistemas Expertos es la base de conocimientos, que tiene diferentes formas derepresentarse, como Reglas de producción, cálculo de predicado, Marcos, Listas, Redessemánticas, Libretos, etc.La base de datos es llamada algunas veces base de datos global porque contiene un amplio rangode información acerca del estado actual del problema que está siendo resuelto. En la practica, labase de datos es realmente una porción de memoria de trabajo donde el estado actual del procesodel problema que se está resolviendo se guarda.La máquina de inferencia es el software que implementa una búsqueda y opera los modelosencontrados. Siendo su función principal probar la hipótesis o desaprobarla.La interfase con el usuario hace fácil el manejo del Sistema experto, ocultando todas lascomplejidades de sus procesos.Un Sistema de Representación de Conocimiento para un universo U consiste en: a) Una colección E de etiquetas que pueden representar individuos en U; estas etiquetas se dividen en constantes y variables. b) Una colección F de funciones. c) Una colección R de relaciones. d) Un lenguaje L consistente en reglas para combinar las funciones, relaciones y etiquetas en expresiones bien formadas de L. e) Una semántica S que provee de significado a las etiquetas, funciones y relaciones.Aún suponiendo que poseamos un conocimiento lo suficientemente detallado de la materia quepretendemos representar, resulta crucial el disponer de una notación lo suficientemente precisacomo para poder plasmar ese conocimiento de forma que pueda ser usado de forma inteligentepor un cerebro electrónico. A esta notación se le da el nombre de esquema de representación.En IA, el problema de diseñar un sistema experto se centra en construir una base de conocimientoque represente el conocimiento de una empresa determinada.Según la clase de problemas hacia los que estén orientados, podemos clasificar los SistemasExpertos en diversos tipos entre los que cabe destacar diagnosis, pronóstico, planificación,reparación e instrucción; vamos a ver algunas de las aplicaciones existentes (o en periodo dedesarrollo) para cada uno de los campos citados.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Los sistemas de diagnosis siguen un proceso de búsqueda de las razones del funcionamientoincorrecto de un sistema a partir de la información disponible. Aquí se podrían tener en cuentatanto aplicaciones de diagnóstico médico como de averías. En lo referente al diagnóstico médico,existe una serie de aplicaciones extensa en número (FLUIDEX, EACH, TROPICAID,SPHINX,...), pero quizá la más conocida, a la vez que la más antigua, podría ser MYCIN.MYCIN es el primer Sistema Experto que llegó a funcionar con la misma calidad que un expertohumano, dando a su vez explicaciones a los usuarios sobre su razonamiento. Antes del desarrollode MYCIN (mediados de los 70), se criticaba a la Inteligencia Artificial por resolver únicamenteproblemas "de juguete", sin embargo, el éxito de MYCIN demostró que la tecnología de losSistemas Expertos estaba suficientemente madura como para salir de los laboratorios y entrar enel mundo comercial. MYCIN es, en definitiva, un sistema de diagnóstico y prescripción enmedicina, altamente especializado, diseñado para ayudar a los médicos a tratar con infecciones demeningitis (infección que produce inflamación de las membranas que envuelven al cerebro y lamédula espinal) y bacteriemia (infección que implica la presencia de bacterias en la sangre).Dichas infecciones pueden ser fatales y a menudo aparecen durante la hospitalización. Elproblema se complica por la necesidad de actuar con rapidez.Existen además en este campo Sistemas Expertos como TROPICAID, que permiten obtenerinformación adicional sobre los medicamentos más usados. TROPICAID selecciona un conjuntode posibles diagnósticos a partir del análisis del cuadro médico, y propone un tratamiento óptimopara el caso concreto.Por otra parte, el campo de la diagnosis abarca otras aplicaciones además de las médicas (si bienpueden ser estas últimas las más conocidas). En este caso se trata de fallos, averías o anomalíasque se producen generalmente en una máquina. Dentro de este apartado existen tambiénnumerosas aplicaciones, pudiendo encontrar incluso empresas en la propia CAPV que handesarrollado trabajos dentro del campo de la diagnosis de equipos industriales complejos. Tal esel caso de ADICORP (con su sistema TESP para la diagnosis de robots Puma) que trabajaademás en proyectos de Visión Artificial.Los sistemas de pronóstico deducen consecuencias posibles a partir de una situación. Su objetivoes determinar el curso del futuro en función de información sobre pasado y presente. Esto abarcadiversos problemas, tales como predicciones meteorológicas, predicciones demográficas, oincluso previsiones de la evolución bursátil entre otros. Quizá la aplicación más conocida seaPROSPECTOR, esto es un sistema para la evaluación de emplazamientos geológicos (con el quese encontró un yacimiento de mineral importante).Existen también sistemas de planificación, pudiéndose encontrar aplicaciones en este área, queestablecen una secuencia de acciones a realizar encaminadas a la consecución de una serie deobjetivos.Hay una tendencia creciente a desarrollarlos y utilizarlos, sin embargo, los programas son caros ytienen que ser analizados con cuidado para determinar su contribución potencial al resultadofinal. Una de tales aplicaciones es el Palladian Operations Advisor (de Palladian Software, Inc.,Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.en Estados Unidos), diseñado específicamente para la dirección de la producción. Las entradas aeste programa comprenden las designaciones de procesos y máquinas de fabricación de unaplanta, las especificaciones de productos y el flujo de producción, a partir de lo cual puederepresentar gráficamente la planta industrial y el flujo de cada tipo de productos. Con estasrepresentaciones pueden organizarse y reorganizarse las operaciones de fabricación. El programaayuda a la planificación y programación, asesorando en lo que se refiere a los programas quereducen el trabajo no deseable en niveles de proceso, ajustan el volumen de producción a lademanda de clientes y evalúan los cambios en las operaciones desde los puntos de vistaeconómicos y de producción. Puede crear una influencia recíproca con los planificadores ydirectores de planta a medida que las condiciones cambian a diario o a cada hora, comoconsecuencia de averías mecánicas, modificaciones en los pedidos de los clientes o crisis en elexterior. El Palladian Operations Advisor puede analizar el estado de la combinación deproductos para mantener la mayor eficacia y rentabilidad posible de las operaciones.Como caso concreto dentro de la CAPV, la empresa DATALDE ha desarrollado un SistemaExperto para la planificación de la producción. Dicho trabajo se centra en un taller de propósitosgenerales de unas características determinadas, consistiendo la planificación en ordenar en eltiempo las cargas originadas por los diferentes pedidos, de forma que se asuman los objetivos decumplimiento de plazos, distribución eficaz del trabajo y gestión de colas y prioridades. Por suparte, la empresa ROBOTIKER ha desarrollado un sistema de planificación y control deproducción integral, dentro del que se identifican algunas tareas susceptibles de resoluciónmediante sistemas inteligentes (es un sistema basado en MRP-II).El diseño es también un tema de planificación. En este caso, a partir de una serie derequerimientos y restricciones, se obtiene el objeto que las satisface. En este campo, LABEIN(Laboratorio de Ensayos e Investigaciones Industriales, Centro de Investigación tutelado por elGobierno Vasco), desarrolló un sistema inteligente para el diseño de motores eléctricos mediantela aplicación de las tecnologías clásicas de Sistemas Expertos a los sistemas de CAD / CAE dediseño y análisis. El problema que motivó este proyecto era que ciertos motores, de entre loseléctricos, son de uso frecuente en la industria exigiendo a la vez un diseño a medida de cadacaso, por ello se creyó conveniente desarrollar una herramienta que asesorase o, incluso, dirigieraal operador.Otro tipo de Sistemas Expertos son los orientados a la reparación, sin embargo, no se puededecir que sea un tipo realmente nuevo, ya que este enfoque abarca diagnosis y planificación.Dentro de este grupo se incluyen sistemas como DELTA, que ayuda a los mecánicos en eldiagnóstico y reparación de locomotoras diesel-eléctricas. DELTA no solo da consejos expertos,sino que también presenta informaciones por medio de un reproductor de vídeo. De hecho sepodría encasillar a DELTA más en el área de la instrucción que en reparación, dado que ademásproporciona ayudas al trabajo que permiten al estudiante determinar si existe o no undeterminado problema, proporcionando también formación específica sobre el modo de realizarciertas reparaciones.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Un sistema de instrucción (Sistema Experto para formación) realiza un seguimiento del procesode aprendizaje de un estudiante. El sistema detecta errores de los estudiantes e identifica elremedio adecuado, es decir, desarrolla un plan de enseñanza para facilitar el proceso deaprendizaje y la corrección de errores.Además de DELTA, existen numerosos sistemas de este tipo; STEAMER, por ejemplo, se creópara enseñar a los oficiales de la armada los problemas de funcionamiento de una planta depropulsión a vapor, como las que impulsan a ciertos barcos. Este era el problema de formaciónmás importante que existía, dada la complejidad de los sistemas. El objetivo es dar al estudianteuna concepción global de lo que pasa en la planta en cualquier momento, con la ventaja de queademás el modelo de presentación es gráfico (utilizando Interlisp).Con un objetivo similar al de STEAMER, Construcciones Aeronáuticas S. A. (CASA) desarrollóel Proyecto Eolo CN-235. En este caso, el problema está en el hecho de que pilotar un avión quecuesta cientos de millones de pesetas es un asunto muy serio a la vez que peligroso, lo que exigemucho tiempo de entrenamiento, tanto para pilotos como mecánicos, suponiendo para lascompañías aéreas un gran problema, dado el elevado coste de los cursos y la escasez deinstructores. El proyecto surgió de la voluntad de Construcciones Aeronáuticas S. A. de ofrecerun curso específico para pilotos y técnicos de mantenimiento, a todos los compradores del aviónCN- 235. Eolo CN-235 es un sistema de enseñanza interactivo que integra gráficos, texto y vídeo.Otro sistema de este tipo, aunque en este caso orientado a medicina, es GUIDON, pensado paraque lo utilicen las Facultades de Medicina para formar a los médicos en la realización deconsultas. GUIDON viene a ser una reorganización de MYCIN con intenciones educativas, poresto, tiene la ventaja adicional de disponer de toda la base de conocimientos de MYCIN ademásde la experiencia acumulada, por consiguiente, puede recuperar como ejemplo cualquier caso queMYCIN haya tratado.Además de las áreas de aplicación ya citadas, existen otras como las relativas a los sistemas deinterpretación, que realizan tareas de inferencia a partir de una serie de datos observables (Ej.análisis de imágenes, o bien interpretación de señal).Diferencias entre programas convencionales, inteligencia artificial y Sistemas expertosConvencionales o algorítmicos: Deterministas sin redundancia (si están incorrectamente diseñados puede introducirse un dato mas de una vez), suelen reflejar condiciones necesarias y suficientes para obtener los resultados (con mayor o menor eficiencia) mecanismo simple y camino computacional simple para producir la salida en función de la entrada. Los humanos tienen colecciones de técnicas para un problema y, si se olvida una, se puede encontrar soluciones de otra manera. Distinción entre código (receta para manipular estructuras, algoritmos y datos (las propias estructuras)Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Según Wiston: Programa = Algoritmo + Estructura de datos. Carecen de "autosabiduría", solo las técnicas que encierran y no pueden razonar o explicar sus propios mecanismos Los programas complejos son opacos y difíciles de modificar. Los algoritmos incluyen detalles de representación del conocimiento (incipientes) Inútiles para codificar la experiencia o para comunicarla. Así seria difícil aprender a jugar al ajedrez examinando un programa convencional que supiera jugar.Inteligencia Artificial Representación e inferencia simbólica Búsqueda heurística Campo base de la epistemología pragmáticaSistemas Expertos. (basados en el conocimiento), además de la I.A. incluyen Ejecutan tareas difíciles con la competencia de un experto humano Énfasis en las estrategias de solución de problemas de dominios concretos más que en métodos generales. Autoconocimiento para razonar acerca de sus propios procesos de inferencia y dan justificación de las conclusiones obtenidas. Dan una enorme importancia al conocimiento poseído, con relación al formalismo o esquema de inferencia utilizados.Feignbaum: la potencia del S.E. deriva de su base de conocimiento De ahí que aparezca con entidad propia la base de conocimiento, separada de sus mecanismos de control. Programa = Estructura de datos + Base de conocimiento lógico + Control En tres niveles: hechos, conocimientos, decisiones. Emplean conjuntamente de manera coordinada muchas técnicas de IA. Resuelven problemas de: - interpretación - predicción - diagnóstico - depuración - diseño - planificación - vigilancia - reparación - instrucción - control - asesoramiento - evaluación de situaciones - toma de decisiones - evaluación de sucesosUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Metodología para construir un sistema experto: ♦ Identificación del Problema. ♦ Conceptualización del Problema . ♦ Formalizarlo a través de una lógica o algún lenguaje formal ♦ Implementación eligiendo un Shell ♦ PruebasIdentificación del Problema ♦ El Experto e Ingeniero identifican el área del problema y definen alcances. ♦ Determinación de recursos necesarios, tiempo y facilidades computacionales. ♦ Decisión sobre metas y objetivos de la construcción del sistema experto.Conceptualización del Problema ♦ El Ingeniero y Experto explican conceptos claves relaciones y características del flujo de Información, necesarias para describir la solución del problema. ♦ Especificaciones de sub-tareas, estrategias y necesidades relacionadas con la actividad de resolver el problema.Formalización ♦ Graficar los conceptos claves y relaciones en una representación formal sugerida por un lenguaje o una herramienta. ♦ Selección del lenguaje o Shell. ♦ Representación de conceptos y relaciones dentro de la estructura del lenguaje.Implementación ♦ El ingeniero organiza la base del conocimiento en una base de datos. ♦ Se elige la base de datos. ♦ Se define un conjunto de reglas y estructuras de control del programa. ♦ Se realiza el programa.Pruebas ♦ Evaluación del rendimiento del programa. ♦ Revisión y ajuste a nivel de excelencia. ♦ El experto realiza una evaluación. incluso se diseñan problemas en el que el experto lo resuelve y el programa lo resuelve aparte.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Control Experto ♦ Es la combinación de técnicas de Control de Procesos Industriales, del Conocimiento Heurístico y de Sistemas Expertos. ♦ El objetivo es controlar un proceso. Se busca Conocer: El proceso y estructuras de control, por pruebas en distintos puntos de operación. La información relevante para un sistema de control.Para esto debemos saber como representar y usar el conocimiento; y además la existencia deciertas condiciones para ciertos procesos.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.TOMA DE DECISIONESLa potencia de un Sistema Experto se basa más en una gran cantidad de conocimientos que en unformalismo deductivo muy eficaz. La idea que se persigue cuando se construye un SistemaExperto es la de automatizar la labor del experto, partiendo en ocasiones de informacióninsuficiente o incompleta.En las empresas, la Inteligencia Artificial, que se encontraba confinada en la "sala deordenadores", se va abriendo paso hacia la junta directiva. La razón de esto es simple: a medidaque el mundo empresarial se complica y se llega a la competencia internacional, el conocimientose convierte en el factor profesional más importante para un ejecutivo. A la persona que estéplaneando la estrategia a seguir por su empresa o que tome decisiones en producción, marketing,distribución o asignación de recursos, los Sistemas Expertos le pueden demostrar que se puedentomar decisiones con más conocimiento, llevando a un aumento de ganancias así como a laobtención de beneficios importantes para la empresa, como el aumento de su capacidad.En las empresas, los Sistemas Expertos empiezan a tener cada vez mayor auge, hasta el punto deir suponiendo un punto de referencia importante en la toma de decisiones para la junta directiva.En realidad, incluso se podría decir que el límite de las aplicaciones objeto de los SistemasExpertos está en la imaginación humana, siendo siempre de utilidad allí donde se necesite unexperto. La medida de la efectividad de las operaciones de planificación y control de una organización ysu sensibilidad a los cambios, son elementos importantes en la buena dirección de la producción.Los planes y las decisiones en la producción se desarrollan y llevan a cabo en un mundo derepresentaciones simbólicas de hechos y conjeturas, muchas de las cuales no están informatizadasy representan la experiencia y el conocimiento de expertos. En cada estadio de los procesos deplanificación, decisión y control para las operaciones de producción, sea ésta automatizada o no,las personas expertas son las que asesoran, localizan los fallos y dirigen. Ellas son las que ayudanUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.a interpretar la multitud de datos procedentes de los departamentos de diseño, de la planta deproducción y de los representantes de los clientes, observan modelos procesables en dichos datos,prueban mentalmente, y con ordenadores, posibles líneas de acción, recomiendan las medidas quela gerencia debe tomar y ayudan luego a poner en marcha sistemas pensados para conseguirplanificaciones mejores, operaciones más fluidas y una competencia más efectiva.Los Sistemas Expertos ofrecen procedimientos informatizados para perfeccionar la toma dedecisiones de la gerencia por medio de la combinación del conocimiento que poseen los expertosacerca del tipo de acciones que tiene que efectuar y la forma y el tiempo en que debe llevarlas acabo con la permanencia, lógica, memoria y velocidad de cálculo del ordenador. En tanto quemuchos sistemas expertos se ocupan del razonamiento técnico más que del gerencial, la gerenciapuede obtener ordenadores de mucha potencia, con grandes memorias, rápidos y programadospara tratar problemas clave de forma efectiva en un área empresarial determinada.El éxito del directivo experto en la aplicación de sistemas como en las plantas de fabricación,grandes o pequeñas, se mide por resultados tales como rendimientos mayores en la calidad de losproductos, entregas a los clientes dentro de plazo, reducción de los retrasos en planta, reducciónde costes procedentes de errores, mejor utilización de los materiales, mejor utilización delpersonal y mejora en las compras y reducción en los costes de material.Como cualquier otra forma de software tradicional, los sistemas Expertos ofrecen algunasventajas: a) Permitir que los no expertos trabajen como expertos. b) Mejorar la productividad aumentando los trabajos realizados con mayor eficiencia. c) Ahorrar tiempo al alcanzar objetivos específicos. d) Simplificando algunas operaciones. e) Automatizar procesos repetitivos, tediosos y llenos de complejidad. f) Permiten que nuevos tipos de problemas sean resueltos haciendo a las computadoras más útiles. g) Capturan y guardan valiosos conocimientos evitando perdidas debidas a retiros o muertes de expertos. h) Hacen que el conocimiento esté disponible a una mayor audiencia, incrementando la habilidad de resolver problemas a un número mayor de personas.Entre las desventajas tenemos: a) Desarrollar un sistema experto es más difícil que la creación de un software convencional. Los buenos expertos son difíciles de encontrar y la extracción del conocimiento es un trabajo tedioso y tardado. b) Los sistemas expertos son caros. Cuesta mucho su desarrollo, prueba y la entrega a los usuarios finales. c) El tamaño de la memoria y la rapidez de una computadora personal limitan su utilidad.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. d) Los Sistemas Expertos no son totalmente confiables. Debido a esto se recomienda que sus resultados deben ser ponderados, probados y escrutinizados. El ser humano debe realizar la decisión final.Algunas de estas desventajas gradualmente desaparecerán o disminuirán con las aparicionesmejoradas de la tecnología en hardware y software.c) Herramientas para la construcción de un sistema expertoUna de las principales razones para el rápido crecimiento de desarrollo de sistemas expertos, es elsoporte de un conjunto de herramientas poderosas. Entre las herramientas para sistemas expertostenemos:En un inicio los sistemas expertos se creaban como un conjunto de representaciones declarativa(reglas en su mayor parte) combinadas con un interprete para esas declaraciones, fue posibleseparar el interprete y el conocimiento específico del dominio, y así se pudo crear un sistemacapaz de construir nuevos sistemas expertos con la añadidura de nuevos conocimientoscorrespondientes al dominio del nuevo problema. A los intérpretes resultantes se les llamóArmazones (Shell). El valor de un Shell para SE está directamente relacionado con el grado enque las características del dominio se parecen con las características esperadas por el modelointerno del Shell.En este momento existen comercialmente varios armazones que sirven de base para muchos delos sistemas expertos que actualmente se construyen. Los últimos armazones presentan muchamayor flexibilidad en la presentación del conocimiento, del razonamiento y de las explicacionesque los primeros. Con el tiempo la experiencia ganada indica que para facilitar las cosas lossistemas expertos se deben integrar con otros tipos de programas. Los sistemas expertos nopueden actuar aislados, necesitan acceder a bases de datos colectivas, y por tanto ser controladosigual que otros sistemas. A menudo son incrustados en otros programas de aplicación másgrandes que usan técnicas de programación convencionales.La herramienta más elemental para el desarrollo de sistemas expertos es un lenguaje depropósito general. Lisp ha sido y continua siendo el lenguaje más ampliamente empleado para eldesarrollo de sistemas expertos, el lenguaje de programación Prolog, aunque su empleo como unlenguaje para el desarrollo de sistemas expertos ha sido un poco menos que el de Lisp.Generalmente las herramientas más poderosas para SE son las grandes herramientas híbridasque combinan ambientes de desarrollo sofisticado con representaciones múltiples deconocimiento y paradigmas múltiples de inferencia. Esta integración, de varias facilidadesbásicas es muy útil porque posibilita que cualquier herramienta dada sea empleada con muchosdiferentes problemas, o problemas que involucren varias clases diferentes de representaciones delconocimiento y de paradigmas de inferencia.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.En resumen, indicamos que una de las características más importantes que debe tener unaarmazón es una interfaz fácil de emplear entre un sistema experto escrito con la armazón y ungran entorno de programación, que probablemente será más convencional.Desarrollo de los Sistemas ExpertosPara desarrollar el software primero conocemos el equipo de gente necesario, después losmétodos que utiliza ese equipo de gente y por último como prueban y construyen prototipos desoftware para terminar en el sistema final. 1. Equipo de desarrollo 2. Métodos auxiliares en el desarrollo 3. Construcción de prototiposEl Equipo de desarrolloLas personas que componen un grupo o un equipo, como en todos los ámbitos deben cumplirunas características y cada uno de ellos dentro del equipo desarrolla un papel distinto.A continuación cada componente del equipo dentro del desarrollo y la función de cada uno: 1. El experto La función del experto es poner sus conocimientos especializados a disposición del Sistema Experto. 2. El ingeniero del conocimiento El ingeniero plantea las preguntas al experto, estructura sus conocimientos y los implementa en la base de conocimientos. 3. El usuario aporta sus deseos y sus ideas, determinando especialmente el escenario en el que debe aplicarse el Sistema Experto. ESQUEMA DE REPRESENTACIÓN EN EL QUE FIGURA EL EQUIPO DE DESARROLLO.En el desarrollo del Sistema Experto, el ingeniero del conocimiento y el experto trabajan muyunidos. El primer paso consiste en elaborar los problemas que deben ser resueltos por el sistema.Precisamente en la primera fase de un proyecto es de vital importancia determinar correctamenteel ámbito estrechamente delimitado de trabajo. Aquí se incluye ya el usuario posterior, o unUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.representante del grupo de usuarios. Para la aceptación, y en consecuencia para el éxito, es devital y suma importancia tener en cuenta los deseos y las ideas del usuario.Una vez delimitado el dominio, se amplía el sistema con los conocimientos del experto. Elexperto debe comprobar constantemente si su conocimiento ha sido transmitido de la forma másconveniente. El ingeniero del conocimiento es responsable de una implementación correcta, perono de la exactitud del conocimiento. La responsabilidad de esta exactitud recae en el experto.De ser posible, el experto deberá tener comprensión para los problemas que depara elprocesamiento de datos. Ello facilitará mucho el trabajo. Además, no debe ignorarse nunca alusuario durante el desarrollo, para que al final se disponga de un sistema que le sea de máximautilidad.La estricta separación entre usuario, experto e ingeniero del conocimiento no deberá estarsiempre presente. Pueden surgir situaciones en las que el experto puede ser también el usuario.Este es el caso, cuando exista un tema muy complejo cuyas relaciones e interacciones deben serdeterminadas una y otra vez con un gran consumo de tiempo. De esta forma el experto puedeahorrarse trabajos repetitivos.La separación entre experto e ingeniero del conocimiento permanece, por regla generalinalterada.Métodos auxiliares en el desarrolloLa eficiencia en la creación de Sistemas Expertos puede aumentarse en gran medida con laaplicación de Shells.Un Shell (de forma resumida) es un Sistema Experto que contiene una base de conocimientosvacía. Existen el mecanismo de inferencia, el componente explicativo y a veces también lainterface de usuario.Ya el mecanismo de inferencia depende del problema o grupos de problemas. No existe ningúnShell para todas las aplicaciones, sino que hay que buscar un Shell para cada aplicación.También es posible que haya que desarrollar adicionalmente partes del mecanismo de inferencia.Según el tamaño de esta parte tendrá que pensar si la aplicación de un Shell determinado siguesiendo apropiada. Si el ingeniero del conocimiento conoce bien este Shell, es decir si, porejemplo, conoce exactamente cómo son procesadas las reglas, entonces sólo tendrá queconcentrarse en la creación de la base de conocimientos.A menudo, el Shell contiene Frames. Estos son marcos previamente preparados, en los que, porejemplo, sólo se introduce el nombre del objeto, sus cualidades y los correspondientes valores.Las relaciones entre los objetos se indican mediante señalización de los dos objetos y del tipo derelación que exista entre ellos. El trabajo de implementación debe reducirse al máximo. LosUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Frames son componentes explicativos y/o el mecanismo de inferencia que están dimensionadosde forma distinta en los diferentes Shells.Construcción de prototiposEn el desarrollo de Sistemas Expertos se nos plantean riesgos como: ♦ Falta de implementaciones similares que puedan servir de orientación al encargado del desarrollo en la casi totalidad de los casos. ♦ Requisitos necesarios están esbozados con muy poca precisión.El diseño y la especificación requieren una temprana determinación de la interfaz del software yde la funcionalidad de los componentes. En el desarrollo de Sistemas Expertos deben alterarse amenudo durante y también después de su implementación, ya que los requisitos se han idoconfigurando y han obtenido mayor precisión, o porque se ha descubierto que deben iniciarseotras vías de solución.Durante el desarrollo, resulta más apropiado empezar con implementaciones tipo test paraencontrar el camino hacia una solución definitiva y para hacerlas coincidir con las necesidadesdel usuario.Un método efectivo es la implementación de un prototipo de Sistema Experto que permita llevara cabo las funciones más importantes de éste, aunque con un esfuerzo de desarrolloconsiderablemente inferior al de una implementación convencional. Este proceder se define bajoel nombre de "Rapid Prototyping".Las máquinas de Inteligencia Artificial especialmente desarrolladas, los lenguajes deprogramación de Inteligencia Artificial y en determinados casos los Shells, ofrecen unaconsiderable ayuda para el "Rapid Prototyping". Para Sistemas Expertos, el "Rapid Prototypinges el procedimiento más adecuado, pues posibilita una rápida reacción a los deseos en constantecambio tanto por parte de los expertos como parte del usuario.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Aplicación de sistemas basados en el conocimientoEjemplo: Cajero Automático - Problema Determinista.Un usuario (por ejemplo, un cliente) desea sacar dinero de su cuenta corriente mediante un cajeroautomático (CA). En cuanto el usuario introduce la tarjeta en el CA, la máquina la lee y laverifica. Si la tarjeta no es verificada con éxito (por ejemplo, porque no es legible), el CAdevuelve la tarjeta al usuario con el mensaje de error correspondiente.En otro caso, el CA pide al usuario su número de identificación personal (NIP). Si el númerofuese incorrecto, se dan tres oportunidades de corregirlo. Si el NIP es correcto, el CA pregunta alusuario cuánto dinero desea sacar. Para que el pago se autorice, la cantidad solicitada no debeexceder de una cierta cantidad limite diaria, además de haber suficiente dinero en su cuenta.En este caso se tienen siete objetos, y cada objeto puede tomar uno y solo un valor de entre susposibles valores. La tabla muestra estos objetos y sus posibles valores.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.En la Regla 1, por ejemplo, la premisa consisteen seis afirmaciones objeto-valor conectadasmediante el operador lógico y, lo que indica quela premisa objeto Pago (en la conclusión) con losdemás objetos. Según la Regla 1, la acción quedebe iniciar el CA es dar el dinero al usuario si latarjeta se ha verificado correctamente, la fechano ha expirado, el NIP es correcto, el número deintentos para dar el NIP correcto no se haexcedido y la cantidad solicitada no excede ni lacantidad disponible ni el límite máximo diario.Las expresiones lógicas en cada una de lasrestantes reglas de la figura constan de una solaafirmación. Nótese que la Regla 1 indica cuándodebe permitirse el pago, y las restantes cuándodebe rechazarse. El motor de inferencia aplicaModus Ponen y Modus Tollen.Aplicando dichas reglas:Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.d) Manejo de incertidumbre y probabilidad.Los sistemas basados en reglas descritos en este capítulo pueden aplicarse sólo a situacionesdeterministas. En algunas resoluciones de problemas puede resultar adecuado describir lascreencias sobre las que no se tiene certeza, pero en las que existen algunas evidencias que lasapoyan. Por ejemplo, las relaciones entre las enfermedades y los síntomas no son deterministas,puesto que un mismo conjunto de síntomas puede estar asociado a diferentes enfermedades. Dehecho, no es extraño encontrar dos pacientes con los mismos síntomas pero diferentesenfermedades.En muchos sistemas de resolución de problemas un objetivo importante consiste en reunirevidencias sobre la resolución del sistema y modificar su comportamiento sobre la base de lasmismas. Para modelar este comportamiento se necesita una teoría estadística de la evidencia. Lasestadísticas bayesianas constituyen esta teoría. El concepto fundamental de las estadísticasbayesianas es el de la probabilidad condicionada. El teorema de Bayes se enuncia así: P(Hi | E ) = P(E | Hi ) * P(Hi ) ∑ P(E | Hn ) * P(Hn ) K n =1donde: • P(Hi | E): La probabilidad de que la hipótesis Hi sea verdad dada la evidencia E. • P(E | Hi): La probabilidad de que se observe la evidencia E dada la hipótesis i como verdadera. • P(Hi): La probabilidad a priori de que la hipótesis i sea cierta, independientemente de cualquier evidencia especifica. Estas probabilidades se denominan probabilidades previas o a priori. • k: El número total de hipótesis posibles.En algunas ocasiones se tendrá un cuerpo de evidencia previo y alguna nueva observación E, porlo que será necesario hacer el siguiente calculo: P(H | E, e) = P(H | E) * P(e | E, H) / P (e | E)El tamaño del conjunto de probabilidad combinadas que se necesitan para calcular esta función, ncrece con una función de la forma 2 , donde n es el número de proposiciones diferentes que esnecesario considerar, lo que hace inaplicable al teorema de Bayes. A pesar de esto las estadísticasbayesianas proporcionan una base atractiva para los sistemas que razonan bajo incertidumbre, porlo que se han desarrollado varios mecanismos que hacen uso de su potencialidad, como son: • Incorporación de los factores de certeza. • Redes bayesianas.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Factores de certezaUn factor de certeza se define en términos de dos componentes: • Manager of believe: MB [h, e]. Una medida entre cero y uno de la creencia de que la hipótesis h proporciona la evidencia e. MB da una medida sobre hasta que punto la evidencia soporta la hipótesis. Es cero si la evidencia no soporta la hipótesis. • Manager of disapoint: MD [h, e]. Una medida entre cero y uno sobre la incredulidad de que la hipótesis h proporciona la evidencia e. MD da una medida de hasta que punto la evidencia soporta la negación de la hipótesis. Es cero si la evidencia soporta la hipótesis.A partir de estas dos medidas se puede definir el factor de certeza, CF [h, e], como sigue: CF [h, e]= MB [h, e] - MD [h, e]Los factores de certeza los proporcionan los expertos, y estos reflejan las valoraciones del expertosobre la fortaleza con que la evidencia soporta la hipótesis. Sin embargo en el proceso derazonamiento los factores de certeza tienen que combinarse para reflejar el uso de las múltiplespartes de la evidencia y las múltiples reglas que se aplican para resolver el problema. • Se obtiene el factor de certeza de una hipótesis dada una combinación de evidencias. s1 h s2 Las medidas sobre la creencia o no creencia de una hipótesis dadas las observaciones s1 y s2 se calculan de la siguiente forma: 0 sí MD[h, s1 ^ s2]= 1 MB [h, s1 ^ s2] = MB [h, s1] + MB [h, s2 ]*(1 - MB [h, s1]) en caso contrario 0 sí MD[h, s1 ^ s2]= 1 MD [h, s1 ^ s2]= MD [h, s1] + MD [h, s2 ]*(1 - MD [h, s1]) en caso contrarioUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Ejemplo: Suponga que se tiene una observación inicial que confirma nuestra creencia en h con MB = 0.3. Entonces: MD [h, s1]= 0 CF[h, s1]= 0.3 – 0 = 0.3 A continuación se hace una segunda observación, que confirma h con un valor de MB[h,s2]=0.2. Entonces: MB [h, s1 ^ s2] = 0.3 + (0.2 )* (1 - 0.3) MB [h, s1 ^ s2] = 0.3 + 0.14 MB [h, s1 ^ s2] = 0.44 MD [h, s1 ^ s2] = 0 CF [h, s1 ^ s2] = 0.44 – 0 CF [h, s1 ^ s2] = 0.44 • Se obtiene el factor de certeza dada una combinación de hipótesis. h1 e h2Se utiliza cuando se necesita conocer el factor de certeza de un antecedente de una regla quecontiene varias cláusulas. MB [h1 ^ h2 , e ]= mín (MB [h1, e], MB [h2, e]) MB [h1 v h2 , e ]= máx (MB [h1, e], MB [h2, e]) • Encadenamiento de reglas: El resultado de la incertidumbre de una regla es la entrada de otra. e s hSea MB’s [h, s]la medida de la creencia sobre h estando completamente segura la validez de s ysea e la evidencia que nos lleva a creer en s, se tiene: MB [h, s]= MB’[h, s] * máx (0, CF [s, e])Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.EjemploConsidérense las siguientes características (variables y sus posibles valores) de las personas deuna población dada: • Sexo = {hombre, mujer} • Fumador = {sí (f), no ( ¯ f)} • Estado Civil = {casado (c), no casado (¯c)} • Embarazo = {sí (e), no (¯e)}La función de probabilidad conjunta de estas cuatrovariables se da en la tabla. Por ello, por ejemplo, el 50%de las personas de una población son mujeres, y el 0.01 + 0.04 + 0.01 + 0.10 =(0.01 + 0.04 + 0.01 + 0.10) + (0.00 + 0.02 + 0.00 + 0.07)64% de los fumadores son mujeres.Sea A una persona elegida al azar de la población. Sin conocer si la persona es fumadora, laprobabilidad de que se trate de una mujer es p(A = mujer) = 0.50. Pero si se sabe que la personaes fumadora, esta probabilidad cambia de 0.50 a p(A = mujer|A = f) = 0.64. Por tanto, se tiene p(A= mujer|A = f) ≠ p(A = mujer); por lo que las variables Sexo y Fumador son dependientes. Ejemplo Considérese la función de probabilidad conjunta de las tres variables binarias X, Y y Z dadas en la tabla Entonces se tiene: • Las funciones de probabilidad marginal de X, Y y Z se muestran en la tabla. Por ejemplo, la función de probabilidad marginal de X se calcula medianteUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. ♦ Por ejemplo, las funciones de probabilidad conjunta de las parejas X e Y son: ♦ Por ejemplo, la probabilidad condicional de X dada Y es ♦ Funciones de Probabilidad Marginal ♦ Funciones de Probabilidad Conjuntas por Pares.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. ♦ Función de Probabilidad Condicional de una Variable dado Otra.Redes BayesianasEn las redes bayesianas el formalismo se preserva y se confía en la modularidad del mundo quese intenta modelar. La idea principal consiste en que para describir el mundo real no es necesarioutilizar una tabla de probabilidades enorme en la que se listen las probabilidades de todas lascombinaciones concebibles de sucesos. La mayoría de los sucesos son condicionalmenteindependientes de la mayoría de los demás por lo que no deben considerarse sus interacciones.En lugar de esto, se puede usar una representación mas local en donde se describan grupos desucesos que interactúen.Existen dos diferentes formas en que las proposiciones pueden influenciar las probabilidades delas demás, la primera de ellas consiste en que influya en las probabilidades de sus indicios; lasegunda en que la observación de un indicio afecte a la probabilidad de todas las posibles causas.La idea que hay detrás de la estructura de red bayesiana es la distinción clara entre estos dos tiposde influencia.Se construye un grafo acíclico dirigido (GAD) que representa las relaciones de causalidad entrelas variables. Las variables del grafo pueden ser proposicionales (pueden tomar los valoresverdadero o falso) o pueden ser variables que tomen valores de algún tipo (una temperaturacorporal o una lectura tomada de algún dispositivo de diagnóstico).Ejemplo: Observe el grafo formado por la siguiente situación: En una determinada mañana lahierba se encuentra húmeda, pero no se tiene certeza de que la causa sea que hubo riego en lanoche anterior o por la lluvia. Estación lluviosa Riego Lluvia HúmedoUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Un GAD ilustra las relaciones de causalidad que pueden surgir entre los nodos que contiene. Sinembargo, para poder usarlo como base de un razonamiento probabilístico, es necesario conocerpara cada valor de un nodo padre, que evidencia proporciona sobre los valores que pueden tomarlos nodos hijos. Estos datos se pueden encontrar en una tabla que contenga las probabilidadescondicionadas.Ejemplo: Se muestra a continuación la tabla de probabilidades condicionadas para el grafo delejemplo anterior: Atributo Probabilidad P (Húmedo | Riego, Lluvia) 0.95 P (Húmedo | Riego, ¬ Lluvia) 0.9 P (Húmedo | ¬ Riego, Lluvia) 0.8 P (Húmedo | ¬ Riego, ¬ Lluvia) 0.1 P (Riego | Estación lluviosa) 0.0 P (Riego | ¬ Estación lluviosa) 1.0 P (Lluvia | Estación lluviosa) 0.9 P (Lluvia | ¬ Estación lluviosa) 0.1 P (Estación lluviosa) 0.5A partir de la tabla se observa que la probabilidad a priori de una época de lluvias es de 50 %,entonces, si se esta en una época de lluvias, la probabilidad de que llueva durante una noche dadaes de 90 %, si no es así, la probabilidad de que llueva es sólo de 10 %.Ejercicio.Calcule CF, MB y MD de h1 dada tres observaciones, donde: CF(h1,o1) = 0.5 CF(h1,o2) = 0.3 CF(h1,o3) = -0.2Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ejemplo.Para ilustrar el uso del teorema de Bayes, supóngase que un paciente puede estar sano (no tieneenfermedad alguna) o tiene una de m−1 enfermedades posibles {E1, . . . , Em−1}. Porsimplicidad de notación, sea E una variable aleatoria que puede tomar uno de m posibles valores,{e1, . . . , em}, donde E = ei significa que el paciente tiene la enfermedad Ei, y E = em significaque el paciente no tiene ninguna enfermedad. Supóngase también que se tienen n síntomas {S1, . .. , Sn}. Ahora, dado que el paciente tiene un conjunto de síntomas {s1, . . . , sk}, se desea calcularla probabilidad de que el paciente tenga la enfermedad Ei, es decir, E = ei. Entonces, aplicando elteorema de Bayes, se obtieneConviene hacer los siguientes comentarios sobre la fórmula: ♦ La probabilidad p(ei) se llama probabilidad marginal, prior, “a priori” o inicial de la enfermedad E = ei puesto que puede ser obtenida antes de conocer los síntomas. ♦ La probabilidad p(ei|s1, . . . , sk) es la probabilidad posterior, “a posteriori” o condicional de la enfermedad E = ei, puesto que se calcula después de conocer los síntomas S1 = s1, . . . , Sk = sk. ♦ La probabilidad p(s1, . . . , sk|ei) se conoce por el nombre de verosimilitud de que un paciente con la enfermedad E = ei tenga los síntomas S1 = s1, . . . , Sk = sk. Ejemplo 3.4 Adenocarcinoma gástrico. Un centro medico tiene una base de datos consistente en las historias clínicas de N = 1, 000 pacientes. Estas historias clínicas se resumen gráficamente en la figura. Hay 700 pacientes (la región sombreada) que tienen la enfermedad adenocarcinoma gástrico (G), y 300 que no la tienen (se considera estar sano como otro valor posible de la enfermedad). Tres síntomas, dolor (D), pérdida de peso (P) y vómitos (V), se considera que están ligados a esta enfermedad. Por tanto, cuando un paciente nuevo llega al centro médico, hay una probabilidad 700/1,000 = 70% de que el paciente tenga adenocarcinoma gástrico. Esta es la probabilidad inicial, o “a priori”, puesto que se calcula con lainformación inicial, es decir, antes de conocer información alguna sobre el paciente.Por simplicidad de notación, se utiliza g para indicar que la enfermedad está presente y ¯g paraindicar que la enfermedad está ausente. Notaciones similares se utilizan para los síntomas. Portanto, pueden hacerse las afirmaciones siguientes:Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.• probabilidad “a priori”: 440 de 1,000 pacientes vomitan. Por ello, p(v) = card(v)/N = 440/1,000= 0.44, donde card(v) denota el número de pacientes de la base de datos que vomitan. Estosignifica que el 44% de los pacientes vomitan.• Verosimilitud: El 50% de los pacientes que tienen la enfermedad vomitan, puesto que p(v|g) = card(v,g)/card(g) = 350/700 = 0.5, mientras que sólo 30% de los pacientes que no tienen la enfermedad vomitan,puesto que p(v|¯g) = card(v, ¯g)/card(¯g) = 9 0/300 = 0.3.• Verosimilitud: El 45% de los pacientes que tienen la enfermedad vomitan y pierden peso, p(v, p|g) =card(v, p, g)/card(g) = 315/700 = 0.45, mientras que s´olo el 12% de los que no tienen la enfermedadvomitan y pierden peso, p(v, p|¯g) = card(v, p, ¯g)/card(¯g) = 35/300 ≈ 0.12.Puesto que la probabilidad inicial de que el paciente tenga adenocarcinoma gástrico, p(g) = 0.7, no essuficientemente alta para hacer un diagnóstico (nótese que tomar una decisión ahora implica unaprobabilidad 0.3 de equivocarse), el doctor decide examinar al paciente para obtener más información.Supóngase que los resultados del examen muestran que el paciente tiene los síntomas vómitos (V = v) ypérdida de peso (P = p). Ahora, dada la evidencia (el paciente tiene esos síntomas), ¿cual es laprobabilidad de que el paciente tenga la enfermedad? Esta probabilidad “a posteriori” puede ser obtenidade la probabilidad “a priori” y de las verosimilitudes, aplicando el teorema de Bayes en dos etapas, comosigue:• Tras observar que V = v la probabilidad “a posteriori” es•Tras observar que V = v y P = p la probabilidad “a posteriori” esUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.SEXTA UNIDAD:REDES NEURONALES6.1. Concepto de red neuronal artificial6.2. Redes neuronales y computadoras digitales6.3. Redes neuronales e IA6.4. Redes neuronales y mecanismos de aprendizaje (supervisado – no supervisado)6.5. Redes neuronales y lógica borrosaANTECEDENTES DE LAS NEURONASDurante el periodo de 1967 a 1982, la búsqueda de la neurocomputación se lleva acabo fuera deEstados Unidos (la búsqueda en Japón, Europa, y la Unión Soviética). Sin embargo, una granempresa investiga una cadena neuronal dentro de un proceso del principio adaptativo de procesosde imágenes, reconocimiento de patrones y modelos biológicos.Los primeros años de 1980, muchas investigaciones de la neurocomputacion empezaron a seraudaces propuestas para explorar el desarrollo de neurocomputadoras y aplicaciones de redesneuronales. En el primer lanzamiento de Defense Advanced Rechears Projects Agency(DARPA), donde Ira Skurnick (un programa maestro para la oficina de defensa) rechazo a seguirel concepto convencional e insistió a que escucharan sus argumentos a cerca de susinvestigaciones sobre la neurocomputacion.Audazmente diversifica lo tradicional; Skurnick empezó sus investigaciones en 1983. Dando elestatus DARPAS, como uno de los árbitros mundiales de la moda tecnología.Pocos mesesdespués el programa maestro de otras organizaciones se consolidaron dando con esto un gransalto. Skurnic estuvo en el lugar adecuado en el momento adecuado para hacer una llave dedecisión que ayudara al lanzamiento del renacimiento de la neurocomputación.Algunas otras fuerzas en los años de 1983 a 1986 fue Jonh Hopfiel, un físico famoso conreputación mundial quien comenzó una interesante investigación en redes neuronales en pocosanos. Hopfiel escribió dos grandes volúmenes de redes neuronales en 1982 y 1984, que fueronleídas por mucha gente alrededor del mundo persuadiendo a muchos físicos y matemáticos detodo el mundo a unirse a la nueva investigación de redes neuronales.En realidad alrededor de 1986, aproximadamente una tercera parte de toda esta gente se habíavuelto seguidor de Hopfiel. El trabajo de hopfiel ha sido descrito y su principal contribución aesta ciencia es que la a revitalizado. En algunos círculos de investigadores se ha desarrollado unaconfusión en torno a que Hopfiel invento la neurocomputacion o es el que ha hecho los adelantosUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.más significativos. Esta creencia ha generado gran inconformidad por parte de muchos pionerosespecialmente por aquellos que han estado trabajando muchos años en la oscuridad.Para 1986, con la publicación del libro "PDP" (que significa procesamiento paralelo distribuido,volúmenes l y ll), editado por David Rumelhart el camino fue abierto.En 1987, se realizo la primera conferencia abierta sobre redes neuronales del I.E.E.E. (1700participantes) fue hecha en San Diego (anteriormente ha habido conferencias solo que sonextremadamente limitadas por el numero de participantes), y la Sociedad Internacional de Redesneuronales fue formada en 1988 es seguida por la computación neuronal en 1989 y el I.E.E.E.Transacción sobre Redes Neuronales en 1990. Y seguidas por muchas otras.A principios de 1987, muchas universidades anunciaron la formación de institutos deinvestigación y programas de educación acerca de la neurocomputacion. Alrededor de laneurocomputacion se hace una interesante historia pero el camino aun se esta desarrollando.Como dijo Winston Churchill estamos al final del principio.6.1. CONCEPTO DE RED NEURONAL ARTIFICIALLas Redes Neuronales Artificiales (ANNs de Artificial Neural Networks1) fueron originalmenteuna simulación abstracta de los sistemas nerviosos biológicos, formados por un conjunto deunidades llamadas "neuronas" o "nodos" conectadas unas con otras. Estas conexiones tienen unagran semejanza con las dendrítas y los axones en los sistemas nerviosos biológicos.La teoría y modelado de redes neuronales artificiales está inspirada en la estructura yfuncionamiento de los sistemas nerviosos, donde la neurona es el elemento fundamental. Existenneuronas de diferentes formas, tamaños y longitudes, estos atributos son importantes paradeterminar la función y utilidad de la neurona. Redes neuronales Redes neuronales biológicas artificiales Neuronas Unidades de proceso Conexiones sinápticas Conexiones ponderadas Efectividad de la sinapsis Peso de las conexiones Efecto excitatorio o inhibitorio Signo del peso de una conexión Estimulación total Entrada total ponderada Activación (tasa de disparo) Función de activación (salida) Comparación entre RN biológicas y artificiales.Una neurona es una célula viva, que consta de un cuerpo celular más o menos esférico, de 5 a 10micras de diámetro, del que sale una rama principal llamada axón, y varias ramas más cortasllamadas dendritas. A su vez, el axón puede producir ramas en torno a su punto de arranque, ycon frecuencia se ramifica extensamente cerca de su extremo.1 Véase: http://www.gc.ssr.upm.es/inves/neural/ann2/abrtions.htmUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Las dendritas y el cuerpo celular reciben señales de entrada; el cuerpo celular las combina eintegra y emite unas señales de salida. El axón transporta esas señales a los terminales axónicos,que se encargan de distribuir información a un nuevo conjunto de neuronas. Una neurona recibeinformación de miles de otras neuronas, y a su vez, envía información a miles de neuronas más.Se calcula que en el cerebro existen 1015 conexiones.Estas señales que reciben y emiten las neuronas son de dos tipos distintos de naturaleza: eléctricay química. La señal generada por la neurona y transportada a lo largo del axón es un impulsoeléctrico, mientras la señal que se transmite entre los terminales axónicos de una neurona y lasdendritas de la neurona siguiente es de origen químico; concretamente se realiza mediantemoléculas de sustancias transmisoras (neurotransmisores) que fluyen a través de unos contactosespeciales, llamados sinapsis, que tiene la función de receptor y estan localizados entre losterminales axónicos y las dendritas de la neurona siguiente.Existen numerosas formas de definir lo que son las redes neuronales artificiales, desde lasdefiniciones cortas y genéricas hasta las que intentan explicar más detalladamente lo que significared neuronal o computación neuronal, veamos algunas de estas:Computación neuronal es una nueva forma de computación, inspirada en modelos biológicos.Una red neuronal artificial es un sistema de computación hecho por un gran número deelementos simples, elementos de procesos muy interconectados, los cuales procesan informaciónpor medio de su estado dinámico como respuestas a entradas externas.Redes neuronales artificiales son redes interconectadas masivamente en paralelo de elementossimples (usualmente adaptativos ) y con organización jerárquica, las cuales intentan interactuarcon los objetos del mundo real del mismo modo que lo hace el sistema nervioso biológico. En las redes neuronales biológicas, las células neuronales (neuronas) corresponden a loselementos de procesos anteriores. Las interconexiones se realizan por medio de las ramas desalida (axones) que producen un número variable de conexiones (sinapsis) con otras neuronas.Las redes neuronales son sistemas de simples elementos de proceso muy interconectados.El Primer modelo de red neuronal fue propuesto en 1943 por McCulloch y Pitts en términos deun modelo computacional de "actividad nerviosa". El modelo de McCulloch-Pitts es un modelobinario, y cada neurona tiene un escalón o umbral prefijado. Este primer modelo sirvió deejemplo para los modelos posteriores de Jhon Von Neumann, Marvin Minsky, Frank Rosenblatt,y muchos otros.Una primera clasificación de los modelos de ANNs podría ser, atendiendo a su similitud con larealidad biológica:Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Los modelos de tipo biológico. Este comprende las redes que tratan de simular los sistemas neuronales biológicos así como las funciones auditivas o algunas funciones básicas de la visión. El modelo dirigido a aplicación. Estos modelos no tienen porque guardar similitud con los sistemas biológicos. Sus arquitecturas están fuertemente ligadas a las necesidades de las aplicaciones para las que son diseñados.El objetivo principal de de las redes neuronales de tipo biológico es desarrollar un elementosintético para verificar las hipótesis que conciernen a los sistemas biológicos.Las neuronas y las conexiones entre ellas (sinápsis) constituyen la clave para el procesado de lainformación. Observe la figura:Hay tres partes en una neurona: El cuerpo de la neurona, Ramas de extensión llamadas dendrítas para recibir las entradas, y Un axón que lleva la salida de la neurona a las desdirías de otras neuronas.La forma que dos neuronas interactuan no está totalmente conocida, dependiendo además de cadaneurona. En general, una neurona envía su salida a otras por su axón. El axón lleva lainformación por medio de diferencias de potencial, u ondas de corriente, que depende delpotencial de la neurona. Este proceso es a menudo modelado como una regla de propagaciónrepresentada por la función de red u(.).Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.La neurona recoge las señales por su sinápsis sumando todas las influencias excitadoras einhibidoras. Si las influencias excitadoras positivas dominan, entonces la neurona da una señalpositiva y manda este mensaje a otras neuronas por sus sinápsis de salida. En este sentido laneurona puede ser modelada como una simple función escalón f(.). Como se muestra en lasiguiente figura, la neurona se activa si la fuerza combinada de la señal de entrada es superior aun cierto nivel, en el caso general el valor de activación de la neurona viene dado por una funciónde activación f(.)Es generalmente admitido que las sinápsis pueden ser modificadas por la experiencia, es decir,por aprendizaje. Para su análisis, es conveniente considerar una sola neurona con sus sinápsis.Esta unidad es llamada perceptron, y constituye la base de las redes de neuronas. Las ANNs dirigidas a aplicación están en general poco ligadas a las redes neuronales biológicas. Ya que el conocimiento que se posee sobre el sistema nervioso en general no es completo, se han de definir otras funcionalidades y estructuras de conexión distintas a las vistas desde la perspectiva biológica. Las características principales de este tipo de ANNs son los siguientes: 1. Auto Organización y Adaptatividad: utilizan algoritmos de aprendizaje adaptativo y auto organización, por lo que ofrecen posibilidades de procesado robusto y adaptativo. 2. Procesado No Lineal: aumenta la capacidad de la red de aproximar, clasificar y su inmunidad frente al ruido. 3. Procesado paralelo: normalmente se usa un gran número de células de procesado por el alto nivel de interconectividad.Estas características juegan un importante papel en las ANNs aplicadas al procesado de señal eimagen. Una red para una determinada aplicación presenta una arquitectura muy concreta, quecomprende elementos de procesado adaptativo masivo paralelo combinadas con estructuras deinterconexión de red jerárquica.Los componentes más importantes de una red neuronal artificial son: • Unidades de procesamiento (la neurona artificial) • Estado de activación de cada neurona. • Patrón de conectividad entre neuronas.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. • Regla de propagación. • Función de transferencia. • Regla de activación. • Regla de aprendizaje.De acuerdo a las características de cada nodo de la red (microestructura), se presenta la forma deorganización de la red neuronal artificial (mesoestructura) en función de: Número de niveles Número de neuronas por nivel Grada de Tipo de conexiones conectividad (Hacia atrás, hacia delante, lateral) Características de un grupo de neuronas • Número de niveles o capas: La distribución de neuronas dentro de la red se realiza formando niveles o capas de un número determinado de neuronas cada una. A partir de su situación dentro de la red, se pueden distinguir tres tipos de capas: 1) de entrada, es la capa que recibe directamente la información proveniente de las fuentes externa de la red; 2) ocultas, son internas a la red y no tiene contacto directo con el entorno exterior; y 3) de salida, transfieren información de la red hacia el exterior. • Número de neuronas por nivel: • Patrones de conexión: La conectividad entre los nodos de una red neuronal artificial está relacionada con la forma en que las salidas de las neuronas están canalizadas para convertirse en entradas de otras neuronas, • Flujo de información:Debido a su constitución y a sus fundamentos, las redes neuronales artificiales presentan un grannúmero de características semejantes a las del cerebro. Esto hace que ofrezcan numerosasventajas y que este tipo de tecnología se este aplicando en diferentes áreas. Estas ventajasincluyen:Aprendizaje adaptativo: capacidad de aprender a realizar tareas basadas en un entrenamiento ouna experiencia inicial.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Autoorganización: una red neuronal puede crear su propia organización o representación de lainformación que recibe mediante una etapa de aprendizaje.Tolerancia a fallos: la destrucción parcial de una red conducen a una degradación de suestructura; sin embargo, algunas capacidades de la red se pueden retener, incluso sufriendo ungran daño.Operación en tiempo real: los computadores neuronales pueden ser realizados en paralelo, y sediseñan o fabrican maquinas con hardware especial para obtener esta capacidad.Fácil inserción dentro de la tecnología existente: se pueden obtener chip especializados pararedes neuronales que mejoran su capacidad en ciertas tareas. Esto facilitará la integraciónmodular en los sistemas existentes.Las redes neuronales son una tecnología computacional emergente que puede utilizarse en ungran número y variedad de aplicaciones, tanto comerciales como militares. Se pueden desarrollarredes neuronales en un periodo de tiempo razonable y puede realizar tareas concretas mejor queotras tecnologías convencionales. • El perceptron está constituido por las N entradas provenientes de fuentes externas, las N conexiones o pesos w = (w1,w2,…,wN) y la salida . En realidad un perceptron es la red neuronal más simple posible: aquella donde no existen capas ocultas. Para cada configuración de los estados de las neuronas de entrada (estímulo) la respuesta del perceptron obedece la siguiente dinámica: sumar los potenciales sinápticos wij (ver figura 2). Esta suma ponderada, también llamada campo, se escribe: Si hi > qi, la respuesta de la neurona es = +1; si no, es inactiva y si = -1. Si tanto las entradas como las salidas son binarias; se dice entonces que el perceptron realiza una función booleana de sus entradas. Pero otras posibilidades han sido estudiadas (entradas reales, salidas sigmoideas en función del campo, etc.), en vista de las aplicaciones. Con una arquitectura tan simple como la del perceptron no se pueden realizar más que una clase de funciones booleanas muy simples, llamadas linealmente separables. Son las funciones en las cuales los estados de entrada con salida positiva pueden ser separados de aquellos a salida negativa por un hiperplano. Un hiperplano es el conjunto de puntos en el espacio de estados de entrada, que satisfacen una ecuación lineal. En dos dimensiones, es una recta, en tres dimensiones un plano, etc. La figura 3 presenta dos ejemplos de funciones booleanas con 2 entradas (N=2). El ejemplo 3b no es realizable por un perceptron. Si se quieren realizar funciones más complejas con redes de neuronas, es necesario intercalar neuronas ocultas entre las entradas y la salida.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Red neuronal con una capa oculta y H unidades Una red multicapas se define como un conjunto de perceptrones, ligados entre si por sinápsis y dispuestos en capas siguiendo diversas arquitecturas. Una de las arquitecturas más comúnmente usada es llamada feedforward: se tienen conexiones de la entrada a las capas ocultas y de aquí a la salida. En la figura 4 se muestra una RN feedforward con N entradas x=(x1,x 2,…,x N) y una capa oculta de H unidades ocultas. El perceptron de salida es denotado por z. El funcionamiento de una RN es gobernado por reglas de propagación de actividades y de actualización de los estados. Teóricamente, una RN puede ser vista como un modelo que realiza una función de un espacio de entrada hacia un espacio de salida. El objetivo de esta modelización consiste en que la asociación sea lo más acorde posible con el medio ambiente del fenómeno estudiado. Observe en la figura 4 que el perceptron de salida z tiene ahora como entradas las salidas de las unidades ocultas s: es justamente aquí donde se realiza el mapeo del espacio de entrada hacia estados ocultos llamados representaciones internas, que son una codificación de la información, y de éstas a la salida.6.2. REDES NEURONALES Y COMPUTADORAS DIGITALESPara entender el potencial real de la computación neuronal, será necesario hacer una claradistinción entre los sistemas de computación neuronal y digitales.Los sistemas neurológicos no aplican principios de circuitos lógicos o digitales: un sistema decomputación digital debe ser asíncrono o asíncrono; mientras que las neuronas non pueden sercircuitos de umbral lógico, porque hay miles de entradas variables en la mayoría de las neuronasy el umbral es variable con el tiempo, siendo afectado por la estimulación, atenuación, etc. Losprocesos colectivos que son importantes en computación neuronal no pueden implementarse encomputación digital. Por lo que el cerebro debe ser un computador analógico.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ni las neuronas ni las sinapsis son elementos de memoria biestables.En la computación neuronal no hay instrucción de máquina ni códigos de control. Los circuitos del cerebro no implementan computación recursiva, y por tanto no son algorítmicos. Incluso en el nivel más alto, la naturaleza del proceso de información es diferente en el cerebro y en los computadores digitales. Con el fin de llegar al entendimiento global de ANNs, adoptamos la siguiente perspectiva, llamada top-down que empieza por la aplicación se pasa al algoritmo y de aquí a la arquitectura: Esta aproximación a las ANNs está motivada por la aplicación, basada en la teoría y orientada hacia la implementación. Las principales aplicaciones son para el procesado de señal y el reconocimiento de patrones. La primera etapa algorítmica representa una combinación de la teoría matemática y la fundamentación heurística por los modelos neuronales. Elfin último es la construcción de neurocomputadores digitales, con la ayuda de las tecnologías y elprocesado adaptativo, digital y paraleloLas redes neuronales tratan de resolver de forma eficiente problemas que pueden encuadrarsedentro de tres amplios grupos: optimización, reconocimiento y generalización. Estos tres tiposengloban un elevado número de situaciones, lo que hace que el campo de aplicación de las redesneuronales en la gestión empresarial sea muy amplio.En los problemas de optimización, se trata de determinar una solución que sea óptima.Generalmente se aplican redes neuronales realimentadas, como el modelo de Hopfield citado. Enla gestión empresarial, son decisiones de optimización encontrar los niveles de tesorería, deexistencias, de producción, construcción de carteras óptimas, etc.En los problemas de reconocimiento, se entrena una red neuronal con inputs como sonidos,números, letras y se procede a la fase de test presentando esos mismos patrones con ruido. Este esuno de los campos más fructíferos en el desarrollo de redes neuronales y casi todos los modelos:perceptrón, redes de Hopfield, mapas de Kohonen, etc, han sido aplicados con mayor o menoréxito.En los problemas de generalización, la red neuronal se entrena con unos inputs y el test se realizacon otros casos diferentes. Problemas típicos de generalización son los de clasificación ypredicción.Las redes neuronales son modelos matemáticos especializados que pueden aplicarse en dominiosmuy concretos. Las redes neuronales están mostrando su utilidad en muchos problemas reales.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Los estudios empíricos muestran la eficiencia de las redes neuronales con datos basados en lógicadifusa, patrones o rasgos ocultos para la mayoría de las técnicas incluida la capacidad humana,datos que exhiben no linealidad e información en la que se ha detectado caos.La elección entre los diferentes sistemas de ayuda a la toma de decisiones depende del tipo detarea a realizar. También el nivel al que se toman las decisiones afecta la elección del tipo desistema más apropiado. Simón (1960) clasificó las decisiones en estructuradas y no estructuradas:las decisiones estructuradas son repetitivas, rutinarias y existe un procedimiento definido paraabordarlas, por el contrario, en las decisiones no estructuradas el decisor debe proporcionarjuicios y aportar su propia evaluación.Más recientemente Gorry y Scott-Morton (1971) han propuesto un esquema que relaciona el tipode decisión (estructurada, semiestructurada y no estructurada) y el nivel organizacional (controloperativo, de gestión y estratégico) con la herramienta a utilizar. Lógicamente en el niveloperativo dominan las decisiones estructuradas, en el nivel de gestión las semiestructuradas y enel estratégico las no estructuradas, formando una diagonal. En la figura siguiente hemosactualizado este esquema incorporando las últimas tecnologías de la información, e inclusoanticipando lo que puede ser un futuro próximo.6.3. REDES NEURONALES E IALas redes neuronales se encuentran dentro del campo de la IA, tal y como se muestra en elesquema siguiente: Inteligencia Artificial Redes de Autoproceso Procesamiento Numérico Procesamiento Simbólico Sistemas Asociativos Sistemas Distribuidos Redes Neuronales Redes SubsimbólicasUniversidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.La Inteligencia Artificial clásica (IA) ha generado una cierta decepción al tratar de explicar losprocesos cognoscitivos debido a que la representación usando reglas se aleja mucho de cualquierinspiración biológica por una parte y por otra conduce a la creación de sistemas que sondemasiado rígidos y al mismo tiempo extremadamente frágiles.El reconocimiento, el aprendizaje y la memoria son mecanismos cognoscitivos que no pueden serexplicados por medio del simbolismo de la IA, sino más bien en función de unidades simplespero altamente interconectadas de las cuales emerge un comportamiento complejo, paralelo yauto-organizado, sin necesidad de tener reglas explícitas de decisión ni de un procesador maestroo motor de inferencia.La secuenciación y la rigidez de reglas son dos aspectos que han sido duramente atacados en lastécnicas de IA. La inmensa ventaja de los métodos conexionistas comparado con los métodostradicionales de IA es la siguiente: no es necesario conocer ni una expresión ni una construcciónde la función a modelar, tan solo se requiere disponer de un conjunto de aprendizaje satisfactoriopara que la red pueda aproximar esta función aplicando una regla de aprendizaje. Así, muchosfenómenos cognoscitivos han logrado ser modelados a través de sistemas conexionistas.Por otra parte, en lo que concierne a la aplicación tecnológica, las redes de neuronas sonactualmente ampliamente utilizadas en aplicaciones tan variadas como la previsión, laclasificación, el diagnóstico automático, el procesamiento de señales, el reconocimiento deformas, la compresión de datos, la optimización combinatoria, la robótica y la búsqueda dedocumentos, entre otras.Existen diferencias relevantes entre redes neuronales con respecto a lo que se entiende comointeligencia artificial, las cuales se destacan a continuación:Representación del conocimiento: En IA se utilizan métodos de representación delconocimiento (reglas de producción, marcos, reglas semánticas, etc ) generalmente localizados:átomos de conocimiento, concepto asociado a una regla, etc. Esto hace que la gestión de las basesde conocimiento sea problemática: añadir una regla o suprimir un dato puede tener consecuenciasimprevisibles sobre los demás datos.Actualmente se piensa que los conocimientos se presentan de forma distribuida en el cerebro. Deesto se puede deducir algunas consecuencias: a) La red puede crear su propia organización de la información. b) Como se dispone de un número finito de neuronas, varios hechos se memorizan por la activación de clases de neuronas no disjuntas. c) Mejor tolerancia a fallos, la perdida de neuronas no implica que se deje de recordar, por tanto, debe existir información redundante.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Mecanismos de inferencia: Los mecanismos de inferencia (razonamiento) utilizados en la IAestan basados en la lógica (lenguaje Prolog, por ejemplo). Sin embargo, el cerebro humano norealiza un razonamiento necesariamente lógico; utiliza la imprecisión y la contradicción parcial.El modo de funcionamiento del cerebro es la evolución dinámica de las actividades neuronales.Aprendizaje: El aprendizaje en IA consiste simplemente en añadir nuevos átomos deconocimientos (nuevos hechos, reglas, etc.). En el cerebro, el aprendizaje de un hecho parecido aotro del que ya tenemos conocimiento se hace por refuerzo de las conexiones entre neuronas yesta actividad conjunta es necesario para memorizarlo. Se ha demostrado que si un sujeto no estaexpuesto a ciertos estímulos al comienzo de su vida, no podrá detectar más de estos estímulos,debido a la degeneración de las conexiones necesarias.Paralelismo: Es una característica innata de los sistemas conexionistas. Aunque un ordenadorrealiza cálculos mucho más rápido que un ser humano, no es capaz de desarrollar procesos queéste realiza de forma sencilla (comprensión de una frase, analizar una imagen, reconocer unrostro, etc). Esto es debido a que el cerebro humano, para hacerlo, pone en marchasimultáneamente millones de neuronas.Modo de trabajo con redes neuronales.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Originalmente la red neuronal no dispone de ningún tipo de conocimiento útil almacenado. Paraque ejecute una tarea es preciso entrenar o enseñar a la red neuronal. El entrenamiento se realizamediante patrones-ejemplo. Existen dos tipos de aprendizaje: supervisado y no supervisado. Si lared utiliza un tipo de aprendizaje supervisado debemos proporcionarle parejas de patronesentrada-salida y la red neuronal aprende a asociarlos. En terminología estadística equivale a losmodelos en los que hay vectores de variables independientes y dependientes. Si el entrenamientoes no supervisado, únicamente debemos suministrar a la red los datos de entrada para queextraiga los rasgos característicos esenciales. Estas redes neuronales no supervisadas estánrelacionadas con modelos estadísticos como el análisis de conglomerados o las escalasmultidimensionales.Durante la fase de aprendizaje en la mayor parte de los modelos se produce una variación de lospesos sinápticos, es decir, de la intensidad de interacción entre las neuronas, lo que enterminología estadística equivale a calcular los coeficientes de las funciones de ajuste.INCONVENIENTESLos sistemas neuronales presentan ciertos inconvenientes. Uno importante es que habitualmenterealizan un complejo procesamiento que supone millones de operaciones, por lo que no es posibleseguir paso a paso el razonamiento que les ha llevado a extraer sus conclusiones. Sin embargo, enredes pequeñas, mediante simulación o por el estudio de los pesos sinápticos sí es posible saber,al menos, qué variables de las introducidas han sido relevantes para tomar la decisión. Faltatodavía mucho por estudiar en el modo de operación de las redes neuronales.Otro problema es que al ser una herramienta novedosa y en pleno desarrollo, no se trata de unadisciplina con un cuerpo formal, coherente y establecido, por lo que el investigador se encuentracon muchos problemas a los que todavía no se ha encontrado solución.6.4. REDES NEURONALES Y MECANISMOS DE APRENDIZAJE (SUPERVISADO –NO SUPERVISADO)Los cambios que se producen durante el proceso de aprendizaje se reducen a la destrucción,modificación y creación de conexiones entre las neuronas. En los modelos de redes neuronalesartificiales, la creación de una nueva conexión implica que el peso de la misma pasa a tener unvalor distinto de cero. De la misma forma, una conexión se destruye cuando su peso pasa a sercero.Un aspecto importante respecto al aprendizaje en las redes neuronales es el conocer como semodifican los valores de los pesos; es decir, cuales son los criterios que se sigue para cambiar elvalor asignado a las conexiones cuando se pretende que la red aprende una nueva información.Estos criterios determinan lo que se conoce como ña regla de aprendizaje de la red.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Se suele considerar dos tipos de reglas: las que responden a los que habitualmente se conocecomo aprendizaje supervisado, y las correspondientes a un aprendizaje no supervisado. Ladiferencia entre ambos tipos estriba en la existencia o no de un agente externo (supervisor) quecontrole el proceso de aprendizaje de la red.a) Redes con aprendizaje supervisadoEl aprendizaje supervisado se caracteriza porque el proceso de aprendizaje se realiza mediante unentrenamiento controlado por un agente externo (supervisor, maestro) que determina la respuestaque debería generar la red a partir de una entrada determinada. El supervisor comprueba la salidade la red y en el caso de que esta no coincida con la deseada, se procederá a modificar los pesosde las conexiones, con el fin de conseguir que la salida obtenida se aproxime a la deseada.En este tipo de aprendizaje se suele considerar, a su vez, las siguiente formas de llevar a caboaprendizajes supervisados:Aprendizaje por corrección de errores: Consiste en ajustar los pesos de las conexiones de lared en función de la diferencia entre los valores deseados y los obtenidos en la salida de la red; esdecir en función del error cometido en la salida. La red neuronal Perceptron utiliza esta forma deaprendizaje.Aprendizaje por refuerzo: Se trata de un aprendizaje supervisado más lento que el anterior, quese basa en la idea de no disponer de un ejemplo completo del comportamiento deseado; es decir,de no indicar durante el entrenamiento exactamente la salida que se desea que proporcione la redante una determinada entrada. La función del supervisor se reduce a indicar mediante una señalde refuerzo si la salida obtenida en la red se ajusta a la deseada (éxito = + 1 o fracaso = - 1), y enfunción de ello se ajustan los pesos basándose en un mecanismo de probabilidades. Una red queutiliza este tipo de aprendizaje es la conocida como Linear Reward Penalty.Aprendizaje estocástico: Consisten básicamente en realizar cambios aleatorios en los valores delos pesos de las conexiones de la red y evaluar su efecto a partir del objetivo deseado y dedistribuciones de probabilidades. Una red que utiliza este tipo de aprendizaje es la conocida comoBoltzmann Machine.b) Aprendizajes no supervisadosLas redes con aprendizaje no supervisado (autosupervisado) no requieren influencia externa paraajustar los pesos de las conexiones entre sus neuronas. La red no recibe ninguna información porparte del entorno que le indique si la salida generada en respuesta a una determinada entrada es ono correcta; por ello, suele decirse que estas redes son capaces de autoorganizarse.Se consideran dos tipos de algoritmos de aprendizaje no supervisado:Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Aprendizaje hebbiano: El aprendizaje hebbiano consiste básicamente en el ajuste de los pesosde las conexiones de acuerdo con la correlación (multiplicación en los casos de valores binarios+1 y –1 ) de los valores de activación (salidas) de dos neuronas conectadas.Si las dos unidades son activas (positivas), se produce un reforzamiento de la conexión, cuandouna es activa y la otra pasiva (negativa), se produce un debilitamiento de la conexión. Se trata deuna regla de aprendizaje no supervisado, pues la motivación de los pesos se realiza en función delos estados (salidas) de las neuronas obtenidos tras la presentación de cierto estímulo(información de entrada a la red ), sin tener en cuenta si se desea obtener o no esos estados deactivación.Este tipo de aprendizaje fue empleado por Hopfield en la conocida red que lleva su nombre: “RedHopfield”.Aprendizaje competitivo y cooperativo: En las redes con aprendizaje competitivo ( ycooperativo), suele decirse que las neuronas compiten (y cooperan ) unas con otras con el fin dellevar a cabo una tarea dada. Con este tipo de aprendizaje, se pretende que cuando se presente a lared cierta información de entrada, solo una de las neuronas de salida de la red, o una por ciertogrupo de neuronas compiten por activarse, quedando finalmente una, o una por grupo, comoneurona vencedora, siendo anuladas el resto, que son forzadas a sus valores de respuesta mínimo.El objetivo de este aprendizaje es categorizar los datos que se introducen a la red. De esta forma,las informaciones similares son clasificadas formando parte de la misma categoría, y por tantodeben activar la misma neurona de salida. Las clases o categorías deben ser creadas por la propiared, puesto que se trata de un aprendizaje no supervisado, a través de las correlaciones entre losdatos de entrada. Este tipo de aprendizaje se ha aplicado a redes feedforward de dos capas.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.6.5. REDES NEURONALES Y LÓGICA BORROSALa lógica borrosa o multivaluada permite asignar diferentes grados de certeza a los hechos. Enlógica borrosa se trabaja con conjuntos, que se definen por sus funciones de pertenencia, que sedenotan como µ c (x) e indican el grado de pertenencia (entre 0 y 1) del elemento con valor x alconjunto C.Las operaciones entre conjuntos se plantean en forma de operaciones borrosas entre sus funcionesde pertenencia. Las más utilizadas son la Unión ( ∪ ), Intercepción ( ∩ ) y complemento ( - ) paralos conjuntos, y las correspondientes suma lógica borrosa ( ∨ ), producto lógico borroso ( ∧ ) ynegación borrosa para las funciones de pertenencia.Sean dos conjuntos borrosos A y B, con funciones de pertenencia µ A y µ B tendríamos:Unión: µ A ∪ B = µ A (x) ∨ µ B (x) = máx. (µ A (x), µ B (x))Intercepción: µ A ∩ B = µ A (x) ∧ µ B (x) = mín. (µ A (x), µ B (x))Complemento: µ -A (x) = 1 - µ A (x)Neuronas borrosas y aprendizaje borrosoUna neurona borrosa puede modelarse como una unidad de procesamiento que recibe una señalesborrosas de entrada a través de una sinapsis borrosas, siendo la entrada el producto borroso de lasalida de la neurona anterior por el peso borroso de la conexión. La entrada neta de la neurona nose obtiene como la suma aritmética de las entradas, sino como la suma borrosa de las mismas.Una posible utilidad en este tipo de redes, es servir de memoria asociativa para almacenar yevaluar las reglas de control en un sistema borroso. El mecanismo de aprendizaje también utilizaoperadores borrosos para la obtención de los pesos, siendo una adaptación de la regla de hebb,conocida como aprendizaje hebbiano borroso.Implementación neuronal de mapas cognitivos borrosos.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.SÉPTIMA UNIDAD:ALGORITMOS GENÉTICOS7.1. Introducción7.2. Algoritmos Genéticos 7.2.1 Representación de Hipótesis 7.2.2 Operadores Genéticos 7.2.3 Función de evaluación y selección7.3. Búsqueda en el espacio de Hipótesis7.4. Programación Genética 7.4.1 Representación de Programas7.5. Modelos de evolución y aprendizaje 7.5.1 Evolución Lamarckiana 7.5.2 El efecto Baldwin7.6. Paralelismo en Algoritmos Genéticos7.1. INTRODUCCIÓNLos algoritmos genéticos (AG) proporcionan un método de aprendizaje basado en la analogía conla evolución de las especies. Los AG generan un conjunto de hipótesis mediante la mutación yrecombinación de parte del conjunto de hipótesis conocido. En cada paso el conjunto de hipótesisconocido como “población actual” se renueva remplazando una proporción de esta población porlos sucesores de las hipótesis más “adecuadas” (mediante el uso de una función de evaluación).La popularidad de los AG se debe en parte a que la evolución es un método robusto y bienprobado dentro de los sistemas biológicos naturales. Además son fácilmente paralelizables, loque supone una ventaja gracias al abaratamiento actual de los costes en hardware. Por otra parte,los AG pueden realizar búsquedas en espacios de hipótesis que contienen complejas interaccionesentre las distintas partes, donde el impacto de cada parte sobre la función de evaluación es difícilde especificar.Aunque no se garantice encontrar la solución óptima, los AG generalmente encuentran solucionescon un alto grado de acierto.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.7.2. ALGORITMOS GENÉTICOSEl objetivo de los AG es buscar dentro de un espacio de hipótesis candidatas la mejor de ellas. Enlos AG la “mejor hipótesis” es aquella que optimiza a una métrica predefinida para el problemadado, es decir, la que más se aproxima a dicho valor numérico una vez evaluada por la función deevaluación.El comportamiento básico de un algoritmo genético es el siguiente: de forma iterativa vaactualizando la población de hipótesis. En cada iteración, todos los miembros de la población sonprocesados por la función de evaluación, tras lo cual una nueva población es generada. La nuevageneración estará compuesta por:- Las mejores hipótesis de la población actual (seleccionadas probabilísticamente)- Y el resto de hipótesis necesarias para mantener el número, que se consiguen mediante el crucede individuos. A partir de dos hipótesis padre (seleccionadas probabilísticamente a partir de lapoblación actual) se generan dos hipótesis hijas recombinando sus partes siguiendo algún criterioestablecido.Una vez llegados a este punto (con una nueva población con el mismo número de individuos), aun determinado porcentaje de la población se le aplica un operador de mutación.7.2.1. Representación de HipótesisLas hipótesis en los AG se suelen representar mediante cadenas de bits, de forma que puedan serfácilmente manipulables por los operadores genéticos de mutación y cruce.Primero veamos como usar una cadena de bits para representar los posibles valores de unatributo. Si un atributo puede tomar tres valores posibles (A, B y C), una manera de representarloes mediante tres bits de forma que:Atributo (100) = puede tomar el valor AAtributo (010) = puede tomar el valor BAtributo (001) = puede tomar el valor CAtributo (110) = puede tomar el valor A ó B (A or B)Atributo (111) = puede tomar el valor A, B ó C (A or B or C). No importa el valor del atributo.De esta forma podemos representar fácilmente conjunciones de varios atributos para expresarrestricciones (precondiciones) mediante la concatenación de dichas cadenas de bits.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Ejemplo:“Tiempo” puede ser Despejado, Nublado o Lluvioso.“Viento” puede ser Fuerte o Moderado.(Tiempo = Nublado ó Lluvioso) y (Viento = Fuerte) se representaría con la siguiente cadena: 01110.Las postcondiciones de las reglas se pueden representar de la misma forma. Por ello una regla sepuede describir como la concatenación de la precondición y la postcondición.Ejemplo:“Jugar al Tenis” puede ser Cierto o Falso.Si Viento = Fuerte entonces “Jugar al Tenis” = Cierto se representaría mediante 111 10 10.Donde los tres primeros bits a uno indican que el atributo “Tiempo” no afecta a nuestra regla.Cabe destacar que una regla del tipo 111 10 11 no tiene demasiado sentido, puesto que no imponerestricciones en la postcondición. Para solucionar esto, una alternativa es codificar lapostcondición con un único BIT (1 = Cierto y 0 = Falso).Otra opción es condicionar los operadores genéticos para que no produzcan este tipo de cadenas oconseguir que estas hipótesis tengan una adecuación muy baja (según la función de evaluación)para que no logren pasar a la próxima generación de hipótesis.7.2.2. Operadores GenéticosLos dos operadores más comunes son la “mutación” y el “cruce”.El operador de cruce genera dos nuevos hijos a partir de dos cadenas padre recombinando susbits. Para elegir con que bits contribuye cada padre hacemos uso de una “máscara de cruce”.Veamos un par de ejemplos:Cruce Simple: Cadenas padre Mascara de Cruce Hijos 11101001000 11101010101 11111000000 00001010101 00001001000Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Cruce Doble: Cadenas padre Mascara de Cruce Hijos 11101001000 11001011000 00111110000 00001010101 00101000101El operador mutación produce un nuevo hijo de un solo padre cambiando el valor de uno de susbits elegido al azar. Generalmente se aplica después de hacer uso del operador cruce.Otros operadores genéticos son “AddAlternative” y “DropCondition”. El primero de ellos cambiaun BIT de un atributo de 0 a 1, es decir, permite que el atributo pueda tomar el valor representadopor dicho BIT. El segundo pone todos los bits de un atributo a 1, con lo que elimina la restricciónimpuesta por el atributo.Una posibilidad interesante que surge con la aplicación de estos operadores, es la de incluirnuevos bits en las cadenas que representan las hipótesis y que indiquen que operadores puedenser aplicados a dicha hipótesis (añadiendo un BIT por operador). Como estos bits van a sufrirmodificaciones a causa de los operadores aplicados a la cadena, estaremos alterandodinámicamente los métodos de búsqueda del algoritmo genético.7.2.3. Función de evaluación y selecciónLa función de evaluación define el criterio para ordenar las hipótesis que potencialmente puedenpasar a formar parte de la siguiente generación.La selección de las hipótesis que formarán parte de la siguiente generación o que serán usadaspara aplicarles los operadores genéticos, puede realizarse de varias formas. Las más usuales son:- Selección proporcional al ajuste dado por la función de evaluación. En este método laprobabilidad de que una hipótesis sea seleccionada viene determinada por:Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. Figura 1 - Probabilidad de que la hipótesis hi sea elegida.- Selección mediante torneo. Se eligen dos hipótesis al azar. La más “adecuada” (según la funciónde evaluación) tiene una probabilidad p (prefijada de antemano) de ser elegida, mientras que laotra tiene una probabilidad (1 – p).- Selección por rango. Las hipótesis de la población actual se ordenan de acuerdo a suadecuación. La probabilidad de que una hipótesis sea seleccionada será proporcional a suposición en dicha lista ordenada, en lugar de usar el valor devuelto por la función de evaluación.7.3. BÚSQUEDA EN EL ESPACIO DE HIPÓTESISUna de las dificultades que nos encontramos en algunos algoritmos genéticos es el problema del“crowding” (muchedumbre). Se trata de un fenómeno por el cual las mejores hipótesis sereproducen rápidamente de manera que las nuevas generaciones una gran proporción se debe aéstas hipótesis y a otras muy similares (descendientes), reduciendo así la diversidad de lapoblación, y por lo tanto, las posibilidades de la evolución. Para reducir los efectos del“crowding” se usan varias estrategias. Una solución consiste en cambiar el método de selecciónhabitual (selección proporcional al ajuste) por alguno de los otros vistos con anterioridad(selección mediante torneo o selección por rango). Otra opción consiste en usar otra función deevaluación, “ajuste compartido”, de manera que el valor devuelto por esta función se devalúaante la presencia de otras hipótesis similares en la población. Y una tercera alternativa esrestringir el tipo de hipótesis a los que se les permite la recombinación.7.4. PROGRAMACIÓN GENÉTICALa programación genética (PG) es una forma de computación evolutiva en la que los individuosde la población son programas, en lugar de cadenas de bits.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.7.4.1. Representación de ProgramasLos programas usados en la programación genética suelen representarse mediante sus árbolessintácticos. En esta notación, cada llamada a una función se representa por un nodo en el árbol, ylos argumentos de la función corresponden con los nodos hijos de éste. Para aplicar programacióngenética a un dominio particular, es necesario que el usuario defina de antemano las primitivasque se van a emplear así como el tipo de los nodos hoja. Por lo tanto, la programación genéticarealiza una búsqueda evolutiva en un espacio de programas descritos mediante sus árbolessintácticos.De igual forma que los algoritmos genéticos, la programación genética itera sobre una poblaciónde individuos produciendo una nueva generación mediante el empleo de la selección, el cruce yla mutación. La adecuación de un programa viene determinada por los resultados de su ejecuciónsobre unos datos de entrenamiento (función de evaluación).Así, por ejemplo, el operador de cruce se implementa mediante el intercambio de subárbolesentre programas padres.En la mayoría de los casos, el rendimiento de la programación genética depende básicamente dela representación elegida y de la elección de la función de evaluación. Figura 2 - Representación de un programa mediante su árbol.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.7.5. MODELOS DE EVOLUCIÓN Y APRENDIZAJEEn muchos sistemas naturales, los individuos aprenden a adaptarse durante sus vidas. Al mismotiempo distintos procesos biológicos y sociales permiten a la especie adaptarse a lo largo de lasdistintas generaciones, por lo que surge una interesante pregunta: ¿Cuál es la relación entre elaprendizaje individual de un organismo durante su vida y el aprendizaje colectivo de la especie?A esta cuestión intentan responder la teoría de la evolución Lamarckiana y la teoría del efectoBaldwin.7.5.1. Evolución LamarckianaLamarck (científico de finales del siglo XIX) propuso que la experiencia de un individuo afectadirectamente a su descendencia, por lo que el conocimiento sería hereditario y las siguientesgeneraciones no necesitarían adquirirlo. Se trata de una conjetura que mejora la eficiencia de losalgoritmos genéticos y la programación genética, en las cuales se ignoraba la experienciaadquirida por el individuo durante su vida.Aunque biológicamente esta teoría no es correcta como modelo de evolución, sin embargo si esperfectamente aplicable al caso de la computación genética, donde recientes estudios handemostrado su capacidad para mejorar la efectividad.7.5.2. El efecto BaldwinSe trata de otro mecanismo que sugiere como el aprendizaje de un individuo puede alterar elcurso de la evolución de la especie. Se basa en las siguientes afirmaciones:- Si una especie evoluciona en un entorno cambiante, entonces los individuos capaces deaprender durante su vida se verán favorecidos. De hecho, la habilidad para aprender permite a losindividuos maximizar su capacidad de adaptación en el entorno.- Los individuos con capacidad de aprendizaje dependerán en menor medida de su códigogenético. Como consecuencia de lo anterior las nuevas generaciones poseerán una diversidadgenética mayor, lo que permitirá una evolución más rápida. En resumen, la capacidad deaprendizaje de algunos individuos provoca indirectamente una aceleración en la evolución detoda la población.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.7.6. PARALELISMO EN ALGORITMOS GENÉTICOSLos algoritmos genéticos son fácilmente paralelizables. A continuación se muestran lasposibilidades de paralelismo con AG’s:Grano Grueso: Se subdivide la población en una serie de grupos distintos (siguiendo algúncriterio), llamados “demes”. Cada uno de estos grupos se asigna a un nodo de computacióndistinto, y a continuación se aplica un AG en cada nodo. Los operadores de cruce se aplicarangeneralmente entre individuos del mismo grupo, y en menor porcentaje, entre individuos dedistintos grupos. En este entorno surge un nuevo concepto, denominado migración, que seproduce cuando un individuo de un grupo se copia o se traslada a otro (s). Un beneficio delmodelo de grano grueso es que se reduce el efecto “crowding” que aparecía en los AG noparalelizados.Grano Fino: Se asigna un procesador a cada individuo de la población. La recombinación seefectúa entre individuos vecinos en la red de computación. Algunos ejemplos de redes deprocesadores (especifican las reglas de vecindad) son la malla, el toroide, etc.EJERCICIODiseñar un algoritmo genético que aprenda a clasificar conjunciones de reglas ara el problema“Jugar al Tenis” descrito en el capítulo 3 [nota]. Describe detalladamente la codificación de lacadena de bits para las hipótesis y el conjunto de operadores de cruce.La expresión que soluciona el problema es la siguiente:(Tiempo = soleado y Humedad=Normal) o(Tiempo = nublado) o(Tiempo = lluvioso y Viento=Debil)Los posibles valores de los atributos son:Tiempo = (Soleado,Nublado,Lluvioso)Humedad=(Alta,Normal)Viento=(Fuerte,Debil)JugarTenis=(Si,No)Por lo tanto, para la cadena de bits de las hipótesis usaremos tres bits para “Tiempo”, dos para“Humedad”, dos para “Viento” y uno para “Jugar tenis”.Ejemplo: Si (Tiempo = soleado y Humedad=Normal y Viento = fuerte) -> JugarTenis=Si se expresaría como: 100 01 10 1Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.Como la solución buscada es la disyunción de tres de estas reglas, las cadenas de bits de nuestrashipótesis estarán formadas por la concatenación de tres cadenas.Ejemplo: 100 01 10 1 + 010 10 10 1 + 100 10 01 1En cuanto al operador de cruce, elegiremos uno de tipo uniforme con la siguiente máscara: Máscara de cruce = 11000011 11000011 11000011Para elegir las hipótesis que pasarán a la siguiente generación, o que serán elegidas para sufrir lasoperaciones de cruce, usaremos una selección probabilística tal que: ver Figura 1A la hora de implementar el algoritmo, haremos uso de los siguientes parámetros: r= % población que sufrirá la operación de cruce p= número de hipótesis de la población m= % de individuos (hipótesis) que mutanDurante las iteraciones del algoritmo: a) (1-r)p pasarán a la siguiente generación (Ps) intactos b) (r*p)/2 parejas de hipótesis realizarán la operación de cruce c) Y el m porciento de la “nueva” población sufrirán mutaciones. Este m porciento se elige con una probabilidad uniforme.Función Fitness (función de evaluación)Dispondremos de una base de datos de entrenamiento, compuesta por cadenas de 7 bits tal quenos indique que condiciones habrán de darse para jugar o no al tenis.Ejemplo: 100 01 10 1 = (Tiempo = soleado y Humedad=Normal) -> SiEn nuestro ejemplo, el número de combinaciones posible es 3x2x2=12 (lo cual no es mucho ynos permite tener una muestra de entrenamiento completa).El objetivo de la función es el de comprobar el porcentaje de reglas de entrenamiento que nuestrahipótesis es capaz de clasificar correctamente para, de esta forma, dotar a cada individuo de unvalor numérico indicativo de su precisión (ajuste al modelo buscado).Nuestra hipótesis (individuo) se puede representar en tres partes (A,B y C) donde Z es el bit queindica si se juega o no al tenis en cada caso.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial. A B C x x x x x x x x x x x x x x x x x x x x x x x x z z zNuestra función de evaluación tomará una hipótesis y la procesará con todo el conjunto deentrenamiento. Una cadena de entrenamiento se representa de la siguiente forma (donde R es elBIT que indica si se juega o no al tenis): Entrenamiento x x x x x x x x Data (7 bits) REsta cadena de entrenamiento se compara con cada una de las partes de la hipótesis para ver sialguna de las tres la clasifica correctamente. Para saber si una parte clasifica bien una regla deentrenamiento procederemos de la siguiente forma: Si R=1 entonces Si ( (Entrenamiento AND A) = Entrenamiento) devolver SI Sino devolver NO Si R=0 entonces Si ( (Data AND A) = Data) Si R=Z devolver SI Sino devolver NO Sino devolver NOSi se ha devuelto SI, procedemos con el siguiente dato de entrenamiento. Si se ha devuelto NO,evaluamos la siguiente parte del individuo (B y después C).Para cada individuo, la función de evaluación realiza esta tarea con todos los datos deentrenamiento, devolviendo un número entre 0 y 1 que indique el porcentaje de clasificacionescorrectas de la hipótesis actual (0% a 100%). Así pues, cada individuo estará asociado a un valornumérico que usará posteriormente la función de selección.Función AG (Fitness,Umbral,p,r,m){Inicializar población P.Para cada hipótesis en P, calcular Fitness.Mientras que max(Fitness) < Umbral hacerSeleccionar (1-r)p individuos de P que pasan a Ps.Elegir (r*p)/2 parejas de P y aplicarles operadores de cruce. Añadir los hijos a Ps.Elegir m porciento sobre Ps y aplicar mutación.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.
  • Inteligencia Artificial.P <- PsPara cada hipótesis en P, calcular Fitness.Fin mientrasDevolver la hipótesis con mayor fitness.}En nuestro caso el Umbral será 1 (100% de clasificaciones correctas) ya que disponemos en labase de entrenamiento de todas las combinaciones posibles (algo que no ocurrirá en problemasreales y no de juguete, como es éste)Nota: Se trata de un ejemplo sencillo en el que una determinada persona juega al tenis siempre ycuando se cumplan unas determindas condiciones atmosféricas.CONCLUSIONESComo hemos podido observar, la principal ventaja de los algoritmos genéticos radica en su sencillez. Serequiere poca información sobre el espacio de búsqueda ya que se trabaja sobre un conjunto de solucioneso parámetros codificados (hipótesis o individuos). Se busca una solución por aproximación de lapoblación, en lugar de una aproximación punto a punto. Con un control adecuado podemos mejorar laaptitud promedio de la población, obteniendo nuevos y mejores individuos y, por lo tanto, mejoressoluciones.Se consigue un equilibrio entre la eficacia y la eficiencia. Este equilibrio es configurable mediante losparámetros y operaciones usados en el algoritmo. Así, por ejemplo, bajando el valor del umbralconseguiremos una rápida solución a cambio de perder en “calidad”. Si aumentamos dicho valor,tendremos una mejor solución a cambio de un mayor tiempo consumido en la búsqueda. Es decir,obtenemos una buena relación entre la calidad de la solución y el costo.Quizás el punto más delicado de todo se encuentra en la definición de la función de evaluación. Al igualque en el caso de la heurística, de su eficacia depende el obtener buenos resultados. El resto del proceso essiempre el mismo para todos los casos.La programación mediante algoritmos genéticos suponen un nuevo enfoque que permite abarcar todasaquellas áreas de aplicación donde no sepamos como resolver un problema, pero si seamos conscientes deque soluciones son buenas y cuales son malas.Desde aplicaciones evidentes, como la biología o la medicina, hasta otros campos como la industria(clasificación de piezas en cadenas de montaje). Los algoritmos genéticos poseen un importante papel enaplicaciones de búsqueda y optimización, pero desde nuestro punto de vista, es en el aprendizajeautomático donde encuentra un estupendo marco de trabajo. La capacidad que poseen para favorecer a losindividuos que explican bien los ejemplos, a costa de los que no lo hacen, consigue una nueva generacióncon mejores reglas y, por lo tanto el sistema será capaz de ir aprendiendo a conseguir mejores resultados.Universidad Nacional de Ingeniería. Elaborado por Ing. Ariel Chávez ToruñoFacultad de Ciencias y Sistemas.