| Intelligent Systems And Their Societies | Walter Fritz |
Véamos la actividad del programa mientras corre en este modo. En un bucle continuo el programa toma nota de la situación interior, busca una regla interior aplicable, y activa la funcion interior relacionado con esta regla. También combina dos "situaciones presentes " creando una regla del tipo " experiencia ". De esta
manera, cuando la persona presenta dos situaciones consecutivas al programa, los aprende como una regla, compuesta de estas situaciones.
El bucle solamente se termina cuando la persona usa el menu para activar el modo dormido. Lo que sigue son las reglas que se activan en secuencia:
Leer Texto
Al inicio, la situación interna es "despierto". El programa busca la regla interna aplicable, que es LeerTexto. Alli lee la entrada por el teclado, y crea un concepto para cada palabra. El programa pone cada uno de estos conceptos dentro del concepto "TEXT". Después cambia la situación interna.
Visión
Ahora el programa busca una regla interna que es aplicable a la nueva situacion interna y encuentra la regla "Vision". La función del programa en lengua C que es conectada a esta regla, convierta lo que ve la cámera en conceptos de tipo visión. El programa almacena estos conceptos en el concepto "VISION". Por el momento estamos trabajando solamente con algunos dibujos geométricos dibujados en un papel. El contenido del concepto de tipo visión es forma, color, tamaño, posición X, posición Y.
Crear Situación Actual
De manera similar como en Vision el programa llama la regla "CrearSituaciónActual" y almacena los conceptos de los sentidos en secuencia, en el concepto SIT_EXTERNA .
Aprender Una Regla
Aqui, según la situación actual interna, el programa activa la regla "AprenderUnaRegla" que crea una nueva regla externa con la situación anterior como Sit1 (situación inicial) y la situacion actual como FutSit (Situación futura). Esta regla es de tipo "experiencia". Las reglas de tipo experiencia son reglas externas que se precisan para reaccionar a una entrada por los sentidos.
Hacer Lista De Reglas Aplicables
Como próxima esta regla se active por la situación interna. Esta regla extrae de la memoria una lista de reglas aplicables a la situación externa presente. Aplicable quiere decir que tienen algún concepto de la situación actual en su Sit1.
Estas reglas son almacenados, en orden de su valor, dentro del concepto "LISTA_DE_REGLAS_CANDIDATO" y sus valores correspondientes se almacenan en el concepto "LISTA_DE_VALORES_DE_REGLAS". Estos valores se calculan por la
siguiente formula:
Valor = valor regla + H - M
Valor regla es el valor de la regla dada.
H es el valor del concepto de la Sit1 de la regla encontrada en la situación presente.
M es el valor del concepto de la Sit1 de la regla NO encontrada en la situación presente.
Selección De Regla
Esta regla selecciona una regla de
"LISTA_DE_REGLAS_CANDIDATO". Por el momento seleccióna la regla de valor mas alto, y la pone en el concepto "REGLA_SELECCIONADA".
En una versión previa, seleccionó mas frequentemente una regla de valor mas alta y con menos frequencia una regla de valor menor. Esto fue util para jugar juegos de mesa en la pantalla de la computadora, como ta--te-ti. Asi aprendió el juego en menos tiempo.
Efectuar Regla Exterior
Esta regla ejecuta la parte acción de la regla seleccionada. Primero ve cuan bien coincide la Sit1 de la regla con la situación presente. Si hace falta modifica la regla y ejecuta la acción.
Abajo hablamos de ReglaAjuda y ReglaPatrón. Una ReglaPatrón es una regla donde algunos conceptos de la Sit1 o FutSit son reemplazados por un comodín. Un comodín indica que es lo que hay que hacer en el lugar donde está.
Este comodín lo llamamos ReglaAjuda porque es una regla que indica una acción que hay que hacer cuando se usa una ReglaPatrón, Esto es un uso de una ReglaAjuda. El otro uso es como sigue. Durante el modo dormido el programa agregó una ReglaAjuda a un concepto. Si este concepto ocurre en una Sit1 de una regla elegida, la ReglaAjuda hace los cambios necesarios en la FutSit y crea una nueva regla con estos cambios. En el modo dormido damos mas detalles de los ReglasPatrón y los ReglasAjuda.
Seguimos con "Efectuar Regla Exterior".
La sequencia de activacion en esta regla es:>
IF Si la SEL_RULE es una ReglaPatron:
Busca el lugar en la Sit1 de la SEL_RULE, donde se encuentra la ReglaAjuda. Despues pone el concepto que esta en este lugar en la situación presente, y lo pone en la FutSit de la SEL_RULE.
Lo pone en el lugar donde existe otra ReglaAjuda.
Por ejemplo: la situación presente es "Soy Pedro". Aqui "Pedro" es un nombre desconocido. La ReglaPatron tiene en Sit1 "Soy ReglaAjuda" y como SitFut "Hola ReglaAjuda". Aqui la SitFut se modifica, sustituyendo "Pedro" por "ReglaAjuda".
ELSE IF Si todos los conceptos de la sitiación presente son identicos a los conceptos de la Sit1 de la SEL_RULE, deja la SEL_RULE sin cambios.
ELSE IF Si la Sit1 de la SEL_RULE tiene un concepto que tiene adherido una ReglaAjuda, entonces modifica la FutSit de la SEL_RULE segun las indicaciones de la ReglaAjuda.
Por ejemplo: El programa ve un triangulo y sabe que debe contestar con la palabra "triangulo". Pero también ve que el objeto es rojo. El programa tiene en memoria una regla con Sit1 de un objeto rojo y con FutSit de lapalabra "rojo". Entonces el programa combina estos dos reglas y genera una FutSit de "triangulo rojo".
ELSE IF Si todos o algunos conceptos de la Sit1 existen en la situación presente, deja la SEL_RULE sin cambios.
ELSE Si llego a este punto, el programa avisa que no encontró ninguna regla aplicable.
Al final la regla hace la acción concreta basada en la FutSit de la SEL_RULE.
Ahora el programa vuelve al inicio del bucle.
Para lectura continua como en un libro - continua
aqui
Salta al contenido de este sitio /
Sistemas inteligentes /
Un cerebro de robot /
inicio de la página.
Copyright © New Horizons Press