Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Sistema Experto PROLOG



  1. Introducción
  2. Sistemas expertos
  3. Consulta
  4. Representación de
    Conocimientos
  5. Lenguajes y Sistemas de
    Programación

Introducción

Los sistemas expertos pueden almacenar el
conocimiento de expertos para un campo de especialidad
determinada – solucionar un problema mediante la deducción
lógica.

Representan la transición del
procesamiento de datos al procesamiento de conocimientos y
sustituye al mismo tiempo los algoritmos por mecanismo de
inferencia.

Los sistemas expertos encuentran
aplicaciones allí donde haya conocimientos especializados
y experiencia.

Sistemas
expertos

En este capítulo se presenta los
sistemas expertos desde el punto de vista de su aplicacion en el
ámbito industrial. Se han excluido aquí las
cuestiones referentes a la investigacion de base.

Las preguntas típicas que se
plantean son las siguientes

¿Cuándo es apropiado
incorporar sistemas expertos?

¿Cuáles son los distintos
componentes de un sistema experto?

¿Cómo se crean los sistemas
expertos?

2.1 Campos de
aplicación

La aplicación de sistemas expertos
será adecuada allí donde los expertos dispongan de
conocimientos complejos en un área estrechamente
delimitada, donde no existan algoritmos elaborados(o donde los
existentes no puedan solucionar algunos problemas y no existan
teorias completas.

Otro campo de aplicación es
allí donde hay teorías, pero resulta
prácticamente imposible analizar todos los casos
teóricamente imaginables mediante algoritmos y en un
espacio de tiempo razonable.

2.2 Componentes

Una característica decisiva de los
sistemas expertos es la separación entre conocimientos
(reglas, hechos) por un lado y su procedimiento por el
otro.

Componentes de un sistema
experto

  • La base del conocimiento : De un
    sistema experto contiene el conocimiento de los hechos y de
    las experiencias de los expertos en un dominio
    determinado

  • El mecanismo de Inferencia de un
    sistema experto puede simular la estrategia de
    solución de un experto

  • El componente Explicativo : Explica al
    usuario la estrategia de solución encontrada y el
    porqué de las decisiones tomadas

  • El interface de usuario: sirve para que
    este pueda realiza una consulta de un lenguaje lo más
    natural posible

  • El componente de adquisición :
    Ofrece ayuda a la estructuración e
    implementación del conocimiento en la base de
    conocimientos

2.2.1 Base de
conocimientos:

La base de conocimientos contiene todos los
hechos, las reglas y los procedimientos del dominio de
aplicación que son importantes para la solución del
problema.

Los hechos son del tipo: El velero "Mary"
tiene una longitud de 6 m. La representación de este
conocimiento puede realizarse orientándola, por ejemplo
según objetos. Los objetos de una base de conocimientos
pueden ser entonces: barco, barco a motor, barco a vela tiene
todas las cualidades de un barco y ademas todas las cualidades
especificas de un barco a vela.

Todas las cualidades de un barco por
ejemplo: Desplazamiento sobre el agua , vienen descrias con el
objeto "barco" A traves de la relacion formulada, el barco a vela
"Hereda" estas cualidades, de forma que solo hara falta describir
sus cualidades particulares.(POO)

En la creacion de la base de conocimientos
se planten las siguientes preguntas.

  • ¿Qué objetos seran
    definidos?

  • ¿Cómo son las relaciones
    entre los objetos?

  • ¿La base de conocimientos hace
    totalmente referencia a la solucion del problema?

  • ¿La base de conocimientos
    consistencia?

Estas son cuestiones que el ingeniero de
conocimientos debe solucionar, en parte colaborando con los
expertos.

2.2.2 Mecanismo de
Inferencia

El mecanismo de inferencia es la unidad
lógica con la que se extraen conclusiones de la base de
conocimientos, según un método fijo de
solución de problemas que está configurado imitando
el procedimiento humano de los expertos para solucionar
problemas.

Una conclusión se produce mediante
aplicación de las reglas sobre los hechos
presentes

Las Funciones del mecanismo de inferencia
son:

  • Determinación de las acciones
    que tendrán lugar, el orden en que lo harán y
    como lo harán entre las diferentes partes del sistema
    experto

  • Determinar cómo y cuando se
    procesaran las reglas, y dado el caso también la
    eleccion de que reglas deberán procesarse

  • Control del dialogo con el
    usuario.

2.2.3 Componentes
Explicativo

Las soluciones descubiertas por los
expertos deben poder ser repetibles tanto por el ingeniero del
conocimiento en la fase de comprobación así como
por el usuario. La exactitud de los resultados solo podrá
ser controlada naturalmente por los expertos.

Es deseable que durante el trabajo del
sistema se conozca siempre el grado de progreso en el
procesamiento del problema.

A pesar de insistir sobre la importancia
del componente explicativo es muy dificil y hasta ahora no se han
conseguido cumplir todos los requisitos de un buen componente
explicativo.

Los componentes explicativos existentes
pueden ser suficientes para el ingeniero de conocimiento, ya que
está muy familiarizado con el entorno del procesamiento de
datos, y a veces hasta también para el experto; pero para
el usuario, que a menudo desconoce las sutilezas del
procesamiento de datos, los componentes explicativos existentes
son todavia demasiado insatisfactorios

2.2.4 Interfase de
usuario

En este componente se establece la forma en
que el sistema experto se presentara ante el usuario

  • Como debe responder el usuario a las
    preguntas planteadas¿¿

  • Como saldrán las respuestas del
    sistema a las preguntas que se le planteen?

LA INTERFASE DE USUARIO DEBE CUMPLIR LOS
REQUISITOS SIGUIENTES:

  • El aprendizaje del manejo debe ser
    rápido.

  • Debe evitarse en lo posible la entrada
    de datos errónea.

  • Los resultados deben presentarse en una
    forma clara para el usuario.

  • Las preguntas y explicaciones deben ser
    comprensibles.

2.2.5 Componentes
adquisición

Un buen componente de adquisición
ayudará considerablemente la labor del ingeniero del
conocimiento. Este puede concentrarse principalmente en la
estructuración del conocimiento sin tener que dedicar
tanto tiempo a la actividad de la programación.

A ser posible, el componente que
adquisición debe poseer las cualidades
siguientes:

  • El conocimiento, es decir las reglas,
    los hechos, las relaciones entre los hechos, etc.

  • Posibilidades de representación
    clara de todas las informaciones contenidas en una base de
    conocimientos,

  • Comprobación automática
    de la sintaxis

  • Posibilidades constante de acceso al
    lenguaje de programación subordinada

2.3 Desarrollo de un sistema
experto

2.3.1 El equipo de
desarrollo

Las personas que participan en el
desarrollo de un sistema experto desempeñan tres papeles
distintos:

  • El experto:

Que pone sus conocimientos especializados a
disposición del sistema experto

  • El ingeniero del
    conocimiento

Que plantea las preguntas al experto,
estructura sus conocimientos y los implementa en la base de
conocimientos.

  • El usuario

Que aporta sus deseos y sus ideas,
determinando especialmente el escenario en el que debe aplicarse
el sistema experto.

En la fase de desarrollo, el peso principal
del trabajo recae en el ingeniero del conocimiento y en el
experto

En el desarrollo del sistema experto, el
ingeniero del conocimiento y el experto trabajan muy unidos. El
primer paso consiste en elaborar los problemas que deben ser
resueltos por el sistema.

Una vez delimitada el dominio, hay que
"cebar" el sistema experto poco a poco con los conocimientos del
experto. El experto debe comprobar constantemente si su
conocimiento ha sido transmitido de la forma más
conveniente

A ser posible, el experto deberá
tener comprensión para los problemas que depara el
procesamiento de datos. Ellos facilitaran mucho el trabajo.
Además, no debe ignorarse nunca al usuario durante el
desarrollo, para que al final se disponga de u sistema que le sea
de máxima utilidad.

La estricta separación entre
usuario, experto e ingeniero del conocimiento no deberá
estar siempre presente. Pueden surgir situaciones en las que el
experto es también el usuario. Este es el caso cuando
existe un tema muy complejo cuyas relaciones e interacciones
deben ser determinadas una y otra vez con un gran consumo de
tiempo. De esta forma el experto puede ahorrarse trabajos
repetitivos.

La separación entre experto e
ingeniero del conocimiento permanece, por regla general,
inalterada.

2.3.2 Métodos auxiliares en el
desarrollo

La eficiencia en la creación de
sistemas expertos puede aumentarse en gran medida con la
aplicación de shells.

Un Shell – expresado de forma
sencilla – es un sitema experto que contiene una base de
conocimientos vacía.

Existen mecanismos de inferencia, el
componente explicativo y a veces también la interfase de
usuario.

También es posible que haya que
desarrollar adicionalmente partes del mecanismo de interferencia.
Según el tamaño de esta parte tendrá que
pensar si la aplicación de un Shell determinado sigue
siendo apropiada.

Si el ingeniero del conocimiento conoce
bien este Shell, es decir si, por ejemplo, conoce exactamente
como son procesadas las reglas, entonces solo tendrá que
concentrarse en la creación de la base de
conocimientos.

2.3.3 "Rapid Prototyping"
construcción rápida de prototipos

El desarrollo de sistemas expertos comporta
los siguientes riesgos.

  • No existen implementaciones similares
    que puedan servir de orientación al encargado del
    desarrollo y en muchos puntos los requisitos necesarios
    están esbozados con muy poca
    precisión

El diseño y la especificación
requieren una temprana determinación las interfaces de
software y de la funcionalidad de los componentes. En el
desarrollo de sistemas expertos deben alterarse a menudo durante
y también después de la implementación, ya
que los requisitos se han ido configurando y han obtenido mayor
precisión, o porque se ha descubierto que deben iniciarse
otras vías de solución. Durante el desarrollo,
resulta más apropiado empezar con implementación
tipo test para encontrar el camino hacia una solución
definitiva y para hacerlas coincidir con las necesidades del
usuario.

Un método efectivo es la
implementación de un prototipo de sistemas expertos que
permita llevar a cabo las funciones más importantes de
este, aunque con un esfuerzo de desarrollo considerablemente
inferior al de una implementación convencional. Este
proceso se define con el nombre de "Rapid Prototyping"

Para sistemas expertos, el "rapid
prototyping" es el procesamiento adecuado, pues posibilita una
rápida reacción a los deseos en constante cambio
tanto por parte de los expertos como por partes del
usuario.

Consulta

3.1 Usuarios de un Sistema
Experto

Los sistemas expertos desempeñan el
papel de asistentes inteligentes y competentes del
experto.

El conocimiento de los expertos es
necesario para muchas personas que por regla general, no poseen
una formación especializada en dominios muy
concretos.

Si en un sector determinado hay pocos
expertos, un Sistema Experto puede entonces poner a
disposición, de forma constante, los conocimientos de
dichos expertos. Pero no trata de sustituir al experto o de
mantener usuarios y expertos alejados entre si, sino mas bien se
trata de poner en las manos de los usuarios una herramienta
efectiva que libere a los expertos de trabajos
rutinarios.

El usuario, no obstante, debe disponer de
un conocimiento especializado lo suficientemente amplio sobre el
entorno en el cual trabaja para poder manejar el sistema
experto.

Esta situación se agudiza aun mas
ante el hecho de que no está básicamente asegurado
que el sistema experto puede ofrecer una respuesta utilizable. No
en todos los casos puede captarse o preverse del todo las
condiciones marginales bajo las cuales se emite la respuesta del
sistema experto. El usuario estará aquí obligado a
realizar una mínima valoración de la relevancia que
tiene la respuesta ofrecida por el sistema.

3.2 Tipo de Consulta

En la Interfase de usuario de un sistema
experto se pone a disposición del usuario dos
componentes

  • Una componente activo que determina el
    resultado en la interacción con el usuario
    y

  • Un componente pasivo que justifica el
    resultado (componente explicativo).

No es suficiente conformarse con ver el
componente activo. Si el usuario no obtuviese la ayuda del
componente explicativo, que le permitiera reproducir la
vía de solución tomada, sería muy
difícil conseguir la aceptación de la respuesta
ofrecida por el sistema (Caja Negra).

La consulta misma transcurre en general
según el esquema siguiente:

Primero se plantean al usuario algunas
preguntas generales para alcanzar una determinación
aproximada del contexto. Una primera valoración, que se
produce dependiendo del método prefijado de procesamiento
de los conocimientos del sistema experto en uso, desemboca
entonces en el verdadero dialogo con el usuario, orientando al
objetivo. El dialogo, por parte del sistema, esta a menudo
dimensionado para ir confirmando o rechazando hipótesis
(por ejemplo, una configuración perfecta de una red de
ordenadores).

El sistema se comporta como un experto
y

  • Plantea preguntas precisas.

  • Informa (según el caso solo a
    petición del usuario) sobre los resultados intermedios
    y las hipótesis modificadas.

  • Determina el resultado, por ejemplo, un
    diagnostico,

  • Justifica el resultado y

  • Explica (según el caso solo a
    peticion) tambien el rechazo de las hipotesis.

Una vez finalizado el dialogo, el
componente explicativo suministra, si es necesariom el historial
completo de la consulta.

Es posible,

  • Visualizar todas las entradas del
    usuario.

  • Confrontar el resultado obtenido con
    todos los demas resultados posibles.

  • Visualizar las reglas activas y no
    utilizadas; incluso las reglas activadas, que sin embargo
    fueron rechazadas en una misma hipotesis, pueden elegirse y
    visualizarse.

El resultado alcanzado por el sistema
experto dependera de la calidad de las respuestas del
usuario.

3.3 Motivos de una
consulta

Los motivos por los que se consulta
Sistemas Expertos pueden ser muy variados. Dependerán
también del objetivo con el que se ha desarrollado el
sistema.

Ejemplos:

  • Tareas dificultosas o tediosas de los
    expertos.

  • Diccionario dinámico

  • Consistencia del servicio de
    asesoría

  • Confirmación de decisiones
    tomadas.

  • Aprendizaje,
    formación.

  • Asesoramiento del usuario.

  • Control del propio
    conocimiento

Pero un Sistema Experto se consultara ante
todo cuando exista un problema que no requiera solución
inmediata y no se pueda o quiera recurrir primero al experto. Los
Sistemas expertos sirven también al mismo experto que lo
alimenta como diccionario dinámico, que mantiene
el conocimiento de reglas antiguas, mientras se concentran en los
nuevos desarrollos.

3.4 Ejemplos de una
consulta

En el siguiente ejemplo se ha consultado el
Sistema Experto SIUX, que analiza el comportamiento del
transcurso de aplicaciones de base de datos. Al principio se
plantearon al usuario algunas preguntas generales sobre la
instalación informática. Seguidamente el sistema
plantea preguntas precisas, dependientes de las respuestas dadas
por el usuario, orientadas a la obtención de la
solución.

No se procesa, por lo tanto, un
cuestionario previamente introducido, sino que las preguntas
están condicionadas por la situación.

Una vez finalizadas las posibilidades de
delimitación de errores, el sistema visualiza
diagnósticos de fallos.

Las otras posibilidades de que dispone el
usuario pueden verse en el ejemplo

Representación de
Conocimientos

Para el procesamiento y la manipulacion del
conocimiento en Sistemas Expertos es necesario formalizar y
estructurar dicho conocimiento. En su mayor parte, se dispone del
conocimiento a traves de entrevistas con los expertos en forma de
descripciones de casos o en partes de su actividad.

Se trata aquí de:

Reglas de producción Estas se basan
en la lógica de predicados, una descripción del
saber en forma de reglas "si…,
entonces…,".

Redes semánticas Una
representación grafica del saber sobre objetos y sus
relaciones.

Frames Estructuras de datos para la
representación de objetos.

La base de estos procedimientos, sea en la
representacion o en el procesamiento del conocimiento, es en
cierta manera él:

Calculo de predicados Deducción
lógica de resultados; mediante el cumplimiento de
determinadas condiciones puede extraerse una deducción
lógica. La solución puede tener el valor de
varadero o falso.

A continuación se describen con
mayor detalle los procedimientos

  • Reglas de Producción

  • Redes Semánticas

  • Frames

  • Calculo de predicados

Finalmente se analizaran los diferentes
métodos de procesamiento del conocimiento.

4.1 Reglas de
producción

La forma más comprensible de
representación del conocimiento se basa en las reglas de
producción. Se trata aquí de descripciones de
acciones dependientes de ciertas condiciones. Una sola regla de
producción puede captarse como unidad de conocimiento
(chunk). Es el componente más pequeño del que
consta el sistema en su totalidad.

En la realización de Sistemas
Expertos con reglas de producción se ha hecho pronto
patente la necesidad de procesar conocimientos vagos. Para la
valoración de los resultados se utilizan ahora factores de
certeza, que son factores arbitrarios de valoración que
suelen encontrarse casi siempre dentro de los límites de
-1 a +1. Aquí el -1 podría ser "seguro que no", el
0,5 "probablemente no", el 0 "desconocido", el +0,5
"Probablemente si" y el +1 "seguro que si" El ámbito de
valores dentro del espacio de solución elegido es
continuo.

Ejemplo extraído del conocido
Sistema Experto MYCIN, un sistema experto medico para la
determinación de enfermedades infecciosas
bacterianas.

MYCIN

IF (1) La infección es debida a
bacterias primarias, y

(2) la localización del cultivo es
una de las muestras estériles, y

(3) la entrada probable es el tracto
gastrointestinal.

THEN Es bastante probable (,7) que
la identidad de los organismos sea bacteria.

Los sistemas que se redactan con reglas de
producción reciben el nombre de sistemas de
producción.

El componente más importante de un
sistema de producción es el mecanismo de inferencia. Con
él se gobierna el procesamiento y la elección de
las reglas de producción

4.2 Redes
semánticas

Las redes semánticas son un
método de representación del conocimiento sobre las
relaciones de los objetos. Los nodos de una red semántica
corresponden a los objetos y los acros describen las relaciones
entre los objetos.

Pero con la red semántica no se da
información sobre el procesamiento de la red. ¡ Las
reglas de inferencia deben estar expresadas de forma
explícita!

Una red semántica ofrece una buena
visión general sobre las relaciones y dependencias de un
área de conocimientos (dominios) y es muy apropiada para
la estructuración del conocimiento y verificación
del experto

En la red semántica puede haber
relaciones unidireccionales (dependencia de una relación
entre objetos). La relación unidireccional se representa
con una flecha en la dirección del objeto.

4.3 Frames (marcos)

"Una frame es una estructura de datos
que sirva para representar una situación
estereotípica, como estar en algún tipo especial de
salón o ir a la fiesta de cumpleaños de un
niño. Añadió a cada Frame hay varios tipos
de información.

Parte de esta información hace
referencia a cómo utilizar el frame, otra se refiere a lo
que una puede esperar que suceda en segundo lugar. Y otra a su
vez indica que hacer si tales esperanzas no son confirmadas"
(Marvin Minsky, 1974)

Un Frame es, por lo tanto, la
división de objetos, o también de situaciones, en
sus componentes. Estos componentes son introducidos en los slots
(ranuras) correspondientes a Frame.

Ejemplo de la herencia jerárquica en
el concepto de Frame, donde los valores heredados aparecen en
cursiva.

Para el procesamiento de los Frames deben
existir reglas y procesamientos incorporados en el concepto, al
igual que en la red semántica.

Los procesamientos asociados a slots, son
actividades por determinados acontecimiento.

4.4 Calculo de predicados

El cálculo de predicados describe el
conocimiento en forma de enunciados (predicados). Se trata de una
notación formal para la descripción de relaciones
lógicas y objetos. Contiene una gramática con la
que se pueden componer enunciados lógicos validos. El
cálculo de predicados con tiene reglas semánticas
que relacionan los símbolos del lenguaje formal con los
objetos, y reglas de procesamiento capaces de crear expresiones
lógicas validas (legal expressions) a partir de
expresiones lógicas validas.

En resumen: El cálculo de predicados
es un lenguaje formal con sintaxis y gramática propias,
capaz de valorar enunciados lógicos y extraer conclusiones
para la creación de nuevos enunciados.

4.5 Estrategia de
inferencia

Como ya se ha mostrado en el cálculo
de predicados, debe formularse explícitamente un mecanismo
para el procesamiento del conocimiento.

Este mecanismo de inferencia evalúa
las reglas y el conocimiento en hechos.

Existen aquí dos formas
básicas de evaluación de las reglas.

  • Encadenamiento hacia adelante (forward
    chaining, forward reasoning)

  • Encadenamiento hacia atras (backward
    chaining, backward reasoning)

El encadenamiento hacia adelante se define
también con inferencia controlada por los datos o como
método "if-added"; el encadenamiento hacia atrás se
conoce también como inferencia controlada por el objetivo
o como método "if-needed"

Lenguajes y
Sistemas de Programación

Pueden desarrollarse Sistemas Expertos en
cualquier lenguaje de programación. Sin embargo hay
algunos lenguajes que por los conceptos dados son especialmente
adecuados. En la mayoría de os casos se subordinan
lenguajes de programación a los diferentes paradigmas de
programación.

5.1 PROLOG

PROLOG es la abreviatura de Programming in
Logic, con lo que se hace mención a la procedencia del
lenguaje. Es una relacion de la lógica de predicados, como
lenguaje de programación.

5.2 Sintaxis y Semantica

La descripción de la sintaxis en el
PROLOG se limita a las partes necesarias.

Esta descripción no corresponde, por
lo tanto, el volumen total de la sintaxis y semántica del
PROLOG

5.3 Mecanismos
Importantes

Los mecanismos importantes del PROLOG son:
recursividad, instanciación, verificación,
unificación backtracking e inversión.

La Recursividad representa la estructura
más importante en el desarrollo del programa. En la
sintaxis del PROLOG no existen los bucles FOR ni los saltos, los
bucles WHILE son de difícil incorporación. ya que
las cariables sólo pueden unificarse de una sóla
vez. La recursión es más apropiada que otras
estructuras de datos recursivas como son las listas y destacan en
estos casos por una representación más sencilla y
de mayor claridad.

La Instancia es la unión de una
variable a una constante o estructura. La variable ligada se
comporta luego como una constante.

La verificación es el intento de
derivar la estructura a comprobar de una pregunta desde la base
de conocimientos es decir, desde los hechos y reglas. Si ello es
posible, la estructura es verdadera, en caso contraria es
falsa.

La Unificación es el componente
principal de la verificación de estructuras. Una
estructura estará comprobada cuando puede ser unificada
con un hecho, o cuando puede unificarse con la cabecera de una
regla y las estructuras del cuerpo de dicha regla pueden ser
verificadas.

Agradecimiento:

A mis padres amigos y familia

Engels Kremlin Valencia Ayala

 

 

Autor:

Engels Kremlin Valencia
Ayala

 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter