Está en la página 1de 13

Encadenamiento hacia adelante

Por medio del conocimiento y los hechos que se presentan se construyen razonamientos para poder
obtener un resultado. Ej: Cuando implementamos el conocimiento que adquirimos en una máquina y
esta nos da una respuesta.

Observando los hechos o las características de un proceso o situación podemos definir el resultado final,
evaluando y razonando todas las opciones posibles.

Podemos identificar el encadenamiento hacia adelante cuando: tenemos pocos datos y con ellos
hayamos muchas posibles conclusiones.

El encadenamiento hacia atras lo identificamos cuando: tenemos mucha información disponible, pero
poca es relevante (consulta de un medico)

Encadenamiento hacia atrás comienza con una lista de objetivos y trabaja al revés de la consecuente al
antecedente para ver si hay datos disponibles que apoyen alguna de estas consecuentes. Un motor de
inferencia utilizando encadenamiento hacia atrás sería buscar las reglas de inferencia hasta que
encuentra uno que tiene un consecuente que coincide con un objetivo deseado. Si el antecedente de
que la regla no se sabe que es verdad, entonces se añade a la lista de objetivos.

Sistemas de Encadenamiento hacia adelante

Introducción.

En este documento veremos, como diseñar un sistema experto basado en reglas con encadenamiento
hacia adelante. Para esto consideraremos un problema pequeño de diagnóstico de un automóvil.
Las principales tareas para desarrollar un sistema con encadenamiento hacia adelante son:

1. Definir el problema.

2. Definir los datos de entrada.

3. Definir estructura para el manejo de los datos.

4. Escribir el código inicial.

5. Realizar pruebas al sistema.

6. Diseñar la interfaz.

7. Expandir el sistema.

8. Evaluar el sistema.

Dominio de diagnóstico de automóviles.

Muchos SE de diagnóstico usan encadenamiento hacia adelante, esto debido a que tienen un número
finito metas.
Consideremos el ejemplo de un sistema de diagnóstico de problemas de automóviles.

TAREA 1. Definir el problema


El paso inicial para el diseño de un sistema con encadenamiento hacia adelante es obtener
conocimiento respecto al problema, una forma de hacer esto es localizar un buen mecánico de autos,
que será el experto, un método alternativo es consultar un manual de referencia técnica, ya que sin
duda estos manuales son escritos por los expertos.

Existen manuales de distintos tipos:

 Manuales de reparación.

 Manuales de reparación automática.

Especificación del problema.

Existen muchos problemas que pueden presentarse en un automóvil, para este ejemplo nos
enfocaremos en el problema "Auto no arranca", más específicamente en "Sistema de direcciones".

Después de desarrollar la estructura para encarar el problema debemos tener una idea de como
manejar otros posibles problemas. Las especificaciones de problemas son:

 Manejar problemas relacionados con "motor no arranca."

 Manejar solo problemas de "sistema de direcciones."

TAREA 2: Definir datos de entrada.

Los sistemas de encadenamiento hacia adelante necesitan primero obtener datos iniciales, para poder
funcionar, entonces es necesario escribir reglas cuya única tarea sea la obtención de información.

acerca del problema. Este tipo de reglas se denominan reglas de arranque, Cuando estas reglas se
activan, realizan alguna consulta sobre alguna información del problema. Para nuestro sistema se desea
consultar al usuario la naturaleza del problema.

Regla 1 Comenzar diagnóstico


IF Tarea comenzó
THEN ASK Problemas auto

Para activar esta regla, primero deberíamos introducir Tarea comenzó en la memoria de trabajo. La
función ASK hace que la siguiente pregunta sea realizada.
¿Cuál es el problema?
Auto no arranca.
Auto falla a altas velocidades.

Después que el usuario selecciona el problema particular, el sistema dirige la resolución del problema
hacia una área especifica. En el caso del ejemplo nos enfocaremos solo a Auto no arranca. Esta simple
pieza de información dirige al sistema para que considere problemas concernientes a la situación. El
sistema de nuestro ejemplo continua realizando preguntas para dirigir la resolución del problema hacia
la conclusión más lógica.

TAREA 3: Definir estructuras para el manejo de los datos

Teóricamente un sistema de encadenamiento hacia adelante funciona activando las reglas cuyas
premisas correspondan con la memoria de trabajo. Por ejemplo la siguiente regla se activa si "A" es
verdad:

IF "A"
THEN inferir o hacer algo

Usando esta regla si A es verdad el sistema puede inferir nueva información o ejecutar alguna tarea. En
aplicaciones pequeñas esta forma de controlar la activación de las reglas puede ser adecuado, sin
embargo en la mayoría de los casos es necesario incluir en cada regla una premisa que ayude a controlar
cuando una regla debe ser activada. Por ejemplo:

IF Tarea es
AND "A"
THEN inferir o hacer algo

Usando una regla de esta forma, la regla se activa solo si se cumplen las dos condiciones, esta estructura
ayuda a mantener el control sobre el proceso de inferencia.

Representamos la parte de Verificación r es la primera premisa de la regla.

Representamos la parte de Resultado es la segunda premisa de la regla.

Representamos la parte de Proceder a es la conclusión.

IF Tarea es test la conexión de la batería TEST


AND luces no encendidas RESULTADO
THEN tarea es test de la batería PROCEDER A

TAREA 4: Escribir código inicial

EL propósito de esta tarea es determinar si se ha capturado efectivamente el conocimiento del


problema en una buena estructura de las reglas. Una buena estructura no es solo aquella que brinda
resultados correctos sino también un patrón que seguir para el desarrollo de otras reglas. La tarea
anterior es la que nos provee la estructura para estas reglas.

Una vez que hemos limitado nuestro problema a problemas del auto no arranca necesitamos una regla
que cambie a la tarea de "Verificar sistema de direcciones ".
IF Tarea es verificar sistema de direcciones
AND Problema IS auto no arranca.
THEN Tarea es verificar sistema de direcciones.

El conjunto inicial de reglas para este sistema es el siguiente:

Regla 3 Auto falla a altas


Regla 1 Comenzar
Regla 2 Auto no arranca IF Problema velocidades IF Problema auto IS
diagnóstico IF Tarea IS
del auto IS no arrancar THEN Tarea falla a altas velocidades THEN
iniciada THEN ASK
IS test del sistema de direcciones Tarea IS test del sistema de
Problemas del auto
combustible

Regla 6 Paso 1.1sistema


Regla 4 Paso 1.1 Regla 5 Paso 1.1sistema direcciones
direcciones bien IF Tarea IS test
Verificar sistema de defectuoso IF Tarea IS test sistema
sistema de direcciones AND
direcciones IF Tarea IS de direcciones AND Motor enciende
Motor enciende normalmente
test sistema de lento o no del todo THEN Sistema
THEN Sistema de direcciones
direcciones THEN ASK de direcciones defectuoso AND
esta bien AND Tarea IS test de
Motor encender Tarea IS test de conexión de batería
sistema de encendido

Regla 8 Paso 2.1 conexión de batería Regla 9 Paso 2.1 conexión de


Regla 7 Paso 2.1
es mala IF Tarea IS test conexión de batería es buena IF Tarea IS test
Verificar conexión de
batería AND test de destornillador conexión de batería AND test de
batería IF Tarea IS test
muestran luces resplandecen OR destornillador se ve luces no
conexión batería THEN
test de destornillador muestran resplandecen THEN conexión de
ASK test destornillador
luces no encienden THEN problema batería IS buena AND tarea IS
mostrar las luces
es una mal conexión de batería test de batería

TAREA 5: Probar el sistema

Esta tarea verifica el conjunto de reglas. Asumimos que “Tarea iniciada” ha sido inicializada en la
memoria de trabajo. Esto causa la activación de la regla y el sistema pregunte Cuál es el problema El
sistema entonces busca todas las reglas por la premisa Problemas de carro . El sistema realiza la
siguiente pregunta:

SISTEMA: Cuál es el problema con el auto ?

No arranca.

Falla a altas velocidades.

USUARIO: No arranca.

Esta respuesta provoca la activación de la regla 2 y la inserción de Tarea es verificar sistema de


direcciones en la memoria de trabajo.
SISTEMA: Por favor activar el encendido
Como actúa el motor?

lento o no del todo


Normalmente

USUARIO: lento o no del todo

Con la respuesta dada por el usuario, la regla 5 se activa provocando la inserción Sistema de direcciones
es defectuoso y Tarea es verificar conexión de la batería.
Esta nueva información causa la activación de la regla 7 provocando:

SISTEMA: Poner un destornillador entre la batería y el cable . Entonces poner los faroles en luz larga y
observar como el destornillador es cambiado.
Qué pasa a las luces?

Resplandecen
no encienden
no resplandecen

USUARIO: resplandecen

La respuesta dada por el usuario resulta con la activación de la regla 8 Problema IS conexión mala de
batería.

TAREA 6: Diseñar la interfaz

Una vez que tenemos un conjunto de reglas trabajando adecuadamente el próximo paso es construir la
interfaz del sistema.
La interfaz es un componente muy importante del sistema. Deberíamos diseñar esta en paralelo con la
base de conocimientos y no después, ya que la forma en que se diseñe la base de conocimientos
dependerá del diseño de la interfaz.

Sugerencia de diseño: Comenzar el diseño de la interfaz lo más pronto posible y desarrollarlo en paralelo
con la base de conocimientos del sistema.

Interfaz Gráfica dinámica

La mayoría de los SE son diseñados par interactuar con el usuario usando solo texto. El sistema realiza
preguntas y el usuario responde introduciendo la respuesta por teclado. O seleccionándola de un menú
de opciones. Muchos shells ofrecen herramientas para realizar interfaces. Estos proveen conjuntos de
herramientas de diferentes ítems como ser botones, mapas de bits, etc. que permiten al usuario
observar y controlar la operación de un SE.

La descripción de la interfaz gráfica para el control del automóvil es:


Esta interfaz contiene diferentes objetos enlazados a diversas partes de la base de conocimientos. El
auto es un mapa de bits cuya posición en la pantalla es controlada con los valores de Posición. Los dos
botones Control velocidad permiten al usuario controlar la velocidad del auto. LA base de conocimientos
contienen información que es desplegada en la Interfaz y las reglas que trabajan con esta información.

Considerando la regla que incrementa la velocidad del auto:

IF Incre velocidad
THEN Velocidad = Velocidad + 5

AND Incre velocidad

Cuando el usuario presione el botón Incre, la premisa de esta regla se activará . Esta acción causa el
incremento al valor de la velocidad y el velocímetro. La activación de esta reglas causa la activación de:

IF Incre velocidad
THEN Temperatura= (Velo * 2) + 200
AND Verificar combustible ( velocidad * 0.5) +40

Esta regla causa la activación de la temperatura y la lectura del combustible en la interfaz.

El movimiento del auto a lo largo de la pantalla es controlado por los cambios del valor de posición. El
dibujo del auto es un mapa de bits, situado en una posición X y Y que define los cuatro ángulos de la
figura. Para causar un desplazamiento de la figura. Para causar el desplazamiento del dibujo una regla
debería incrementar X, de los cuatro puntos extremos de la figura. El rango de movimiento debe ser
proporcional al valor actual de la velocidad.

TAREA 7: Expandir el sistema


Esta tarea expande el conocimiento del sistema. La expansión debe incluir también el diseño de
pantallas de la interfaz y reglas que desplieguen las pantallas.

TAREA 8: Evaluar el sistema

La tarea de evaluación se refiere a verificar el prototipo que tenemos del sistema con algún caso real de
verificación. Normalmente esta verificación debería ser realizada por el experto, sin embargo si se uso,
como en este caso un manual de referencias técnicas, se puede trabajar solo con este.

PASO 1

Comentario: La primera pantalla que se muestra al usuario es la pantalla de introducción. Esta pantalla
indica al usuario el objetivo del sistema y brinda una introducción al problema.

Si se selecciona START. Esta inserta “Tarea iniciada” en la memoria de trabajo causando la activación de
la Regla 1S que a la vez activa la regla 1S, causando el despliegue de la siguiente pantalla.

PASO 2
Comentario: El sistema intenta determinar si el problema es con el sistema de direcciones. Si el usuario
escoge” lento o no del todo” se inserta este hecho en la memoria de trabajo causando la activación de la
regla 1B. Esta regla a su vez inserta “Tarea es verificar la conexión de la batería” y se despliega:

PASO 3

Comentario: Esta pantalla muestra los resultados intermedios del problema existente en el sistema de
direcciones.

PASO 4

Comentario:El sistema intenta determinar si la conexión de la batería esta bien.


PASO 5

Comentario: el sistema le indica al usuario que realice un test con un hidrómetro a la batería. Si
seleccionamos true el hecho “lectura del hidrómetro de la batería esta bien” se activa la regla 2D, esto
causa que se cambie a la tarea “tarea es arrancar el sistema”. Esto activa la regla 4A y despliega:

PASO 6
Comentario: el sistema pregunta al usuario para utilizar un “vibrador” para verificar el arranque del
sistema. Si el usuario después de que se realiza este test encuentra que no sucede nada, se inserta en la
memoria de trabajo “arrancador hace nada” causando la activación de la regla 2E. Esta despliega la
pantalla:

PASO 7

Revisión de la sesión

Esta sesión nos muestra un simple ejemplo de encadenamiento hacia adelante. Los hechos insertados
por el usuario causan la activación de las reglas, estos hechos pueden insertar nueva información o
causar que una pantalla sea desplegada. El control de la activación de las reglas es realizado mediante
premisas de estado de la forma Tarea IS

Direcciones futuras

Una vez que se ha construido con éxito un prototipo del sistema, el próximo paso es continuar su
expansión. Para nuestro problema podríamos añadir otras tareas, realizando los pasos adicionales del
manual de referencia.. Hasta este punto nuestro sistema solo se enfoca en el problema del sistema de
direcciones. Los próximos pasos serían contemplar además problemas de sistema de combustible,
sistema de encendido, etc.

Puntos clave

 El diseño de un SE con encadenamiento hacia adelante es un proceso altamente iterativo.

 El sistema debe ser verificado inmediatamente después de introducir nuevas reglas.

 La inferencia con encadenamiento hacia adelante es mejor que la con encadenamiento hacia
atrás si las metas no se que no se conocen con anterioridad son muchas.

 Diseñar un sistema de encadenamiento hacia atrás comienza con la definición de las metas del
sistema, mientras que en un sistema de encadenamiento hacia adelante el primer paso es
definir los datos iniciales.

 Las reglas usadas en un sistema de encadenamiento hacia adelante generalmente contienen


una premisa que permite seguir el estado de la resolución del problema para mantener el
control sobre el proceso de inferencia.

 El diseño de la interfaz del sistema debe ser realizada lo más temprano posible en el proyecto y
desarrollada en paralelo con el desarrollo de la base de conocimientos del sistema.

Otra fuente

También podría gustarte