Monografias | Inteligencia Artificial

Inteligencia Artificial

Resumen: Nociones y antecedentes históricos de Inteligencia Artificial. Características de la Inteligencia Artificial. Objetivos de la Investigación en Inteligencia Artificial. Símbolos vs. Métodos numéricos. Algoritmos. Base de conocimiento. Sistemas basados en conocimiento. Motor de inferencia. Sistemas expertos como Sistemas de Información orientados al Servicio. Robótica. Perspectivas futuras.(V)

Publicación enviada por David Henao


 

Índice

Introducción.

Nociones y antecedentes históricos de Inteligencia Artificial.

Características de la Inteligencia Artificial.

Objetivos de la Investigación en Inteligencia Artificial.

Símbolos vs. Métodos numéricos.

Algoritmos.

Base de conocimiento. Sistemas basados en conocimiento.

Motor de inferencia.

Sistemas expertos como Sistemas de Información orientados al Servicio.

Robótica.

Perspectivas futuras.

Conclusiones.

Bibliografía.

 

Introducción.

La Inteligencia Artificial comenzó como el resultado de lainvestigación en psicología cognitiva y lógica matemática. Se ha enfocadosobre la explicación del trabajo mental y construcción de algoritmos de solucióna problemas de propósito general. Punto de vista que favorece la abstracción yla generalidad.

La Inteligencia Artificial es una combinación de la cienciadel computador, fisiología y filosofía, tan general y amplio como eso, es quereúne varios campos (robótica, sistemas expertos, por ejemplo), todos loscuales tienen en común la creación de máquinas que pueden "pensar".

La idea de construir una máquina que pueda ejecutar tareaspercibidas como requerimientos de inteligencia humana es un atractivo. Lastareas que han sido estudiadas desde este punto de vista incluyen juegos,traducción de idiomas, comprensión de idiomas, diagnóstico de fallas, robótica,suministro de asesoría experta en diversos temas.

Es así como los sistemas de administración de base de datoscada vez más sofisticados, la estructura de datos y el desarrollo de algoritmosde inserción, borrado y locación de datos, así como el intento de crear máquinascapaces de realizar tareas que son pensadas como típicas del ámbito de lainteligencia humana, acuñaron el término Inteligencia Artificial en 1956.

Trabajos teóricos fundamentales fueron el desarrollo dealgoritmos matemáticos por Warren McCullock y Walter Pitts, en 1943, necesariospara posibilitar el trabajo de clasificación, o funcionamiento en sentidogeneral, de una red neuronal. En 1949 Donald Hebb desarrolló un algoritmo deaprendizaje para dichas redes neuronales creando, en conjunto con los trabajosde McCullock y Pitts, la escuela creacionista. Esta escuela se considera hoycomo 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,lo que se conoce como sistemas expertos.

I. Nociones y Antecedentes Históricosde Inteligencia Artificial.

Definiciones sobre Inteligencia Artificial:

 

  • 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.

 

 

  • Estudio de los mecanismos de la inteligencia y las tecnologías que lo sustentan. (Newell, 91)

 

 

  • Intento de reproducir (modelar) la manera en que las personas identifican, estructuran y resuelven problemas difíciles (Pople, 84)

 

 

  • Son ciertas herramientas de programación, entendiendo por herramientas:

 

o      Lenguajes: LISP, PROLOG

§       Entornos de desarrollo: shells

§       Arquitecturas de alto nivel: nodo y arco, sistemas de producciones

Desde sus comienzos hasta la actualidad, la InteligenciaArtificial ha tenido que hacer frente 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.

 

En 1843, Lady Ada Augusta Byron, patrocinadora de CharlesBabbage planteó el asunto de si la máquina de Babbage podía"pensar".

Los primeros problemas que se trató de resolver fueronpuzzles, juegos de ajedrez, traducción de textos a otro idioma.

Durante la II Guerra Mundial Norbert Wiener y John VonNeumann establecieron los principios de la cibernética en relación con larealización de decisiones complejas y control de funciones en máquinas.

La teoría de la retroalimentación en mecanismos, como porejemplo un termostato que regula la temperatura en una casa, tuvo muchainfluencia. Esto aún no era propiamente Inteligencia Artificial. Se hizo muchoen traducciones (Andrew Booth y Warren Weaver), lo que sembró la semilla haciael entendimiento del lenguaje natural.

En el año 1955 Herbert Simon, el físico Allen Newell y J.C.Shaw, programador de la RAND Corp. y compañero de Newell, desarrolla el primerlenguaje de programación orientado a la resolución de problemas de laInteligencia Artificial, el IPL-11. Un año más tarde estos tres científicosdesarrollan el primer programa de Inteligencia Artificial al que llamaron LogicTheorist, el cual era capaz de demostrar teoremas matemáticos,representando cada problema como un modelo de árbol, en el que se seguíanramas en busca de la solución correcta, que resultó crucial. Este programademostró 38 de los 52 teoremas del segundo capítulo de PrincipiaMathematica de Russel y Whitehead.

En 1956, con la ahora famosa conferencia de Dartmouth,organizada por John McCarthy y en la cual se utilizó el nombre de inteligenciaartificial para este nuevo campo, se separó la Inteligencia Artificial de laciencia del computador, como tal. Se estableció como conclusión fundamental laposibilidad de simular inteligencia humana en una máquina.

En 1957 Newell y Simon continúan su trabajo con eldesarrollo del General Problems Solver (GPS). GPS era un sistemaorientado a la resolución de problemas; a diferencia del Logic Theorist,el cual se orientó a la demostración de teoremas matemáticos, GPS no estabaprogramado para resolver problemas de un determinado tipo, razón a la cual debesu nombre. Resuelve una gran cantidad de problemas de sentido común, como unaextensión del principio de retroalimentación de Wiener.

Diversos centros de investigación se establecieron, entrelos más relevantes están, la Universidad Carnegie Mellon, el MassachusettsInstitute of Technologie (MIT), encabezado por Marvin Minsky, la Universidad deStandford e IBM. Los temas fundamentales eran el desarrollo de heurísticas y elaprendizaje de máquinas.

En 1957 McCarthy desarrolló el lenguaje LISP. La IBM contratóun equipo para la investigación en esa área y el gobierno de USA aportódinero al MIT también para investigación en 1963.

A finales de los años 50 y comienzos de la década del 60 sedesarrolla un programa orientado a la lectura de oraciones en inglés y laextracción de conclusiones a partir de su interpretación, al cual su autor,Robert K. Lindsay, denomina "Sad Sam". Este podía leer oraciones deltipo "Jim es hermano de John" y "La madre de Jim es Mary", apartir de ella el sistema concluía que Mary debía ser también la madre deJohn. Este sistema representó un enorme paso de avance en la simulación deinteligencia humana por una máquina, pues era capaz de tomar una pieza deinformación, interpretarla, relacionarla con información anteriormentealmacenada, analizarla y sacar conclusiones lógicas.

En el mismo período de tiempo hay trabajos importantes deHerbert Gelernter, de IBM, quien desarrolla un "Demostrador Automático deTeoremas de la Geometría", Alex Bernstein desarrolla un programa para eljuego de ajedrez que se considera el antecedente para "Deep Blue".

En 1961 se desarrolla SAINT (Simbolic Automatic INTegrator)por James Slagle el cual se orienta a la demostración simbólica en el áreadel álgebra.

En 1964 Bertrand Raphael construye el sistema SIR (SemanticInformation Retrieval) el cual era capaz de comprender oraciones en inglés.

A continuación un ejemplo, traducido, de interacción entreSIR y un usuario:

Usuario: Todos somos personas

SIR: Comprendo

Usuario: Un dedo es una parte de la mano

SIR: Comprendo

Usuario: Cada persona tiene dos manos

SIR: La oración anterior es ambigua. Por favorreconstrúyala.

Usuario: En cada persona hay dos manos

SIR: Comprendo

Usuario: ¿Cuantos dedos tiene John?

SIR: La oración anterior es ambigua, pero asumo queTIENE significa TIENE COMO PARTES. No se si los dedos forman parte de John.

Usuario: John es un chico

SIR: Comprendo

Usuario: ¿Cuántos dedos tiene John?

SIR: La oración anterior es ambigua, pero asumo queTIENE significa TIENE COMO PARTES, ¿cuántos dedos por mano?.

Usuario: Cada mano tiene cinco dedos.

SIR: Comprendo

Usuario: ¿Cuántos dedos tiene John?

SIR: La respuesta es diez.

En la década del 60 se comienza en el MIT el estudio de lavisión artificial, lo cual implica no solo captar imágenes a través de una cámara,sino también la comprensión, de lo que estas imágenes representan.

Un resultado importante en este trabajo lo constituye el"mundo de micro-bloques", en el cual un robot era capaz de percibir unconjunto de bloques sobre una mesa, moverlos y apilarlos; el éxito se debió alos investigadores Larry Roberts, Gerald Sussman, Adolfo Guzman, Max Clowes,David Huffman, David Waltz, Patrick Winston, y Berthold Horn.

Posteriormente se obtuvieron resultados importantes entreellos el de mayor resonancia fue el sistema SCHRDLU de Terry Winograd, puespermitía interrogar y dar órdenes a un robot que se movía dentro de un mundode bloques.

A continuación mostramos un ejemplo traducido:

Usuario: Toma un bloquerojo.

SCHRDLU: Ok.

Usuario: Busca un bloque más pequeño que el quetienes y ponlo dentro de la caja.

SCHRDLU: Asumo que PONLO se refiere al bloque máspequeño que el que tengo.

Usuario: ¿Qué contiene la caja?

SCHRDLU: La pirámide azul y el bloque azul.

Usuario: ¿Qué sostiene a la pirámide?

SCHRDLU: La caja.

Usuario: ¿Cuántos bloques no están sobre la mesa?

SCHRDLU: Cuatro.

Usuario: ¿Es al menos uno de ellos más estrecho queaquel que te dije que recogieras?

SCHRDLU: Sí, el cubo rojo.

Usuario: ¿Lo sostiene algo?

SCHRDLU: Sí, la mesa.

Usuario: ¿Puede la mesa recoger bloques?

SCHRDLU: No.

Usuario: La pirámide azul es mía.

SCHRDLU: Comprendo.

Usuario: Todos los bloques que no son rojos son míos,pero no poseo nada que sostenga una pirámide.

SCHRDLU: Comprendo.

Usuario: ¿Poseo una caja?

SCHRDLU: No

Usuario: ¿Poseo algo de la caja?

SCHRDLU: Si, dos cosas: El bloque azul y la pirámideazul.

Aunque parezca impresionante la capacidad del sistema pararazonar y ejecutar acciones, no se debe perder de vista el hecho que el robot semueve en un mundo muy simple de figuras geométricas, y que las relaciones entreellas son muy limitadas. En el mundo real existen tantos objetos diferentes yrelaciones entre ellos, que tratar de llevar este sistema a un entorno realresulta prácticamente imposible.

En los primeros años de la década del 60 Frank Rosemblattdesarrolla, en la Universidad de Cornell, un modelo de la mente humana a travésde una red neuronal y produce un primer resultado al cual llama perceptrón.Este sistema era una extensión del modelo matemático concebido por McCullock yPitts para las neuronas, y funcionaba basándose en el principio de"disparar" o activar neuronas a partir de un valor de entrada el cualmodifica un peso asociado a la neurona, si el peso resultante sobrepasa uncierto umbral la neurona se dispara y pasa la señal a aquellas con las que estáconectada. Al final, en la última capa de neuronas, aquellas que se activendefinirán un patrón el cual sirve para clasificar la entrada inicial.

Este trabajo constituye la base de las redes neuronales dehoy en día, sin embargo a raíz de su desarrollo sufrió fuertes críticas porparte de Marvin Minsky

y Seymour Papert lo cual provocó que la mayoría de losinvestigadores interesados en el tema lo abandonarán, y este no se retomarahasta los años 80.

En 1965-70, comenzaron a aparecer los programas expertos, quepredicen la probabilidad de una solución bajo un set de condiciones, entre esosproyectos estuvo: DENDRAL, que asistía a químicos en estructuras químicascomplejas euclidianas; MACSYMA, producto que asistía a ingenieros y científicosen 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 para aplicaciones médicas y para problemas realmentemuy complejos como MYCIN, que asistió a médicos en el diagnóstico ytratamiento de infecciones en la sangre. Otros son: R1/XCON, PIP, ABEL, CASNET,PUFF, INTERNIST/CADUCEUS, etc. Algunos permanecen hasta hoy.

De 1975 en adelante, comienza la era de los lenguajesexpertos (shells) como EMYCIN, EXPERT, OPSS, etc. para luego tratar de que éstossean más amigables y funcionales.

Las definiciones de Inteligencia Artificial son muchas, peropodría decirse que son programas que realizan tareas que si fueran hechas porhumanos se considerarían inteligentes.

Estos programas obviamente corren en un computador y se usan,como por ejemplo, en control robótico, comprensión de lenguajes naturales,procesamiento de imágenes basado en conocimientos previos, estrategias dejuegos, etc. reproduciendo la experiencia que un humano adquiriría y de laforma en que un humano lo haría.

Para clasificar las máquinas como "pensantes", esnecesario definir qué es inteligencia y qué grado de inteligencia implicaresolver problemas matemáticos complejos, hacer generalizaciones o relaciones,percibir y comprender. Los estudios en las áreas del aprendizaje, del lenguajey de la percepción sensorial han ayudado a los científicos a definir a una máquinainteligente. Importantes desafíos han sido tratar de imitar el comportamientodel cerebro humano, con millones de neuronas y extrema complejidad.

Características de la InteligenciaArtificial.

1.       Una característica fundamental que distingue a los métodos de Inteligencia Artificial de los métodos numéricos es el uso de símbolos no matemáticos, aunque no es suficiente para distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de bases de datos, también procesan símbolos y no se considera que usen técnicas de Inteligencia Artificial.

 

 

  1. El comportamiento de los programas no es descrito explícitamente por el algoritmo. La secuencia de pasos seguidos por el programa es influenciado por el problema particular presente. El programa especifica cómo encontrar la secuencia de pasos necesarios para resolver un problema dado (programa declarativo). En contraste con los programas que no son de Inteligencia Artificial, que siguen un algoritmo definido, que especifica, explícitamente, cómo encontrar las variables de salida para cualquier variable dada de entrada (programa de procedimiento).

 

Las conclusiones de un programa declarativo no son fijas y son determinadas parcialmente por las conclusiones intermedias alcanzadas durante las consideraciones al problema específico. Los lenguajes orientados al objeto comparten esta propiedad y se han caracterizado por su afinidad con la Inteligencia Artificial.

 

  1. El razonamiento basado en el conocimiento, implica que estos programas incorporan factores y relaciones del mundo real y del ámbito del conocimiento en que ellos operan. Al contrario de los programas para propósito específico, como los de contabilidad y cálculos científicos; los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de inferencia y base de conocimientos dándole la capacidad de explicar discrepancias entre ellas.

 

 

  1. Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolución de conflictos en tareas orientadas a metas como en planificación, o el diagnóstico de tareas en un sistema del mundo real: con poca información, con una solución cercana y no necesariamente exacta.

 

La Inteligencia Artificial incluye varios campos dedesarrollo tales como: la robótica, usada principalmente en el campoindustrial; comprensión de lenguajes y traducción; visión en máquinas quedistinguen formas y que se usan en líneas de ensamblaje; reconocimiento depalabras y aprendizaje de máquinas; sistemas computacionales expertos.

Los sistemas expertos, que reproducen el comportamientohumano en un estrecho ámbito del conocimiento, son programas tan variados comolos que diagnostican infecciones en la sangre e indican un tratamiento, los queinterpretan datos sismológicos en exploración geológica y los que configurancomplejos equipos de alta tecnología.

Tales tareas reducen costos, reducen riesgos en la manipulaciónhumana en áreas peligrosas, mejoran el desempeño del personal inexperto, ymejoran el control de calidad sobre todo en el ámbito comercial.

Diferentes teorías:

 

  1. Construir réplicas de la compleja red neuronal del cerebro humano (bottom-up).

 

 

  1. Intentar imitar el comportamiento del cerebro humano con un computador (top-down).

 

Diferentes metodologías:

 

  1. La lógica difusa: permite tomar decisiones bajo condiciones de incerteza.

 

 

  1. Redes neuronales: esta tecnología es poderosa en ciertas tareas como la clasificación y el reconocimiento de patrones. Está basada en el concepto de "aprender" por agregación de un gran número de muy simples elementos.

 

Este modelo considera que una neurona puede ser representadapor una unidad binaria: a cada instante su estado puede ser activo o inactivo.La interacción entre las neuronas se lleva a cabo a través de sinapsis. Segúnel signo, la sinapsis es excitadora o inhibidora.

El perceptrón está constituido por las entradasprovenientes de fuentes externas, las conexiones y la salida. En realidad unperceptrón es una Red Neuronal lo más simple posible, es aquella donde noexisten capas ocultas.

Para cada configuración de los estados de las neuronas deentrada (estímulo) la respuesta del perceptrón obedece a la siguiente dinámica:se suman los potenciales sinápticos y se comparan con un umbral de activación.Esta suma ponderada es también llamada campo. Si el campo es mayor que unumbral, la respuesta de la neurona es activa, si no, es inactiva.

Con una arquitectura tan simple como la del perceptrón no sepuede realizar más que una clase de funciones "booleanas" muysimples, llamadas linealmente separables. Son las funciones en las cuales losestados de entrada con salida positiva pueden ser separados de aquellos a salidanegativa por un hiperplano. Un hiperplano es el conjunto de puntos en el espaciode estados de entrada, que satisfacen una ecuación lineal. En dos dimensiones,es una recta, en tres dimensiones un plano, etc.

Si se quieren realizar funciones más complejascon Redes Neuronales, es necesario intercalar neuronas entre las capas deentradas y de salida, llamadas neuronas ocultas. Una red multicapas puede serdefinida como un conjunto de perceptrones,ligados entre si por sinapsis y dispuestos en capas siguiendo diversasarquitecturas. Una de las arquitecturas más comúnmente usada es llamada feedforward:con conexiones de la entrada a las capas ocultas y de éstas hacia la salida.

El funcionamiento de una Red Neuronal es gobernado por reglas de propagaciónde actividades y de actualización de los estados.

I.1. Objetivos de la Investigación enInteligencia Artificial.

Los investigadores en inteligencia artificial se concentranprincipalmente en los sistemas expertos, la resolución de problemas, el controlautomático, las bases de datos inteligentes y la ingeniería del software (diseñosde entornos de programación inteligente).

Otros investigadores están trabajando en el reto delreconocimiento de patrones donde se espera un rápido progreso en este campo queabarca la comprensión y la síntesis del habla, el proceso de imágenes y lavisión artificial.

Finalmente, la fundamental investigación sobre larepresentación del conocimiento, la conceptualización cognoscitiva y lacomprensión del lenguaje natural.

Uno de los principales objetivos de los investigadores eninteligencia artificial es la reproducción automática del razonamiento humano.

El razonamiento de un jugador de ajedrez no siempre es elmismo que el de un directivo que se pregunta la viabilidad de fabricar un nuevoproducto. Un niño jugando con bloques de madera en una mesa no tiene idea de lacomplejidad del razonamiento necesario para llevar a cabo la construcción deuna pirámide, e intentar que un robot hiciera lo mismo que el niño requeriríaun largo programa de computador.

Formas de considerar situaciones complejas son:

 

  • deducción, que permite obtener conclusiones de reglas cuyas premisas hemos comprobado

 

 

  • inducción que produce reglas a partir de observaciones parciales.

 

Estos dos tipos principales pueden utilizarse de un modo analítico(el razonamiento se divide en submódulos que son más difíciles de manejar, ode un modo sintético (inverso del proceso anterior, juntando elementos que sesepararon anteriormente).

La inducción puede tener lugar cuando se comparansituaciones que son casi similares, con parámetros desconocidos en una situacióndada asignándole los valores que tienen ya en una situación de referencia;este es un razonamiento por analogía.

Los métodos para razonar son variados. La iteraciónsignifica repetir la misma secuencia de razonamiento hasta que se alcance unacondición de final; la recursión consiste en una forma particular delrazonamiento que se llama a sí misma, como aquellas muñecas rusas que estánunas dentro de otras, hasta llegar a un problema simple que es fácil deresolver.

Las estrategias para el razonamiento pueden hacer uso de laespecialización, la reducción al absurdo, de la eliminación de caminos pocoprometedores y de la reducción de las diferencias.

En todos los casos, la organización jerárquica delconocimiento y la segmentación de los problemas son métodos que se empleansiempre al intentar resolver un problema complejo.

La función asignada a los sistemas expertos es la derazonar.

I.2. Símbolos vs. Métodos Numéricos.

El primer período de la Inteligencia Artificial, llamadosub-simbólico, data de aproximadamente 1950 a 1965. Este período utilizórepresentaciones numéricas (o sub-simbólicas) del conocimiento. Aunque lamayor parte de los libros de Inteligencia Artificial enfatizan el trabajorealizado por Rosenblatt y Widrow con redes neuronales durante este período, larealidad es que otra importante escuela sub-simbólica data también de la mismaépoca y estos son los algoritmos evolutivos.

La escuela clásica dentro de la Inteligencia Artificial,utiliza representaciones simbólicas basadas en un número finito de primitivasy de reglas para la manipulación de símbolos. El período simbólico seconsidera aproximadamente comprendido entre 1962 y 1975, seguido por un períododominado por los sistemas basados en el conocimiento de 1976 a 1988. Sinembargo, en este segundo período las representaciones simbólicas (por ejemplo,redes semánticas, lógica de predicados, etc.) siguieron siendo parte centralde dichos sistemas.

La Programación Lógica tiene sus orígenes más cercanos enlos trabajos de J. A. Robinson que propone en 1965 una regla de inferencia a laque llama resolución, mediante la cual la demostración de un teorema puede serllevada a cabo de manera automática.

En la actualidad, la Inteligencia Artificial empieza aextender sus áreas de investigación en diversas direcciones y trata deintegrar diferentes métodos en sistemas a gran escala, tratando de explotar almáximo las ventajas de cada esquema.

La resolución es una regla que se aplica sobre cierto tipode fórmulas del Cálculo de Predicados de Primer Orden, llamadas cláusulas yla demostración de teoremas bajo esta regla de inferencia se lleva a cabo porreducción al absurdo.

Otros trabajos importantes de esa época que influyeron en laprogramación lógica, fueron los de Loveland, Kowalski y Green, que diseña unprobador de teoremas que extrae de la prueba el valor de las variables para lascuales el teorema es válido.

Estos mecanismos de prueba fueron trabajados con muchoentusiasmo durante una época, pero, por su ineficiencia, fueron relegados hastael nacimiento de Prolog, que surge en 1971 en la Universidad de Marsella,Francia.

Actualmente, la programación lógica ha despertado uncreciente interés que va mucho más allá del campo de la InteligenciaArtificial y sus aplicaciones. Los japoneses, con sus proyectos de máquinas dela quinta generación, dieron un gran impulso a este paradigma de programación.

La Lógica de Primer Orden, es uno de los formalismos másutilizados para representar conocimiento en Inteligencia Artificial. La Lógicacuenta con un lenguaje formal mediante el cual es posible representar fórmulasllamadas axiomas, que permiten describir fragmentos del conocimiento y, ademásconsta de un conjunto de reglas de inferencia que aplicadas a los axiomas,permiten derivar nuevo conocimiento.

El Alfabeto del Lenguaje de la Lógica de Primer Ordencontiene dos tipos de símbolos:

 

  1. Símbolos lógicos, entre los que se encuentran los símbolos de constantes proposicionales true y false; los símbolos de operadores proposicionales para la negación, la conjunción, la disyunción y las implicaciones (=>, <=); los símbolos de operadores de cuantificación como el cuantificador universal; el cuantificador existencial; y los símbolos auxiliares de escritura como corchetes [,], paréntesis (,) y coma.

 

 

  1. Símbolos no lógicos, agrupados en el conjunto de símbolos constantes; el conjunto de símbolos de variables individuales; el conjunto de símbolos de funciones n-arias; y el conjunto de símbolos de relaciones n-arias.

 

A partir de estos símbolos se construyen las expresiones válidasen el Lenguaje de Primer Orden: los términos y las fórmulas.

Un término es cualquiera de las tresexpresiones siguientes: una constante, por ejemplo, el número "100",la palabra "alfredo" y la letra "c"; o una variable, porejemplo, "X" o bien una expresión de la forma"f(t1,...,tn)" donde "f" es un símbolo de función n-aria yt1,...,tn son términos. Ejemplos de funciones son: f(100,X), padre(Y) ysucesor(X).

Las fórmulas atómicas o elementales son expresionesde la forma R(t1,...,tn) donde R es un símbolo de relación n-aria y t1,...,tnson términos.

Ejemplos de fórmulas son:

positivo(3),not(igual(4,doble(2))),recetar(X,aspirina)<=tiene(X,fiebre), tiene(X,cefalea).

Esta última establece una regla que dice que, si X tienefiebre y cefalea (dolor de cabeza), X debe tomar una aspirina.

El Lenguaje de Primer Orden posee un amplio poder de expresión,los términos permiten nombrar los objetos del universo, mientras que las fórmulaspermiten afirmar o negar propiedades de éstos o bien establecen las relacionesentre los objetos del universo.

Puede decirse que la Programación Lógica utiliza la Lógicade Primer Orden como lenguaje de programación. Prolog es un ejemplo de lenguajebasado en la Lógica de Primer Orden y aunque toma su nombre de este término("PROgramming in LOGic"), no abarca toda la riqueza de la Lógica dePrimer Orden para resolver problemas, pues está restringido al uso de ciertaclase de fórmulas denominadas cláusulas definidas o cláusulas de Horn.

Un programa lógico está formado por un conjunto finito decláusulas de programa que son hechos o reglas. Por ejemplo:

padre(luis,miguel). hecho
padre(miguel,jose). hecho
padre(jose,juan). hecho
abuelo(X,Y):-padre(X,Z), padre(Z,Y). regla

Este programa está formado por cuatro cláusulas deprograma, las tres primeras son del tipo hecho y definen la relación padre/2 yla cuarta una regla que define la relación abuelo/2. Nótese el uso de lasvariables X,Y y Z en esta cláusula, las cuales permiten definir de manerageneral en Prolog la relación "ser abuelo de", pues la lecturadeclarativa de dicha cláusula es la siguiente: "Para cualesquiera X,Y,Z secumple que: X abuelo de Y, si X padre de Z y Z padre de Y".

En Prolog es posible hacer preguntas sobre objetos yrelaciones del dominio y estas preguntas se formulan como objetivos o metas, queson evaluadas por el intérprete de Prolog utilizando su mecanismo de inferenciainterno, el cual determina si la meta a demostrar es una consecuencia lógicadel programa, aplicando reglas de deducción para obtener la respuesta.

Por ejemplo, del programa anterior, utilizando la cláusulade tipo meta ?abuelo(X,juan), para preguntar ¿quién es el abuelo deJuan? o bien ¿quiénes son los abuelos de Juan?, es posible deducir que Luis esabuelo de Juan, aunque implícitamente no existe en el programa ningún hechoque así lo afirme.

En este caso la ejecución del programa, para dicha meta,arrojaría como resultado que X=luis.

El método de deducción utilizado por Prolog, para darrespuesta a los objetivos planteados, se basa en el uso de una única regla deinferencia: el Principio de Resolución.

Los primeros trabajos de prueba automática de teoremasutilizaban la resolución, aplicada a cláusulas cualesquiera, pero el problemade las deducciones con cláusulas generales es el gran número de combinacionesposibles para llevar a cabo las resoluciones.

Por ello Prolog restringe el conjunto de cláusulas, lo quele permite llevar a cabo una prueba dirigida y, en la mayoría de los casos, conun universo de posibilidades explorable en tiempo de ejecución.

Realmente, en Prolog se hace uso de una estrategia derefinamiento de dicho principio, denominada Resolución-SLD, la cual se aplica acláusulas definidas.

I.3. Algoritmos.

Cuando una tarea se realiza por medio de un algoritmoperfectamente definido de almacenamiento, clasificación o cálculo, lo puedehacer un computador. Este concepto de algoritmo, secuencial, fijo y dedeterminadas operaciones, es incapaz de manejar problemas donde el camino delrazonamiento es variable y donde deben afrontarse situaciones diversas sin habersido especificadas.

La Inteligencia Artificial hace uso de un tipo de lenguajediferente como es el caso de LISP y PROLOG.

En 1932, Cannon visualizó la evolución natural como unproceso de aprendizaje. Alan Turing reconoció, en 1950, que debe haber unaconexión obvia entre el aprendizaje de máquina y la evolución, y señaló quese podrían desarrollar programas para jugar ajedrez usando esta técnica.Campbell conjeturó en 1960 que en todos los procesos que llevan a la expansióndel conocimiento, se involucra un proceso ciego de variación y supervivenciaselectiva.

Los primeros intentos de aplicar de manera formal la teoríade la evolución, a problemas prácticos de ingeniería, apareció en las áreasde control de procesos estadísticos, aprendizaje de máquina y optimización defunciones. Tal vez el primer intento serio de este tipo se dio en el trabajo querealizaron Box y sus colegas en 1957, en el desarrollo de una técnica quedenominaron operación evolutiva, la cual se aplicó a una planta demanufactura, y que se implanto sobre la base de los votos de un comité de jefestécnicos. Bajo este esquema, la calidad del producto avanzaba a través demutaciones aleatorias y la selección era determinada por el comité.

Por su parte, Friedberg intentó, en 1958, hacer que unprograma en lenguaje máquina se mejorara a sí mismo, seleccionandoinstrucciones que se asociaran más frecuentemente con un resultado exitoso.Aunque Friedberg nunca mencionó explícitamente estar simulando la evoluciónnatural, esa es la interpretación más comúnmente aceptada de su trabajo, y apesar de que tuvo cierto éxito evolucionando manipuladores de bits ydeterminando las interconexiones de una caja negra de 1400 terminales, lacomunidad de Inteligencia Artificial de la época prestó poca atención a sutrabajo. Por ejemplo, Minsky lo criticó duramente, argumentando que una búsquedapuramente aleatoria era mucho mejor que el algoritmo de Friedberg.

El trabajo de Bremermann, en 1958, se enfocó más a laoptimización, introduciendo el importante manejo de un valor de aptitud, ydefiniendo a un individuo como una cadena de símbolos binarios (unos y ceros).Bremermann advirtió, acertadamente, que la mutación jugaba un papel importanteen la evolución, pues impedía el estancamiento en mínimos locales. Aunquemuchas de sus ideas se usan hoy en día, Bremermann cometió el error de tratarde optimizar funciones lineales y convexas, obteniendo resultadosdecepcionantes, pues sus algoritmos evolutivos tenían que ser complementadoscon otras heurísticas para converger en una solución. Hoy sabemos que losalgoritmos evolutivos difícilmente pueden competir con las técnicastradicionales de optimización en esos dominios.

Barricelli ofreció, en 1954, una de las primerassimulaciones que usaba principios evolutivos, utilizando los mismosprocedimientos generales que se usan hoy en día en la disciplina conocida comovida artificial. Sin embargo, en este trabajo, así como el que Reed realizóposteriormente en 1967, se concluyó que la cruza no parecía mejorar lavelocidad de la adaptación selectiva, y el operador primordial era la mutación.

Fue Fogel el que introdujo la primera técnica evolutiva querealmente funcionó más o menos dentro de los lineamientos actuales de lacomputación evolutiva. Su programación evolutiva consistía en hacerevolucionar autómatas de estados finitos por medio de mutaciones. Fogelintrodujo los importantes conceptos de población y selección, y aunque lasrevisiones iniciales de su trabajo fueron favorables, algunos investigadores,como Solomonoff, enfatizaron que el método de Fogel no debía verse en suestado actual (en 1966) como algo particularmente útil para resolver problemas,a excepción de los más simples posibles. Solomonoff vio a la programaciónevolutiva como una especie de búsqueda escalando la colina modelada medianteautómatas, y otros investigadores como Holland, Kieras, Rada y Lenatcompartieron esa opinión.

Otra técnica evolutiva dirigida particularmente a laoptimización de funciones continuas de alta complejidad se desarrolló enAlemania, en 1965, por Rechenberg y Schwefel. Esta técnica, llamada estrategiaevolutiva, se utilizó inicialmente para resolver problemas de ingeniería quedesafiaban a los métodos de optimización tradicionales, como el gradienteconjugado, y se basa en la modificación sistemática de un vector de númerosreales (representando las variables de decisión del problema) medianteoperadores probabilísticos, usando ciertos criterios para decidir en quédirección dirigir la búsqueda. La estrategia evolutiva utiliza como operadorprincipal a la mutación, y en su versión más reciente usa la cruza comooperador secundario.

Aunque el australiano Fraser propuso, desde fines de los 50,un procedimiento muy similar al que John Holland llamó planes evolutivos afines de los 60, es al segundo al que se le suele atribuir la creación de la técnicaque se conoce como algoritmo genético, a raíz de que Holland publicara ellibro "Adaptation in Natural and Artificial Systems" en 1975.

La principal diferencia del algoritmo genético con las técnicasantes mencionadas, es que utiliza la cruza como operador principal y a la mutacióncomo operador secundario (e incluso opcional). El algoritmo genético, al igualque las redes neuronales, funciona como una caja negra que recibe ciertasentradas y produce (tras una cantidad de tiempo indeterminada) las salidasdeseadas. Sin embargo, a diferencia de éstas, los algoritmos genéticos nonecesitan entrenarse con ejemplos de ningún tipo, sino que son capaces degenerar sus propios ejemplos y contraejemplos que guíen la evolución a partirde poblaciones iniciales totalmente aleatorias.

Los mecanismos de selección del más apto y de reproducciónsexual del algoritmo genético, son los encargados de preservar las característicasmás adecuadas de cada individuo a fin de hacer converger a la población ensoluciones óptimas.

Los algoritmos genéticos se distinguen también por noquedar atrapados fácilmente en mínimos locales, como la mayor parte de las técnicasde búsqueda clásicas, además de usar operadores probabilísticos másrobustos que los operadores determinísticos, que las otras técnicas suelenusar.

No obstante, siendo una heurística, tampoco puedengarantizar encontrar siempre la solución óptima, si bien la experienciaacumulada hasta la fecha parece demostrar que, cuando se utilizanapropiadamente, pueden proporcionar soluciones muy aceptables y, en la mayoríade los casos, superiores a las encontradas con otras técnicas de búsqueda yoptimización.

Aunque aún atacados por algunos sectores de la comunidad deInteligencia Artificial, los algoritmos genéticos, al igual que las redesneuronales, se han ido ganando poco a poco, y sobre la base de la efectividad desus resultados en aplicaciones prácticas, el reconocimiento de losinvestigadores como una técnica efectiva en problemas de gran complejidad, comolo demuestra un número creciente de conferencias y publicaciones especializadasalrededor del mundo, en los últimos años.

I.4. Base de Conocimiento. Sistemas Basados enConocimiento.

Los métodos generales desarrollados para la resolución deproblemas y técnicas de búsqueda al inicio de la era de la InteligenciaArtificial demostraron no ser suficientes para resolver los problemas orientadosa las aplicaciones, ni fueron capaces de satisfacer los difícilesrequerimientos de la investigación.

A este conjunto de métodos, procedimientos y técnicas, selo conoce como Inteligencia Artificial Débil. La principalconclusión que se derivó de este trabajo inicial fue que los problemas difícilessólo podrían ser resueltos con la ayuda del conocimiento específico acercadel dominio del problema.

La aplicación de estas ideas dio lugar al desarrollo de losdenominados Sistemas Basados en Conocimiento (Knowledge Based Systems) yal aparecimiento de la Ingeniería Cognoscitiva, como una rama de laInteligencia Artificial, que estudia los sistemas basados en el conocimiento. Ladefinición de un sistema basado en conocimiento puede ser la siguiente:

Es un sistema computarizado capaz de resolver problemas en el dominio en elcual posee conocimiento específico.

La solución es esencialmente la misma que hubiera dado unser humano confrontado con idéntico problema, aunque no necesariamente elproceso seguido por ambos puede ser igual.

El simple concepto dado, puede causar confusión ya quemuchos sistemas basados en programas convencionales podrían ser incorrectamentecategorizados como sistemas basados en conocimiento. Esta inconsistencia puedeser aclarada, sobre la base de tres conceptos fundamentales que distinguen a lossistemas basados en conocimiento de los programas algorítmicos convencionales yde los programas generales basados en búsqueda:

Inteligencia Artificial débil.

 

  • Primero, la separación del conocimiento y el modo en que es usado.

 

 

  • Segundo, la naturaleza del conocimiento empleado (heurística antes que algorítmica).

 

 

  • Tercero, El uso de conocimiento específico de un determinado dominio.

 

Las características principales son:

 

  • amplia difusión del conocimiento

 

 

  • fácil modificación

 

 

  • respuestas coherentes

 

 

  • disponibilidad casi completa

 

 

  • conservación del conocimiento

 

 

  • capacidad de resolver problemas disponiendo de información incompleta

 

 

  • capacidad de explicar los resultados y la forma de obtenerlos

 

Los principales problemas asociados a este método son:

 

  • las soluciones no siempre son las mejores o correctas

 

 

  • conocimiento limitado frente al dominio de un experto

 

 

  • carecen del sentido común o criterio que puede tener un experto

 

 

  • es difícil extraer todo el conocimiento que maneja un experto.

 

I.4.1 Experiencia, Habilidades y Conocimiento.

Los tipos de experiencia que son de interés en los sistemas basados enconocimiento, pueden ser clasificados en tres categorías: asociativa, motora yteórica.

Los sistemas basados en conocimiento son excelentes para representar conocimientoasociativo. Este tipo de experiencia refleja la habilidad heurística o elconocimiento que es adquirido mayoritariamente, a través de la observación.

Puede ser que no se comprenda exactamente lo que ocurre al interior de unsistema (caja negra), pero se pueden asociar entradas o estímulos con salidas orespuestas, para resolver problemas que han sido previamente conocidos.

La experiencia motora es más física que cognitiva. La habilidad seadquiere fundamentalmente a través del ejercicio y la práctica físicaconstante. Los sistemas basados en conocimiento no pueden emular fácilmenteeste tipo de experiencia, principalmente por la limitada capacidad de latecnología robótica.

La experiencia teórica y el conocimiento profundo permite que loshumanos puedan resolver problemas que no se han visto antes, es decir, no existeuna posibilidad asociativa. El conocimiento teórico y profundo se adquiere através de estudio y entrenamiento formal, así como por medio de la resolucióndirecta de problemas.

Debido a su naturaleza teórica, este conocimiento se puede olvidar fácilmente,a no ser que se use en forma continua. Al momento, los sistemas convencionalesbasados en conocimiento tienen muchas dificultades para duplicar este tipo deexperiencia. Sin embargo, los Sistemas de Razonamiento Basado en Modelosrepresentan un notable intento de encapsular este conocimiento profundo yrazonar con él.

Estructura de los Sistemas Basados en Conocimiento.

La arquitectura de un sistema basado en conocimiento de alguna manera reflejala estructura cognitiva y los procesos humanos. La primera parte es la memoriade largo plazo, en la que guarda los hechos (Base de Hechos) y los conocimientos(Base de Conocimientos) acerca del dominio en el que tiene experiencia.

Estructura de un sistema basado en conocimiento

 La segunda parte es el sistema que realiza la funciónde razonamiento para resolver problemas (Motor de Inferencia).Finalmente, la tercera parte la conforman las unidades de entrada y salida quepermiten la comunicación entre el sistema y su entorno.

La representación del conocimiento determina el desarrollode un sistema experto e influye en las estrategias de control. Es muy versátil,hay muchas formas de hacerlo y es complicada la elección. Generalmente laelección está basada en la intuición o en las especiales circunstancias delproblema.

La primera fase es la adquisición del conocimiento desde unexperto y depende de la cantidad y de su adecuada representación. Se debenconocer los límites, pues sólo llegan hasta donde son capaces de resolver unproblema. Esto implica, que tiene que circunscribirse a un dominio homogéneo.

El lenguaje de programación debe ser adecuado, se usanprincipalmente el LISP y PROLOG, que difieren de los lenguajes clásicos en quesus reglas (que también contienen hechos) entran masivamente, y que elprograma, es decir, el motor de inferencia, encontrará el camino a través dereglas.

Por otra parte, la programación procedural consiste en unacuidadosa descripción de los algoritmos que marcan el camino de los diferentesprocedimientos y funciones en los programas.

Estos dos modos de programación son teóricamente iguales,pero en la práctica difieren.

La programación declarativa es un tipo de programaciónimplantada en los sistemas expertos y por ciertos lenguajes. La principaldiferencia es que en la declarativa las reglas se formulan independientemente desu secuencia de aplicación. El modo en que se ejecutan las reglas correspondeal motor de inferencia y es independiente de las reglas en sí mismas. En laprogramación procedural, las reglas se implantan y ejecutan en un ordenestablecido.

Las ventajas en los sistemas expertos es la modularidad, nohay un solo camino para responder a un problema y son fáciles de leer, lo quesimplifica comprobar su consistencia.

La representación del conocimiento es esencial eninteligencia artificial y es la base de la construcción de un sistema experto.

Fases en la adquisición del conocimiento:

 

  • identificación del problema.

 

 

  • Estructuración del conocimiento.

 

 

  • La arquitectura del sistema y la maqueta.

 

 

  • El prototipo y terminación del sistema.

 

Tecnología de los Sistemas Basados en Conocimiento.

Desde el punto de vista tecnológico, los Sistemas Basados enConocimiento pueden presentar varias formas de aplicación:

·         Aislada: un Sistema Basado en Conocimiento único se relaciona con el entorno.

 

  • Integrada: varios Sistemas Basados en Conocimiento conectados a bases de conocimiento comunes. Tipo Front-End cuando todos los hechos y datos están físicamente en la base común. Tipo Back-End cuando los hechos y datos necesarios que no estén en las bases comunes, pueden obtenerse de otros SBC.

 

  • Embebida: un Sistema Basado en Conocimiento está integrado con otros sistemas y no se lo distingue.

 

I.5. Motor de Inferencia.

Un motor de inferencia interpreta y evalúa los hechos en labase de conocimientos para proveer una respuesta. Este debe ser independientedel conocimiento y de los hechos. Se puede caracterizar por:

El lenguaje en que ha sido escrito.

 

  • La velocidad de trabajo: Inferencias / segundo.

 

 

  • Las estrategias de búsqueda de soluciones:

 

No Ordenada: aleatoria, heurística.

Ordenada: Encadenamiento hacia adelante (guiado por los datos, deductivo), encadenamiento hacia atrás (guiado por los objetivos, inductivo).

 

  • La forma en que elige el conocimiento.

 

 

  • La posibilidad de incorporar metaconocimiento.

 

 

  • El tipo de lógica que emplea en el razonamiento:

 

Booleana, trivalente, multivalente, difusa.

Monotónica o no monotónica.

Atemporal o temporal.

Lógica de orden 0, orden 0 , orden 1.

 

  • El método que utiliza para la evaluación del conocimiento incompleto o incierto:

 

Determinístico.

Probabilístico.

Aproximado.

Difuso.

En un sistema experto, dado un estado particular de la basede datos, se deben reconocer las reglas aplicables y esto se llama filtrado oidentificación de patrones, operación especialmente larga, ya que muchossistemas realizan una preselección de las reglas antes de que comience laidentificación propiamente tal. Es decir, se considera un subconjunto de reglasy entre éstas, las aplicables. Esto, es lo que se llama restricción.

Adicionalmente puede existir una Base de Datos con informaciónpuntual sobre problemas específicos anteriormente resueltos por el sistema, yque se usa como información adicional en el proceso de inferencia.

Una vez que las reglas han sido reconocidas deben serelegidas, dependiendo de la estrategia de control, que es la selección.

Una vez que las regla han sido elegida ha de ejecutarse.

Al módulo central del sistema experto que maneja estas tresoperaciones se le denomina motor de inferencia o intérprete de reglas. Haydiversos tipos de motores de inferencia según los métodos con que se manejanlas tres operaciones precedentes.

Identificación de patrones.

Esta operación determina cuáles son las reglaspotencialmente aplicables en un estado dado de la base de datos.

Hay ciertos métodos típicos para resolver problemasmediante Inteligencia Artificial como: descomposición de problemas, inferenciadeductiva, deducción lógica, etc.

No es necesario que la búsqueda se aplique a todas lasreglas, el sistema de control puede decidir cuáles no son necesarias a esenivel.

El filtrado significa tener el conocimiento para encontrarlas reglas cuya precondición se satisfaga. Se debe comparar por tanto laprecondición con la base de datos. Si es una regla deductiva "si premisaentonces conclusión", la parte a ser probada de la regla, se llamadisparador o activador (tigger) es siempre una fórmula bien formada ya sea de lógicaproposicional o de lógica de primer orden. Puede aplicarse a cualquier hecho.

El único lenguaje que está totalmente basado en el cálculode predicados es el PROLOG.

Los procesos de identificación de patrones pueden mejorarseexaminando, dentro del activador de cada regla, primero los predicados con másrestricciones, es decir, los que tienen el menor número de variables libres.Otra forma de proceder es que, para cada regla o parte de su activador, seguarda en la memoria el resultado de las posibles unificaciones para cada partedel activador. Después de cada ciclo del motor de inferencia, esta memoria seactualiza y se denomina filtrado por propagación.

Ejecución de las reglas.

Después de la fase de filtrado, cuando una regla estáreconocida como aplicable, teniendo en cuenta la base de datos existente, soloresta ejecutarla. Si hay varias posibles reglas, la elección la realiza laestrategia de control.

La conclusión de la regla tiene por objeto modificar la basede conocimiento, creando, modificando o suprimiendo un hecho.

La fase de restricción.

En un sistema dirigido por los datos, el filtrado consiste enretener todas las reglas cuyas premisas son verdaderas teniendo en cuenta loshechos (verdaderos) presentes en la base de datos. Este sistema funciona enencadenamiento hacia delante.

Si el sistema es a la vez dirigido por los datos y por losobjetivos, se denomina mixto.

La restricción también puede estar especificado explícitamentepor el experto para utilizar reglas dentro de las reglas, es decir, meta reglas.Indica qué grupo de reglas debe ser retenido, por prioridad, o definir un ordenen los subconjuntos de las reglas.

El conocimiento puede organizarse en forma de red como en lasredes semánticas utilizadas en el análisis sintáctico del lenguaje. Su posicióndentro de la red dirige las restricciones utilizando heurísticas. Estaformulación es particularmente eficiente si se establece válidamente unaorganización jerárquica del conocimiento, en este caso existiría una taxonomíade los hechos.

Otro modo de gobernar las restricciones es organizar lasreglas en paquetes o esquemas, lo que genera una estructura de árbol en reglas,lo que es una ventaja.

Todos estos modos dependen de la forma en que estárepresentado el conocimiento.

La fase de selección.

Como después de las fases anteriores quedan varias reglas sedebe seleccionar una y luego de procesada el programa debe saber dónde volver.

Cuando hay una o más reglas, se usan dos estrategias:

- La búsqueda en anchura, que elige una, generalmente laprimera y se van ejecutando por turno antes de comprobar que se ha alcanzado lacondición final. Si no es así se inicia otro ciclo del motor de inferencia.Este tipo de búsqueda es exhaustiva y la usa el sistema experto MYCIN.

 

  • Otra estrategia es la de elegir una regla entre las aplicables por medio de una heurística, procesarla y modificar la base de datos. Si no se alcanza la condición final, comienza otro ciclo del motor de inferencia. Es por lo tanto, una estrategia en profundidad.

 

Cada una de las estrategias pueden ser irrevocables o avanzarpor prueba y error.

Muchos sistemas efectúan marcha atrás, si no hay reglaaplicable, pero si el sistema está bajo un control irrevocable se detendrá.

Visto en la práctica, las reglas poseen la siguienteestructura:

SI (CONJUNTO_DE_PREMISAS) ENTONCES CONSECUENCIA

o bien:

(CONJUNTO_DE_PREMISAS) CONSECUENCIA

El CONJUNTO_DE_PREMISAS contiene las cláusulas, osimplemente condiciones, que deben cumplirse para que la regla pueda ejecutarse,y la CONSECUENCIA representa el resultado de la ejecución de dicharegla.

Un ejemplo sencillo que ilustra cómo representarconocimiento a través de reglas:

Afirmación:

Todos los catedráticos son doctores.

Representación Lógica - Matemática:

En esta representación la variable x constituye el conjuntode todas las personas posibles, CATEDRÁTICO representa la relación "SERCATEDRÁTICO" y DOCTOR la de "SER DOCTOR". De esta manera laregla anterior representa el hecho: Para toda persona x, Si x es catedráticoentonces x es doctor.

Representación en SE:

o bien:

SI (x ES CATEDRÁTICO) ENTONCES (x ES DOCTOR)

En este caso CATEDRÁTICO y DOCTOR representan de nuevorelaciones que deben estar representadas sobre el sistema.

¿Cómo representar estas nuevas relaciones?:

Como todo sistema informático los SE pueden operar sobre unconjunto finito de elementos, para esto es necesario definir el universo detrabajo dentro del cual probaremos nuestras reglas. Sobre esta base la definiciónde la relación SER CATEDRÁTICO o CATEDRÁTICO, según sea la representaciónusada, debe hacerse puntualmente para cada individuo del universo, por ejemplo:

CATEDRÁTICO("Mario Pérez")

CATEDRÁTICO("Manuel Fernández")

CATEDRÁTICO("Maria González")

Los componentes de la relación SER DOCTOR se deducen apartir de la relación SER CATEDRÄTICO y la regla anterior, por lo que no esnecesario una representación o definición explícita.

La inferencia o extracción de conclusiones:

Para extraer una conclusión, o inferencia, se hacenecesario, antes que nada, saber el objetivo a satisfacer, o problema aresolver. Este problema se plantea en forma de objetivo que se toma por el Motorde Inferencia el cual a través de la activación y encadenamiento de reglastrata de llegar a una solución. Al seguir con el ejemplo:

Objetivo:

"Es Mario Pérez Doctor"?

Solución:

Al aplicar la regla: SI (x ES CATEDRÁTICO) ENTONCES (x ESDOCTOR)

Se debe chequear, como precondición de activación, elcumplimiento de la relación:

CATEDRÁTICO("Mario Pérez")

Se debe chequear la base de Axiomas o Afirmaciones:

CATEDRÁTICO("Mario Pérez") existe en la base deaxiomas, por lo que la precondición es verdadera.

Se dispara la consecuencia y se llega a la conclusión queMario Pérez es doctor.

Encadenamientos de reglas:

Existen dos mecanismos fundamentales de encadenamiento dereglas:

1. Encadenamiento hacia delante:

Se produce cuando el objetivo propuesto al sistema hace quese ejecute una regla, y la conclusión obtenida permite que se ejecute otra, yasí sucesivamente hasta llegar a una respuesta, positiva o negativa. El puntofinal se detecta cuando no se pueden producir más encadenamientos, por ejemplocuando se llega a un axioma.

Por ejemplo:

(1). SI (x ES JEFE_DPTO) ENTONCES (x ES CATEDRÁTICO)

(2). CATEDRÁTICO("Mario Pérez")

(3). CATEDRÁTICO("Manuel Fernandez")

(4). CATEDRÁTICO("Maria Gonzalez")

Al evaluar el objetivo: "Mario Pérez esJefe_Dpto"?, se dispara la regla (1), la cual a su vez se encadena con la(2), en este momento no se pueden producir más encadenamientos pues la regla(2) es un axioma. Llegado a este punto el Motor de Inferencia retrocede y da unarespuesta positiva a la pregunta.

 

  1. Encadenamiento hacia atrás:

 

Consiste en, dado un objetivo, buscar una regla que permitaestablecer dicha conclusión, el proceso se repite hasta encadenar con la reglacuya conclusión satisfaga el objetivo propuesto, o se detecte que dichoproblema no se puede resolver positivamente. Por ejemplo para averiguar si"Mario Pérez es doctor" se busca un regla que tenga esta afirmaciónen sus consecuencias. Analizando las reglas anteriores vemos que la regla:

(5). SI (x ES CATEDRÁTICO) ENTONCES (x ES DOCTOR)

Satisface estas condiciones; siguiendo esta regla hacia atrástenemos que buscar una nueva que permita validar si "Mario Pérez" escatedrático, lo cual se hace con el axioma (2).

Los encadenamientos constituyen, de esta manera, una de lasherramientas fundamentales del Motor de Inferencia; el Lenguaje PROLOG solamentesoporta el encadenamiento hacia atrás, el cual constituye el másfrecuentemente implementado.