viernes, 20 de abril de 2012

Encadenamiento de Reglas


Esta estrategia puede utilizarse cuando las premisas de ciertas reglas coinciden con las conclusiones de otras. Cuando se encadenan las reglas, los hechos pueden utilizarse para dar lugar a nuevos hechos. Esto se repite sucesivamente hasta que no pueden obtenerse más conclusiones. El tiempo que consume este proceso hasta su terminación depende, por una parte, de los hechos conocidos, y, por otra, de las reglas que se activan.

Este algoritmo puede ser implementado de muchas formas. Una de ellas comienza con las reglas cuyas premisas tienen valores conocidos. Estas reglas deben concluir y sus conclusiones dan lugar a nuevos hechos. Estos nuevos hechos se a~naden al conjunto de hechos conocidos, y el proceso continúa hasta que no pueden obtenerse nuevos hechos.

El algoritomo para el encadenamiento de reglas es el siguiente:

  1. Para el inicio del algoritmo es necesario un conjunto de datos, compuesto por una base de conocimientos (objetos y reglas) y algunos hechos iniciales.
  2. El algoritmo inicia asignando a los objetos sus valores conocidos tales como los dan los hechos conocidos o la evidencia.
  3. Se ejecuta la regla de la base de conocimientos y concluye nuevos hechos si es posible.
  4. Se repite el segundo paso hasta que no se puedan obtener nuevos hechos.
Ejemplo:
En el siguiente gráfico se tienen 13 objetos: A, B, ......, M; relacionados por medio de 6
reglas.

Supóngase que los objetos A, B, D, E, F, H e I son ciertos y los restantes son de valor desconocido.
 En el siguiente gráfico se muestra mediante círculos y las relaciones son representadas por las aristas que unen las premisas de las reglas con las conclusiones;se puede observar que las premisas de algunas reglas coinciden con las conclusiones de otras.


En este caso el algoritmo seria el siguiente:
  • La Regla 1 concluye que C = cierto.
  • La Regla 2 concluye que G = cierto.
  • La Regla 3 concluye que J = cierto.
  • La Regla 4 concluye que K = cierto.
  • La Regla 5 concluye que L = cierto.
  • La Regla 6 concluye que M = cierto.
Al llegar a la Regla 6 no se pueden obtener más conclusiones por lo que el algoritmo se detiene.

Webgrafia:


martes, 3 de abril de 2012

Sistemas Expertos

Capitulo 1

Sistema Experto
DEFINICIÓN

Los Sistemas expertos son una rama de la inteligencia artificial que simular el proceso de aprendizaje, memorización, razonamiento, comunicación y de acción que realiza un experto humano en la resolución de un problema en cualquier rama de la ciencia.
Estas características le permiten almacenar datos y conocimiento, sacar conclusiones lógicas, tomar decisiones, aprender de la experiencia y los datos existentes, comunicarse con expertos humanos, explicar el porqué de las decisiones tomadas y realizar acciones como consecuencia de todo lo anterior.
Un sistema experto contiene una base de conocimientos que incluye la experiencia acumulada de expertos humanos y un conjunto de reglas para aplicar ésta base de conocimientos en una situación particular que se le indica al programa. Cada vez el sistema se mejora con adiciones a la base de conocimientos.

COMPONENTES DE UN SISTEMA EXPERTO

·         El Componente Humano
Un sistema experto es generalmente el resultado de la colaboración de uno o varios expertos humanos especialistas en el tema de estudio y los ingenieros del conocimiento, con los usuarios en mente. Los expertos humanos suministran el conocimiento básico en el tema de interés, y los ingenieros del conocimiento trasladan este conocimiento a un lenguaje, que el sistema experto pueda entender.

·         La Base del Conocimiento
Los especialistas son responsables de suministrar a los ingenieros del conocimiento una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien definidas y explicadas. Esta forma estructurada de pensar requiere que los expertos humanos repiensen, reorganicen, y reestructuren la base de conocimiento y, como resultado, el especialista se convierte en un mejor conocedor de su propio campo de especialidad.
Hay que diferenciar entre datos y conocimiento. El conocimiento se refiere a afirmaciones de validez general tales como reglas, distribuciones de probabilidad, etc. Los datos se refieren a la información relacionada con una aplicación particular.

·         Subsistema de Adquisición de Conocimiento
El subsistema de adquisición de conocimiento controla el flujo del nuevo conocimiento que fluye del experto humano a la base de datos. El sistema determina que nuevo conocimiento se necesita, o si el conocimiento recibido es en realidad nuevo, es decir, si debe incluirse en la base de datos y, en caso necesario, incorpora estos conocimientos a la misma.

·         Control de Coherencia
Controla la consistencia de la base de datos y evita que unidades de conocimiento inconsistentes entren en la misma. En situaciones complejas incluso un experto humano puede formular afirmaciones inconsistentes. Por ello, sin un subsistema de control de la coherencia, unidades de conocimiento contradictorio pueden formar parte de la base de conocimiento, dando lugar a un comportamiento insatisfactorio del sistema.

·         El Motor de Inferencia
El motor de inferencia es el corazón de todo sistema experto. El objetivo principal de este componente es sacar conclusiones aplicando el conocimiento a los datos.
Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinista o conocimiento probabilístico. El tratamiento de situaciones de incertidumbre (probabilísticas) puede ser considerablemente más difícil que el tratamiento de situaciones ciertas (deterministas).
Ejemplo:
En diagnóstico médico, los síntomas de un paciente (datos) son analizados a la luz de los síntomas y las enfermedades y de sus relaciones (conocimiento).

·         Interface de Usuario
La interface de usuario es el enlace entre el sistema experto y el usuario.  Para que un sistema experto sea una herramienta efectiva, debe incorporar mecanismos eficientes para mostrar y obtener información de forma fácil y agradable. Una implementación inadecuada de la interface de usuario que no facilite el proceso de obtención de información del usuario disminuiría la calidad de un sistema experto.

·         Subsistema de Ejecución de Ordenes
Este componente permite al sistema experto iniciar acciones. Etas acciones están basadas en las conclusiones obtenidas por el motor de inferencia.

·         Subsistema de Explicación
Explica el proceso seguido por el motor de inferencia o por el subsistema de ejecución.

DESARROLLO DE UN SISTEMA EXPERTO

1.      Planteamiento del problema. La primera etapa en cualquier proyecto es normalmente la definición del problema a resolver. Puesto que el objetivo principal de un sistema experto es responder a preguntas y resolver problemas, esta etapa es quizás la más importante en el desarrollo de un sistema experto. Si el sistema esta mal definido,  se espera que el sistema suministre respuestas erróneas.
2.      Encontrar expertos humanos que puedan resolver el problema. En algunos casos, sin embargo, las bases de datos pueden jugar el papel del experto humano.
3.      Diseño de un sistema experto. Esta etapa incluye el diseño de estructuras para almacenar el conocimiento, el motor de inferencia, el subsistema de explicación, la interface de usuario, etc.
4.      Elección de la herramienta de desarrollo o lenguaje de programación. Debe decidirse si realizar un sistema experto a medida, o utilizar una concha, una herramienta, o un lenguaje de programación. Si existiera una concha satisfaciendo todos los requerimientos del diseño, esta debería ser la elección, no sólo por razones de tipo financiero sino también por razones de fiabilidad. Las conchas y herramientas comerciales están sujetas a controles de calidad, a los que otros programas no lo están.


5.      Desarrollo y prueba de un prototipo. Si el prototipo no pasa las pruebas requeridas, las etapas anteriores (con las modificaciones apropiadas) deben ser repetidas hasta que se obtenga un prototipo satisfactorio.
6.      Refinamiento y generalización. En esta etapa se corrigen los fallos y se incluyen nuevas posibilidades no incorporadas en el diseño inicial.
7.      Mantenimiento y puesta al día. En esta etapa el usuario plantea problemas o defectos del prototipo, corrige errores, actualiza el producto con nuevos avances, etc.

EJEMPLO DE SISTEMA EXPERTO
DENDRAL: Fue el primer sistema experto que fue escrito en Lisp en ser utilizado en propósitos reales en el campo de química ya que facilitaba la inferencia de estructuras moleculares.
MYCIN: el mas famoso de todos, diagnostica infecciones en la sangre y meningitis y además sugiere el tratamiento que se debe seguir en cada caso.
PUFF: Que diagnostica y trata enfermedades del pulmón.
MOLGENO: ayuda a los biólogos que trabajan en el campo del DNA y la ingeniería genética.

PROGRAMMERS APPRENTICE: Se trata de un sistema que ayuda a la escritura de programas.

EURISKO: Sistema experto capaz de aprender a medida que funciona, que crea circuitos microeléctricos tridimensionales.
GENESIS: Permite a los científicos planificar y simular experimentos en el campo de la unión de genes.

Referencias:
Castillo Enrique, Gutiérrez José Manuel y Hadi Ali S. Sistemas Expertos y Modelos de Redes Probabilísticos [Internet] http://personales.unican.es/gutierjm/papers/BookCGH.pdf

Ejemplos de Sistemas Expertos [Internet].

Informática Integral Inteligente [Internet ]http://www.informaticaintegral.net/sisexp.html