martes, 8 de mayo de 2012

UNIDAD VI - APLICACION DE LOS SISTEMAS EXPERTOS

·         6.1 Tareas que realiza un Sistema Experto
o   6.1.1 Interpretación
o   6.1.2 Diagnostico
o   6.1.3 Reparación, corrección o terapia
·         6.2 Control
o   6.2.1 En tiempo diferido
o   6.2.1 En tiempo real
·         6.3 Tendencias futuras
6.1 - Tareas que realiza un Sistema Experto

En la actualidad los Sistemas Expertos, ofrecen grandes posibilidades y sus aplicaciones son de gran utilidad en temas tan variados que pueden ir desde la medicina hasta la enseñanza. En las empresas, los Sistemas Expertos empiezan a tener cada vez mayor auge, hasta el punto de ir suponiendo un punto de referencia importante en la toma de decisiones para los directivos. En realidad, incluso se podría decir que el límite de las aplicaciones de los Sistemas Expertos está en la imaginación humana, siendo siempre de utilidad allí donde se necesite un experto.

Según la clase de problemas hacia los que estén orientados, podemos clasificar los Sistemas  Expertos  en  diversos  tipos  entre  los  que  cabe  destacar  interpretación, diagnosis,  pronóstico, planificación, reparación , corrección, control e instrucción.



6.1.1 Interpretación

La interpretación consiste en encontrar el significado de los datos de entrada obtenidos por sensores o introducidos por el usuario.

Con frecuencia aparecen datos contradictorios, incompletos o inexactos, por lo que hay que dotar al SE de conocimiento para resolver un problema de este tipo, y que de todas formas llegue a una resolución. Existen dos tipos de interpretación:
·         Análisis: La interpretación de datos se obtiene mediante la separación o distinción de las partes que forman los datos.
·         Síntesis: La interpretación de los datos se obtiene mediante la combinación de los mismos. 

La monitorización es un caso particular de la interpretación, y consiste en la comparación continua de los valores de las señales o datos de entrada y unos valores que actúan como criterios de normalidad o estándares.






6.1.2 Diagnostico

El diagnóstico consiste en identificar las causas internas que provocan un problema, avería o disfunción a partir de una serie de datos o síntomas que son consecuencia de la misma y que son observables.

Los SE en diagnóstico encuentran múltiples dificultades a la hora de realizar su tarea como son las siguientes:
·         Manifestaciones  Nuevas.  Es  decir,  síntomas  que  no  se  habían  observado  con anterioridad.
·         Causas Nuevas.
·         Manifestaciones debidas a varias causas.
·         Datos Inaccesibles, caros o de obtención peligrosa.
·         Relaciones no biyectivas entre los datos y las causas.
·         Fallos o averías de aparición intermitente.
·         Existencia de varios fallos simultáneos o en cadena



6.1.3 Reparación, Corrección o Terapia.


La reparación, corrección, terapia o tratamiento consiste en la proposición de las acciones correctoras necesarias para la resolución de un problema.

Los SE en reparación tienen que cumplir diversos objetivos, como son:
·         Reparación lo más rápida y económicamente posible.
·         Orden de las reparaciones cuando hay que realizar varias.
·         Evitar los efectos secundarios de la reparación, es decir la aparición de nuevas averías por la reparación.



6.2 Control
Un sistema de control participa en la realización de las tareas de interpretación, diagnóstico y reparación de forma secuencial. Con ello se consigue conducir o guiar un proceso o sistema.

Los sistemas de control son complejos debido al número de funciones que deben manejar y el gran número de factores que deben considerar; esta complejidad creciente es otra de las razones que apuntan al uso del conocimiento, y por tanto de los SE.

Cabe aclarar que los sistemas de control pueden ser en lazo abierto, si en el mismo la realimentación o el paso de un proceso a otro lo realiza el operador, o en lazo cerrado si no tiene que intervenir el operador en ninguna parte del mismo.


6.2.1 En tiempo diferido

Es el control tradicional, que requiere un espacio temporal para que la información obtenida sea procesada con intenciones de verificación. 



6.2.2 En tiempo real

Es aquel que procesa información de forma continuada para detectar de inmediato cualquier desviación y actuar a continuación. 

Han sido la informática y la tecnología los que ha posibilitado la generalización de los controles a tiempo real en la aplicación de los Sistemas Expertos. Este tipo de control aumenta de manera significativa.

6.3 Tendencias futuras
Tendencias futuras de los Sistemas expertos.
El mercado de herramientas para el desarrollo de SE está sufriendo una profunda transformación debido a una reorganización en el mercado informático y al cambio de estrategia de las compañías dedicadas al desarrollo de estas herramientas. Son cada vez más las compañías que antaño se dedicaban exclusivamente a la inteligencia artificial y que han decidido introducirse en otros mercados más amplios. Esto ha provocado una confusión que irá en aumento a medida que las empresas que integraban el grupo del mercado de la inteligencia artificial pasen a comercializar otro tipo de productos.
El mercado se ha ido reconfigurando aprovechando las experiencias del pasado y el avance tecnológico. Así se ha pasado de utilizar máquinas específicas (por ejemplo máquinas LISP) a usar ordenadores comunes (estaciones de trabajo, ordenadores personales, etc.). Las aplicaciones eran muy específicas y ahora el ámbito es mucho más amplio. Los sistemas basados en el conocimiento estaban pensados para trabajar de forma aislada y ahora se conciben integrados con otros sistemas. Y, finalmente, el número de personas formadas en estas técnicas es mucho mayor que las existentes hace unos años. Un análisis del mercado actual lleva a distinguir seis categorías de herramientas en función de la plataforma de desarrollo y de operación que lo estructuran:
Clasificaciones posibles:
Según plataformas
Según herramientas de desarrollo:
Lenguajes (LISP, PROLOG, C++,...)
"Shell" (utilizando esos entornos)
CBR
Otra clasificación:
Herramientas de propósito general
Herramientas de dominio.
Las herramientas de desarrollo de sistemas basados en el conocimiento se pueden clasificar de varias formas.
Según la plataforma de desarrollo y de operación que lo estructuran podemos distinguir cuatro tipos:
·         Herramientas para PCs y Macintosh: Hasta hace poco, las herramientas que existían para estos entornos estaban orientadas al desarrollo de sistemas pequeños y prototipos. Actualmente, y dado el aumento de la potencia de los PCs, hay herramientas que antes sólo funcionaban en estaciones de trabajo y ahora tienen versiones para PC.
·         Herramientas para estaciones de trabajo: Aunque el número de herramientas en este sector no ha sufrido grandes variaciones, la aparición de nuevas herramientas catalogadas como herramientas orientadas a dominios específicos podrían incluirse en esta categoría. Este mercado presenta el mayor volumen de ventas, y puede ser considerado sin duda, junto con el de los PCs, el que tiene más proyección de futuro. De hecho, aquellas compañías que no ofrecen una buena herramienta para estaciones de trabajo están realizando esfuerzos para colocar en el mercado un producto capaz de competir en este entorno.
·         Herramientas para mainframes: El número de herramientas en este mercado es pequeño y se prevé que en los próximos años descienda lenta pero continuamente hasta desaparecer, ya que las compañías que los comercializan se están desplazando hacia las herramientas para estaciones de trabajo y PCs.
·         Herramientas Lisp: Son ordenadores con arquitecturas especiales para ejecutar programas Lisp. El interés por herramientas Lisp continúa descendiendo así como el número de productos en el mercado. Se prevé un descenso continuo en los próximos años.
Según el alcance de la herramienta podemos dividirlas en:
·         Herramientas de Propósito General. No están especialmente concebidas para tratar problemas específicos. Tienen como ventaja su capacidad para ser empleadas en gran variedad de problemas.
·         Orientadas a dominios y problemas específicos. Esta última categoría representa el mayor grupo de herramientas en el mercado. Se trata de herramientas que abordan problemas o áreas específicos. Ahorran mucho tiempo de desarrollo en el caso de ser aplicadas en los dominios para los que se diseñaron. El número permanece estable aunque con perspectivas de crecimiento en los años venideros debido al gran interés existente en este tipo de herramientas.
Por último podemos realizar una última división atendiendo al lenguaje o técnica para el que sirve la herramienta y así podemos distinguir entre:
·         Herramientas CBR (Case-Based Reasoning): La demanda de herramientas de este tipo se está consolidando mediante la mejora de la calidad de sus productos con más utilidades y nuevos componentes. Son herramientas de razonamiento basadas en casos, para a partir de ellos inducir las reglas y criterios por similitud.
·         Herramientas para lenguajes Lisp, Prolog, C++. Son entornos de desarrollo; proporcionan las utilidades necesarias ( editores, compiladores, depuradores ) para poder programar de forma cómoda en estos lenguajes. ( Se incluye el C++ porque cada vez hay más programas basados en el conocimiento que se desarrollan en él).
·         Shells. Son entornos de desarrollo completos y particulares. Contienen un motor de inferencia y utilizan métodos propios de representación del conocimiento que pueden ser más o menos parecidos al Lisp o al Prolog. Sirven principalmente para el desarrollo de prototipos aunque también pueden utilizarse como herramientas finales. Algunos ejemplos son CLIPS, ART, G2.
Algunos de los campos actuales de investigación y de aplicación son:
·         Aprendizaje: Se pretende que sea el propio ordenador el que adquiera el conocimiento. Existen muchas técnicas aplicables o no dependiendo del problema: aprendizaje inductivo, deductivo, redes neuronales, algoritmos genéticos.
·         Redes Neuronales: Consisten en nodos conectados con otros mediante enlaces, simulando las conexiones que forman las neuronas en el cerebro. Se investiga su utilización en muchas áreas; Visión Artificial, Razonamiento, Aprendizaje, Comprensión Lenguaje Natural.
·         Redes Bayesianas: Técnica para tratar el razonamiento con incertidumbre. Su base es el teorema de Bayes que es el método matemático exacto para tratar las probabilidades. Consiste en una red donde los nodos son hechos ciertos o no y los enlaces entre los nodos son las probabilidades condicionadas de unos hechos con respecto a otros. Propagando las probabilidades a través de la red, se pueden obtener los resultados más probables a partir de los hechos que se conocen (razonamiento). El ejemplo típico son los sistemas de diagnóstico médico.
·         Algoritmos genéticos: Son métodos de aprendizaje inspirados en la evolución natural, y que utilizan las nociones de individuos, apareamiento, recombinación de cromosomas, mutación genética, adaptación y selección natural. Son la base de las investigaciones en Vida Artificial.
Otras técnicas que se pueden mencionar son la utilización de Ontologías para representar el conocimiento, Data Mining para obtención de conocimiento en bases de datos y los Agentes Inteligentes para la recuperación de información en Internet.

lunes, 16 de abril de 2012

4. REPRESENTACION DEL CONOCIMIENTO

4.1 Reglas de Producción
Regla se entiende como una proposición lógica que relaciona 2 o mas objetos e incluye 2 partes, la premisa y la conclusión. Cada una de estas partes consiste en una expresión lógica con una o mas afirmaciones objeto-valor conectadas mediante los operadores lógicos y/o ó no.
Reglas de producción. Es un método procedimental de representación del conocimiento, pone énfasis en representar y soportar las relaciones inferenciales del algoritmo, en contraposición a los métodos declarativos (hechos).
La estructura de una regla es:
SI <antecedentes>
ENTONCES <consecuentes>
Los antecedentes son las condiciones y los consecuentes las conclusiones, acciones o hipótesis.
Cada regla por si misma constituye un gránulo completo de conocimiento.
La inferencia en los Sistemas Basados en Reglas se realiza mediante emparejamiento. Hay dos tipos, según el sentido:
·         Sistemas de encadenamiento hacia adelante: una regla es activada si los antecedentes emparejan con algunos hechos del sistema.
·         Sistemas de encadenamiento hacia atrás: una regla es activada si los consecuentes emparejan con algunos hechos del sistema.
Arquitectura de los Sistemas Basados en Reglas:
·         Base de Conocimientos: reúne todo el conocimiento del sistema (Hechos + Reglas).
·         Memoria Activa: contiene los hechos que representan el estado actual del problema (iniciales + inferidos a posteriori) y las reglas activadas (en condiciones de ser ejecutadas).
·         Motor de Inferencias: decide que reglas activadas se ejecutarán.


4.2 REDES SEMANTICAS
Una red semántica o esquema de representación en Red es una forma de representación de conocimiento lingüístico en la que los conceptos y sus interrelaciones se representan mediante un grafo. En caso de que no existan ciclos, estas redes pueden ser visualizadas como árboles. Las redes semánticas son usadas, entre otras cosas, para representar mapas conceptuales y mentales.

En un grafo o red semántica los elementos semánticos se representan por nodos. Dos elementos semánticos entre los que se admite se da la relación semántica que representa la red, estarán unidos mediante una línea, flecha o enlace o arista. Cierto tipo de relaciones no simétricas requieren grafos dirigidos que usan flechas en lugar de líneas.


4.3 ADQUISICION DEL CONOCIMIENTO Y SUS FASES

Fases de adquisición del conocimiento
Dado que la tarea de adquisición del conocimiento es una tarea difícil, se han identificado varias etapas en las que se ha de dividir su desarrollo y así permitir abordar esta labor de una manera más sistemática.
Existen diferentes versiones sobre la división de esta tarea; la más aceptada en la literatura es la siguiente:
  1. Identificación del problema/s
  2. Conceptualización
  3. Formalización
  4. Implementación
  5. Prueba
Identificación
En esta fase se ha de determinar, en primer lugar, si el problema se puede o se debe abordar mediante las técnicas de los SBC. Para que un problema sea adecuado no ha de poder solucionarse de manera algorítmica, ya que si se pudiera de ese modo, no tendría sentido iniciar una labor tan costosa. También ha de ser necesario tener acceso a las fuentes de conocimiento suficientes para completar la tarea. Por último, el problema a tratar ha de tener un tamaño adecuado para que no constituya una tarea inabordable por su complejidad.
El siguiente paso consiste en buscar las fuentes de conocimiento que serán necesarias para el desarrollo del sistema, las más comunes son:
  • Expertos humanos en el dominio del problema.
  • Libros y manuales que expliciten el problema y técnicas de resolución.
  • Ejemplos de casos resueltos.
Éstos últimos serán importantes sobre todo en la última fase de validación, pero se pueden usar también para utilizar técnicas de adquisición automática del conocimiento y obtener de esta manera los elementos básicos que intervienen y sus relaciones.
Con estas fuentes de información se podrán determinar los datos necesarios para la resolución del problema y los criterios que determinen la solución, tanto los pasos que permiten la resolución como su posterior evaluación.
En este momento el IC y el experto podrán realizar una primera descripción del problema; en ésta se especificarán:
  • Los objetivos
  • Motivaciones
  • Las estrategias de resolución y su justificación
  • Fuentes de conocimiento
  • Tipos de tareas que son necesarias
Este esquema será el punto de partida para plantear las siguientes fases.

Conceptualización

Antes de entrar en las características globales del problema, es necesario detallar los elementos básicos de éste y descubrir las relaciones entre ellos. En particular, es necesario observar cómo el experto resuelve problemas típicos y abstrae de ellos principios generales que pueden ser aplicados en diferentes contextos.
Hay también que obtener una descomposición del problema en subproblemas, realizando un análisis por refinamientos sucesivos hasta que el IC pueda hacerse una idea de la relación jerárquica de las diferentes fases de resolución hasta los operadores de razonamiento más elementales.
Otro elemento necesario es descubrir el flujo del razonamiento en la resolución del problema y especificar cuándo y cómo son necesarios los elementos de conocimiento.
Con esta descomposición jerárquica y el flujo del razonamiento, el IC puede caracterizar los bloques de razonamiento superiores y los principales conceptos que definen el problema. Hará falta distinguir entre evidencias, hipótesis y acciones necesarias en cada uno de los bloques y determinar la dificultad de cada una de las subtareas de resolución. De esta manera se conseguirá captar la estructura del dominio y las diferentes relaciones entre sus elementos.

Formalización

Se han de considerar los diferentes esquemas de razonamiento que se pueden utilizar para modelizar las diferentes necesidades de resolución de problemas identificadas en las fases anteriores.
En este punto, se ha de poder comprender la naturaleza del espacio de búsqueda y el tipo de búsqueda que habrá que hacer. Para ello, se puede comparar ésta con diferentes mecanismos prototípicos de resolución de problemas como la clasificación, abstracción de datos, razonamiento temporal, estructuras causales, etc.
En esta etapa también tendrá que analizarse la certidumbre y completitud de la información disponible, dependencias temporales, o la fiabilidad y consistencia de la información. Se deberá descubrir qué partes del conocimiento constituyen hechos seguros y cuáles no. Para éstos últimos deberá adaptarse alguna metodología de tratamiento de la incertidumbre, de manera que ésta pueda ser modelizada dentro del sistema.

Implementación

En este punto se han de tomar decisiones sobre la especificación del control de la resolución y del flujo de la información. Se deberán tomar decisiones sobre el modo concreto de representar el conocimiento para que se adapte a las estrategias de resolución que se necesiten y las relaciones entre los diferentes conjuntos de conocimiento.
En esta fase se definirán las reglas, e inevitablemente se descubrirán problemas e incompletitudes que obligarán a revisar fases anteriores.

Prueba

Se ha de elegir un conjunto de casos resueltos representativos y se ha de comprobar el funcionamiento del sistema con éstos. En esta fase se descubrirán errores que permitirán corregir análisis anteriores; por lo general aparecerán problemas por falta de reglas, incompletitud, falta de corrección, y posibles fallas en el analisis de las reglas pre establecidas.
4.5 Representacion de reglas


4.6 INCERTIDUMBRE Y APROXIMACION EN LOS SISTEMAS EXPERTOS
En los primeros sistemas expertos, se eligió la probabilidad como medida para tratar la incertidumbre pero, desgraciadamente, muy pronto se encontraron algunos problemas, debidos al uso incorrecto de algunas hipótesis de independencia, utilizadas para reducir la complejidad de los cálculos. Como resultado, en las primeras etapas de los sistemas expertos, la probabilidad fue considerada como una medida de incertidumbre poco práctica. La mayoría de las críticas a los métodos probabilísticos se basaban en el altísimo número de parámetros necesarios, la imposibilidad de una asignación o estimación precisa de los mismos, o las hipótesis poco realistas de independencia.
Consecuentemente, en la literatura de la época, surgieron medidas alternativas a la probabilidad, como los factores de certeza, las credibilidades, las plausibilidades, las necesidades o las posibilidades, para tratar la incertidumbre. Sin embargo, con la aparición de las redes probabilísticas (principalmente las redes Bayesianas y Markovianas, la probabilidad ha resurgido de forma espectacular, y es, hoy en día, la más intuitiva y la más aceptada de las medidas de incertidumbre.
Consideremos el siguiente ejemplo de diagnóstico médico, donde se supone que se tiene un conjunto de enfermedades dado (E1,...,En) y un conjunto de síntomas asociados (S1,...,Sm) a éstas. La pregunta a la que trata de responder un sistema experto probabilístico de diagnóstico médico es: Supuesto que el paciente presenta un subconjunto de síntomas S, ¿qué enfermedad es más probable que tenga?. Para responder a esta pregunta han de calcularse las probabilidades P(Ei | S) , i = 1, 2, …, n. Por ejemplo, en un caso práctico podíamos haber obtenido:
Enfermedad P(Di | S)
1 0.2
2 0.1
3 0.8 más probable
4 0.4
5 0.0 menos probable
6 0.7
El problema de estos sistemas es que suponen que se conoce la función de probabilidad conjunta de todas las enfermedades y síntomas. Sin embargo, en la práctica no se conocen todos los datos necesarios para definir la función de probabilidad conjunta pues, en casos reales, estos pueden constituir una cantidad ingente de información. Por ejemplo, para un caso de diagnóstico médico con 100 enfermedades binarias y 100 síntomas binarios se requieren más de 10 60 parámetros para especificar la función de probabilidad conjunta.
Los modelos de redes probabilísticas utilizan grafos para definir relaciones de dependencia entre las variables del modelo y simplificar la estructura de la función de probabilidad conjunta. Así, serán necesario un número inferior de parámetros para especificar el modelo. Esta simplificación se realiza en base a una factorización de la probabilidad.










martes, 27 de marzo de 2012

3. ESTRUCTURA DE LOS SISTEMAS EXPERTOS.
3.1 LOGICA PROPOSICIONAL
3.2 LOGICA DE PRIMER ORDEN
3.3 MOTOR DE INFERENCIA
3.4 BASE DE CONOCIMIENTO
3.5 BASE DE HECHOS
3.6 ENCADENAMIENTO HACIA ADELANTE
3.7 ENCADENAMIENTO HACIA ATRAS
3.8 ENCADENAMIENTO MIXTO
3.9 APRENDIZAJE
3.10 ARQUITECTURAS


3.1 LOGICA PROPOSICIONAL

La lógica proposicional es la parte de la lógica que estudia la formación de proposiciones complejas a partir de proposiciones simples, y la inferencia de proposiciones a partir de proposiciones, pero sin tener en cuenta la estructura interna de las proposiciones más simples.
Una lógica proposicional es un sistema formal cuyos elementos más simples representan proposiciones, y cuyas constantes lógicas, llamadas conectivas, representan operaciones sobre proposiciones, capaces de formar otras proposiciones de mayor complejidad.
Conectivas lógicas
A continuación hay una tabla que despliega todas las conectivas lógicas que ocupan a la lógica proposicional, incluyendo ejemplos de su uso en el lenguaje natural y los símbolos que se utilizan para representarlas.

En la lógica proposicional, las conectivas lógicas son tratados como funciones de verdad. Es decir, como funciones que toman conjuntos de valores de verdad y devuelven valores de verdad. Por ejemplo, la conectiva lógica no es una función que si toma el valor de verdad V, devuelve F, y si toma el valor de verdad F, devuelve V. Por lo tanto, si se aplica la función no a una letra que represente una proposición falsa, el resultado será algo verdadero. Si es falso que «está lloviendo», entonces será verdadero que «no está lloviendo».
El significado de las conectivas lógicas no es nada más que su comportamiento como funciones de verdad. Cada conectiva lógica se distingue de las otras por los valores de verdad que devuelve frente a las distintas combinaciones de valores de verdad que puede recibir. Esto quiere decir que el significado de cada conectiva lógica puede ilustrarse mediante una tabla que despliegue los valores de verdad que la función devuelve frente a todas las combinaciones posibles de valores de verdad que puede recibir.

Límites de la lógica proposicional
La maquinaria de la lógica proposicional permite formalizar y teorizar sobre la validez de una gran cantidad de argumentos. Sin embargo, también existen argumentos que son intuitivamente válidos, pero cuya validez no puede ser probada por la lógica proposicional. Por ejemplo, considérese el siguiente argumento:
  1. Todos los hombres son mortales.
  2. Sócrates es un hombre.
  3. Por lo tanto, Sócrates es mortal.
Como este argumento no contiene ninguna de las conectvias «no», «y», «o», etc., según la lógica proposicional, su formalización será la siguiente:

  1. p
  2. q
  3. Por lo tanto, r
Pero esta es una forma de argumento inválida, y eso contradice nuestra intuición de que el argumento es válido. Para teorizar sobre la validez de este tipo de argumentos, se necesita investigar la estructura interna de las variables proposicionales. De esto se ocupa la lógica de primer orden. Otros sistemas formales permiten teorizar sobre otros tipos de argumentos. Por ejemplo la lógica de segundo orden, la lógica modal y la lógica temporal.
3.2 LOGICA DE PRIMER ORDEN
La lógica de primer orden, también llamada lógica de predicados o cálculo de predicados, es un sistema formal diseñado para estudiar la inferencia en los lenguajes de primer orden. Los lenguajes de primer orden son, a su vez, lenguajes formales con cuantificadores que alcanzan sólo a variables de individuo, y con predicados y funciones cuyos argumentos son sólo constantes o variables de individuo.
La lógica de primer orden tiene el poder expresivo suficiente para definir a prácticamente todas las matemáticas.
Un predicado es una expresión lingüística que puede conectarse con una o varias otras expresiones para formar una oración. Por ejemplo, en la oración «Marte es un planeta», la expresión «es un planeta» es un predicado que se conecta con la expresión «Marte» para formar una oración. Y en la oración «Júpiter es más grande que Marte», la expresión «es más grande que» es un predicado que se conecta con dos expresiones, «Júpiter» y «Marte», para formar una oración.
Cuando un predicado se conecta con una expresión, se dice que expresa una propiedad (como la propiedad de ser un planeta), y cuando se conecta con dos o más expresiones, se dice que expresa una relación (como la relación de ser más grande que). La lógica de primer orden no hace ningún supuesto, sin embargo, sobre si existen o no las propiedades o las relaciones. Sólo se ocupa de estudiar el modo en que hablamos y razonamos con expresiones lingúisticas.
En la lógica de primer orden, los predicados son tratados como funciones. Una función es, metafóricamente hablando, una máquina que recibe un conjunto de cosas, las procesa, y devuelve como resultado una única cosa. A las cosas que entran a las funciones se las llama argumentos,[4] y a las cosas que salen, valores o imágenes. Considérese por ejemplo la siguiente función matemática:
f(x) = 2x
Esta función toma números como argumentos y devuelve más números como valores. Por ejemplo, si toma el número 1, devuelve el número 2, y si toma el 5, devuelve el 10. En la lógica de primer orden, se propone tratar a los predicados como funciones que no sólo toman números como argumentos, sino expresiones como «Marte», «Mercurio» y otras que se verán más adelante. De este modo, la oración «Marte es un planeta» puede transcribirse, siguiendo la notación propia de las funciones, de la siguiente manera:
Planeta(Marte)
O, más abreviadamente:
P(m)
En la matemática existen además funciones que toman varios argumentos. Por ejemplo:
f(x,y) = x + y
Esta función, si toma los números 1 y 2, devuelve el número 3, y si toma el -5 y el -3, devuelve el -8. Siguiendo esta idea, la lógica de primer orden trata a los predicados que expresan relaciones, como funciones que toman dos o más argumentos. Por ejemplo, la oración «Caín mató a Abel» puede formalizarse así:
Mató(Caín,Abel)
O abreviando:
M(c,a)
Este procedimiento puede extenderse para tratar con predicados que expresan relaciones entre muchas entidades. Por ejemplo, la oración «Ana está sentada entre Bruno y Carlos» puede formalizarse:
S(a,b,c)



3.3 MOTOR DE INFERENCIA

El motor de inferencias en los sistemas expertos

El Motor de Inferencias (MI) es un programa de control cuya función es seleccionar las reglas posibles a satisfacer el problema, para ello se vale de ciertas estrategias de control sistemáticas o de estrategias heurísticas.

Estrategias de control sistemático:
Encadenamiento hacia adelante o hacia atrás.
Búsqueda en profundidad o a lo ancho.
Régimen de control irrevocable o por tentativa.

Estas estrategias son de forma sistemática las cuales deben llevar a la solución del problema. Podemos decir que el control sistemático es un programa de control hecho de forma "algorítmica" que aplican una heurística de propósito general cuya función es una exploración exhaustiva y metódica de la base de conocimientos.

Estos mecanismos de control son muy generales y a veces resultan ineficientes ya que siguen una secuencia de búsqueda demasiado rígida, para resolver esto se idearon las estrategias de control heurísticas.

Las estrategias de control heurísticas son programas de control que utilizan una heurística más específica y su función es una selección más restringida orientada por las necesidades del problema. Estas estrategias actúan sobre el control sistemático y en ciertos casos toma el control y dirige la búsqueda hacia ciertos criterios rompiendo así el control sistemático, una vez logrado su objetivo le devuelve el control nuevamente al sistemático.

Estrategias de control heurísticas:
Orden de las reglas.
Mayor credibilidad en las reglas.
Menor número de cláusulas no instanciadas.
Mayor número de conclusiones en las reglas.

Podemos decir que un sistema experto, es un sistema informático que utiliza técnicas apropiadas para la representación de conocimientos y la manipulación de este, de forma tal que exhiba el comportamiento de un avezado especialista en un determinado dominio del saber.

3.4 BASE DE CONOCIMIENTO

Una Base de Conocimiento es un tipo especial de base de datos para la gestión del conocimiento. Provee los medios para la recolección, organización y recuperación computarizada de conocimiento.
El más importante aspecto de una base de conocimiento es la calidad de la información que esta contiene. Las Mejores Bases de Conocimiento tienen artículos cuidadosamente redactados que se mantiene al día, un excelente sistema de recuperación de información (Motor de Búsqueda), y un delicado formato de contenido y estructura de clasificación. Una Base de Conocimiento puede usar una ontología para especificar su estructura(tipos de entidades y relaciones) y su esquema de clasificación. Una ontología, junto con un grupo de instancias de sus clases constituyen una Base de Conocimiento.
Determinando qué tipo de información es capturada, y dónde se encuentra la información en una base de conocimiento es algo que es determinado por los procesos que respaldan al sistema. Una estructura robusta de procesos es la columna vertebral de cualquier Base de Conocimiento. Algunas Bases de Conocimiento tienen un componente de inteligencia artificial. Este tipo de Bases de Conocimiento pueden sugerir soluciones a problemas esporádicos en la retroalimentación por el usuario, y son capaces de aprender de la experiencia (sistemas expertos). Representación de Conocimiento, Razonamiento automatizado y argumentación son las áreas activas de la investigación de la inteligencia artificial.




3.5 BASE DE HECHOS

Contiene los hechos sobre un problema que se han descubierto durante una consulta. Durante una consulta con el sistema experto, el usuario introduce la información del problema actual en la base de hechos. El sistema empareja esta información con el conocimiento disponible en la base de conocimientos para deducir nuevos hechos.

3.6 ENCADENAMIENTO HACIA ADELANTE
3.7 ENCADENAMIENTO HACIA ATRAS

Encadenamiento hacia adelante y hacia atras

Un grupo de múltiples reglas de inferencia que contiene un problema con su solución se llama cadena.
Una cadena que realiza una búsqueda o camino desde el problema a la solución se llama una cadena hacia adelante.
Este tipo de cadena va desde los hechos hsta las conclusiones que siguen a partir de los hechos.
Una cadena que transita hacia atrás desde una hipótesis hasta los hechos que soportan tal hipótesis se llama una cadena hacia atrás. Otra forma de definirla es en términos de una meta que puede estar formada por submetas que se han cumplido.
El encadenamiento se puede expresar con cierta facilidad en términos de inferencia si suponemos que tenemos reglas del tipo Modus-poner.
p->q
p
_____________
:. q
conejo(x)->mamifero(x)
mamifero(x)->animal(x)
Por tanto una cadena causal de encadenamiento hacia adelante se representa mediante una secuencia de enlaces que conectan el consecuente de una regla con el antecedente de la siguiente.
Ejemplo:

conejo(Bugs Bunny)


conejo(x)->
mamifero(x)
mamifero(x)->
animal(x)
aminal(Bugs Bunny)



Un enlace, por otra parte también indica la unificación de variables a hechos. Por ejemplo la variable x en el predicaco conejo(x) debe ser unificada en el primer lugar con el hecho conejo(Bugs Bunny) antes de que la regla conejo se pueda aplicar, por lo que la cadena causal será en realidad una sucesión de implicaciones y unificaciones
En el encadenamiento hacia atrás el proceso es el inverso: queremos probar la hipótesis de animal(Bugs-Bunny). El problema central del encadenamiento hacia atrás es encontrar una cadena de enlace entre la evidencia y la hipótesis.
El hecho conejo(Bugs Bunny>) se llama la evidencia en el encadenamiento hacia atrás, para indicar que se usará para sostener la hipótesis, siendo esta evidencia usada para probar dicha hipótesis. Tenemos una estructura de claúsulas.
Los encadenamientos hacia adelante y hacia atrás son en realidad caminos a través de un espacio de estados de un problema. En este espacio de estados del problema los estados intermedios se corresponden con hipótesis intermedias bajo el encadenamiento hacia atrás o conclusiones intermedias bajo el encadenamiento hacia adelante.

Características comunes

Conozco más el encadenamiento hacia atrás ya que conozco el pasado, pero el futuro no.


En un sistema basado en reglas tenemos el siguiente grafico:
Encadenamiento hacia atrás:


En el encadenamiento hacia atrás, el orden a probar la hipótesis h deberá de probarse al menos una de las hipótesis intermedias. Se observa que el diagrama, en este caso se describe como un diagrama AND/OR para indicar que en algún caso, tal como h2 todas las hiótesis de nivel inferior deben estar presentes para sostener h2.
En otros casos, tal como la hipótesis de nivel superior h solo es necesario una hipótesis de nivel inferior para que se verifique.
En el encadenamiento hacia atrás, el sistemas, por lo general, obtendrá evidencia del usuario, con el fin de probar o no la hipótesis, lo que contrasta con el sistema de encadenamiento hacia adelante, en el que todos los hechos relevantes se conocen por lo general con antelación.

3.8 ENCADENAMIENTO MIXTO
  • Encadenamiento hacia adelante: El motor de inferencia parte de los hechos para llegar a los resultados, esto es, selecciona las reglas que verifiquen las condiciones de la parte izquierda (premisas).
  • Encadenamiento hacia atrás: En este caso el motor de inferencia parte de los resultados y trata de volver a los hechos para comprobar si encajan con el problema planteado.
  • Encadenamiento mixto: Este modo ofrece varias posibilidades que resultan de combinar el encadenamiento hacia adelante y hacia atrás para paliar sus limitaciones y mantener las ventajas.
  • Algoritmos de búsqueda heurística: En los casos en los que la naturaleza de la base de conocimiento permita construir una estructura de árbol, el proceso de inferencia se convierte en un problema de búsqueda en un árbol. Existen diversos métodos, y la elección dependerá, por lo tanto, de la naturaleza del problema.
  • Herencia: Es el método de inferencia utilizado en entornos orientados a objetos. Un objeto hijo hereda propiedades y hechos de sus padres. Así, la asignación de nuevas propiedades a un objeto se realiza a través de las relaciones entre ese objeto y el resto.
Dentro de los modos de razonamiento los factores de incertidumbre son valores asignados a hechos o reglas que indican la certeza o grado de confianza que el experto tiene en una regla o el usuario en un hecho. No representan, ni mucho menos, una probabilidad en el sentido estricto de la palabra.
Un sistema que usa factores de incertidumbre asociados a las reglas o propiedades de los objetos puede realizar varias recomendaciones indicando el grado de confianza o nivel de certidumbre de cada una.no todos los problemas requieren un conocimiento basado en grados de incertidumbre, es conveniente que la herramienta para el desarrollo de un sistema basado en el conocimiento incluya este conocimiento probabilístico porque incorpora una utilidad que refleja en gran manera la forma de trabajar de los expertos en mucha áreas. Asimismo, es necesario tener claro el algoritmo o método que se utiliza para calcular el grado de incertidumbre asociado a una recomendación o acción final.
3.9 APRENDIZAJE

El aprendizaje es el proceso a través del cual se adquieren o modifican habilidades, destrezas, conocimientos, conductas o valores como resultado del estudio, la experiencia, la instrucción, el razonamiento y la observación. Este proceso puede ser analizado desde distintas perspectivas, por lo que existen distintas teorías del aprendizaje. El aprendizaje es una de las funciones mentales más importantes en humanos, animales y sistemas artificiales.

El desarrollo de un modelo de aprendizaje natural incluye simular los logros del aprendizaje natural, pero a su vez implica también simular sus mismos errores, es decir, simular el proceso de aprendizaje en sí mismo. Es por esto que a menudo se tiende a pensar que lo que para un sistema de aprendizaje natural puede ser importante, no tiene por qué serlo para un sistema artificial, o viceversa. Y sin embargo, muchos de esos "errores" son asumidos por los sistemas naturales como un pequeño precio a pagar a cambio de mantener un sistema de aprendizaje flexible y rápido que permita sobrevivir y adaptarse de manera eficaz a los cambios ambientales. Es más, como se mostrará a continuación, ese comportamiento tan "poco lógico" que a menudo muestran los sistemas naturales no es en realidad un error de la naturaleza, sino más bien una forma sabia de adaptarse al ambiente.


3.10 ARQUITECTURAS

La arquitectura de un sistema experto esta basada en una entrada de datos realizada por el usuario a fin de efectuar la oportuna consulta. Las entradas no solamente están compuestas de estas consultas. El aprendizaje del sistema y las condiciones especificas del problema a tratar también han de encontrarse en la entrada.
Junto a ello, se encuentra la administración del sistema, compuesta por un interfaz encargado del manejo de la sintaxis del lenguaje y de la maquina de inferencias,que se encarga de efectuar la búsqueda en la base de conocimientos y en la base de datos. Por ultimo, se tienen los resultados.