CAPÍTULO 7: TRATAMIENTO DE LA COMPLEJIDAD: SIMPLIFICACIÓN
6. Niveles y Abstracciones
Ya hemos visto cómo se puede reducir la complejidad de un sistema si se organiza en varias partes o, lo que es lo mismo, en varios niveles. Esto nos permite enten- derlo mucho mejor al separar diferentes propiedades y características en diferentes estratos que se pueden estudiar por separ ado.
Esto es lo que hicieron Bell y Newell con los ordenadores. Descomponiendo éstos en varios niveles se facilita el estudio de sus diversas funcionalidades y el análisis de sus car acterísticas. Para ello se manejan dos conceptos fundamentales: abs- tracción y refinamiento. El paso de un nivel inferior de la jerarquía a otro superior se hace por abstracción, es decir, suprimiendo detalles innecesarios y quedándose sólo con la información relevante en cada nivel. El paso de un nivel superior a otro inferior se hace por refinamiento , es decir, ampliando los detalles de ese niv el. Dicho de otr a maner a, cada niv el del sistema se car acteriza por una serie de componentes y una serie de formas de relacionarlos par a formar estructur as. El comportamiento de un niv el se define en términos del comportamiento de sus componentes y de las combinaciones específicas. Para pasar a un nivel superior se abstraen los detalles de los componentes y nos quedamos sólo con lo relev ante a ese niv el. P ara descender a un niv el inferior se amplían los detalles de esos componentes, s e refina la estructur a con un gr ado de discriminación cada v ez mayor.
Y ésta es una car acterística recursiv a: un sistema, formado por una serie de componentes organizados de una determinada maner a, puede v erse como un componente de un sistema superior . En todos los niv eles se pueden distinguir sistemas que no se pueden explicar a partir de estructuras de sistemas del mismo tipo, estos sistemas se denominan primitivas. Una resistencia, por ejemplo, es una primitiva en un circuito, pero no siempre hay primitivas puras (los operadores lógicos AND, OR, NOT, NAND, NOR, etc. pueden todos representarse unos en función de otros, luego no se podría hablar de primitiv as estrictamente).
Cada sistema se constituye así en un nivel de la jerarquía en que se descompone el sistema total y se caracteriza por un lenguaje distintivo que permite representar los componentes de ese nivel (componentes, leyes de comportamiento y relaciones) y además representa propiedades especiales de esos componentes pues de no ser así no tendría sentido utilizar un lenguaje específico . El hecho de que estos lenguajes son muy distintos aumenta la confianza sobre la existencia de diferentes niv eles. Esto se puede relacionar directamente con la jerarquía de niveles que propone Klir,
El ordenador, como jerarquía de niveles
Siewiorek, Bell y Newell proponen una interpretación jerárquica del ordenador en la que los niveles inferiores son "los ladrillos" con los que se construye el nivel inmediatamente superior. En cada nivel se pueden distinguir componentes, que se pueden ver como primitivas en ese nivel, y estructuras construidas a partir de varios componentes. El nivel más bajo sería el nivel de circuitos, los componentes en este nivel son resistencias, condensadores, bobinas, transistores, etc. Las estructuras que con ellos se construyen son los amplificadores, retardos, relojes, puertas lógicas, etc.
El siguiente nivel sería el nivel de diseño lógico, a su vez dividido en los subniveles de transferencia de registros y de conmutación de circuitos. En este último los componentes son las puertas, flip-flops, "latches", retardos, etc. Las estructuras son contadores, registros, codificadores y decodificadores. En el subnivel de transferencia de registros los componentes son los registros, contadores y demás, mientras que las estructuras ya son unidades aritméticas, secuencia- dores. Como estructuras superiores de este nivel estarían los micro- programas y las microrrutinas.
Estos dos niveles son suficientes para ilustrar cómo cada nivel tiene unos componentes básicos y unas estructuras que se construyen a partir de ellos y también cómo cada nivel tiene su lenguaje propio que sólo se entiende en ese nivel. Para los circuitos una parte de ese len- guaje es la ley de Ohm, que no tiene ningún sentido en el nivel de diseño lógico, donde el lenguaje es el álgebra de Boole, por ejemplo. La existencia de estos lenguajes diferenciados es una prueba de la existencia de estos niveles.
Esta jerarquía considera también el nivel de programa, dividido en varios subniveles, donde se utilizan los diferentes lenguajes de programación que existen, lenguaje ensamblador para el subnivel más bajo, primitivas del sistema operativo, lenguajes de programación de aplicaciones, módulos de aplicaciones (librerías de funciones matemáticas, por ejemplo) y aplicaciones completas (como puede ser un sistema de reserva de billetes). Por encima de este nivel está el de Procesadores-Memoria-Conmutadores, en el que se manejan redes de ordenadores, sistemas multicomputador, etc.
en la que cada nivel epistemológico tiene un lenguaje concreto y distintiv o asociado. Este proceso se puede ver en la figura 3. La jerarquía que proponen Bell y Newell se resume en la figur a 2. [Siewiorek, Bell y Newell, 1982, p . 10].
Fig. 3. Jerarquía de niveles, cada uno con su lenguaje correspondiente
7. Resumen
La simplificación es un concepto indisociable de la complejidad. Como hemos señalado repetidas veces a lo largo del capítulo, la simplificación es una necesidad que viene impuesta por la complejidad de las cosas. V arios ejemplos nos han servido para ilustrar cómo se aplican diferentes formas de simplificación a diversos sistemas para conseguir reducirlos a una complejidad manejable. Pero más que el proceso en sí, nos interesa destacar la relación que existe entre simplificación y muchos conceptos relacionados con la complejidad que hemos tratado en capítulos anteriores.
Los principios generales de complejidad de Klir nos proporcionan la primer a pista al incluir la incertidumbre en la complejidad de los sistemas. El bucle simplifica- ción/complejificación nos permitre relacionar la disminución de la complejidad descriptiva con la simplificación y, por tanto, con el aumento de incertidumbre. De ahí podemos saltar al Azar , pues la pregunta de si existe un Azar en sí mismo o es producto de nuestr a ignorancia está directamente relacionada con el binomio descripción/incertidumbre. Si admitimos que no podemos describir las cosas en su totalidad (como postula el principio de Heisenberg) siempre existirá una incerti- dumbre asociada, incertidumbre que se tr aduce en Azar (ver el capítulo dedicado a los conceptos relacionados con la complejidad). ¿Hasta dónde se puede llegar siguiendo el bucle epistemológico de complejificación/simplificación?; ésta es una pregunta que queda abierta y que invitamos al lector a responder desde la perspec- tiva global de este trabajo.
Por otro lado , la simplificación puede intentar formalizarse a tr avés de la Ley de Variedad Requerida formulada por Ashby y que recogemos en el capitulo dedicado a la Variedad. La simplificación está encaminada a equilibr ar las v ariedades,
las leyes cibernéticas sintetizadas en esta ley. También invitamos al lector a refle- xionar sobre esta formulación.
8. Bibliografía
Dividida en dos apartados. En el apartado Notas Bibliográficas se comentarán aquellos tr abajos que más profusamente han servido par a redactar las páginas anteriores. El apartado de R eferencias Bibliográficas contiene todos los tr abajos citados.
Notas bibliográficas
El problema de la simplificación ha sido tratado por muchos autores y la bibliografía disponible es muy abundante, aunque un tanto dispersa al encontr arse las refe- rencias a este tema dentro de obr as con unos objetiv os más amplios. Los títulos que aquí hemos utilizado como referencia son los siguientes:
Gerald M. Weinberg, "Una aproximación por computadores a la Teoría General de Sistemas", artículo que se encuentr a en el libro editado por George J . Klir "Tendencias de la Teoría General de Sistemas ", de la colección Alianza Universidad Ciencias, num. 208, Madrid 1978. Este artículo puede resultar muy interesante a los aficionados a la informática pues presenta muchas de las ideas sobre complejidad y sistemas a tr avés de ejemplos donde el ordenador juega un papel primordial. El libro, editado por Klir, es una obra importante, que ya hemos utilizado varias v eces en otros capítulos, y que recoge div ersos artículos sobre sistémica de varios reconocidos expertos del tema (Ashb y, Bertalanffy, Weinberg, el propio Klir, etc.) y que puede proporcionar una panorámica muy amplia de lo que es el enfoque sistémico , además tiene la v entaja de estar en español. George J . Klir, "Complexit y, Some Gener al Observ ations", Systems Research, No. 2, pp . 131-140, 1985. Artículo básico en el estudio de la complejidad y que recoge gran parte de las ideas de su autor . Este artículo también nos ha servido de referencia en el capítulo de Marcos Conceptuales y la mayoría de las ideas que en él se presentan aparecen también en el libro de Klir que se comenta en el capítulo de Conceptos relacionados con la Complejidad.
Herbert A. Simon, "The Architecture of Complexit y", ensayo recogido en el libro
The Sciences of the Artificial, MIT Press, 1969. Éste es un pequeño libro con una serie de conferencias de Simon que tocan puntos muy diversos y muy intere- santes. El artículo que tomamos como referencia es muy conocido y frecuente- mente citado, tanto por los partidarios del enfoque sistémico como por sus detrac- tores, dado que es una apro ximación imparcial a los sistemas con críticas y propuestas de desarrollo muy acertadas. El resto del libro es también muy inte- resante y recomendable.
Siewiorek, Bell y Newell, Computer Structures: Principles and Examples , McGraw Hill, Nueva York, 1982. Es una auténtica biblia y enciclopedia de la estruc- tura y arquitectur a de los computadores desde su primer a aparición, sin Siewiorek, en 1971. Utiliza en sus primeros capítulos un método descriptivo jerár- quico y define los lenguajes ips y pms.
Referencias bibliográficas
Klir G.J. (1985) "Complexit y, Some Gener al Observations", Systems Research, No. 2, pp. 131-140 .
Siewiorek, Bell y Newell (1982), Computer Structures: Principles and Examples, McGraw Hill, Nueva York.
Simon H.A., (1969) "The Architecture of Complexit y", ensayo recogido en el libro
The Sciences of the Artificial, MIT Press.
Weinberg G.M. (1978), "Una apro ximación por computadores a la T eoría General de Sistemas", en George J. Klir, Tendencias de la Teoría General de Sistemas, de la colección Alianza Univ ersidad Ciencias, num. 208, Madrid.