Lógica dependiente del tiempo y elementos neuronales de procesamiento

120
ESTUDIOS CON RECONOCIMIENTO DE VALIDEZ OFICIAL DE LA SECRETARIA DE EDUCACION PUBLICA SEGUN ACUERDO Nº 942174 DEL 31 DE OCTUBRE DE 1994. Lógica dependiente del tiempo y elementos neuronales de procesamiento. TESIS QUE PARA OBTENER EL TITULO DE INGENIERO EN COMPUTACION PRESENTA Eugenio Jacobo Hernández Valdelamar ASESOR: José Luis Pérez Silva. México D.F. 1997.

description

Eugenio Jacobo Hernández Valdelamar. Tesis para obtener el titulo de Ingeniero en Computación. Fundación Arturo Rosenblueth. México, 1997.

Transcript of Lógica dependiente del tiempo y elementos neuronales de procesamiento

Page 1: Lógica dependiente del tiempo y elementos neuronales de procesamiento

ESTUDIOS CON RECONOCIMIENTO DE VALIDEZ OFICIAL DE LA SECRETARIA DE EDUCACION PUBLICA SEGUN ACUERDO Nº 942174 DEL 31 DE OCTUBRE DE 1994.

Lógica dependiente del tiempo y elementos neuronales de procesamiento.

TESIS

QUE PARA OBTENER EL TITULO DE

INGENIERO EN COMPUTACION

PRESENTA

Eugenio Jacobo Hernández Valdelamar

ASESOR: José Luis Pérez Silva.

México D.F. 1997.

Page 2: Lógica dependiente del tiempo y elementos neuronales de procesamiento

iiiiiiii

Lógica dependiente del tiempo y elementos neuronales de procesamiento.

Eugenio Jacobo Hernández Valdelamar

http://creativecommons.org/licenses/by-nc-nd/2.5/mx/legalcode

http://codink.blogspot.com

Page 3: Lógica dependiente del tiempo y elementos neuronales de procesamiento

iiiiiiiiiiii

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. Capítulo 2. Lógica dependiente del tiempo. 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. Capítulo 3. Lógica dependiente del tiempo y elementos de procesamiento neuronal. 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.

Page 4: Lógica dependiente del tiempo y elementos neuronales de procesamiento

iviviviv

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. Capítulo 4. Diseño y simulación de sistemas dependientes del tiempo. 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. Capítulo 5. Conclusiones y Perspectivas. 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.

Page 5: Lógica dependiente del tiempo y elementos neuronales de procesamiento

vvvv

Agradecimientos. A mi padre Jacobo Hernández Morales y a mi madre Ma. Guadalupe Valdelamar por su apoyo y mi educación. A José Luis Pérez Silva y al Centro de Instrumentos de la UNAM. A Beatriz Hernández y Jorge Vasconselos por sus comentarios. A Alejandro Ramírez por sus opiniones. A Alejandro Domínguez por sus sugerencias. A Jaime Lagunes y Miguel Armas por su interés en este trabajo. A Hugo Gutiérrez, Francisco Otero y Antonio Martínez por su amistad. A Violeta Moisen por mantenerme vivo. Y a toda la gente que tuvo la preocupación de que terminara este trabajo.

Page 6: Lógica dependiente del tiempo y elementos neuronales de procesamiento

vivivivi

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. De hecho, este trabajo trata de rescatar las ideas de algunos de los investigadores contemporáneos más importantes como Norbert Wiener, Warren McCulloch, Arturo Rosenblueth y Walter Pitts, en relación a la teoría de neuronas artificiales (llamadas en este trabajo elementos neuronales de procesamiento, por ser consideradas como unidades de procesamiento independientes), en combinación con el planteamiento de una lógica temporal elaborado por Alejandro Medina. Proponer la fusión de estos conocimientos, no es sólo un ejercicio sin sentido, si se toma en cuenta el creciente interés en la tecnología de redes neuronales por parte de diversas áreas de la ciencia en los últimos años, además de la posibilidad de que este enfoque se convierta en la pieza fundamental de la arquitectura de las computadoras de las próximas generaciones. La idea de la aplicación de la lógica y las matemáticas a la descripción de los modelos de organización del sistema nervioso central es de John Von Neumann, aunque los primeros modelos lógicos fueron los de McCulloch y Pitts. Sin embargo la lógica simbólica no es suficiente para el análisis de un sistema que por naturaleza depende del tiempo. En este sentido la propuesta de Medina (aunque no es la única de su tipo) es de gran utilidad, pues su lógica temporal en realidad es relativamente muy simple. La propuesta de este trabajo tiene tres objetivos principales: 1. Replantear la lógica dependiente del tiempo (LDT) como un sistema formal.

Page 7: Lógica dependiente del tiempo y elementos neuronales de procesamiento

viiviiviivii

Proponer un orden será necesario a causa de que la teoría original de la LDT no está definida bajo una estructura formal. Para ello es necesario explicar los conceptos relacionados a la lógica simbólica, y en particular al cálculo proposicional (lo cual proporcionará el marco teórico de este trabajo). Hecho lo anterior se estructurarán las principales ideas en torno al tiempo y la forma en que este puede ser relacionado con la lógica, para plantear un sistema lógico formal por medio del cual, puedan representarse de manera simbólica la estructura y los estados de un sistema dinámico. Cabe mencionar que al referirse a la LDT se estará hablando de un cálculo proposicional dependiente del tiempo. 2. Aplicar la LDT a la descripción del comportamiento de las neuronas artificiales. Para ello se hace necesario conocer el funcionamiento de los elementos que se pretende describir, por lo que se expone de manera breve la teoría sobre neuronas artificiales, para luego tomar un caso particular de estos elementos basado en el modelo McCulloch-Pitts, y con él, exponer los equivalentes neuronales de los operadores de la LDT, así como otros casos relevantes. 3. Plantear la posibilidad y factibilidad del diseño de sistemas digitales por medio de neuronas artificiales y la LDT. La aplicación de la LDT y los elementos de procesamiento neuronal, al diseño e implementación de sistemas digitales es factible, si se obtienen elementos equivalentes a los de la electrónica digital, por lo que se expondrán algunos casos de sistemas digitales, donde la combinación de técnicas de diseño convencionales. La investigación de las características de las redes neuronales por medio de esta metodología, brindaría resultados cualitativos importantes sobre todo en redes cuyos resultados no pueden ser obtenidos por algoritmos convencionales, así como tener la posibilidad real de manipular neuronas con fines específicos. Lo anterior justifica la trascendencia de este trabajo y los desarrollos posteriores que puedan realizarse con base en él, aunque tal vez la principal aportación sea motivar el desarrollo de nuevas ideas en relación a temas de vanguardia, así como proponer una metodología alternativa con capacidades de paralelismo que vale la pena tomar en cuenta para el desarrollo de sistemas de control o procesamiento de información. Las principales áreas con las que se relaciona este trabajo son: • Lógica. • Redes neuronales. • Electrónica digital.

Page 8: Lógica dependiente del tiempo y elementos neuronales de procesamiento

viiiviiiviiiviii

• Análisis y diseño de programas. Como parte de los resultados obtenidos se presenta el análisis y el diseño un sistema para la simulación de redes neuronales en el tiempo, como justificación de la teoría expuesta. A continuación se ofrece una descripción de la organización y el contenido de este trabajo. 1. Lógica. El objetivo de este capítulo es el de plantear el marco teórico para el desarrollo de un sistema lógico, en específico del cálculo proposicional. Esto a manera dar una idea sobre lo que implica la definición de un sistema de lógica, lo cual será aprovechado en adelante. 2. Lógica dependiente del tiempo. En este capítulo se plantea la idea de un sistema de lógica temporal exponiendo algunos antecedentes y trabajos recientes relacionados, y tomando como base el trabajo de Alejandro Medina se exponen los principales puntos de esta teoría, así como su relación con elementos de procesamiento neuronal. 3. Lógica dependiente del tiempo y elementos de procesamiento neuronal. Aquí se describen los principios de la tecnología de redes neuronales y se describe el modelo de neuronas que se utilizan en este trabajo. Además se plantean una serie de técnicas para aplicar la LDT a la representación de redes neuronales en el tiempo y algunos de los casos particulares más importantes. 4. Diseño y simulación de sistemas dependientes del tiempo. Como parte de la justificación de las ideas expuestas, se exponen una serie de ejemplos de sistemas que pueden tener un uso práctico. Así se toman como base configuraciones cuyo diseño se basa en compuertas lógicas digitales y se plantean sus equivalentes neuronales y las características y diferencias entre ellos. 5. Conclusiones. En este último capítulo se exponen y comentan las conclusiones obtenidas, así como posibles aplicaciones y desarrollo posterior de la teoría expuesta.

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

Page 9: Lógica dependiente del tiempo y elementos neuronales de procesamiento

ixixixix

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.

Page 10: Lógica dependiente del tiempo y elementos neuronales de procesamiento

1111

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." Alicia en el país de la maravillas. Lewis Carroll.

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. Para los fines de este trabajo, el conjunto de conocimiento a estudiar es la lógica clásica, y en específico el cálculo proposicional. Lo anterior será el marco teórico en que se apoya la propuesta de esta tesis. En este capítulo se exponen los principales conceptos relacionados con la lógica simbólica así como sus objetivos, además de comentar la teoría relacionada con la formulación de esquemas teóricos informales y sistemas formales , con el fin de obtener una serie de ideas y nociones auxiliares en el planteamiento de un sistema lógico. Tras la exposición de estas ideas se define el sistema lógico

Page 11: Lógica dependiente del tiempo y elementos neuronales de procesamiento

2222

conocido como cálculo proposicional basando la estructura de su definición en aspectos intuitivos así como los aspectos relevantes de los sistemas formales. Se escogió al cálculo proposicional como objeto de estudio por las siguientes razones: . Provee un marco teórico sólido para el desarrollo de este trabajo, en cuanto a notación, convenciones y validez de sus axiomas. . La estructura del cálculo proposicional es básicamente la misma que se pretende manejar para la lógica dependiente del tiempo, en el aspecto de ser sistemas encargados de manipulación de proposiciones, aunque su interpretación sea diferente. 1.2 Lógica simbólica. La lógica simbólica es un medio por el cual las estructuras lingüísticas utilizadas comúnmente en el proceso de razonamiento humano son abstraídas en símbolos para evitar ambigüedad en su interpretación. Su eficiencia en la representación de ideas es tal que se ha convertido en una herramienta sistemática de razonamiento indispensable en el quehacer de la ciencia. De hecho la lógica tiene como problema principal la clasificación de argumentos a los que les es asignado un valor de verdad [4]. El planteamiento de este problema implica conocer: • la estructura de los elementos que componen a la lógica ; • qué son y para qué sirven los valores de verdad y • en qué consiste y como se lleva a cabo el proceso de clasificación de un

argumento. Estos puntos serán ampliados a continuación, tratando de seguir el orden en que se enumeraron.

Page 12: Lógica dependiente del tiempo y elementos neuronales de procesamiento

3333

1.2.1 Argumentos, proposiciones y relaciones. Un argumento se define como la representación de un razonamiento, el cual está compuesto por un conjunto cualquiera de elementos llamados proposiciones (expresiones o enunciados), en los que se fundamenta su verdad. Las proposiciones son tomadas generalmente como frases que afirman o niegan algo, por ejemplo: • Alejandro Magno fue un general conquistador. • 2 es un número par. que representadas de manera simbólica son llamadas variables proposicionales, como es el caso de la siguiente expresión: p = {2 es un número par}

Profundizando en la estructura de las proposiciones, se encuentran elementos aún más simples que forman parte de ellas: los objetos. Estos entes a los cuales es dirigida una acción, son distinguibles entre sí gracias a un conjunto de características particulares (o cualidades) que describen la clase a la que pertenecen. Ejemplo 1.1 Objeto : 2 Características: es un número entero; es positivo. Adicionalmente existe otro tipo de características que se definen al hacer referencia a otros objetos, las cuales son llamadas relaciones [20]. Estas establecen un vínculo entre objetos a partir de la similitud de sus cualidades o de relaciones previamente establecidas.

Page 13: Lógica dependiente del tiempo y elementos neuronales de procesamiento

4444

Figura 1.1 Estructura de un argumento lógico Una relación puede ser representada simbólicamente por medio de las siguientes expresiones

Rxy ò R (x,y) Representación prefija xR,y Representación infija xyR Representación posfija

donde R es una relación cualquiera entre dos objetos y x,y,z... son los objetos. En lo sucesivo la mayor parte de las expresiones en las definiciones y ejemplos de este trabajo adoptarán la representación infija, aunque en capítulos posteriores se use la notación infija en algunos casos (p.ej. al definir procesos). Para denotar la relación entre varios objetos (más de dos) 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} Las propiedades relacionales sirven para establecer la interacción entre las relaciones y los términos involucrados. Dichas propiedades son las siguientes (aquí expresadas con la notación prefija):

Page 14: Lógica dependiente del tiempo y elementos neuronales de procesamiento

5555

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). El concepto de relación no solo forma parte de la estructura de los objetos, sino que su aplicación puede ampliarse a objetos más complejos, tales como las proposiciones y los argumentos, obteniendo los mismos resultados. La descripción de todos estos elementos debe ser complementada con el concepto de valores de verdad, mencionado en el problema de la lógica, con el fin de llevar a cabo el proceso de clasificación, el cual por lo general se maneja de manera bivaluada (dos clases o valores posibles), es decir que o pertenece a una clase o a la otra pero no a ambas a la vez. Este criterio será discutido a continuación. 1.2.2 Validez. Al hacer referencia al término "valores de verdad" debe aclararse que desde un punto de vista común, la certeza o falsedad de un argumento es relativa al sujeto, el lugar y el tiempo, y generalmente depende en gran medida del sentido común. En lógica, la validez de un argumento está dada en función de la verdad o falsedad de las proposiciones que componen el argumento. De modo que un argumento es válido, cuando sus premisas y conclusión están relacionadas de tal forma que, las premisas sean verdaderas si y solo si la conclusión también lo es. 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. Al tratar de abstraer simbólicamente expresiones más complejas, hay que tomar en cuenta que el valor de verdad de dicha expresión ahora dependerá de la verdad o falsedad de un conjunto de proposiciones. Al hablar de expresiones complejas, se hace referencia a argumentos formados por dos o más

Page 15: Lógica dependiente del tiempo y elementos neuronales de procesamiento

6666

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 Enunciados simples (proposiciones):

El universo es finito. La vida es fugaz.

Enunciado compuesto por dos enunciados simples y una conjunción (argumento):

El universo es finito y la vida es fugaz. Así estas relaciones quedarán establecidas definiendo una serie de conectivos y sus propiedades, para que al ser aplicados a una proposición esta pueda ser clasificada como verdadera o falsa, pero no ambas. A esto se le conoce como valores de verdad. Estos conectivos se pueden clasificar por el número de elementos que relacionan como unarios (se aplican a un solo término), binarios (relacionan a dos términos), etc. El número de elementos relacionados por un operador es conocido como aridad. La descripción de la función de cada uno de ellos es la siguiente: 1. Negación (¬). Si la proposición es verdadera su negación es falsa. 2. Disyunción (|). La disyunción de dos proposiciones es falsa si y solo si ambas son falsas. 3. Conjunción (&). La conjunción de dos proposiciones es verdadera si y solo si ambas son verdaderas. 4. Implicación condicional (→→→→). La implicación de dos proposiciones es falsa si y solo si, la primera es verdadera y la segunda es falsa. 5. Implicación bicondicional (↔↔↔↔). La doble implicación de dos proposiciones es verdadera si y solo si ambas son verdaderas o falsas a la vez.

Page 16: Lógica dependiente del tiempo y elementos neuronales de procesamiento

7777

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). Este método se usa para determinar la validez o invalidez de una expresión, examinando todas las posibles instancias de sustitución de sus premisas. Por lo tanto, si se especifica el valor de verdad para cada caso posible del argumento, entonces se tiene la definición del argumento en términos de los valores de verdad de cada uno de sus componentes. Ejemplo 1.5 Para el argumento x & y la tabla de verdad equivalente es p q p&q

T T T T F F F T F F F F Así, de manera similar a la de sus argumentos, la validez de un sistema lógico estará dado por una serie de fórmulas cuyos valores siempre son verdaderos, para todas las posibles asignaciones de los valores de verdad de sus componentes primarios. Estas son llamadas tautologías, y forman el conjunto de axiomas que junto con las reglas de inferencia se usan para realizar una demostración. 1.2.3 Reglas de Inferencia y demostraciones. La clasificación de argumentos se lleva a cabo con base en una serie de axiomas aceptados. Un concepto igualmente importante es el de definición, pues muchas de estas verdades así como los elementos que componen la lógica son en principio simplemente definidos. De la misma manera pueden declararse convenios con respecto a sus características, declaración y uso, por mencionar algunas de las aplicaciones que se les da constantemente tanto durante el proceso de formulación como en la práctica. La clasificación consiste en afirmar una proposición con base en otras proposiciones aceptadas. Dicha actividad es llamada inferencia. El resultado

Page 17: Lógica dependiente del tiempo y elementos neuronales de procesamiento

8888

principal de este proceso son las relaciones entre las proposiciones iniciales y finales. Para evitar la construcción de tablas de verdad y encontrar dichas relaciones (sobre todo cuando se trata de una serie de argumentos) se han establecido una serie de normas para llegar a conclusiones verdaderas (proposiciones finales o consecuentes) cuando se parte de premisas verdaderas (proposiciones iniciales o antecedentes). Estas son las llamadas reglas de inferencia [28]. Estas reglas están contenidas en un conjunto de funciones de verdad que tienen como principal característica el ser tautológicas. Al aplicar las reglas de inferencia obtenidas de las funciones de verdad que cumplen con la condición de ser tautológicas para llegar a una conclusión, se dice que se lleva a cabo una demostración (proceso de deducción). El objetivo de una demostración es deducir una fórmula en particular a partir de la construcción de sus relaciones con el conjunto inicial de fórmulas. 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. A continuación se presenta un ejemplo de un conjunto de reglas de inferencia y su aplicación en una demostración. Ejemplo 1.6 Sea la regla de inferencia modus ponens definida como: Premisa : p Premisa : p→q

Conclusión: q y sean las proposiciones "la velocidad (v) de un cuerpo A es de 5 m/seg" y "la distancia recorrida por A es d=v*t, para t=1 seg.", representadas por p y q respectivamente. En este caso p es un axioma, si se comprueban como ciertas las características de A en el fenómeno estudiado, mientras que q dependerá de p cuantitativamente de forma directa, por lo que p→q, queda definida por la expresión "Si la velocidad

Page 18: Lógica dependiente del tiempo y elementos neuronales de procesamiento

9999

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. 1.2.4 Estructura de los sistemas lógicos. 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: 1. La sintaxis de un lenguaje es una especificación precisa de las expresiones

(secuencias de símbolos) permitidas en la definición del lenguaje. 2. La semántica contiene el significado de las expresiones del lenguaje. En el

caso de una lógica binaria, puede entenderse como la representación de los significados comunes de las proposiciones, por medio de un conjunto de valores {cierto,falso}. Por ejemplo, si los estados de una proposición fuesen frío o caliente pueden representarse equivalentemente por medio del conjunto {0,1}.

3. La deducción provee reglas para la manipulación de expresiones que

preservan ciertos aspectos de la semántica. Por ejemplo, para el caso de la lógica simbólica, las reglas de inferencia antes mencionadas, permiten obtener los valores de verdad de un argumento.

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.

Page 19: Lógica dependiente del tiempo y elementos neuronales de procesamiento

10101010

1.3 Teorías informales y Sistemas formales. Comúnmente en cualquier área de la ciencia se hace más énfasis en la transmisión repetitiva del conocimiento relacionado a cada disciplina, dejando a un lado la forma en que se desarrolla dicho conocimiento. Si bien se expone al mentado método experimental como la única metodología para hacer ciencia, esta no es la única consideración que debe hacerse. 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. Esta parte de la investigación científica es la que a continuación se comenta con el fin de encontrar maneras de estructurar una serie de conocimientos con el propósito de guardar sus relaciones y la coherencia de las ideas en las que se basan. 1.3.1 Teorías axiomáticas y teorías informales. Para tratar de aclarar la manera en que un conjunto de conocimiento o teoría es aceptado como válido, debe llevarse a cabo un análisis de dicho conjunto, que en principio puede ser una colección de suposiciones no demostradas. Algunos de estos elementos básicos son aceptados como evidentes en primera instancia por la intuición con lo que se obtiene una teoría intuitiva. Dicha teoría intuitiva se axiomatiza al suponer como ciertas sus nociones y propiedades, y presuponer ciertas teorías previamente construidas (que apoyan su validez). En este punto la teoría axiomatizada se considera posible si en sus posibles aplicaciones pueden realizarse predicciones (útiles o no) en base a ella [24].

Page 20: Lógica dependiente del tiempo y elementos neuronales de procesamiento

11111111

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. 1.3.2 Sistemas formales. La sutil diferencia entre el conocimiento organizado y el que no lo está, es la brecha entre que un conjunto de conocimiento sea ciencia o no. Aquel conocimiento que se encuentra estructurado con base en ciertas reglas se le conoce como sistemas formales. 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). Un sistema formal [17] está compuesto por: un alfabeto A; un subconjunto B de palabras en A cuyos elementos son llamados fórmulas ; un subconjunto C de B cuyos elementos son llamados axiomas y un conjunto finito P de predicados recursivos de palabras de B llamados reglas de inferencia (o reglas de producción). Se debe tomar en cuenta que la meta no es definir la totalidad de los términos, ni demostrar cada proposición, sino que baste con definir un número mínimo de proposiciones para deducir el resto de ellas y de igual manera con la definición de los términos. Esto es a lo que se llama un sistema deductivo [4].

Page 21: Lógica dependiente del tiempo y elementos neuronales de procesamiento

12121212

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. 1.4 El cálculo proposicional. 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. Esta teoría esta enfocada a proporcionar un criterio para decidir de manera mecánica si una serie de razonamientos o secuencia finita de proposiciones es aceptada como correcta en base a su estructura. Dentro de las matemáticas esto equivale a deducir teoremas aplicando una colección de axiomas siguiendo las reglas de un sistema lógico. Los elementos de este sistema se plantearán con base en las definiciones sintácticas, semánticas y deductivas expuestas a lo largo de este capítulo tomando como punto de partida la estructura de un sistema formal así como nociones de la teoría de conjuntos asumiendo el criterio de una teoría informal. 1.4.1 Definición de símbolos y operadores. El alfabeto (o vocabulario) del cálculo proposicional consiste de un conjunto de proposiciones o constantes proposicionales denotadas por letras minúsculas (a veces indexadas) y un conjunto de conectivos [25]. Los elementos de este alfabeto son también llamados símbolos primitivos [4]. Constantes proposicionales : p,q,r,s,... Operadores:

Page 22: Lógica dependiente del tiempo y elementos neuronales de procesamiento

13131313

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 p q p&q p|q p→q p↔q

T T T T T T T F F T F F F T F T T F F F F F T T 1.4.2 Reglas sintácticas. Dado el vocabulario del cálculo proposicional es necesaria la construcción de reglas para permitir la especificación de combinaciones distinguibles (y no solo secuencias finitas de símbolos primitivos) llamadas fórmulas (o fórmulas bien formadas), las cuales forman el lenguaje del cálculo proposicional. Las reglas para construir fórmulas son: i. Cada proposición es una fórmula (paso Base).

Page 23: Lógica dependiente del tiempo y elementos neuronales de procesamiento

14141414

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). Además de estas reglas de construcción debe tomarse en cuenta la jerarquía de los operadores teniendo como convención el siguiente orden (el orden es de izquierda a derecha): ↔↔↔↔ , →→→→ , | , & , ¬ 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. 1.4.3 Axiomas y Reglas de inferencia. 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 (⊥). Puesto que la consistencia ha sido definida por las reglas de construcción de fórmulas, al ubicar el papel de la definición de validez en este sistema lógico se tiene un conjunto de tautologías con las que se podrá constatar si una fórmula es válida o no. La derivación de dicho conjunto puede hacerse desarrollando las tablas de verdad para todas las fórmulas posibles lo que es un método impráctico. En su lugar es preferible definir reglas para la obtención de tautologías a partir de un conjunto pequeño de tautologías simples [24]. Estas reglas están expresadas en los siguientes teoremas:

Page 24: Lógica dependiente del tiempo y elementos neuronales de procesamiento

15151515

Teorema 1.1 ⊥ A ↔ B si y solo si A = B

Teorema 1.2 Si ⊥ A y ⊥ A → B entonces ⊥ B Teorema 1.3 Sea A una fórmula compuesta de componentes primarios usando solo ¬, & y |. Sea An la negación de A. Entonces ⊥ ¬A ↔ An es una tautología. El primer teorema muestra la equivalencia de fórmulas en términos del concepto de validez, lo cual es muy útil para hacer sustituciones. El segundo teorema es una regla de inferencia (modus ponens) para obtener nuevas tautologías; y el tercero denota las propiedades de la negación tal que al aplicar esta propiedad a una fórmula A, se tendrá que An (su negación) se obtiene de reemplazar los operadores | por & y viceversa, así como cada ocurrencia de una proposición Pi por ¬Pi, y viceversa. A continuación se presenta una lista de las tautologías usadas en el cálculo proposicional. 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

Tautologías para la eliminación de conectivos (reglas de sustitución): • A ↔B ↔(A →B) & (B →A)

• A →B ↔(¬A | B)

• ¬(A & B) ↔(¬A | ¬B)

• ¬(A | B) ↔(¬A & ¬B)

Page 25: Lógica dependiente del tiempo y elementos neuronales de procesamiento

16161616

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

Con este resultado la demostración que una fórmula B (conclusión) es una consecuencia de las fórmulas A1,A2,...,Am (premisas), puede presentarse en forma de una secuencia finita de fórmulas, donde la última es B. A continuación se listan las reglas de inferencia definidas para la demostración de fórmulas y la prueba de hipótesis. 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

Page 26: Lógica dependiente del tiempo y elementos neuronales de procesamiento

17171717

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). Por lo tanto, aplicar el cálculo proposicional para solucionar problemas significa que se demostrará, a partir de las premisas contenidas en el planteamiento del mismo, una conclusión dada o se deducirá una nueva. Como ejemplo de esto se plantea el siguiente problema. Ejemplo 1.7 Sea la ecuación y = mx + b. Obtener el valor de x. En este problema de álgebra es posible aplicar el proceso de inferencia del cálculo proposicional proponiendo los siguientes puntos para obtener una conclusió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. Si y=mx+b entonces mx=y-b Si mx=y-b entonces x=(y-b)/m El término plantear puede asumirse de cierta manera como equivalente de traducir. Esto es útil cuando el problema es descrito por medio del lenguaje común (o natural), donde las redundancias en las expresiones originales pueden ocasionar errores en el planteamiento y la interpretación de las conclusiones obtenidas. Este proceso de traducción del lenguaje natural a la estructura definida hasta ahora es lo que se llama formalización [26]. b. Sustituir las expresiones algebraicas por variables y conectivos en base a las reglas de sintaxis del cálculo proposicional. p = {y = mx + b }

q = {mx = y - b }

r = {x = (y-b)/m}

(1) p → q

(2) q → r

Page 27: Lógica dependiente del tiempo y elementos neuronales de procesamiento

18181818

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)

donde la conclusión r es cierta a partir de las premisas p y q. 1.5 Comentarios. El esquema proposicional discutido se aplica extensamente en varias disciplinas de la ciencia aunque aquel que lo aplique debe aprender a diferenciar sus elementos en casos particulares con el fin de obtener un beneficio real de su estudio. De igual manera ocurre con la mecánica de la aplicación de las reglas de inferencia, en cuyo caso no solo es útil el conocimiento sino la experiencia en la obtención de resultados. Como se mencionó al principio de este capítulo la estructura del cálculo proposicional será utilizada como esquema de referencia para plantear la lógica dependiente del tiempo por medio de ciertas consideraciones, pero bajo el criterio de que la lógica proposicional sirve como base para soportar su validez. 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. El pretender desarrollar un sistema robusto (o más general) implicaría una teoría más extensa. Por ejemplo el cálculo proposicional y el cálculo de predicados difieren principalmente en: - la estructura de sus proposiciones, pues mientras en el cálculo proposicional se toman como indivisibles, las proposiciones del segundo contienen variables (predicados) que hacen variar sus valores de verdad; - su conjunto de operadores, ya que el cálculo de predicados incluye cuantificadores (relaciones que indican un numero de términos involucrados);

Page 28: Lógica dependiente del tiempo y elementos neuronales de procesamiento

19191919

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.

Page 29: Lógica dependiente del tiempo y elementos neuronales de procesamiento

20202020

Capítulo 2. Lógica dependiente del tiempo.

"Every year is getting shorter, never seem to find the time Plans that either come to naught or half a page of scribbled lines Hanging on in quiet desperation is the english way The time is gone, the song is over, thought I'd something more to say"

Time. Roger Waters.

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]). Una de las adiciones que se hace al planteamiento original de la LDT es exponer un conjunto de consideraciones con respecto al tiempo, enfocado al análisis de procesos. Dicho marco teórico será aprovechado para llevarlo a un sistema de representación por medio de redes neuronales y comentar las características ventajas que dichos sistemas tienen.

Page 30: Lógica dependiente del tiempo y elementos neuronales de procesamiento

21212121

2.2 Definiendo las características del tiempo. La idea de analizar un fenómeno en el contexto del tiempo, implica la necesidad de plantear un esquema para su estudio. En primera instancia un sistema para medir el tiempo, el cual ha sido planteado por la física en base a patrones de fenómenos con duración o intervalos constantes (sistema internacional de medidas), y que tiene como unidad de medida el segundo. Por otro lado un conjunto de características y consideraciones relacionadas a la concepción del tiempo, y su manipulación con respecto a la descripción del comportamiento de un fenómeno. Al tratar de formalizar sus características, se hace necesaria la existencia de un axioma de temporalidad para el mismo tiempo (aún a pesar de que algunos sistemas no tomen al tiempo como un factor determinante en su comportamiento o estructura) como requisito para su uso en un sistema lógico, por lo que se tiene que: 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. Definición 2.1 El tiempo total de un proceso T es la sucesión de instantes t t tn0 1, ,..., , donde t0 es el instante inicial del proceso y tn el instante final del mismo, donde n es el número de instantes definido como la duración del proceso. Definición 2.2 Un reloj C(q) es un proceso externo, encargado del control de T, si y solo si ningún otro proceso es capaz de causar un cambio en T. Cada evento de C provocará un incremento en q hasta alcanzar el valor equivalente al instante final tn (es decir que q=n). Definición 2.3 t i es el instante actual de un proceso si y solo si C causa que q=i. Definición 2.4 Si t i es el instante actual de un proceso, entonces t(i-1) es el antecesor de t i , o un instante antes para i>0.

Page 31: Lógica dependiente del tiempo y elementos neuronales de procesamiento

22222222

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. Estas definiciones permitirán precisar simbólicamente la situación temporal de un evento que pueda provocar un cambio en un sistema, y así tener un panorama de su transformación en un lapso de tiempo determinado. Para que la interpretación de este esquema sea más acertada, es necesario establecer si los instantes t t tn0 1, ,..., del intervalo T, tienen un sentido continuo o discreto. En el caso de que los instantes de T fuesen discretos, el valor de cada uno de ellos varía incrementalmente de forma constante, por lo que su número sería finito. En el caso contrario la diferencia entre los valores de cada instante de tiempo puede tender a cero, lo que implicaría que t0=tn. Por lo anterior es necesario definir las condiciones necesarias para que un intervalo de tiempo sea discreto. Definición 2.6 La duración d entre los instantes t t tn0 1, ,..., que componen a T (tiempo total de un proceso), está definida como un valor real positivo mayor que cero que representa una cantidad de unidades de tiempo o segundos (ej. d = 2

seg.; d = 0.5 seg.) entre ti y tj. De hecho en lo sucesivo al hacer referencia a un intervalo de tiempo se asumirá que este es discreto. Existen casos de sistemas en que el tiempo no es determinante en su comportamiento. La siguiente definición provee una manera de distinguir entre estos sistemas y sus contrapartes. Definición 2.7 Si el instante de tiempo t tiene instantes antecesores y sucesores con respecto a su instante actual, es decir, que cambie, entonces se dice que el sistema bajo este contexto es dinámico. En caso de no cumplirse esta condición, se dice que se está tratando con un sistema estático (equivalente a t0=tn). Para cada tipo de sistema se tiene que sus procesos serán entonces de dos clases: • Procesos instantáneos. Son aquellos cuyo cambio de estado no depende de un

cambio de sus variables en el tiempo (P). Son exclusivos de los sistemas estáticos.

Page 32: Lógica dependiente del tiempo y elementos neuronales de procesamiento

23232323

• 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)).

Otra forma de entender la diferencia entre ambas definiciones, es con respecto a su duración, es decir, el tiempo que requiere el proceso para transformar sus valores de entrada, en sus valores de salida. Mientras que un proceso instantáneo tiene una duración de cero instantes, la duración de un proceso dependiente del tiempo puede ser mayor o igual a cero. 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. Lo anterior implica definir una notación que se encargue de representar la relación entre los procesos y el tiempo. La siguiente definición propone una notación funcional para este propósito. Definición 2.8 Sea P un proceso, y T el lapso de tiempo en que se pretende representar el proceso. La representación del proceso en cada instante de T estará dada por P(t+i), donde i es un entero positivo que indicará en que instante del intervalo se hace la representación; y t indica un instante como unidad de medición del tiempo. En vez de utilizar la representación de los instantes con subíndices, esta notación ofrece una representación clara del avance en el tiempo, y por lo tanto del desarrollo en el proceso que se realiza. Esta notación será de mucha utilidad en lo subsecuente. 2.3 Relacionando la lógica y el tiempo. La lógica puede usarse como una herramienta para la representación y el análisis de sistemas, con la que puede especificarse con un lenguaje formal una serie de requerimientos que un sistema debe satisfacer, así como verificar dichas especificaciones. Tradicionalmente, el tiempo se ha representado como una variable más, por ejemplo en las matemáticas y la física, ofreciendo un punto de vista cuantitativo

Page 33: Lógica dependiente del tiempo y elementos neuronales de procesamiento

24242424

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. El objetivo de proporcionar elementos de temporalidad a la lógica, ofrece propiedades cualitativas y cuantitativas desde la definición hasta el análisis de los resultados obtenidos de un sistema. Así, mientras la lógica ofrece una descripción de la estructura y funcionamiento del objeto de estudio, el tiempo relaciona los estados y eventos de dicho objeto de forma que estos no se produzcan o sufran una transformación si no existe un cambio en el tiempo (dependencia temporal). Por lo tanto se puede decir que si se quiere evaluar un sistema en un contexto temporal, su descripción lógica estará ligada al tiempo de tal manera, que ninguna operación se realice si una transición del tiempo no ha ocurrido y se haya establecido el lapso de tiempo en que dicho sistema va a operar. Esto implica que de ninguna manera la obtención de resultados puede interpretarse de forma secuencial, es decir, que solo cada determinado lapso de tiempo solo un resultado será generado, sino que varios objetos podrán ser evaluados a la vez en un instante de tiempo. Antes de definir la LDT de Alejandro Medina es prudente mencionar que su trabajo no es el único relacionado a proporcionar un formalismo que unifique el tiempo con la lógica. Como se menciona en [6] en el caso del estudio de sistemas de tiempo real se tienen entre otras las siguientes técnicas: • 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.

• Lógica de tiempo real (RTL) y modelos de acción-evento. La lógica de tiempo

real es un lenguaje formal para razonar sobre eventos y sus tiempos de ocurrencia. El dominio del tiempo usado es un conjunto de enteros no negativos. La representación de un sistema se hace mediante la conjunción de un conjunto de fórmulas de la RTL. El modelo de evento-acción, no es más que especificaciones textuales del orden de los eventos.

Page 34: Lógica dependiente del tiempo y elementos neuronales de procesamiento

25252525

Estos métodos formales al igual que la LDT buscan: a. Tener modelos apropiados y notaciones formales para la descripción de

sistemas, además de permitir la expresión de las propiedades temporales. b. Permitir a través de la representación matemática la verificación de las

especificaciones del sistema. c. Permitir que la arquitectura del sistema sea construida de manera estructurada. 2.4 Definición de la LDT. Tomando en cuenta lo expuesto en el primer capítulo acerca de la estructura del cálculo proposicional, la formulación del sistema de lógica dependiente del tiempo se hará en base a los lineamientos de un sistema formal, esto es, planteando su alfabeto, fórmulas, axiomas y reglas de inferencia, todo ello tomando como esquema inicial los elementos del cálculo proposicional. 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. 2.4.1 Simbología y operadores. Para comenzar el planteamiento de la LDT, considérese que al igual que el cálculo proposicional, el nuevo sistema lógico estará orientado a proporcionar una metodología para determinar la validez de un argumento. Por lo tanto, lo primero será establecer que el sistema de la lógica de endiente del tiempo, estará compuesto de un alfabeto A, un subconjunto B de palabras en A con elementos llamados fórmulas; un subconjunto C de B cuyos elementos son llamados axiomas y un conjunto finito P de predicados recursivos de palabras de B llamados reglas de inferencia.

Page 35: Lógica dependiente del tiempo y elementos neuronales de procesamiento

26262626

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)

se puede expresar de la forma x(t+k), k=0,1,2,...δ-1, donde δ es la duración del evento. Así, el alfabeto A de la LDT estará formado por el conjunto x(t),y(t),z(t)... cuyos elementos serán llamados variables proposicionales dependientes del tiempo la cuales podrán asumir valores de verdadero y falso. El siguiente paso será plantear una forma de construir argumentos o enunciados compuestos a partir de A, por lo que se adoptará como opción inmediata el uso de los conectivos lógicos ya conocidos, con lo que se obtendrán expresiones como ¬x(t)

x(t) & y(t)

x(t) | y(t)

x(t) → y(t)

x(t) ↔ y(t) De lo anterior surge la cuestión acerca de la equivalencia de estas expresiones y las del cálculo proposicional. Puesto que los elementos del conjunto A han sido definidos en base a los del alfabeto del cálculo proposicional, su comportamiento no solo es similar, sino que es exactamente el mismo. En realidad no importa mucho que x(t+k) varíe en el tiempo, en lo relativo a la aplicación de un operador , pues las tablas de verdad para ambos tipos de proposiciones son las mismas. La única diferencia, de nuevo, es a nivel de interpretación, pues se dirá que los valores de cierto o falso se asignarás a las variables en cualquier tiempo t. * Tablas de verdad de la LDT para los conectivos lógicos.

Page 36: Lógica dependiente del tiempo y elementos neuronales de procesamiento

27272727

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) x(t+1) x(t+2) x(t+3) 0 1 0 1 y(t) y(t+1) y(t+2) y(t+3) 0 0 1 1 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 Sin embargo es posible plantear argumentos donde los instantes de tiempo de las variables sean diferentes sin que esto afecte la definición original del operador. 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 Si cualquiera de la variables por alguna razón una no tuviera asignado un valor de cierto o falso, se puede representar pero no podrá evaluarse hasta efectuar dicha asignación. x(t-1) & y(t) ; x(t-1)=?

x(t) & y(t-1) ; y(t-1)=?

x(t-1) & y(t-1) ; x(t-1)=? , y(t-1)=?

El concepto de tautología, definido en el cálculo proposicional como condición de validez, será aplicado a aquellas proposiciones temporalmente dependientes cuyo valor de verdad sea verdadero en cualquier instante t. Para determinar las relaciones entre las variables de una proposición en el tiempo, es necesario definir operadores con las siguientes características: I. Definir si dos proposiciones son iguales en un instante. En el caso de la igualdad, debe tomarse en cuenta que se describirá una equivalencia lógica válida para todo momento x(t) = y(t), por lo que su bicondicional (↔ en este caso se representa como ≡) x(t) ≡ y(t) es una tautología que se puede expresar de la forma

Page 37: Lógica dependiente del tiempo y elementos neuronales de procesamiento

28282828

x(t) ≡ y(t) = 1 II. Definir una transformación en el estado de una proposición x en un instante t. 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) Para definir si dos operadores unarios son iguales, se tiene que Ax(t) = Bx(t) → A = B

Otras propiedades de los operadores unarios son: a. ABx(t) = A(Bx(t)) (asociatividad) b. ABx(t) ≠ BAx(t) , A ≠ B (los operadores no son conmutativos ) c. ABx(t) = BAx(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)

(donde @ es un elemento del conjunto de operadores del cálculo proposicional) y dado esto se puede establecer la equivalencia (A @ B) x(t) = Ax(t) @ Bx(t)

A continuación se definen los operadores unarios propios de la LDT: 1. Identidad (I). Transforma cualquier proposición en sí misma. 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). 2. Tautología (T). Transforma el valor de verdad de cualquier proposición a verdadero en cualquier instante t. Tx(t) = 1 Además tiene la propiedad TA = T, donde A es un operador unario.

Page 38: Lógica dependiente del tiempo y elementos neuronales de procesamiento

29292929

3. Antitautología (F). Transforma el valor de verdad de cualquier proposición a falso en cualquier instante t. Fx(t) = 0

Además tiene la propiedad FA = F, donde A es un operador unario. 4. Retardo (D). Este operador se basa en la siguiente definición: 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]. La interpretación de un retardo puede depender del contexto planteado, por ejemplo: - la suspensión de un proceso por un instante determinado (pausa); - el defasamiento de una señal en el tiempo (p.ej sen(w) sen(w+t)); - el tiempo que tarda un proceso en llevarse a cabo; - el tiempo de respuesta de un proceso. En este caso D indicará el número de instantes en que una variable tendrá un valor definido. Por ejemplo si x(t) tiene un valor de 1 en el instante t, y x mantiene su valor en t+1, se tiene x(t+1) = x(t)

Dx t x t( ) ( )= +1 En caso de que el tiempo de retraso sea de más de un instante, la notación de D puede ampliarse agregando un exponente al operador, de manera que sus potencias positivas representen retardos de más de un instante D x t x t nn ( ) ( )= + ,con n=1,2,3,... así como sus potencias negativas definen su inverso D x t x t nn ( ) ( )= + , 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:

Page 39: Lógica dependiente del tiempo y elementos neuronales de procesamiento

30303030

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. 2.4.2 Características de los argumentos de la LDT. En el capítulo anterior se planteó la validez del cálculo proposicional con respecto a los términos de tautología y consistencia, aplicados a las fórmulas que se derivan de este. La validez de la LDT está dada bajo las mismas condiciones, aunque la determinación de sus tautologías sea diferente. De hecho esta diferencia puede establecerse en la estructura de las tablas de verdad utilizadas para determinar los valores de las proposiciones temporales, así como su interpretación. a) Es posible interpretar un argumento dependiente del tiempo, como la descripción del funcionamiento de un proceso o la relación entre varios procesos en un sistema. Esto si sus variables se consideran como las entradas del proceso y la aplicación de operadores como un proceso en sí (esta interpretación será útil más adelante para entender la representación de un sistema en base a sus procesos componentes). b) Las tablas de verdad estarán construidas con proposiciones dependientes del tiempo, lo que implica tanto una nueva definición de estas, así como una interpretación diferente pues ya no se tratará solo de decir "p y q es verdadera si y solo si p es verdadera y q es verdadera" sino "p y q en t es verdadera si y solo si p es verdadera en t y q es verdadera en t". c) Las tablas de verdad pueden contener proposiciones con ciertos valores de verdad definidos para un instante cualquiera. Esto implica que al aplicar un operador a ciertas proposiciones, estas se ubican en cierto instante ti mientras que

Page 40: Lógica dependiente del tiempo y elementos neuronales de procesamiento

31313131

el resultado de su operación puede estar ubicado en un instante tj menor o mayor que el original. Premisas Operación Conclusiones probables x1(t) x2(t) x1(t) φ x2(t) y(t) y(t+n) y(t-n)

1 1 x x x x 1 0 x x x x 0 1 x x x x 0 0 x x x x Si la conclusión se expresa en el mismo instante t, de las premisas y la operación se puede decir que el proceso es instantáneo. Este caso en particular es el de la lógica proposicional, pues el proceso de inferencia se toma como el cambios de estados antes de encontrar una conclusión (si la hay), y aunque el sujeto que aplique dicha metodología requiere cierto lapso de tiempo para producir una respuesta, el tiempo no es determinante ni en la aplicación de la metodología, ni en los resultados que se obtienen. 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. d) Una tautología del cálculo proposicional seguirá siendo una tautología en la LDT siempre y cuando los valores de verdad de las variables de la función lógica en cualquier instante de tiempo correspondan con los valores de la función lógica proposicional (valores instantáneos). Esto es importante si el esquema de inferencia proposicional quiere aplicarse a la LDT con fines de reducción o de obtención de conclusiones. Por ejemplo para la lógica proposicional se tiene el modus ponens: Premisa: p Premisa: p → q Conclusión: q Esta regla de inferencia es una tautología cuya tabla de verdad es la siguiente: p q p → q (p & (p → q)) → q

1 1 1 1 1 0 0 1

Page 41: Lógica dependiente del tiempo y elementos neuronales de procesamiento

32323232

0 1 1 1 0 0 1 1 Para el caso de la LDT donde el instante t es el mismo en las premisas y su conclusión la tabla de verdad es la siguiente: p(t) q(t) p(t) → q(t) (p(t) & (p(t) → q(t))) → q(t)

1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 Para el caso de la LDT donde las premisas están en el instante t y su conclusión un instante después (t+1) la tabla de verdad es la siguiente: p(t) q(t) p(t) → q(t) (p(t) & (p(t) → q(t))) → q(t+1)

1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 La interpretación de esta última varía a causa del incremento de t , aunque en sí mientras las premisas mantengan sus valores de verdad en t la conclusión seguirá siendo la misma en un instante diferente. Aunque al substituir t se tengan instantes diferentes para las premisas no debe perderse de vista que su evaluación por medio de la regla de inferencia se lleva a cabo en un momento preciso. Dicho evento será tautológico si las premisas concurren con los valores de verdad especificados, y la conclusión se obtendrá al final de la duración del evento. 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.

Page 42: Lógica dependiente del tiempo y elementos neuronales de procesamiento

33333333

2.5 Comentarios. La propuesta de la LDT consiste en proporcionar una estructura teórica capaz de abstraer los factores y condiciones de un fenómeno que impliquen el factor del tiempo en su estudio como algo no implícito, sino como elemento activo en su comportamiento. Esto en la práctica es lo que más se asemeja a la descripción de un proceso H(t), donde debe transcurrir cierto lapso de tiempo para transformar las entradas en la salida deseada.

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.

A partir de este momento ya no es posible intuir a un proceso simplemente como una caja negra que regresa un nuevo estado instantáneamente, sino que tardará un determinado número de instantes en generarlo.

Page 43: Lógica dependiente del tiempo y elementos neuronales de procesamiento

34343434

Capítulo 3. Lógica dependiente del tiempo y elementos neuronales de procesamiento.

"Estamos tratando de salvar la independencia de la humanidad... Hoy vivimos en un mundo plácido, uniforme y culturalmente muerto: nada nuevo en verdad ha sido creado desde la llegada de esos seres. La razón es obvia. No hay nada por qué luchar y sobran distracciones y entretenimientos."

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). El planteamiento de este trabajo al respecto, es el de aplicar la LDT para la representación simbólica de procesos con la intención de descubrir nuevas propiedades que no habían sido planteadas en la teoría original, sobre todo a nivel de conectividad entre ellos. De los resultados que se obtengan pueden derivarse técnicas para el diseño y la obtención de un análisis cualitativo de sistemas de elementos de procesamiento independientes. En esta dirección se tiene el planteamiento de Burks y Wright detallado en [17] sobre una estructura llamada red de transductores binarios. Este esquema se basada en los elementos utilizados por la electrónica digital, en específico las compuertas lógicas. Sus análogos son los llamados elementos de decisión definidos de la siguiente manera: Definición. Un elemento de decisión es un objeto consistente de un cuerpo central, un cable de longitud finita conectado llamado salida, y cualquier numero de cables de longitud finita conectados llamados entradas. En cada instante cada

Page 44: Lógica dependiente del tiempo y elementos neuronales de procesamiento

35353535

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.

Figura 3.1.a Elementos de decisión de las redes de transductores binarios.

Figura 3.1.b Ejemplo de una red de transductores binarios. Adicionalmente a esto se considera un elemento de retardo y ciertas reglas para la construcción de estas redes.

Page 45: Lógica dependiente del tiempo y elementos neuronales de procesamiento

36363636

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. Esto se puede representar por medio de la LDT aunque su potencial no es utilizado completamente. La idea de la representación de procesos por medio de la LDT lleva a tomar en cuenta el concepto de elemento de decisión y los siguientes puntos: • el sistema debe ser fragmentado en procesos simples o atómicos (estrategia

de dividir y vencer); • dichos procesos puedan ser utilizados para expresar procesos más complejos; • la temporalidad debe ser parte del funcionamiento del proceso y por lo tanto del

sistema; • la respuesta de los procesos atómicos deberá ser binaria. Estas consideraciones pueden en algún momento sugerir el uso de microprocesadores aunque ello implica dejar a un lado la idea de simplicidad. Por otra parte la investigación de nuevas tecnologías ha dado como resultado elementos de procesamiento, análogos a cierta clase de células de nuestro organismo llamadas neuronas. Sus equivalentes desarrollados se conocen como neuronas artificiales y para el objetivo de este trabajo han sido seleccionadas por cumplir su marco formal con las especificaciones anteriores de las que se tienen las siguientes razones: • homogeneidad en cuanto a su estructura funcional a nivel individual; • su funcionamiento individual y colectivo implica un contexto temporal; • gran conectividad entre estos elementos y alto grado de paralelismo; • implementación de hardware (electrónica analógica) como de software

(programas) . El contenido de este capítulo se enfoca a definir estos elementos de procesamiento y las implicaciones que tiene su representación por medio de la LDT. Bajo este marco se definen los operadores lógicos en base a neuronas artificiales, y se hace un estudio de las características y propiedades de las redes neuronales en base a la conectividad de sus elementos.

Page 46: Lógica dependiente del tiempo y elementos neuronales de procesamiento

37373737

3.2 Teoría de las neuronas artificiales. Para conocer la estructura y el funcionamiento de los elementos de procesamiento conocidos como neuronas artificiales, es necesarios plantear (aunque sea de manera breve) los conocimientos en los que se fundamentan, los cuales pertenecen al área de la biología y en específico a una especialidad llamada neurobiología. El estudio de las células que componen el sistema nervioso de un ser vivo ha permitido el desarrollo de estructuras capaces de desempeñar funciones equivalentes a las de las neuronas biológicas. En esta sección se presentan algunas de las principales ideas relacionadas a las características de las neuronas biológicas, las cuales son aplicadas a los modelos artificiales, y en específico se plantea el modelo MacCulloch & Pitts para el desarrollo de este trabajo. 3.2.1 La neurona biológica. Así como los tejidos de un organismo animal (ej. la piel) están formados por células, el sistema nervioso no es la excepción. Las células que lo conforman son llamadas neuronas o células nerviosas, las cuales se encargan de las actividades características del sistema nervioso central como la transmisión de impulsos nerviosos o la elaboración de información sensitiva (adicionalmente existe otro tipo de células llamadas neurogliales o gliales que al parecer tienen que ver con el soporte de las neuronas y su nutrición) [23]. 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): • Dendritas. Zona que responde a un tipo de estimulación (recepción de

impulsos nerviosos). • Cuerpo celular (soma). Es donde se localizan los principales sistemas

bioquímicos de síntesis, secreción y transporte de sustancias que requiere la célula para su funcionamiento (centro metabólico).

• Axón. Estructura que conduce el impulso nervioso sin decremento. • Sinápsis. Puede considerarse como los puntos de contacto entre neuronas,

que puede tener una función excitadora o inhibitoria.

Page 47: Lógica dependiente del tiempo y elementos neuronales de procesamiento

38383838

Figura 3.2 Esquema de la neurona biológica.

Figura 3.3 Unión sináptica.

Durante el estudio del sistema nervioso de varios tipos de organismos, se han diferenciado varias clases de neuronas en cuanto a su morfología (figura 3.4),

Page 48: Lógica dependiente del tiempo y elementos neuronales de procesamiento

39393939

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). Una forma simple de asimilar el funcionamiento de la neurona es la mecánica de estímulo-respuesta, donde se produce una reacción al incitar por medio de algún mecanismo a un objeto a cambiar de estado. En este caso el estímulo se logra por medio de impulsos nerviosos, que no son otra cosa que señales eléctricas (o diferencias de potencial eléctrico) producidas por reacciones químicas en las uniones sinápticas y el soma, lo que provoca que la neurona genere un nuevo impulso o respuesta, que viaja a través del axón. Una referencia más completa sobre todo el proceso fisiológico de la neurona puede encontrarse en [23].

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.

Page 49: Lógica dependiente del tiempo y elementos neuronales de procesamiento

40404040

3.2.2 La neurona artificial. Basado en los elementos que forman parte de la morfología de la neurona biológica, así como sus principios de funcionamiento, es posible plantear el modelo de su equivalente artificial. La neurona artificial se define en [12] y [19] como una unidad de procesamiento que consta de cuatro partes: - Componente receptor. Es la parte de la neurona a donde llegan una o varias señales de entrada x i

, que generalmente provienen de otras neuronas y que son atenuadas o amplificadas por un factor de peso correspondiente w i , el cual denota la fuerza de la conexión (sinápsis) entre dos neuronas. Las entradas o conexiones pueden ser excitadoras o inhibidoras pero no ambas al mismo tiempo. - Componente sumador (o integrador). Efectúa la suma algebraica del producto de las señales de entrada (excitadoras e inhibidoras) y los factores de peso (o suma ponderada), definida mediante la expresión:

S x wi i= ⋅∑

S E xc Inh= − ∑∑

S Exc w Inh wi i j j= ⋅ − ⋅∑ ∑

La primera expresión define la función del sumador de forma general como la sumatoria del producto de las entradas x de la neurona por sus pesos w. Las siguientes muestran una división de esta operación dependiendo del tipo de entradas que llegan a la neurona (excitadores o inhibidoras).

Page 50: Lógica dependiente del tiempo y elementos neuronales de procesamiento

41414141

Figura 3.5 Esquema de la neurona artificial.

- Componente de la función activadora. Compara el valor obtenido del elemento sumador contra una función no lineal de umbral para decidir si la neurona es o no activada.

Figura 3.6 Funciones de respuesta (escalón,rampa y sigmoide).

- Componente de salida (axones). Produce una señal o respuesta dependiendo del valor de comparación. La función que realiza este componente puede ser complementada por la consideración de retardo del valor de salida, causado por los nodos de Ranvier del axón de la neurona. Con base en la definición 2.9, dicho retardo puede modelarse como un arreglo A de n celdas de memoria (donde n sea equivalente a los instantes de retardo de la señal), que contenga el valor de salida

Page 51: Lógica dependiente del tiempo y elementos neuronales de procesamiento

42424242

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. Esta definición es aplicable a modelos de neuronas tales como el de MacCulloch y Pitts, integrador y disparo e integrador con fugas. Tomando en cuenta que el tipo de problemas propuestos hasta ahora por medio de la lógica proposicional y de la LDT han sido de carácter binario, es necesario que el modelo de neurona a utilizar cumpla a su vez con este requisito. El modelo de MacCulloch & Pitts se caracteriza por describir los cambios de actividad de una neurona postsináptica en una escala de tiempo discreta, considerando solo el total de sinápsis activas en el instante de registro para la descripción del potencial integrador [19]. El funcionamiento de este modelo se basa en los siguientes puntos [8]: 1. La actividad de la neurona es un proceso todo o nada, o binario (basado en el concepto de potencial de acción). 2. Un cierto número de sinápsis (>1) deben ser excitadas en un periodo de suma latente para que una neurona sea excitada. 3. El único retraso significativo en un sistema nervioso es el retraso sináptico. 4. La actividad de cualquier sinápsis inhibitoria evita de manera absoluta la excitación de la neurona en ese tiempo. 5. La estructura de las conexiones de la red no cambia con el tiempo.

Page 52: Lógica dependiente del tiempo y elementos neuronales de procesamiento

43434343

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: Definir señales excitadoras e inhibidoras (características). Definir tiempo de simulación total. Definir valor o función de umbral. Definir tiempo de retardo.

Mientras (T≤ Tiempo de Simulación) hacer Exc=Suma de las entradas excitadoras en el instante T. Inh =Suma de las entradas inhibidoras en el instante T. Calcular entrada total: Etotal = (Exc-Inh) Comparar Etotal y el valor de umbral de la neurona: Si Etotal > Umbral entonces Respuesta de la neurona = 1 sino Respuesta de la neurona = 0 Retardar la respuesta n instantes Incrementar T Fin Mientras.

* Cabe aclarar que de aquí en adelante se hace referencia al término de neurona como análogo de neurona artificial con el fin de simplificar la terminología. Aunque cada neurona tiene capacidades de procesamiento, su potencial individual puede ser extendido por medio de interconexiones entre ellas. Las topologías resultantes de este agrupamiento es lo que se conoce como redes neuronales donde: a. Cualquier neurona por sí misma es una red neuronal. b. Si N1 y N2 son neuronas tales que al conectar la salida de N1 al componente

receptor de N2 se obtienen una red neuronal. Bajo este contexto, la idea de utilizar la LDT para representar un conjunto de procesos, y en específico desde este momento redes neuronales, hace necesaria una revisión de las bases de la LDT con el objetivo de definir los conceptos necesarios para que ambos marcos teóricos sean compatibles y aplicables.

Page 53: Lógica dependiente del tiempo y elementos neuronales de procesamiento

44444444

3.3 Uso de neuronas artificiales para la LDT. A causa de la estructura de las unidades de procesamiento seleccionadas para este trabajo, se hace necesario un replanteamiento de la LDT en función de las características de las neuronas artificiales. Esto implica ampliar la notación hasta ahora usada y definir cual es el papel que los componentes neuronales adoptarán mediante su representación por medio de la LDT. Para empezar se representará un proceso cualquiera por medio de una variable proposicional dependiente del tiempo de la forma (notación definida en el capítulo anterior) P(t) y en particular un elemento de procesamiento neuronal se representará como N ti ( ) tal que indique el estado de salida de una neurona en un instante 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. Con respecto a la temporalidad de cada unidad de procesamiento, estará definida por cierto número de retardos, que será equivalente al tiempo de respuesta (o procesamiento) de cada neurona. Así la expresión

D N t N t kn

i i( ) ( )= + , k=1,2,... será la descripción del estado de una neurona con un tiempo de respuesta de n instantes. Este tiempo puede ser interpretado como el retraso sináptico de la neurona, o en otro contexto como la duración del procesamiento de los valores de entrada. 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:

Page 54: Lógica dependiente del tiempo y elementos neuronales de procesamiento

45454545

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 t x t x to n( ), ( ),..., ( )1 es mayor que el rango de valores ( , )a b establecido por u, entonces N t ki ( )+ se activará. Este tipo de consideraciones nos llevan a definir el término lógica de umbrales como el proceso de comparar un valor de entrada con un límite para obtener un valor de verdad. Adicionalmente es necesario tener una representación de lo anterior por lo que se plantean las siguientes opciones: - N ti u, ( ) . Donde i es el identificador de la neurona y u su umbral. Esta notación no

es conveniente pues existen representaciones que utilizan (i,u) de forma que i sea el identificador de la neurona y u la capa en la que se encuentra. - N t ui ( , ) . 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 ti

n( ) . 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. 3.4 Representación de la lógica proposicional y la LDT con redes neuronales. Toda la notación y metodología adicional que implica la combinación de la LDT y las redes neuronales ahora serán aplicados, primero a la representación de la lógica proposicional y luego se extenderá a la LDT. 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

Page 55: Lógica dependiente del tiempo y elementos neuronales de procesamiento

46464646

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.

Figura 3.8 Representación de un elemento de procesamiento neuronal.

Figura 3.9 Representación de una red neuronal.

Page 56: Lógica dependiente del tiempo y elementos neuronales de procesamiento

47474747

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

Page 57: Lógica dependiente del tiempo y elementos neuronales de procesamiento

48484848

iv. Negación. - Tipo de entrada : Inh - Valor de Umbral : 0 x1 Sumador N1

1 -1 0 0 0 1

Figura 3.10 Implantación de operadores unarios con neuronas.

Estos resultados pueden ser ampliados conforme aumenta el número de entradas de N1. Para el caso de que la neurona tenga dos entradas [x1,x2], se pueden generar respuestas similares a las de los operadores lógicos. A continuación se presentan las configuraciones neuronales equivalentes. Cabe mencionar que se utiliza la notación en ingles (and, or, not, etc.) para resaltar que el resultado se ha obtenido tras la aplicación de un proceso y resumir la descripción de cada operador. 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

Page 58: Lógica dependiente del tiempo y elementos neuronales de procesamiento

49494949

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 c. And (&) (Umbral = 2) x1 x2 S=Exc(x1,x2) N1

0 0 0 0 1 0 1 0 0 1 1 0 1 1 2 1 d. NAnd (Umbral = -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. Sea la neurona N j con n entradas, donde p son excitadoras y q son inhibidoras, y

el valor de umbral es u. S = Exc(e1,...,ep) - Inh(i1,...,iq) ; n = p+q

Page 59: Lógica dependiente del tiempo y elementos neuronales de procesamiento

50505050

Figura 3.11 Implantación de los operadores lógicos con neuronas.

Los siguientes resultados pueden ser útiles. I. Si S≥u , la neurona dispara. II. Si todas las entradas se encuentran en estado alto (1) y: a. Si p=q , S = 0.

b. Si p>q ó p<q , S = p-q. c. Si p=0 , S = -q. d. Si q=0 , S = p. III. Si todas las entradas se encuentran en estado bajo (0) y: a. Si p=q , S = 0. b. Si p>q ó p<q , S = 0.

c. Si p=0 , S = 0 d. Si q=0 , S = 0. IV. Si por lo menos r de p y s de q entradas se encuentran en estado alto y: a. Si r=s ó r>s ó r<s , S = r-s. b. Si s=0 , S = r. c. Si r=0 , S = -s. d. S≥u. V. Si a lo más r de p y s de q entradas se encuentran en estado alto y: a. Si r=s ó r>s ó r<s , S = r-s. b. Si s=0 , S = r. c. Si r=0 , S = -s. d. S≤u.

Page 60: Lógica dependiente del tiempo y elementos neuronales de procesamiento

51515151

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. 3.4.2 Representación de los operadores de la LDT. Adaptar los resultados anteriores a la LDT es simple, si se siguen los siguientes pasos: • Las neuronas utilizadas tendrán una respuesta al menos un instante después

con respecto a sus entradas. • Transformar las variables proposicionales en variables proposicionales

dependientes del tiempo. x1 , x2 ,... xn → x1 (t), x2 (t),..., xn (t) • La respuesta de las neuronas N i debe transformarse a su forma N ti ( ) . Para

ello debe tomarse el factor de retraso de cada neurona y su umbral.

N i → D N t N t kk

i

u

i

u( ) ( )= +

• Expresar la respuesta de cada neurona en términos de sus entradas y la clase

a la que pertenecen.

N t k Exc x t x t Inh y t y ti

u( ) ( ( ( ), ( ),...) ( ( ), ( ),...))+ = −1 2 1 2

Page 61: Lógica dependiente del tiempo y elementos neuronales de procesamiento

52525252

Aquí Exc e Inh representan las sumatorias de las entradas excitadoras e inhibidoras de la neurona. Como ejemplo de esto, sea la representación neuronal del operador proposicional de conjunción (&). Como el proceso ejecutado por la neurona para generar una respuesta es el mismo si el tiempo está relacionado o no, si el factor de retraso es de un instante se tiene

x1 , x2 --> x1 (t), x2

(t) N1 --> N1 (t+1)

N1

2 (t+1) = (Exc [ x1 (t), x2 (t)])

N1

2 (t+1) = ( x1 (t) & x2 (t))

donde t es el instante inicial y (t+1) es un instante después donde la neurona genera su respuesta. 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:

Lógica proposicional LDT

i. Elemento neutro. Retraso (delay). ii. Tautología. Siempre encendido. iii. Antitautología. Siempre apagado. iv. Negación. Negación con retraso. a. Disyunción. Disyunción con retraso. b. Disyunción negada. Disyunción negada con retraso. c. Conjunción. Conjunción con retraso. d. Conjunción negada. Conjunción negada con retraso.

3.5 Representación de procesos simples en el tiempo. 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.

Page 62: Lógica dependiente del tiempo y elementos neuronales de procesamiento

53535353

3.5.1 Configuraciones en serie y paralelo de neuronas . Es un hecho que el número de topologías de redes neuronales posibles es infinito (por lo menos a primera vista), y la cuestión es si la LDT como ha sido definida hasta el momento tiene la capacidad de representar dichos arreglos. Por lo tanto para empezar sea el subconjunto de redes neuronales que se distingue por la condición de que sus elementos tienen conexiones solo con los elementos que les suceden y no con ninguno previo en la red.

Figura 3.12 Configuraciones serial y paralela de neuronas.

Un caso sencillo es el de dos neuronas conectadas de manera consecutiva figura (3.13) tal que la salida de la primera es la única entrada de la segunda. La representación simbólica de tal red está dada por N

n1(t+i) = Exc (x1(t),x2(t))

Nn2(t+j) = Nn

1(t+i)

Figura 3.13 Red de dos neuronas consecutivas.

Page 63: Lógica dependiente del tiempo y elementos neuronales de procesamiento

54545454

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 Nn

1(t+1) = (Exc (x1(t) , x2(t)))

Nn2(t+2) = (Exc (Nn

1(t+1)))

Nn3(t+2) = (Inh (Nn

1(t+1)))

Nn4(t+3) = (Exc (N

n2(t+2) , N

n3(t+2)))

Si se quisiera separar a las neuronas en bloque correspondientes según su orden en el proceso (capas), la expresión estaría dada por N

n1,1(t+1) = (Exc (x1(t) , x2(t)))

Nn1,2(t+2) = (Exc (N

n1,1(t+1)))

Nn2,2(t+2) = (Inh (N

n1,1(t+1)))

Nn1,3(t+3) = (Exc (N

n1,2(t+2) , N

n2,2(t+2)))

donde el primer numero del subíndice de N indica el identificador de la neurona en la capa, y el segundo la capa referida.

Figura 3.14 Red de cuatro neuronas.

Para obtener el máximo provecho de lo expuesto en cuanto a la representación de los operadores lógicos en la sección anterior, supónganse los valores de los umbrales de N1,...,N4 como (1,0,1,2) respectivamente. Con ello es posible establecer si las neuronas están comportándose como operadores de la LDT. La expresión se traduce entonces en N1(t+1) = (x1(t) | x2(t))

N2(t+2) = (N1(t+1))

N3(t+2) = (¬N1(t+1))

N4(t+3) = (N2(t+2) & N3(t+2))

Page 64: Lógica dependiente del tiempo y elementos neuronales de procesamiento

55555555

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))

N4(t+3) = D (D² ((x1(t) | x2(t)) & ¬(x1(t) | x2(t))))

N4(t+3) = Dn((x1(t) | x2(t)) & ¬(x1(t) | x2(t))) ; n=3

3.5.2 Representación de la autosinápsis. El siguiente caso es el de redes neuronales cuyas conexiones entre sus elementos tienen como característica particular que, por lo menos uno de los impulsos de entrada de una neurona proviene de sí misma o de otra neurona que actúa después que la primera. Supóngase la configuración de la figura (3.15) donde x(t) es una entrada externa y la otra entrada a la neurona es la respuesta de N1. Su representación está dada por la expresión

N1 (t+1) = Exc (x(t), N1(t))

Figura 3.15 Autosinápsis de una neurona a sí misma.

Esto denota claramente un proceso recursivo, por lo menos en la estructura de la expresión obtenida al ser N1

parte de su definición. Esta comparación no es completamente exacta, sobre todo si se considera que en un proceso recursivo existe una condición de salida (o de paro), tal que este se detenga. En una neurona esto no ocurre pues los valores del proceso así como su estado en el tiempo, solo determinan el tipo de respuesta del elemento. La única

Page 65: Lógica dependiente del tiempo y elementos neuronales de procesamiento

56565656

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. La forma para determinar la respuesta de un arreglo con retroalimentación puede representarse de la siguiente manera: a) Para el caso planteado por la figura (3.15) y variando el valor de umbral de N1

se tienen los siguientes resultados: 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 Aquí se dan dos resultados importantes: i) La entrada de autosinápsis tiene valor de cero en el instante inicial. ii) La respuesta real de este arreglo con retroalimentación, se da un instante

después de que la neurona evalúa sus entradas en el instante inicial. Por lo que si N1 responde en t+1 la respuesta real relacionada con la respuesta de la neurona se dará en t+2, pues por lo anterior, el valor de la salida de la neurona en el instante t es cero. Esto esta dado por la expresión

N1 (t+1) = Exc(x(t), N1(t))

N1 (t+2) = Exc(x(t+1), N1(t+1)) donde N1(t)=0.

b) Para el caso de un arreglo conformado por N1 y N2, donde N1 esta conectada a N2 de forma consecutiva y la salida de N2 es una de las entradas de N1 (figura 3.16) tal que

Page 66: Lógica dependiente del tiempo y elementos neuronales de procesamiento

57575757

N1 (t+1) = Exc(x(t), N2(t+2))

N2(t+2) = Exc(N1 (t+1))

Figura 3.16 Retroalimentación entre neuronas. 3.5.3 Uso de señales como valores de entradas en las neuronas. Hasta el momento se han utilizado los valores de 0 y 1 para realizar las evaluaciones en las neuronas. Una forma de ampliar estos resultados es dando un carácter temporal a los valores con los que se obtiene la respuesta de los elementos de procesamiento. Así en vez de considerar los valores de verdad como constantes y estáticos, estos variarán con respecto al tiempo. La representación de esta dependencia estará expresada por la forma funcional s(t), en donde s implica el uso de una señal que varía en el tiempo. Esto no es nuevo en la notación, pues las entradas de las neuronas están denotadas por x1(t),...,xn(t). La particularidad de los valores de las entradas hasta ahora usados es que han sido constantes con respecto al tiempo, es decir

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:

Page 67: Lógica dependiente del tiempo y elementos neuronales de procesamiento

58585858

• 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. 3.6 Consideraciones para el uso de neuronas artificiales en el diseño de sistemas. Así como en electrónica digital se hace uso de un conjunto pequeño de elementos (como compuertas lógicas) para el diseño de circuitos más complejos, dicho enfoque puede ser aplicado de la misma manera a la serie de operadores dependientes del tiempo identificados. Cabe mencionar que las configuraciones mostradas hasta el momento no son únicas para cada función, puesto que pueden existir configuraciones de más de una neurona que realicen la misma operación. 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. Aunque las especificaciones de diseño del sistema impliquen que la respuesta se dé después de cierto tiempo, al momento de implementar esto es preferible adoptar el operador (equivalente neuronal) más sencillo y añadir retardos, a incluir una tautología del mismo que reste claridad a la configuración de la red. Por otro lado se tiene el factor de paralelismo entre unidades de procesamiento, lo que permite que varias tareas se ejecuten en un mismo intervalo de tiempo. La retroalimentación puede aplicarse para la activación de un evento después de que otros han sido activados cierto número de instantes después, o la verificación de que un proceso está efectuándose de manera satisfactoria. Esto da como resultado un mecanismo de activación de procesos y de alarma. Su uso debe quedar restringido por el momento a este tipo de tareas, para no modificar la forma en que responda el sistema con otro tipo de configuraciones.

Page 68: Lógica dependiente del tiempo y elementos neuronales de procesamiento

59595959

Figura 3.17 Ejemplos de configuraciones equivalentes de neuronas.

Al modelar un sistema con estas técnicas y representarlo simbólicamente es recomendable: • hacer una representación gráfica del modelo; • tener una descripción de la función de cada neurona; • tratar que la descripción de las neuronas que dependan de elementos

anteriores se base en elementos próximos; • identificar que neuronas generan la respuesta del sistema; • simplificar la notación de las neuronas usando el operador D en lugar de

incrementar el numero de instantes en las variables; • simplificar la notación de las neuronas que coinciden con las configuraciones de

funciones lógicas.

Page 69: Lógica dependiente del tiempo y elementos neuronales de procesamiento

60606060

3.7 Comentarios. La extensión de la LDT podría haber ido más lejos si se hubiesen tomado en cuenta partes de la neurona como los pesos o conexiones dendriticas, las funciones de disparo o hasta un modelo diferente de neuronas (como el de integrador o integrador con disparo) con lo que hubiera aumentado de igual manera su complejidad. La sola consideración de los umbrales es por el momento suficiente para el análisis desarrollado. Para ampliar la información sobre otros modelos de neuronas consulte [PEREZ95]. Hasta el momento todo el desarrollo del trabajo ha estado orientado a aprovechar la tecnología de redes neuronales y la teoría de LDT, para la descripción de procesos. Los resultados presentados hasta el momento se han obtenido de la manipulación directa de los valores de las neuronas, con el fin de mostrar su funcionamiento, así como el comportamiento de los arreglos más simples . En conjunto se tienen resultados que pueden servir de criterio para el diseño de sistemas por medio de neuronas (por lo menos de neuronas binarias). Por último, con respecto a la configuración de autosinápsis puede decirse que, por lo menos a nivel esquemático, es similar a la retroalimentación, y puede intentarse darle aplicación en la activación de eventos cierto numero de instantes después, o la verificación de que un proceso está efectuándose de manera satisfactoria.

Page 70: Lógica dependiente del tiempo y elementos neuronales de procesamiento

61616161

Capítulo 4. Diseño y simulación de sistemas dependientes del tiempo.

“Para el científico como individuo, incluso la valoración parcial de esta unión entre el hombre y el proceso histórico requiere una visión anticipatoria e imaginativa de la historia, que resulta difícil y que es sólo alcanzable limitadamente. Siempre tenemos que ampliar al máximo la potencia de nuestra imaginación".

Norbert Wiener.

4.1 Introducción. El potencial de aplicación que poseen las redes neuronales en conjunto con la LDT es explorado en este capítulo, bajo la premisa de retomar algunos diseños de circuitos lógicos convencionales, para diseñar algunos sistemas con base en ambas teorías, con el fin de entender como desarrollarlos, así como su funcionamiento. La idea es plantear y desarrollar algunos problemas cuya, solución esté relacionada al uso de elementos lógicos. Con ello se busca: • establecer las implicaciones de la consideración del tiempo como parte del

análisis de un sistema; • ver como las señales de entrada, ya sean constantes o variables en el tiempo,

afectan la respuesta del sistema; • entender la diferencia en cuanto a interpretación de los resultados con respecto

a un modelo estático; La manera de obtener dichos resultados se basará en la siguiente serie de pasos: • 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).

Page 71: Lógica dependiente del tiempo y elementos neuronales de procesamiento

62626262

• En base a lo anterior, obtener redes neuronales equivalentes. • Describir el funcionamiento de las neuronas con la LDT. Las formas en que las soluciones son planteadas difieren únicamente en su implementación, por lo que el modelo original servirá de referencia para establecer la veracidad de los resultados obtenidos. Los casos de estudio que se plantean abarcan configuraciones comunes de circuitos lógicos, así como la solución de algoritmos. Su descripción es la siguiente: i. Sumador de dos bits. ii. Codificación y decodificación de datos. iii. Celdas de memoria (flip-flops). iv. Control de eventos. El desarrollo de estos problemas estará enfocado a demostrar que al implementar circuitos digitales básicos con neuronas artificiales, entonces es posible la construcción de sistemas aún más complejos, así como la forma de aplicar las teorías de la LDT, las redes neuronales y las técnicas para diseño de sistemas digitales, en casos ya existentes. El objetivo de este capítulo es el de plantear el desarrollo de una herramienta que permita verificar los diseños equivalentes de los casos de estudio propuestos. Para ello se planteará la estructura del funcionamiento de un programa de simulación de redes neuronales, para después aprovechar sus capacidades para obtener resultados cuantitativos de las redes neuronales equivalentes a cada uno de los circuitos que se han planteado como caso de estudio. 4.2 Simulación de redes neuronales dependientes del tiempo. La justificación para el desarrollo de un programa de simulación de redes neuronales dependientes del tiempo, se basa en la necesidad de simplificar las actividades de diseño, implementación y obtención de resultados de sistemas de neuronas, cuyos cálculos manuales pueden volverse tediosos y complicados a medida que la estructura de las redes crece en numero de elementos y de conexiones.

Page 72: Lógica dependiente del tiempo y elementos neuronales de procesamiento

63636363

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. Además, debe quedar claro que el objetivo del desarrollo de sistemas dependientes del tiempo será el de concentrar la mayor parte del esfuerzo intelectual a las consideraciones teóricas y prácticas del problema. 4.2.1 Análisis y Diseño. El objetivo del sistema de simulación de redes neuronales dependientes del tiempo, será definir la estructura de redes de neuronas artificiales que dependan del tiempo (expuestas en el capítulo 3) y calcular la respuesta de sus elementos en cualquier instante durante la duración del periodo de simulación. La definición de tales sistemas deberá tomar en cuenta la declaración de configuraciones seriales, paralelas y de autosinápsis (retroalimentación). Toda configuración definida en el simulador podrá ser reutilizable, por lo que deberá contar con la capacidad de almacenar todos los parámetros que permitan la regeneración de las redes para posteriores evaluaciones y aprovechamiento. 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. La representación de la arquitectura del sistema y la descripción de sus componentes se hará en base al enfoque de la metodología orientada a objetos (en específico la planteada por Coad y Yourdon), aunque la implementación este codificada en un lenguaje estructurado como Pascal (apéndice A). Esta "discrepancia" de criterios se ha dado a causa de no contar en el momento, con los recursos necesarios para hacer el desarrollo con una herramienta más apropiada. Sin embargo, es una buena oportunidad para demostrar a los puristas que las metodologías que puedan usarse para la solución de problemas, no tienen por que generar conflictos al usarse de forma combinada. De la misma manera podría decirse que, como requerimiento adicional, lo óptimo para la implantación del sistema sería una plataforma que tuviera capacidades de multiproceso y hasta de tiempo real, pero a causa de las limitaciones que se tienen en el país al respecto, el desarrollo esta planteado para computadoras personales (secuenciales) por ser la plataforma más accesible que existe actualmente.

Page 73: Lógica dependiente del tiempo y elementos neuronales de procesamiento

64646464

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). A continuación se presenta la descripción de cada uno de estos componentes como clases de objetos. Clase : Neurona Artificial (NA). Atributos. x0,..xn Conexiones sinápticas (entradas) w0,...wn Pesos u Valor del umbral de disparo d Tiempo de Retardo dBuffer Bloque de memoria para simular el retardo de la señal. y Respuesta (salida) n Numero de entradas id Identificador Métodos. neurona Crea una nueva instancia de la clase. p:t Procesamiento de los valores de entrada de la neurona en el instante t. status:t Despliega los valores de la respuesta de la neurona en el instante t. Clase : Conexión sináptica (CS). Atributos.

Page 74: Lógica dependiente del tiempo y elementos neuronales de procesamiento

65656565

tipo Tipo de conexión (excitadora o inhibidora) fuente Fuente del valor de entrada. valor Valor de entrada. Métodos. Clase : Generador de Señales (GS). 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. Generador Crea una nueva instancia de la clase. generaValor:t Genera un nuevo valor para el instante t. Clase : Punto de medición (PM). Atributos. id Identificador. fuente Identificador del elemento a medir. valor Valor de entrada. Métodos. PuntoM Crea una nueva instancia de la clase. obtenerValor Obtiene el valor del elemento que se esta midiendo. mostrarValor Despliega el valor del punto de medición. 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í.

Page 75: Lógica dependiente del tiempo y elementos neuronales de procesamiento

66666666

Clase : Sistema dependiente del tiempo (SDT). Atributos. conecciones Relaciones entre los elementos del sistema. Métodos. inicializar Crea un nuevo diccionario de conecciones entre los componentes. conectar:a con:b Crea una nueva relación entre componentes GS,NA,PM. simularSDT Realiza el proceso de simulación de los componentes del SDT. La interacción entre los objetos planteados se muestra en el siguiente diagrama.

La interpretación del diagrama de la estructura de los objetos, es la siguiente: a. Un PM es parte de un SDT. b. Un GS es parte de un SDT. c. Una NA es parte de un SDT.

Page 76: Lógica dependiente del tiempo y elementos neuronales de procesamiento

67676767

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. Las especificaciones para crear, almacenar y regenerar cualquier objeto SDT estarán dadas basadas en las definiciones del diccionario de datos de cada uno de sus componentes. Dichas definiciones son: Neurona Artificial = idNA + {x} + {w} + y + n + u + d Conexión sináptica = [Exc|Inh] + [idGS|idNA] + valor Generador de señales = idGS + [Patrónes de Señales] + valor + amp + fase Punto de medición = idPM + [idGS|idNA] + valor Exc = 1 Inh = 0 Las especificaciones de como esta información es almacenada, pueden ser consultadas en el apéndice A. 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. Esta consideración es necesaria para poder plantear soluciones validas a los problemas que traten de ser resueltos con el simulador. Así, el proceso de simulación de un SDT (implementado en el método simularSDT) quedará definido entonces por el siguiente algoritmo

Page 77: Lógica dependiente del tiempo y elementos neuronales de procesamiento

68686868

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

donde cada ciclo de la estructura MIENTRAS, representará un instante del tiempo total de simulación Ts. Cada uno de los generadores de señales definidos generará un valor para cada instante de la simulación, los cuales serán asignados a las conexiones sinápticas a las que se encuentren relacionados. Inmediatamente después se obtendrán los valores de salida de las neuronas del SDT, para no causar conflictos en la estructura de retardo. Acto seguido, estos valores serán asignados a las conexiones sinápticas a las que se haya relacionado a la neurona como fuente de un valor de entrada. Ya actualizados los valores de entrada de las neuronas se procede a ejecutar el procesamiento de cada una de ellas y se actualiza su estructura de retardo. Después se procede a actualizar los valores en

Page 78: Lógica dependiente del tiempo y elementos neuronales de procesamiento

69696969

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. d = Tgs + Tna + Tpm

dna = Tna1 + Tna2 + ... + Tnam

dgs = Tgs1 + Tgs2 + ... + Tgsp

dpm = Tpm1 + Tpm2 + ... + Tpmq

Tna = m * dna

Tgs = p * dgs

Tpm = q * dpm

Ts = n * d

A continuación serán desarrollados los casos de estudio planteados al principio de este capítulo, con el fin de aplicar la teoría expuesta en los capítulos anteriores, y en los cuales los resultados cuantitativos han sido obtenidos con ayuda del sistema de simulación. 4.3 Sumador de dos bits. El primer caso que se plantea, es la implementación de la operación aritmética de la suma de dos dígitos binarios, la cual está definida como:

Page 79: Lógica dependiente del tiempo y elementos neuronales de procesamiento

70707070

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. Con lo anterior, la operación puede representarse por medio de la siguiente tabla de verdad. Términos x y C S Mínimos Máximos 0 0 0 0 m0

M 0

0 1 0 1 m1 M1

1 0 0 1 m2 M 2 1 1 1 0 m3

M 3

Por medio de la técnicas para obtener la función de respuesta correspondiente a una tabla de verdad en las formas de productos normalizados (términos mínimos) o sumas normalizadas (términos máximos) descritas en [16], se tiene para el caso de términos mínimos f1 = C = xy = m3 f2 = S = x'y + xy' = m1

+ m2

y para el caso de términos máximos F1 = C = (x+y)(x+y')(x'+y) = M 0

* M1 * M 2

F2 = S = (x+y)(x'+y') = M 0 * M3 donde una de las reducciones posibles es F1 = C = x(y+y')(x'+y) C = x(x'+y) = xx'+xy = xy F1 = C = xy F2 = S = (x+y)(x'+y')

Page 80: Lógica dependiente del tiempo y elementos neuronales de procesamiento

71717171

Lo anterior da como resultado las configuraciones de compuertas lógicas que se muestran en la figura (4.1).

Figura 4.1 Implementación del sumador con compuertas lógicas.

Para representar lo anterior por medio de redes neuronales, en el caso de los términos mínimos la configuración resultante es la que se muestra en la figura (4.2)

Figura 4.2 Implementación del sumador con neuronas.

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

Page 81: Lógica dependiente del tiempo y elementos neuronales de procesamiento

72727272

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 N1(t+1) = Exc (x(t),y(t)) {|}

N2(t+1) = Inh (x(t))

N3(t+1) = Inh (y(t))

N4(t+1) = Exc (x(t),y(t)) {&}

N5(t+2) = Exc (N1(t+1))

N6(t+2) = Exc (N2(t+1),N3(t+1)) {|}

N7(t+2) = Exc (N4(t+1))

S = N8(t+3) = Exc (N5(t+2),N6(t+2)) {&}

C = N9(t+3) = Exc (N7(t+2))

Si se considera que las entradas son constantes en el tiempo, llegará un momento en el que la respuesta de la red será la deseada aunque con un retraso considerable. Dicho retraso está dado por el bloque de neuronas encargadas de generar el resultado de la suma, las cuales provocan que el bit S se genere dos instantes después que el bit de acarreo. En este caso, lo que se debe procurar es una respuesta uniforme en el tiempo, es decir, que los datos resultantes sean generados n instantes después, pero de manera simultánea. Esto es importante si se considera que las entradas de la red solo duran el mínimo intervalo de tiempo, es decir un instante. Una manera de lograr una respuesta uniforme en el tiempo, es el uso de retardos en la red, con el fin de compensar el tiempo de respuesta de las neuronas. El inconveniente de esta solución es, que si el diseño de la red (o el circuito) no es óptimo, el incremento en el tiempo de respuesta no será el mejor. 4.4 Codificación y decodificación de datos. En ocasiones la estructura de un sistema puede sugerir la transformación de sus datos de entrada, de manera que se pueda seleccionar un proceso específico, o para su conversión a una base numérica diferente. Se llamará decodificación a la transformación que permite que un dato sea enviado a varios destinos, y codificación a su proceso inverso. Los ejemplos planteados se refieren, a la decodificación de un numero binario de dos dígitos de manera que para cada uno de sus valores se active una de sus salidas, y su proceso inverso. El funcionamiento de cada uno se específica en las figuras (4.3 y 4.4), donde se ha derivado la expresión en términos mínimos y máximos correspondiente a cada uno.

Page 82: Lógica dependiente del tiempo y elementos neuronales de procesamiento

73737373

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

Figura 4.3 Circuito lógico decodificador de dos bits.

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

Page 83: Lógica dependiente del tiempo y elementos neuronales de procesamiento

74747474

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))

Figura 4.5 Red neuronal decodificadora de dos bits.

Page 84: Lógica dependiente del tiempo y elementos neuronales de procesamiento

75757575

b. Codificador. N1(t+1) = Exc(D2(t),D3(t))

N2(t+1) = Exc(D1(t),D3(t))

Figura 4.6 Red neuronal codificadora de dos bits. Al igual que el sumador de dos bits, el codificador y el decodificador deben generar de manera simultánea su respuesta en las líneas de salida. De otra forma, se obtendría un resultado que no sería generado en un instante específico, por lo que no sería correcto por su incertidumbre temporal, y por lo tanto no sería de utilidad. Tal vez el único inconveniente de la solución obtenida de los equivalentes neuronales, es que la respuesta del decodificador implicará un defasamiento en el tiempo de un instante más con respecto a la codificación de los datos originales, lo cual tendría que ser compensado probablemente con un elemento de retardo. 4.5 Elementos de memoria. 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. Existen otras situaciones en que es necesaria la capacidad de almacenar información, de manera que pueda usarse para influir en el futuro del comportamiento del proceso. Para ello, es necesario un componente que cumpla con esta función. Este es llamado un elemento de memoria, el cual se encarga de almacenar información binaria, la cual en un tiempo dado indica el estado de un proceso.

Page 85: Lógica dependiente del tiempo y elementos neuronales de procesamiento

76767676

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]. Estos elementos pueden implementarse de varias maneras, una de las cuales es el uso de componentes llamados flip-flops. Aquí se hará referencia en específico al flip-flop RS (Reset-Set). Su funcionamiento puede expresarse de la siguiente forma: si la entrada S recibe un 1, activa el circuito al estado uno, mientras que al aplicar un 1 a la entrada R, inicializa el circuito al estado cero. S R Q Q' 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0

Figura 4.7 Flip-flop RS. Implementación con compuertas NOR. El equivalente neuronal de los circuitos anteriores esta dado por las siguientes expresiones

Page 86: Lógica dependiente del tiempo y elementos neuronales de procesamiento

77777777

N1(t+1) = Inh(S(t),N2(t))

N2(t+1) = Inh(R(t),N1(t))

Figura 4.8 Redes neuronales equivalentes a un flip-flop RS.

El resultado más importante de esta configuración (implementación del flip-flop con Nor's) es que la respuesta de las neuronas no corresponde con los valores de salida del flip-flop, como lo comprueban las siguientes sustituciones: t t+1 t+2 t+3 t+4 R 0 0 1 0 1 S 1 0 0 0 1 N1(t) = N2(t) = 0

Sustituyendo los valores de R y S en las proposiciones que definen a N1 y a N2 se obtienen los siguientes resultados:

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

Basado en la definición original de celda de memoria, puede tomarse parte de la estructura del flip-flop como referencia para implementar una red que realice esta

Page 87: Lógica dependiente del tiempo y elementos neuronales de procesamiento

78787878

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. Tomando en cuenta lo mencionado en el capítulo 3, referente a las conexiones de autosinápsis en las neuronas, se sabe que esta configuración mantiene constante el estado de un elemento de procesamiento indefinidamente, lo cual puede aprovecharse en este caso. Tómese el caso de una neurona con dos entradas. Si una entrada de la neurona es excitadora y la otra retroalimenta a la misma neurona, si x(t)≥u la neurona se mantendrá en estado alto a partir de t+1. Si una entrada de la neurona es inhibidora y la otra retroalimenta a la misma neurona, si u>0 la neurona se mantendrá en estado bajo a partir de t+1. Aprovechando estos resultados, sea la neurona descrita por la expresión N1(t+1) = Exc(S(t),N(t))+Inh(R(t))

donde si S=1, Q=1 y si R=1, Q=0; y para valores iguales de S y R el estado de la neurona no es afectado. 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 lo que es equivalente a que el estado de la neurona cambiará a uno solo si S=1, y cambiará a cero solo si R=1. 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

Page 88: Lógica dependiente del tiempo y elementos neuronales de procesamiento

79797979

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. 4.6 Control de eventos. Por último se plantea un sistema para el control de eventos discretos. El caso de estudio que se tomó es la regulación del tráfico en una calle de dos sentidos por medio de semáforos. El objetivo es construir una red neuronal que se encargue de generar los pulsos correspondiente para que los semáforos cambien su estado en un instante dado. Para ello es necesario definir la secuencia en la que dichos estados deben aparecer. Sean SN y SS los semáforos norte y sur respectivamente, y cada uno tiene como posibles estados V (verde), A (amarillo) y R (rojo). Durante los dos primeros instantes SN estará en V y SS en R. En el siguiente SN cambiará a A mientras SS continúa en R. Durante los dos siguientes instantes SN estará en R y SS en V, y en el siguiente instante SS cambiará a A mientras SN continúa en R.

Page 89: Lógica dependiente del tiempo y elementos neuronales de procesamiento

80808080

Figura 4.10 Algoritmo para el control de eventos de dos semáforos.

t SNV SNA SNR SSV SSA SSR 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 En contraste con los ejemplos anteriores el diseño se hará directamente con neuronas, en vez de obtener primero un circuito combinacional. Según el algoritmo se tiene una secuencia de cuatro eventos, donde cada uno genera una señal que activa o desactiva los semáforos, la cual puede representarse como una secuencia de retardos

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)

Page 90: Lógica dependiente del tiempo y elementos neuronales de procesamiento

81818181

Figura 4.11 Red neuronal para el control de semáforos (primera versión). donde x(t) es la señal de activación del sistema (su estado en t es uno y subsecuentemente es cero). Las respuestas de las neuronas tienen la siguiente correspondencia con los estados de los semáforos: t 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. Para ello puede manipularse la respuesta de la neurona en el instante correspondiente por medio de una negación. La neurona encargada de esta función tendrá la característica de no tener un tiempo de retardo con el fin de no perder la sincronización del sistema (o en su defecto un negador digital, aunque un sistema híbrido sería un tanto confuso de analizar). El sistema resultante es el siguiente:

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)

Page 91: Lógica dependiente del tiempo y elementos neuronales de procesamiento

82828282

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

Figura 4.12 Red neuronal para el control de semáforos (segunda versión). Ya establecida de manera completa la secuencia y el resultado de los eventos, solo quedaría por establecer el comportamiento de la red en conjunto. Si se asume a x(t) como la señal que comienza la secuencia de eventos se tienen dos alternativas: a. Definir a x(t) tal que genere un pulso cada determinado periodo. b. Permitir que x(t) solo genere un pulso si se quiere iniciar el sistema, y en lo sucesivo ciclar dicho pulso.

Page 92: Lógica dependiente del tiempo y elementos neuronales de procesamiento

83838383

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))

Figura 4.13 Red neuronal para el control de semáforos (versión final). De manera sorprendente, la sencillez de la red neuronal resultante para este sistema de control incluso posee la misma estructura que el diagrama de flujo. Un planteamiento similar de este problema en [27] es resuelto mediante un circuito secuencial que consta de una ROM y algunos flip-flops (figura 4.14).

Page 93: Lógica dependiente del tiempo y elementos neuronales de procesamiento

84848484

Figura 4.14. Controlador de tráfico.

En este caso la ROM contiene la codificación de la secuencia de estados del sistema, así como sus señales de salida. 4.7 Comentarios. Es importante darse cuenta la forma en que se complementan y enriquecen, las teorías de la LDT y las redes neuronales, en conjunto con las técnicas de diseño de sistemas digitales, pues el resultado es una forma nueva de solucionar problemas, que impliquen el uso de elementos de estados binarios y en cuyo comportamiento el tiempo influya. El uso de metodologías alternativas es útil en el diseño de circuitos equivalentes, aunque no en su totalidad. Al tratar de convertir un circuito lógico a su equivalente neuronal, la correspondencia en cuanto a componentes no es siempre uno a uno, a causa de la temporalidad de las neuronas. Mientras que el retardo de cualquier elemento lógico está determinado por la estructura física del mismo, y puede variar de elemento a elemento, aun siendo

Page 94: Lógica dependiente del tiempo y elementos neuronales de procesamiento

85858585

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. De hecho es esta característica la que cambia los criterios de diseño de un sistema, pues dependerá del tiempo de respuesta requerido por un proceso, el decidir: • el numero de neuronas a utilizar, así como los valores de sus parámetros; • que tipo de señales de entrada serán utilizadas; • si es conveniente el uso de retroalimentación. Contrario a lo que se pueda pensar, el desarrollo de una herramienta, ya sea de software o de hardware, para el análisis o la implantación de dichos sistemas es en realidad, la parte trivial de este asunto. El trabajo importante está en el planteamiento de los sistemas en sí, por medio de la teoría expuesta hasta el momento. Como ya se mencionó un diseño que tome en cuenta el funcionamiento de todos sus componentes en todo momento, brindará buenos resultados.

Page 95: Lógica dependiente del tiempo y elementos neuronales de procesamiento

86868686

Capítulo 5. Conclusiones y Perspectivas.

" Lo que aconsejaba la Sibila no sólo valía para aquellos que vivieron en su tiempo, sino también para los hombres que vinieron después de su desaparición, y que ella no conoció jamás; todavía hoy, al cabo de tantos años, solemos consultar públicamente sus libros cuando deseamos que se haga algún portento a favor nuestro: no dudo, pues, que podré, mientras viva, dar igualmente algunos consejos necesarios que aprovechen los que están cerca de mí".

De la cosas del campo. Marco Terencio Varrón.

1. Introducción. En este último capítulo son expuestas las conclusiones obtenidas durante el desarrollo de este trabajo, con respecto a las ventajas y desventajas de la teoría propuesta, así como de sus posibles aplicaciones. 2. Resultados. En relación al aspecto teórico de este trabajo, se considera que los logros más importantes son los siguientes: i) Plantear las ideas básicas relacionadas con la dependencia temporal y como relacionarlas con un sistema lógico. Reflexionar acerca del tiempo de forma práctica fue interesante, a causa de la variedad de consideraciones existentes referentes a la relación del tiempo en el desarrollo de un proceso, aunque todas convergen en la idea de saber en que momento del tiempo se produce un evento. Al tener esta noción, se tiene la capacidad no solo de llevar un registro de la historia del proceso, sino hasta de

Page 96: Lógica dependiente del tiempo y elementos neuronales de procesamiento

87878787

describir eventos futuros, aunque es obvio que cuantitativamente se dependerá del resultado inmediato anterior. En cuanto a relacionar al tiempo con un sistema lógico, como el cálculo proposicional, no es difícil si se toma en cuenta que la descripción de argumentos ya existía, pero no tomaba en cuenta los cambios que el tiempo produce en dicho argumento. Si a esto se agrega que los argumentos analizados son procesos digitales, la relación es mucho más obvia, por lo que solo algunos cambios en la notación y la interpretación del sistema original dan como resultado una metodología mucho más completa. ii) Relacionar la estructura de la lógica dependiente del tiempo, con la teoría de redes neuronales tal que ambas fueran complementarias. 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. En comparación a otros trabajos sobre redes neuronales, cuyo objetivo por lo general es el estudio de métodos que transforman la respuesta de sus elementos (ej. redes de retropropagación) para producir un resultado dado, el enfoque de está tesis ofrece una forma de expresar cualitativamente el diseño de sistemas basados en neuronas artificiales. Esta capacidad es muy útil, sobre todo si se toma en cuenta que varios de los modelos de redes neuronales están orientados a resolver problemas no algoritmicos (en específico los que funcionan en base modelos de entrenamiento), por lo que la capacidad de tener una representación simbólica de sus elementos y valores resultantes, permitirá tratar de entender e interpretar como la solución a un problema dado se encuentra distribuida en los elementos de la red. 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.

Page 97: Lógica dependiente del tiempo y elementos neuronales de procesamiento

88888888

Ejemplo. El operador T de la LDT. Tx(t) = N

n(t) = Exc(x(t)) , n=0 y w1=1 (n es el umbral)

Si w1 ∈ [0,1] entonces Tx(t) = N

n(t) = Exc(x(t)*w1) , n=0 y w1 ∈ [0,1]

La principal diferencia y ventaja, es la definición de configuraciones de neuronas cuyo comportamiento está bien definido, y por lo tanto, puede ser aprovechado para la construcción de arreglos más complejos, con lo que no se tiene la incertidumbre de tener una red demasiado grande, que consuma demasiados recursos y no ofrezca resultados satisfactorios. 3. Aplicaciones. La aplicación de la teoría de la LDT en conjunto con la tecnología de redes neuronales, dependerá directamente de la influencia que el tiempo pueda tener en la estructura y comportamiento del sistema analizado, además de que dependerá en gran parte de identificar cuando un sistema dependa del tiempo. No hay una manera precisa de definir esto, pero pueden considerarse los siguientes puntos: • Los componentes del sistema definan un proceso que debe ejecutarse en un

instante preciso. • Las entradas (o señales) del sistema varíen en el tiempo. • 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. Al plantear el funcionamiento de un proceso, no solo habrá de encontrar un algoritmo que genere un resultado, sino que se debe tomar en cuenta el tiempo que el proceso tardará en producir un resultado, tal que dicho tiempo se ajuste a

Page 98: Lógica dependiente del tiempo y elementos neuronales de procesamiento

89898989

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. Si P esta compuesto por P = {N1(t),N2(t),...,Nj(t)}, donde el retardo en cada neurona es unitario, si N1...Nj están conectados de manera consecutiva P tardará j instantes en generar S, el cual será el periodo máximo para generar una respuesta. Si N1 es el único elemento en P, S se obtendrá un instante después, lo cual será el periodo mínimo de respuesta. Es obvio que si se busca optimizar el tiempo de respuesta de P con j elementos el periodo máximo no es el ideal. Sin embargo, si la topología resultante adopta conexiones en paralelo entre las neuronas, el tiempo requerido será menor a j instantes. Hay que recalcar que en lo que respecta al modelado de sistemas, solo se ha planteado una correspondencia entre las configuraciones neuronales y elementos lógicos digitales. Si un planteamiento requiere modelar un sistema con una función de transferencia compleja, debe contemplarse primero si es viable su representación discreta, para luego implementarse con la metodología aquí expuesta. 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: • Neurobiología. Si se toma en cuenta que hasta ahora, solo se han identificado

áreas de nuestro sistema nervioso encargadas de ciertas funciones, sin saber a ciencia cierta como funcionan, tal vez en un futuro cercano, contando con una sofisticación tecnológica mayor, sea posible un análisis más minucioso de sus estructuras, para lo que se deberá contar con una metodología de representación y herramientas que permitan comprobar los resultados obtenidos. Con ello se podrían construir equivalentes artificiales para sustituir los tejidos dañados.

• Diseño de hardware y software. La tendencia de crear computadoras con

estructuras semejantes a las de nuestro cerebro se ha visto impulsada en este fin de siglo, por lo que si realmente se quiere hacer un análogo artificial, se deberá contar con circuitos electrónicos equivalentes a las neuronas o en su defecto con sistemas de software que emulen sus características.

• Sistemas de control. La mayor parte de los sistemas de control que utilizan

unidades de procesamiento digital, tienen una arquitectura centralizada, es

Page 99: Lógica dependiente del tiempo y elementos neuronales de procesamiento

90909090

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.

4. Extensión de la LDT y el uso de redes neuronales para su representación. La lógica dependiente del tiempo, así como el cálculo de predicados, puede ampliarse para convertirse en una teoría más general. Las posibles extensiones que pueden plantearse para futuros trabajos pueden tomar dos tendencias: i) Ampliar el marco teórico de la LDT en cuanto a representación de sus elementos y valores de verdad. a) Extender el modelo de lógica proposicional dependiente del tiempo a una lógica de predicados y, posteriormente, a un álgebra dependientes del tiempo. En el primer caso, serían necesarias la inclusión de operadores de cuantificación y la modificación de las reglas de sintaxis. b) Plantear el modelo de dependencia temporal en el contexto de un sistema lógico multivaluado o hasta difuso. Cualquiera de estás extensiones puede obtenerse (en principio) aplicando la misma metodología empleada para obtener la parte proposicional: entender el planteamiento y uso de la teoría, y relacionarla con el tiempo. Tal vez lo más complejo sea el adaptar los modelos de neuronas para que presenten una respuesta no binaria. ii) Aplicar nuevos modelos de neuronas artificiales a la representación de la LDT. a) Aplicar modelos neuronales más aproximados a la fisiología de sus

contrapartes biológicos para poder hablar realmente de sistemas neuronales. Como se mencionó en capítulo 3, existen varios modelos de neuronas artificiales (p.ej integradora con fuga). Tomar en cuenta modelos más elaborados bajo el esquema de la LDT seguramente traerá como consecuencia un replanteamiento

Page 100: Lógica dependiente del tiempo y elementos neuronales de procesamiento

91919191

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.

Page 101: Lógica dependiente del tiempo y elementos neuronales de procesamiento

92929292

Referencias bibliográficas. [1] Michael A. Arbib. Brains, Machines & Mathematics. 2nd. edition. Springer-Verlag. 1987. [2] Averill M. Law & W. David Kelton. Simulation, modeling & analysis. 2nd. edition. McGraw-Hill. 1991. [3] Taylor L. Booth. Introduction to computer engineering hardware and software design. [4] Irving M. Copi. Lógica simbólica. Ed. CECSA. 1979. [5] José Cuena. Lógica informática. Alianza editorial. 2a.ed. 1986. [6] Nikos Drakos. Formal methods for the specification and design of real time safety critical systems. Computer based learning unit. University of Leeds. 1994. [7] Bas C. Van Frassen. Semántica formal y lógica. UNAM. 1987. [8] James A. Freeman & David M. Skapura. Neural networks. Algorithms, aplications and programming techniques. Addison Wesley Publication Company. 1992. [9] Peter Gibbins. Logic with Prolog. Clarendon press. 1988. [10] E.J. Hernández Valdelamar y J. Vasconselos Santillán.

Page 102: Lógica dependiente del tiempo y elementos neuronales de procesamiento

93939393

Simulación de modelos de neuronas artificiales. ANIEI. 1995. [11] William H. Hyat Jr. & Jack E. Kemmerly. Análisis de circuitos en ingeniería. Cuarta de. McGraw-Hill. 1988. [12] Felipe Lara Rosano. Redes neuronales artificiales: una introducción. Informe final. Proyecto 9507. UNAM. Octubre, 1990. [13] Gran enciclopedia Larousse. Tomo X. pp. 181-184. Editorial Planeta. 1980. [14] David Maier & David S. Warren. Computing with logic. The Benjamin/Cummings Publishing Company, Inc. 1988. [15] Alejandro Medina. Time dependent logic. Comunicaciones técnicas Vol. 4, No. 12. CIMMASS. UNAM. 1972. [16] M. Morris Mano. Lógica digital y diseño de computadoras. Prentice Hall. 1982. [17] R.J. Nelson. Introduction to automata. Ed. John Wiley & sons, Inc. 1968. [18] Katsuhik Ogata. Ingeniería de control moderna. Prentice Hall. 1980. [19] José Luis Pérez Silva. Notas para la materia de redes neuronales. Centro de instrumentos, UNAM. 1995. [20]José Luis Pérez Silva. Lógica clásica. Centro de instrumentos. UNAM. 1995. [21] J.L. Pérez S., A. Herrera B., Sergio Quintana T., G. Hernández C., A. Miranda V., A. Garces M.

Page 103: Lógica dependiente del tiempo y elementos neuronales de procesamiento

94949494

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. [22] R. Canales Ruiz y R. Barrera Rivera. Análisis de sistemas dinámicos y control automático. Primera reimpresión. Ed. Limusa. 1980. [23] C.U.M. Smith. El cerebro (The brain. Towards an understanding). Alianza Editorial. 1972. [24] Robert R. Stoll. Set theory and logic. Dover Publications, Inc. 1979. [25] Edited by Andre Thayse. From standart logic to logic programming. Ed. John Wiley & sons, Inc. 1988. [26] Richmond H. Thomason. Symbolic logic. The Macmillan company. 1970. [27] Claude A. Wiatrowski & Charles H. House. Logic circuits and microcomputer systems. McGraw-Hill. 1981. [28] Francisca Zubieta R. Lógica matemática elemental. Ed. Esfinge. 1988.

Page 104: Lógica dependiente del tiempo y elementos neuronales de procesamiento

95959595

Glosario. Análisis. Es la investigación bajo condiciones específicas del funcionamiento de un sistema cuyo modelo matemático se conoce. Circuitos digitales combinacionales. Arreglos de compuertas lógicas en donde las salidas en un instante dado de tiempo son enteramente dependientes de las entradas presentes en ese mismo tiempo. 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.

Page 105: Lógica dependiente del tiempo y elementos neuronales de procesamiento

96969696

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.

Page 106: Lógica dependiente del tiempo y elementos neuronales de procesamiento

97979797

Apéndice A. Documentación y código fuente del simulador.

• Sistema para diseño de redes neuronales. Prototipo Versión: 1.0 Última actualización: Septiembre, 1996. Documentación. 1. Requerimientos. • Computadora PC o compatible, con un microprocesador i286 o superior, 640Kb

de memoria RAM. Monitor monocromático o color. • Sistema operativo DOS versión 4.0 o superior. 2. Archivos del sistema. La arquitectura del sistema se basa en un programa ejecutable encargado de llevar a acabo el procesamiento de información, así como de administrar la entrada y salida de datos. Adicionalmente se cuenta con archivo de configuración que determina la ruta de acceso a los archivos utilizados por el sistema. Las configuraciones de elementos definidas en los proyectos que se implementen es guardada en archivos con extensión PRY. Nombre del archivo ejecutable: DSRN01.EXE Nombre del archivo de configuración: DSRN.CFG 3. Manual de operación. Una vez inicializado el sistema, se cuenta con las siguientes opciones: • Definir un generador de señales. Crea un elemento que transmite pulsos (0,1),

y permite seleccionar el orden en que dichos pulsos son emitidos.

Page 107: Lógica dependiente del tiempo y elementos neuronales de procesamiento

98989898

• 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).

• Definir un elemento de medición. Crea un elemento que se encarga de registrar

los valores de salida de un generador de señales o de una neurona. • Listar los elementos del sistema. Muestra un listado de todos los elementos del

proyecto y sus características. • Inicializar el sistema. Inicializa las estructuras de datos del sistema. • Cargar un proyecto existente. Abre y lee el archivo especificado para

reestablecer los elementos de un proyecto ya existente. • Salvar el proyecto actual. Crea y escribe en un archivo la estructura de todos

los elementos de un proyecto. • Simulación de la red neuronal. las cuales están distribuidas en un menú. La selección de estas se hace tecleando el digito correspondiente a la opción. • Estructura de los archivos PRY. A continuación se presenta un ejemplo de un archivo PRY, el cual contiene el proyecto correspondiente a una red neuronal encargada de la codificación de dos bits. Nombre del archivo: codifica.pry {codifica} Nombre y comentarios sobre el proyecto.

5 Numero de puntos de medición.

2 Numero de neuronas.

3 Numero de generadores de señales.

1 Ids de los elementos sensados (generadores o neuronas).

2

3

4

5

4 1 1 2 Parámetros de NNet[i] (id,threshold,retardo y entradas)

2 1 Entradas de la neurona (id de la fuente y tipo (Inh o Exc))

3 1

5 1 1 2

3 1

Page 108: Lógica dependiente del tiempo y elementos neuronales de procesamiento

99999999

1 1

1 6 Generadores de señales (id y tipo de patrón de la señal).

2 7

3 8

<EOF>

• Código fuente del sistema.

{

Diseño y simulación de redes neuronales.

Eugenio Jacobo Hernández Valdelamar. 1996.

Archivo fuente: dsrn01.pas

Versión: 1.0

Lenguaje: Pascal (Borland Turbo Pascal 5.5).

* Convenciones:

I. El modelo de neurona utilizado es el McCulloch & Pitts.

1. Todos los pesos son considerados con valor de 1.

2. Toda neurona recibe sus valores de entrada de un

elemento generador de señales cuando forma parte

de la primera capa.

3. Un punto de medición es un elemento pasivo que no

influye en la temporalidad del proceso.

4. La unidad de tiempo es un instante, el cual a

tiempo de ejecución es equivalente a una iteración

del procedimiento de simulación.

5. Las neuronas pueden ser conectadas en serie, en

paralelo y hasta retroalimentarse.

II. Por tratarse de un prototipo las estructuras de datos

en que se almacenan los elementos del sistema son

estáticas (arreglos) cuya longitud se encuentra

establecida en el área de definición de constantes.

La ruta de acceso a los archivos del sistema se define

en el archivo DSRN.CFG

Los archivos *.PRY contienen la información de la estructura

de un proyecto.

!!! Se prohibe la distribución comercial de este programa !!!

}

program dsrn_system;

uses crt;

Page 109: Lógica dependiente del tiempo y elementos neuronales de procesamiento

100100100100

const

n_neurons = 20; {numero máximo de neuronas}

n_signals = 10; {numero máximo de señales}

n_points = 20; {numero máximo de puntos de medición}

max_delay = 11; {el tiempo de retraso máx. real es de max_delay-1}

{patrones de las señales de entrada}

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;

{Elemento generador de señal}

signal = record

id : byte;

s_type : byte; {Tipo de patrón de Pulsos}

c :byte; {contador}

amp :byte; {amplitud}

value : integer;

end;

Page 110: Lógica dependiente del tiempo y elementos neuronales de procesamiento

101101101101

{Punto de medición}

messure_point = record

cfrom:byte;

value:integer;

end;

var

NNet : array [1..n_neurons] of neuron; {red neuronal}

Mpts : array [1..n_points] of messure_point; {puntos de medición}

Sign : array [1..n_signals] of signal; {señales de entrada}

id_ctrl, {total de elementos del sistema}

n_mps, {total de puntos de medición}

n_ns, {total de neuronas en la red}

n_sig, {total de señales}

time_c, {contador de tiempo}

total_time: integer; {tiempo total de la simulación}

pathn:string; {ruta de acceso a los archivos .PRY}

{----------------------------------------------------}

procedure load_sys_config ; {carga el archivo de configuración del sistema}

var

str:string;

c:char;

fcfg:text;

begin

assign(fcfg,'dsrn.cfg');

{$I-}

reset(fcfg);

{$I+}

if IOResult=0 then

begin

while (not eof(fcfg)) do

begin

c:=#0;

while c<>'}' do read(fcfg,c);

readln(fcfg,pathn);

readln(fcfg,pathn);

str:='';

While str<>'FIN' do

readln(fcfg,str);

end;

close(fcfg);

end

else

begin

writeln('El archivo de configuración no existe !'); readln;

end;

Page 111: Lógica dependiente del tiempo y elementos neuronales de procesamiento

102102102102

end;

procedure initialize_sys; {inicialización de variables}

begin

id_ctrl:=0;

n_mps:=0;

n_ns:=0;

n_sig:=0;

time_c:=0;

total_time:=0;

fillchar(NNet,sizeof(NNet),0);

fillchar(Mpts,sizeof(Mpts),0);

fillchar(Sign,sizeof(Sign),0);

end;

procedure scr_format; {presentación de los resultados de la simulación}

var i:byte;

begin

clrscr;

write('Mpts');

for i:=1 to n_mps do

begin

gotoxy(2,i+2);

write (Mpts[i].cfrom);

end;

gotoxy(6,1);

for i:=0 to total_time do

begin

gotoxy(i*3+9,1);

write ('t',i);

end;

end;

function pattern_val (pn,c:byte):byte;

var s:byte;

begin

case pn of

0: s:=p0[c];

1: s:=p1[c];

2: s:=p2[c];

3: s:=p3[c];

4: s:=p4[c];

5: s:=p5[c];

6: s:=p6[c];

7: s:=p7[c];

8: s:=p8[c];

9: s:=p9[c];

end;

pattern_val:=s;

end;

Page 112: Lógica dependiente del tiempo y elementos neuronales de procesamiento

103103103103

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;

procedure new_element_id (var id:byte);

{genera un id para un nuevo elemento}

begin

id_ctrl:=id_ctrl+1;

Page 113: Lógica dependiente del tiempo y elementos neuronales de procesamiento

104104104104

id:=id_ctrl;

end;

{----------------------------------------------------}

procedure new_mp ; {crea un nuevo punto de medición}

var elem:byte;

begin

inc(n_mps);

write('Se obtendrá el valor del elemento: ');

readln(elem);

if elem>id_ctrl then

write('Error en la asignación del id!')

else

Mpts[n_mps].cfrom:=elem;

writeln;

write('Presione ENTER para continuar...');

readln;

end;

procedure check_mp_value; {revisa los valores en los puntos de medición}

var i,j,k:byte;

begin

for i:=1 to n_mps do

begin

for j:=1 to n_ns do

if Mpts[i].cfrom=NNet[j].id then

Mpts[i].value:=NNet[j].d_buff[NNet[j].delay_t+1];

for k:=1 to n_sig do

if Mpts[i].cfrom=Sign[k].id then

Mpts[i].value:=Sign[k].value;

end;

end;

procedure display_mps; {despliega los puntos de medición}

var i:byte;

begin

for i:=1 to n_mps do

begin

gotoxy(time_c*3+6,i+2);

write (Mpts[i].value);

end;

end;

{----------------------------------------------------}

procedure p_signals (var s:signal);

begin

case s.s_type of

0: s.value:=p0[s.c];

1: s.value:=p1[s.c];

Page 114: Lógica dependiente del tiempo y elementos neuronales de procesamiento

105105105105

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 signal_type (var s:byte); {selección de la señal}

begin

show_patterns;

gotoxy(1,18);

write('Tipo de señal [0..9] : ');

readln(s);

if not(s in [0..9]) then

begin

s:=0;

writeln('Valor erroneo. Señal asignada p0 !!!');

end;

writeln;

write('Presione ENTER para continuar...');

readln;

end;

procedure new_signal; {crea un nuevo generador de señales}

begin

inc(n_sig);

with Sign[n_sig] do

begin

new_element_id (id);

signal_type (s_type);

c:=1;

end;

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);

Page 115: Lógica dependiente del tiempo y elementos neuronales de procesamiento

106106106106

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;

procedure new_neuron; {crea una nueva neurona}

begin

n_ns:=n_ns+1;

with NNet[n_ns] do

begin

new_element_id (id);

writeln('Neurona ',id);

set_inputs;

writeln;

write('Presione ENTER para continuar...');

readln;

end;

end;

{----------------------------------------------------}

procedure neuron_outp (var n:neuron);

var i:byte;

begin

for i:=n.delay_t downto 1 do {retardo de la neurona}

n.d_buff[i+1]:=n.d_buff[i];

{n.d_buff[1]:=n.output;}

n.output:=n.d_buff[n.delay_t+1]; {salida de la neurona con retardo}

end;

procedure p_neuron (var n:neuron);

{procesamiento de información por medio de una neurona}

var

i,j,inp:byte;

exc,inh,sum:integer;

begin

sum:=0;

exc:=0;

inh:=0;

Page 116: Lógica dependiente del tiempo y elementos neuronales de procesamiento

107107107107

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;

for j:=1 to n_sig do

if Sign[j].id=n.inputs[i].in_from then

inp:=Sign[j].value;

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;

procedure p_net; {representa un ciclo de simulación}

var i,j,k,l:integer;

begin

for i:=1 to n_sig do {se obtiene el valor de cada señal}

p_signals(Sign[i]);

for i:=1 to n_ns do {se obtiene el valor de salida de cada neurona}

neuron_outp(NNet[i]);

for i:=1 to n_ns do {cada neurona procesa sus valores de entrada}

p_neuron (NNet[i]);

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;

Page 117: Lógica dependiente del tiempo y elementos neuronales de procesamiento

108108108108

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;

{----------------------------------------------------}

procedure load_sys ; {reestablece una red neuronal ya creada}

var

c:char;

fcfg:text;

scf,pname:string;

i,j:byte;

begin

initialize_sys;

write('Nombre del proyecto : ');

readln(pname);

scf:=concat(pname,'.pry');

scf:=concat(pathn,scf);

assign(fcfg,scf);

{$I-}

reset(fcfg);

{$I+}

if IOResult=0 then

begin

while (not eof(fcfg)) do

begin

while c<>'}' do read(fcfg,c);

readln(fcfg,n_mps);

readln(fcfg,n_ns);

readln(fcfg,n_sig);

for i:=1 to n_mps do

readln(fcfg,Mpts[i].cfrom);

for i:=1 to n_ns do

with NNet[i] do

begin

Page 118: Lógica dependiente del tiempo y elementos neuronales de procesamiento

109109109109

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;

for i:=1 to n_sig do

with Sign[i] do

readln(fcfg,id,s_type);

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}

for i:=1 to n_ns do

with NNet[i] do

begin

writeln(fcfg,id,' ',thr,' ',delay_t,' ',n_in);

for j:=1 to n_in do

writeln(fcfg,inputs[j].in_from,' ',inputs[j].in_type);

end;

for i:=1 to n_sig do

with Sign[i] do

Page 119: Lógica dependiente del tiempo y elementos neuronales de procesamiento

110110110110

writeln(fcfg,id,' ',s_type); {tipo de señal}

close(fcfg);

end;

{----------------------------------------------------}

procedure main_menu; {texto del menu}

begin

writeln('- Simulación de redes neuronales -');

writeln;

writeln('Opciones: ');

writeln('0. Nuevo proyecto');

writeln('1. Crear generadores de señales');

writeln('2. Crear neuronas');

writeln('3. Definir puntos de medición');

writeln('4. Listar estructura del sistema');

writeln('5. Iniciar la simulación');

writeln('----------------------------------');

writeln('6. Salvar configuración');

writeln('7. Cargar sistema existente');

writeln('9. Salir ');

writeln;

write('Opción : ')

end;

procedure menu; {menu de opciones del sistema}

var op:byte;

begin

op:=0;

while op<>9 do

begin

clrscr;

main_menu;

readln(op);

writeln;

writeln;

case op of

0: initialize_sys;

1: new_signal;

2: new_neuron;

3: new_mp;

4: show_sys;

5: simulation;

6: save_sys;

7: load_sys;

end;

end;

end;

begin

Page 120: Lógica dependiente del tiempo y elementos neuronales de procesamiento

111111111111

load_sys_config;

initialize_sys;

menu;

end.