Académique Documents
Professionnel Documents
Culture Documents
TESIS
INGENIERO EN COMPUTACION
PRESENTA
http://creativecommons.org/licenses/by-nc-nd/2.5/mx/legalcode
http://codink.blogspot.com
ii
Contenido.
Introducción.
Capítulo 1. Lógica.
1.1 Introducción.
1.2 Lógica simbólica.
1.2.1 Argumentos, proposiciones y relaciones.
1.2.2 Validez.
1.2.3 Reglas de inferencia y demostraciones.
1.2.4 Estructura de los sistemas lógicos.
1.3 Teorías informales y sistemas formales.
1.3.1 Teorías axiomáticas e informales.
1.3.2 Sistemas formales.
1.4 El cálculo proposicional.
1.4.1 Definición de símbolos y operadores.
1.4.2 Reglas sintácticas.
1.4.3 Axiomas y reglas de inferencia.
1.5 Comentarios.
2.1 Introducción.
2.2 Definiendo las características del tiempo.
2.3 Relacionando la lógica y el tiempo.
2.4 Definición de la LDT.
2.4.1 Simbología y operadores.
2.4.2 Características de los argumentos de la LDT.
2.5 Comentarios.
3.1 Introducción.
3.2 Teoría de las neuronas artificiales.
3.2.1 La neurona biológica.
3.2.2 La neurona artificial.
3.3 Uso de neuronas artificiales para la LDT.
3.4 Representación de la lógica proposicional y la LDT con redes neuronales.
iii
3.4.1 Representación de los operadores de la lógica proposicional.
3.4.2 Representación de los operadores de la LDT.
3.5 Representación de procesos simples en el tiempo.
3.5.1 Configuraciones en serie y paralelo de neuronas.
3.5.2 Representación de la autosinápsis.
3.5.3. Uso de señales como valores de entrada en las neuronas.
3.6 Consideraciones para el uso de neuronas artificiales en el diseño de sistemas.
3.7 Comentarios.
4.1 Introducción
4.2 Simulación de redes neuronales dependientes del tiempo.
4.2.1 Análisis y Diseño.
4.3 Sumador de dos bits.
4.4 Codificación y decodificación de datos.
4.5 Elementos de memoria.
4.6 Control de eventos.
4.7 Comentarios.
5.1 Introducción.
5.2 Resultados.
5.3 Aplicaciones.
5.4 Perspectivas.
Referencias bibliográficas.
Glosario.
Apéndice A.
Documentación y código fuente del simulador.
iv
Agradecimientos.
v
Introducción.
“Que no parezca que he vivido en vano".
Tycho Brahe.
A solo unos años de iniciar un nuevo siglo, la ciencia ocupa un lugar muy
importante en la vida del hombre, aunque la gran cantidad de información
generada por todas sus disciplinas, hace difícil estar actualizado en las áreas de
vanguardia que, en pocos años, serán de vital importancia en la industria, la
educación y el desarrollo tecnológico. Y no solo se trata de los trabajos de los
últimos meses, sino de trabajos que han sido relegados por no considerarse útiles
en su momento, o han sido simplemente olvidados.
vi
Proponer un orden será necesario a causa de que la teoría original de la LDT no
está definida bajo una estructura formal.
Las principales áreas con las que se relaciona este trabajo son:
• Lógica.
• Redes neuronales.
• Electrónica digital.
vii
• Análisis y diseño de programas.
1. Lógica.
5. Conclusiones.
Por último, cabe comentar que este es el primer trabajo sobre el tema de
neuronas artificiales en la licenciatura de la Fundación A. Rosenblueth, y resulta
irónico que haya sido así, cuando Arturo Rosenblueth fue uno de los pioneros a
viii
nivel mundial al respecto. Así mismo, el desarrollo de un trabajo teórico (casi en
su totalidad) a parte de servir como base para futuras investigaciones, deberá de
servir como incentivo a nuevas generaciones de estudiantes para correr el riesgo
de enfrentarse a un reto como es el asimilar nuevas ideas y conceptos abstractos,
para realizar planteamientos bajo formalismos que propiamente pertenecen al
área de las matemáticas, así como el de realizar trabajos innovadores y con
calidad.
ix
Capítulo 1.
Lógica.
"- ¿Quieres decirme, por favor, qué camino debo tomar para salir de aquí?
- Eso depende mucho de a dónde quieras ir -respondió el Gato.
- Poco me preocupa donde ir -dijo Alicia.
- Entonces poco importa el camino que tomes -replicó el Gato.
- Con tal de que conduzca a alguna parte -añadió Alicia como conclusión.
- ¡Oh! Puedes estar segura de que llegarás a alguna parte -dijo el Gato- si
caminas lo suficiente."
1.1 Introducción.
Al definir una nueva teoría debe tomarse en cuenta que las verdades o axiomas
en las que este sustentada, así como la estructura de su planteamiento, es de vital
importancia, pues ahí es donde radica la validez del nuevo sistema , así como de
las teorías que estén basadas por el mismo.
La idea de formular una nueva teoría surge cuando el análisis de cierta clase de
problemas rebasa la capacidad descriptiva de las herramientas analíticas
existentes, y es necesario plantear extensiones en sus conceptos o hasta construir
un nuevo conjunto de axiomas.
Con el fin de llevar a cabo esta tarea, es necesario tener una idea clara de los
conceptos relacionados a un conjunto de conocimiento, así como de la forma en
que este es convertido en una teoría.
1
conocido como cálculo proposicional basando la estructura de su definición en
aspectos intuitivos así como los aspectos relevantes de los sistemas formales.
2
1.2.1 Argumentos, proposiciones y relaciones.
Las proposiciones son tomadas generalmente como frases que afirman o niegan
algo, por ejemplo:
p = {2 es un número par}
Ejemplo 1.1
Objeto :2
Características: es un número entero; es positivo.
3
Figura 1.1 Estructura de un argumento lógico
Una relación puede ser representada simbólicamente por medio de las siguientes
expresiones
donde R es una relación cualquiera entre dos objetos y x,y,z... son los objetos.
R (x,y,z,...)
Toda relación tiene un sentido definido, llamando referente el término del cual
parte la relación x, y relato el destino al que va la relación y.
Ejemplo 1.2
x es padre de y , donde R = {es padre de}
4
1. Simetría. Si R(x,y) entonces R(y,x).
2. Antisimetría . Si R(x,y) entonces no R(x,y).
3. Transitividad. Si R(x,y) y R(y,z) entonces R(x,z).
4. No Transitividad. Si R(x,y) y R(y,z) entonces no R(x,z).
1.2.2 Validez.
Ejemplo 1.3 El argumento "Si la figura geométrica A tiene cuatro lados entonces
es un cuadrilátero" será válido siempre y cuando sus premisas "la figura
geométrica A tiene cuatro lados" y "toda figura geométrica con cuatro lados es un
cuadrilátero" sean verdaderas.
5
proposiciones relacionadas por medio de conjunciones llamadas conectivos
lógicos (y,o,no, si entonces, si y solo si), formando lo que se conoce como
enunciados compuestos.
Ejemplo 1.4
El universo es finito.
La vida es fugaz.
6
Las asignaciones de los valores de verdad pueden agruparse en tablas
(matrices) donde se visualizan estos valores asignados para los elementos que
constituyen la proposición (estas tablas se muestran más adelante en el
planteamiento del cálculo proposicional).
p q p&q
T T T
T F F
F T F
F F F
7
principal de este proceso son las relaciones entre las proposiciones iniciales y
finales.
Cabe aclarar que toda proposición puede ser premisa o conclusión según el
contexto. Es una premisa si se presenta como parte del argumento en que se
basa una demostración de otra proposición, y es una conclusión si está en el
argumento demostrado en base a otras proposiciones.
Premisa :p
Premisa : p→q
Conclusión: q
8
de A es de 5 m/seg. entonces la distancia recorrida por A es de d=v*t, para t=1
seg.".
Al tener las premisas en la forma definida por la regla de inferencia, solo resta el
obtener la conclusión, para demostrar el argumento (p&(p→q))→q, que en este
caso es la expresión "la distancia recorrida por A es de d=5 m.". Con esto queda
demostrado que ambas premisas son verdaderas y por lo tanto el argumento
también.
Después de haber plantado las principales ideas relacionadas con la lógica, aún
falta saber como interactúan sus componentes. Para ello puede tomarse en
cuenta el punto de vista de la definición de la lógica desde un enfoque orientado al
lenguaje como el propuesto en [14] donde su formalización consiste de tras partes:
Para utilizar esta estructura, esta debe estar expresada de tal forma que sea
compatible con las convenciones relacionadas a la simbología, fundamentación y
planteamiento utilizadas por otras teorías por lo que se hace necesario un
esquema capaz de proporcionar un orden a los elementos que formen parte del
sistema lógico para su posterior aplicación. Con este fin se expondrán a
continuación algunas ideas que pueden ser útiles si se pretende organizar un
conjunto de conocimiento de manera formal.
9
1.3 Teorías informales y Sistemas formales.
Por un lado la base para una teoría puede ser simplemente una idea (una buena
idea) sobre la que se reflexiona y se trabaja, y deriva en un conjunto de
conocimientos, en un principio, no estructurados. ¿Pero qué es esta estructura?
La necesidad de ordenar el conocimiento surge (sobre todo en nuestro tiempo) al
manejar grandes volúmenes de información; al tratar de evitar ambigüedades en el
planteamiento a causa del lenguaje y apoyar nuevos desarrollos teóricos o
prácticos en base a lo establecido.
10
Otras derivaciones son posibles, tal como aquellas formulaciones de teorías
axiomáticas que presuponen como conocidas la teoría de inferencia y la teoría
general de conjuntos llamadas teorías informales.
Este enfoque es de gran ayuda pues el presuponer como ciertas algunas teorías
da cierto grado de validez y veracidad a la teoría que se quiera formular aunque su
"total" validez estará dada por las ideas y conceptos en que este basada dicha
teoría. Además de alguna manera se esta llevando a cabo un replanteamiento de
conocimiento aceptado, que en cierta forma se amplía cada vez que sustenta una
nueva teoría.
Los sistemas formales son un medio para producir teoremas a partir de axiomas
(o salidas a partir de entradas como una analogía a un proceso) u otras entidades
de manera mecánica, y por su misma naturaleza abstracta se les puede usar para
definir una gran variedad de sistemas. Uno de sus puntos importantes es su uso
en sistemas donde las secuencias de símbolos tienen difícilmente una estructura
como la de las matemáticas o la lógica, y donde las secuencias generadas en
forma de oraciones o fórmulas tienen interpretaciones con sentido.
De hecho no sólo es un procedimiento tal que ningún paso sea dado sin una
regla, sino que busca que un observador pueda revisar cuáles son las reglas
dadas y que dichas reglas han sido seguidas en cualquier demostración (rastreo
del funcionamiento de un proceso).
11
Por último ambos enfoques serán útiles al definir el cálculo de predicados y la
lógica dependiente del tiempo, pues a fin de cuentas lo que se busca es plantear
una estructura formal de conocimiento.
Tras haber expuesto los puntos de vista formal e informal con respecto a la
definición de un sistema, es tiempo para unificar varias de estas ideas para dar el
planteamiento de la lógica o cálculo proposicional.
Operadores:
12
Nombre Simbología
Negación ¬,-
Conjunción &
Disyunción |
Implicación →,⇒
Equivalencia ↔,⇔
La asignación de los valores de verdad para cada uno de los operadores está
dada en las siguientes tablas de verdad. La notación usada es {0,F} para valores
falsos y {1,T} para valores verdaderos.
p ¬p
T F
F T
T T T T T T
T F F T F F
F T F T T F
F F F F T T
13
ii. Si X y Y son fórmulas, entonces ¬X, (X&Y), (X|Y), (X→Y), (X↔Y) son fórmulas
(paso de Cerradura).
iii. Todas las fórmulas se obtienen al aplicar las reglas de base y cerradura, un
número finito de veces (paso de Inducción).
↔,→, |,&, ¬
Las fórmulas contenidas en el paso base son llamadas fórmulas primarias y las
obtenidas por los pasos de inducción y cerradura se les llama fórmulas
compuestas.
Las fórmulas estudiadas por el cálculo proposicional han de cumplir con las
siguientes propiedades:
a. Consistencia.
Una fórmula consistente tiene un modelo que puede interpretarse como
verdadero.
b. Validez (tautologías).
Una fórmula válida siempre es interpretada como verdadera, para cualquier valor
de verdad de las proposiciones que la forman (⊥).
14
Teorema 1.1 ⊥ A ↔ B si y solo si A = B
Condicionales tautológicas:
• A & (A→B) → B
• ¬B & (A → B) →¬A
• ¬A & (A | B) →B
• A & B →A
• A →A | B
• (A →B) →(A & C →B & C)
• (A →B) →(A | C →B | C)
Bicondicionales tautológicas:
• A↔A
• ¬¬A ↔A
• (A ↔B) ↔(A ↔B)
• A | B ↔B | A
• A & B ↔B & A
15
Después de haber definido todos los elementos que forman parte en el proceso
de inferencia, falta por establecer las reglas por medio de las cuales se llevará a
cabo este proceso. La base para estas reglas está dada por el siguiente teorema:
Teorema 1.4
i. A1,A2,...,Am ⊥ Ai para i=1,2,...,m
ii. Si A1,A2,...,Am ⊥ Bj para j=1,2,...,p y si B1,B2,...,Bp ⊥ C , entonces A1,A2,...,Am ⊥ C
1. Modus ponens.
Premisa: P
Premisa: P→Q
Conclusión: Q
2. Silogismo hipotético.
Premisa: P→ Q
Premisa: Q→R
Conclusión: P→ R
3. Modus tollens.
Premisa: P
Premisa: ¬Q → ¬P
Conclusión: Q
4. Contraposición.
Premisa: P→Q
Conclusión: ¬Q →¬P
5. Reducción al absurdo.
Premisa: ¬P →P
Conclusión: P
16
Aunque estas reglas están dadas en forma de implicaciones, pueden ser
modificadas para el uso del resto de los operadores por medio de las tautologías
para la eliminación de conectivos (reglas de sustitución).
a. Plantear las premisas del problema como una serie de implicaciones sencillas
para relacionar de manera lógica las sustituciones algebraicas obtenidas de la
ecuación original.
p = {y = mx + b }
q = {mx = y - b }
r = {x = (y-b)/m}
(1) p → q
(2) q → r
17
c. Aplicar las reglas de inferencia para obtener una conclusión.
(1) p → q
(2) q → r
(3) p → r (silogismo hipotético)
(4) p
(5) r (modus ponens)
1.5 Comentarios.
Esto es, definir un sistema lógico que sólo se enfoque a los valores de verdad de
las proposiciones. Aunque bajo este punto de vista se tienen restricciones, el
desarrollar un sistema con un conjunto pequeño de elementos es más que
suficiente para obtener resultados interesantes.
18
lo que se traduce en un replanteamiento de sus reglas sintácticas, semánticas y
las reglas de inferencia y axiomas necesarios para su aplicación.
19
Capítulo 2.
2.1 Introducción.
Tras haber expuesto las bases para formular un sistema lógico y definir el cálculo
proposicional, es posible plantear, con base en el capítulo anterior, el esquema de
una lógica dependiente del tiempo (LDT) no sin antes exponer las características
del concepto del tiempo. No es el objetivo de este trabajo el hacer una reflexión
filosófica al respecto, sino tratar de entender y plantear su funcionamiento de
manera simple para poder extender el cálculo proposicional a un contexto que
maneje el tiempo.
En este capítulo se exponen algunas de las ideas más relevantes con respecto al
tiempo y sus características, y se presenta, y amplía la formulación de la LDT
expuesta originalmente por Alejandro Medina [15] (y desarrollada posteriormente
en trabajos como [21]).
20
2.2 Definiendo las características del tiempo.
existe un tiempo t
Aunque pueda sonar redundante, esto sirve para aclarar que el tiempo al que se
está haciendo referencia es particular al análisis de un fenómeno.
Para fines de expresar los términos de pasado, presente y futuro con respecto a
un instante, asumiendo el tiempo como una "sucesión continua de momentos", se
plantean las siguientes definiciones.
21
Definición 2.5 Si t i el instante actual de un proceso, entonces t(i+1) es el sucesor
de t i , o un instante después para i≥0.
Para cada tipo de sistema se tiene que sus procesos serán entonces de dos
clases:
22
• Procesos dependientes del tiempo. Son aquellos cuyo cambio de estado
depende de un cambio de sus variables internas o externas en el tiempo (P(t)).
Aunque esto implica que los procesos instantáneos son un subconjunto de los
dependientes del tiempo, su principal diferencia radica en el planteamiento del
sistema, pues un sistema estático no tiene variaciones temporales, por lo que el
concepto de duración no tendría sentido. En cambio, si el sistema es dinámico,
aún una duración de cero instantes tiene sentido, pues indica que la respuesta del
proceso se dará en el mismo instante en el que sus valores de entrada llegaron a
él.
23
del objeto de estudio, mientras que la interpretación cualitativa de los resultados
depende de la capacidad de abstracción y experiencia del sujeto que realiza el
análisis.
• Modelos de transición de tiempo (TTM). Se define como una terna (X,Y,Z) donde
X es el conjunto de variables de datos y actividades; Y es un predicado que
agrega una condición inicial en las variables y Z es el conjunto de todas las
transiciones entre las actividades (representación de eventos). Cada transición
tiene una condición de funcionamiento, una función de transformación y limites
de tiempo. Estos modelos proveen una representación efectiva de sistemas
realizables. Además el procesamiento en paralelo y la multiprogramación
pueden ser modeladas.
24
Estos métodos formales al igual que la LDT buscan:
Tras hacer esto hay que plantear los elementos temporales que formarán parte
del nuevo sistema así como posibles modificaciones o extensiones a elementos ya
existentes, así como establecer la validez del nuevo sistema.
25
En primera instancia será necesario definir el alfabeto A para la LDT, similar a las
variables x,y,z... del cálculo proposicional, aunque antes debe plantearse la
interpretación que tendrán los elementos del nuevo alfabeto.
Cada uno de los elementos del alfabeto será una variable proposicional cuya
dependencia temporal estará representada por la notación funcional x(t), la cual
podrá interpretarse como "x en cualquier momento". Si t adopta un valor específico
entonces se interpreta como "x en cierto momento".
Variable proposicional x
Variable proposicional dependiente del tiempo x(t)
Para expresar una proposición que indique el valor de x(t) durante varios
instantes sucesivos tal que
x(t),x(t+1),...,x(t+k)
¬x(t)
x(t) & y(t)
x(t) | y(t)
x(t) → y(t)
x(t) ↔ y(t)
26
Ejemplo 2.1 Aquí se presenta un caso donde los valores de verdad se encuentran
asignados de la misma manera que en la tabla de verdad que define al operador
&.
x(t) & y(t) x(t+1) & y(t+1) x(t+2) & y(t+2) x(t+3) & y(t+3)
0 1 0 1
x(t) & y(t+1) x(t) & y(t+2) x(t+3) & y(t+2) x(t+3) & y(t)
0 0 1 0
27
x(t) ≡ y(t) = 1
Para definir en general, una transformación A sobre x(t) se dice que se obtendrá
otra función y(t) tal que
y(t) = Ax(t)
Ax(t) = Bx(t) → A = B
Las relaciones entre funciones lógicas del tiempo estarán definidas por
operadores binarios, donde el resultado de conectar las funciones Ax(t) y Bx(t) será
Ax(t) @ Bx(t)
Ix(t) = x(t)
Este operador podrá conmutar con cualquier operador (por lo que es una
excepción a la regla de no conmutatividad entre operadores).
Tx(t) = 1
28
3. Antitautología (F). Transforma el valor de verdad de cualquier proposición a
falso en cualquier instante t.
Fx(t) = 0
Definición 2.9 Un elemento de retardo (delay) es aquel cuya salida tiene un valor
x en el instante t+1 si y solo si su valor de entrada en el instante t es x [17].
x(t+1) = x(t)
Dx (t ) = x (t + 1)
D n x (t ) = x (t + n) ,con n=1,2,3,...
D n x (t ) = x (t + n) , con n= -1,-2,-3,...
cuya interpretación sería conocer los valores x(t), j instantes antes de t, siempre y
cuando (t-j)≥0, lo cual es equivalente a consultar el desarrollo en el tiempo de la
variable.
Tras definir cada uno de los nuevos operadores, las reglas para construir fórmulas
bajo el nuevo sistema son muy similares a las del cálculo proposicional, y son:
29
i. Cada proposición dependiente del tiempo es una fórmula.
ii. Si x(t) y y(t) son fórmulas, entonces ¬x(t), x(t)&y(t) , x(t)| y(t), x(t)→y(t), x(t)↔y(t),
Ix(t), Fx(t), Tx(t), Dx(t) son fórmulas.
iii. Todas las fórmulas se obtienen al aplicar los axiomas y definiciones un número
finito de veces.
sino
30
el resultado de su operación puede estar ubicado en un instante tj menor o mayor
que el original.
1 1 x x x x
1 0 x x x x
0 1 x x x x
0 0 x x x x
Por otra parte la LDT sitúa tanto a las premisas como a las conclusiones en un
contexto temporal al asignarles a su estructura un instante de tiempo en el que su
valor de verdad puede variar.
Premisa: p
Premisa: p→q
Conclusión: q
1 1 1 1
1 0 0 1
31
0 1 1 1
0 0 1 1
1 1 1 1
1 0 0 1
0 1 1 1
0 0 1 1
1 1 1 1
1 0 0 1
0 1 1 1
0 0 1 1
Tras aclarar esto y asumiendo la misma actitud del cálculo proposicional con
respecto a la inferencia por medio de reglas y no por producciones exhaustivas de
tablas de verdad, se cuenta con un conjunto de tautologías ya definidas que serán
útiles para obtener conclusiones y reducir expresiones simbólicas que así lo
requieran.
32
2.5 Comentarios.
Figura 2.1 Diagrama de un proceso simple que muestra el efecto de un proceso temporal en su
valor de salida. I(t),H(k) y O(t+k) pueden considerarse como variables dependientes del tiempo.
33
Capítulo 3.
El fin de la infancia.
Arthur C. Clarke.
3.1 Introducción.
Tras haber expuesto los principios relacionados con la lógica dependiente del
tiempo (LDT) surgen cuestiones relativas al cómo y dónde va a ser aplicada esta
teoría. En primera instancia puede pensarse en su uso para el análisis de
problemas donde el cálculo proposicional ya ha sido aplicado con éxito, pero como
se comentó anteriormente esto sería solo un caso particular de la LDT (cuando el
tiempo se considera estático y que no es determinante en el comportamiento del
sistema).
34
entrada y la salida tienen un valor de 1 ó 0, y el valor de la salida es una función
de verdad de los valores de entrada.
35
Aunque la representación de operadores y arreglos lógicos muestra ciertas
ventajas por su similitud con las metodologías electrónicas, el problema con este
esquema es el que sus elementos forman parte de la estructura de un proceso, y
no son procesos independientes. Aunque cada elemento de decisión opera sus
entradas con una función lógica y regresa un resultado, se considera instantáneo
a menos que un elemento de retardo sea incluido en el arreglo.
36
3.2 Teoría de las neuronas artificiales.
Aunque la fisiología de una neurona varía dependiendo del tipo de función que
desempeñe, por lo general pueden distinguirse en su morfología sus componentes
típicos (figura 3.2):
37
Figura 3.2 Esquema de la neurona biológica.
38
donde también existen diferencias en cuanto a la especialización en aspectos
tales como la transformación de estímulos dendríticos en potenciales de acción a
lo largo de sus axones (células neurosensoriales), la detección de cambios en la
temperatura o deformación mecánica (células neurosensitivas) o el control de
músculos (células neuromotoras).
Figura 3.4 Tipos de neuronas. Morfología de las neuronas y las células neurosensoriales. (a)
células neurosensoriales olfatorias, (b) células neurosensoriales somestésicas, (c) neurona bipolar
(d) neurona motora multipolar, (e) interneurona.
39
3.2.2 La neurona artificial.
S = ∑ xi ⋅ wi
S = ∑ E xc − ∑ In h
S = ∑Exci ⋅ wi − ∑Inhj ⋅ wj
40
Figura 3.5 Esquema de la neurona artificial.
41
s producido por la neurona en el instante t en A1, y a medida que el tiempo avance
s se recorra de forma ascendente hasta que An=s=y en t+n (figura 3.7)
A A A
1 2 3
t t+1
x=1 --> Sumador/Comparador --> | 1 | 0 | 0 | --> y=An=0
t+1 t+2
x=0 --> Sumador/Comparador --> | 0 | 1 | 0 | --> y=An=0
t+2 t+3
x=0 --> Sumador/Comparador --> | 0 | 0 | 1 | --> y=An=1
Figura 3.7 Ejemplo del comportamiento de una neurona con un retardo de 3 instantes (n=3, será el
tamaño del arreglo). Suponiendo que los componentes sumador y comparador no afecten el valor
de entrada A1=x. Notese como con cada incremento en el tiempo, el valor contenido en A se
desplaza hasta alcanzar la posición An.
42
Estos lineamientos son sintetizados en el siguiente algoritmo que describe el
funcionamiento de una neurona artificial McCulloch y Pitts, el cual es un caso
particular del planteado en [10].
Inicializar parámetros:
Fin Mientras.
43
3.3 Uso de neuronas artificiales para la LDT.
P(t)
N i (t )
Para simplificar el análisis de una red neuronal por medio de la LDT los valores
de los pesos w i de toda neurona serán unitarios, de modo que las entradas de
una neurona sean los únicos valores tomados en cuenta (por lo menos por el
momento). Esta restricción simplifica por mucho los cálculos de las respuestas en
las neuronas además de su representación simbólica.
Dn Ni (t ) = Ni (t + k ) , k=1,2,...
Por otro lado se tiene el umbral de disparo de la neurona (que es el valor máximo
que puede adoptar la función de activación de la neurona), el cual condiciona el
resultado del elemento sumador a superar un valor limite para que la neurona
responda. Esta condición no estaba originalmente planteada en la LDT pero puede
ser acoplada por medio de los siguientes pasos:
44
1. Sea u (un numero entero) el valor del umbral de la neurona N i .
2. Si el valor obtenido por el componente sumador de las entradas de la neurona
x o (t ), x1 (t ),..., x n (t ) es mayor que el rango de valores (a , b) establecido por u,
entonces N i (t + k ) se activará.
- N i (t , u) . En este caso el umbral puede causar confusiones con los términos que
definen los instantes de tiempo, sobre todo si la notación temporal es ampliada.
- N i n (t ) . Donde el exponente n es el umbral de la neurona. La ventaja de manejar
de esta manera el valor del umbral es que no hay ninguna definición en la LDT
que ocupe este lugar en la notación. Además debe tomarse en cuenta que el
umbral no solo es un valor, sino un rango de valores expresados por la pareja
ordenada (a,b), siendo a el limite inferior y b el limite superior del umbral, por lo
que bastará sustituir la pareja ordenada en n.
Un proceso definido por una red neuronal tiene la capacidad de ser ajustados de
manera que sea posible obtener equivalencias entre la respuesta de la red y las
tablas de verdad de los operadores lógicos.
Las redes neuronales serán representadas por grafos donde los arcos
representan las conexiones entre las neuronas de la red. Dichas conexiones
tienen en su extremo final círculos pequeños. Los círculos rellenos representan las
45
conexiones excitadoras, y los vacíos las inhibidoras. Los cuerpos de las neuronas
son representados por círculos más grandes que contienen el valor de umbral de
la neurona. La salida está expresada por un arco adicional.
46
3.4.1 Representación de los operadores de la lógica
proposicional.
Considérese primero a las neuronas como procesos instantáneos (o como se
planteó anteriormente en términos de la LDT, en donde el tiempo no cambia).
Por ejemplo, en el caso de una neurona N1 con una sola entrada x1 de tipo
excitadora (Exc) se tiene que al comparar el resultado del sumador con el umbral,
la respuesta de la neurona es la misma que la de la entrada (elemento neutro).
i. Elemento neutro.
- Tipo de entrada : Exc
- Valor de Umbral : 1
x1 Sumador N1
1 1 1
0 0 0
Cambiando las condiciones del umbral y los tipos de entrada se pueden obtener
las siguientes funciones:
ii. Tautología.
- Tipo de entrada : Exc
- Valor de Umbral : 0
x1 Sumador N1
1 1 1
0 0 1
iii. Antitautología.
- Tipo de entrada : Inh
- Valor de Umbral : 1
x1 Sumador N1
1 -1 0
0 0 0
47
iv. Negación.
- Tipo de entrada : Inh
- Valor de Umbral : 0
x1 Sumador N1
1 -1 0
0 0 1
a. Or (|) (Umbral = 1)
x1 x2 S=Exc(x1,x2) N1
0 0 0 0
1 0 1 1
0 1 1 1
1 1 2 1
48
b. NOr (Umbral = 0)
x1 x2 S=Inh(x1,x2) N1
0 0 0 1
1 0 -1 0
0 1 -1 0
1 1 -2 0
x1 x2 S=Exc(x1,x2) N 1
0 0 0 0
1 0 1 0
0 1 1 0
1 1 2 1
x1 x2 S=Inh(x1,x2) N1
0 0 0 1
1 0 -1 1
0 1 -1 1
1 1 -2 0
Siguiendo con el análisis de las redes de una sola neurona, es conveniente tratar
de ampliar los resultados obtenidos al caso general donde se tenga un numero n-
ésimo de entradas a la neurona, sobre todo en los operadores binarios.
49
Figura 3.11 Implantación de los operadores lógicos con neuronas.
50
Para cada uno de los operadores se tienen las siguientes generalizaciones.
a.1 Or. Si el numero de entradas n≥2 , por (II.b) y (IV.a) tal que p>q para que S sea
positiva, y un valor de umbral u=1.
b.1 Nor. Si el numero de entradas n≥2 , por (II.b) y (IV.a) tal que p<q para que S
sea negativa o cero, y un valor de umbral u=0.
c.1 And. Si el numero de entradas n≥2 , por (II.d) y (IV.b) tal que q=0 para que S
sea positiva, y un valor de umbral u=p ó u=r. Para el caso de u=r debe referirse
como a lo más r de p entradas (un operador de a lo más r entradas activadas).
d.1 NAnd. Si el numero de entradas n≥2 , por (II.c) y (IV.c) tal que p=0 para que S
sea negativa, y un valor de umbral u=1-q ó u=1-s. Para el caso de u=1-s debe
referirse como a lo más s de q entradas.
Ni → D k N i u (t ) = N i u (t + k )
u
N i (t + k ) = ( Exc( x1 (t ), x 2 (t ),...) − Inh( y1 (t ), y2 (t ),...))
51
Aquí Exc e Inh representan las sumatorias de las entradas excitadoras e
inhibidoras de la neurona.
Por lo tanto los operadores definidos para la lógica proposicional son válidos
también para la LDT, aunque con la diferencia de la temporalidad, por lo que las
equivalencias entre operadores son las siguientes:
Tras haber definido los operadores de la LDT por medio de sistemas de una
neurona, el próximo paso es el estudio de sistemas con más de una neurona. Aquí
se discuten ciertos casos que se encuentran comúnmente en la estructura de casi
toda red neuronal, así como su comportamiento. Este es el caso de la conexión
serial y paralela de neuronas, y configuraciones con retroalimentación. A esto se
agrega la consideración de un nuevo tipo de entradas de modo que estás también
tengan un factor de temporalidad. Esta nueva clase de entradas serán las señales.
52
3.5.1 Configuraciones en serie y paralelo de neuronas .
53
Si bien para este tipo de arreglos el procedimiento es similar, la complejidad de
representación aumenta al tener como entradas a una neurona las salidas de
otras. En el caso expuesto en la figura (3.14) la expresión resultante está dada por
54
puesto que en t+2 existen 2 retardos (uno por cada neurona en ese instante) al
reducir la expresión se considera como uno solo (puesto que ambos elementos
procesan al mismo tiempo y tardan lo mismo), por lo que la respuesta de la red
está dada por
N2(t+2) = D ( N1(t))
N3(t+2) = D (¬N1(t))
N4(t+3) = D (D² N2(t) & D² N3(t))
55
forma de que un proceso definido por medio de neuronas termine, es que no
existan entradas que alimenten de datos a la red o que el instante de tiempo en el
que se encuentre el sistema sea mayor al determinado en un principio para sus
funciones.
Para N1 (t) = 0
Umbral = 0
x(t) N1 (t+1) N1 (t+2)
0 1 1
1 1 1
Umbral = 1
x(t) N1 (t+1) N1 (t+2)
0 0 0
1 1 1
Umbral = 2
x(t) N1 (t+1) N1 (t+2)
0 0 0
1 0 0
donde N1(t)=0.
56
N1 (t+1) = Exc(x(t), N2(t+2))
N2(t+2) = Exc(N1 (t+1))
s(t) = constante
por ejemplo
x1(t) = 0 ; x2(t) = 1
Este es el caso más sencillo de señal entrada, pero ¿qué pasa cuando las
señales no son continuas en el tiempo? Esto implica una variación en el valor de la
señal, la cual puede ser periódica (f(t) = f(t+T);donde T es el periodo) o no.
Estos cambios deben tomarse en cuenta al definir la función que cada neurona
desempeña en la red, con el fin de establecer las condiciones para un
comportamiento correcto del sistema, por ejemplo:
57
• que tipo de señales de entrada pueden utilizarse;
• cual es el rango de tiempo entre cada instante (para discretizar la señal);
• si las señales de entrada deben de estar sincronizadas o no;
A estas especificaciones se agregan a continuación algunas otras con respecto
al diseño de sistemas dependientes del tiempo.
Estas topologías de alguna manera son tautologías de los arreglos más sencillos,
aunque la diferencia obvia es la temporalidad de ambos arreglos. Mientras que
una neurona causa que su respuesta se dé por lo menos un instante después que
sus entradas, los arreglos de más de una neurona causan que el incremento en el
tiempo de respuesta sea proporcional al numero de elementos de procesamiento
conectados de manera consecutiva.
58
Figura 3.17 Ejemplos de configuraciones equivalentes de neuronas.
59
3.7 Comentarios.
60
Capítulo 4.
Diseño y simulación de
sistemas dependientes del tiempo.
Norbert Wiener.
4.1 Introducción.
• Utilizar las técnicas de diseño de circuitos digitales para obtener una solución
basada en arreglos de compuertas lógicas (también llamados circuitos
combinacionales).
61
• En base a lo anterior, obtener redes neuronales equivalentes.
• Describir el funcionamiento de las neuronas con la LDT.
62
Además existe un factor de complejidad adicional, relacionado a la forma en que
se razona al efectuar un procedimiento de cálculo, pues por lo general la mayor
parte de estos están estructurados de forma secuencial, por lo que es poco
probable que la ejecución de cálculos que requieran de una atención simultánea,
puedan ser precisos sin un entrenamiento especializado.
El desarrollo del sistema de simulación estará enfocado sobre todo a plantear los
algoritmos fundamentales para el procesamiento de información, dejando para
trabajos posteriores todo lo referente a interfaces gráficas.
63
Para comenzar, es necesario identificar los componentes que formarán parte del
sistema de simulación. En el capítulo 3 se planteó a las neuronas artificiales como
los elementos de procesamiento a utilizar para el planteamiento de sistemas cuyo
comportamiento dependiera del tiempo. Sin embargo, surge la cuestión acerca de
como obtendrán las neuronas sus valores de entrada. Para ello será necesario
definir un nuevo componente que sea capaz de ser relacionado a las conexiones
sinápticas de las neuronas, tal que de los valores que produzca sean binarios.
Este componente será llamado generador de señales (GS). Además para poder
obtener los valores que produzcan estos elementos, se agregará un componente
que haga la función equivalente a la de un multimetro, cuyas puntas se colocan en
el lugar donde se precise obtener un valor. Este componente será llamado punto
de medición (PM).
Atributos.
n Numero de entradas
id Identificador
Métodos.
Atributos.
64
tipo Tipo de conexión (excitadora o inhibidora)
fuente Fuente del valor de entrada.
valor Valor de entrada.
Métodos.
Atributos.
id Identificador.
tipo Tipo de señal a generar.
amp Amplitud de la señal.
fase Fase de la señal.
valor Valor de la señal generada.
Métodos.
Atributos.
id Identificador.
fuente Identificador del elemento a medir.
valor Valor de entrada.
Métodos.
Con base en las clases definidas, plantear una clase de red neuronal sería una
limitación, puesto que solo es una colección de neuronas artificiales, y en este
caso, se deben relacionar los elementos de generación de señales y de medición.
Por lo tanto se definirá una clase llamada sistema dependiente del tiempo (SDT)
como una colección de neuronas artificiales, generadores de señales y puntos de
medición relacionados entre sí.
65
Clase : Sistema dependiente del tiempo (SDT).
Atributos.
Métodos.
a. Un PM es parte de un SDT.
b. Un GS es parte de un SDT.
c. Una NA es parte de un SDT.
66
d. Una CS es parte de una NA.
e. Una NA tiene por lo menos una CS y a lo más m CSs.
f. Un SDT puede no tener MPs o a lo más n MPs.
g. Un SDT puede no tener GSs o a lo más p GSs.
h. Un SDT puede no tener NAs o a lo más puede tener q NAs.
i. El modelo McCulloch y Pitts es una especialización de la clase NA.
Exc = 1
Inh = 0
Para lograr la simulación precisa de un objeto SDT, los eventos más importantes
que deben tomarse en cuenta son los disparos (o respuestas) de las neuronas, así
como la producción de valores por parte de los generadores de señales.
Hay que recordar que ambos eventos son simultáneos, por lo que cabe aclarar
que aunque a nivel de implementación su declaración sea secuencial, se
considerará que para cada intervalo de simulación su ejecución será paralela.
67
Mientras (T<=Tiempo total de simulación)
Obtener el valor de cada generador de señales
Obtener el valor de salida de cada neurona
Para las n neuronas de la red
Cada neurona procesa sus valores de entrada
Checar puntos de medición
Desplegar puntos de medición
Incrementar contador de tiempo T
fin Mientras
68
los punto de medición para su despliegue, y por último se incrementa el valor
contador de tiempo en uno (reloj).
Por último, puede ser necesario obtener el desempeño que el simulador tiene
para una configuración específica, sobre todo a nivel de tiempo de procesamiento.
Para hacer un cálculo estimado del tiempo que requerirá la simulación de un SDT,
se tendrá, con base a la definición 2.6, que la duración d del intervalo entre los
instantes de Ts (tiempo total de simulación), estará en función de los tiempos
totales de los procesos de generación de señales Tgs, respuesta de los elementos
neuronales de procesamiento Tna y la medición de señales Tpm, donde dna, dgs
y dpm serán la duración de los procesos que efectúen los componentes del SDT,
que podrán determinarse en base a las capacidades de procesamiento del CPU
que se este utilizando.
Tna = m * dna
Tgs = p * dgs
Tpm = q * dpm
Ts = n * d
69
0+0=0
0+1=1
1+0=1
1 + 1 = 10
Mientras que las tres primeras operaciones generan solo un bit de salida, la
cuarta genera dos, donde el bit más significativo es llamado bit de acarreo, por lo
que es necesario considerar dos entradas y dos salidas binarias.
Términos
x y C S Mínimos Máximos
0 0 0 0 m0 M0
0 1 0 1 m1 M1
1 0 0 1 m2 M2
1 1 1 0 m3 M3
f1 = C = xy = m3
f2 = S = x'y + xy' = m1 + m2
F1 = C = (x+y)(x+y')(x'+y) = M 0 * M 1 * M 2
F2 = S = (x+y)(x'+y') = M 0 * M 3
F1 = C = x(y+y')(x'+y)
C = x(x'+y) = xx'+xy = xy
F1 = C = xy
F2 = S = (x+y)(x'+y')
70
Lo anterior da como resultado las configuraciones de compuertas lógicas que se
muestran en la figura (4.1).
En el caso de que el tiempo sea estático la red (4.2) tiene una respuesta igual a
la del arreglo (4.1). Pero si se asume que la red es dependiente del tiempo su
resultado varía de forma significativa, pues mientras que el bit de acarreo es
generado un instante después, el resultado de la suma es generado varios
71
instantes después. Si se toma en cuenta, que cada neurona responde un instante
después de haber admitido un valor de entrada, se tiene
72
x y D0 D1 D2 D3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
D0 = x'y'
D1 = x'y
D2 = xy'
D3 = xy
D0 D1 D2 D3 x y
1 0 0 0 0 0
0 1 0 0 0 1
0 0 1 0 1 0
0 0 0 1 1 1
x = D2 + D3
y = D1 + D3
73
Figura 4.4 Circuito lógico codificador de dos bits.
El equivalente neuronal de los circuitos anteriores esta dado por las siguientes
expresiones:
a. Decodificador.
N1(t+1) = Exc(x(t))
N2(t+1) = Inh(x(t))
N3(t+1) = Exc(y(t))
N4(t+1) = Inh(y(t))
N5(t+2) = Exc(D(N2,N4))
N6(t+2) = Exc(D(N2,N3))
N7(t+2) = Exc(D(N1,N4))
N8(t+2) = Exc(D(N1,N3))
74
b. Codificador.
N1(t+1) = Exc(D2(t),D3(t))
N2(t+1) = Exc(D1(t),D3(t))
Hasta ahora los ejemplos que se han planteado solo se encargan de efectuar el
procesamiento de sus valores de entrada. Sin embargo son elementos que
carecen de memoria, pues su respuesta depende directamente de los estados de
sus entradas en ese momento.
75
La unidad mínima de almacenamiento se denomina celda, la cual puede guardar
un bit. La condición que debe cumplir es la de tener dos condiciones internas
distinguibles, las cuales son llamadas condiciones de la celda. El estado de la
celda es indicado por la variable de estado y, que puede tomar valores de cero y
uno. Para cambiar el estado de la celda es necesaria una señal de entrada
[BOOTH].
S R Q Q'
1 0 1 0
0 0 1 0
0 1 0 1
0 0 0 1
1 1 0 0
El equivalente neuronal de los circuitos anteriores esta dado por las siguientes
expresiones
76
N1(t+1) = Inh(S(t),N2(t))
N2(t+1) = Inh(R(t),N1(t))
N1(t) = N2(t) = 0
N1(t+1) = 0
N2(t+1) = 1
N1(t+2) = 0
N2(t+2) = 1
N1(t+3) = 0
N2(t+3) = 0
N1(t+4) = 1
N2(t+4) = 1
N1(t+5) = 0
N2(t+5) = 0
77
función. Si por ejemplo, se mantiene la condición de que la celda de memoria
tenga dos entradas, y su contenido este especificado por una sola salida, puede
definirse el comportamiento de este elemento de forma similar a la del flip-flop RS:
si S esta en estado alto la respuesta será uno, y si R está en alto, la respuesta será
cero.
N1(t+1) = Exc(S(t),N(t))+Inh(R(t))
Para N(t)=0 :
N(t+1) = 1 , si S=1
N(t+1) = 0 , si R=0
y para N(t)=1 :
N(t+1) = 1 , si S=1
N(t+1) = 0 , si R=0
Para cualquier otro caso (S=R=0 ó S=R=1) el valor contenido por la neurona se
mantiene.
S R Q
0 0 X
1 0 1
0 1 0
1 1 X
78
Figura 4.9 Red neuronal equivalente a una celda de memoria.
Nótese que las líneas de retroalimentación influyen en que el estado actual del
proceso dependa de su estado anterior.
Una de las aplicaciones que puede tener este dispositivo es el de servir como
indicador (o bandera) de la ocurrencia de un evento determinado. Así el estado del
proceso no cambiará hasta que otra señal lo inicialice.
79
Figura 4.10 Algoritmo para el control de eventos de dos semáforos.
1 1 0 0 0 0 1
2 1 0 0 0 0 1
3 0 1 0 0 0 1
4 0 0 1 1 0 0
5 0 0 1 1 0 0
6 0 0 1 0 1 0
N1(t+1) = x(t)
N2(t+2) = N1(t+1)
N3(t+3) = N2(t+2)
N4(t+4) = N3(t+3)
N5(t+5) = N4(t+4)
N6(t+6) = N5(t+5)
80
Figura 4.11 Red neuronal para el control de semáforos (primera versión).
1 N1 → SNV,SSR
2 N2 → SNV,SSR
3 N3 → SNA,SSR
4 N4 → SNR,SSV
5 N5 → SNR,SSV
6 N6 →SNR,SSA
Si bien esto permite que se habiliten los estados de los semáforos en el instante
preciso ¿qué pasa con los otros estados? Es necesario generar también las
señales que deshabiliten los estados que en ese instante deben estar apagados,
por lo que el diseño planteado originalmente debe modificarse, tomando en cuenta
que estas señales inhibidoras se deben generar al mismo tiempo que las
respuestas obtenidas.
N1(t+1) = x(t)
N7(t+1) = ¬N1(t+1)
N2(t+2) = N1(t+1)
N8(t+2) = ¬N2(t+2)
N3(t+3) = N2(t+2)
N9(t+3) = ¬N3(t+3)
N4(t+4) = N3(t+3)
81
N10(t+4) = ¬N4(t+4)
N5(t+5) = N4(t+4)
N11(t+5) = ¬N5(t+5)
N6(t+6) = N5(t+5)
N12(t+6) = ¬N6(t+6)
t
1 N1 -> SNV,SSR , N7 -> SNA,SNR,SSV,SSA
2 N2 -> SNV,SSR , N8 -> SNA,SNR,SSV,SSA
3 N3 -> SNA,SSR , N9 -> SNV,SNR,SSV,SSA
4 N4 -> SNR,SSV , N10 -> SNV,SNA,SSA,SSR
5 N5 -> SNR,SSV , N11 -> SNV,SNA,SSA,SSR
6 N6 -> SNR,SSA , N12 -> SNV,SNA,SSV,SSR
82
La primera opción implicaría dejar el diseño tal como esta. La segunda es más
interesante, pues implica el uso de la retroalimentación en la estructura de la red
neuronal, en específico, después de que el pulso de inicio se ha recibido, el
sistema generará su respuesta un periodo después, en base a la salida de su
último elemento. Esta modificación implica el cambio de la primera neurona de la
red, que en vez de ser un retardo ahora será un operador OR:
N1(t+1) = Exc(x(t),N6(t))
83
Figura 4.14. Controlador de tráfico.
4.7 Comentarios.
84
del mismo tipo [BOOTH], las neuronas no solo tienen un retraso uniforme sino que
este puede ser ajustado dependiendo de la aplicación que se requiera.
85
Capítulo 5.
Conclusiones y Perspectivas.
1. Introducción.
2. Resultados.
En relación al aspecto teórico de este trabajo, se considera que los logros más
importantes son los siguientes:
86
describir eventos futuros, aunque es obvio que cuantitativamente se dependerá
del resultado inmediato anterior.
Tal vez la principal ventaja al hacer esto, es que la misma estructura de los
elementos de procesamiento neuronal, implicaban en su funcionamiento el
fenómeno temporal de retardo, lo que relacionó la simbología planteada en la LDT
de forma natural. En general, la relación entre la LDT y las neuronas puede ser
descrita de tal manera que, cada una de las entradas a una neurona o sus salidas
pueden ser expresadas como una variable proposicional dependiente del tiempo,
mientras que una neurona corresponde a una transformación (u operador) de
dichas variables.
Es obvio que por las restricciones impuestas en las neuronas utilizadas (el valor
de los pesos de las neuronas es siempre de uno), tratar de hacer un análisis
descriptivo de redes con pesos de valores diferentes de uno no será válido, a
menos que se planteen los operadores equivalentes utilizando el rango de valores
definido para los pesos.
87
Ejemplo. El operador T de la LDT.
Si w1 ∈ [0,1] entonces
3. Aplicaciones.
• Los procesos que se ejecuten puedan ser definidos por medio de funciones
lógicas.
Esto permitirá que el modelado de problemas sea más real, con lo que las
soluciones que se obtengan tendrán un contenido de información mucho más
extenso y útil en comparación de los modelos estáticos.
88
los requerimientos generales del sistema. Es decir, si un proceso P produce una
salida S, P deberá tardar un periodo finito de tiempo, definido por el número de
elementos de procesamiento involucrados en el proceso, así como por el retraso
de n instantes que cada elemento tenga definido para generar una respuesta.
Por lo que respecta a la aplicación de esta teoría, se proponen dos áreas en las
que se considera que puede tener un mayor impacto:
89
decir, que un microprocesador o un microcontrolador se encargan de realizar
todas las operaciones del proceso se control (p.ej. sensado, análisis de señales,
etc.). Los sistemas de redes neuronales serían capaces de distribuir dicho
procesamiento en unidades especializadas y de menor costo (teóricamente),
evitando además en caso de una falla, una total caída del sistema.
Tal vez lo más complejo sea el adaptar los modelos de neuronas para que
presenten una respuesta no binaria.
90
tanto a nivel de interpretación como, posiblemente, a nivel de la estructura del
sistema lógico, pues para empezar estos modelos pueden tener como respuesta
un rango de valores que dejan de ser simplemente verdadero y falso. Sin
embargo, la idea de poder expresar de manera simbólica redes de neuronas de
este tipo no deja de ser un reto, por lo que la experiencia plasmada en esta tesis
puede servir como guía para tal desarrollo.
La representación de la LDT por medio de redes neuronales resultó ser útil para
el modelado de sistemas ya existentes, tales como sus equivalentes construidos
con compuertas digitales. Las diferencias radicales entre ambas técnicas son la
homogeneidad entre los elementos de procesamiento y dependencia temporal.
Por un lado las compuertas digitales sólo pueden llevar a cabo una operación
previamente definida, mientras que el comportamiento de las neuronas puede ser
modificado variando el valor de umbral de cada elemento, así como su número de
entradas.
Llevar a cabo una modificación de este tipo en una compuerta implicaría, a nivel
de hardware, una nueva configuración de los elementos del circuito, y hasta la
adición de otros tantos; en cambio, en una neurona, tal vez solo sea necesario
agregar algunos elementos para incrementar sus entradas.
Con respecto al factor de tiempo, es cierto que las compuertas digitales sufren un
retardo al generar su salida, pero la forma en que son usadas, en máquinas de
estados secuenciales por lo general, no implica una dependencia temporal
propiamente dicha. En cambio el uso de neuronas define a cada elemento como
un factor de cambio en el tiempo del sistema, donde igualmente se puede realizar
un proceso de forma secuencial, como paralela, sin la necesidad de incluir nuevos
elementos, ni consideraciones especiales en la arquitectura.
91
Referencias bibliográficas.
92
Simulación de modelos de neuronas artificiales.
ANIEI. 1995.
93
Time and threshold dependent logic.
Centro de Instrumentos. UNAM.
Sian ka'an International conference.
The first joint Mexico-US international workshop on neural networks and
neurocontrol. September 5-15, 1995.
94
Glosario.
Análisis.
Es la investigación bajo condiciones específicas del funcionamiento de
un sistema cuyo modelo matemático se conoce.
Codificador.
Es una función digital que produce una operación inversa a la del decodificador.
Un codificador tiene 2n (o menos) líneas de entrada y n líneas de salida. Las
líneas de salida generan el código binario para las 2n variables de entrada.
Decodificador.
Es un circuito combinacional que convierte la información binaria de n líneas de
entrada a un máximo de 2n líneas únicas de salida.
Estado.
El estado de un sistema es la colección de variables necesarias para describir un
sistema, en un tiempo particular relativo a los objetivos del estudio [OGATA80].
Evento.
Es una ocurrencia instantánea que puede cambiar el estado del sistema.
Fisiología.
Relativo al estudio de las funciones orgánicas.
Instante.
Mec. Momento preciso en que la variable temporal tiene un valor exactamente
determinado.
Intervalo.
Porción de espacio o tiempo que media entre dos cosas. Conjunto de los valores
que toma una magnitud entre dos limites dados.
95
Momento.
Periodo de duración indeterminado en que se hace cierta cosa o sucede algo.
Morfología.
Relativo a la forma.
Periodo.
Tiempo que tarda una cosa para volver al estado que tenía al principio.
Proceso.
Sucesión de fases que se reproducen regularmente en un fenómeno.
Síntesis.
Es la obtención de un procedimiento directo para que un sistema funcione de
modo específico.
Señal.
Variación de una corriente eléctrica, una presión u otra magnitud que representa
una información en virtud un elemento regulador u órgano cualquiera ejercerá
alguna acción sobre otro.
Señal analógica.
Señal que puede tomar cualquier valor en un rango continuo.
Señal digital.
Señal que solo puede variar en intervalos, y no en un rango continuo.
Sistema.
Colección de entidades que actúan e interactúan en conjunto para lograr algún
fin lógico (Schmidt & Taylor, 1970).
Sistema discreto.
Es aquel en que sus variables de estado cambian instantáneamente en puntos
separados en el tiempo.
Sistema continuo.
Es aquel en que sus variables de estado cambian continuamente con respecto al
tiempo.
Retroalimentación (feedback).
Información sensorial sobre el desempeño de una tarea.
96
Apéndice A.
Documentación.
1. Requerimientos.
3. Manual de operación.
97
• Definir una neurona. Crea una neurona artificial, permitiendo definir sus
parámetros (número y tipo de entradas, conexiones, valor del umbral, cantidad
de instantes de retardo).
• Listar los elementos del sistema. Muestra un listado de todos los elementos del
proyecto y sus características.
98
11
16 Generadores de señales (id y tipo de patrón de la señal).
27
38
<EOF>
{
Diseño y simulación de redes neuronales.
* Convenciones:
program dsrn_system;
uses crt;
99
const
p0:array[1..8] of byte=(1,0,1,0,1,0,1,0);
p1:array[1..8] of byte=(0,1,0,1,0,1,0,1);
p2:array[1..8] of byte=(1,1,1,1,1,1,1,1);
p3:array[1..8] of byte=(0,0,0,0,0,0,0,0);
p4:array[1..8] of byte=(1,1,0,0,1,1,0,0);
p5:array[1..8] of byte=(1,1,1,1,0,0,0,0);
p6:array[1..8] of byte=(1,0,0,0,0,0,0,0);
p7:array[1..8] of byte=(0,1,0,0,0,0,0,0);
p8:array[1..8] of byte=(0,0,1,0,1,0,1,1);
p9:array[1..8] of byte=(1,0,0,0,1,0,1,1);
ESC = #13;
type
{Entradas de la neurona}
input = record
in_from,
in_type : byte; {0-Inh; 1-Exc}
value : byte;
end;
{Neurona artificial}
neuron = record
id : byte;
inputs : array[1..10] of input; {entradas}
n_in : integer; {numero de entradas}
thr : integer; {umbral de disparo}
delay_t : byte; {tiempo de retardo}
d_buff: array [1..max_delay] of byte; {buffer para el retardo}
output : byte; {salida de la neurona }
end;
100
{Punto de medición}
messure_point = record
cfrom:byte;
value:integer;
end;
var
{----------------------------------------------------}
101
end;
102
procedure show_patterns;
var i,j:byte;
begin
gotoxy(54,12);
write('Señales');
for i:= 0 to 9 do
begin
gotoxy(48,i+14);
write('p',i);
end;
for i:= 1 to 8 do
for j:=0 to 9 do
begin
gotoxy(50+(i*2),j+14);
write(pattern_val(j,i));
end;
end;
procedure show_sys;
{muestra un listado de los elementos del sistema}
var i:byte;
begin
clrscr;
for i:=1 to n_ns do
with NNet[i] do
begin
writeln('Elemento ',id,' Neurona/ #Entradas ',n_in,
' Umbral ',thr,' Delay ',delay_t); {conexiones}
end;
writeln;
for i:=1 to n_sig do
with Sign[i] do
begin
writeln('Elemento ',id,' Señal / Patrón ',s_type);
end;
writeln;
for i:=1 to n_mps do
with Mpts[i] do
begin
writeln('Muestra ',i,' Origen ',cfrom);
end;
writeln;
write('Presione ENTER para continuar...');
readln;
end;
103
id:=id_ctrl;
end;
{----------------------------------------------------}
{----------------------------------------------------}
104
2: s.value:=p2[s.c];
3: s.value:=p3[s.c];
4: s.value:=p4[s.c];
5: s.value:=p5[s.c];
6: s.value:=p6[s.c];
7: s.value:=p7[s.c];
8: s.value:=p8[s.c];
9: s.value:=p9[s.c];
end;
inc(s.c);
if s.c>8 then s.c:=1;
end;
{----------------------------------------------------}
procedure set_inputs;
{captura de los datos de entrada de una neurona}
var
i:byte;
begin
with NNet[n_ns] do
begin
write ('Numero de entradas [1..10]: ');
readln (n_in);
105
for i:=1 to n_in do
begin
write ('La entrada X',i,' es Exc [1] o Inh [0]: ');
readln (inputs[i].in_type);
write ('El valor de la entrada X',i,' viene de: ');
readln (inputs[i].in_from);
if inputs[i].in_from>id_ctrl then
writeln('Advertencia: el ID no existe');
end;
write ('Valor del umbral: ');
readln (thr);
write ('Valor del delay: ');
readln (delay_t);
end;
end;
{----------------------------------------------------}
{n.d_buff[1]:=n.output;}
n.output:=n.d_buff[n.delay_t+1]; {salida de la neurona con retardo}
end;
106
inp:=0;
for i:=1 to n.n_in do
begin
{se obtienen las entradas a la neurona por medio de los id's}
for j:=1 to n_ns do
if NNet[j].id=n.inputs[i].in_from then
inp:=NNet[j].output;
if n.inputs[i].in_type=1 then
exc:=exc+inp
else
inh:=inh+inp;
end;
sum := exc-inh;
if sum>=n.thr then
n.d_buff[1]:=1
else
n.d_buff[1]:=0;
end;
check_mp_value;
display_mps;
end;
procedure simulation;
var ch:char;
i:byte;
begin
write('Tiempo total de la simulación: ');
readln(total_time);
writeln;
write('Presione ENTER para comenzar la simulación...');
readln;
scr_format;
107
time_c:=1;
for i:=1 to n_sig do
Sign[i].c:=1;
for i:=1 to n_ns do
begin
fillchar(NNet[i].d_buff,sizeof(NNet[i].d_buff),0);
fillchar(NNet[i].output,sizeof(NNet[i].output),0);
end;
while (time_c<=total_time) and (ch<>ESC) do
begin
p_net;
time_c:=time_c+1;
if keypressed then ch:=readkey;
end;
writeln; writeln;
write('La simulación ha concluido ! Presione ENTER para continuar...');
readln;
end;
{----------------------------------------------------}
108
readln(fcfg,id,thr,delay_t,n_in);
for j:=1 to n_in do
readln(fcfg,inputs[j].in_from,inputs[j].in_type);
end;
end;
id_ctrl:=n_ns+n_sig;
close(fcfg);
end
else
begin
writeln('El archivo ',scf,' no existe !'); readln;
end;
end;
procedure save_sys;
{salva la red neuronal activa y los elementos asociados}
var
sc,pname:string;
fcfg:text;
i,j:byte;
begin
write('Nombre del proyecto : ');
readln(pname);
sc:=concat(pathn,copy(pname,1,length(pname)));
sc:=concat(sc,'.pry');
assign(fcfg,sc);
{$I-}
rewrite(fcfg);
{$I+}
writeln(fcfg,'{',pname,'}'); {nombre del proyecto}
writeln(fcfg,n_mps); {numero de puntos de medición}
writeln(fcfg,n_ns); {numero de neuronas}
writeln(fcfg,n_sig); {numero de generadores de señales}
for i:=1 to n_mps do
writeln(fcfg,Mpts[i].cfrom); {conexiones}
109
writeln(fcfg,id,' ',s_type); {tipo de señal}
close(fcfg);
end;
{----------------------------------------------------}
begin
110
load_sys_config;
initialize_sys;
menu;
end.
111