Documentos de Académico
Documentos de Profesional
Documentos de Cultura
APRENDIZAJE EN REDESPARALELAS
Septiembre, 1987
ÍNDICE
l. INTRODUCCIÓN 1
2.1. INTRODUCCIÓN 6
3. LA MÁQUINA DE BOLTZMANN
3.1. INTRODUCCIÓN 32
DE BOLTZMANN 33
DE BOLTZMANN 45
4. APRENDIZAJE
4.1. INTRODUCCIÓN 46
6.1. INTRODUCCIÓN 67
LISP
7.1. INTRODUCCIÓN 74
9. APÉNDICES 91
l. INTRODUCCIÓN
único procesador muy rápido y potente pero poco flexible. También es diferente en el
interacción entre sus elementos de proceso, mientras que los computadores lo hacen
mediante la asignación de bits en una memoria de propósito muy general, pero pasiva.
También hay que considerar la resistencia del cerebro ante pequeños daños físicos, y
explícitamente.
para representar las estructuras del conocimiento, a menudo muy complejas. También
(vista, oído, tacto, etc.) es capaz de transformar el cúmulo de señales que recibe en
realiza dicha transformación. Por supuesto, tampoco sabemos cómo aprende nuevos
-1-
investigaciones han presentado un gran número de teorías diversas sobre el
mecanismos.
relevantes del comportamiento inteligente, y por ello, cualquier sistema que pretenda
pesos a las conexiones entre las unidades de entrada y salida, de forma que la
adecuadas. Sin embargo, la investigación sobre las redes asociativas simples no tiene
mucho interés, ya que la mayoría de los problemas que se presentan en la realidad son
demasiado complejos para poder ser abordados por estos sistemas. Es preciso
esquemas posibles en el que ha de buscar es demasiado grande para que pueda ser
-
2 -
Las investigaciones sobre algoritmos de aprendizaje h a n venido
desarrollándose desde hace muchos años, obteniéndose pocos progresos. Sin embargo,
del conjunto de las unidades que la componen. El problema más importante de estos
unidades de la red. También hay que mencionar en su contra la diferencia que parece
gradiente y en encontrar la forma de organizar las redes multinivel para que sus
locales.
paralelos, y han de resolverse algunos problemas graves antes de que puedan ser
- 3 -
efectivamente aceptados como un nuevo estilo de computación. Entre las cuestiones más
calcula la red con ello?. Es necesario poder determinar qué es lo que la red debe
las unidades comunican a las demás valores muy afinados en cada una de las
que existe entre las neuronas del cerebro, por lo que es necesario buscar uno más
adecuado.
- ¿Cómo han de ser los pesos que codifican el conocimiento adquirido por
el sistema?. Algunas tareas de bajo nivel permiten que estos pesos sean ajustados por
automáticamente.
- 4 -
Todas estas objecciones van resolviéndose poco a poco, encontrándose
efectivos.
principales, así como sus ventajas y sus inconvenientes. Todas ellas poseen
características similares, pero sus prestaciones son muy diferentes para cada una de
las tareas que se les proponen. Se hace especial mención de una de estas
se estudian en detalle.
red paralela que es capaz de aprender las restricciones que caracterizan a un dominio
concreto mediante presentación de ejemplos extraidos del mismo. La red modifica los
pesos de sus conexiones para construir un modelo interno que produzca ejemplos con
la misma distribución de probabilidad que los que le han sido mostrados. Una vez
valores de las variables internas que han generado el ejemplo parcial, y utilizándolos
2.1. INTRODUCCIÓN
Artificial es capaz de simular algunas de las funciones mentales de alto nivel que los
seres humanos realizan con bastante facilidad. Sin embargo, todavía un computador
cerebro humano, una máquina de proceso paralelo, con los computadores de los que se
utilizada en Inteligencia Artificial, y que el cerebro humano posee, son los siguientes:
muy rápida y sin esfuerzo aparente. El fenómeno denominado sentido común, que
-
6 -
poseen todos los seres humanos, parece estar estrechamente relacionado con la
humanos superan a las de los computadores en la mayoría de los dominios. En todas las
lenguaje hablado o cualquier otro tipo de tarea de alto nivel, la operación clave es la
capacidad de localizar, entre muchos candidatos, el que mejor se ajusta al elemento que
debe ser identificado. Los humanos tenemos esa capacidad, e incluso podemos
contaminados con ruido. Los computadores, por el contrario, todavía no son capaces de
realizar localizaciones tan rápidas como las que cualquier persona puede hacer,
también es cierto que en muchos casos la información es tratada de una forma mucho
cada vez más complejas para conseguir reducir la extensión del espacio de búsqueda
sin embargo, una alternativa a este planteamiento, que consiste en resolver los
- 7 -
cantidades (del orden de millones) de procesadores sumamente simples para conseguir la
forma pasiva en una memoria esperando que la CPU acceda a consultarlo. Existen
topologías diversas. Cada una de las unidades almacena internamente muy poca
-8-
modificando una cantidad asociada con cada conexión, que se conoce como su "peso" o
convencionales celdas de memoria, es el motivo del nombre dado en general a todas las
simples sobre los datos, o enviar señales a las unidades del sistema a las que estén
mediante el uso de comandos por parte de un controlador externo que puede ser
también valorar muchas opciones a la vez. Esta capacidad se debe al hecho de que las
pueden funcionar en paralelo integrando todos los datos de entrada que reciben de
otras unidades.
cierto tipo de búsqueda "bruta" entre todas las unidades que componen la red,
el patrón de actividad (los valores de las unidades o los pesos de las conexiones). La
-9-
existencia de muchas conexiones representando muchas porciones pequeñas de
evidente. Este interés se basa en su capacidad para tener en cuenta a la vez gran
señal que se transmite entre los diferentes elementos de proceso. Fahlman propone
una clasificación de los sistemas en base a este concepto. La división contiene tres
clases:
Los sistemas que transmiten mensajes son los más complejos y a la vez los
sistemas conexionistas, ya que las unidades de proceso han de ser bastante complejas
y tener una capacidad de almacenamiento grande para poder conservar los mensajes
- 10 -
unidades que los componen. Esta arquitectura no parece ser un modelo muy acertado
del comportamiento interno del cerebro, por lo que su estudio no ha suscitado mucho
interés.
Los sistemas que transmiten marcadores son los más simples y también los
marcadores de un bit. Cada unidad tiene capacidad para almacenar unos cuantos
booleana (típicamente la operación OR) sobre los bits de marca que recibe de otras
unidades. En un sistema de este tipo las unidades están conectadas mediante uniones
hardware que son las encargadas de transmitir los marcadores. Estas uniones actúan
de hecho como líneas dedicadas, por lo que puede existir un gran tráfico de
marcadores en paralelo.
operaciones aritméticas sobre los valores que reciben de otras unidades de la red. Una
ventaja de estas arquitecturas es que nunca llegan a colapsarse, ya que si una unidad
obteniendo un solo valor, que es el que la unidad adopta como realmente recibido.
suponiendo siempre que existen suficientes unidades de proceso simples para poder
problema en un número de piezas igual al número de procesadores para que cada una de
- 11 -
En un sistema secuencial el tiempo necesario para realizar tareas como
número suficiente de celdas de este tipo para poder representar el conocimiento que
prometedores. Pese a este escaso número de investigadores, son muchos los tipos
diferentes de arquitecturas conexionistas que se han estudiado y con las que se han
-12-
2.3. REPRESENTACIONES DISTRIBUIDAS
se representa por una parte específica de la estructura interna de la red. Por ejemplo,
si el sistema tiene que trabajar con el concepto "elefante", le bastaría con activar la
unidad que lo representa para poder hacer uso de él. Este tipo de representación es
funcionar, el sistema pierde todo el conocimiento que ella contenía, y, por supuesto,
todas sus conexiones dejan de tener sentido. Este hecho es la causa de muchos
unidades estarán inactivas la mayor parte del tiempo, a no ser que se esté utilizando
local, sino que mantiene el conocimiento distribuido a lo largo del conjunto de las
esta interpretación del conocimiento con los hologramas, en los que, como es sabido,
-13-
puntos que la componen. La representación distribuida del conocimiento, al igual que
macroscópico del sistema. Esta propiedad, que hace que estas arquitecturas sean
que la estructura sea difícil o incluso imposible de entender por una persona que no
el sistema, incluso aquellas personas que lo conocen bien han de tener cuidado, ya que
"a mano" incluso para un problema sencillo y una red simple con un número pequeño
- 14 -
aprendizaje automático que evite el enorme trabajo que supone la modificación
manual de la estructura. La importancia del problema es tan grande que, de no existir tal
poco complejas sobre el conocimiento que había acumulado. Un sistema NETL puede
considerarse como una realización hardware de una red semántica. Una red semántica
es una estructura en forma de grafo en la que los nodos representan conceptos y los
arcos entre ellos representan las relaciones existentes entre los conceptos. Ambos,
nodos y arcos de la red, pueden estar etiquetados con identificativos de los conceptos
semántica.
unidad de proceso simple. Estas unidades tienen capacidad para almacenar algunos
marcadores de un bit y realizar operaciones booleanas sencillas sobre ellos. Los arcos
están conectadas a dos o más unidades que representan nodos. Las unidades que
representan a los arcos también pueden realizar operaciones booleanas sencillas sobre
-15-
Ser vivo
Necesita
Planta Oxígeno
Mamífero
Gris
Sam
"Elefante" ',
\
1
I
,
/
/
. -
unidad-arco Red de
"es un" conmutación
---
'
'
'
\
1
I
I
unidad-nodo . "
/
"Sam"
Bus compartido
Computador
de
control
Figura l(b). Hardware NETL correspondiente a "Sam es un elefante"
-16-
los marcadores, pero normalmente su actividad suele limitarse a pasar o transmitir
marcadores entre las unidades que representan nodos (unidades-nodo) a las que están
conectadas. Todas las unidades del sistema NETL (unidades que representan nodos y
Cada vez que se añade un hecho nuevo al sistema, éste debe ser
el nuevo hecho introducido. La capacidad que tienen las conexiones entre las
al mismo tiempo entre distintas conexiones. En los sistemas NETL físicos construidos
existe un cable conectando cada par de unidades que lo necesitan porque resultaría
conmutación que sea el encargado de conectar de forma directa las unidades cuando
que van más allá de las acciones que puede realizar una memoria asociativa simple.
permite que cualquier hecho conocido sobre un elemento de la red pueda ser aplicado
-
17 -
de sus arcos de tipo "es un" (estos arcos son utilizados en las redes semánticas para
marcadores entre las unidades de proceso simples. Por ejemplo, si se desea encontrar
cualquier unidad que represente un arco del tipo "es un" y tenga un nodo situado
debajo de él en la jerarquía con el marcador a 1, pase este valor al nodo que está
conectado con él por el otro lado (el situado por encima del anterior en la jerarquía).
estabilizada, todas aquellas unidades que la componen que tengan el marcador con
valor 1 son aquellas de las que la unidad original puede heredar alguna propiedad. En
este momento el controlador debe ordenar a todas las unidades que representan la
conexiones en una unidad, con lo que todas las unidades de la red NETL cuyo valor del
marcador sea igual a 2 son las que representan la característica buscada. En este
proceso pueden obtenerse bastantes unidades que verifiquen las condiciones en el caso
más general, o puede obtenerse una única unidad como solución o incluso ninguna. El
procedimiento seguido para obtener este valor constituye una secuencia de inferencia
presente en la red sin más que seguir el procedimiento descrito con asignaciones
muy eficiente intersección de conjuntos, los hace muy adecuados para ciertas tareas
- 18 -
de reconocimiento altamente específicas (aunque no excesivamente frecuentes en
problemas reales). Supóngase que se desea obtener toda la información que posee la
red sobre un elemento del que se conocen tres características determinadas. Esto es,
identificar todos los elementos con la primera característica y de igual forma otros
dos marcadores diferentes pueden identificar los elementos que poseen las
todas aquellas unidades de la red que posean los tres marcadores. De esta forma tan
del número de elementos de los conjuntos de los que se desea obtener la intersección.
reconocimiento.
puede observarse que resulta muy sólido en algunos aspectos, pero a la vez se muestra
bastante débil en otros. En el lado positivo hay que tener en cuenta que la red NETL
puede examinar a la vez todas las descripciones que conoce, sin necesidad de utilizar
correcta. También cabe destacar en el lado positivo que la red no necesita conocer
como entrada todas las características que identifican al o a los elementos buscados,
- 19 -
positivo hay que incluir además la propiedad de poder incorporar de forma inmediata
cualquier conocimiento nuevo como parte efectiva del proceso de reconocimiento que se
describió anteriormente. Por último, hay que añadir la gran sencillez de este tipo de
Como partes débiles de los sistemas NETL hay que señalar el tratamiento
atómico que confiere a cada dato, representándolo por una sola unidad sea cual sea la
complejidad inherente que éste tenga. Además sólo puede notar la existencia o
ausencia de cada dato individual, siendo incapaz de reflejar ningún tipo de situación
intermedia. En este aspecto, las redes NETL se comportan de forma similar a los
alteración de los datos. Por ejemplo, no son sistemas adecuados para la resolución de
conexionista excesivamente compleja. Sus unidades, tanto las que representan nodos
como las que representan arcos, son tan simples que no resultaría muy difícil integrar
varios miles de ellas en un solo chip. La causa principal que dificulta su realización
actual de la tecnología. No hay que olvidar, sin embrago, que un estudio realizado por
Fahlman demostró que la construcción de una máquina con estructura NETL costaría
sólo unas cuantas veces lo que cuesta la construcción de una memoria convencional
- 20 -
el problema parece ser solamente económico, por lo que cabe esperar que pueda ser
Los sistemas NETL son casi los más utilizados en sistemas reales, aunque
por Thinking Machines, por ejemplo, fue diseñada en parte como realización de una
tareas. La versión actual de esta máquina está compuesta por 64000 unidades de
ya que con tal número de unidades sería posible manejar la cantidad de conocimiento
suficiente para poder dotar al sistema de un cierto grado de sentido común. En este
-21-
realidad problemas en los que algunos de los datos apoyan de forma evidente una
determinada hipótesis, mientras que otros datos sólo sugieren una posibilidad. En
otros cuya aparición es importante sólo en un cierto grado. Los problemas reales
presentan tal variedad y complejidad, que no pueden ser adecuadamente resueltos por un
transmisión de valores, parecen adaptarse mejor a las exigencias que imponen los
conexión. Cada unidad de proceso del sistema calcula la suma de los pesos que recibe
con ella. Este tipo de arquitectura puede realizarse sobre hardware analógico o
analógico.
- 22 -
La red más simple de este tipo contendría sólo unidades de entrada
asignar los pesos de las conexiones "a mano", esta estructura es muy semejante a una
existe un algoritmo aplicable a esta red y tal que, dado un conjunto de vectores de
conjunto de pesos de las conexiones que hace posible que la red ajuste adecuadamente
mayoría de las tareas que resultan de interés no existe un conjunto de pesos adecuado
tratamiento que una red de dos niveles aplica a los datos de más bajo nivel,
independiente del resto. Es necesario, para poder resolver estos problemas incorporar
a la red uno o más niveles intermedios de unidades, que suelen denominarse unidades
izquierda. Este problema no puede ser resuelto por una red de dos niveles porque cada
-23-
combinaciones de todos los bits de entrada. Para poder manejar convenientemente esta
información hay que utilizar uno o más niveles de unidades escondidas, que puedan
de la salida adecuada.
posibles de estas unidades (de orden exponencial) es la más adecuada para poder
aplicable a este tipo de redes, por lo que se han ideado otro tipo de procedimientos y
línea, tratando de descubrir un método para conseguir averiguar cuáles eran las
tareas que necesitaban el uso de unidades escondidas para su realización y cuáles no.
Sus trabajos les llevaron a demostrar que un buen criterio de clasificación de tareas
conectarse a cada una de las unidades escondidas. Esta medida, según fue demostrado
por ellos, determina el orden de los resultados estadísticos que pueden ser extraidos
del sistema. Sin embargo, sus descubrimientos se detuvieron aquí, sin haber
argumentaba la escasa efectividad de las redes para las que sí existía algoritmo de
-24-
como herramientas de trabajo, se ha despertado de nuevo el interés por este tipo de
Las redes con estructura en tres niveles estudiadas por Minsky y Papert no
tienen libertad para elegir las representaciones internas porque los pesos entre las
conexiones de las unidades de entrada y las unidades escondidas del nivel intermedio
"aprendan", la red podrá determinar por sí misma lo que deben representar las
encontrar por sí mismo las representaciones internas adecuadas. Por otra parte, el
interesantes son:
-25-
2.6.1. RETROPROPAGACIÓN DEL GRADIENTE
realiza dos pasadas para cada vector de entrada presentado a la red. El paso hacia
dejando que la actividad discurra desde las unidades de entrada a través de los
diferentes niveles de la red hasta producir un vector de salida. En el paso hacia atrás
se propaga hacia atrás el valor de la derivada del error (se considera como error la
diferencia entre el vector de salida obtenido y el vector de salida que se debía haber
obtenido realmente). Este procedimiento permite que la red calcule, para cada uno de
sus pesos, el gradiente del error respecto a dicho peso, y modifique los valores en la
dirección adecuada para producir una disminución del valor del error. De esta forma
visibles. Ha sido utilizado con éxito para problemas como el paso de información a través
de canales con ancho de banda muy pequeño o la obtención de filtros óptimos para
entrenamiento d e una red que trabaja con Retropropagación del gradiente para
-26-
secuencia de letras, en vectores de salida representando su esquema fonético. Los
Los ejemplos utilizados en las pruebas de este sistema demostraron que la red era
estudiado por Geoffrey Hinton. Él trabajó con una red compuesta por cinco niveles de
Penélope), etc. Los vectores de entrada presentados al sistema representaban los dos
fases del entrenamiento los vectores de entrada no tenían excesivo sentido para la
red, puede decirse que los consideraba como símbolos arbitrarios. Sin embargo, tras
adecuadamente triadas en las que no había sido entrenado. Hinton observó también
mediante recopilación del conjunto de triadas que activaban cada una de las unidades
verse, considerado localmente, como un simple proceso de ajuste de los pesos de las
ésta realiza aprendizaje estructural, creando términos nuevos para poder representar
- 27 -
regularidades en el dominio del problema. Este ejemplo puede servir también para
representación interna de la red sobre cada una de las personas reflejadas en los
escondidas.
posibilidades de las redes conexionistas han suscitado gran interés, ya que pueden
resolver muchas de las limitaciones que presentaban los autómatas de estado finito.
El problema más grave lo constituía el gran número de nodos que se necesitan para
objeto de maximizar una señal crítica que depende del vector de salida y es, a su vez,
-28-
recibida por cada una de las unidades que componen la red. El método resulta mucho
pasadas diferentes para realizar el aprendizaje, por lo que parece acercarse más al
consideran las tareas que se presentan con ejemplos reales. La mayoría de los
clasificación.
Para estas tareas es necesaria un red de tipo conexionista, pero que sea
mejor solución que las cumpla. Se puede permitir que el sistema no cumpla la
totalidad de las restricciones para que pueda explorar todas las posibilidades
encontrando la verdadera solución óptima. Una buena forma de garantizar que la red,
-29-
demostrar que existe una determinada función de costo cuyo valor disminuye con
cada modificación de los pesos de las conexiones. Hummel y Zucker [Hummel, 1983]
demostraron la existencia de tal función para el caso de redes que transmiten valores
y cuyas conexiones son simétricas, es decir, el peso es el mismo sea cual sea la
descubrió una función de coste, que denominó energía, aplicable a redes con unidades
capítulos.
diferentes, que van desde el área del cálculo numérico hasta las más complejas tareas
adecuadas.
mismo diseñó utilizándola para resolver el conocido "Problema del Viajante". Algunos
autores han utilizado las redes paralelas de este tipo para resolver problemas
- 30 -
En definitiva, las arquitecturas conexionistas han demostrado su eficacia
en dominios muy diferentes, en los que son necesarias diferentes características. Este
hecho ha provocado la enorme popularidad que han adquirido estos sistemas en los
últimos años.
-
31 -
3. LA MÁQUINA DH BOLTZMANN
3.1. INTRODUCCIÓN
abandonada por sus escasos resultados a finales de los años sesenta. La publicación del
libro de Minsky y Papert [Minsky, 1969] sobre el Perceptron fue la última registrada
sobre este tema. Sin embargo, no se han abandonado los estudios de la estructura del
cerebro humano, con los que se intenta descubrir cuál es el mecanismo que hace de él un
en los principios de las redes conexionistas, pero cuya eficiencia supera grandemente
la de otros sistemas del mismo tipo presentados hasta el momento. Ellos han llamado
-32-
mecánica estadística. Más tarde podrá comprobarse que el nombre elegido se debe a la
trata de una red neuronal capaz de realizar aprendizaje tras una fase de
entrenamiento.
DE BOLTZMANN
específicas mediante "uniones" bidireccionales. Todas las unidades de una red son
cada instante, una unidad puede encontrarse en uno de sus dos posibles estados,
"activa" (on) o "inactiva" (off). El estado de una unidad cualquiera dentro de la red se
-33-
determina en función de los estados de las otras unidades conectadas a ella y del
Este valor es el mismo en las dos direcciones de la conexión, es decir, las uniones
entre las unidades de la red son simétricas (esta restricción, no cumplida por las
conexiones neuronales del cerebro humano, es bastante fuerte). Los pesos de las
Boltzmann.
un sistema conexionista que transmite valores, ya que las conexiones entre las
uniones no transmiten ni marcadores que puedan ser almacenados en las unidades, ni,
por supuesto ningún tipo de mensajes, ya sean simples o complejos. Las unidades que
componen una Máquina de Boltzmann sólo son capaces de realizar la suma aritmética
-34-
de los valores que reciben de otras unidades por medio de las conexiones, por lo que se
Boltzmann puede ser la que muestra la figura 2. Como puede apreciarse en la figura, no
valor umbral para pasar del estado inactivo al estado activo. Es decir, la unidad
estará en estado activo si la suma de los pesos de sus uniones con otras unidades
activas supera el valor umbral. En caso de que la suma no supere dicho valor, la
oscilación del umbral vendría dada por el valor de la suma de los pesos; cuanto mayor
mismo que decir que ha disminuido el valor del umbral. De esta forma no puede
asegurarse que la misma entrada (los mismos pesos y las mismas unidades vecinas
con certeza el comportamiento de las neuronas del cerebro humano, sí parece estar
Para modelizar el mundo real con este sistema, el significado que toma
-35-
- Una unidad en estado activo o inactivo significa que el sistema
débil entre dos hipótesis. Si el valor del peso es positivo significa que las
que la tercera sea aceptada aumenta. Por el contrario, si el valor del peso
simultáneamente.
convención de considerar los estados de las unidades como cifras binarias. Es decir, el
estado activo se representa con el valor 1, y el estado inactivo con el valor O. De esta
forma, las combinaciones de los estados de las unidades de la red pueden codificarse
como números binarios o incluso como vectores del mismo tipo, permitiendo un
como unidades escondidas, pertenecientes a la "caja negra". Todas esta unidades, sin
embargo, son del mismo tipo y se comportan de la misma forma. Con este
-36-
planteamiento la máquina se parece más a un mecanismo con el que se puede t rabajar y
sistema descrito en el año 1982 por J.J. Hopfield [Hopfield, 1982]. En este sistema
Hopfield asignaba a cada estado global de la red un valor numérico único, al que
ideada por Hinton, permite también asignar a los estados globales de la Máquina de
Boltzmann un valor de energía. Este valor depende de los estados de las unidades y de los
E= - ..s. s. +
I I J ¡ ¡
i i
siendo:
activa, O si es inactiva.
0¡ : umbral de la unidad i.
cumple las restricciones implícitas en el dominio del problema (las restricciones están
representadas por la topología de la red y los pesos de las uniones que se hayan
establecido).
- 37 -
Así pues, el funcionamiento de la red ante una determinada asignación de
estructura interna (estados de las unidades y pesos de las conexiones), de forma que la
energía global de la red se minimice. Para ello, cada unidad elemental debe ser capaz
red.
la que el valor de la energía de la red es mínimo. Este mínimo no tiene por qué ser
encontrar una combinación de valores que constituyan un mínimo local del valor de la
dos estados posibles, aquél que produzca el menor valor de la energía global, dado el
valor del resto de las hipótesis (el resto de las unidades de la red) en ese momento. Si
este proceso de decisión de estado es realizado por las unidades de la red de forma
Dado que las conexiones entre las unidades son simétricas, puede decirse
siguiente relación:
/Ek = 2 wki8i - 8k
i
- 38 -
donde los símbolos tienen el mismo significado que en la fórmula de la
Así pues, del estudio de esta expresión puede concluirse la sencilla regla
también demostrado que el uso de esta regla consigue minimizar la energía global de
una unidad a la energía global, ésta debe adoptar el estado activo si la entrada que
recibe del resto de las unidades (suma de los pesos de sus uniones con otras unidades
En este momento puede hacerse una consideración sobre los valores 8¡,
correspondientes a los umbrales de las unidades, que han aparecido en las ecuaciones
anteriores. Estos valores pueden ser eliminados debido al hecho de que el efecto
efecto de una unión con peso -8¡ entre la unidad i y una unidad especial que, por
definición, se encuentre siempre en estado activo. Esta unidad especial, que puede
forma que se tratan las uniones entre nodos, evitando así añadir un término al
sumatorio en las fórmulas. El valor -8¡ que se introduce como el peso de la unión
Boltzmann, las ecuaciones que rigen la energía global de la red y el hueco de energía de
-39-
E= - . . S. S .
IJ 1 J
i
modelizador del cerebro humano, y capaz de cierto tipo de aprendizaje. Las tareas en
las que es necesario satisfacer restricciones (aunque éstas sean en su mayoría débiles)
necesitan escapar de alguna manera de los mínimos locales, que significan soluciones
equilibrio que constituyen mínimos locales hasta encontrar el mínimo global, es hacer
posible que la red pueda modificar su estado hacia una configuración de mayor
estados de menor energía, pero nunca podía ocurrir lo contrario. De esta forma, si se
llega a un estado que es un mínimo local, la red no es capaz de salir de él porque para
- 40 -
1
pk
=
( 1 +e -r)
siendo:
{\ (( ·
1
(
··
f I
entender el por qué de este comportamiento, puede utilizarse una analogía con un
sistema físico muy sencillo. Supóngase una bola, por ejemplo metálica, situada sobre
-
41 -
una superficie ondulada como la de la figura 3. En ella existen diferentes lugares con
altura pequeña (mínimos), pero sólo uno de ellos es el que se encuentra más bajo que los
mínimo global. Una vez situada en este punto, la bola no puede salir de él por sí
misma, por lo que nunca será capaz de alcanzar el mínimo global. Sin embargo, si se
más probabilidad de conseguir saltar las barreras que se interponen entre su posición
proporcional a la diferencia entre la energía de las dos posiciones. Esta propiedad fue
utilizada por Scott Kirpatrick [Kirpatrick, 1983] de IBM, con el nombre de "ruido
térmico" para conseguir evitar los mínimos locales en redes del tipo de las que se está
tratando.
sólo es necesario modificar la regla de decisión del estado de las unidades. Éstas
deben calcular la suma de los pesos de sus conexiones con otras unidades activas de la
misma forma que antes, pero en vez de activarse siempre que este valor es mayor que
anteriormente. Esta regla de decisión es aplicable a una partícula con dos estados de
-42-
conectadas entre sí y se sometiera a alta temperatura dejándolo enfriar
expresión es:
siendo:
a.
- 43 -
- La diferencia de los logaritmos de las probabilidades de dos
estados de baja energía, mientras que con valores de T altos la tendencia es bastante
mayor rapidez que si es baja, situación en la que se puede tardar mucho tie mpo en
diferentes estados por los que va pasando la red hasta estabilizarse. Este proceso se
puede considerarse un buen mínimo para el nivel más general y tosco de la estructura
refleja la estructura del entorno, pero de forma muy general y poco afinada. A
medida que disminuye la temperatura, la red se hace más sensible a las diferencias de
los que han de satisfacerse una gran cantidad de restricciones débiles. Sin embargo, el
- 44 -
procedimiento fracasa en los casos en los que la solución se encuentra en un mínimo
DE BOLTZMANN
ha de utilizar para resolver problemas. Este hecho plantea una importante cuestión
¿cómo se representan en una Máquina de Boltzmann los conceptos para los que
M áquina de Boltzmann.
que se fundamenta el algoritmo hace posible manejar todos los pesos de las
-45-
4. APRENDIZAJE
4.1. INTRODUCCIÓN
parte del estudio del comportamiento inteligente puede ser caracterizado como el
Hay poca distinción formal entre aprendizaje y memoria. Los estudios del
Claramente ambos están tan interrelacionados que el estudio de uno debe estar ligado
las relaciones existentes entre las situaciones del entorno, las acciones del ser
Algunos estudios han demostrado que cuando una persona aprende algo se
establecen nuevas vías en la red nerviosa del cerebro. Entre las ramificaciones
- 46 -
medida que se aprenden cosas se forman otras conexiones, permitiendo la sinapsis y
creando así vías para la transmisión de información. Por lo tanto, puede decirse que el
situaciones en las que su estructura modeliza la del entorno que se les presenta.
dominio de aplicación. Si se retoma la idea de la máquina como una caja negra entre
unas unidades externas de entrada y salida, es fácil imaginar cómo este mecanismo
convencionales.
fijan también los correspondientes valores de las unidades de salida. Una vez hecho
repite este proceso con diferentes patrones de entrada y sus respectivos valores de
salida, finalmente la máquina habrá modificado sus valores internos capturando las
presenta un nuevo patrón en las unidades de entrada y se deja que se estabilice, las
-47-
"entrenada" para "aprender" a obtener las salidas adecuadas para los patrones que se le
valores de los pesos que tienen asignadas las uniones entre unidades. La dificultad se
algorit mos d e éxito probado con redes simples. E l argu mento m ás utilizado e n contra
que una red sea capaz de realizar tareas interesantes debe contener elementos no
convergencia, tampoco pudo ser generalizado para redes en las que la tarea no
especificase directamente la forma en la que deben ser utilizadas cada una de las
unidades.
- 48 -
La formulación de la Máquina de Boltzmann resuelve el problema de
presentado, y dejando que la red evolucione hasta alcanzar el equilibrio térmico a una
libremente sin ningún valor fijado en sus unidades de entrada y salida, la relación
SLnP
sW..
ª
= .
T
[ sª - p
'
!
!J
Sª
donde:
! J
probabilidades Pa requeridas para cada estado global a, existe un modo directo de que
probabilidades. Si bien es cierto que existe este método, también es cierto que no es
posible asegurar que tal conjunto de pesos exista, contrariedad que es necesario tener
ya que han de darse de antemano las probabilidades necesarias para los estados
globales completos. Es decir, que el entorno exterior al sistema es el que decide qué
no aparecen en estos casos sino en los casos en los que el entorno cont i e n e
49 -
restricciones implícitas de alto nivel. En tales casos, la red ha de elegir las
representaciones internas adecuadas para poder expresar las restricciones del entorno
interesante.
vacío, de unidades "escondidas" o no visibles. Las unidades visibles son las que actúan
entrenamiento, los estados de estas unidades son fijados desde el exterior. Las
salida. Es decir, si existen restricciones de alto nivel en la estructura del entorno que
Considerando los dos posibles estados de cada unidad con los valores
este momento.
de los vectores de entrada que se asigna desde el exterior se mantiene fijo por el
tiempo necesario para permitir que la red alcance la situación de equilibrio térmico.
- 50 -
Además, cualquier estructura que exista en las secuencia de vectores de entrada que
red. Si la red consigue ajustar su estructura interna de manera que consiga la misma
n
distribución de probabilidad sobre los 2 estados posibles cuando se la deja
evolucionar libremente hasta la situación de equilibrio térmico con todas las unidades
visibles no fijadas (sin vector de entrada del exterior), entonces puede decirse que la
su estructura.
a la insuficiencia del número de pesos y de sesgos entre las unidades visibles y las no
n
visibles para poder representar las 2 probabilidades de los estados de las unidades
de la red son capaces de capturar las regularidades que existen en el entorno, puede
conseguirse una buena aproximación del sistema a las probabilidades reales del
entorno.
P(V )
G= ) P(V ) Ln -ª
- ª P' (V )
a a
donde:
- 51 -
P(V0) : probabilidad de que las unidades visibles de la red se
entre la distribución dada por P' (V0) y la dada por P(V0). G vale cero cuando las
P '(V 0) depende de los pesos de las uniones entre las unidades, por lo tanto, el valor de
G puede variarse modificando los valores de los pesos dentro de la red. Para obtener
derivada parcial de G respecto a cada uno de los pesos. Esta expresión, que es muy
complicada en la mayoría de las redes de este tipo, resulta muy sencilla de calcular
las relaciones existentes entre los pesos y las probabilidades de los estados en la
vienen determinadas por las energías de los estados, y éstas a su vez vienen
determinadas por los pesos de las uniones, se puede obtener fácilmente la expresión
oG
-
= -
ow . .
IJ
-52-
donde:
PiJ : probabilidad media de que las unidades i y j estén activas cuando las
entorno.
la red.
para minimizar G. Como puede verse, G depende de los valores PiJ y PiJ cuando la red
cada peso en una cantidad proporcional a la diferencia entre los valores de las dos
Esta es, pues, la modificación que debe realizarse en los pesos de las
diferencia entre el modelo conseguido por la red y el modelo real del entorno. Pese a
lo que pueda pensarse, hay que observar que la modificación de los pesos, según esta
información global de la red. El peso de una unión se modifica dependiendo sólo de los
- 53 -
valores de las dos unidades que conecta, y sin embargo, la modificación produce una
Incluso con esta regla, sigue estando presente el problema de los mínimos
red contiene unidades escondidas, las diferentes formas de utilizar estas unidades
probabilidad de los vectores del entorno pueden producir mínimos locales, con lo que
no se ha resuelto el problema.
haya conseguido el valor mínimo de G, la red habrá captado, tanto como le haya sido
pesos de las uniones que puede ser capaz de generar el conjunto de vectores del
Fase 1
- 54 -
la. Asignar el patrón de entrenamiento a las unidades de
equilibrio.
Fase 2
Estas dos fases deben repetirse tantas veces como sea necesario hasta que se
consiga que la red obtenga los valores adecuados de las unidades de salida en la fase 2.
Es decir, las fases se repiten hasta que la red es capaz de dar la respuesta correcta
fase REM del sueño de los mamíferos. En esta fase se registra un estado de
-55-
excitación aleatoria en el cerebro, que le permite funcionar libremente,
valores de los parámetros que intervienen en su formulación. Entre ellos hay que
minimización de G. También tiene gran importancia el valor de los tiempos en los que
se estiman los valores de las probabilidades Pij y p 'i· La elección adecuada de estos
permitan determinarlos. Por este motivo, los valores son elegidos en base a resultados
Pij y p ii, ya que puede introducirse algún tipo de ruido en estas estimaciones,
llevando a pasos erróneos en la minimización del valor de G. Este efecto causado por el
aprendizaje. Debe hacerse disminuir cada peso de forma continua hacia cero con una
velocidad proporcional al valor absoluto del peso. Este proceso hace que los pesos
la que la velocidad de decrecimiento del valor de los pesos se equilibra con el valor de
-56-
la derivada parcial de G respecto a los pesos. De esta forma, el valor absoluto de cada
imposibilita a la red para conseguir mínimos de energía muy profundos. Esto significa
que la red comete una gran cantidad de errores graves en los casos en los que el·
muy diferentes. Además, en tales casos los errores son imposibles de evitar. Si no se
desea eliminar este proceso de disminución de los pesos, puede conseguirse que la red
(T) más bajos. Si bien con ello se consiguen menos errores en la modelización, el
otro problema; el caso en que sólo son válidas cierto nú mero de combinaciones de las
este caso hay que suponer que los vectores que no se van a presentar tienen
Boltzmann es fácil comprobar que la única forma de que se asegure que ciertos
estados nunca van a darse, es que dichos estados tengan una energía infinitamente
grande. También es fácil darse cuenta de que para que un estado tenga energía
infinitamente grande, necesita que los valores de los pesos de las uniones sean
problemas, por lo que hay que tratar de evitar que aparezcan. Esto se ha conseguido
- 57 -
valor de alguno de sus elementos, pero la probabilidad de que esto ocurra es pequeña.
Si se mantiene el ruido en ciertos límites, los vectores serán los correctos la mayoría
de las veces, pero sin embargo, es posible que aparezca cualquier combinación de
sólo en problemas complejos, sino que ya existe con problemas sumamente sencillos.
curvatura. Cada pequeño paso del algoritmo hace interminable la llegada al mínimo
situado en una garganta, pero si se utilizan pasos muy grandes la divergencia con la
superficie real es demasiado grande para que el proceso pueda considerarse válido.
permita aumentar la velocidad del aprendizaje. Sin embargo, parece que sólo una
- 58 -
mejora no sería suficiente, siendo necesario modificar de alguna forma los algoritmos
puedan aprender de forma independiente. Con ello, cada módulo resultaría más rápido
-59-
5. EJEMPLO DE APRENDIZAJE EN UNA MÁQUINA DE BOLTZMANN
recursiva de comunicación de información entre los componentes de una red paralela. Los
continuación. Dos grupos de unidades visibles representan dos sistemas separados que
desean comunicarse sus estados. Llamemos a los dos conjuntos V 1 y V2. Cada uno de
número de unidades de los conjuntos Vi. De esta forma, las unidades no visibles
información.
-60-
Para simplificar el problema se considera que en cada instante sólo puede
estar activa una de las unidades de las v de cada grupo. Con esta restricción se
v
reduce el número de estados posibles para cada conjunto, de 2 a v. Esta reducción es
asíncrona y simultánea.
log2v) y para otros casos en los que la relación se satisfacía. En todos ellos se utilizó
aparición era equiprobable. Cada uno de los vectores especificaba un estado en el que
demás inactivas.
visibles estuvieran completamente conectadas entre sí y con las unidades de H, pero las
El tercer número es reiterativo, ya que los dos grupos de unidades visibles tienen el
mismo número de unidades por definición del problema, pero se incluye por la
-61 -
casos se simularon codificadores de mayor magnitud, hasta el codificador de 40-10-
40.
muestra en la figura 4.
funcionamiento:
los vectores "ruidosos" para evitar valores muy grandes de los pesos,
v
ya que no se utilizan los 2 posibles estados de entrada. Los
-62-
0.15, y cada bit inactivo era convertido en activo con una
probabilidad de 0.05.
con Pij•
diferencia (i
-
p i ).
todas las unidades no visibles tomaban sus estados de forma aleatoria con igual
temperatura hasta el valor infinito). Después se dejó evolucionar el sistema dos veces
con T=20, dos veces con T=15, dos veces con T=12 y cuatro veces con T=lO. Tras este
comienza con todos los valores de los pesos iguales a cero (situación inicial de la red),
positivos en los pesos de sus conexiones con algunas de las unidades visibles,
-63-
observándose una clara tendencia a mantener simetría entre los signos y las
magnitudes de una conexión con una unidad de V 1 y con la correspondiente de V2. Esta
fase term ina cuando todas las unidades no visibles tienen pesos significativos en sus
conexiones con cada una de las unidades de V1, y pesos análogos en cada una de sus
aprendizaje resuelve los conflictos planteados y consigue llegar al valor del mínimo
global.
- 64 -
El primer método de comunicación parte de la codificación de la
forma adecuada para obtener la pronunciación de las palabras que componen la frase.
Para poder utilizar este método la red debe disponer de un conjunto de líneas de
sistema de habla. Este método presenta los siguientes problemas, que fueron descritos
líneas de comunicación.
represente.
cada uno de los conceptos que han de ser comunicados entre los dos sistemas. El
del sistema de habla por medio de conexiones únicas y dedicadas para estos
necesarias entre los conceptos y poder establecer nuevas conexiones a medida que se
adquieren nuevos conceptos. Estas conexiones no necesitan ser muy complejas, ya que
-65-
sólo han de transportar información muy simple de carácter no simbólico, como por
los dos métodos anteriores. Sus unidades de proceso son pequeñas y sus conexiones
aprendizaje bien puede ser el utilizado por el cerebro humano. También permite, sin
comunicación como requiere el primer método. Puede decirse incluso que la Máquina
- 66 -
6. COMPORTAMIENTO DE LOS SISTEMAS CONEXIONISTAS
6.1. INTRODUCCIÓN
diferentes, más cercanas a la estructura del cerebro humano. Así es como se llegó al
estudio de los sistemas masivamente paralelos. Estos sistemas, con su gran potencia
ellos.
-67-
6.2. INTERSECCIÓN DE CONJUNTOS
En las redes paralelas que transmiten marcadores, como las redes NETL,
una vez que se han identificado con marcadores diferentes los miembros de cada
conjunto. En las redes que transmiten valores la operación es también muy simple y
rápida. En estos sistemas se marcan los elementos de cada conjunto con una unidad de
encuentre por encima del umbral determinado por la suma de las activaciones
- 68 -
6.3. CIERRE TRANSITIVO
cierre de las relaciones transitivas que contienen. Este es el caso, por ejemplo, de las
relaciones del tipo "es un" de las redes semánticas, que son relaciones transitivas y cuyo
resultado del cierre mayor es el tiempo que se tarda en calcularlo. En las redes que
cadena más larga de relaciones que sea necesario seguir. Es decir, el tiempo es el
mismo que en un sistema secuencial si las relaciones forman una única y larga
cadena. En el caso en que las relaciones estén organizadas en forma de árbol con
muchas ramas, pero cortas, el tiempo invertido por la red paralela es mucho menor.
Las redes que transmiten valores obtienen un rendimiento similar al de las redes de
transmisión de marcadores.
esta operación, y la realiza de una forma bastante oscura. El cierre de la relación "es
un", por ejemplo, puede realizarse haciendo que el patrón de actividad de un elemento
incluya los patrones de todos los elementos situados por encima de él en la jerarquía.
Si se pone en funcionamiento la red con una parte de ese patrón y se deja que lo
-69-
conocimiento altamente interrelacionado. Además, el procedimiento descrito no
"mayor que".
carácter particular.
momento determinado. Una máquina secuencial que utilice una base de conocimiento
de este tipo debe contrastar la pertenencia de cada hecho con todas las particiones
cada una de las particiones consume una gran cantidad de tiempo, siendo proporcional
al tamaño de las m ismas. Los sistemas que transm iten marcadores facilitan este
- 70 -
forma todas las aserciones asociadas con tales contextos se encuentran activas,
de forma gradual.
problemas en los que los datos son discretos, no presentan distorsión causada por el
ruido y todos los miembros de una clase poseen todas las características necesarias
pretender que este ajuste sea perfecto. Tampoco todas las características observadas
son de la misma naturaleza, algunas tienen un alto nivel de confianza, mientras que
imperfectos de este tipo, al contrario que las que transmiten valores, que resultan
ideales para esta tarea. Su buena disposición se debe a la posibilidad de que cada
posee el valor de activación mayor entre todos los que componen la red.
-
71 -
Evidentemente, que su valor sea el mayor no asegura que sea el que se ajusta
perfectamente, pero sí que es el que reúne más semejanzas de todos los de la red. La
que discurrían desde abajo hacia arriba; se tomaban los datos y se trataba de
identificar mediante búsqueda el elemento que los posee todos o al menos una buena
parte de ellos. En el reconocimiento real, como el que realizamos los seres humanos,
Boltzmann, por lo que ésta parece ser el mecanismo más adecuado para tareas de
-72-
La l i s t a de t areas c o m pu t a c ionales ese nc i al e s p a r a u n s i st e m a
"inteligente" es todavía más larga, pero las presentadas son las más relevantes de
para la totalidad de las tareas, pero cada una por separado funciona muy bien en
alguna de ellas. Del análisis realizado es posible deducir algunos de los objetivos que
solo sistema las características más relevantes de cada una de las redes
individualmente.
-73-
7. SIMULACIÓN DE LA MÁQUINA DE BOLTZMANN EN UN COMPUTADOR LISP
7 l INTRODUCCIÓN
. .
es la de construir una herramienta que permita experimentar con sistemas del tipo
prometedora de todas ellas. Las investigaciones sobre su funciona miento son muy
-74-
funcionamiento probabilístico no ha sido programado. Sin embargo, el programa es lo
sencilla.
tratado de dar al programa un enfoque en esta línea. Por ello se ha utilizado, tanto en
Informática. Así pues se ha usado para la construcción del programa una máquina de
Inteligencia Artificial (máquina Lisp) y una de las herramientas de las que se dispone.
del programa.
sobre la mayor parte de las máquinas Lisp construidas hasta el momento. Este trabajo en
- 75 -
'.2. ESRUCTURA DE LA RED
dentro de una base de conocimiento de KEE. Es decir, los elementos principales son dos
estructura de las conexiones entre las unidades de proceso. Los elementos principales de
NODOS
-76-
intermedias no pueden ser modificadas más que por el funcionamiento
como uno de sus componentes ese nodo. No tiene valor por omisión.
obtenido tras la suma de los valores de las unidades activas a las que está
UNONES
conexión.
conexión.
y las UNIONES. Esta unidad contiene un slot básico, que se deno m ina DELTA y
nú mero real con valor 0.1 por omisión. El resto de los slots que componen la unidad
RED se utilizan para diferentes misiones dentro del sistema, y serán presentados más
adelante.
- 77 -
UNIONES
RED
<
NODOS
principales.
cada red concreta. Es decir, las unidades que compongan la red se instalan como
miembros de la unidad NODOS, que está definida como una clase KEE. De la misma
forma se instalan como miembros de la clase UNIONES las que existan entre cada par
de unidades de la red. Esta tarea se puede realizar de una forma muy simple mediante
más adelante.
valor activo. Se utiliza para resolver un problema de redondeo en las sumas que
presenta la aritmética de KEE. Este problema causaba pequeños errores en los slots
método que se encarga de obtener la cifra correcta cada vez que se actualiza el valor de
otros slots cuyo contenido tiene que ver con la ejecución del algoritmo o con el
interface de creación de la red. La mayor parte de estos slots son métodos, y algunos de
- 78 -
7 3 ALGORITMO DB APRBNDIZAJB
. .
Como ya se ha explicado es un algoritmo iterativo que consta de dos fases distintas que
se repiten tantas veces como sea necesario hasta que la red consigue por sí misma
proporciona KEE. Esta herramienta posee su propio lenguaje de reglas con el que se
sus slots o de sus facetas. Con este lenguaje, que se llama TellAndAsk pueden
base de conocimiento de KEE. Las reglas tienen la estructura típica, con una parte
izquierda y una parte derecha, con la particularidad de que KEE distingue dos tipos de
partes derechas de las reglas. Uno de ellos está encabezado por la partícula THEN, y
debe contener una expresión del lenguaje TellAndAsk; el segundo tipo va encabezado
que utiliza KEE para manejar sus estructuras. El primer tipo de parte derecha,
encabezado por THEN, se utiliza para realizar aserciones sobre hechos de la base de
conocimiento. El segundo tipo se utiliza para realizar acciones más complejas, que
-79-
( THE CONEXIONES OF ? NODO IS ? CON ) ANO
Como puede verse las reglas presentan un formato muy similar al lenguaje
natural inglés. En este ejemplo puede verse cómo se pueden utilizar variables no
asignadas dentro de las reglas. Todas las palabras que comienzan por "?" son variables
que no tienen ningún valor cuando se empieza a ejecutar la regla. El sistema busca en
la base de conocimiento los valores que hacen cierta la expresión y ejecuta la regla
Las reglas pueden organizarse en forma jerárquica igual que las unidades, lo
que confiere al sistema una gran facilidad para estructurar el conocimiento que posee.
nom bre ALGORITMO contenido en un slot de la unidad RED. Este método se encarga
una de las fases del algoritmo. La secuencialidad inherente al algoritmo hace que su
- 80-
-
/ R Q 1 0 J J . A T -----R . A T
A l A . A T - ---R . A T
I
lIA CO - ---
I
/ R A
J J dt ' -
- - -R J S A 1.1
/
-
·R TO
\
•
R O A J JAS t .
\l. A ( R G A . V A .AE 1 - - - - - R . V A A1
-
,
-R - . R J J.A2• 1
,: ' \
AJ l G A C J A 2. { -
• • ·R.VA C / ,
-
• ·RJ J J A K Z.2
\
\
·A G A S . A 2 - . f J M
R Q AJ J A KZ • : -
• • •1 A
' ' · A GA.V A A2 - --- -A.VA A 2
siguientes aserciones, que como podrá comprobarse es una ejecución de las diferentes
Como se ve, el método sólo realiza un recorrido sobre las dos fases del
-81 -
necesario volver a ejecutar las dos fases de nuevo porque el vector de salida no era el
deseado. Para hacer esto es neceario un método que, esquemáticamente, debe hacer:
También los instala como los verdaderos valores de las unidades del
INTERMEDIO).
obtener las salidas adecuadas. El comportamiento de las unidades y los pesos de las
base de conocimiento un panel de imágenes. Este panel contiene los estados de todos
los elementos de la red representados en pequeñas ventanas, una para cada elemento,
-82-
ya sea peso o unidad. Cada una de estas pequeñas ventanas se actualiza de forma
automática cuando se modifica el valor del elemento que representa. De esta forma se
forma inmediata. Estos son pequeñas ventanas situadas en la pantalla, que fuerzan la
ejecución del método asociado a ellas cuando son seleccionadas mediante el botón
izquierdo del ratón. Se utilizan para evitar la tediosa labor de escribir en el ejecutivo
actuadores que se han utilizado son tres; el primero dispara la ejecución del algoritmo
se encuentra en uno de los slots de la unidad RED y sirve para inicializar todos los
elementos de la red. Este método es necesario para poder regresar al estado inicial de
forma sencilla y rápida, sin tener que modificar los valores de las unidades y de los
pesos de las conexiones uno por uno. El tercero de los actuadores se utiliza para
comenzar la ejecución del interface que facilita la creación de los elementos de una
red concreta.
aparecen en la pantalla mediante los botones del ratón y los menús que para ello
partes, unidades, slots, métodos, reglas y demás componentes del programa por
-83-
considerar que se encuentra suficientemente documentado (facilidad que está
de contener gran cantidad de unidades de proceso para que puedan ser utilizadas en
necesario crear uno a uno todos los elementos de la red (nodos y uniones) y asignarles
los valores que han de tener (pesos, umbrales, estados, etc.). Si se desea construir una
red con gran cantidad de unidades de proceso, el trabajo de creación de la red puede
ser muy largo y tedioso. Aunque la herramienta utilizada para la realización del
bastante más a fondo el funcionamiento del sistema y la estructura del programa para
poder crear la red a partir de los menús de uso de las bases de conocimiento de KEE.
considerarse como tal estrictamente hablando, ya que, al igual que el resto de las
partes integrantes del programa, está incluido en la estructura global, sin que pueda
- 84 -
ser extraido como una porción independiente. Su función es la de perm itir la creación de
Para crear una red con la estructura de la Máquina de Boltzmann, hay que
especificar todas las unidades que van a formar parte de ella, y para éstas los valores
concretos de sus slots principales. De igual forma hay que hacer con las uniones entre
las diferentes unidades, que también necesitan que se especifiquen algunos de los
aparece un menú de operaciones que pueden realizarse. Las operaciones posibles son
las siguientes:
- CREAR NODOS
- CREAR UNIONES
- SUPRIMIR NODOS
- SUPRIMIR UNIONES
El menú posee una tercera opción, FIN, que se utiliza para terminar la
programa solicita información sobre los valores de los slots principales de las
unidades que se desee crear, o pide el nombre de la unidad que se desea suprimir de la
un menú en la pantalla. Otros, por el contrario, deben ser escritos por el usuario por
-85-
medio del teclado. El programa está construido de tal forma que si se crea una
unidad, ya sea nodo o unión, sus slots principales toman valores por omisión, que son
los que tienen dichos slots en la estructura general de la clase, es decir, en las
proporciona la posibilidad de escoger el valor por omisión (llamado valor por defecto
para el slot.
unidades, pero hay que tener en cuenta que si el valor de alguno de los slots de una
unidad depende de otra u otras unidades, como es el caso de los slots PUNTO! y
PUNT02 de las unidades UNIONES, que son de tipo NODOS, es necesario que los
nodos que vayan a escribirse como sus valores hayan sido creados con anterioridad.
verificación de cada valor que se instala en los slots de una unidad, y no permite que
las tres unidades principales que componen el programa: RED, NODOS y UNIONES.
menú principal y llamar a los métodos correspondientes a cada opción elegida. Los
situados cada uno en la unidad sobre la que actúa, es decir, el método que crea nodos
unidad UNIONES. Esta organizacipón permite que se puedan realizar muy fácilmente
-86-
modificaciones de cualquiera de los elementos que componen el interface. Los menús que
aparecen durante la ejecución del interface también están dentro de cada una de las
-
87 -
8. BIBLIOGRAFÍA
- Ackley, D.H., Hinton, G.E. y Sejnowski, T.J. : "A Learning Algorithm for
111-114, 1983.
AAAI Conference of Artificial lntelligence, Washington DC. 109-1 13, Kaufmann, Los
Altos, 1983.
- 88 -
- Feldman, J.A. y Ballard, D.H. : "Connectionist Models and their
Vision", Computer Vision, Graphics and Image Processing 31, 178-200, 1985.
Collective Comptational Abilities", Proc. National Academy of Sciences USA, Vol. 79,
NQ 8, Abril 1982.
Labeling Processes", IEEE Trans. Pattern Analysis and Machine Intelligence, Vol.
- 89 -
- Kienker, P.K., Sejnowski, T.J., Hinton, G.E. y Schumacher, L.E. :
1986.
"Equation of State Calculations for Fast Compting Machines", Journal of Che m ical
1986.
Septiembre 1986.
-90-
9. APÉNDICE S
- 91 -
APÉNDICE 1
l
1RC T . A T
/
1R.C-----R A A 1.1
A.OT\\
-- -
I
-
/ RJA 1
R Q TA ·----A T
- ·H
l..A1 .
• •
Rl -A f . A / A . V A ,1 - - - - -A.VA A 1
:-- .A2. 1
k
•
A - - JR
• • ·A.AO . 2 •
{
• -R J A
\
Z.Z
\
• R..FAZ
AG.
-
V A A2-----R . V AA 2
APÉNDICE 2
;; ; - * - Mode:LISP; Package:KEE; Base: lO. - * -
( BOLTZMANN
( "proyectos " " 14-Nov-1 986 1 3 : 30 : 3 1 " "PROYECTOS" " 26-Aug-1 987 10:58:58")
NIL
(KNOWLEDGEBASES)
NIL
()
( (KBCOPY NIL METHOD METHOD NIL NIL)
( KBDELETE NIL METHOD METHOD NIL NIL)
(KBLOAD NIL METHOD METHOD NIL NIL)
( KBMETHODFILE ( BOLTZMANN ) )
( KBSAVE NIL METHOD METHOD NIL NIL )
( KBSI ZE 37)
( KEE. DEVELOPMENT . VERSION . NUMBER O)
( KEE . MAJOR . VERSION . NUMBER 2)
(KEE.MINOB.VERSION.NUMBER 1)
{KEE.PATCH.VERSION.NUMBER 64 .1 )
(KEEVERSION KEE2. l ) ) )
( CORRECC ION
( "PROYECTOS" "1-Dec-1986 1 8 : 00 : 08" "PROYECTOS" " 1 1-Dec-1 986 1 5 : 35 : 38" )
NIL
( (ACTIVEVALUE ACTIVEVALUES) )
"Valor activo que expresa los numeras obtenidos para los valores de los nodos y para los pesos
de las conexiones de forma coriecta "
( )
( (AVPUT ( GLOBAL : LAMBDA ( SELF SLOT NUEVO VIEJO UNIDAD TIPO)
(PROG NIL
( RETURN {LIST ( GLOBAL : / ( FIXR (* 10 ( CAR NUEVO ) ) ) 10.0) ) ) ) ) ) ) )
(NODOS
( "proyectos" " 14-Nov-1 986 1 3 : 32 :51 " "PROYECTOS" " 26-ArJg-1 987 9:22:53")
(RED)
( (CLASSES GENERICUNITS) )
"Unidades < "
( ( COMPROBAI . SALIDA
,,
( GLOBAL : LAMBDA ( SELF)
( CONO ( ( EQUAL ( GET . VALUE SELF ESTADO ) ( GET. VALUE SELF sALIDA . PATRON ) )
(PUT.VALUE /RED / CORRECTO /SI ) )
( T (PUT.VALUE /RED /CORRECTO NO ) ) ) )
METHOD
(METHOD)
NIL
( ( COMMENT
"Comprueba si el estado del nodo despues de la segunda fase del algoritmo es igual al que :
r, d i caba e l pat r on de entr nar i en i o '' '1 ) i
1 ;:,:HEXI ONES NIL
NIL
NIL
NIL
( ( COMMENT ( "Lista de las conexiones en las que interviene el nodo" ) ) ) )
( ESTADO (INACTIVO)
NIL
( ( ONE. OF ACTIVO INACTIVO) )
IUL
( (COMMENT ( 11E .tadc a:"7 --: ".] r! 0 d o 11 \ i ::;. ,Bf.I . I.IiY . i,iA (l)} )
( I f EN'!' I F I CP.C I ON
( (OHE.CF ENTaADA S LIDA i TERMEDIO) )
NIL
( ( COMMENT
( " Func i on del nodo en la L ed , ya sea e l emento de ENTRADA , I NTERMED I O , o de SAL I DA " ) )
( CARDINALITY . MAX ( 1) ) ) )
{Sl.LIDA. PATRON
NIL
NIL
( ( ONE . OF ACTIVO INACTIVO) )
NIL
( (CARDINALITY.MAX ( 1 ) )
( COMMENT
"Contiene el estado del nodo para el patron de entrada . Solo es relevante si la identificac ion
del nodo es SALIDA") ) )
(UMBR.6L
(0)
NIL '
(REAL )
NIL
( (COMMENT ( "Valor umbral para calcular el estado de activacion o inactivacion del nodo" ) )
( CARDINALITY . MAX ( 1 ) ) ) )
(VALOR
( -0 . l )
NIL
(REAL)
NIL
( (AVUNITS ( #Unit ( CORRECCION BOLTZMANN ) ) )
( COMMENT
( "Valor numerico que tiene el nodo, a part ir del cual se determina su estado de activacion
o inact i va c i on " ) )
( CARDINALITY . MAX (1))))
( VARIABLE
{T)
NIL
( ( ONE . OF T N IL ) )
NIL
( { COMMENT
( " Variable booleana (T,NIL) que indica si el estado del nodo puede ser cambiado por el fun
.
cionamiento interno de la red . Su valor es NIL cuando el nodo es de ENTRADA o de SALIDA" ) )
( CARD I N A L I TY . MAX ( 1 ) ) ) )
( VER . SI . AC T I VA . A
( GLOBAL : LAMBDA ( SELF CONEX I ON )
(PROG ( (NODO ( CONO ( (EQUAL SELF ( GET . VALUE CONEXION ' PUNTO ! ) )
( GET. VALUE CONEXION 'PUNT0 2 ) )
(T ( GET. VALUE CONEXION 'PUNTOl ) ) ) )
(PESO . ARCO ( GET. VALUE CONEXION 'PESO ) ) )
(CONO ( ( GET . VALUE NODO 'VARIABLE)
(PUT.VALUE NODO 'VALOR (+ ( 6ET . VALUE NODO ' VALOR ) P ESO . ARCO ) )
( COND ( ( >= ( 6ET . VALUE NODO ' VALOR ) ( GET . VALUE NODO .. UMBRAL ) )
( PUT . VALUE NODO 'ESTADO "ACTIVO ) )
(T ( P UT . V. LUE NODO ··· EST .DO I HACT I UG ) :i ! )
··
(NIL))))
METHOD
( METHOD )
NIL
( ( COMMENT
("Metodo que calcula el estado de los nodos conectados con el nodo propietario del metodo.
Toma como atgumentos el nndo pIopietar io y una tm i d ad de U N I ONES" \ l \ ) )
\ ¡,s:= E B T NIL E \ LA . CAl_CULü ) ,
METHOD
(METHOD)
NIL
( ( COMMENT
( '' Metodo que di spara el funci onamiento interno de la red a par t i r de una d e t e r m i nada s i t u a
cion utilizando REGLA.CALCULO") ) ) )
(CREAR.NODOS (GLOBAL:LAMBDA ( SELF )
(PROG ( DATO )
( TERPRI )
(PRINTOUT T "NOMBRE DEL NUEVO NODO : ) 11
(E •. 6 CTIVO
\ u proyect os tl 11 -No·v- 1 986 l 2. : 33 : 2 4 u ºPHOYEC OS!I •: : c- c\ - l S"26 10: 57 :55ª )
NIL
( )
( ( .SSERTION ( lWff {AN ESTADO OF ?NODO IS ACTIVO) ) )
( EXTERNAL . FORM ( !F ( ( TE V.tLOR OF ?NODO IS ?X) AND
( TR! UMBRAL OF ?NODO IS ?Y )
-
._ =
.
-
- •
,-·.
-. , .-.
'- ·'
,
-
.. l" .· - -
. :_: : :·.; .' ;).
2J:asz ( /i W f f ( ,6 V.6 LOR OF ' ! WDO IS n i #Wff ( A UMBR.6L OF ?HODO IS 'Y ) /F W - i (>= 'X 'Y) ) ) ) )
( R . ACTUALIZACION
("PROYECTOS" "27-Nov-1986 1 5 : 46 : 26" "PROYECTOS" " 10-Dec-1986 15:14:00" )
NIL
( REGLA. INICIO. FASE! REGLA . IHICIO.FASE2 )
NIL - -- -·. - -
(R.ASIGNACION.PATRON
( "PROYECTOS" "ll-0ec-1986 1 6 : 27 :52" "PROYECTOS" " 12-Dec-1986 11:56:08")
NIL
(REGLAS.ASIGNACION.PATRON)
"Pide al usuario los valores correspondientes para los nodos de un patron"
(}
( (ACTION ( (PRINTOUT T ( UNIT . NAME ?NODO ) " • • • • ") (PUT.VALUE ?NODO ·' VALOR (GLOBAL:READ) ) ) )
( EXTERNAL . FORM
(IF ( (?NODO IS IN NODOS) AND
( (THE IDENTIFICACION OF ?NODO IS ENTRADA ) OR
( THE I DENTIFICACION
OF
?NODO
IS
SALIDA) ) )
DO
(PRINTOUT T ( UNIT. NAME ?NODO ) " " ) ••••
( R . CALCULO
("proyectos" "14-Nov-1986 1 3 : 34 : 32 " "PROYECTOS" " l l-Dec-1 986 1 5 : 44 : 16" )
NIL
( REGLA .CALCULO )
NIL
()
( ( f.CT ION ( ( P R I NT ?NODO ) ( P R I NT ?DESTINO) ( UNI TMSG ?NODO /VER . SI . ACTIVA . A ?DESTINO ) ) )
( A:3SERT I ON )
(EXTERNAL.FORM (IF ( AND ( THE ESTADO OF ?NODO IS ACTIVO )
( THE CONEXIONES OF ?NODO IS ?DESTINO) )
DO
{PRINT ?NODO )
(PHINT ?DESTINO)
(UHITMSG ?NODO 'VER.SI.ACTIVA.A ?DESTINO ) ) )
( P REMISE ( # W f f ( A N ESTADO OF ?HODO IS ACTIVO ) ##W f f .< A CONEXIONES OF ?NODO IS ?DESTINO ) ) ) ) )
(R.CAMBIO.PESO.FASEl . l
! .! •
(REGLA.CAMBIO.PESO.FASEi )
NIL
()
((ACTION ( (PUT.VALUE ?CON 'PESO (+ (GET.VALUE ?CON 'PESO ) (GET.VALUE 'RED 'DELTA) ) ) ) )
( ASSERTION ( #Wff C AN ACTUALIZACION OF ?CON IS SI ) ) )
(EXTERNAL.FORM (IF ( (THE ESTADO OF ?NODO IS ACTIVO ) AND
(THE CONEXIONES OF ?NODO IS ?CON )
AND
(THE ACTUALIZACION OF ?CON IS NO)
AND
( THE PUNTO! OF ?CON IS ?NODO)
ANO
(THE ESTADO
OF
( THE PUNT02 OF ?CON)
-
IS
ACt VO ) )
TREN
(THE ACTUALIZACION OF ?CON IS SI )
DO
(PUT. VALUE ?CON
·· P ESO
(+ ( GET .VALUE ?CON ,. P ESO ) ( GE T . VALUE ' RE D ,. DELTA ) ) ) ) )
( P REMISE ( l/Wff ( AN E!:TADO OF ?NODO IS ACTIVO ) #Wff (A CONEXIONES OF ?NODO IS ?CON)
#Wff (AN ACTUALIZACION OF ?CON IS NO )
#Wff (A PUNTOl OF ? CON IS ?NODO)
#Wff (A PUNT02 OF ?CON IS ?VAR2)
#Wff C AN ESTADO OF ?VAR2 IS ACTIVO ) ) )
( WEIGHT ( 2 ) ) ) )
THEN
( THE ACTUALI ZACION OF ?CON IS SI )
DO
(PUT.VALUE ?CON
,. P ESO
(+ (GET.VALUE ?CON ,. P ESO ) (GET . VALUE ''ED .. DELTA ) ) ) ) )
(PHEMISE (#Wff ( AN ESTADO OF ? !ODC I 3 :. c ' I V O ) t W f f ( f. CONEXI.HES •:; ; · •; IS oCOH)
#Wff ( A PUNTO ! OF ?GQH IS ?VAR3)
#Wff ( AN ESTADO OF ?VAB3 IS ACTIVO ) ) ) ) )
(R.CAMBIO.PESO.FASE2. l
( "PROYECTOS" "27-Nov-1986 16: 16:45" "PROYECTOS" "10-Dec-1986 14: 18:26" )
NIL
(REGLA.CAMBIO.PESO.FASE2)
NIL
((ACTION ( ( P UT . VALUE ?CON -PESO ( - ( GET . VALUE ?CON -PESO) ( GET . VALUE ''RED ·' DELTA ) ) ) ) )
( ASSERTION l #Wff ( AN ACTUALIZACION OF ?CON IS SI ) ) )
( EXTERNAL . FORM (IF ( ( THE ESTADO OF ?NODO IS ACTIVO ) AND
(!HE CONEXIONES OF ?NODO IS ?CON)
ANO
( THE ACTUALIZACIO.H OF ?·:OH IS NO )
ANO .
(THE PUNTOl OF ?CON IS ?NODO)
AF
(THE ESTADO
OF
(THE PUNT02 OF ?CON)
IS
ACTIVO) )
THEN
(THE ACTUALIZACION OF ?CON IS SI )
DO
(PUT.VALUE ?CON
,. P ESO
(- (GET.VALUE ?CON -PESO) ( GET . VALUE -' RE D -' DELTA ) ) ) ) )
(PREMISE ( #W f f ( AH ESTADO OF ?NODO IS ACTIVO ) #Wff (A CONEXIONES OF ?NODO IS ?CON)
#Wff ( t.N ACTUAL I ZACION OF ?CON IS NO)
#Wff (A P:NTOl OF ?CON IS ?NODO)
#Wff ( A PUNT02 OF ?CON IS ?VAR4)
#Wff ( AH ESTADO OF ?VAR4 IS ACTIVO ) ) ) ) )
(R.CAMBIO.PESO.FASE2.2
( "PROYECTOS" " 27-Nov- ;_ 986 1 6 : 16 : 50" "PROYECTOS" " 10-Dec-1 986 14: 18:23")
NIL ti
( REGLA . CAMBIO . PESO . FASE2 )
NIL
()
((ACTION ( (PUT.VALUE ?CON -PESO ( - ( GET . VALUE ?CON -' P ESO ) ( GET . VALUE -RED -DELTA ) ) ) ) )
( ASSERTION ( #Wff ( AN ACTUAL I Z ACION OF ?CON IS SI ) ) )
(EXTERNAL.FORM (IF ( (!HE ESTADO OF ?NODO IS ACTIVO) AND
(THE CONEXIONES OF ?NODO IS ?CON )
AND
( THE ACTUALIZACION OF ?CON IS NO )
AND
- • T T Y , . ,
(R.COMPROBAR.SALIDA
( "PROYECTOS" " l l-Dec-1986 !7:56:36" "PROYECTOS" "ll-Dec-1986 17:58:38" )
NIL
(REGLA.COMPROBAR.SALIDA)
NIL
(R.FIJAR.SALIDA.PATRON
("PROYECTOS" "ll-Dec-1986 17:45:25" "PROYECTOS" "11-Dec-1986 1 7 : 48 : 09" )
NIL
( REGLA . FIJAR . SALIDA . PATRON )
- -···- --- - ............................................................................ ·· - - -- - - - ·
NIL
()
((ACTION ( ( PUT . VALUE ?NODO .. SALIDA . PATRON ( GET . VALUE ?NODO . ESTADO ) ) ) )
( E, :ERNAL . FORM ( I F ( (?NODO IS IN NODOS) ANO ( THE I DENT I F I CA C I ON OF ?NODO IS SALIDA ) )
DO
(PUT.VALUE ?NODO . SALIDA.PATRON (GET.VALUE ?NODO . ESTADO) ) ) )
(PREMISE ( #Wff (?NODO IS IN CLASS NODOS) #Wff ( AH IDENTIFICACION OF ?NODO IS SALIDA) ) ) ) )
(R. INACTIVO
("p oyectos" "14-Nov-1986 13:33:24" "PROYECTOS" " 19-Nov-1986 10:58: 17" )
NIL
(REGLA . ESTADO)
NIL
()
((ASSERTION (#Wff ( AN ESTADO OF ?NODO IS INACTIVO ) ) )
(EXTERNAL . FORM ( IF ( (THE VALOR OF ?NODO IS ?X) AHD
(THE UMBRAL OF ?NODO IS ?Y)
ANO
( < ?X ?Y))
(R. IHICIO.FASE2
( "PROYECTOS" " 1 9-Nov-1 986 11 :09:05" "PROYECTOS" "ll-Dec-1986 15:25:44" )
NIL
( REGLA . INICIO. FASE2 )
NIL
( (PUT.VALUE ?NODO 'VALOR (- (GET.VALUE ?NODO 'UMBRAL) (GET.VALUE 'RED 'DELTA) ) )
(ASSEBT NIL 'REGLA.ESTADO) ) )
(ASSERTION NIL)
(EXTERNAL . FORM (IF ( THE IDENTIFICACION OF ?NODO IS SALIDA)
DO
(PUT.VALUE ?NODO
' VALOR
(- ( GET . VALUE ?NODO 'UMBRAL) (GET. VALUE -RED -DELTA ) ) )
( ASSERT NIL ' REGLA . ESTADO ) ) )
(PREMISE ( ll W f f (. N IDENTIFICACION OF ?NODO IS SALIDA) ) )
( WEIGHT (0) ) ) )
(R.PESOS
( "PROYECTOS" " 1 0-Dec-1986 1 5 : 32 : 4 1 " "PROYECTOS" " 10-Dec-1 986 15:32:41")
NIL
(REGLAS.ORIGEN)
NIL
()
((ASSERTION ( #Wff (A PESO OF ?CON IS 0 . 1 ) ) )
( EXTERM L . FORM (IF (?CON IS IN UNIONES) THEN ( THE PESO OF ?CON IS 0.1 ) ) )
( P REMISE ( l/ W f f ( ?CON IS IN CLASS UNIONES ) ) ) ) )
(R.VALORES
( "PROYECTOS" "10-Dec-1986 15:32:39" "PROYECTOS" "10-Dec-1986 15:32:39" )
NIL
( REGLAS. ORIGEN )
NIL
()
( (ASSERTION (#Wff (A VALOR OF ?NODO IS -0. 1 ) ) )
(EXTERNAL.FORM (IF ( ?NODO IS IN NODOS) THEN ( THE VALOR OF ?NODO IS -0 . 1 ) ) )
(PREMISE ( #Wff ( ?NODO IS IN CLASS NODOS ) ) ) ) )
(R.VARIABLE.FASEl
( "proyectos" "14-Nov-1986 1 3 : 35 : 20 " "PROYECTOS" " 26-Nov-1986 15:25:33")
NIL
(REGLA.VARIABLE.FASE! )
NIL
()
( (ASSERTION ( #Wff ( A VARIABLE OF ?NODO IS NIL) ) )
( EXTERNAL . FORM (IF ( OR ( THE IDENTIFICACION OF ?NODO IS ENTRADA)
( THE IDENTIFICACION OF ?NODO IS SALIDA ) )
THEN
(THE VARIABLE OF ?NODO IS NIL) ) )
(PREMISE
( #Wff ( ( AN IDENTIFICACION OF ?NODO IS ENTRADA ) OR (AN IDENTIFICACION OF ?NODO IS SALIDA ) ) ) )
( WEIGHT ( l ) ) ) )
(R.VARIABLE.FASE2
( "PROYECTOS" " 1 7-Nov-1 986 1 6 : 30 : 00 " "PROYECTOS" " 26-Nov-1 986 15:31 :55")
NIL
(REGLA.VARIABLE.FASE2 ( CLASSES GENERICUNITS ) )
NIL
()
( (ASSERTION (#Wff (A VARIABLE OF ?NODO IS NIL } ) }
( EXTERNAt . FOUM r r r f THE ICE TIFICACION OF ?NODO IS ENTRADAl
_ n c .h
(RED
("PROYECTOS" "25-Nov-1986 1 7 : 00 : 24 " "PROYECTOS" " 26-Aug-1 987 10:52:22")
NIL
( ( CLASSES GENERICUN ITS ) )
"Estructura basica de la red compuesta por NODOS y UNIONES"
()
( (ALGORITMO ( GLOBAL : LAMBDA ( SELF )
( ASSERT NIL ,REGLA . INICIO . FASE l )
(ASSERT NIL 'REGLA . ESTADO )
( ASSERT NIL ·' REGLA . VARI/.BLE . FASE l )
(ASSERT NIL ,. REGLA . CALCULO )
( ASSERT N I L ,REGLA . CAMBIO . PESO . FASE i ;
( ASSERT NIL ,REGLA . INICIO. FASE2 )
( ASSERT NIL ·' REGLA . VA R I ABLE . FASE 2 )
( ASSERT NIL ,REGLA.CALCULO)
( ASSERT NIL ' REGLA . CAMBIO . PESO . FASE2 ) )
METHOD
(METHOD)
NIL
,
( (COMMENT ( ( " Algo1 itmo que realiza el apren•:zaje utilizando REGLAS. ALGORITMO" ) ) } )
ASIGNAR . PATRON
( GLOBAL : LAMBDA ( SELF )
(PRINTOUT T "ESCRIBA LOS VALORES CORRESPONDIENTES A CADA NODO : " ) (
ASSERT NIL , REGLAS . AS I GNACION . P ATRON ) )
METHOD
( METHOD)
NIL
( ( COMMENT .
"Pide al usuario los valores de los nodos de la red ( un patron de entrenamient o ) " ) ) )
( COMPROBACION
( GLOBAL : LAMBDA ( SELF )
( ASSERT NIL ,REGLA . COMPROBAR . SALIDA ) )
METHOD
( METHOD )
NIL
( ( COMMENT
''Ianza_ e_l_razona m i ent o que comprieba l a s s a l i d a s d e s pues n un •ie una ej ecuc i on d e l a l go r i t mo co
patron" ) ) )
( CORRECTO
( NO )
NIL
( ( ONE . OF S I NO ) )
NIL
( ( CARD I N A L I TY . MAX ( l ))
(COMMENT
11 Valor· 'bo{lear.O ! CT
,
Jn \
" -; todos l os patrones de entra a 1
. f
- ·• .
O LJ
(GLOBAL:LAMBDA ISELF)
(UNITMSG 'RED 'ASIGNAR.PATRON)
(UNITMSG 'RED 'ALGORITMO)
(UNITMSG 'RED 'COMPROBACION))
METHOD
( METHOD)
NIL
( (COMMENT "Metodo que realiza una iteracion completa con todos los patrones de entrada" ) ) )
( MENUOPERACIONES
( ("CREAR NODOS" ,N) ( "CREAR UNIONES" 'U)
( "SUPRIMIR NODOS" 'SN)
( "SUPRIMIR UNIONES" ·' S U )
( "FIN" 'F) )
NIL
( MENUITEM )
NIL ;1
( (TITLE ( "OPERACIONES BASICAS" ) ) ( FONT ( KEE. TITLE . FONT ) )
( COMMENT " Menu pr incipal de creacion de
la red" ) ) )
( OP ERi CIONES
(GLOBAL:LAMBDA ( SELF )
(PROG ( ( OPERACION NIL ) )
(DO NIL
( ( EQ O P !RACION 'F))
,
(SETQ OPERACION ( MENU (GET .SLOT .MENO ·' RE D ,. MENUOPERACI ONES . OWN ) ) )
( COND ( ( EQ OPERACION ' N )
( UNITMSG ' NODOS 'CREAR . NODOS ) )
( ( EQ OPERACION ' U )
( UNITMSG ' UNIONES ,. CREAR . UN IONES ) )
( ( EQ O P ERACION ' S N )
( UN I TMSG ' NODOS ' S U P R I MI R . NODOS ) )
( ( EQ OPERACIO 'SU)
( UNITMSG ' UNIONES 'SUPRIM . UNIONES ) ) ) ) ) )
METHOD
(METHOD)
NIL
( ( COMMENT "Contiene la funcion que se ocupa del menu pr incipal de operaciones " ) ) )
( ORIGEN ( GLOBAL : LAMBDA (SELF)
( ASSERT N I L ' R EGLAS ORIGEN))
,
METHOD
(METHOD)
NIL
( ( COMMENT " Inicializa l a red" ) ) )
(\\IMAGE.PANEL HIL) ) )
(REGLA. C.lLCULO
( " pr· oyeet o s " 11 14-ficv-1986 13:34:32" "PROYECTOS" "5-Dec-1986 13:44:52")
( REGLAS . FASE2 REGLF.S . FASE l ( RULES RULESYSTEM2 i )
( (RULE.CLASSES RULESY57EM2))
( ( ,6,SSERTI O N }
(PREMISE) )
( ( AHD . TRACE )
( FC. TRACE)
(IMMEDIATE.RULE.APPLICATION.MODE ( ON ) }
C OR . TRACE)
(PANEL.TRACE)
(STEPPER.MODE)
(BEGLA.CAMBIO.PESO.FASEl
( "PROYECTOS" "26-Nov-1986 1 5 : 23 : 38" "PROYECTOS" " 10-Dec-1 986 14: 17:19") (
REGLAS . FASEl )
( ( CLASSES GENE R I CUN I TS ) ( RULE. CL.SSES RULESYSTEM2 ) )
"Clase de i·eglas que se ocupan de la modifieaeion •ie los pesos de las eonexiones segun la pr im
er a fase del a l gor i t m o de aprendizaj e "
( ( ASSERT ION )
( PREMISE) )
( (AND. TRACE)
( FC . TRACE )
(IMMEDIATE.RULE.APPLICATION.MODE ( ON ) )
C OR . TRACE (OFF) )
(PANEL.TRACE)
(STEPPER.MODE)
(TEXT. TRACE) ) )
(REA . ESTADO -
( "proyectos" " 14-Nov-1986 1 3 : 33 : 24" " PROYECTOS" "5-Dec-1986 13:44:13")
( REGLAS . FASE2 REGLAS . FASE! ( RULES RULESYSTEM2 ) )
{ { RULE . CLASSES RULESYSTEM 2 ) )
"Regla comun a las dos fases . Determina los estados de todos los nodos de la red a part i r de 1
es valores de cada uno de e l los "
( ( . .SSERT . MODE ( REPL.CE ) )
(ASSERTIOH)
(PREMISE ) )
( (ANO.TRACE)
( FC . TRACE )
( I MMEDIATE. RULE. APPLICATION . MODE) C
OR . TRACE )
(PANEL. TRACE)
( STEPPER . MODE)
(TEXT. TRACE) ) )
(REGLA.INICIO.FASE!
( "PROYECTOS" "27-Nov-1986 1 5 : 47 : 15" "PROYECTOS" "5-Dec-1986 13:46:49") (
REGLAS. FASE! )
( ( RULE . CLASSES RULESYSTEM2 ) ( CLASSES GENERI CUN I TS ) )
"Regla que se uti liza para preparar todos los nodos para la primera fase del algoritmo. Contie
ne una unica regla R . ACTUALI Z AC I ON , que tamb i e n es ut i l i zada e n l a s egunda f a s e del algoritmo de
aprendizaje"
( )
() )
( REGLAS . FASE ! )
( ( RULE . CLASSES RULESYSTEM2 ) ( CLASSES GENERICUNITS ) )
"Regla que asigna los valores del s lot VARIABLE de tÓdos los nodos de la red en funcion de su
identi ficacion y de las restricciones de la primera fase"
( ))
( REGL.<S . FP. S E 2 )
( ( BULE . CLASSES BULESYSTEM2 ) ( CLASSES GENEBICUNITS ) )
"Regla que as igna los valores del slot VARIABLE de todos los nodos de la red en funcion de su
ident i ficacion y de las restr icciones de la segunda fase "
()
() )
(REGLAS.ALGORITMO
("PROYECTOS" "26-Nov-1986 1 4 : 43 : 18" "PROYECTOS" "5-Dec-1986 13:38:46")
( ( RULES RULESYSTEM2 ) )
( ( RULE .CLASSES RULESYSTEM2 ) )
" C la s e de re g la s que c o n tie n e to d a s las re g l a s n e c e s a ria s en el a l g o r i tm o de aprendizaje de l a
re d "
( ( ASSERT[ 10DE ( REPLACE ) ) )
·
(REGLAS.CONTROL
( ''PROYECTOS" " 1 2-Dec-19 '
6 11 : 43 : 36 " " P ROYECTOS " " 1 2-Dec- 1 986 1 1 : 45 : 1 7 " )
( REGLAS . ALGORITMO ) t1
( ( RULE .CLASSES RULESYSTEM2 ) ( CLASSES GENERICUNITS ) )
NIL
( ( ASSERT . MODE ( REPLACE ) ) )
())
(REGLAS.FASEl
( "PROYECTOS" " 26-Nov-1986 14:44:09" PROYECTOS" "12-Dec-1986
" 11 :42:56" )
( REGLAS . FASES )
( ( RULE . CLA33iS iLESYSTEM2 ) ( CLASSES GENE R I C UIHTS ) )
"Clase e e¿las que contiene todas la ceglas ceferidas a la pcimeca fase del a lg o c it m o de ap
lendizaj e "
( ( WEIGHT (O) ) )
( ( RESOLVE. CONFLICT LEAST. PREMISE . COMPLEXITY ) ) )
( REGLAS . FASE2
( "PROYECTOS" " 2.,-- .. : ·.-- : 36 14:44: 10" "PROYECTOS" "12-Dec-1986 11 :43:10" )
( REGLAS . F. .SES )
1 -. .-
". -. - . ·: :
rndizaje"
( ( WEIGHT (l) ))
( (RESOLVE.CONFLICT LEAST.PREMISE.COMPLEXITY) ) )
( REGLAS . FASES
( "PROYECTOS" "12-Dec-1986 1 1 : 39 : 20" "PROYECTOS" " 1 2-Dec-1986 1 1 : 41 : 46" )
(REGLAS.ALGORITMO ( RULES RULESYSTEM2 ) )
( ( RULE. CLASSES RULESYSTEM2 ) )
"Reglas que ejecutan las dos fases del algoritmo"
( )
() )
(REGLAS. ORIGEN
( "PROYECTOS" " 1 0-Dec-1986 15: 28:51" "PROYECTOS" "ll-Dec-1986 17 :04:50")
( ( RULES RULESYSTEM2 ) )
( ( RULE . CLASSES BULESYSTEM2 ) )
"Coloca los valores de todos los nodos y los de todas las conexiones"
( ( ASSERT . MODE ( REP LACE ) )
( ASSERTION )
(PRElüSE) )
( (ANO. TRACE)
( FC . THACE )
(IMMEDIATE.RULE.APPLICATION.MODE) C
OR . TRACE )
(PANEL.TRACE)
(STEPPER.MODE)
(TEXT . TRACE ) ) )
( UNIONES
( "pt'oyect o s " " 1 4-Nov- 1 986 13 : 30 : 41 " "PROYECTOS" " 26-Aug-1 987 9 : 48 : 1 2 " )
( RED )
( (CLASSES GENERICUNITS) )
"Conexiones o arcos entre los nodos de la red"
( ( ACTUAL I ZACION
( NO )
NIL
( ( ONE . OF SI NO ) )
NIL
( ( COMMENT
("Valor booleano (SI,NO) que determina si el peso de la conexion ha si d o a ct u a l i za d o en l a
fase correspondiente del algoritmo de aprendizaje ( sumandole o restandole DELTA ) " ) )
( CARDINALITY . MAX ( 1 ) ) ) )
(PESO
(0)
NIL
( :AL )
:-: ! L
( ( Cüi'lMEi
· ( " Va l or numet' i c o a s i gn a d o a l : c o n e:: i on e n t r· e dos :i odo s " ) )
(AVUNITS ( llUn i t ( CORRECCION BOLTZMANJ ) ) ) )
(PUNTOl NIL
NIL
( NODOS )
NIL
( ( COMMENT ( "Uno de los dos nodos asociados a la conexion") ) (CARDINALITY.MAX ( 1 ) ) ) )
(PUNT02 HIL
FIL
( NODOS )
NIL
( ( COMMENT ( "Uno de los dos nodos asociados a la conexion") ) .ARDINALITY . MAX ( l ) ) } }}
•
( ( CREAR . UNIONES ( GLOBAL : LAMBDA ( SELF)
(PROG ( DATO VALOR N )
( TERPRI )
( PRINTOUT T "NOMBRE DE LA NUEVA UNION : " )
( SETQ DATO (CREATE.UNIT ( READ) NIL NIL ' ( UNIONES ) ) )
(TERPRI }
(PRINTOUT T "PESO ( D para el valor por defecto) : " )
( SETQ VALOR ( READ ) )
(PUT.VALUE DATO
'PESO
( CONO ( (EQ VALOR 'D) 0)
(T VALOR) )
C TERPRI )
(PRINTOUT T "PRIMER NODO CONECTADO: ")
(SETQ N CREAD) )
(PUT. VALUE DATO 'PUNTO! N )
(PUT.VALUE N
'CONEXIONES
(CAR ( AP PEND (GET.VALUE N 'CONEXIONES) (LIST DATO) ) ) )
( TERPRI )
( PRINTOUT T "SEGUNDO NOD CONECTADO: " )
( SETQ N ( READ ) )
il
KBEnd
APÉNDICE 3
-- -r - - - - -
\
- ·.---·-
- - - . --. f...
"·\·1. - -
:
'
.
·-. _
'
: .
·-----. . _._
;
·· G
HE LP . ..
·-
L- __ __ _ __ .
·
.l.r t; -- = t !_ü : _____ -·--
i
i
¡: .
. VE . T.LAL . . RA. f n .uuH U,L 9
1 . .
r
·
. 1
:
. _
:
- -
' ..
·
·.
·:
,.
-: : :
=: : ;
: ::: ;;
.. . .
··:'
: .::: . ·:;. > ·: , ; .
: :: :
::· :
· •.·· .-· o;G;;:TUATUR ( 3 2 4
: . - . OiGifiiETEH O 3 2 9 7
.. f · . _ -
::
:
- · . -· .-· ..-· --
!! ' . - ! ! " l ! 1 L 1 I ' " "- _ 1
:,:.· ·> .
.. . ...........
: _
-- - -- - -· :
-·
:
.-=:.c::
::=:: • -· .
n
-u .
' " : a
•
-
__
. .'- :-
-
--
. . .
- -
- _ _
-ni:1iMFTFPf::i:ifi7
·
=:=: =_= =:=
-
-- -
-
_- 11
:
-
_ 1 ne . 1n 1a111-
·- -LiGif.iETEH U 3 3 6 6
.
-: ··: . : _-. .:· .
·
-
..._
! i/:' :: .: .. ··.
ü!füMETER \
::.: :·. ·
{f·.:··:·:,
; 337 4
0
a a a J • n -r-
, \
,\
.
· .
\•\'· \ .
• !
' L !t m ! ! t • - u E u
.,
\· ·:·.:·-. ·. .·· OU]!:ETEH 0 3 3 8 0
. .x
- - -
_·
·
·.>..:
\¡:• .
Ntll lllt'" t . , .,f lf l
; - -; t _ . ; . ..• •
Nnnn7' rsrinn
L -r !:;:: I
•
- - - - - - - -
JUUU!': t l !,LU
¡
-- ·
C t : l " l
1 ·
O T slc-:
ALGORITMO from RED
Inherita.nce:METHOD
ValueClass: (METHOD in kb KEEDATATYPES) "
Comment,: "Algoritnio que rea.liza el .:.prendiza.je uliza .ndo REGLAS.ALGO
RITMO"
Comment: "Valor boolea.no ( SI,NO) que sirve para c.veriguar si todos los pa.t
rones de entrada han da.do la salida adecuada tras la segunda fase del algori tr!
Lo de a.prendizaje"
Values: NO
jcdnty
subclasses of this clas. which
-.
' -
· - · - - - - - - - - - --- -
1 :: { EEOATATYPES)
i '1 tle º ()PE::.(:ICJrre:f E:.t. IC. S11
;
; F";::n: KE:E:. Trr:. :. F"CJIJT .
Cüff1i11ent; " I,!eriu principal ee creacion ee la red"
-
- -
- - - - - - - - • - _ - - - ---- - " - - -- -- - - - '_
- d' -
1
L
Unit: UNIONES in knowledge base BOLTZMANlJ
Gre.:.tet by proyecos on 1 4- Nov- 1 9 8 6 1 3 : 3 0 : 4 1
1
Iviodified b y PROYECTOS on 26 - Aug- i % ·/ 9 : 43 : i 2
Su.percla.sses: RED
Ivlember Of: (CLASSES in lf GEl.ERICUNITS )
Members: CON 6 7 , CON 5 7 , GON 5 6 , GON 4 6 , C ON 4 5 , GON 3 6 , GON 3 5 ,
GON26, GON25, GON 1 6, GON 1 5
Ca.rdinality.Ivlax:1
U.H.l•:
Valu.es: NO
Member slot: PESO fom UNIONES
Inheritance: OVERRIDE.VALUES
Va.lueClass: (REAL in kb KEEDATATVPES)
Comment: "Va.or numerico a.signado a la conexion entre d.os nodos"
Avunits: CORRECCtor,
Values: O.O
PL:..r! . . ,-, ·
·
Ovm OECOMPOSITION .COMPLETE from CLASSES
slot:
UNION
Inherita.nce:
Va.lueCla.ss: (LIST.OF (CLASSES in kb GENERICUNITS))
CoJmYtent: 11
Vaiues: Unknown
· a.11_.es: Unkno.11n
Own MEMBERSHIP
slo :
, fom CLASSES
Inheritance: METHOD
Valu.eClass: (METHOD in kb KEEDATATVPES)
Cardinality.Max: 1
Cardin.:lity.Min: 1
Values: MEMBER-DISJOINTP!.ETHOD
Unid.:c.es o
de UdIONES"
Values: IBOLTZMANN> NODOS: VER.SI. ACTIVA. A!mehodI
k c< !
1
i Irheritance: METHOO
Va.lueCla.ss: (METHOO in k KEEOATATYPES)
·
Values: Unlmown
f I n h e r i t c:e:
ValueClass:
UN!ON
(LIST.OF
·
(CLASSES in kb GENERICUNITS))
Comment: "
A disjoin decomposition is ,: list of
subcla.sses of this c lo.ss which sha.re no
members. Iviore than one disjoint
decomposition may be specified.
Vo.lues: Unkno'11n
·
J
( C:_H)'E It·IACTI\1C:))
i
O>•ln slot: MENUIOENTIF from NODOS
OVERRllE.VALUES
Inherit.a.nce:
ValueClass: (MENUITEM in kb KEEDATATYPES)
Title: " IDENTIFICACION DEL NODO"
Comment: "1enu para elegir la identificacion del nodo en el :mento de s
u crea.cion"
V.:.lues: ("ENTiRDA" (QUOTE ENTR.".D.".)) ("SALIDA"
(QUOTE SALIDA))
("INTERMEDIO" (QUOTE INTERiIEDIO))
( BOLTZM.6NN
( " pr· oyect o s " " 1 4-Nov- 1 986 13:30:31 " "PROYECTOS" "26-Aug-1987 9:49:01" )
NIL
( KNOWLEDGEBASES )
NIL
( CON 15
( "proyectos" " 14-Nov-1986 1 3 : 40 : 33 " "PROYECTOS" " 1 2-Dec-1986 1 1 : 32 : 56" )
NIL
(UNIONES)
rL
()
! ( ACTUALIZACION (NO) )
IP!SO N!!
: p;:NTOl (NODOl ) )
( P i T02 { ilOD05 ) ) } )
(CON1 6
( " pr· oyec t o s " " 1 4-Nov- 1 986 1 3 : 40 : 33 " "PROYECTOS" " 1 2-Dec-1 986 11:32 :57")
NIL
\ u1; r ;Es )
Nll
(CON25
( "pr·oyectos " " 1 4-Nov-1 986 13:40:35" "PROYECTOS" "12-Dec-1986 11 :32:57")
NIL
(UNIONES)
NIL
()
( (ACTUALIZACION (NO) )
( P ESO ( O . 1 ) )
(PUNTO! ( NOD02 ) )
(PUNT02 ( NODOS ) ) ) )
(CON26
( "pr·oyectos" " l •¡-Nov-1 986 1 3. : 40 : 34 " "PROYECTOS" " 1 2-Dec-1986 1 1 :32:58")
NIL
(UNIONES)
NIL
()
( (ACTUALIZACION ( NO ) )
(PESO (0.1))
(PUNTOl (NOD02) )
( PUNT02 (NOD06) ) ) )
(CON35
("proyectos" "14-Nov-1986 13:40:35" "PROYECTOS" "12-Dec-1986 1 1 :32:58")
NIL
(UNIONES)
NIL
()
( ( ACTUALIZACION ( NO ) )
(PESO (0.1 ) )
(PUNTOl ( NOD03 ) )
(PUNT02 ( NODOS ) ) ) )
(CON36
("proyectos" "14-Nov-1986 1 3 : 40 : 36" "PROYECTOS" " 12-Dec-1986 1 1 : 32 : 58" )
NIL
(UNIONES)
NIL
()
( (ACTUALIZACION ( NO ) )
( PESO (0.1 ) )
(PUNTOl ( NOD03 ) )
(PUNT02 (NOD06) ) ) )
f .-."\ l Y 1, r
\ ' \ l ! f-1
( " pr· oyect o s " " 1 4-Nov- 1 986 13:40:35" "PROYECTOS" " 12-Dec-1986 11 :32 :59" )
NIL
(UNIONES)
NIL
()
( (ACTUALIZACION ( NO ) )
( P ESO (O l))
•
(PUHTOl (NODOLt) l
\ ) J JI
(CON46
("proyectos" "14-Nov-1986 1 3 : 40 : 35" "PROYECTOS" "12-Dec-1986 11 :32:59")
NIL
(UNIONES)
NIL
()
( (ACTUALIZACION ( NO ) )
(PESO (O. l ))
(PUNTOl (NOD04) )
(PUNT02 ( ff0D06 ) ) ) )
(CON56
("PROYECTOS" "25-Nov-1986 16:49: 11" "PROYECTOS" "12-Dec-1986 11 :33:21" )
NIL
(UNIONES)
NIL
()
( (ACTUALIZACION (SI ) )
( PESO ( O l ) )
•
(PUNTOl ( NODOS ) )
(PUNT02 ( NOD06 ) ) ) )
(CON57
("proyectos" "14-Nov-1986 13:40:36" "PROYECTOS" "12-Dec-1986 11 : 33 : 02 " )
NIL
(UNIONES)
NIL
( (ACTUALIZACION (NO) )
( PESO ( 0 . 2999999996 ) )
(PUNTOl ( NODOS ) )
(PUNT02 (NOD07) ) ) )
(CON67
("proyectos" "14-Nov-1986 13:40:36" "PROYECTOS" "12-Dec-1986 11 : 33 : 0 2 " )
NIL
(UNIONES)
NIL
( (ACTUALIZACION ( NO ) )
(PESO (0.2999999996) )
(PUNTOl ( NOD06 ) ) !
PUNT02 (HOD07) ) ))
(• iHREC( I ON
!"PROYECTOS" "l-Dec-1986 1 8:00 : 08" "PROYECTOS" " l l-Dec-1986 15:35:38")
NIL
( (ACTIVEVALUE ACTIVEVALUES) )
"Valor· activo que expresa los numeros obtenidos para los valor·es de los nodos y : a r a los P•
de las conexiones de forma correcta"
()
l lAVPUT i LAMBDA ( SELF SLOT HUEVO V IEJO UNIDAD TIPO l
{ _
\ ,' / u ( AR HUEVO) ) ) 10.0¡ ) ) ) ¡ ¡ ¡ ¡
(DIGIACTUATOR03294
( "PROYECTOS" "25-Nov-1986 17:34:09" "PROYECTOS" "26-Aug-1987 9:48:48" )
NIL
( (DIGIACTUATOR ACTIVEIMAGES) IMAGES)
NIL
( ( BORDER 4)
( FONT FONTS : CPTFONT )
( HE IGHT 37)
( IMAGE . WAS. PAINTED NIL ) -
(OBJECT. DISPLAYED #Slot (VALOR NODOl BOLTZMANN OWN) )
( REGION ( 99 310 78 37 )
NIL
NIL
NIL
( ( ICON . REGION (99 310 125 48 ) ) (EXPAND.BEGION (99 310 78 37) ) ) )
( SAVED . VALUES -0 . 1 )
(SUPER.IMAGE #Unit ( IMAGE . PANEL03254 BOLTZMANN) )
( TITLE "NODOl / s VALOR" )
( TITLEFONT FONTS : HL l OB )
( TOPUNIT (NIL) )
(VALUE.WAS.SAVED T)
(WIDTH 78)
( WINDOW "A Flavor Instance"
NIL
NIL
NIL
( ( ICON . WINDOW NIL ) ( EXPAND . WINDOW NIL) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(DIGIMETER03297
( "PROYECTOS" "25-Nov-1986 1 7 : 35 : 04" "PROYECTOS" " 26-A1.g-1 987 9:48:49" )
NIL
( (DIGIMETER ACTIVEIMAGES) IMAGES)
NIL
( ( BORDER 4 )
( FONT FONTS : CP TFON T )
( HEIGHT 37)
( IMAGE . WAS. PAINTED NIL)
( OBJECT . DISPLAYED #Slot ( VALOR NOD02 BOLTZMANN OWN ) )
( REGION ( 101 265 77 37)
NIL
NIL
NIL
( ( ICON .REGIOH ( 101 265 125 48 ) ) C EXPAND . REGION ( 101 265 77 37 ¡ \ \ \
( SAVED . VALUES -0. l l
¡SUPER.IMAGE #Unit (IMAGE.PA L032 OLTZMANH) J
( TITLE " NOD02's VALOR" )
( TITLEFONT FONTS: HL l OB )
( TOPUNIT (NIL) )
(VALUE.WAS. SAVED T )
(WIDTH 77)
(WINDOW "A Flavor Instance"
NIL
NIL
( ( ICON.WINDOW NIL) ( EXPAND . WINDOW MIL ) (CURRENT.WINDOW (EXPAND) ) ) ) ) )
(DIGIMETER03301
( "PROYECTOS" "25-Nov-1986 1 7 : 36 : 08" "PROYECTOS" " 26-Aug- 1987 9:48:49" )
NIL
( ( DIGIMETER ACTIVEIMAGES ) IMAGES)
NIL
()
( ( BORDER 4)
(FONT FONTS : MEDFNB)
( HEIGHT 39)
( IMAGE . WAS. PAINTED NIL)
(OBJECT. DISPLAYED #Slot ( VALOR NOD03 BOLTZMANN OWN ) )
( REGION ( 102 216 73 39)
NIL
NIL
NIL
(( IBON,·REGION (102 216 125 48 ) ) ( EXPAND . REGION ( 102 216 73 39 ) ) ) )
{ SAVED . VALUES -0 .1 )
(SUPER.IMAGE #Unit ( IMAGE . PANEL03254 BOLTZMANN J )
( TITLE "NOD03,.s VALOR" )
(TITLEFONT FONTS:HLlOB)
( TOPUNIT (NIL) )
( VALUE . WAS. SAVED T )
(WIDTH 73)
(WINDOW "A Flavo Instance"
NIL
NIL
NIL
( (ICON.WINDOW NIL) CEXPAND.WINDOW NIL) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(DIGIMETER03304
( "PROYECTOS" "25-Nov-1986 1 7 : 37 : 00" "PROYECTOS" " 26-Atg-1 987 9:48:50")
NIL
( ( DI G I METER ACT I V E I MAGES ) I MAGES )
NIL
()
( ( BORDER 4)
( FONT FONTS : MEDFNB )
( HEIGHT 39)
( IMAGE .WAS. PAINTED NIL)
( OBJECT. DISPLAYED #Slot ( VALOR NOD04 BOLTZMANN OWN ) )
( REGION ( 105 168 69 39 )
NIL
NIL
NIL
( ( ICON.REGION ( 103 171 125 48) ) ( EXP AND . REGION ( 105 168 69 39) ) ) )
ISAVED. VALUES -0 . l )
(SUPER.IMAGE #Unit (IMAGE.PANEL03254 BOLTZMANN) )
( TITLE "NOD04, s VALOR" )
(TITLEFONT FONTS: HL l OB )
( TOPUNIT (NIL) )
(VALUE.WAS.SAVED T)
( 'H DTH 69 )
rn now " /. F l avor· In st.nce"
NIL
( ( ICOH.WINDOW NIL) ( EXPAND . WINDOW NIL ) (CURRENT.WINDOW (EXPAND¡ J ; ) ; )
(DIGIMETER03307
( "PROYECTOS" "25-Nov-1986 17:38: 11" "PROYECTOS" "26-Aug-1987 9:48:50" )
NIL
( ( DIG IMETER ACT I V E IMAGES ) I MAGES )
NIL
()
( ( BORDER 4)
(FONT FONTS : CPTFONT)
( HEIGHT 37)
(IMAGE.WAS.PAINTED NIL)
( OBJECT . DISPLAYED #Slot ( VALOR NODOS BOLTZMANN OWN ) )
(REGION ( 109 121 65 37 )
NIL
NIL
NIL
( (ICON.REGION ( 109 121 125 48 ) ) ( EXPAND . REGION ( 109 121 65 37 ) ) ) )
( SAVED . VALUES 1 .1 )
(SUPER. IMAGE #Unit ( ItAGE . PANEL03254 BOLTZMANN ) )
( TITLE "NODOS' s VALOR" )
(TITLEFONT FONTS:HLlOB)
( TOPUNIT (NIL) )
(VALUE.WAS.SAVE T)
(WIDTH 65 )
(WINDOW "A Flavor Instance"
NIL
NIL
NIL
( ( ICON. WINDOW NIL ) ( EXPAND . WINDOW NIL ) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(DIGIMETER03310
( "PROYECTOS" "25-Nov-1986 1 7 :38 : 55" "PROYECTOS" " 26-Aug-1 987 9:48:51" )
NIL
( ( D IGIMETER ACTIVEI MAGES ) I MAGES )
NIL
()
( ( BORDER 4)
( FONT FONTS : MEDFNB )
( HE I GHT 39 )
( IMAGE. WAS. PAINTED NIL)
( OBJECT . DISPLAYED #Slot ( VALOR NOD06 BOLT ZMANN O WN ) )
( REGION ( 107 71 65 39 )
NIL
NIL
NIL
{ { ICCN.RES!C ( !07 71 125 4! ) ) ( EXPAND . REGION c : o7 71 65 37 ) ) ) )
( DIGIMETER033 l 3
( "PBOYECTOS" "25-Nov-1986 17:39:39" "PROYECTOS" "26-Aug-1987 9:48:51" )
NIL
( ( D I G IMETER ACT I V E I MAGES ) I MAGES )
NIL
()
( ( BORDER 4)
( FONT FONTS : MEDFNB )
( HEIGHT 40)
( I MAGE. WAS. PAINTED MIL)
(OBJECT.DISPLAYED lSlot ( VALOR NODO? BOLT Z MANN OWN ) )
( REGION ( 105 18 68 40 )
NIL ,i
NIL
NIL
( ( ICON . REGION ( 106 20 125 48) ) ( EXPAND . REGION ( 105 18 68 40) ) ) )
( SAVED . VALUES -0 . 1 )
(SUPER.IMAGE lUnit (IMAGE.PANEL03254 BOLTZMANN) )
(TITLE "NOD07/s VALOR" )
( TITLEFONT FONTS: HLlOB )
(TOPUNIT (NIL) )
(VALUE . WAS . SAVED T )
('HDTH 68 )
(WINDOW "A Flavor Instance"
NIL
NIL
NIL
( ( ICON . WINDOW NIL ( EXPAND . WIMDOW NIL t ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(DIGIMETER03366
( "PROYECTOS" "25-Nov-1 986 1 7 : 40 : 39 " "PROYECTOS" "26-Aug-1 987 9:48:52")
NIL
( ( DIGIMETER ACTIVEIMAGES) IMAGES)
NIL
()
;1
( ( BORDER 4)
( FONT FONTS : MEDFNB )
( HEIGHT 41)
(IMAGE.WAS.PAINTED NIL)
( OBJECT . DISPLAYED lSlot (PESO CON15 BOLTZMANN OWN) )
( REGION (217 303 85 41 )
NIL
NIL
N!L
((!C0 !nN (217 303 1!5 48 ) ) ( EXPAND . RF@TON (217 303 85 41 ) ) ) )
(SUPEB. IMAGE #U· '· f IMtGE.PANEL03254 BOLTZMANN) )
ITITLEFONT FONTS:HLlOB)
( TOPUNIT (NIL) )
( VALUE . WA S . SAVED T )
(WIDTH 85)
(WINDOW "A Flavor Instance"
NIL
NIL
PT '
,...L
'
-- ,- .
' .........................................................
, ., . · ,
, _,_
-
. 1 .
-
• i1 . . l* (', i• ,
·.· ·.· -.....................
__ . . ,- ,, ¡ ¡ I
'
J 1 J
-
J
( "PROYECTOS" "25-Nov-1986 17 :41 :06" "PROYECTOS" "26-Aig-1987 9:48:52 " )
NIL
( (DIGIMETER ACTIVEIMAGES) IMAGES)
NIL
()
( ( BORDER 4)
(FONT FONTS : MEDFNB )
( HEIGHT 42)
(IMAGE.WAS.PAINTED NIL)
(OBJECT. DISPLAYED #Slot (PESO CON16 BOLTZMANN OWN) )
( REGION ( 220 253 85 42 )
NIL
NIL
NIL
( (ICON.REGION (219 259 115 48 ) ) ( EXPAND . RE G I O N (220 253 85 42) ) ) )
( SAVED . VALUES 0 . 1 )
(SUPER.IMAGE #Unit (IMAGE.PANEL03254 BOLTZMANN) )
( TITLE "CON16's PESO" )
(TITLEFONT FONTS:HLIOB)
( TOPUNIT (NIL) )
(VALUE.WAS.SAVED T)
(WIDTH 85)
(WINDOW "A Flavor Instance"
NIL
NIL
NIL
( (ICON.WINDOW NIL) ( EXPAND . WI NDOW N I L ) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(DIGIMETER03370
( "PROYECTOS" "25-Nov-1986 1 7 : 4 1 :42" "PROYECTOS" " 26-Aug-1987 9:48:53" )
NIL
( (DIGIMETER ACTIVEIMAGES) IMAGES)
- - NIL - - -
()
( ( BORDER 4)
(FONT FONTS: MEDFNB )
( HEIGHT 41)
( IMAGE. WAS. PAINTED NIL)
( OBJECT . DISPLAYED #Slot (PESO CON26 BOLTZMANN OWN) )
( REGION (219 1 48 84 41 )
NIL
NIL
NIL
( (ICON.BEGION (222 203 115 48 ) ) (EXPAND.REGION (219 148 84 41 ) ) ) )
( SAVED . VALUES 0 . 1 )
(SUPEB . IMAGE #Unit (IMAGE.PANEL03254 BOLTZMANN) )
(TJTLE "CON26's ?ESO" )
(TITLEFONT FON S:HLlOB)
{ TQ P U N I T {NIL))
(VALUE.WAS.SAVED T)
( WIDTH 84)
(WINDOW "A Flavor Instance"
NIL
NIL
N IL
( ( ICON.WIHDOW N:L) ( EXPAND . WINDOW ( CUBBENT . WINDOW (EXPAND ) ) ) ; ; ;
(DIGIMETEB03372
( "PROYECTOS" "25-Nov-1'86 17 : 42:04" "PROYECTOS" "26-Aug-1987 9 :4 8 : 5 3 " )
NIL
( ( D I G I METER ACT I V E I MAGES ) IMAGES )
NIL
()
( ( BORDER 4)
(FONT FONTS:BIGFNT)
( HEIGHT 44)
( IMAGE . WAS. PAINTED NIL )
( OBJECT . DISPLAYED #Slot ( PESO CON25 BOLTZMANN OWN ) )
( REGION ( 220 201 83 44 )
NIL
NIL
NIL
{ 1
( ( ICON . REGION 225 155 115 48 ) ) ( EXPAND . REGION ( 220 201 83 44 ) ) ) )
( SAVED . VALUES 0 . 1 )
(SUPER. IMAGE # U n i t ( IMAGE . PANEL03254 BOLTZMANN ) )
(TITLE "CON25's PESO" )
(TITLEFONT FONTS:HLlOB)
(TOPUNIT (EIL))
(VALUE.WAS.SAVED T)
(WIDTH 83 )
(WINDOW "A Fl.voi Instanee"
NIL
NIL
NIL
( ( ICON . WINDOW NIL ) ( EXPAND . WINDOW NIL ) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(OIGIMETER03374
'
( "PROYECTOS" "25-Nov-1986 17:42:40" "PROYECTOS" 26-Aug-1987 9:48:54")
NIL
( ( DIGIMETER ACTIVEIMAGES) IMAGES)
NIL
( ( BORDER 4 )
(FONT FONTS:BIGFNT)
( HEIGHT 44)
(IMAGE.WAS.PAINTED NIL)
-{ OBJECT .DISPL-AYED- #Slot - H tSSO CON35 BOLTZMANN OWN ) )
(REGION ( 221 93 82 44)
NIL
NIL
NIL
( (ICON.REGION ( 228 99 115 48 ) ) ( EXPAND . REGION (221 93 82 44 ) ) ) )
(SAVED. VALUES 0. 1 )
(SUPER.IMAGE #Unit (IMAGE.PAMEL03254 BOLTZMANN) )
(TOPUNIT OIIL) )
( VALUE . WAS . SAVED T )
(WIDTH 82)
('HNDOW "A Flavor Instanee"
HIL
NIL
NIL
( ( I C0N . W ! NDOW 1!!: ( Y . ' . \·' I
'' ' o NIL) (CURREN!. ?! !DOW ( EXP.. !D ) ) ) ) ) )
•. " '" é ( ·:rCTOS" " 25-lv- 1 c·s6 1 7 : L¡ 3 : 1 3 " " PBOYECTOS" " 26-..ug- 1 987 c· : 48 : .S4 " )
NIL
( (DIGIMETER ACTIVEIMAGES) IMAGES)
NIL
( )
( ( BORDER 4)
(FONT FONTS : MEDFNB )
( HEIGHT 42)
(IMAGE.WAS.PAINTED NIL)
(OBJECT. DISPLAYED #Slot (PESO CON45 BOLTZMANN OWN) )
(REGION (328 304 81 42)
NIL
NIL
NIL
( ( ICON. REGION ( 230 43 115 48 ) ) ( EXPAND . REGION (328 304 81 42) ) ) )
( SAVED . VALUES 0 . 1 )
( SUPER . IMAGE llUnit ( I t1AG E . P A NEL03254 BOL T Z MANN ) )
(TITLE "CON45's PESO")
(TITLEFONT FONTS: HL l OB )
( TOP UN IT ( N I L ) )
(VALUE.WAS.SAVED T)
(WIDTH 81 )
(WINDOW "A Flavor Instance"
NIL
NIL
NIL
( (ICON.WINDOW NIL) ( EXPAND . WI NDOW N I L ) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(DIGIMETER03378
( "PROYECTOS" " 25-Nov-1 986 1 7 : 43 : 46" "PROYECTOS" " 26-Aug-1987 9:48:54")
NIL
( (DIGit1ETER ACTIVEIMAGES) IMAGES)
NIL
()
( ( BORDER 4)
(FONT FONTS : MEDFNB )
( HEIGHT 41)
(IMAGE.WAS.PAINTED NIL)
(OBJECT . DISPLAYED lSlot ( PESO CON46 BOLTZMANN OWN ) )
( REGION (324 254 93 41 )
NIL
NIL
IHL
( ( ICON. REGION ( 330 305 115 48 ) ) ( EXPAND . REG I O N ( 324 254 93 41 ) ) ))
( SAVED . ALUES - Orl )
(SUPER.IMAGE #Unit ( IMAGE . PANEL03254 BOLTZMANN ) )
( TITLE "COM46·' s PESO" )
( T TTLEror T FONTS : rrr 1 0[ )
(TOPUNIT (M:L) )
(WIDTH 93 )
(WINDOW "A Flavor Instance"
NIL
NIL
NIL
( ( ICON . WINDOW NIL) ( EXPAND . WINDOW N I L ) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
NIL
( (DIGIMETER ACTIVEIMAGES) IMAGES)
NIL
( ( BORDER 4)
( FONT FONTS : MEDFNB )
( HEIGHT 43 )
( IMAGE . WAS. PAINTED NIL)
(OBJECT.DISPLAYED #Slot ( PESO CON36 BOLTZMANN OWN ) )
( BEGION (224 40 84 43 )
NIL
NIL
NIL
( (ICON.REGION (322 2: 115 48) ) ( EXPAND . REGION ( 224 40 84 43 ) ) ) )
( SAVED . VALUES 0 . 1 }
( SUPER . IMAGE #Unít ( I MAGE . PANEL03 2 54 BOLTZ M.1NN ) )
(TITLE "CON36/s PESO")
(TITLEFONT FONTS:HLlOB)
( TOP U N I T ( N I L ) )
(VALUE.WAS.SAVED Tl
(WIDTH 84 )
( WINDOW "A Flavor· Instance"
NIL
NIL
NIL
( (ICON.WINDOW NIL) ( EXPAND . WI NDOW NIL} ( CURBENT . WINDOW ( EXPAND ) ) ) ) ) )
(DIGIMETEB03382
( "PROYECTOS" "25-Nov-1986 1 7 : 45: 10" " PROYECTOS" " 26-Au -1987 9:48:55" )
NIL
( ( DIGIMETER ACTIVEIMAGES) IMAGES)
NIL
( ( BORDER 4}
( FONT FONTS : MEDFNB )
( HEIGHT 42)
(IMAGE.WAS.PAINTED NIL)
(OBJECT . DISPLAYED l/Slot (PESO CON57 BOLTZMANN OWN) )
( REGION (325 147 99 42 )
NIL
NIL
NIL
( (ICON.REGION (324 205 115 48 ) ) ( EX P AND . RE G I O N (325 147 99 42 ) ) ) )
( SAVED . VALUES 0 . 3 )
(SUPER.IMAGE #Unit ( IMAGE . PANEL03254 BOLTZMANN ) )
(TITLE "CON57/s PESO" )
tTITLEFONI FONTS:HLlOB)
(VALDE.WAS.SAVED T)
(WIDTH 99 )
(WINDOW "A Flavor Instance"
NIL
NIL
NIL
( fICON.WINDOW NIL) ( EXPAND . r unnw !L) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) }
\ L . i: .: · -- --·· - - --
-
( "PRC-::;:Tos · ' _ 5-fcv- l S\:.6 1 7 : 45 : 42 " '1PROYECTOS 11 " 26-P.ug- i 987 9:4E:561l j
!H L
l (DIGIMETER ACTIVEIMAGES) IMAGES)
NIL
( ( BORDER 4)
( FONT FONTS: MEDFNB)
( HEIGHT 43 )
(IMAGE.WAS.PAINTED NIL)
(OBJECT.DISPLAYED #Slot (PESO CON67 BOLTZMANN OWN) }
( REGION (327 92 95 43 )
NIL
NIL
NIL
( ( ICON . REGION (324 147 115 48 ) ) ( EXPAND . REGION (327 92 95 43 ) ) ) )
(SAVED . VALUES 0 . 3 )
( SUPER. IMAGE #Unit ( IMAGE.PANEL03254 BOLTZMANN) )
(TITLE "CON67"s PESO")
(TITLEFONT FONTS:HLlOB)
( TOPUNIT (NIL) )
(VALUE.WAS.SAVED T)
( W I D' 95 )
(WINDOW "A Flavor Instance"
NIL
NIL
N IL
( (ICON.WINDOW NIL) ( EXPAND . WI NDOW N I L ) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(DIGIMETER03386
( "PROYECTOS" "25-Nov-1986 1 7 : 46 : 03" "PROYECTOS" " 26-Aug-1 987 9:48:56" )
NIL
( ( DIGI METER ACT I V E I MAGES ) IMAGES )
NIL
()
( ( BORDER 4)
(FONT FONTS : MEDFNB )
( HEIGHT 41)
( IMAGC. WAS. PAINTED NIL )
(OBJECT . DISPLAYED lSlot (PESO CONS6 BOLTZMANN OWN) )
( REGION (324 200 94 4 1 )
NIL
NIL
NIL
( ( ICON . REGION (326 94 115 48 ) ) ( EXPAND . REGION (324 2 00 94 41 ) ) ) )
( SAVED . VALUES 0 . 1 )
(SUPER.IMAGE #Unit (IMAGE.PANEL03254 BOLTZMANN) )
( TITLE "CON56 ' s PESO" )
(TITLEFCNT FONTS:HL!0P)
( T1)lUNIT (!HL) )
VALUE . WAS . SMVED T j
(WIDTH 94)
( WINDOW "A Flavol Instance"
NIL
NIL
NIL
( (ICON.WINDOW NIL) ( EXPAND . WINDOW NIL ) ( CURRENT . WI NDOW ( EXPAND ) ) ) ) ) )
HIL
( ( IMAGE.PANEL ACTIVEIMAGES) IMAGES)
NIL
()
((BORDER 12)
( HEIGHT 377)
(IMAGE.WAS.PAINTED (NIL) )
(IMAGES
( #Unit ( METHOD . ACTUATOR03927 BOLTZMANN ) #Unit ( METHOD . ACTUATOR04439 BOLTZMANN )
#Unit ( METHOD . ACTUATOR03346 BOLTZMANN )
#Unit ( DIGIMETER03386 BOLTZMANN )
#Unit (DIGIMETER03384 BOLTZMANN)
#Unit (DIGIMETER03382 BOLTZMANN)
ltun i t (DIGIMETER03380 BOLTZMANN)
ur· -·it ( DIGIMETER0337B BOLTZMANN)
l t ( DIGIMETER03376 BOLTZMANN)
#Unit (DIGIMETER03374 BOLTZMANN)
#Unit (DIGIMETER03372 BOLTZMANN)
#Unit ( DIGIMETER03370 BOLTZMANN J
#Unit (DIGIMETER03368 BOLTZMANN)
#Unit (DIGIMETER03366 BOLTZMANN)
#Unit (DIGIMETER03313 BOLTZMANN)
#Unit ( ERTICAL.TRAFFIC.LIGHT03312 BOLTZMANN)
llU n i t (0IGIMETER03310 BOLTZMANN)
#Unit (VERTICAL.TRAFFIC.LIGHT03309 BOLTZMANN)
ltunit (DIGIMETER03307 BOLTZMANN )
#Unit (VERTICAL.TRAFFIC.LIGHT03306 BOLTZMANN)
#Unit (DIGIMETER03304 BOLTZMANN)
#Unit ( VERTICAL . TRAFFIC . LIGHT03303 BOLTZMANN )
#Unit (DIGIMETER03301 BOLTZMANN)
t/U n i t ( VERTICAL . TRAFFIC. LI HT03299 BOLTZMANN )
llU n i t ( DIGIMETER03297 BOL1 1ANN )
#Unit (VERTICAL.TRAFFIC.LIGHT03296 BOLTZMANN)
#Unit (DIGIACTUATOR03294 BOLTZMANN)
#Unit ( VERTICAL . TRAFFIC . LIGHT03293 BOLTZ MAHN ) )
( OBJECT . DISPLAYED #KB ( BOLTZMANN ) )
(REGION ( 3 4 459 377 )
NIL
HIL
NIL
( (ICON.REGION ( 2 6 242 48 ) ) ( EXPAND . RE G I O N ( 3 4 459 377 ) ) ) )
(TITLE "Image Panel for RED in KB VERSION")
(TITLEFONT FONTS : HL I OB )
( TOPUNIT #Unit (RED BOLTZMANN))
(WIDTH 459)
(WINDOW "A Flavor Instance"
NIL
NIL
NIL
T1 ·1 r •
,, . . : :U 2E T.WIHDOW ( :CON) ) ) ) ) )
(IMAGES
( "PROYECTOS" "25-Nov-1986 1 7 : 30 : 10" "PROYECTOS" " 25-Nov-1 986 1 7 :30 : 13" )
NIL
( ( CLASSES GENERI CUJ : T S ) )
¡ ( DELETE DELETE . ALL . IMAGES METHOD MET OD )
( DELETE . ALL . IMAGES DELETE . ALL . IMAGES METHOD METHOD)
( DONT . RECREATE . IMAGES . AFTER . KBLOAD ASKUSER MIL {OME.OF T NIL ASKUSER) )
( RECREATE . ALL . IMAGES RECREATE . ALL. IMAGES METHOD METHOD)
(SAVE.ALL.IMAGES SAVE.ALL.IMAGES METHOD METHOD)
( USER . DELETE . ALL . IMAGES USER. DELETE . ALL . IMAGES METHOD METHOD)
(USER . BECREATE . ALL . IMAGES USER . RECREATE . ALL . IMAGES METHOD METHOD ) ) )
( METHOD . ACTUATOB03346
( "PROYECTOS" "26-Nov-1986 1 5 : 07 : 04" "PROYECTOS" " 26-Aug-1987 9:48:44" )
NIL
( {METHOD.ACTUATOR ACTIVEIMAGES) IMAGES)
NIL
()
( { BORDER 4)
( FONT FONTS : HL6)
(HEIGHT 133)
(IMAGE.WAS.PAINTED NIL)
(OBJECT . DISPLAYED #Slot ( RETRACT REGLAS . ALGORITMO BOLTZMANN OWN ) )
( REGION ( 177 122 40 1 33 )
NIL
MIL
NIL
( (ICON.REGION ( 181 95 210 48) ) ( EXPAND . REGION ( 177 122 40 133) ) ) )
( SAVED . VALUES j RULESYSTEM2>RULE . CLASSES : RETRACT ! method f )
(SUPER. IMAGE l/Unit ( I M AG E . P ANEL03254 BOLTZMANN ) )
( TITLE " REGLAS. ALGORITMO's RETRACT" )
(TITLEFONT FONTS:HLlOB)
( TOPUNIT (NIL))
(VALUE.WAS.SAVED T)
(' DTH 40 )
(WINDOW "A Flavor Instance"
NIL
NIL
NIL
( (ICON.WINDOW NIL) ( EXPAND . WINDOW NIL ) (CURRENT.WINDOW ( EXPAND J ) ) ) ) )
( METHOD . ACTUATOR03927
( "PROYECTOS" "10-Dec-1986 1 5 : 35 : 52 " "PROYECTOS" " 26-Aug-1987 9:48:44")
NIL
( (METHOD.ACTUATOR ACTIVEIMAGESJ IMAGES)
NIL
()
( ( BORDER 4)
( FONT FONTS : HL6)
(HEIGHT 71)
(IMAGE.WAS.PAI TED NILJ
( 0BJEC! . DISPL Y 0 r510 :O !GEN RED BOLIZMAMN unn ¡ ¡
( REGION (176 35 41 71)
NIL
NIL
NIL
( (ICON.REGION ( 181 237 109 48 ) ) { EXPAND . REGION (176 35 41 71 ) ) ) )
( SAVED . VALUES I BOLTZMANN>RED : : ORI GEN ! method l )
(SUPER.IMA6E #U it (IMAGE.PANEL03254 BOLTZMAHH) )
(TITLE "BED'! OBIGEN" l
-, J
·.-' ., ; . ._ - :. " ;--
(TOPUiHT (HlL) )
(VALUE.WAS.SAVED T)
(WIDTH 41 )
(WINDOW ºA F l avor I n stance º
NIL
NIL
( (ICON.WINDOW NIL) ( EXPAND . W I NDOW N I L ) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(METHOD.ACTUATOR04439
( "PROYECTOS" "26-Nov-1986 1 5 : 35 : 00" " PROYECTOS" " 26-Aug-1 987 9:48:45")
NIL
( ( METHOD. ACTUATOR ACTIVEit1AGES ) ItAGES )
NIL
()
( ( BORDER 4)
( FONT FONTS : HL6)
(HEIGHT 62)
( IMAGE . WAS. PAINTED NIL)
(OBJECT.DISPLAYED #Slot ( ALGORITMO RED BOLT Z MANN O WN ) )
( REGION (328 21 117 62)
NIL
NIL
NIL
( (ICON.REGION (328 21 133 48 ) ) ( EXPAND . REGION (328 21 117 62) ) ) )
( SAVED . VALUES I BOLTZMANN>RED : : ALGORITMO ! method J )
( SUPER . IMAGE #Unit ( IMAGE . PANEL03254 BOLTZMANN ) )
( TITLE " RED' s ALGORITMO" )
( TITLEFONT FONTS : HL l OB )
( TOPUNIT ( NIL ) )
( VALUE . WAS . SAVED T )
(WIDTH 117)
(WINDOW "A Flavor Instance"
NIL
NIL
NIL
( ( !CON . WINDOW NIL) ( EXPAND . W IHDOW N I L ) ( CURRENT . WINDOW ( EXPAHD ) ) ) ) ) )
( NODO!
( "proyectos " " 14-Nov-1 986 1 3 : 32 :51 " " PROYECTOS" "12-Dec-1986 1 1 : 33 : 1 3 " }
NIL
(NODOS)
NIL
()
( (CONEXIONES ( CON1 5 CON 16 ) )
( E ST..DO ( I N. CTIVO ) )
(IDFNTI TCACION (ENTRADA) )
( VALOH (-0. 1 ) )
(VAEIAPLE ( f? ! L ) ) ) J
( NOD02
( ":royectos" "14-Nov-1986 13:32:51" "PROYECTOS" "12-Dec-1986 1 1 : 33 : 13" )
NIL
( NODO S )
NIL
{)
\ _ ._ _ , , _ -. \ - ; ·-· - - - · .,, I
(lDENTIFICACION (ENTRADA) )
( VP.LOH (-0. l ) )
(VARIABLE (NIL) ) ) )
(NOD03
( "proyectos" "14-Nov-1986 13:32 :51" "PROYECTOS" " 12-Dec-1986 1 1 : 33 : 14" )
NIL
( NODOS)
NIL
(N0004
( "proyectos" "14-Nov-1986 13:32 :51" "PROYECTOS" " 12-Dec-1986 1 1 : 33 : 1 4 " )
NIL
(NODOS)
NIL
()
( (CONEXIONES (CON45 CON46) )
( ESTADO (INACTIVO) )
(IDENTIFICACION ( ENTRADA ) )
( VALOR ( -0 . 1 ) )
(VARIABLE (NIL) ) ) )
( NODOS
( "proyectos" "14-Nov-1986 13:32:51" "PROYECTOS" " J .:-Dec-1986 1 1 : 33 : 1 8
" )
NIL
( NODOS )
NIL
()
( ( CONEXIONES ( CON1 5 CON25 CON35 CON45 CONS6 CONS7 ) )
( ESTADO ( AC T I VO ) )
(VALOR ( l . l ) ) ) )
( NOD06
( "proyectos" " 14-Nov-1986 1 3 : 32 :52 " "PROYECTOS" " 1 2-Dec-1986 1 1 : 33 : 1 6 " )
NIL
( NODOS )
NIL
()
( ( CONEXIONES (SON!6 C0N2 rnu? CON 6 CON56 CON67 ) )
( ES ADO ( AC!!VO ) )
( IDEl TIFICACION ( IHTERf:: . : = . .. ::
( VALOR ( l . l ) )
(VARIABLE (T) ) l)
{!ODO?
( ":royectos" "14-Nov-1986 1 3 : 32 : :, : ;• '' ?EOYECTOS" " 1 2-Dec-1986 11 :33:10")
¡IL
(NODOS )
NIL
()
( (CONEXIONES (CON57 CON67) )
( ESTADO (INACTIVO) )
(IDENTIFICACION ( SALIDA ) )
( VALOR ( -0 . 1 ) )
(VARIABLE (NIL) ) ) )
(NODOS
( "proyectos" "14-Nov-1986 1 3 : 32 : 51 " "PROYECTOS" " 26-Aug-1987 9:22:53")
( RED)
( (CLASSES GENERICUNITS) )
"Unidades o "
( ( COMP ROBAR . SAL I DA
( LAMBDA ( SELF )
(COND ( (EQUAL ( G:I . VALUE SELF '"ESTADO) (GET.VALUE SELF ··· sAL IDA . P ATRON ) )
- -}---- --- --
· ( P U' . VALU E ,· RED - ,. CORRECTO ¿ S I-)
(T ( PUT. VALUE '"RED '"CORRECTO '"NO ) ) ) )
METHOD
(METHOD)
NIL
( ( COMMENT
"Comprueba si el estado del nodo despues de la segunda fase del algoritmo es igual al q
indicaba el patron de entrenamiento" ) ) )
( CONEXIONES NIL
NIL
NIL
NIL
( (COMMENT ( "Lista de las conexiones en las que interviene el nodo") ) ) )
( ESTADO (INACTIVO)
NIL
( (ONE.OF ACTIVO INACTIVO) )
NIL
( (COMMENT ( "Estado actual del nodo") ) ( CARDI NALITY . MAX ( 1 ) ) ) )
(IDENTIFICACION
( INTERMEDIO)
NIL
( ( ONE . OF ENTRADA S A L I DA INTERMED I O ) )
NIL
( ( COMMENT
( "Funcion del nodo en la red , ya sea elemento de ENTRADA , INTERMEDIO, o de SALIDA " ) )
( CARDI N.<LI T Y . MAX ( l ) ) ) )
(SALIDA. PATRON
NIL
NIL
f ( ONE . OF ACTIVO INACTIVO) )
NIL
: \C RDINALITY.M X (lJ)
(COMMENT
''Contiene el estado del nodo para el patron de ent ada.Solo es relevante si la identifi
ion del nodo es SALIDA" ) ) )
( UMBRAL
( -0 . 1 )
NIL
( REAL )
NIL
( (AVUNITS (#Unit ( CORRECCION BOLTZMANN ) ) )
( COMMENT
( "Valor numerico que tiene el nodo, a partir del cual se determina su estado de activacj
o inact i vacion " ) )
( CARDINALITY . MAX ( 1 ) ) ) )
( VARIABLE
(T)
NIL
( ( ONE . OF T N IL ) )
NIL
( ( COMMENT
("Variable booleana ( T , NIL ) que indica si el e,_'ado del nodo puede ser cambiado por el j
cionamiento interno de la red. Su valor es NIL cuando el nodo es de ENTRADA o de SALIDA" ) )
( CARDINALITY . MAX ( 1 ) ) ) )
( VER . SI . ACTIVA . A
( LAMBDA (SELF CONEXION)
(PROG ( (NODO ( COND ( ( EQUAL SELF ( GET . VALUE CONEXION 'PUNTOl ) )
( GET . VALUE CONEXION ' PUNT02 ) )
(T (GET . VALUE CONEXION 'PUNTOl ) ) ) )
( P ESO . ARCO ( GET. VALUE CONEXION .. PESO ) ) J- -
(COND ( ( GET . VALUE NODO ,. VARI ABLE )
(PUT.VALUE NODO ,. VALOR (+ ( GET . VALUE NODO -' VALOR ) P ES O . ARCO ) )
( CONO ( (>= ( GET . VALUE NODO 'VALOR ) (GET.VALUE NODO -UMBRAL ) )
( PUT . VALUE NODO 'ESTADO 'ACTIVO ) )
(T ( PUT . VALUE NODO ' ESTADO ' INACTIVO) ) ) ) (T
HIL)) ) )
METHOD
(METHOD)
NIL
( ( COMMENT
("Metodo que calcula el estado de los nodos conectados con el nodo propietario del met
Toma como argumentos el nodo propietario y una unidad de UNIONES" ) ) ) ) )
( ( CALCULO
(LAMBDA ( SELF )
( ASSERT NIL ' REGLA . CALCULO ) )
METHOD
( METHOD )
NIL
( ( COMMENT
( "Metodo que dispara el funcionamiento interno de la red a partir de una determinada si
cion utilizando REGLA.CALCULO") ) ) )
( CREAR . NODOS ( LAMBDA ( SELF )
( P B OG ( DA T O )
( CLI : TERPRI )
(SLI : TERPRI )
( PUT . VALUE DATO
'ESTADO
( MENO ( GET . SLOT . MENU --- NODOS . MENUESTADO ' OWN ) )
' OWN )
(PUT.VALUE DATO
'IDENTIF!CACION
(ME:HU ( GET.SLOT .HENU · t o;,;._:_, , , ii üIDENTIF ·· OWN ) )
( f·1E"i HOD )
!H L
( ( COMMENT " Cont iene la funcion que crea nuevos nodos " ) } }
( MENUESTADO
( ( '' .t C T I VO " ··· ,tC T I VO ) ( " INACTIVO" ... INACTIVO ) }
NIL
(MENUITEM}
NIL
( (TITLE ( "ESTADO DESEADO" } )
(COMMENT " Menu :ara elegir el estado de un nodo en el momento de su creacion" ) ) )
( MENU I DENT I F
( ( "ENTARDA" 'ENTRADA) ( "SALIDA" 'SALIDA) ( "INTERMEDIO" 'INTERMEDIO} )
NIL
(MENUITEM)
NIL
( (TITLE ( "IDENTIFICACION DEL NODO" ) )
( COMMENT " Menu para elegir la ident i ficacion del nodo en el momento de su creacion" ) ) )
(SUPRIMIR.NODOS ( LAMBDA ( SELF )
( CLI : TERPRI )
( PlUNTOUT T "NOMBRE DEL NODO : " )
(UNITDELETE ( CLI : REA! ) ) )
METHOD
( METHOD)
NIL
( ( COMMENT " Contiene el metodo que suprime un nodo de la red" ) ) ) ) )
(PRUEBA
( "PROYECTOS" "12-Dec-1986 11 :50: 16")
NIL
( ( ENT I T I ES GENERICUNITS ) )
NIL
()
() }
(R.ACTIVO
("proyectos" "14-Nov-1986 13:33:24" "PROYECTOS" "19-Nov-1986 1 0 : 57 : 55 " )
NIL
( REGLA . ESTADO )
NIL
()
( ( ASSERTION ( llWff C AN ESTADO OF ?NODO IS ACTIVO ) ) )
( EXTERNAL . FORM (IF ( ( THE VALOR OF ?NODO. IS ?X) AND
(THE UMBRAL OF ?NODO IS ?Y)
AND
(>= ? X ? Y ) )
THEN
(R.ACTUALIZACION
( " PROYECTOS" " 27-Nov- 1986 15:46:26" "PROYECTOS" "10-Dec-1986 15:14:00" )
NIL
(REGLA. INICIO.FASE! REGLA.INIC10.FASE2)
( R . ASIGNACION .PATRON
( "PROYECTOS" " l l-Dec-1 986 16 : 27 :52" "PROYECTOS" " 1 2-Dec-1986 11 :56:08" )
NIL
( REGLAS . ASIGNACION . PATRON )
"Pide al usuario los valores correspondientes para los nodos de un patron"
()
( ( ACTION ( (PRINTOUT T ( UN I T . NAME ?NODO ) " " ) (PUT.VALUE ?NODO 'VALOR (READ) ) ) )
••••
(EXTERNAL.FORM
( IF ( (?NODO IS IN NODOS) ANO
( ( THE IDENTIFICACION OF ?NODO IS ENTRADA) OR
(THE IDENTIFICACION
OF
?NODO
IS
SALIDA) ) )
DO
(PRINTOUT T (UNIT.NAME ?NODO ) " )
••• •"
(R.CALCULO
( "proyectos" " 14-Nov-1986 13:34:32" "PROYECTOS" "ll-Dec-1986 15:44: 16" )
NIL
( REGL.A . CALCULO )
NIL
()
( (ACTION ( (PRINT ?NODO) (PRINT ?DESTINO ) ( UNITMSG ?NODO 'VER . SI . ACTIVA . A ?DESTINO) ) )
(ASSERTION)
(EXTERNAL.FORM (IF ( AN D (THE ESTADO OF ?NODO IS ACTIVO)
( THE CONEXIONES OF ?NODO IS ?DESTINO ) )
DO
(PRINT ?NODO )
(PRINT ?DESTINO)
( UNITMSG ?NODO 'VER . SI . ACTIVA . A ? DE S T I NO ) ) )
(PREMISE ( #Wff ( AN ESTADO OF ?NODO IS ACTIVO ) #Wff (A CONEXIONES OF ?NODO IS ?DESTINO) ) ) ))
(R.CAMBIO.PESO.FASEl . l
("PROYECTOS" "17-Nov-1986 16:29:00" "PROYECTOS" "10-Dec-1986 14: 16:45" )
NIL
(REGLA.CAMBIO.PESO.FASE! )
, ,
'' P ESO
(+ (GET.VALUE ?CON ,. P ESO ) (GET.VALUE ,. RED ' DELTA ) ) ) ) )
(PBEMISE ( #Wff ( AN ESTADO OF ?NODO IS ACTIVO) #Wff (A CONEXIONES OF ?NODO IS ?CON)
#Wff ( AN ACTUALI ZACION OF ?CON IS NO )
#Wff ( A PUHT02 OF ?CON IS ?ffODO )
#Wff (A PUNTO! OF ?CON IR ?UAF )
#Wff AN ESTADO OF ?VAR3 IS ACTIVO) l ) l )
(R.CAMBIO.PESO.FASE2. l
( "PROYECTOS" "27-Nov-1986 16:16:45" "PROYECTOS" "lO Dec-1986 14:18:26")
NIL
( REGLA . c.<.MBI O . PESO . FASE2 )
NIL
' '
l .
, l ...........r=· ·:
(THE CONEXiONES OF ?NODO IS ?GO )
.ó,HD
( THE ACTUALIZACION OF ?CON IS NO )
AND
( THE PUNTO! OF ?CON IS ?NODO )
AND
(THE ESTADO
OF
( THE PUNT02 OF ?CON )
IS
ACTIVO ) )
THEN
( THE ACTUALIZACION OF ?CON IS SI)
DO
(PUT.VALUE ?CON
'' P ESO
(- (GET.VALUE ?CON /PESO) ( GET . VALUE /RED /DELTA ) ) ) ) )
(PREMISE ( #W f C AN ESTADO OF ?NODO IS ACTIVO ) #Wff ( A CONEXIONES OF ?NODO IS ?CON )
#Wf f ( AN ACTUALIZACION OF ?CON IS NO )
#Wff (A PUNTOl OF ? CON IS ?NODO )
#Wff (A PUNT02 OF ?CON IS ?VAR4)
#Wff ( AN ESTADO OF ?VAR4 IS ACTIVO ) ) ) ) )
(R.CAMBIO.PESO.FASE2.2
( "PROYECTOS" " 27-Nov- 1 986 16 : 16 : 50" "PROYECTOS" " 10-Dec-1986 14: 18:23" )
NIL
(REGLA.CAMBIO.PESO.FASE2)
NIL
()
((ACTION ( (PUT.VALUE ?CON /PESO (- ( GET . VALUE ?CON ·' P ESO ) (GET.VALUE /RED / DELTA ) ) ) ) )
( ASSERTION ( llW : f C AN ACTUAL I Z AC I ON OF ?CON IS SI ) ) )
(EXTERNAL.FORM (IF ( (THE ESTADO OF ?NODO IS ACTIVO ) AND
( THE CONEXIONES OF ?NODO IS ?CON )
AND
(THE ACTUALIZACION OF ?CON IS NO )
AND
(THE PUNTO! OF ?CON IS ?NODO )
AND
(THE ESTADO
OF
(THE PUNT02 OF ?CON)
IS
ACTIVO) )
THEN
(THE ACTUALI ZACION OF ?CON IS SI)
DO
(PUT.VALUE ?CON
·· l' ESO
(PREM:SE (#Wff ( Aíl ESTADO OF ?NODO IS ACTIVO ) #Wff ( A CONEXIONES OF ?NODO IS ?CON)
#Wff (AN ACTUALIZACION OF ?CON I S NO )
·#Wff ( A PUNTO! OF ? CON IS ?NODO)
#Wff (A PUNT02 OF ?CON IS ?VAR5)
#Wf f C AN ESTADO OF ?VAR5 IS ACTIVO ) ) ) ) )
(R.FIJAR.SALIDA.PATRON
( "PROYECTOS" " l l-Dec-1 986 17:45:25" "PROYECTOS" "ll-Dec-1986 17:48:09" )
NIL
( REGLA .FIJAR . SALIDA. PATRON )
NIL
( (ACTION ( (PUT.VALUE ?NODO ' SALIDA . PATRON (GET.VALUE ?NODO ··· ESTADO ) ) ) )
( EXTERNAL . FORM ( IF ( ( ?NODO IS IN NODOS ) AND (THE IDENTIFICACION OF ?NODO IS SALIDA ) )
DO
(PUT.VALUE ?NODO ..S.tLIDA . PATRON (GET.VALUE ?NODO ·' ESTADO ) J ) )
(PREMISE (#Wff ( ?NODO IS IN CLASS NODOS) l/Wff ( AN I DENT I F I CA C I ON OF ?NODO IS SALIDA ) ) ) ) )
(R. INACTIVO
(":royectos" "14-Nov-1986 1 3 : 33 : 24" "PROYECTOS" " 19-Nov-1 986 10:58: 17")
NIL
( REGLA . ESTADO }
NIL
()
( (ASSERTION (lWff ( AN ESTADO OF ?NODO IS INACTIVO ) } )
(EXTERNAL.FORM (IF ( (THE VALOR OF ?NODO IS ?X) ANO
( TH E UMBRAL OF ?NODO IS ?Y)
ANO
(< ?X ?Y) )
THEN
(THE ESTADO OF ?NODO IS INACTIVO ) ) )
( PREMISE ( ltWff ( A VALOR OF ?NODO IS ?X) lWff ( A UMBRAL OF ?NODO IS ?Y) #tW f f (< ?X ?Y) ) ) )J
(R. INICIO.FASE2
("PROYECTOS" "19-Nov-1986 1 1 : 09 : 05 " "PROYECTOS" " l l-Dec-1 986 15:25:44")
NIL
(REGLA.INICIO.FASE2}
NIL
()
( ( ACTION
( (FUT.VALUE ?NODO .. V{.LOR (- ( GET . VALUE ?NODO "UMBRAL} ( GET . VALUE "RED 'DELTA ) ) )
(R.VALORES
( "PROYECTOS" " 10-Dec-1986 1 5 : 32 : 39" "PROYECTOS" " 10-Dec-1 986 15:32:39")
NIL
(REGLAS.ORIGEN)
NIL
()
'
(B.VABIABLE.FASEl
( "pr·oyectos" " 14-Nov-1 986 13:35:20" "PROYECTOS" "26-Nov-1986 15:25:33" )
NIL
( REGLA . VARIABLE . FASEl )
NIL
(R.VARIABLE.FASE2
( "PROYECTOS" " 1 7-Nov-1 986 1 6 : 30 : 00" "PROYECTOS" " 26-Nov-1· 36 15:31 :55")
NIL 1<
NIL
( REAL )
NIL
( ( COMMENT
( "Valor corrector de los pesos de las conexiones en el algoritmo de aprendizaje") )
( CARDINALI TY . MAX ( 1 ) ) ) )
(ITERACION
( LAMBDA ( SELF)
(U ITMSG 'RED 'ASIGNAR.PATRON)
! UNIT Se ' RED ' A 0 ITMO )
( UNITMSG 'RED ' C M?RDBACI0H ) )
(METHOD )
NIL
( ( COMMENT "Metodo que real iza una iteracion completa con todos los patrones de entrada " ) ) )
( MENUOPERACIONES
( ( "CREAR NODOS" 'N) ( "CREAR UNIONES" ,· u )
( "SUPRIMIR NODOS" 'SN)
( " SUPRIMIR UNIONES" 'ST
( "FIN" ,· F ) )
( ME!W I T E M )
NIL
( (TITLE ( "OPERACIONES BASICAS" ) ) (FONT ( KEE . TITLE . FONT ) )
( COMMENT " M enu pr i nc i pal d e crea c i on •ie l a t ed " ) ) )
(OPERACIONES
( LAMBDA ( SELF )
(PROG ( (OPERACIOH NIL) )
( DO NIL
( (EQ OPERACION /F) )
(SETQ OPERACION ( MENU (GET .SLOT .MENU ·' RED .. MENUOPERACIOHES .. OWN ) ) )
( COND ( I EQ O P E RAC I ON .. N )
( UNITMSG .. NODOS /CREAR . NODOS ) )
( ( EQ OPERACION ' U )
( UNITMSG 'UNIONES .. CREAR . UNIONES ) ) f
(EQ OPERACION /SN )
( UNITMSG 'NODOS 'SUPRIMIR . NODOS ) )
( EQ CPERACION 'SU )
( UNI TMSG ' UNI ONES ' SUP R I M I R . UNIONES ) ) ) ) ) )
METHOD
(METHOD)
HIL
( ( COMMENT " Cont iene la funcion que se o apa del menu pr incirel d operaciones " ) ) )
( ORIGEN ( LAMBDA ( SELF )
( ASSERT •H I L ' REGLAS . OR I GEN ) )
METHOD
( METHOD )
NIL
( (COMMENT "Inicializa la red") ) )
(\IMAGE.PANEL ( #U n i t (IMAGE.PAHEL03254 BOLTZMAHN) ) ) ) )
{REGLA .CALCULO
("proyectos" "14-Nov-1986 1 3 : 34 : 32 " "Pf IECTOS" " 5-Dec-1 986 13:44: 2" )
( REGLAS . FASE2 REGLAS . FASE! ( RULES RULESYSTEM2 ) )
( (RULE.CLASSES RULESYSTEM2) )
"Regla comun a las dos fases que se ocupa del funcionamiento interno de l a re d " (
( ASSERTIOH)
(PREMISE) )
( ( ANO . TRACE)
( FC . TRACE )
(IMMEOIATE. RULE. APPLICATION i :·10DE ( ON ) )
( OR . TRACE)
(PANEL .TRACE)
( STEPPER . MO D E )
( TEXT . TRACE ) ) )
(REGLA.CAMBIO.PESO.FASE!
( "PROYECTOS" "26-Nov-1986 15:23:38" "PROYECTOS" "10-Dec-1986 14: 17 : 19" )
( REGLAS . FASE l j
( ( 1::Lt.SSES •E!;Ei : '. ,7i I: ) ( RULE . CLASSES RULESYS!Et,l2 ) )
,1Cl ;e dE r ocupan de la modific c ioD i0 p sos de las conexiones s gun la nr irfi
e a fase del al gor 1T1110 ae aprendizaje 1i
( ( ASSERTION >
(PREMISE) )
( ( ANO . TRACE)
( FC . TRACE )
! IMMEDIATE . RULE . APPLIC.!.TION . MODE ( ON ) )
C OR . TRACE ( OFF ) )
( P .6 NEL . TRACE )
(STEPPER.MODEJ
(TEXT.TRACE) ) )
(REGLA.COMPROBAR.SALIDA
( "PROYECTOS" "ll-Dec-1986 17:56:12" "PROYECTOS" "12-Dec-1986 11:45:47" )
( REGLAS . CONTROL ( RULES RULESYSTEM2 ) )
( ( RULE . CLASSES RULESYSTEM2 ) )
NIL
( ( ASSERT . MODE ( REPLACE ) )
( ASSERTION )
(PREMISE) )
( ( ANO . TRACE )
( FC . TRACE )
(' MEDIATE . RULE . APPLICATION . t·:JDE )
( OR . TRACE )
(PANEL. TRACE)
( STEPPER . MODE)
(TEXT. TRACE) ) )
( REGL\ . ESTADO
( " pl' oyect o s " " 1 4-Nov- 1 986 13 : 33 : 2 4" "PROYECTOS" " 5-Dec-1 986 13:44: 13")
C REGLAS . FASE2 REGLAS . FASE! ( RULES RULESYSTEM2 ) )
( ( RULE . CLASSES RULESYSTEM2 ) )
"Regla comun a las dos fases. Determina los estados de todos los nodos de l a red a par t i r de 1
os va l or e s de cada uno de e l l o s "
( ( ASSER T . MODE ( REPLACE ) )
(ASSERTIOH)
(PREMISE) )
( (AND. TRACE)
( FC . TRACE )
( IMMEDIATE . BULE . APPLICATION . MODE l
( OR . TP.". <: }
( PANEL . T. .CE )
( STEPPER . MODE J
( TEXT . TRACE ) ) )
(REGLA.INICIO.FASE2
("PROYECTOS" "26-Nov-1986 15 : 28 : 27 " "PROYECTOS" "5-Dec-1 986 1 3 : 50 : 46 " )
( REGLAS . FASE2 )
( (RULE.CLASSES RULESYSTEM2) ( CLASSES GENERICUNITS ) )
" Regla que se utiliza par·a preparar todos los nodos para la segunda fase d e l alg o ritmo"
()
()
(REGLA.VARIABLE.FASE!
( "PROYECTOS" " 2 6-Nov-1 986 15 : 23 : 35" "PROYECTOS" "5-Dec-1 986 13:48:22" )
(REGLAS.FASE! )
( (RULE.CLASSES RULESYSTEM2) ( CLASSES GENERICUNITS ) )
" Regla que asigna los valores del slot VARIABLE de todos los nodos de la red en funcion de su
identi ficacion y de las restricciones de la primera fase"
()
(REGLAS.ALGORITMO
( "PROYECTOS" "26-Nov-1 986 14:43: 18" "PROYECTOS" "5-Dec-1986 1 3 : 38 : 46" )
( ( RULES RULESYSTEM2 ) )
( ( RULE . CLASSES RULESYSTEM2 ) )
"Clase de reglas que contiene todas las reelas necesarias en el algoritmo de aprendiz je de l
r- e d "
( ( ASSERT . MODE ( REPLACE ) ) )
( ( RESOLVE . CONFLICT LEAST . P REM I SE . COMP LEXI TY l
( RETRACT NIL NIL NIL NIL NIL ) ) )
(REGLAS.ASIGNACION.PATRON
( "PROYECTOS" " l l-Dec-1 986 16: 26 : 18" "PROYECTOS" " 1 2-Dec-1 986 1 1 : 56 : 33 " )
( REGLAS . CONTROL ( RULES RULESYSTEM2 ) )
( ( RULE . CLASSES RULESYSTEM2 ) )
"P ide al usuar io los valores correspondientes para los nodos de un patron" (
( ASSERT . MODE ( REPLACE ) )
( ASSERTION )
(PREMISE ) }
( ( AND . TRACE )
( FC . TRACE )
( IMMEDIATE . RULE . APPLICATION . MODE)
( OR . TRACE )
(PANEL. TROCE)
( STEPPEI L MODE)
( TEXT . TRACE ) ) )
(REGLAS.CONTROL
( "PROYECTOS" " 1 2-Dec-1 986 1 1 : 43 : 36" " PROYECTOS" " 1 2-Dec-1 986 1 1 : 45 : 1 7 " )
( REGLAS . ALGORI TMO )
( ( RULE . CLASSES RULESYSTEM2 ) ( CLASSES GENE R I C U N I TS ) )
NIL
( ( ASSERT . MODE ( REPLACE ) ) )
(REGLAS . FASE!
( "PROYECTOS" " 26-Nov-1 986 1 4 : 44 : 09" "PROYECTOS" " 1 2-Dec-1 986 11 :42:56" )
( REGLAS . FASES )
( ( RULE .CLASSES RULESYSTEM2 ) ( CLASSES GENER ICUNITS ) )
"Clase de reglas que contiene todas las reglas referidas a la primera fase del algoritmo de ap
rendizaje "
( ( WEI GHT (0) ) )
( ( RESOLVE . CONFLICT LEAST . PREMISE . COMPLEXITY ) ) )
( REGLAS . FASE2
( "PROYECTOS" "26-Nov-1986 1 4 : 44 : 10" "PROYECTOS" " 1 2-Dec-1 986 11 :43: 10")
( REGLAS . FASES )
( ( RULE. CLASSES RULESYSTEM2 ) ( CLASSES GENERICUNITS ) )
"Clase de reglas que contiene todas las reglas referidas a la segunda fase del algoritmo de ap
rend izaje"
( ( WEI GHT ( 1 ) l )
( ( RESOLVE . CONFLICT LEAST . PREMISE . COMPLEXITY ) ) J
( UNIONES
( "ployectos" ''14-Hov-1986 1 3 : 30 : 41 " "PROYECTOS" " 26-Aug-1 987 9:48: 12" )
(RED)
( ( CLASSES GENER ICUN I TS ) )
"Conexiores o ai:cos entre los nodos de la red"; ( (
ACTUALIZACION
( NO )
NIL
( ( ONE .OF SI NO ) )
NIL
( ( COMMENT
( "ValoI booleano ( SI , NO ) que •:etermina si el p e s o de la conexion ha s i d o a c t ua l i za d o en l a
fase coirespondiente del algoritmo de aprendizaje ( sumandole o i:estandole DELTA ) " ) )
( CARDINALITY . MAX ( 1 ) ) ) )
(PESO
(0 )
NIL
( REAL )
NIL
( ( COMMENT ( "Valoi numerico asignado a la conexion entie dos nodos " ) )
( AVUNITS (#Unit ( CORRECCION BOLTZMANN ) ) ) ) )
(PUNTOl NIL
NIL
(NODOS)
NIL
( ( COMMENT ( "Uno de los dos nodos asociados a la conexion" ) ) ( CARDINALITY . MAX (1 ) ) ) )
CPUNT02 NIL
HIL
(NODOS )
NIL
( (COMMENT ( "Uno de los dos nodo 2s iados a la cone ion" ) ) !CARDINALITY.MAX (1)))))
rp:os (D TO VALOF F)
(VP E.WAS.SAVED T)
(WIDTH 75)
( WINDOW "A Flavo Instance"
NIL
NIL
HH.
1 • lC0 .iINDOW NIL) ( EXPAND . WINDOW N I L J I CURRENT . W I
NDOW ( EXPAND ) ) ) ) ) )
(VEBTICAL.TBAFFIC.LIGHT03296
( "PROYECTOS" "25-Nov-1986 17:34:43" "PROYECTOS" "26-Aug-1987 9:48:46")
NIL
( ( VERTICAL . TRAFFIC . LIGHT ACTIVEIMAGES ) IMAGES )
NIL
()
( ( BORDER 4)
( FONT FONTS : HL6)
( HEIGHT 39)
(IMAGE.WAS.PAINTED NIL)
( LAST . VALUE . DISPLAYED ( INACTIVO ) )
( OBJECT . DISPLWED #Slot ( ESTADO NOD02 BOLTZMANN OWN ) )
( REGION (21 264 74 39)
NIL
NIL
NIL
( ( !CON.REGION (21 264 131 48 ) ) ( EXPAND . REGION {21 264 74 39) ) ) )
( REU..Y . REGIONS . ALIST ( { (ACTIVO O O 64 7) (INACTIVO O 7 64 7) ) ) )
( SAVED VALUES INACTIVO )
.
(VALUE.WAS.SAVED T)
(WIDTH 74)
(WINDOW "A Flavo Instance"
NIL
NIL
NIL
( (ICON.WINDOW NIL) { EXPAND . WINDOW NIL ) ( CURRENT . W INDOW ( EXPAND ) ) ) ) ) )
( VERTICAL . TRAFFIC.LIGHT03299
( "PROYECTOS" " 25-Nov-1 986 1 7 : 35:42" "PROYECTOS" " 26-Aug-1 987 9 : 48 : 46 " }
NIL
( ( VERTICAL . TRAFFIC . LIGHT ACTIVEIMAGES ) IMAGES)
NIL
()
( ( BORDFR 4)
( FONT FONTS : HL6)
(HEIGHT 40)
( IMAGE.WAS. PAINTED NIL)
( LAST . VALUE . DISPLAYED ( INACTIVO} }
( OBJECT . DISPLAYED # Slo t ( ESTADO NOD03 BOLTZMANN OWN ) )
( REGION ( 23 216 73 40)
NIL
NIL
!H L
( ( ICON.REGION ( 23 216 131 48) ) ( EXPAND . REGION (23 216 73 40) ) ) )
( UtLAY . UTG IONS . ALIS' { ( t.CTIV0 0 ( 63 ? )
' ! "T!VO O 7 6 7) ) )
SAVED.VALUES IHACT!VJ)
{SUFEB.IMA E #Unit (It1AG .PANE 02254 BOLTZr1AN?: ) )
( T!TLE "NOD0.·' s ESTADO" )
(TITLEFONT FONTS:HLlOB)
( TOPUNIT (NIL) )
( VALUE . WA S . SAVED T )
(WIDTH 73)
(WINDOW "A Flavo Instance"
!E L
NIL
( ( ICON . WINDOW NIL) ( EXPAND . WINDOW NIL) (CURRENT.WINDOW ( EXPAND ) ) ) ) ) )
(VERTICAL.TRAFFIC.LIGHT03303
( "PROYECTOS" " 25-Nov-1 986 17:36:38" "PROYECTOS" "26-Aug-1987 9:48:47" )
NIL
( ( VERTICAL . TRAFFIC. LIGHT ACTIVEIMAGES) IMAGES )
NIL
()
( ( BORDER 4)
(FONT FONTS:HL6)
( HEIGHT 40)
( IMAGE . WAS . PAINTED NIL)
( LAST . VALUE . DISPLAYED ( INACTIVO) )
( OBJECT . DISPLAYED lSlot ( ESTADO NOD04 BOLTZMANN OWN ) )
( REGION (22 1 69 73 40}
NIL
NIL
HIL
( ( ICON . REGION (22 1 69 131 48) ) ( EXPAND . REGION (22 169 73 40) ) ) )
( RELAY . REGIONS . ALIST ( ( ( ACTIVO O O 63 7 ) (INACTIVO O 7 63 7) ) i )
( SAVED . VALUES INACTIVO )
(SUPER.IMAGE lUnit ( IMAGE . PANEI.03254 BOLTZMANN ) )
(TITLE "NOD04,s ESTADO")
( TITLEFONT FONTS : HLlOB )
( TOPUHIT (NIL) )
(VALUE.WAS.SAVED T)
(WIDTH 73 )
(WINDOW "A Flavor Instance"
NIL
HIL
NIL
( ( ICON . W I NDOW N I L ) ( EXPAND . W INDOW N I L ) ( CURRENT . W I NDOW ( EXPAN D ) ) ) ) ) )
(VERTICAL.TRAFFIC .LIGHT03306
( "PROYECTOS" "25-Nov-1986 1 7 :37 : 54" "PROYECTOS" ' 26-Aug-1987 9 :4 8 :4 7 " )
NIL
( ( VERTICAL . TRAFFIC. LIGHT ACTIVEIMAGES ) IMAGES )
NIL
()
( ( BORDER 4)
( FONT FONTS : HL6)
( HEIGHT 40)
( IMAGE . WAS. PAINTED NIL)
( LAST . VALUE . D ISPLAYED ( ACTIVO ) )
(OBJECT.DISPLAYED lSlot ( ESTADO NODOS BOLTZMANN OWN ) )
(REGION (24 120 71 40)
NIL
NIL
NIL
( (ICON RE6!0N (24 1 0 !21 48) ) ! XP ND RE510 ! (24 !20 71 0) ) )
( RELAY . REGIONS . ALIST ( ( ( ACT I V O O O 61 7 ) ( INACTIVO O 7 61 7) ) ) )
( SAVED . VALUES ACTIVO)
( SUPER . IMAGE lUnit (IMAGE.PANEL03254 BOLTZMANN) l
(TITLE "NODOS,s ESTADO" )
(TITLEFONT FONTS:HLIOB)
( TOPUNIT (NIL) )
(VALUE.WAS.SAVED T)
(WIDTH 71 )
(WINDOW "A Flavo Instance"
NIL
NIL
NIL
( (ICON.WINDOW NIL) ( EXPAND . W I NDOW N I L ) ( CURREN T . W I NDOW ( EXPAND ) ) ) ) ) )
( ( BORDER 4)
( FONT FONTS : HL6)
( HEIGHT 39 )
(IMAGE.WAS.PAINTED NIL)
( LAST . VALUE . D ISPLAYED ( ACTIVO ) )
(OBJECT. DISPI AYED lSlot ( ESTADO NOD06 BOLTZMANN OWN ) )
(REGION (24 }3 69 39)
NIL
NIL
NIL
( (ICON.REGION (24 73 131 48 ) ) ( EXPAND . REGION (24 73 69 39) ) ) )
( RELAY . REGIONS . ALIST ( ( ( ACTIVO O O 59 7 ) (INACTIVO O 7 59 7 ) ) ) )
( SAVED . VALUES ACTIVO )
(SUPER . IMAGE t/Unit (IMAGE.PANEL03254 BOLTZMANN) )
( TITLE " NOD06' s ESTADO" )
( TITLEFONT FONTS : HL lOB )
( TOP UNIT ( N I L ) )
(VALUE.WAS.SAVED T)
(WIDTH 69)
(WINDOW "A Flavo Instance"
NIL
NIL
NIL
1,
( (ICON.WINDOW NIL) ( EXPAND . WINDOW N I L ) ( CURRENT . WINDOW ( EXPAND ) ) ) ) ) )
(CE:( ;7 -,
(IMAGE. AS.EAIRTED NIL)
(LAST.VALUE.DISPLAYED (INACTIVO))
(OBJECT . DISPLAYED #Slot ( ESTADO NOD07 BOLTZMANN OWN ) )
( REGION (26 18 65 40 )
NIL
NIL
HIL
( ( ICC:; . : :_ :::. , 2ó 1 3 131 48) ) ( EXP.lr1D . iEG : r; \26 lS 65 ..O) ) ) )
( SAVED . VALUES INACTIVO )
( SUPER . IMAGE #Unit (IMAGE.PANEL03254 BOLTZMANN) )
(TITLE "NOD07/s ESTADO" )
(TITLEFONT FONTS:HLlOB)
( TOPUNIT (NIL) )
( VALUE . WAS . SAVED T )
(IHDTH 65)
(WINDOW "A Flavo Instance"
NIL
NIL
NIL
( ( ICON. WINDOW NIL ) ( EXPAND . W I NDOW N I L ) ( CURRENT . WINDOW C EXPAND ) ) ) ) ) )
KBEnd