Universidad Católica del Uruguay Facultad de Ingeniería y Tecnologías Ingeniería Electrónica DISEÑO DE SISTEMAS ELECTRÓNICOS COMPLEJOS Autor: Bach. Gonzalo Sánchez [email protected] Tutor: MSc. Manuel Burgos [email protected] Orientador: Dr. Roberto Suárez [email protected] Proyecto de fin de carrera - Ingeniería Electrónica 2002 - 2006 Este documento, “Diseño de Sistemas Electrónicos Complejos”, desarrollado durante 2002 - 2006, es mi proyecto de fin de carrera correspondiente a la carrera de Ingeniería en Electrónica, cursada en el período 1997 - 2001 en la Facultad de Ingeniería de la Universidad Católica del Uruguay1. Se permite expresamente su divulgación, exigiendo únicamente que se aclare debidamente la afiliación del autor y tutores. Se advierte que si bien el contenido de este documento ha sido revisado y corregido, es posible que contenga errores u omisiones que hayan escapado a la revisión. Se agradece a los eventuales lectores que envíen sus observaciones al respecto, debidamente identificadas, las cuales serán anexadas al documento. 1 Actualmente, Facultad de Ingeniería y Tecnologías de la Universidad Católica del Uruguay. RESUMEN Este documento recopila, organiza, y sintetiza el vasto panorama de diseño de sistemas electrónicos complejos de actualidad, y lo presenta desde una perspectiva de sistemas a modo de guía al tema, adecuándole a un nivel de grado en ingeniería electrónica. La primera parte se dedica a establecer una noción de conceptos como ‘sistema’, ‘complejidad’, ‘diseño’, y ‘modelo’, así como la relación entre estos. El carácter de esta primer parte es mayoritariamente filosófico y abstracto. El alcance de las presentaciones en esta primera parte del documento no se restringe al campo de la ingeniería electrónica, sino que se les confiere la mayor generalidad posible, incluso allende la ingeniería. Así, se llegan a presentar los fenómenos meta - matemáticos de incompletitud, incomputabilidad, y aleatoriedad algorítmica, y sus implicancias en las matemáticas, la física contemporánea, y la ingeniería, particularmente en sus ramas informática y electrónica. La segunda parte del documento presenta los conceptos, metodologías, y herramientas que intervienen y/o asisten en los procesos de diseño de sistemas electrónicos complejos de actualidad, como sistemas embebidos y sistemas en un único encapsulado. El carácter de esta segunda parte es de ingeniería, y mantiene un mínimo nivel de abstracción compatible con el objetivo de presentar un panorama del diseño de sistemas electrónicos complejos. Se parte con una exposición de la evolución histórica de los sistemas electrónicos, tomando como punto de partida la consecución del primer circuito integrado, y se avanza hasta presentar las problemáticas y desafíos que enfrenta el diseño electrónico de actualidad en virtud de su evolución, y particularmente, su sinergia con el desarrollo informático. Se continúa con la proposición de una estructura abstracta del proceso de diseño de sistemas electrónicos complejos de actualidad, que permite describir y comprender tanto las metodologías de diseño tradicionales como las de actualidad. Se presenta la descripción de cada uno de sus niveles de abstracción, y de los procesos de síntesis y análisis que les relacionan. A la proposición y examen de esta estructura abstracta, sigue la presentación de su refinamiento en términos de los elementos concretos con los cuales puede ejecutarse un proceso de diseño, como lenguajes de programación y descripción de dispositivos electrónicos y herramientas de diseño asociadas. En el marco de las estructuras abstracta y concreta de diseño electrónico, se presentan conceptos recientemente elaborados en el área de las ciencias de la computación para aplicación al diseño electrónico, y las metodologías de diseño electrónico que este tipo de conceptos permite desarrollar. ÍNDICE DE CONTENIDO [ 1 ] COMPLEJIDAD Y SISTEMAS COMPLEJOS.....................................................................27 [ 1.1 ] Consideraciones iniciales.........................................................................................................27 [ 1.1.1 ] Detalles y Abstracción..................................................................................................................................27 [ 1.1.2 ] Escala y Evolución.......................................................................................................................................29 [ 1.2 ] ¿Definición o Significado?.......................................................... ..............................................31 [ 1.3 ] Sistemas...................................................................................................................... ................32 [ 1.3.1 ] La visión ‘clásica’..........................................................................................................................................33 [ 1.3.2 ] La visión actual.............................................................................................................................................35 [ 1.3.3 ] Nociones formal e informal de ‘sistema’.......................................................................................................36 [ 1.4 ] Complejidad...................................................................... ..........................................................39 [ 1.4.1 ] El Fenómeno de la Complejidad..................................................................................................................39 [ 1.4.2 ] Fuentes de Complejidad...............................................................................................................................40 [ 1.4.3 ] Escalamiento de la Complejidad..................................................................................................................41 [ 1.5 ] Sistemas Complejos..................................................................................................................42 [ 1.5.1 ] Jerarquía......................................................................................................................................................42 [ 1.5.2 ] ‘Modularidad’................................................................................................................................................43 [ 1.5.3 ] Símbolos sencillos........................................................................................................................................44 [ 1.6 ] Resumen......................................................................................................................................45 [ 1.7 ] Conclusiones........................................................................ ......................................................48 [ 2 ] DISEÑO EN INGENIERÍA.....................................................................................................53 [ 2.1 ] Proceso y Producto de Diseño.................................................................................................53 [ 2.1.1 ] El Proceso de Diseño...................................................................................................................................53 [ 2.1.1.1 ] Características del proceso de diseño..................................................................................................54 [ 2.1.1.2 ] Aspectos sicológicos del proceso de diseño.........................................................................................55 [ 2.1.1.3 ] Aspectos operacionales del proceso de diseño....................................................................................56 [ 2.1.1.4 ] Estructura del proceso de diseño..........................................................................................................63 [ 2.1.2 ] El Producto de Diseño..................................................................................................................................66 [ 2.1.2.1 ] El ‘diseño’ como descripción.................................................................................................................66 [ 2.1.2.2 ] El lenguaje de descripción....................................................................................................................68 [ 2.1.2.3 ] El ‘diseño’ como ‘sistema’.....................................................................................................................70 [ 2.2 ] Metodologías, Flujos, y Herramientas de Diseño...................................................................71 [ 2.2.1 ] Diseño ascendente y descendente..............................................................................................................73 [ 2.2.1.1 ] Diseño descendente.............................................................................................................................73 [ 2.2.1.2 ] Diseño ascendente...............................................................................................................................74 [ 2.2.1.3 ] El proceso de diseño en el tiempo: ciclo descendente-ascendente.....................................................75 [ 2.3 ] Teorías de diseño........................................................................................ ...............................78 [ 2.3.1 ] El enfoque axiomático..................................................................................................................................79 [ 2.3.2 ] Posibilidades derivadas del enfoque formal.................................................................................................84 [ 2.4 ] El Espacio de Diseño.................................................................................................................85 [ 2.4.1 ] Exploración del Espacio de Diseño..............................................................................................................89 [ 2.4.1.1 ] Métodos para la exploración del espacio de diseño.............................................................................90 [ 2.4.1.2 ] El proceso de diseño desde la perspectiva de la exploración del espacio de diseño...........................92 [ 2.5 ] Resumen......................................................................................................................................94 [ 2.6 ] Conclusiones........................................................................ ......................................................99 [ 3 ] MODELOS......................................................................................................... ..................101 [ 3.1 ] Características y propiedades generales..............................................................................101 [ 3.2 ] Modelos verbales y formales..................................................................................................103 [ 3.2.1 ] Introspección, deducción, robustez, incompletitud.....................................................................................104 [ 3.2.2 ] Modelos matemáticos informales...............................................................................................................105 [ 3.2.3 ] Modelos matemáticos y modelos formales de modelos ‘verbales’.............................................................107 [ 3.3 ] Modelos matemáticos............................................................................................................ ..110 [ 3.3.1 ] Consideraciones iniciales...........................................................................................................................110 [ 3.3.2 ] La naturaleza del método matemático.......................................................................................................112 [ 3.3.3 ] Interludio histórico......................................................................................................................................113 [ 3.3.3.1 ] Paradojas lógicas: la crisis en los fundamentos de la matemática.....................................................113 [ 3.3.3.1.1 ] El infinito matemático: la teoría de conjuntos infinitos de Cantor................................................114 [ 3.3.3.1.2 ] La paradoja de Russell................................................................................................................114 [ 3.3.3.2 ] Estrategias para la resolución de la crisis en la lógica........................................................................116 [ 3.3.3.2.1 ] Constructivismo o Intuicionismo..................................................................................................117 [ 3.3.3.2.2 ] Formalismo..................................................................................................................................119 [ 3.3.4 ] Sistemas Axiomáticos Formales ...............................................................................................................123 [ 3.3.5 ] La ‘espada de Gödel’..................................................................................................................................126 [ 3.3.5.1 ] Teoremas de Indecisión e Incompletitud de Gödel.............................................................................126 [ 3.3.5.2 ] Consecuencias de los teoremas de Gödel.........................................................................................131 [ 3.3.6 ] Indecisión, Incompletitud, Incomputabilidad e Indeterminismo – De Gödel a Turing y Chaitin..................135 [ 3.3.6.1 ] El autómata de Turing, los reales incomputables, y el problema de finalización................................136 [ 3.3.6.1.1 ] Números reales incomputables...................................................................................................137 [ 3.3.6.1.2 ] El Problema de Finalización........................................................................................................138 [ 3.3.6.1.3 ] Consecuencias de la Incomputabilidad y la insolubilidad del Problema de Finalización............140 [ 3.3.6.2 ] Aleatoriedad como incompresibilidad – la Teoría de Información Algorítmica de Chaitin..................142 [ 3.3.6.2.1 ] Aleatoriedad estadística, aleatoriedad estructural, aleatoriedad algorítmica..............................143 [ 3.3.6.2.2 ] Teorías científicas, sistemas formales, y programas: compresibilidad de la información...........145 [ 3.3.6.2.3 ] Teoría de Información Algorítmica..............................................................................................146 [ 3.3.6.2.4 ] El número Ω: aleatoriedad algorítmica en matemáticas..............................................................151 [ 3.3.6.2.5 ] Consecuencias de la Teoría de Información Algorítmica............................................................163 [ 3.3.6.2.5.1 ] ¿Matemáticas cuasi-empíricas?..........................................................................................163 [ 3.3.6.2.5.2 ] De regreso a Leibniz y a Heráclito: Física de Procesos......................................................168 [ 3.3.6.2.5.3 ] Formalismos informáticos fútiles..........................................................................................172 [ 3.3.7 ] Consideraciones finales.............................................................................................................................174 [ 3.3.7.1 ] Los números reales son irreales - argumentos físicos y matemáticos en contra del continuo...........174 [ 3.4 ] Modelos ejecutables................................................................................................................178 [ 3.4.1 ] [ 3.4.2 ] [ 3.4.3 ] [ 3.4.4 ] Concepto de Programa, Modelo Ejecutable, y Simulación........................................................................178 Ventajas y desventajas de los Modelos Ejecutables / Simulaciones.........................................................181 Limitaciones fácticas de los modelos ejecutables......................................................................................183 Objetos y Procesos....................................................................................................................................184 [ 3.5 ] Modelado en Ingeniería...........................................................................................................185 [ 3.5.1 ] Consideraciones iniciales...........................................................................................................................185 [ 3.5.2 ] Consideraciones finales.............................................................................................................................186 [ 3.6 ] Resumen....................................................................................................................................187 [ 3.7 ] Conclusiones................................................................................ ............................................196 [ 4 ] EVOLUCIÓN HISTÓRICA DE LA ELECTRÓNICA..........................................................207 [ 4.1 ] Sinopsis del desarrollo electrónico (1970-2000)..................................................................208 [ 4.1.1 ] Década de 1970 ........................................................................................................................................208 [ 4.1.2 ] Década de 1980 ........................................................................................................................................209 [ 4.1.3 ] Década de 1990 ........................................................................................................................................211 [ 4.2 ] Sinopsis de la fabricación de circuitos integrados..............................................................213 [ 4.2.1 ] Tendencias históricas y proyecciones........................................................................................................213 [ 4.2.2 ] Dificultades actuales y desafíos futuros.....................................................................................................215 [ 4.3 ] Sinopsis de la evolución estructural de las herramientas informáticas para diseño electrónico.......................................................................................................... ..................................218 [ 4.3.1 ] [ 4.3.2 ] [ 4.3.3 ] [ 4.3.4 ] [ 4.3.5 ] Herramientas CAD independientes............................................................................................................219 Entornos de herramientas CAD integradas................................................................................................219 Entornos de herramientas CAD integradas, abiertos y flexibles................................................................220 Estándares para intercambio de información entre herramientas CAD.....................................................221 Clasificación abstracta de herramientas CAD............................................................................................222 [ 4.4 ] Presentación de la problemática y desafíos del diseño actual de sistemas electrónicos complejos..............................................................................................................................................222 [ 4.4.1 ] [ 4.4.2 ] [ 4.4.3 ] [ 4.4.4 ] [ 4.4.5 ] Complejidad y Sistemas.............................................................................................................................222 Abstracciones adecuadas..........................................................................................................................224 Sistemas embebidos heterogéneos...........................................................................................................229 Sistemas electrónicos analógicos..............................................................................................................231 Aspectos externos......................................................................................................................................233 [ 4.5 ] Resumen....................................................................................................................................233 [ 5 ] DISEÑO DE SISTEMAS ELECTRÓNICOS COMPLEJOS .............................................239 [ 5.1 ] Introducción.................................................................................................................. ............239 [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos.............................241 [ 5.2.1 ] Especificación del sistema.........................................................................................................................244 [ 5.2.2 ] Procesos de síntesis s1,2...........................................................................................................................245 [ 5.2.2.1 ] Captura de especificaciones...............................................................................................................245 [ 5.2.3 ] Modelo del sistema: el prototipo virtual......................................................................................................247 [ 5.2.4 ] Procesos de síntesis s2,3...........................................................................................................................252 [ 5.2.4.1 ] Exploración del Espacio de Diseño.....................................................................................................253 [ 5.2.4.2 ] Partición en modelos de módulos ‘hardware’ y ‘software’ - mapeo función → arquitectura................253 [ 5.2.5 ] Modelos de módulos ‘hardware’ y ‘software’: el prototipo virtual diferenciado...........................................255 [ 5.2.6 ] Procesos de síntesis s3,4...........................................................................................................................257 [ 5.2.6.1 ] Síntesis de módulos ‘hardware’..........................................................................................................258 [ 5.2.6.1.1 ] Descripción comportamental/funcional de módulos ‘hardware’..................................................260 [ 5.2.6.1.2 ] Síntesis comportamental s3,4 A..................................................................................................262 [ 5.2.6.1.3 ] Descripción RT............................................................................................................................265 [ 5.2.6.1.4 ] Síntesis RT - lógica s3,4 B..........................................................................................................268 [ 5.2.6.1.5 ] Descripción lógica.......................................................................................................................269 [ 5.2.6.1.6 ] Síntesis lógica - física s3,4 C......................................................................................................269 [ 5.2.6.1.7 ] Descripción física........................................................................................................................270 [ 5.2.6.1.8 ] Procesos de manufactura y configuración s4,5...........................................................................272 [ 5.2.6.1.9 ] Implementación física..................................................................................................................273 [ 5.2.6.1.10 ] Análisis: Validación / Verificación / Retroanotación...................................................................274 [ 5.2.6.2 ] Síntesis de módulos ‘software’............................................................................................................279 [ 5.2.6.2.1 ] Consideraciones iniciales............................................................................................................280 [ 5.2.6.2.1.1 ] Modelos de módulos ‘software’ y programas.......................................................................280 [ 5.2.6.2.1.2 ] Generación e Interpretación................................................................................................282 [ 5.2.6.2.1.3 ] Precisiones respecto a los términos ‘síntesis’ y ‘compilación’.............................................285 [ 5.2.6.2.2 ] Descripción comportamental/funcional en lenguaje de alto nivel (HLL)......................................286 [ 5.2.6.2.3 ] Preprocesamiento, Compilación, y Optimación...........................................................................289 [ 5.2.6.2.4 ] Descripción de secuencias de microinstrucciones en lenguaje ensamblador (LLL)...................293 [ 5.2.6.2.5 ] Ensamblado y Enlazado estático................................................................................................295 [ 5.2.6.2.6 ] Descripción de secuencias de código de máquina binario (ML).................................................297 [ 5.2.6.2.7 ] Carga, Enlazado dinámico, y Ejecución......................................................................................298 [ 5.2.6.2.8 ] Intérprete físico: Procesador de silicio.........................................................................................299 [ 5.2.6.2.9 ] Análisis: Validación / Verificación / Depuración...........................................................................299 [ 5.2.6.2.9.1 ] Optimación / Auditoría y Perfil de Desempeño....................................................................299 [ 5.2.6.2.9.2 ] Herramientas de depuración tradicionales..........................................................................305 [ 5.2.6.2.9.3 ] Análisis según nivel de abstracción.....................................................................................313 [ 5.2.6.2.10 ] Consideraciones finales............................................................................................................315 [ 5.2.6.2.10.1 ] Características de la programación de sistemas embebidos............................................316 [ 5.2.6.2.10.2 ] Requerimientos para la síntesis de programación embebida............................................320 [ 5.2.6.3 ] Síntesis de interfases y sistemas operativos......................................................................................321 [ 5.2.6.3.1 ] Interfases ‘hardware-hardware’: conexiones eléctricas y lógica de transducción.......................323 [ 5.2.6.3.2 ] Interfases ‘hardware-software’: administradores de dispositivos................................................324 [ 5.2.6.3.3 ] Interfases ‘software-software’: comunicación/sincronización de tareas/procesos......................324 [ 5.2.6.3.4 ] Sistemas Operativos (OS) como interfases ‘hardware-software’ y ‘software-software’..............326 [ 5.2.6.3.5 ] Sistemas Operativos de Tiempo Real (RTOS)............................................................................335 [ 5.2.7 ] Módulos ‘hardware’ y ‘software’: el prototipo realizable.............................................................................342 [ 5.2.8 ] Procesos de síntesis s4,5...........................................................................................................................342 [ 5.2.8.1 ] Traducción de descripciones, documentación, realización.................................................................342 [ 5.2.9 ] Implementación del sistema.......................................................................................................................343 [ 5.2.10 ] Análisis: Validación / Verificación.............................................................................................................343 [ 5.2.10.1 ] Análisis a5,4......................................................................................................................................344 [ 5.2.10.2 ] Análisis a4,3......................................................................................................................................344 [ 5.2.10.3 ] Análisis a3,2......................................................................................................................................345 [ 5.2.10.4 ] Análisis a2,1......................................................................................................................................345 [ 5.2.10.5 ] Análisis formal...................................................................................................................................345 [ 5.3 ] Refinamiento del esquema abstracto de diseño electrónico: Plataformas de Diseño....351 [ 5.3.1 ] Concepto de Plataforma de Diseño............................................................................................................351 [ 5.3.2 ] Plataformas de Diseño de Sistemas Electrónicos Complejos....................................................................357 [ 5.4 ] Metodologías de Diseño por Refinamiento...........................................................................363 [ 5.4.1 ] [ 5.4.2 ] [ 5.4.3 ] [ 5.4.4 ] Diseño en base a Modelos.........................................................................................................................364 Diseño en base a Plataformas...................................................................................................................364 Diseño en base a Interfases.......................................................................................................................365 Diseño en base a Actores..........................................................................................................................367 [ 5.5 ] Modelos de Cómputo y Lenguajes de Programación..........................................................369 [ 5.5.1 ] Ejemplos de modos de cómputo................................................................................................................370 [ 5.5.1.1 ] Secuencial (VN, Von Neumann).........................................................................................................370 [ 5.5.1.2 ] Tiempo Continuo (CT, ‘Continuous Time’)..........................................................................................371 [ 5.5.1.3 ] Máquinas de Estados Finitas (FSM, ‘Finite State Machines’).............................................................371 [ 5.5.1.4 ] Redes de Procesos (‘Process Networks’)...........................................................................................372 [ 5.5.1.5 ] Redes de Procesos de Kahn y Redes de Flujo de Datos (KPN, ‘Kahn Process Networks’; DPN, ‘Dataflow Process Networks’)..........................................................................................................................372 [ 5.5.1.6 ] Redes de Petri (‘Petri Nets’; CPN, ‘Coloured Petri Nets’)...................................................................372 [ 5.5.1.7 ] Eventos Discretos (‘Discrete Events’).................................................................................................373 [ 5.5.1.8 ] Disparo por Tiempo (TT, ‘Time - Triggered’).......................................................................................373 [ 5.5.1.9 ] Síncrono / Reactivo (SR, ‘Synchronous / Reactive’)...........................................................................374 [ 5.5.1.10 ] Punto de encuentro (‘Rendezvous’); Procesos Secuenciales Comunicantes (CSP, ‘Communicating Sequential Processes’)....................................................................................................................................374 [ 5.5.2 ] Composición de Modelos de Cómputo.......................................................................................................375 [ 5.5.3 ] Lenguajes de Programación, Integración, y Coordinación.........................................................................376 [ 5.6 ] Codiseño ‘software’ - ’hardware’........................................................................................ ....378 [ 5.6.1 ] Filosofía de codiseño – concepto, hipótesis, y objetivos............................................................................379 [ 5.6.1.1 ] Concepto.............................................................................................................................................380 [ 5.6.1.2 ] Hipótesis.............................................................................................................................................380 [ 5.6.1.3 ] Objetivo...............................................................................................................................................380 [ 5.6.2 ] Aspectos operativos y de investigación......................................................................................................381 [ 5.6.2.1 ] Requerimientos para un entorno de codiseño....................................................................................381 [ 5.6.2.2 ] Categorías de codiseño / Esquemas de codiseño..............................................................................382 [ 5.6.2.3 ] Aspectos claves del proceso de codiseño..........................................................................................383 [ 5.6.2.3.1 ] Modelado del sistema..................................................................................................................383 [ 5.6.2.3.2 ] Particionamiento ‘software’ - ‘hardware’ / Cosíntesis / Reutilización de componentes IP...........383 [ 5.6.2.3.3 ] Cosimulación / Codepuración......................................................................................................385 [ 5.7 ] Resumen....................................................................................................................................386 [ 5.8 ] Conclusiones................................................................................ ............................................388 [ 6 ] REFERENCIAS...................................................................................................................391 ÍNDICE DE FIGURAS Fig. 2.1: Esquema de diseño en ingeniería ([Dix79], p. 20).................................................................................................57 Fig. 2.2: Esquema del proceso de diseño en ingeniería electrónica ([Ras00], p. 13) ........................................................59 Fig. 2.3: Proceso de diseño en ingeniería eléctrica ([HBEED], p. 4)...................................................................................62 Fig. 2.4: ‘Celda de diseño’: ciclo de diseño elemental.........................................................................................................64 Fig. 2.5: El proceso de diseño como ‘fractal’ de ‘celdas de diseño’....................................................................................65 Fig. 2.6: Fases descendente y ascendente de un ciclo del proceso de diseño, en situación de conocimiento y tecnología inmaduros. (Adaptado de [TTOV98], p. 24.)...........................................................................................................75 Fig. 2.7: Proceso de diseño asistido con herramientas de diseño ‘ascendente’, y costo del diseño, en función del tiempo. ................................................................................................................................................................................76 Fig. 2.8: Proceso de diseño formalizado y asistido por herramientas de diseño ‘descendente’ y ‘ascendente’.................77 Fig. 2.9: Teorías de diseño a partir de estrategias ascendente y descendente (adaptado de [Zen02], p. 2)......................79 Fig. 2.10: Entidad y Concepto de Entidad; Teoría General del Diseño – Yoshikawa (1981) ([Zen02], p. 20).....................80 Fig. 2.11: Ejemplo trivial de ‘espacio de diseño’..................................................................................................................86 Fig. 2.12: ‘Conjunto solución’ dentro del ‘espacio de diseño’..............................................................................................87 Fig. 2.13: ‘Conjunto solución’ factible, en el ‘espacio de diseño real’..................................................................................88 Fig. 2.14: ‘Pirámide de abstracción’.....................................................................................................................................92 Fig. 2.15: Alternativas de implementación para la especificación dada, y alternativas de especificación para la implementación dada..............................................................................................................................................93 Fig. 3.1: Correspondencia entre un Sistema Axiomático Formal y el autómata de Turing................................................137 Fig. 3.2: Analogía entre la Teoría de Información Algorítmica (AIT), el Método Científico, y la formulación ‘computacional’ de los Sistemas Axiomáticos Formales tipo Frege-Hilbert, respecto de la complejidad algorítmica de la información de salida (su compresibilidad en la información de entrada)............................................................147 Fig. 3.3: Ecuación Diofantina Ordinaria Universal; representación del autómata de Turing, o el computador universal. .161 Fig. 3.4: Ecuación Diofantina Exponencial de Chaitin (1987). Sus soluciones varían de una cantidad finita a infinita, según el n - ésimo bit de Ω sea 0 o 1...................................................................................................................162 Fig. 3.5: Representación gráfica de la limitación Gödeliana de los sistemas sintácticos auto-referentes, desde la perspectiva de la Teoría de Información Algorítmica de Chaitin. La ‘frontera de Gödel’ confina aquellos objetos cuya estructura permite describirlos en forma concisa en término de los axiomas y reglas de inferencia del sistema axiomático formal. Las reglas del sistema no permiten acceso a objetos allende la ‘frontera de Gödel’, los cuales pueden ser alcanzado sólo mediante meta-reglas (o la ampliación de la base axiomática). Estos objetos son algorítmicamente aleatorios respecto del sistema axiomático formal en cuestión. (Adaptado de [Cah03], p.12; Fig. 2)............................................................................................................................................170 Fig. 3.6: Visión de los sistemas sintácticos desde la perspectiva de la Física de Procesos de Cahill y Klinger. Los sistemas sintácticos serían inducidos por el sistema semántico auto-referente, en virtud de la percepción de estructuras inducidas por el proceso estocástico, amenas al tratamiento mediante sistemas formales. (Adaptado y simplificado de [Cah03], p. 14; Fig. 2)................................................................................................................171 Fig. 4.1: Datos de la Tabla 4.1 aproximados por un modelo exponencial (recuadro interno de la gráfica).......................214 Fig. 4.2: Datos de la Tabla 4.1 y la Tabla 4.2, aproximados por modelos exponenciales (recuadros internos de la gráfica) ..............................................................................................................................................................................215 Fig. 4.3: Evolución de la estructura de las herramientas CAD y su interoperabilidad (cuadro 1). Herramientas independientes. Requieren interfases ad hoc para intercambio de información (Adaptado de [TTOV98], p. 8)..219 Fig. 4.4: Evolución de la estructura de las herramientas CAD y su interoperabilidad (cuadro 2). Entornos CAD Integrados. Herramientas comparten Base de Datos e Interfaz de Usuario (Adaptado de [TTOV98], p. 8)...........................220 Fig. 4.5: Evolución de la estructura de las herramientas CAD y su interoperabilidad (cuadro 3). Entornos CAD Integrados, Flexibles y Abiertos. Herramientas comparten Base de Datos e Interfaz de Usuario, y se dispone de facilidades para integrar nuevas herramientas y mecanismos de gestión del flujo de diseño (Adaptado de [TTOV98], p. 8). ..............................................................................................................................................................................220 Fig. 4.6: Evolución de la estructura de las herramientas CAD y su interoperabilidad (cuadro 4). Estándares Electrónicos, Informáticos, Mecánicos. Herramientas independientes, especializadas, comparten información en base a estándares electrónicos, informáticos, mecánicos, etc. de dominio público (Adaptado de [TTOV98], p. 8)........221 Fig. 5.1: ‘Celda de Diseño’ (ver sección 2.1.1.4, Fig. 2.4).................................................................................................241 Fig. 5.2: Expansión ‘fractálica’ del proceso de diseño en términos de la ‘celda de diseño’ de la Fig. 5.1 (ver sección 2.1.1.4, Fig. 2.5). Nótese a la ‘celda de diseño’ representando tanto al proceso de diseño ‘completo’ como a cualquier etapa intermedia, y a su vez, la consideración de esa etapa cualquiera como un proceso de diseño ‘completo’..............................................................................................................................................................242 Fig. 5.3: Esquema abstracto del proceso de diseño electrónico actual, en términos de la ‘celda de diseño’ de la Fig. 2.5 y su ‘expansión fractálica’ de la Fig. 5.2 (o las respectivas figuras 2.4 y 2.5 en la sección 2.1.1.4). Adviértase que la terminología que figura en el esquema es empleada por diferentes culturas y grupos de diseño con significados que no necesariamente se corresponden entre sí, ni con el que les asigna el presente documento. ..............................................................................................................................................................................243 Fig. 5.4: ‘Esquema Y’ de evaluación de arquitecturas programables para diferentes aplicaciones, adaptado a la evaluación de arquitecturas para el prototipo virtual (Adaptado de [LSS98], p. 3; [LWDV99], p. 182, y otros).. .255 Fig. 5.5: Esquema del proceso de síntesis de ‘hardware’. Los niveles de abstracción designados “descripción comportamental y/o funcional”, “descripción RT”, “descripción lógica”, “descripción física”, y los procesos etiquetados s3,4 A ... s3,4 C y a4,3 A ... a4,3 C (enmarcados en la zona rectangular al centro del esquema) constituyen un refinamiento entre los niveles 3 (“modelos de módulos”, o “prototipo virtual diferenciado”) y 4 (“módulos”, o “prototipo realizable”) del esquema de la Fig. 5.3. A diferencia de estos, el nivel designado “implementación física” se corresponde con el nivel 5 (“implementación”) de la Fig. 5.3, y los procesos asociados s4,5 y a5,4, con sus homónimos en la referida figura.........................................................................259 Fig. 5.6: Descripción VHDL funcional de una puerta OR (líneas 11 a 17). Nótese en la linea 13 la concurrencia explícita entre las señales A y B, y en la línea 15 la temporización explícita de la señal Z, típicas construcciones de un lenguaje orientado a la descripción de ‘hardware’. Esta descripción puede también considerarse comportamental, puesto que establece el comportamiento de la entidad, independientemente que esta ejecute una función en el sentido tradicional.....................................................................................................................261 Fig. 5.7: Modelo abstracto de la arquitectura RT de un procesador digital (adaptado de [TTOV98], p. 198) que no explicita la señal de reloj suministrada a ambas unidades...................................................................................266 Fig. 5.8: Esquema arquitectural RT (arquitectura RT objetivo) de la herramienta HLS ‘HYPER’, de Berkeley (adaptado de [CCGLPSV99], Figura 5.23, p. 227).....................................................................................................................267 Fig. 5.9: Esquema de la máquina secuencial síncrona de Huffman (adaptado de [TTOV98],FIGURA 4-9, p. 197).........268 Fig. 5.10: Geometría de un flip-flop estático, tipo D, sin controles de establecer (‘set’) y restablecer (‘reset’), que requiere dos fases de reloj complementarias (Eshraghian). La tecnología de fabricación objetivo es CMOS escalable (SCMOS, de MOSIS) de dos capas metálicas (escala λ=0.8, para tecnologías obsoletas de un ancho mínimo de canal de 1.5 μ). La topología es de típica celda lógica CMOS, organizada entre líneas de alimentación y tierra, con conexiones entre celdas mediante canales de cableado por encima de la fila de celdas ([Tew96], s. 4, pp. 6-8)..........................................................................................................................................271 Fig. 5.11: Vista 3D de la geometría de un circuito generador de fases de reloj complementarias, constituido por dos inversores CMOS. Obsérvese la disposición de capas en sentido vertical, y las vías de interconexión entre estas. ..............................................................................................................................................................................271 Fig. 5.12: Topografía de un registro de desplazamiento, constituido en base a las celdas representadas en las figuras 5.10 (8 instancias) y 5.11 (1 instancia). Obsérvese el área requerida por las interconexiones para la tecnología de 2 capas de metal seleccionada........................................................................................................................272 Fig. 5.13: Simulación dirigida por eventos, típica de simuladores HDL (adaptada de [TTOV98], FIGURA 2-3, p.41). La etiqueta (‘tag’) que es asignada a los eventos señala el instante de tiempo en el cual el evento se produce (‘timestamp’).........................................................................................................................................................278 Fig. 5.14: Esquema del proceso de síntesis de módulos ‘software’. Los niveles de abstracción designados “descripción comportamental y/o funcional”, “descripción en secuencias de microinstrucciones”, “descripción en secuencias de código de máquina (binario)”, y los procesos etiquetados s3,4 A, s3,4 B, a4,3 A, y a4,3 B (enmarcados en la zona rectangular al centro del esquema) constituyen un refinamiento entre los niveles 3 (“modelos de módulos”, o “prototipo virtual diferenciado”) y 4 (“módulos”, o “prototipo realizable”) del esquema de la Fig. 5.3. A diferencia de estos, el nivel designado “intérprete físico” se corresponde con el nivel 5 (“implementación”) de la Fig. 5.3, y los procesos asociados s4,5 y a5,4, con sus homónimos en la referida figura....................................................280 Fig. 5.15: Árbol de derivación (‘parse - tree’) de una cadena de símbolos terminal en un lenguaje formal. Este tipo de grafo suele emplearse como formato intermedio en herramientas de compilación/síntesis de descripciones HLL/HDL, y es sobre el cual generalmente se efectúan las tareas de optimación..............................................291 Fig. 5.16: Esquema de procesos, hilos (‘threads’) y subprocesos o procesos livianos (lwp, ‘light-weight processes’) a nivel de aplicaciones de usuario, e hilos del núcleo (‘kernel threads’) en un sistema operativo Solaris ([Sun02], pp. 9-11)................................................................................................................................................328 Fig. 5.17: Inversión de prioridades. La tarea A, de mayor prioridad que la B, se bloquea esperando un recurso adquirido previamente por B, por lo cual el sistema se comporta como si se hubiesen invertido las prioridades preestablecidas entre las tareas A y B (adaptado de [Edw02], p. 31). El ejemplo muestra además que ello puede ocasionar que se viole el período de expiración de la tarea A.............................................................................340 Fig. 5.18: Las dos dimensiones posibles de reutilización de componentes ‘hardware’ y ’software’ de un sistema: tiempo y espacio..................................................................................................................................................................352 Fig. 5.19: Espacio de Aplicaciones y Espacio de Arquitecturas (plataforma ‘hardware’). La plataforma ‘hardware’ soporta las aplicaciones a diferente costo dependiendo de la instancia particular de la plataforma que se implemente. 353 Fig. 5.20: Pirámide de abstracción (ver Fig. 2.14). Exploración descendente del espacio de diseño determinado por la plataforma ‘hardware’, que busca minimizar el coste (en sentido amplio del término) de la implementación resultante (una arquitectura de la familia que representa la plataforma, la instancia I0; ver Fig. 5.19)...............354 Fig. 5.21: Esquema semejante a un ‘reloj de arena’ que resulta del empleo de una plataforma de sistema en el proceso de diseño. La plataforma ‘software’ o Interfaz de Programas de Aplicación (API) presenta la plataforma ‘hardware’ a las aplicaciones como si estuviese constituida por una única arquitectura. Esto permite desacoplar el proceso de mapeo de la aplicación sobre la ‘plataforma del sistema’ de la implementación de las posibles instancias arquitecturales de la plataforma ‘hardware’ subyacente (adaptado de [FS99], p. 8)..........................356 Fig. 5.22: Generalización de Lee et al del concepto de plataforma introducido por Sangiovanni-Vincentelli et al (ver Fig. 5.21). Con la definición de plataforma como conjunto de diseños, las flechas del esquema - que representan los procesos de mapeo que llevan de una plataforma a la subyacente - resultan relaciones entre conjuntos, lo cual habilita a formalizar la estructura del proceso de diseño, independientemente de la semántica (adaptado de [LNW02], p. 5).......................................................................................................................................................358 Fig. 5.23: Plataformas de diseño de sistemas electrónicos (adaptado de [LNW02], p. 6; fig. 3). Este esquema sintetiza en forma visual el contenido de la sección 5.2, aplicando los conceptos presentados en la sección 5.3: es un refinamiento del esquema abstracto de diseño de sistemas electrónicos (ver Fig. 5.3) que detalla los niveles de abstracción del diseño de sistemas electrónicos de actualidad, mediante ejemplos de aplicación de algunos lenguajes de descripción y herramientas de diseño pertinentes a cada nivel, y aplicables entre diferentes niveles. ..............................................................................................................................................................................359 Fig. 5.24: Relación entre la estructura abstracta del proceso de diseño de sistemas electrónicos (Fig. 5.3) y las plataformas de diseño de sistemas electrónicos (Fig. 5.23).................................................................................360 Fig. 5.25: Dimensiones Abstracción - Tiempo del Proceso de Diseño: relación entre los niveles de abstracción del proceso de diseño (Fig. 5.3) y el desarrollo temporal del proceso de diseño (en un encare descendente; Fig. 2.8) ..............................................................................................................................................................................363 Fig. 5.26: Diseño en base a interfases: separación de la comunicación y el comportamiento ([RS97], p. 1, fig. 1)........365 Fig. 5.27: Ejemplo de un posible método de refinamiento de la comunicación entre dos entidades del diseño, un emisor y un receptor ([RS97], p. 2, fig. 2)............................................................................................................................366 Fig. 5.28: Sintaxis abstracta y abstracción jerárquica del diseño en base a actores........................................................368 Fig. 5.29: Diferencias entre componentes orientados a objetos y actores (Adaptado de [Lee03], p. 2, fig. 2). Nótese la clara orientación a procesos (ver sección 3.4.4) de estos últimos.......................................................................368 Fig. 5.30: Sustrato de modelado integrado en un proceso de codiseño. .........................................................................382 ÍNDICE DE TABLAS Tabla 2.1: Fases del proceso de diseño en ingeniería [Dix79] (ver Fig. 2.1)......................................................................58 Tabla 2.2: Evolución de las teorías axiomáticas de diseño ([Zen02], p. 23).......................................................................82 Tabla 3.1: Método diagonal para la demostración de existencia de un número real R incomputable (Turing).................138 Tabla 4.1: Proyección de desarrollo tecnológico de semiconductores – SIA 1999...........................................................214 Tabla 4.2: Proyección de desarrollo tecnológico de semiconductores – SIA 2001...........................................................214 PRÓLOGO Este documento, “Diseño de Sistemas Electrónicos Complejos”, es mi memoria para la obtención del título de grado correspondiente a la carrera de Ingeniería en Electrónica, cursada durante el período 1997 - 2001 en la Facultad de Ingeniería de la Universidad Católica del Uruguay2. El presente Prólogo se ha estructurado en secciones, donde se presentan: • las motivaciones que me impulsaron a adoptar el tema de estudio; • los objetivos que persigue el trabajo; • la organización del material; • algunas aclaraciones sobre decisiones y estilos de redacción, tipografía y notaciones que se usan en el documento, y su formato de presentación; • los agradecimientos pertinentes. Naturalmente, puede evitarse este Prólogo, y dirigirse directamente a la Introducción, sin perder información relevante para la comprensión del tema central del trabajo. G.S. AGOSTO DE 2006. MOTIVACIONES Al momento de iniciar los cursos correspondientes al último año (2001) de la carrera de ingeniería electrónica, los procesos de diseño e implementación de sistemas electrónicos que como estudiante estaba acostumbrado a seguir, eran básicamente guiados por una sensata aplicación del ‘sentido común’, educado por los estudios realizados hasta entonces3. La expresión ‘metodología de diseño’ era una mera voz formal y compacta con la cual podía referirme elegantemente a cualquier serie de procedimientos empleada para el diseño de circuitos electrónicos, serie establecida en cada caso a partir del conjunto de procedimientos aprendidos independientemente en cursos previos, y dictada por el educado sentido común referido. Sofisticaciones tales como técnicas de verificación y depuración, tolerancia a fallas, reutilización, y documentación de los sistemas, parecían cuestiones concernientes al ámbito profesional, y de hecho no habían constituido requerimientos para los diseños realizados en forma curricular, dada su función estrictamente académica. Consecuentemente, por extrapolación de los resultados exitosos obtenidos hasta ese entonces en casos relativamente sencillos, me sentía proclive a pensar que la capacidad humana era suficiente para soportar la abstracción de los procesos de diseño e implementación también en el ámbito profesional, y que simplemente en éste se manejaba un conjunto más amplio de procedimientos de los cuales poder elegir para la tarea de diseño, mediante ejercicio de un ‘sentido común’ cada vez más educado y experimentado. En marzo de 2001, estimulados y apoyados por MSc. M. Burgos y por Dr. R. Suárez 4, nuestro grupo universitario asistió al curso ‘Interfacing Microsystems’, brindado por el Proyecto Iberchip [Iber01]. En este seminario se presentó la actual tendencia de integración de elementos ópticos y mecánicos directamente en las pastillas de los circuitos integrados, y los 2 Actualmente, Facultad de Ingeniería y Tecnologías de la Universidad Católica del Uruguay. 3 Este ‘sentido común educado‘ es el que Dixon denomina, muy acertadamente, ‘sentido de la ingeniería’ ([Dix79], p. 186). Este puede diferenciarse drásticamente del ‘sentido común’ usual, en el sentido que este último no siempre devuelve respuestas razonables: a modo de ejemplo palmario, Dixon observa que el ‘sentido común’ indicaría que el mundo es plano. Podría extenderse esta denominación de Dixon a un ‘sentido de la ciencia’, en general, como el aplicado por Galileo pese a la sensación geoestacionaria, o Einstein frente a la concepción de tiempo absoluto e independiente del espacio, que parece conferir el ‘sentido común’. 4 A la fecha de redacción de estas motivaciones, profesor de la Facultad de Ingeniería de la Universidad Católica del Uruguay, y Director de las carreras de Ingeniería en Electrónica e Ingeniería en Telecomunicaciones de la Universidad Católica del Uruguay. desafíos de diseño y verificación que conlleva la conformación de tales ‘microsistemas’ de alta complejidad. En ese contexto de microsistemas complicados, por vez primera adquirí conciencia de la existencia, utilidad y necesidad de metodologías y herramientas formales de diseño5, probada la incapacidad humana ante los niveles de complejidad presentados por estos microsistemas. No obstante, tales formalismos metodológicos y sus herramientas asociadas eran - desde mi perspectiva en ese momento - circunscritos al ámbito específico de diseño de circuitos integrados de alta escala de integración. Y por lo tanto, parecía que quedaba lugar para continuar la aplicación de métodos de diseño manuales y no del todo formales a los sistemas electrónicos de escala ‘macroscópica’ a los que estaba acostumbrado, cuya complejidad comparativa con los ‘microsistemas’ era aparentemente pequeña - al menos como para no requerir formalismos estrictos ni herramientas especializadas de diseño. Poco tiempo después, sobre el fin de la etapa académica, y antes de comenzar esta memoria, fui invitado a participar en un proyecto impulsado por la Armada Nacional para modernizar sus sistemas de radares de navegación. Entre los varios objetivos de este proyecto figuraba la implementación de un prototipo de consola de operador que procesara digitalmente las señales de radar, objetivo particular para el cual se me convocaba. Acepté entusiasmado, y durante el período comprendido entre abril de 2001 y julio de 2002 colaboré activamente en el diseño de ese prototipo. Al inicio, mediante elementales consideraciones de disponibilidad comercial, flexibilidad, costo y confiabilidad, se decidió diseñar la consola a base de un computador convencional de calidad industrial, dotado de un convertidor analógico - digital adecuado, y ampliado en su capacidad de cálculo por módulos de procesadores de señales digitales. Sin embargo, al iniciarse la fase siguiente de selección de los equipos y subsistemas, hubo de admitirse la carencia de un procedimiento que asistiera al proceso de selección - por ejemplo, que permitiera estimar a priori la capacidad de cálculo necesaria, para determinar el tipo y cantidad de procesadores adicionales que se requerirían. El proceso de selección de equipos se vio adicionalmente complicado por el vencimiento de una partida presupuestal asignada al proyecto, por lo que en definitiva la elección debió efectuarse por exclusiva aplicación de ‘sentido común’, circunstancia que claramente evidenció las limitaciones inherentes al mismo. Con posterioridad a la selección, emergió el usual problema de no poder integrar automáticamente el modelo matemático inicial del sistema a las herramientas de programación de los equipos elegidos, lo que implicó que ello se debiera realizar en forma manual. Si bien esta era la forma usual de trabajo hasta entonces, la complejidad del caso probó la facilidad de generación y propagación de errores inherente a todo proceso manual. Y durante esta etapa, conforme se experimentaba la inconveniencia de la traslación de los modelos de uno a otro entorno de desarrollo, emergió adicionalmente la cuestión de cómo garantizar que el sistema cumpliría las especificaciones y expectativas proyectadas, apoyándose en una mínima serie de pruebas adecuadas - mínima, puesto que pruebas ‘de campo’ para un radar de navegación requieren navegar, al costo de zarpar una fragata. De modo que - a posteriori de lo visto en el seminario de microsistemas, y a posteriori de mi participación en el diseño de un sistema electrónico complejo6 - he debido asumir que la capacidad humana de abstracción para diseño e implementación de sistemas puede ser insuficiente inclusive en casos de sistemas electrónicos ‘macroscópicos. Superado cierto nivel de complejidad, es necesario asistir la capacidad de abstracción con procedimientos formales y sistemáticos, que a su vez requieren el conocimiento suficiente y la capacidad de uso eficiente de herramientas informáticas de diseño asistido por computador. He debido admitir que las tareas de diseño requieren más que ser una simple colección de procedimientos organizados por ‘sentido común’. En consecuencia, el haber asistido a un seminario sobre diseño e implementación de microsistemas, así como el haber participado en un proyecto de diseño de un sistema electrónico complejo donde pude experimentar la necesidad de contar con procedimientos y herramientas formales de diseño, la necesidad de comprender tales procedimientos, y la necesidad de saber manejar las herramientas correspondientes, 5 En particular metodologías de diseño al nivel de sistema, de tipo ‘descendente’, que con asistencia de herramientas automatizadas permiten ‘bajar’ de una descripción abstracta hasta niveles de implementación concreta de circuitos. 6 Diseño parcial; el proyecto debió suspenderse por motivos económicos en julio de 2002, a causa de la crisis financiera que se desató en Uruguay en esa fecha. constituyen las motivaciones principales para estudiar en esta memoria de grado el proceso actual de diseño e implementación de sistemas electrónicos complejos. No incidentalmente, la suspensión que en julio de 2002 truncara al mencionado proyecto antes de su finalización (a causa de la severa crisis financiera desatada en Uruguay en esa fecha) constituye una motivación complementaria para sintetizar, documentar y analizar retrospectivamente el trabajo realizado, desde la óptica de diseño de sistemas complejos que se busca presentar en esta memoria de grado. Es mi esperanza que en el futuro se pueda retomar el proyecto, particularmente por la significación que tiene la generación de desarrollos propios para países tecnológicamente segregados, como es el caso de Uruguay7. Espero que esta memoria implique un aporte útil en esa dirección, como marco teórico para una posible reprogramación del proyecto, y en ese caso, como referencia para quienes prosigan la tarea. Finalmente, y desde una perspectiva radicalmente distinta a las anteriores, también me motiva la idea de lograr con esta memoria una guía, que al nivel de estudiante de grado en ingeniería electrónica sirva como referencia introductora al amplísimo tópico de diseño de sistemas complejos. Como estudiante de grado percibo que la bibliografía referente al tema escapa largamente a mi nivel, y, por tanto, considero útil elaborar una guía que facilite establecer el nexo entre los conocimientos básicos adquiridos en facultad y el formidable y creciente cúmulo de información de actualidad. Naturalmente, este incesante crecimiento de la información no es novedad: desde el desarrollo de la escritura el conocimiento humano ha crecido en forma consistente, y la invención de la imprenta revolucionó la tasa de actualización de ese conocimiento hasta su actual forma exponencial, al punto que para mantenernos al frente de una hilera formada por todos los libros nuevos que se publican ¡deberíamos desplazarnos a 150 km/h! ([Haw02], p. 158). Si se desea que las nuevas generaciones puedan beneficiarse del rico patrimonio adquirido a lo largo de la historia de la humanidad, y se pretende además que sobre este generen nuevos conocimientos, no hay más opción que sintetizar in perpétuum la experiencia acumulada, puesto que de no hacerse, no habría tiempo para reconstruir y expandir los conocimientos sin prolongar o potenciar de alguna forma la vida humana ([Haw02], cap. 6). Con esto en consideración, el hecho que mi memoria de grado pueda contribuir al necesario proceso de síntesis continua del conocimiento – en el área de diseño de sistemas electrónicos, naturalmente - constituye un estímulo adicional para lanzarme al abordaje de tan dinámico y abstracto tema. OBJETIVOS, METAS, Y RESULTADOS ESPERADOS Este documento, “Diseño de Sistemas Electrónicos Complejos”, pretende presentar el actual panorama de diseño de sistemas electrónicos, a un nivel de estudiante de grado de ingeniería electrónica sin formación en ciencias computacionales. Es la intención de esta memoria de grado el coleccionar, seleccionar, ordenar, y estudiar adecuadamente la información concerniente a los procesos de diseño electrónico actuales, de forma de presentarla al estudiante de grado en electrónica en forma efectiva y comprensible, tal que guíe su acceso a los canales de información. Intenta así llenar un vacío detectado en el curso de la investigación bibliográfica, durante la cual no fueron hallados documentos a nivel de grado en ingeniería electrónica que no supusieran formación adecuada en ciencias de la computación. Este trabajo se basa en la firme convicción que la única opción viable para iniciar la comprensión de la filosofía de diseño electrónico actual, es centrarse en ciertos conceptos claves, a partir de los cuales la intuición y el sentido común - educados por el estudio permitan completar el panorama, obteniendo una visión global del espacio de diseño electrónico. El objeto no es, por tanto, describir ni estudiar flujos o herramientas de diseño electrónico particulares. El objeto es comprender las metodologías, su filosofía, sus mecanismos e implementaciones subyacentes, como única manera de sobrevivir a los rápidos ciclos de obsolescencia tecnológica, y la inundación de información concomitante. En esta búsqueda de comprensión conceptual no se requiere - ni se otorga - la capacidad para desarrollar metodologías o herramientas de diseño, y tampoco se supone u otorga el 7 Probablemente ‘auto - segregados’ por propia idiosincrasia, actitud que considero debe ser combatida hasta su reversión. Quizás el objetivo subyacente - y más importante - del mencionado proyecto, fuese precisamente un impulso en ese sentido. conocimiento o habilidad para el uso de herramienta alguna: se pretende únicamente comprender patrones de comportamiento, función, y utilidad, tal que permitan discernir posibles limitaciones de las metodologías o de las herramientas, generar formas de soslayar tales limitaciones, o manejarse ante una eventual carencia de metodologías o herramientas. ORGANIZACIÓN Y SINOPSIS DEL DOCUMENTO El presente documento se halla estructurado en dos partes. La primer parte, que comprende los capítulos 1 al 3, se dedica a establecer una noción de conceptos como ‘sistema’, ‘complejidad’, ‘diseño’, y ‘modelo’, así como la relación entre estos. La segunda parte, que comprende los capítulos 4 y 5, presenta los conceptos, metodologías, y herramientas que intervienen y/o asisten en los procesos de diseño de sistemas electrónicos complejos de actualidad. En el capítulo 1 se abordan las nociones de sistema y complejidad. Se hace hincapié en las limitaciones del reduccionismo en la ciencia contemporánea, en la línea de Von Bertalanffy, y se establece la noción de sistema complejo jerárquico - modular en la línea de Simon. El capítulo 2 presenta las nociones de proceso y producto de diseño en ingeniería. Inicialmente se adopta una perspectiva tradicional para describir los procesos de diseño en ingeniería, y luego se reforma esta visión mediante la noción de estrategias de diseño ascendente y descendente, y el concepto de espacio de diseño y sus técnicas de exploración y poda. Se establece que el proceso de diseño presenta una estructura de carácter fractálico, y se propone la estructura abstracta básica que le da forma, la celda de diseño. En sintonía con estos conceptos, se propone que el producto de un proceso de diseño es esencialmente inmaterial, constituido por un par de descripciones con ciertas características, lo cual permite identificarle como un modelo y a su vez relacionarle con el proceso de diseño que le dio origen. Se introduce la preocupación por el lenguaje de descripción de los modelos. El capítulo 3 se dedica a discutir la noción de modelo, donde el hincapié se hace en los modelos de tipo matemático y de tipo ejecutable (programas ejecutados en un computador). Un tema central en este capítulo lo constituye la presentación de las limitaciones meta - matemáticas de indecisión e incompletitud (Gödel), incomputabilidad y el problema de finalización (Turing) y la aleatoriedad algorítmica (Chaitin). Se discuten sus implicancias en el terreno de las matemáticas, la física contemporánea, y la ingeniería, particularmente en el área informática. El capítulo 4 expone la evolución histórica de los sistemas electrónicos, tomando como punto de partida la consecución del primer circuito integrado, avanzando hasta presentar las problemáticas y desafíos que enfrenta el diseño electrónico de actualidad en virtud de su evolución, y particularmente, su sinergia con el desarrollo informático. Se presta particular atención a los desafíos de diseño que presentan los designados sistemas embebidos, puesto que es el ejemplo de referencia para el siguiente capítulo. El capítulo 5 propone una estructura abstracta para enmarcar los procesos de diseño de sistemas electrónicos complejos, que permite describir y comprender tanto las metodologías de diseño tradicionales como las de actualidad. Se presenta la descripción de cada uno de sus niveles de abstracción, y de los procesos de síntesis y análisis que les relacionan. A la proposición y examen de esta estructura abstracta, sigue la presentación de su refinamiento en términos de los elementos concretos con los cuales puede ejecutarse un proceso de diseño, como lenguajes de programación y descripción de dispositivos electrónicos y herramientas de diseño asociadas. En el marco de las estructuras abstracta y concreta de diseño electrónico, se presentan conceptos recientemente elaborados en el área de las ciencias de la computación para aplicación al diseño electrónico, y las metodologías de diseño electrónico que este tipo de conceptos permite desarrollar. ACLARACIONES DEMOSTRACIONES En virtud del carácter introductor y de recopilación de este trabajo, no se hará en el mismo ningún tipo de demostración. El propósito es comprender la idea detrás de las propuestas y no las eventuales demostraciones de su validez lógica. Por tanto, en lugar de demostraciones formales, se desarrollarán - permítaseme el abuso del lenguaje - ‘mostraciones’, es decir, se presentarán argumentos que apelen a la intuición. Tales argumentos se basarán en la hipótesis que la formación del lector es al nivel de grado en ingeniería electrónica, o similar. No necesariamente se habrá comprendido - o siquiera leído - alguna demostración, ya sea porque la misma excede al nivel de comprensión, o bien por estar fuera del alcance pretendido para el trabajo. No obstante, en tales casos las fuentes donde encontrar las demostraciones serán debidamente referidas y, en lo posible, suministradas junto con este documento8. REFERENCIAS BIBLIOGRÁFICAS Con excepción de las referencias que remiten a libros o cursos, se dispone de copia electrónica de cada una de las restantes referencias bibliográficas citadas, la mayoría de las cuales fueron obtenidas de la red global Internet, desde sitios disponibles al público general9. Debido a la dinámica de este medio, es probable que las copias electrónicas de tales referencias sean reubicadas o eliminadas de los sitios de origen en el corto o mediano plazo, y por ello, en ciertos casos se ha optado por no proveer el enlace correspondiente. Asimismo, tampoco se provee el enlace en los casos no se ha registrado debidamente el origen de la referencia; estos casos corresponden mayormente a las referencias obtenidas mediante búsquedas genéricas y masivas en la red, y no en sitios universitarios o empresariales específicos. En virtud de lo anterior, se pretende entregar - en un disco compacto (‘CD’) junto con este documento - la copia electrónica de las referencias bibliográficas, estudiando para cada caso la forma de evitar incurrir en violaciones de los intereses o derechos de los autores o editores de las referencias en cuestión. NOTACIÓN Y TIPOGRAFÍA El ‘spanglish’, injuriante conmistión de las lenguas Española e Inglesa - impuesta merced a la connivencia del subdesarrollo y la dominación cultural contemporáneos - es una construcción que se intentará evitar con denuedo en este documento. Se hará el mayor esfuerzo para que en este trabajo no aparezcan inconsistencias idiomáticas como ‘codiseño software - hardware’10, sin poner en cuarentena tales abusos del lenguaje mediante adecuadas comillas como se indica en este preciso ejemplo, y aclarando su significado y el motivo que obliga a su uso en una correspondiente nota al pie. Entre las escasas justificaciones aceptables para este tipo de expresiones puede aducirse que, en muchos casos, la tal expresión es la forma empleada habitualmente en la literatura, y que una expresión en español equivalente y compacta es de difícil construcción, en virtud de la inevitable alegorización proveniente del ambiente informático, cuyo desarrollo - que anticipa al de la lengua - es además llevado a cabo mayoritariamente por personas de habla inglesa. No obstante, se intentará encontrar en cada caso una expresión en Español semánticamente equivalente, y se adjuntará la voz usual en la literatura como referencia. Al lector atento, que advertirá el eventual uso de voces latinas como a priori o in perpétuum sin justificaciones expresas ni aclaraciones complementarias, corresponde aclararle que tales expresiones son definidas en el diccionario de la Real Academia Española [RAE84], lo que valida sin más su inclusión en este texto. Su empleo en este documento obedece 8 Ver las aclaraciones sobre Referencias Bibliográficas en esta misma sección de Aclaraciones. 9 En algunos casos se han obtenido copias impresas de los documentos citados; las mismas fueron obtenidas mediante solicitud correspondiente a los sitios de origen en la red global Internet, y obtenidas vía correo postal ordinario, sin costo de recepción. 10 Expresión derivada de la voz inglesa ‘software - hardware codesign’, de aparición circa 1990 en la literatura. Indica diseño concurrente o simultáneo, al mismo nivel, e interactivo, de los dispositivos electrónicos programables y su programación asociada, donde los cambios en una parte influyen significativamente en la otra. El concepto es extensible a sistemas que integran componentes miniaturizados no tradicionales, como ser mecánicos, ópticos e inclusive biológicos. Nota adicional: Esta nota al pie sólo intenta ejemplificar el uso de aclaraciones, y no debe ser interpretada como explicación del concepto. La expresión en cuestión deberá quedar meridianamente clara en el desarrollo de este documento, o de lo contrario indicará en forma evidente que no se ha conseguido el objetivo de esta memoria. principalmente a funciones de énfasis, no respondiendo a razones de uso habitual en la literatura. CRITERIOS DE REDACCIÓN Se ha intentado ajustarse en este trabajo a una serie de criterios de redacción, con objeto de lograr una comunicación eficiente y al mismo tiempo amena. Estos criterios se han extraído de “El arte de redactar buenos informes técnicos” [Slo01], y se anotan a continuación: • Primero describa el problema: de a sus lectores la oportunidad de experimentarlo y eventualmente resolverlo. • Conozca a sus lectores: sea consciente de los supuestos que utiliza. • Conozca a sus lectores: los lectores no leerán materiales por encima de su nivel; muy pocos acudirán a otros textos para poder interpretar el suyo. Si el nivel del texto es muy inferior al de sus lectores, lo pasarán por alto. • Sea claro: si no puede expresar su idea en el reverso de una tarjeta personal, es que no tiene clara la idea. • Escriba oraciones cortas (menos de 25 palabras). Como regla, presente una idea en una oración. Ante la duda, use signos de puntuación: el punto separa ideas; la coma ordena la oración, cambia el sentido; el punto y coma relaciona frases fuertemente conectadas. • Sea breve. Simplifique las expresiones. • Use términos simples en aras de una comunicación más directa. Defina todos los términos. • Evite la ambigüedad; es preferible ser reiterativo. • No sea verborrágico, ni exagerado. No use expresiones débiles, doble negación, lenguaje vulgar, o jerga. • Use tercera persona, pero lenguaje activo; evite el uso de voz pasiva. • Conecte las frases: cuente una historia, no un conjunto de hechos. Seguramente, muchas partes de este documento no se ajustarán a la mayoría de los criterios precedentes - particularmente el referido a usar oraciones cortas. No obstante, se ha hecho el esfuerzo de ceñirse a estas directivas, para evitar que este documento resulte en una mera descarga apresurada de información, limitada a cumplir su finalidad académica en el menor plazo posible. Se busca con estos criterios que este documento sea efectivamente accedido por terceros lectores amen de quienes integren el tribunal examinador de esta memoria, y además, de forma tal que les resulte comprensible - no debe olvidarse que es tanto una motivación como un objetivo de esta memoria, el que reporte esa utilidad a nivel de grado en ingeniería electrónica. PRESENTACIÓN Es la intención el presentar una versión electrónica de este documento, en un disco compacto (‘CD’). Se prefiere para ello el formato pdf (‘Portable Document Format’) en virtud de la existencia de varias aplicaciones - disponible gratuitamente para varias combinaciones de plataformas y sistemas operativos - capaces de interpretar el formato referido. Estos lectores de archivos pdf proveen capacidades de exploración de documentos mediante ‘hiperenlaces’, es decir, referencias cruzadas en documentos de ‘hipertexto’ (texto con referencias cruzadas ‘activas’) y en algunos casos, índices y tablas de contenidos. Se pretende de esta forma proveer la posibilidad de navegación inmediata y cómoda entre los enlaces ‘activos’ internos o externos que se incluyen en el documento. Entre los enlaces internos del documento figuran las referencias cruzadas entre tablas, figuras, notas al pie, y secciones. Los enlaces denominados externos se refieren a direcciones de sitios en la red global Internet, direcciones de correo electrónico, y enlaces con otros documentos en formato electrónico que se incluyan en el disco compacto al que se refiere esta Presentación. De particular importancia se consideran los enlaces internos con las referencias bibliográficas. En un formato impreso (‘hardcopy’, en la literatura de habla inglesa) la constatación de cada referencia bibliográfica conforme se desarrolla la lectura resulta una tarea tediosa, puesto que las referencias se listan al final del documento, no en el punto donde se mencionan11. El ejercicio de búsqueda que implica la constatación de la referencia completa, a la larga resulta incómodo y constituye un factor de distracción, por lo cual solamente quien se encuentre decididamente interesado se tomará el trabajo de realizar la constatación de la referencia completa. Sin embargo, en formato electrónico - particularmente en el formato pdf escogido - este inconveniente se soslaya proveyendo enlaces internos a las referencias, y contando con los ágiles comandos de navegación provistos por la mayoría de los programas para saltar a la referencia, y retornar al punto de lectura sin ulteriores complicaciones ni fatiga. Consecuentemente, se busca con la pretendida presentación electrónica que este documento resulte en una guía efectiva al tema, suministrando inmediata y cómodamente el acceso a las referencias. 11 Se entiende aquí que no se incluye en el lugar donde se menciona la referencia a todos los datos correspondientes, es decir, no se inserta en el sitio a la referencia completa, sino sólo una mención a ella. Cabe aclarar que no se adopta en este documento el estilo de indicar las referencias en notas al pie de página, como es de uso en humanidades y ciencias sociales; se sigue el uso en ingeniería o actividades tecnológicas que ubican las referencias al fin del capítulo o al fin del documento. AGRADECIMIENTOS ACADÉMICOS Este trabajo, como cualquier otra memoria de grado o actividad académica, se beneficia directa o indirectamente, consciente o inconscientemente, de los innumerables e intangibles aportes de todo el cuerpo académico de la facultad, brindados desinteresadamente y a lo largo de los años de formación. A todos ellos, sin excepción, mi sincero reconocimiento. Es inevitable, sin embargo, que ciertos docentes del cuerpo académico hayan efectuado aportes significativos, y en forma directa. De hecho, son quienes han dejado una clara impronta en este documento. En particular, quiero agradecer profundamente al Dr. Suárez Ántola, al Prof. Mario Guerra, y al Ing. Carlos Zamalvide por haberme generado la curiosidad por los problemas filosóficos subyacentes a cualquier disciplina académica - ya sea de ingeniería o no - y haberme motivado y guiado para aproximarme a estos, y apreciar su verdadera relevancia y magnitud con el debido respeto. Hoy siento este invalorable aporte nada menos que como lo que permite diferenciar entre el mero ejercicio de una profesión estando inmerso y restringido en ella, de su consideración crítica en el contexto más amplio del conocimiento. También debo agradecer a MSc. Manuel Burgos, no solamente por haber ejercitado una paciencia casi infinita como tutor en este trabajo, sino por el apoyo moral y la motivación permanente a lo largo de todos estos años, y - lo más importante - por mostrarme la ingeniería electrónica desde una perspectiva hasta el momento insospechada por mí; me ha resultado más enriquecedor el trabajar en esta monografía que el haberme dedicado a elaborar un proyecto de fin de carrera más circunscrito a los aspectos tecnológicos, que perfectamente podré realizar como profesional. Finalmente, no puedo omitir mi más sincero agradecimiento al Prof. Pablo García, quien contribuyó de una manera decisiva a que yo pudiera romper con ciertos prejuicios que traía al momento de iniciar los cursos, en los cuales permanecería aún atascado, y que me hubieran impedido aprovechar adecuadamente todo cuanto me fue ofrecido a lo largo de estos años en la facultad. PERSONALES Quiero agradecer a mi pareja, mi familia, y mis amigos, por todas las angustias, críticas, y preocupaciones que han enmarcado estos cuatro años que - egocéntricamente - he dedicado a satisfacer mi interés. Estoy en deuda con mis padres, mi hermana, tíos, primos, y abuelos - los que viven, y los que permanecen vivos en mi memoria. Estoy en deuda con mis amigas y amigos. Estoy en deuda con Lilián, con Fernando y, fundamentalmente, con Isabel. He recibido de todos, de una u otra forma, la muestra suprema del afecto; el regalo más valioso que se puede recibir: su tiempo, conmigo. A todos: ¡Gracias! “La mayoría de los errores realmente importantes se comete el primer día” Eberhard Rechting, ‘Systems A rchitecting’, 1991. INTRODUCCIÓN Omitiendo las indispensables consideraciones de tipo ecológico, social, y ético que debieran pautar las acciones y omisiones de la humanidad - la necesidad de mantener el hábitat, las fuentes de aire y agua potables, alimentos, energía, servicios de salud, estabilidad política, etc. - la irresponsable tenaza económica actual constriñe al conjunto de las actividades humanas, en pos de un desarrollo de dudosa significación, pero de indudable riesgo. Ante una sociedad fuertemente dependiente de la tecnología para mantener la estructura social civilizada, el afán económico incide particular y nefastamente en los tiempos de investigación, desarrollo y producción de tecnología, ocasionando - entre otras adversidades una carrera tecnológica desenfrenada. El ciclo de realimentación así creado entre avances científico-tecnológicos y demanda tecnológica, registra períodos cada vez más cortos, y en el caso particular del desarrollo electrónico, sigue un ritmo exponencial declarado tempranamente en 1965 por la ‘Ley de Moore’ para la industria de semiconductores. La violenta escalada tecnológica actual, combinada con la complejidad inherente a los sistemas a diseñar, ejerce una presión desmesurada sobre los diseñadores en áreas de tecnología, y genera una brecha creciente entre su capacidad de diseño y las actuales posibilidades de producción. En particular, en el área electrónica, la incesante evolución tecnológica permite en la actualidad la conformación de sistemas completos en una sola pastilla de silicio, habilitando la integración de los tradicionales dispositivos electrónicos con elementos ópticos y mecánicos, y en un futuro no muy lejano, con elementos químicos y biológicos. La complejidad de tales sistemas emana tanto de su escala como de su heterogeneidad, planteando a los diseñadores de sistemas electrónicos problemas formidables de diseño, como consideración de efectos cuánticos y relativistas, control de millones de elementos operando concurrentemente en red, y manejo de efectos mecánicos, ópticos y electrónicos en permanente interacción. La complejidad de estos microsistemas se ve además escalada por su aplicación en contextos de sistemas más generales, como sistemas de cómputo o control distribuidos, sistemas de tiempo real, sistemas dinámicos, modificables en tiempo de ejecución mediante reprogramación o reconfiguración. Adicionalmente, la complejidad de estos sistemas es escalada por exigentes etapas de prueba, verificación, y documentación, y en última instancia, por la necesidad de administrar las anteriores cuestiones en interacción con el medio - incluyendo este a los seres humanos y su fustigador flagelo económico. Como única salida viable al desfase creciente entre capacidad de diseño electrónico y complejidad, actualmente se proponen y emplean metodologías de diseño descendentes, asistidas por herramientas informáticas basadas en rigurosos formalismos matemáticos, promoviendo diseños ‘correctos por construcción’. Estas herramientas informáticas permiten a la electrónica diseñar mejores plataformas de cómputo, sobre las cuales la informática puede generar nuevas y más potentes herramientas para su propio desarrollo; a su vez, el desarrollo informático permite la gestación de nuevas herramientas para diseño electrónico, cerrándose de esta forma un ciclo de soporte mutuo entre electrónica e informática, cada vez más interdependiente. A pesar de esta sinergia entre electrónica e informática, la diferencia en la usual formación de ingenieros informáticos y electrónicos dificulta a los primeros el brindar las abstracciones necesarias a los segundos para que modelen adecuadamente el mundo físico, y a los segundos el comprender los beneficios de los procesos de abstracción desarrollados por los primeros, quienes los han empleado con éxito indiscutible en aplicaciones que no interactúan directamente con el mundo físico. Esta brecha ha determinado la emergencia de una ‘ciencia de la computación’12 que busca consolidar el desarrollo mutuo electrónico-informático. Esta disciplina ha permitido - sobre el fin del siglo XX - el desarrollo de metodologías formales de diseño, soportadas por una parafernalia de herramientas asociadas a flujos concretos de 12 ‘Computer Science’ como se refiere habitualmente en la literatura de habla inglesa. Debe diferenciarse de la habitualmente denominada ‘computación científica’, la cual trata algoritmos y métodos de cálculo numérico orientados a actividades científicas, pero no se dedica al desarrollo de herramientas de diseño ni sistemas de cómputo. diseño. Tales metodologías intentan automatizar los procesos de análisis y toma de decisiones del diseño electrónico, para asistir a la minimización de costos de diseño y producción, en el sentido amplio del término - minimización de costos económicos, errores, probabilidad de fallas, y maximización de las garantías en los sistemas: fiabilidad, seguridad, disponibilidad, calidad de servicio, etc. El desarrollo mutuo electrónico-informático, en el marco de la precedentemente mencionada carrera tecnológica, ha instrumentado sistemas de comunicación que proveen un cúmulo de información avasallante. Sin embargo, en gran medida esta información está desorganizada, es irrelevante, redundante o directamente inexacta, generando más confusión que claridad. Adicionalmente, la contienda mercantilista instaurada en los diversos círculos de proveedores de herramientas de diseño, fabricantes de semiconductores, dispositivos electrónicos, e integradores tecnológicos, agita aún más el turbulento flujo de información, de forma que el caudal de información se presenta particularmente turbio para estudiantes de grado de ingeniería electrónica no especializados e inexperientes. Este documento, “Diseño de Sistemas Electrónicos Complejos”, pretende presentar el actual panorama de diseño de sistemas electrónicos, a un nivel de estudiante de grado de ingeniería electrónica sin formación en ciencias computacionales. Es la intención de esta memoria de grado el coleccionar, seleccionar, ordenar, y estudiar adecuadamente la información concerniente a los procesos de diseño electrónico actuales, de forma de presentarla al estudiante de grado en electrónica en forma efectiva y comprensible, tal que guíe su acceso a los canales de información. Intenta así llenar un vacío detectado en el curso de la investigación bibliográfica, durante la cual no fueron hallados documentos a nivel de grado en ingeniería electrónica que no supusieran formación adecuada en ciencias de la computación. Este trabajo se basa en la firme convicción que - en las hipótesis mencionadas, y ante el vasto universo de conocimiento que se presenta - la única opción viable para iniciar la comprensión de la filosofía de diseño electrónico actual, es centrarse en ciertos conceptos claves, a partir de los cuales la intuición y el sentido común - educados por el estudio - permitan completar el panorama, obteniendo una visión global del espacio de diseño electrónico. El objeto no es describir ni estudiar flujos o herramientas de diseño electrónico particulares; el objeto es comprender las metodologías, su filosofía, sus mecanismos e implementaciones subyacentes, como única manera de sobrevivir a los rápidos ciclos de obsolescencia tecnológica, y la inundación de información concomitante. En esta búsqueda de comprensión conceptual no se requiere - ni se otorga - la capacidad para desarrollar metodologías o herramientas de diseño, y tampoco se supone u otorga el conocimiento o habilidad para el uso de herramienta alguna: se pretende únicamente comprender patrones de comportamiento, función, y utilidad, tal que permitan discernir posibles limitaciones de las metodologías o de las herramientas, generar formas de soslayar tales limitaciones, o manejarse ante una eventual carencia de metodologías o herramientas 13. 13 Cuestión no menor para diseñadores en países de escasos recursos económicos, ante el costo de las herramientas de diseño, así como de sus plataformas de ejecución. PARTE I [1] COMPLEJIDAD Y SISTEMAS COMPLEJOS ¿Es usted ‘Aristotélico’ o ‘Platónico’? Me refiero a si usted es de los que, como Aristóteles, considera que lo fundamental es la realidad física - el universo es - y la matemática es sólo una aproximación útil a esa realidad, o si por el contrario, es afecto a la visión de Platón: la realidad es matemática, y los observadores percibimos imperfectamente su estructura como el universo ‘físico’ en el que vivimos... Bien, admito que este cuestionamiento pueda parecer una digresión absolutamente irrelevante, si de “Diseño de Sistemas Electrónicos Complejos” se va a discutir. Sin embargo, ¿ha observado Ud. si los procesos de diseño en electrónica varían o no, según la complejidad de los sistemas a diseñar? ¿No le inquietan las oscuras connotaciones que podría poseer el adjetivo complejo empleado en el título de este documento? ¡Sea honesto! ¿Ha reflexionado Ud. alguna vez acerca del fenómeno de la complejidad - que es, cual es su esencia - y cómo puede eso incidir en las tareas de diseño electrónico? Por inconspicuo que pueda parecer el adjetivo complejo empleado en el título de este documento, he de advertirle que la complejidad es, en efecto, eje y causa de los procesos de diseño electrónico actuales. Consecuentemente, la discusión acerca de diseño de sistemas electrónicos complejos que se pretende desarrollar aquí se iniciará estudiando, precisamente, el fenómeno de la complejidad en sí mismo. Si tiene Ud. la paciencia de seguir adelante, espero poder mostrarle la relación existente entre los actuales procedimientos de diseño de sistemas electrónicos, el fenómeno de la complejidad, y la adopción de una visión ‘Aristotélica’ o ‘Platónica’ del universo que ha dado inicio a esta aparente digresión. [ 1.1 ] CONSIDERACIONES INICIALES [ 1.1.1 ] DETALLES Y ABSTRACCIÓN En un reciente artículo de la publicación ‘Scientific American’, M. Tegmark expone la visión de la física teórica contemporánea acerca de la existencia de universos paralelos [Teg03]. Sin entrar en una discusión sobre lo que universos paralelos son o significan - basta con asumir la noción intuitiva de universos que se desenvuelven en forma simultánea con el universo ‘conocido’ y ‘visible’ en el cual habitamos - según Tegmark tales universos paralelos pueden clasificarse en niveles, existiendo entre estos niveles una relación de orden. Esta ordenación se obtiene mediante una progresiva abstracción de los detalles pertenecientes a cada nivel de universos. Dado que las descripciones de los niveles superiores carecen de los detalles particulares correspondientes a los niveles inferiores, los niveles superiores resultan más generales, siendo más numerosas las colecciones de universos comprendidas en los mismos14. 14 Alternativamente, piense en conjuntos, y sus sucesivas colecciones e inclusiones en otros conjuntos. Esta idea podrá ser revisada a la luz de lo que se expone en la sección 1.3. Gonzalo Sánchez - Ingeniería Electrónica – Universidad Católica del Uruguay 28 - [ 1 ] Complejidad y Sistemas Complejos Pletórico de detalles, ‘nuestro’ universo usual se hallaría en el nivel más bajo según esta clasificación. Tegmark compara este escalamiento de abstracciones, con un conjunto de ecuaciones y una solución específica de las mismas. Afirma que el conjunto de ecuaciones es más sencillo que cualquiera de sus soluciones específicas, puesto que no contiene las condiciones iniciales o de borde que seleccionan una solución particular del conjunto de todas las soluciones. Recíprocamente, esta abstracción de condiciones particulares implica una mayor generalidad, al comprender el conjunto de ecuaciones a todas y cada una de sus soluciones particulares - una sola estructura matemática describe simple y elegantemente al conjunto. Esta organización por niveles de abstracción, combinada con el principio antrópico15, es usada por Tegmark para proponer que la complejidad del universo - desde la perspectiva Aristotélica de un observador inserto en el mismo - responde a la infinidad de detalles concretos que permiten a ese observador identificar al universo particular en el cual se halla. Y que mediante un proceso de sucesiva abstracción de detalles - como eliminación de condiciones iniciales, abolición de la invariabilidad de las leyes físicas, abatimiento de asimetrías, etc. - es posible ir reconociendo la existencia de conjuntos de universos cada vez más amplios, los cuales podrían describirse en forma más sencilla y elegante por estructuras matemáticas cada vez más compactas. Este proceso de abstracción supone, en definitiva, migrar de una visión Aristotélica del universo - que nos ha resultado intuitiva por siglos - a una visión Platónica, la cual facilita el reconocimiento y descripción de estos universos paralelos en forma matemática. Tegmark llega incluso a postular la simetría completa entre física y matemática, proponiendo que todas las estructuras matemáticas existen físicamente, y recíprocamente, que todas las estructuras físicas son representables matemáticamente. Con ello, establece la equivalencia entre ambos puntos de vista - el Aristotélico y el Platónico librando entonces a la mera preferencia o conveniencia del observador la aplicación de una u otra visión para describir la realidad del ‘multiverso’ de universos paralelos en el cual nos hallamos insertos. No obstante la superficialidad de la precedente reseña del artículo de Tegmark sobre universos paralelos, es posible señalar una serie de aspectos implícitos en el artículo original, relativos a la complejidad y los sistemas complejos: • se asocia complejidad con detalle • se asocia la consideración de detalles con el ejercicio de un punto de vista Aristotélico, que - en contexto - implica la consideración de particularidades en el universo (en contraposición a la consideración de cuestiones generales) • se propone la abstracción como una simplificación del binomio complejidad~detalle • se asocia el proceso de abstracción con la adopción de un punto de vista Platónico, que - en contexto - implica una consideración a nivel general del ‘multiverso’ (en contraposición a la consideración de cuestiones particulares) 15 Principio que otorga al propio observador un carácter céntrico en el chequeo de consistencia de una teoría física fundamental (recuerde que si bien las teorías físicas son refutables, no es posible ‘probarlas’ en el sentido de asegurar su veracidad; de allí que se hable de ‘chequeo de consistencia’ o ‘careo’). El carácter fundamental en cuestión es un ‘efecto de selección’ que permite identificar un ente dentro de un ‘ensemble’. “El término ‘principio antrópico’ fue acuñado por Brandon Carter en un trabajo de 1974, donde lo definía como «... lo que podemos aspirar a observar debe estar restringido por las condiciones necesarias para nuestra presencia como observadores». (...) Si bien el propio Carter nunca dudó como interpretar y aplicar el principio, no lo explicó suficientemente en una forma filosóficamente transparente como para habilitar a sus lectores a hacer lo mismo. El problema comienza con el nombre. El razonamiento antrópico no tiene nada que ver con el ‘homo sapiens’. (...) Carter se ha lamentado por no haber usado un nombre distinto (Carter 1983) sugiriendo que quizás ‘el principio sicocéntrico’, ‘el principio de cognición’ o ‘el principio de auto - selección del observador’ hubieran sido más adecuados. (...) La etapa de reforma del término probablemente haya expirado, pero enfatizar que que el principio antrópico concierne a observadores inteligentes en general y no específicamente a observadores humanos debería ayudar a prevenir malinterpretaciones.” ([Bos02], pp. 43-44). El principio antrópico es a la fecha un tema altamente controversial. Diseño de Sistemas Electrónicos Complejos [ 1.1 ] Consideraciones iniciales - 29 De los aspectos relativos a la complejidad implícitos en el artículo de Tegmark, pueden inferirse las siguientes relaciones, si se reemplaza ad hoc la idea de ‘universo’ por la de ‘sistema’: • la complejidad en un sistema esta asociada al grado de detalle de su descripción, y los detalles concretos de esa descripción otorgan al sistema su particularidad o grado de originalidad, la cual es usual examinar desde una perspectiva Aristotélica • la abstracción es el proceso que permite una simplificación de la complejidad inherente a un sistema, mediante la disminución del grado de detalle de su descripción, proceso que resulta más conveniente encarar desde una perspectiva Platónica Cabe cuestionarse si la ‘simplificación’ que aparentemente se obtiene por la abstracción de detalles y reconocimiento de estructuras matemáticas que los contengan, redunda efectivamente en una disminución de la complejidad que prima facie presenta nuestro universo particular. Me refiero, ¿no se estaría, simplemente, cambiando la complejidad de lugar? ¿Trocando una complejidad ‘Aristotélica’, por una complejidad ‘Platónica’? ¡Razonablemente, el hecho que ciertas estructuras matemáticas sean duales de un ‘multiverso’ físico de gran complejidad, lo primero que sugiere es que - por más elegantes y compactas que estas estructuras matemáticas resulten - no deben ser del todo sencillas! ¿Cual sería entonces la ventaja de cambiar una descripción complicada debido a su detalle, por una descripción matemática compacta pero intrínsecamente complicada? Aunque una descripción del universo à la Platón no implique, en esencia, más que la transmutación de la complejidad hacia la matemática, su utilidad es inobjetable: en primer lugar, las estructuras matemáticas son generales, y por tanto aplicables a otras cuestiones aparte de las que maneja la física teórica, lo que implica la posibilidad de reutilización; y en segundo lugar, es posible intentar la exploración de las estructuras matemáticas mediante cálculo numérico, a diferencia de otras actividades de índole más ‘Aristotélica’ donde similares exploraciones serían imprácticas o directamente imposibles. Dispénseme la insistencia, pero le recomiendo que lea el artículo de Tegmark; probablemente constituya un significativo aporte al acervo cultural personal. [ 1.1.2 ] ESCALA Y EVOLUCIÓN ¿Será nuestro futuro como ‘Star Trek’16 o no? Tranquilícese. Esto no constituye otra digresión al estilo de la visión Aristotélica o Platónica del universo... aunque aparentemente se insista en el ámbito de la física teórica: con esa pregunta, el reconocido físico teórico Stephen Hawking intitula el sexto capítulo de su última 17 obra de divulgación [Haw02], y ese cuestionamiento que Hawking hace a la visión de la humanidad del futuro à la ‘Star Trek’ - una sociedad esencialmente estacionaria en cuanto a ciencia y tecnología - radica esencialmente en reconocer el fenómeno de la complejidad y su desarrollo. Hawking avizora un crecimiento de la complejidad biológica y electrónica, y dedica todo un capítulo a justificar “Como la vida biológica y electrónica se seguirá desarrollando en complejidad con un ritmo cada vez más rápido”18. Para iniciar la justificación de tales asertos sobre el escalamiento de la complejidad, Hawking elige ciertos indicadores como el crecimiento de la población 16 Afamada serie de televisión de fines del siglo XX, que presenta la humanidad del futuro mediante las circunstancias en las que se ve envuelta la tripulación de una nave espacial, que se ubica a la vanguardia de la exploración del universo. Contrariamente a una superficial clasificación en la categoría de ‘ciencia - ficción’, cabe destacar a la serie como una cuidada exposición de cuestiones sociales; un buen espejo de las facetas de la actual cultura humana proyectadas en un ambiente futurista. 17 A la fecha de redacción de este capítulo. 18 Así se subtitula el sexto capítulo de [Haw02] citado precedentemente, y declara precisamente su objeto. Ingeniería Electrónica – Universidad Católica del Uruguay 30 - [ 1 ] Complejidad y Sistemas Complejos humana desde los orígenes de la humanidad, el crecimiento del consumo energético, y el crecimiento en la tasa de cambio de la actualización de la información (primero con el surgimiento de la escritura y luego con la invención de la imprenta). Hawking aduce que las trazas de estos indicadores registran que los respectivos cambios se vienen produciendo en forma exponencial19, y se pregunta si existirán límites para estos crecimientos desenfrenados de población, consumo energético, y transmisión del conocimiento... Bien, según Hawking, tales límites no existirán. Sostiene que - a diferencia de lo que acontece en la sociedad representada en ‘Star Trek’ - no se alcanzarán estados científicos ni tecnológicos estacionarios, “no parece que tengamos que alcanzar un estado estático en la aplicación de dichas leyes 20 o en la complejidad de los sistemas que podamos producir mediante ellas” (sic). Definitivamente, no cree en un futuro à la ‘Star Trek’. Hawking sostiene que la vida biológica y la electrónica se seguirán desarrollando en complejidad en base a la innovación científica y tecnológica, la cual - nos guste o no - se seguirá produciendo21 de la misma manera que lo ha venido haciendo hasta nuestros días. La evolución biológica, actualmente producida mediante mutaciones - un camino aleatorio en el espacio de las posibilidades genéticas de la molécula de ADN - tiene una tasa de innovación del orden de 1 ‘bit’22 por año. Tal ritmo es absolutamente insuficiente para seguir la tasa de la transmisión de la información mediante la escritura, actualmente del orden de 1 millón de ‘bits´ por segundo. Dado este defasaje, Hawking anticipa una inevitable manipulación del ADN humano - inclusive, su completo rediseño - con objeto de nivelar el desarrollo biológico con la tasa de actualización de la información por vía escrita. Por otro lado, Hawking reconoce el desarrollo sostenido que ha registrado la electrónica, el cual ha sido impulsado fundamentalmente por el permanente incremento en la velocidad de operación de los dispositivos, concomitantemente con su progresiva reducción de tamaño. A pesar del inminente límite físico impuesto por la escala atómica de la materia a los procesos de miniaturización, Hawking cree que la evolución electrónica se seguirá produciendo de todas formas, mediante esquemas de procesamiento paralelo similares a los cerebrales. Ante este panorama de inminente manipulación genética e incontenible avance electrónico, Hawking cree que el compromiso entre capacidad y velocidad - presente en los actuales sistemas biológicos, que son capaces pero lentos, y los actuales sistemas electrónicos, veloces pero comparativamente poco capaces - podría eventualmente resolverse por cooperación electro - biológica. Y, en definitiva, es esta visión de sistemas electrobiológicos operando en un futuro no muy lejano, lo que induce a Hawking a afirmar que el crecimiento en complejidad de los sistemas biológicos y electrónicos es inexorable. No es mi intención - ni remotamente está a la altura de mis capacidades - ponerme en el lugar de un individuo como Hawking, pero al igual que con el artículo de Tegmark citado en la sección precedente, es posible extraer de esta breve exposición una serie de implicancias al respecto de la complejidad y los sistemas complejos: • se asocia complejidad con escala 19 Otros autores estiman que estos incrementos - como el ritmo de crecimiento cultural - no son exponenciales o de ‘interés compuesto’, sino de superaceleración según una curva log - log. ([Ber93], p. 25; citando a Hart). 20 Se refiere a las leyes físicas. 21 Mientras la humanidad no se autodestruya, o desaparezca por causas singulares como el impacto de un meteorito con la Tierra, antes que sea factible la colonización espacial. No es el propósito de Hawking discutir la ética del desarrollo científico - tecnológico y de sus consecuencias socio - políticas; convencido que este proseguirá independientemente de tales cuestionamientos, aduce en consecuencia que se debe estar preparado para abordar tales temas, aunque no necesariamente resulten agradables. 22 Del inglés ‘binary digit’: dígito binario. Es, a la fecha, considerado como la unidad de información. Puede distinguir únicamente dos estados de algún ente referido, comúnmente codificados como {1, 0}, {VERDADERO, FALSO}, o {SI, NO}. Diseño de Sistemas Electrónicos Complejos [ 1.1 ] Consideraciones iniciales - 31 • se plantea un problema de inexorabilidad del incremento en complejidad, en virtud de ser esta concomitante a procesos evolutivos inexorables • se implica que es esperable un escalamiento adicional de la complejidad a partir de la interacción de sistemas o procesos evolutivos complejos per se Extrapolando ad hoc la visión de Hawking acerca de la evolución biológica y electrónica, es posible inferir que la complejidad está relacionada con la escala alcanzada en procesos evolutivos en general, los cuales, además, no necesariamente encontrarán un límite para su desarrollo. Adicionalmente, la posible interacción entre esos procesos evolutivos contribuiría escalando aún más la complejidad que portaban consigo por separado. La cuestión planteada por Hawking en su exposición no es un asunto menor: ante el panorama vaticinado, se impone la responsabilidad de reaccionar ante ciertos temas, y discutir en forma abierta y constructiva las implicancias éticas y sociales concomitantes, antes que su complejidad devenga inmanejable. Incidentalmente - ¿o quizás no? - la electrónica es parte fundamental en esta proposición. [ 1.2 ] ¿DEFINICIÓN O SIGNIFICADO? Las siguientes son las definiciones de ‘sistema’ y ‘complejo’ que devuelve una consulta al diccionario de la Lengua Española23 [RAE84] • sistema. (Del lat. systêma, y este del gr. σύστημα.) m. Conjunto de reglas o principios sobre una materia enlazados entre sí. ║2. Conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a determinado objeto. • complejo. (Del lat. complexus, p. p. de complecti, enlazar.) adj. Dícese de lo que se compone de elementos diversos. ║3. Conjunto o unión de dos o más cosas. Por composición ad hoc de las anteriores definiciones, se obtiene la siguiente ‘definición’ de sistema complejo: Un Sistema Complejo es un conjunto de elementos diversos ordenadamente enlazados que contribuye a determinado objeto. Prima facie, aunque en apariencia correcto, el precedente concepto no resulta explícito. Lo que no debe sorprender, puesto que es directa consecuencia de que definición y significado no son necesariamente coincidentes. La definición de una palabra es una aseveración establecida por una fuente como un diccionario, mientras que su significado depende de la interpretación personal de cada individuo, condicionados por su cultura, entorno y experiencia. Y de hecho, en los diccionarios se registra más de una acepción para gran cantidad de palabras, en reconocimiento que su definición cambia, en primera instancia, según el contexto. Resulta esencial, por tanto, establecer un significado para ‘complejidad’ y ‘sistema complejo’. No es admisible limitarse a dar una definición, ni es prudente asumir que el significado pueda ser sobreentendido por quienes lean este documento, y que además tal significado sea el mismo en todos los casos. El significado puede entenderse como noción, que aporte una visión común de complejidad y sistema complejo, que evite interpretaciones disímiles de los términos. Como primera aproximación al significado de complejidad y sistema complejo, en la sección 1.1 se han inferido algunas características de la complejidad asociada a sistemas, a partir de los resúmenes de un artículo y un libro de divulgación, ambos pertenecientes al área de la física teórica. Dado que la física teórica es un tema absolutamente ajeno a la electrónica, y en virtud de haber admitido cierta laxitud e informalidad al extrapolar las ideas sobre complejidad implícitas en el artículo y el libro citados, corresponde revisar los resultados obtenidos, antes de emplearlos sin más para dar un significado o una noción de complejidad y sistema complejo 23 Se han eliminado acepciones que, a mi juicio, no contribuyen en absoluto a la presente discusión. Ingeniería Electrónica – Universidad Católica del Uruguay 32 - [ 1 ] Complejidad y Sistemas Complejos adecuado a los propósitos de este trabajo. Esas consideraciones iniciales se resumen como sigue: • La complejidad en un sistema aumenta con el grado de detalle de su descripción • Conforme se incrementa el detalle en una descripción, necesariamente se produce un incremento en la cantidad de información descriptiva, de forma que la complejidad puede inferirse también a partir de consideraciones de escala • En procesos de tipo evolutivo se observa un inexorable aumento de escala; consecuentemente, es previsible el aumento de la complejidad asociada a procesos evolutivos. De la interacción entre procesos evolutivos, complejos per se, es esperable un escalamiento adicional de la complejidad • Dado que son precisamente los detalles concretos de una descripción los cuales otorgan a un sistema su particularidad o grado de originalidad, es usual examinarlos desde una perspectiva Aristotélica. La conveniencia de tal encare dependerá de si el objeto del examen es la identificación de detalles, o no • La abstracción es el proceso que - mediante la disminución del grado de detalle - permite una simplificación en la descripción acabada de un sistema inherentemente complejo. Una perspectiva Platónica sería más adecuada si la descripción de un sistema persigue un afán de generalización, caso en el cual conviene deshacerse de los detalles. En las secciones que siguen, se contrastarán estas consideraciones iniciales con apreciaciones de otros autores quienes han abordado el tema de la complejidad y los sistemas complejos en forma específica, en la búsqueda de un significado para esos conceptos. No obstante, tales nociones se basan en un concepto de índole más básica: el concepto de sistema. Hasta el momento, se ha abusado del término, en la hipótesis que a nivel de grado de ingeniería el concepto de sistema, a fuerza quizás de reiteración, es adquirido en forma indirecta y subliminal - diríase, por ‘ósmosis y difusión’ - aunque no en forma explícita, intencional, u organizada. Ante esa ‘omisión’, es la intención en este trabajo el establecer desde el inicio una noción concreta del concepto de sistema - y sobre esta, el concepto de complejidad asociada a sistemas, el concepto de diseño, el concepto de modelo, y otros - aunque que no se desarrollen tratamientos rigurosos y formales. Se pretende así no solamente proveer una mínima base conceptual para el presente trabajo - ¿de que estamos realmente hablando? ¿pensamos acaso todos en igual forma? - sino instalar la preocupación por la necesidad de estudio de estos temas en mayor profundidad. Si bien el concepto de sistema ameritaría al menos un capítulo completo, se ha optado por ‘comprimirlo’ en el mismo capítulo que el concepto de complejidad, puesto que la finalidad del presente documento es el diseño electrónico, y no el tratamiento de sistemas complejos cualesquiera. [ 1.3 ] SISTEMAS “Están ingresando en la esfera del pensamiento científico entidades de naturaleza esencialmente nueva. En sus diversas disciplinas - ya fueran la química, la biología, la sicología, o las ciencias sociales la ciencia clásica procuraba aislar los elementos del universo observado - compuestos químicos, enzimas, células, sensaciones elementales, individuos en libre competencia, y tantas cosas más - con la esperanza de que volviéndolos a juntar, conceptual o experimentalmente, resultaría el sistema o totalidad - célula, mente, sociedad - y sería inteligible. Ahora hemos aprendido que para comprender no se requieren sólo los elementos sino las relaciones entre ellos - digamos, la interacción enzimática en una célula, el juego de muchos procesos mentales conscientes e inconscientes, la estructura y dinámica de los sistemas sociales, etc.” ([Ber93], pp. xiii-xiv). De esta manera presenta Von Bertalanffy su “Teoría general de los sistemas”, que data del año 196824. 24 Cabe notar que las ideas iniciales de Von Bertalanffy se pueden ubicar, según sus propias palabras, en la tercer década del siglo XX, circa 1928. Puede así constatar el lector que el material presentado en esta sección no constituye ninguna novelería. Diseño de Sistemas Electrónicos Complejos [ 1.3 ] Sistemas - 33 Por anticuada que parezca la precedente observación, cabe reconocer en el sistema educativo actual una estructura alineada con lo que Von Bertalanffy denomina ‘ciencia clásica’: la división del pensamiento o conocimiento en materias o asignaturas que tienden a estudiar aisladamente cierto ‘elemento’ del ‘universo observado’. Nuestros docentes - desde maestros escolares y liceales a profesores universitarios - cuestionan cada día con mayor insistencia esta compartimentación o especialización del conocimiento, que atenta contra la integración de los mismos, en especial al momento de su aplicación25. En esencia, constituye un reconocimiento de la carencia de un enfoque de ‘sistema’ en la educación26. “Es necesario un enfoque más sencillo y unificado de los problemas científicos, necesitamos practicantes de la ciencia, no de una ciencia; en una palabra, necesitamos generalistas científicos.” (Bode et al., 1949; citado en [Ber93], p. 50). [ 1.3.1 ] LA VISIÓN ‘CLÁSICA’ “El campo de la ciencia como empresa nomotética - es decir, que trata de establecer un sistema de leyes explicativo y predictivo - coincidía prácticamente con la física teórica. En consecuencia, la realidad física pareció la única otorgada por la ciencia. La consecuencia fue el postulado del reduccionismo, el principio de que la biología, el comportamiento y las ciencias sociales habrían de manipularse de acuerdo con el parangón de la física, y al fin reducirse a conceptos y entidades de nivel físico. En virtud de adelantos en la física misma, la tesis fisicalista y reduccionista se tornaron problemáticas y hasta se manifestaron como prejuicios metafísicos.” ([Ber93], pp. 95-96). Una lectura global de [Ber93] devuelve que, entre los problemas esenciales que la ciencia clásica ‘fisicalista’, ‘reduccionista’, y ‘mecanicista’ descuidó - o directamente no consideró -, se encuentran la organización por diferenciación progresiva, el mantenimiento de un cambio continuo, y la regulación27, equifinalidad28, directividad (teleología29). Estas cuestiones surgieron mayoritariamente del campo de las ciencias biológicas, las ciencias sociales, y la sicología, por el simple hecho que estas actividades lidian con entidades que, ante todo, presentan una organización manifiesta. Estos conceptos recalcitrantes a la metodología ‘fisicalista’ indican que la ciencia clásica no habría elaborado el concepto de ‘sistema’, limitándose al esquema de “unidades aislables actuantes según causalidad unidireccional.” ([Ber93], p. 45). La ciencia clásica, afirma Weaver, se ocupaba de vías causales lineales, o sea de problemas de dos variables, o de ‘complejidades no organizadas’ 30. Estas últimas son tratables mediante métodos estadísticos y se empalman a fin de cuentas con el segundo principio de la termodinámica. “De acuerdo con el segundo principio de la termodinámica la tendencia general de los 25 Al menos mis coterráneos contemporáneos (Uruguay, a fines del siglo XX y principios del XXI) podrán identificarse con esta afirmación acerca del sistema educativo y las alertas de nuestros docentes. 26 Permítaseme el empleo del vocablo ‘sistema’, cuya aclaración está aún pendiente, carencia que - ahora admitida - obliga al uso de las comillas en torno al término. 27 Relacionado con la Cibernética de Wiener, o el mantenimiento homeostático de un estado característico. 28 Equifinalidad: tendencia a un estado final característico a partir de diferentes estados iniciales y por diferentes caminos, fundada en interacción dinámica en un ‘sistema’ abierto que alcanza un estado uniforme ([Ber93], p. 46); independencia del estado final de equilibrio respecto de las condiciones iniciales. Concepto originado en las ciencias biológicas, a raíz de características de los organismos vivos. 29 teleología. (Del gr. τελος, -εος, fin, y -logía.) f. Fil. Doctrina de las causas finales [RAE84]. En esencia, se refiere a la dependencia del comportamiento de un sistema en eventos futuros conocidos de antemano. Una breve reseña del problema de la finalidad (teleología estática - adecuación -, teleología dinámica - directividad de procesos: estructura, homeostasia, equifinalidad, intencionalidad) se da en [Ber93], pp. 79-82: Tipos de finalidad. Véase también [Kli69], p.270 por una breve aclaración acerca de la relación entre el principio teleológico o anticipatorio y el principio de causalidad, que muestra que estos son perfectamente compatibles. 30 Es necesario aquí apelar a la noción usual de ‘complejidad’, cuyo estudio - en especial, en relación a ‘sistemas’ - se pospone hasta las secciones 1.4 y 1.5. Asimismo, se debe apelar a la noción intuitiva de ‘sistema’, la cual aún no ha sido conferida en la sección actual. Ingeniería Electrónica – Universidad Católica del Uruguay 34 - [ 1 ] Complejidad y Sistemas Complejos acontecimientos en la naturaleza física apunta a estados de máximo desorden 31 y a la igualación de diferencias, con la llamada ‘muerte térmica’ del universo como perspectiva final, cuando toda la energía quede degradada como calor uniformemente distribuido a baja temperatura, y los procesos del universo se paren.” ([Ber93], pp. 40-41). Sin embargo, en la física y la biología modernas salen sin cesar al paso ‘problemas tocantes a la complejidad organizada’, interacciones entre muchas - pero no infinitas - variables, que requieren nuevas herramientas conceptuales. “En contraste, el mundo vivo exhibe, en el desarrollo embrionario y en la evolución, una transición hacia un orden superior, heterogeneidad y organización.” ([Ber93], p. 41). La aparente contradicción entre entropía y evolución planteada precedentemente, se desarticuló en principio mediante la introducción del concepto de ‘sistemas abiertos’32. Estos pueden mantenerse en un estado de cambio uniforme, y así evolucionar hacia formas organizadas y estados de orden crecientes, mediante la ‘importación de entropía negativa’33 - en el caso de los organismos vivos, por ejemplo, asimilando moléculas ricas en energía libre. De esta forma, parecía posible la extensión de los conceptos de la física al resto de las actividades científicas sin necesidad de abandonar las tesis analíticas ‘atomistas’. Sin embargo, subsiste el problema que plantean ‘las interacciones entre muchas - pero no infinitas - variables’. Este problema, si bien parece tratable con la ‘máquina de Turing’ 34, resulta inviable. “El enunciado fundamental de la teoría de los autómatas es que los aconteceres que pueden definirse con un número finito de ‘palabras’ son realizables por un autómata (p. ej. una red neuronal formal según McCulloch y Pitts, o una máquina de Turing) (Von Neumann, 1951). La cuestión reside en el calificativo de ‘finito’. El autómata puede, por definición, realizar una serie finita de acontecimientos (por larga que sea) pero no una infinita. Pero ¿y cuando el número de pasos requeridos es ‘inmenso’, o sea no infinito pero superior, p. ej., al número de partículas del universo (estimado del orden de 1080) o al de acontecimientos posibles en el alcance temporal del universo (...) 35? Tales números inmensos aparecen en muchos problemas con exponenciales, factoriales, y otras funciones explosivamente crecientes. Surgen incluso en sistemas con número moderado de componentes que interactúan con fuerza (en grado no desdeñable) 36. Para ‘delinearlos’ en una máquina de Turing haría falta una cinta de longitud ‘inmensa’: que excediera no sólo a las limitaciones prácticas sino a las físicas.37” ([Ber93], p. 24). Una consecuencia para nada trivial de estos problemas de números ‘inmensos’ (así como también los ‘infinitos’) es la posibilidad que existan ‘leyes de la naturaleza’ que estén fuera del alcance, no ya de la comprensión de la ciencia, sino de sus posibilidades de percepción o detección. Así, a pesar de la introducción del concepto de ‘sistema abierto’, la visión clásica de la ciencia no considera el concepto de ‘sistema’ tal como se concibe en la actualidad. En la sección siguiente se pretende introducir el cambio de perspectiva que permite la concepción de ‘sistema’ de la ciencia actual, aunque este no se halle, a la fecha, satisfactoriamente expresado o descrito. 31 Una forma alternativa de formulación del segundo principio de la termodinámica establece que la entropía es una medida de la probabilidad, lo cual se traduce en que los sistemas cerrados tienden al estado de distribución más probable. 32 Según Von Bertalanffy, la teoría termodinámica de los sistemas abiertos es la llamada termodinámica irreversible (Meixner y Reik, 1959). 33 Según Von Bertalanffy, esta expresión es debida a Schrödinger. 34 La máquina o autómata de Turing se describe en la sección 3.3.6.1. 35 Como datos adicionales: el universo observable a la fecha (el ‘volumen de Hubble’) se extiende a unos 4·1026m.; la cantidad de protones en ese volumen se estima del orden de 10118 (a una temperatura no superior a 108 ºK). [Teg03] 36 Por ejemplo, una gráfica dirigida de n nodos presenta 2 n(n - 1) posibilidades de conexión de los nodos. A modo de idea de la magnitud, ya para n=10, las posibilidades superan la cantidad de átomos en el universo conocido. ([Ber93], p. 25) 37 Debe entenderse esto, en el estado actual del conocimiento y del universo. Diseño de Sistemas Electrónicos Complejos [ 1.3 ] Sistemas - 35 [ 1.3.2 ] LA VISIÓN ACTUAL La ciencia clásica omitió considerar adecuadamente las interacciones entre los ‘elementos’ a los que sus técnicas de análisis ‘reducían’ la ‘realidad observable’, mediante la imposición de la hipótesis que éstas interacciones se limitaban a la superposición, es decir, a la suma de los efectos producidos por cada ‘elemento aislado’ del ‘sistema’. Actualmente, la aplicación en ‘sistemas’ de la hipótesis de superposición - o linealidad, como se le denomina en matemáticas - ha debido a fortiori ceder su sitial de privilegio ante la realidad fuertemente no lineal de muchos ‘sistemas’. Esta alinealidad, esta interacción entre partes que no es meramente aditiva, es en gran medida responsable de que hoy se califique como complejos a aquellos ‘sistemas’ que presenten esta característica 38. Así, en el transcurso del siglo XX se debió reconocer que - en general - la relación entre las partes constitutivas de un ‘sistema’ dista de ser un problema trivial. Según Von Bertalanffy, “El problema de los sistemas es esencialmente el problema de las limitaciones de los procedimientos analíticos de la ciencia.” ([Ber93], p. 17). Considérese, a modo de ejemplo manifiesto, que el aparentemente sencillo problema de la interacción entre tres cuerpos es analíticamente insoluble con las herramientas matemáticas actuales, sólo siendo factible abordarle mediante aproximaciones. Como se mencionó, estas limitaciones analíticas se soslayan bajo la hipótesis de superposición (o de directa independencia entre las ‘partes’ del ‘sistema’): “La aplicación del procedimiento analítico depende de dos condiciones. La primera es que no existan interacciones entre ‘partes’, o que sean tan débiles que puedan dejarse a un lado en ciertas investigaciones. Sólo con esta condición es posible ‘deslindar’ las partes - real, lógica, y matemáticamente - y luego volverlas a ‘juntar’. La segunda condición es que las relaciones que describan el comportamiento de partes sean lineales, sólo entonces queda satisfecha la condición de aditividad, o sea que una ecuación que describa la conducta del total tiene la misma forma que las ecuaciones que describen la conducta de las partes; los procesos parciales pueden ser superpuestos para obtener el proceso total, etc.”. “Semejantes condiciones no las cumplen las entidades llamadas ‘sistemas’, o sea consistentes en partes ‘en interacción.’39” ([Ber93], pp. 17-18). Se desprende de [Ber93] que la ciencia clásica ha debido abdicar sus visiones reduccionistas fundamentalmente en virtud de un innegable y omnipresente ‘orden jerárquico’ 40 en el universo, que se evidencia sucesivamente en las partículas elementales, los átomos, moléculas, estructuras intracelulares, las células mismas, los seres vivos, y hasta las organizaciones supraindividuales, tanto en el reino animal como en lo que respecta al ser humano. Se observa, además, una jerarquía parecida tanto en estructuras (orden entre partes) como en funciones (orden entre procesos). Este ‘orden jerárquico’ está ligado a cuestiones de ‘diferenciación’, ‘evolución’ y ‘medición’ de la organización, que no parecen ser expresables como es debido en términos de entropía negativa ([Ber93], pp. 26-27). Requiere, por tanto, un encare conceptual diferente: un enfoque de ‘sistemas’. “Es necesario no sólo estudiar partes y procesos aislados, sino también resolver los problemas decisivos hallados en la organización y el orden que los unifican, resultantes de la interacción dinámica de partes y que hacen diferente el comportamiento de éstas cuando se estudian aisladas o dentro del todo.” ([Ber93], p. 31). Se llega así a una concepción que - en contraste con el ‘reduccionismo’ de la ciencia clásica - se podría denominar ‘perspectivismo’. ([Ber93], p. 49). En consecuencia, según Von Bertalanffy el problema fundamental en la ciencia actual es el de la complejidad organizada41. En sí, los problemas de la ‘totalidad’ son problemas de organización, fenómenos no descomponibles en acontecimientos locales, e interacciones dinámicas, 38 Ver nota 30, p. 33. 39 Aquí, ‘interacción’ debe entenderse como ‘interacción no lineal’. 40 El término jerarquía aquí mencionado es un concepto vital que se examina con mayor detalle en la sección 1.5. 41 Un análisis pormenorizado del significado de complejidad se desarrolla en las secciones 1.4 y 1.5, en donde se aborda también al problema del ‘orden jerárquico’. Ingeniería Electrónica – Universidad Católica del Uruguay 36 - [ 1 ] Complejidad y Sistemas Complejos que se manifiestan en la diferencia de conducta de las partes cuando estas se consideran aisladamente o en una configuración superior ([Ber93], p. 37). Esto requiere un cambio en las categorías básicas que sustentan el pensamiento científico, de forma de ver el universo como organización. [ 1.3.3 ] NOCIONES FORMAL E INFORMAL DE ‘SISTEMA’ El advenimiento de un ‘enfoque de sistemas’ en la ciencia actual, o ‘perspectivismo’ en la terminología de Von Bertalanffy, ha obligado al surgimiento de nociones concretas de sistema. Como es natural, las nociones de tipo informal - es decir, no expresadas en forma lógicomatemática rigurosa - preceden históricamente a las nociones formales42. Una noción burda e informal de sistema es expresada comúnmente como “el ‘todo’ es más que la suma de sus ‘partes’”, y reside en que las características constitutivas de la entidad ‘todo’ no son explicables a partir de las características de sus ‘partes’ constitutivas aisladas, sino que se requiere considerar además las relaciones o interacciones entre las partes. Implica, además - “... la suma de las partes...” - que tales relaciones o interacciones no son lineales, o aditivas. Confiere así la idea que ‘sistema’ es un agregado de partes en forma no aditiva. En virtud de la importancia y utilidad de la formalidad lógico - matemática, que en la ciencia y la ingeniería es una herramienta fundamental de prolífica aplicación, y motor de su desarrollo, no debe extrañar el hecho que se intente o haya intentado formalizar la noción o significado de sistema. En forma independiente, han surgido teorías formales que - intencionalmente o no - abordan parcialmente o se solapan con la “Teoría General de Sistemas” de Bertalanffy. Así, este autor se refiere a la “Teoría de los Juegos” de Von Neumann y Morgenstern (1947) la “Cibernética” de Wiener (1948) la “Teoría de la Información” de Shannon y Weaver (1949) la “Teoría de los Compartimientos” de Rescigno y Segre (1966) la “Teoría de los Conjuntos” de Mesarovic (1964) y Maccia (1966) la “Teoría de los Autómatas” de Minsky (1967) la “Teoría de la decisión”, la “Teoría de las Gráficas”, la “Teoría de las Redes” y la “Teoría de las colas”. Cada una de estas teorías formales es la expresión en un determinado campo, orientada a determinadas aplicaciones, del concepto de sistema. De acuerdo a Von Bertalanffy, con la designación (algo laxa) de axiomático se cubren aquellos enfoques que persiguen una noción rigurosa del sistema y de sus implicaciones, derivada por métodos lógico-matemáticos modernos43. Así, una noción formal ‘axiomática’ de sistema es factible en términos ‘topológicos’ de conjuntos y relaciones entre sus elementos: Un sistema es un conjunto de elementos en interacción, donde ‘interacción’ significa que los elementos e están en relaciones R, de forma que el comportamiento de un elemento de e en R difiere de su comportamiento en otra relación R’. Si los comportamientos en R y R’ no difieren, entonces no hay interacción, y los elementos se comportan independientemente con respecto a las relaciones R y R’.44 Los conceptos de ‘conjunto’ y ‘relación’ no admiten se les establezca un significado: “Estas ideas de unidad45 y conjunto son ‘primitivas’, es decir, no reducibles a otras más simples, y tienen valor puramente relativo, pues todo ente es, a su vez, un conjunto de otros entes que lo componen, y todo conjunto puede considerarse a su vez como una nueva unidad, pudiéndose formar con estas unidades compuestas (también llamadas ‘de orden superior’) nuevos conjuntos, y así sucesivamente”. 42 Esta mención simplista de las nociones de ‘formalidad’ e ‘informalidad’, disimula importantes cuestiones: en primera instancia, a la utilidad relativa de uno y otro tipo de noción, y en segunda instancia, al tema subyacente del lenguaje y su incidencia en la ‘apercepción’ de la realidad. Introducciones a estos tópicos se presentan en las secciones 3.2 y 2.1.2.2, respectivamente. Las nociones de ‘formalidad’ e ‘informalidad’ se discuten en más profundidad en las secciones 3.2 y 3.3. 43 ‘Modernos’ debe interpretarse como el estado del conocimiento a mediados del siglo XX. 44 Esto ha sido adaptado de [Ber93], p. 56. 45 O ‘elemento’. Diseño de Sistemas Electrónicos Complejos [ 1.3 ] Sistemas - 37 ([PCT60], V. I, p. 1). “La idea de ‘relación’ es también ‘primitiva’ (como las de unidad y conjunto), es decir, no reducible a otras más simples”. ([PCT60], V. I, p. 8). Si bien la precedente noción formal de sistema no parece un aporte significativo sobre la noción informal presentada inicialmente, esta noción de sistema como conjunto topológico es un punto de partida prometedor, y sugiere la siguiente serie de observaciones: • La noción de sistema como conjunto sugiere inmediatamente la de subsistema como subconjunto. Dado que un subconjunto es en sí un conjunto, un subsistema sería en consecuencia un sistema - lo que efectivamente es coherente con la noción intuitiva de sistema y subsistema. A su vez, esta noción de subsistemas como subconjuntos sugiere su aplicación recursiva para subconjuntos de subconjuntos, es decir, sugiere considerar subsistemas anidados empleando idéntica noción. En otras palabras, esto no es más que una reformulación del ‘valor relativo’ de los conceptos ‘unidad’ y ‘conjunto’ de [PCT60], V. I, p. 1. • La noción de sistema como un conjunto sugiere asimilar la frontera o borde del conjunto al ‘límite’ del sistema46. A su vez, esto sugiere identificar el complemento del conjunto con el ‘medio ambiente’ o ‘entorno’ del sistema. Esta identificación conjunto - complemento con sistema - entorno además implica la existencia de determinado universo, como conjunto colección de los dos subconjuntos disjuntos mencionados (el sistema y su entorno). • La definición de un conjunto en base a una colección de subconjuntos admite que estos sean tanto disjuntos dos a dos, como que presenten intersecciones, siempre que constituyan una cobertura exacta del conjunto original47. Desde el punto de vista del conjunto, esto permite identificar como equivalentes a las diferentes colecciones de subconjuntos que lo pueden determinar unívocamente. Así, distintos esquemas de partición 48 de un conjunto en subconjuntos, serían asimilables a distintas formas de descomponer un sistema en subsistemas. Si bien con esto se admitiría que una división del sistema en subsistemas pudiera efectuarse mediante subsistemas con partes comunes y no comunes simultáneamente, ello estaría probablemente identificando a una descripción confusa del sistema, que prima facie podría clarificarse dividiendo a los subsistemas ‘solapados parcialmente’, en partes que representen sus ‘intersecciones’ y partes que representen los complementos de las primeras a los subsistemas originales. • De acuerdo a una determinada partición del sistema, puede emplearse el término ‘elemento’ para designar a las partes del esquema resultante, significando que desde la perspectiva que originó la partición se ha llegado a un punto tal que no cabe o interesa una división ulterior o más fina. Sin embargo, no implica que desde otra perspectiva estos ‘elementos’ resulten indivisibles49. Con este significado de ‘sistema’, se deben identificar las nociones ‘topológicas’ con las ‘reales’ en cada caso concreto (sistemas biológicos, sociales, físicos, etc). “Hay dos caminos para definir o determinar un conjunto, también llamado ‘clase’, métodos que los lógicos designan por ‘extensión’ y ‘comprensión’”. “Este método (por ‘extensión’) para determinar los conjuntos es el más frecuente en la vida ordinaria, pero sólo es apropiado para conjuntos con pocos elementos. Por otra parte los conjuntos infinitos sólo pueden definirse por ‘comprensión’, es decir, ‘dando un criterio que permita reconocer para cada ente arbitrario, si pertenece o no al conjunto’”. ([PCT60], V. I, p. 1). La imposibilidad para determinar un conjunto por extensión en caso de tener éste infinidad de elementos es evidente, pero asimismo, el considerar conjuntos con un número ‘inmenso’ de elementos pone de manifiesto la ya mencionada limitación de la ‘máquina de Turing’ en este tipo de problemas, lo que implica también una imposibilidad en el caso de número ‘inmenso’ 46 En particular, ello habilita a tratar las usuales cuestiones de sistemas ‘abiertos’ o ‘cerrados’ en relación a la inclusión o no de la frontera en el propio conjunto que representa al sistema. 47 Por exacta, se debe entender que no debe cubrir en exceso, es decir, un conjunto más amplio. 48 Al referirse a partición de un conjunto, se asume una cobertura exacta del conjunto. 49 Esto es otra consecuencia de que las ideas de elemento y conjunto son primitivas. Ingeniería Electrónica – Universidad Católica del Uruguay 38 - [ 1 ] Complejidad y Sistemas Complejos de elementos. Consecuentemente, es esperable que los métodos de designación de sistemas por comprensión resulten, en la práctica, no sólo más convenientes, sino los únicos factibles en el caso general. Cabe observar, además, que cuanto más general es un conjunto, es decir, cuanto menor es su comprensión, tanto mayor puede ser su extensión. ([PCT60], V. I, p. 3). Así, el hecho que las designaciones por comprensión puedan hacer referencia a conjuntos cada vez más numerosos conforme se ‘simplifican’, supone una interesante coincidencia con lo expuesto en la sección 1.1.1, acerca de la progresiva abstracción de detalles requerida en el proceso de migración de la concepción ‘Aristotélica’ a la ‘Platónica’ del universo. La noción formal de sistema es expresable matemáticamente de varias maneras ([Ber93], Ap. I, pp. 262-267). En particular, para aquellos sistemas en los cuales debe considerarse su evolución en el tiempo50 - sistemas dinámicos - se distinguen dos grandes modos de descripción: • Descripción interna: Se define el sistema merced a un conjunto de n medidas, llamadas variables de estado. Usualmente, para el caso de sistemas continuos51, su cambio en el tiempo se se expresa analíticamente por un conjunto de n ecuaciones diferenciales simultáneas de primer orden, llamadas ecuaciones dinámicas52. En el caso de sistemas discretos, se emplean ecuaciones en diferencias. El cambio en el sistema es expresado por las trayectorias descritas por las variables de estado en el espacio de estados, o sea, el espacio de n dimensiones de posibles localizaciones de dichas variables. Fundamentalmente se busca distinguir los comportamientos asintóticamente estables, neutralmente estables, e inestables, en virtud de ser la estabilidad un concepto central en las teorías dinámicas. • Descripción externa: El sistema es visto como una ‘caja negra’, y se describe mediante entradas y salidas, lo cual prioriza la relación entre el sistema y su entorno. Las relaciones entre entradas y salidas están dadas por ‘funciones de transferencia’, tanto en casos de sistemas continuos como discretos. La descripción interna es esencialmente estructural, puesto que procura describir el comportamiento del sistema en términos de variables de estado y su interdependencia. La descripción externa es esencialmente funcional, puesto que describe el comportamiento por su interacción con el medio, prescindiendo de los detalles internos. Estos modos de descripción se corresponden, en esencia, con un ‘orden de partes’ y un ‘orden de procesos’, respectivamente, y en determinadas circunstancias es factible la transmutación entre ambos modos descriptivos. Ahora bien, la precedente visión de sistema como conjunto ‘topológico’ podría también ser la expresión formal de la visión de la ciencia clásica ‘reduccionista’ y ‘mecanicista’. Es importante remarcar entonces que es el agregado explícito de la consideración de las relaciones entre los ‘elementos’ del conjunto (y, por extensión de la idea, con el entorno) lo que le confiere la perspectiva de la ciencia actual a esta noción. En este contexto, debe considerarse que las relaciones entre los ‘elementos’ de un conjunto dependerán de como se efectúe la división de este en subconjuntos. Esta partición es factible en forma de subconjuntos disjuntos o intersecados, anidados o no, hasta obtener la discriminación de los ‘elementos’. Consecuentemente, en la división de un sistema en subsistemas están implicadas las relaciones entre los subsistemas resultantes, y una división tal que las relaciones resultantes sean ya intensas, ya alineales, fomenta la complejidad asociada al sistema53. De forma que - após de la identificación de las características topológicas con las concretas - resta identificar las relaciones entre los elementos del conjunto/sistema; se debe lograr una forma de traducir las relaciones 50 La ciencia ‘Occidental’ expresa particular preocupación por el ‘tiempo’. Según algunos autores, lo interpreta y representa supeditada a condicionantes lingüísticas y culturales (ver sección 2.1.2.2). 51 Como se interpreta usualmente, sistemas continuos son aquellos en los cuales la variable tiempo se expresa como una cantidad continua, en el sentido de continuidad de una variable matemática. Correspondientemente, en los sistemas discretos el tiempo se expresa en formas ‘no continuas’. 52 Sistemas que presentan variaciones espaciales se describen mediante ecuaciones diferenciales en derivadas parciales. 53 El concepto de complejidad se aborda en la sección 1.4, y la noción de sistema complejo, en la sección 1.5. Diseño de Sistemas Electrónicos Complejos [ 1.3 ] Sistemas - 39 concretas y reales a relaciones ‘topológicas’, cuidando el posible escalamiento de la complejidad en dicho proceso. Se requiere, entonces, una noción concreta de ‘complejidad’. Conferida así la noción de sistema, se retoma en este punto el objeto principal del presente capítulo: el estudio de la complejidad y su asociación a los sistemas. [ 1.4 ] COMPLEJIDAD [ 1.4.1 ] EL FENÓMENO DE LA COMPLEJIDAD “Hoy en día, ‘complejidad’ es una palabra muy de moda. Hemos aprendido muy bien que muchos de los sistemas que intentamos abordar en nuestra ciencia e ingeniería contemporáneas, son verdaderamente complejos. Son tan complejos, que no resulta obvio que aquellos poderosos trucos y procedimientos que nos han servido durante centurias para el desarrollo de la ciencia e ingeniería modernas, nos permitan hoy comprender y manejar los sistemas complejos contemporáneos. Estamos comenzando a percibir la necesidad de una ‘ciencia de sistemas complejos’, y estamos comenzando a construirla” 54 [Sim01] Estas palabras corresponden al discurso de H. Simon (‘Nobel’ de Economía 55 en 1978) ante el 5° Congreso Mundial de Diseño Integrado y Procesos. Declaran en forma lúcida una cuestión subyacente - y, me atrevo a agregar, normalmente inadvertida - en múltiples y diversas actividades humanas: la necesidad del estudio de la complejidad en sí misma: “No es novedad para la ciencia el intentar comprender sistemas complejos”. “Lo que es nuevo acerca de la presente actividad, no es el estudio de sistemas complejos particulares, sino el estudio del fenómeno de la complejidad en sí mismo”56 (H. Simon, citado en [MET02]) Esta necesidad del estudio del fenómeno de la complejidad surge, según el citado discurso de Simon, de la ineficacia de los métodos tradicionales ante las dificultades que presentan para la comprensión humana los actuales sistemas científico-tecnológicos. Sin embargo, el mismo Simon (con formación en ciencias sociales - economía, ciencia política - organizaciones y administración, entre otras cosas) así como también otros autores, no duda al clasificar los sistemas sociales contemporáneos como sistemas complejos [Sim01]. Consecuentemente, me atrevo a afirmar que la necesidad del estudio de la complejidad per se es algo a reconocer y encarar también en áreas como la economía y las ciencias sociales (por citar solamente un par de áreas controversiales que afectan hasta el más común de los mortales57) y que no necesariamente corresponde este estudio a temas circunscritos al ámbito científico - tecnológico. Notablemente, la noción de complejidad como fenómeno es manifiesta y explícita en la visión de Hawking del futuro de la humanidad que se presentó sucintamente en la sección 1.1.2. Asimismo, la propuesta de Tegmark de adoptar un punto de vista Platónico para 54 Texto traducido del original, en inglés. Si bien se ha intentado reproducir fielmente el espíritu del texto original, es posible se hayan introducido sesgos de acuerdo a la percepción personal tanto del texto como de su contexto. 55 Es importante aclarar que el “Premio Nobel de Economía” NO EXISTE. Es, en realidad, una denominación errónea del “Premio del Banco de Suecia en Ciencias Económicas en memoria de Alfred Nobel”, el cual es otorgado - por igual monto, y en la misma fecha que los premios Nobel - por el Banco Central de Suecia, institución que lo estableció en 1969. Recientemente, uno de los herederos de Alfred Nobel puso sobre el tapete esta controversia, impostura que en ámbitos científicos está denunciada desde hace tiempo. “La controversia sobre el ‘premio del Banco de Suecia en Ciencias Económicas’ - un premio cuyo objetivo era conferir a esta profesión un aura de ciencia - hizo que resurgieran todas estas importantes cuestiones. Una impostura científica se pone en juego.” ([HH05], p. 34). 56 Texto traducido del original, en inglés. Ver nota 54, p. 39. 57 La distinción que efectúo entre economía y ciencias sociales responde al uso cotidiano de los términos que percibo actualmente; de hecho, se contrapone a mi firme convicción que la economía debiera ser prima facie una ciencia social, y no una pretensión de axiomatizar rígidamente los comportamientos sociales. Ingeniería Electrónica – Universidad Católica del Uruguay 40 - [ 1 ] Complejidad y Sistemas Complejos simplificar la descripción de un modelo de universos paralelos (presentada en la sección 1.1.1) estaría sustentando de hecho a la afirmación de Simon referente a la ineficacia de los métodos tradicionales para resolver los temas de nuestra ciencia contemporánea. Naturalmente, adhiero a las palabras de Simon, y pretendo que estas sirvan de hilo conductor del pensamiento a lo largo de todo el presente documento58. Cabe efectuar una observación, y ésta es que - irónicamente, dado el propósito de esta sección - resulta difícil hablar de complejidad sin hacer referencia a los sistemas donde esta se manifiesta. No obstante, en todo momento se sigue con el propósito de considerar la complejidad como un fenómeno en sí mismo, y se debe hacer el ejercicio de desligarla de los sistemas, identificándola como un ‘factor común’. En lo que resta de este capítulo, se busca establecer el significado59 de ‘complejidad’ y ‘sistema complejo’, desde una perspectiva general. Las manifestaciones particulares de la complejidad en sistemas científico - tecnológicos - especialmente los electrónicos - serán objeto de otros capítulos en este documento. [ 1.4.2 ] FUENTES DE COMPLEJIDAD ¿Son los sistemas complejos en sí mismos, o aparentan serlo porque no comprendemos sus mecanismos intrínsecos y sus interacciones? Una primer aproximación al fenómeno de la complejidad es proporcionada por Warfield, citado por Maxwell, Ertas y Tanik en [MET02], quien establece la existencia de dos fuentes de la complejidad asociada con cada sistema: “Similar a la diferencia entre la definición y el significado de una palabra, existen siempre diferencias entre la realidad de un sistema” (complejidad circunstancial60, asociada al sistema en sí; el sistema es la fuente de complejidad) “y la percepción que de ese sistema tienen los individuos.” (complejidad cognitiva, asociada al observador humano). “Los seres humanos no podemos recolectar y analizar suficiente información acerca de sistemas complejos, tal que permita la total comprensión y conocimiento del sistema, y para empeorar aún más las cosas, no interpretamos correctamente la información que recibimos. La complejidad podría también ser definida como la limitación de la mente humana y sus capacidades de razonamiento”61. En principio, la respuesta según Warfield a la pregunta que abre esta sección, es que los sistemas pueden ser complejos en sí, pero que además, nosotros podemos no ser capaces de comprenderlos adecuadamente. La complejidad emana de ambas fuentes; la primer fuente es el propio sistema y la información o características que de alguna manera ‘emite’, que están disponibles para ser coleccionadas y comprendidas por los observadores humanos. La segunda fuente es la distorsión o mal interpretación de tal información por el receptor. Maxwell, Ertas y Tanik citan también a Wolfram, quien propone tres fuentes para la complejidad (asociada a un sistema): la primera, corresponde a la permanente interacción del sistema con su entorno; la segunda fuente proviene de las condiciones iniciales aleatorias o complejas a las que está sometido el sistema, y la tercera es intrínseca al sistema, dado que este puede ‘producir’ complejidad sin estímulos desde el entorno. Un análisis algo burdo devolvería que la proposición de Wolfram meramente agrega detalles a la complejidad circunstancial definida por Warfield, poco afectando al concepto de complejidad cognitiva. Sin embargo, cabe notar que - dependiendo de como se considere el límite entre el sistema y el entorno - la primera y la tercera fuentes de complejidad aducidas por Wolfram pueden dar origen a confusiones en tal burdo análisis: si el entorno del sistema involucra a los observadores humanos, podrían superponerse de forma poco clara las fuentes 58 Y con ellas reivindico las muy probables injurias proferidas contra mi persona ante las digresiones iniciales acerca de física teórica 59 Ver sección 1.2 60 ‘Situational complexity’ en el original. 61 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 1.4 ] Complejidad - 41 de complejidad según Wolfram con las fuentes cognitiva y circunstancial de Warfield. No obstante, el presente trabajo no busca dilucidar este tipo de aspectos; lo que interesa es alertar sobre las posibles fuentes de complejidad, de forma que se habilite a comprender las estrategias empleadas en los procesos de diseño electrónico para lidiar con las mismas - temas que se tratarán más adelante en capítulos específicos. [ 1.4.3 ] ESCALAMIENTO DE LA COMPLEJIDAD En [MET02] se cita a Warfield afirmando que la complejidad de un sistema puede incrementar con el transcurso del tiempo, y que - de hecho - lo hará. Afirma además que la interacción entre subsistemas aumenta la complejidad del sistema, y dado que los sistemas pueden cambiar y adaptarse, estas interacciones pueden ser más frecuentes con el tiempo. En primera instancia, y con escaso esfuerzo, se pueden reconocer las inferencias realizadas en la sección 1.1.2 reflejadas en las afirmaciones precedentes, sobre el inevitable incremento en la complejidad de los sistemas. Es claro que bajo ningún concepto pueden estas afirmaciones considerarse una ‘demostración’ de la veracidad de tales inferencias, aunque sí cabe reconocer que constituyen una opinión perfectamente alineada con las mismas. Y como se verá más adelante, estas afirmaciones pueden ser fundadas en la concepción de ‘sistema complejo’ que propone H. Simon, a introducirse en la siguiente sección. Warfield describe un par de consideraciones adicionales al respecto del escalamiento de la complejidad, que se deben a la escala del problema y al factor ‘humano’, las cuales son de particular importancia. Afirma que cuando el problema es pequeño, el equipo de trabajo es capaz de ‘rodearlo’, y por tanto capaz de ‘ver’ la totalidad del sistema y comprender todas sus ramificaciones y requerimientos - inclusive a medida que el sistema evoluciona. Sin embargo, en problemas de gran escala, es el sistema quien ‘envuelve’ al equipo humano, y por tanto éste puede no ser consciente de grandes partes del sistema, y puede no ser capaz de apreciar completamente las interacciones entre sus componentes - quizás ni siquiera logre ver la totalidad de los componentes del sistema. En esta situación, la percepción del equipo es inicialmente limitada, pero debido a su evolución temporal, el sistema emitirá información de sus subsistemas e interacciones, haciéndolos visibles al equipo con el correr del tiempo. Según Warfield, este incremento de información en el tiempo es el mecanismo responsable del escalamiento de la complejidad, causado por la (gran) escala de los sistemas. A este factor de escalamiento, Warfield adiciona la complejidad cognitiva, pero ahora entendida como la interacción entre integrantes del equipo de trabajo, quienes deben establecer una visión común del sistema en cuestión. Este último es un problema no menor, puesto que involucra las percepciones, intereses, identidad y política individuales de cada miembro del equipo, problemas no presentes en situaciones individuales. Nuevamente, es posible encontrar entre las observaciones de la sección 1.1.2, coincidencias con las afirmaciones precedentes. En particular, la visión de Hawking acerca de la necesidad de potenciar el desarrollo biológico para nivelar la capacidad humana con la tasa de actualización de la información escrita, constituye un reconocimiento de la gravedad del ‘problema que rodea al equipo’ - y, más bien, de sus posibles consecuencias. Aunque en forma más velada, igualmente es posible reconocer una situación similar en el planteo de Tegmark, revisado en la sección 1.1.1: su argumento en pro de una visión Platónica del universo es, en definitiva, un intento por ‘rodear’ al problema, y abarcarlo hasta contener todas sus ramificaciones; la visión Aristotélica se correspondería con la situación inversa, donde el problema tiende a rodear al equipo, o éste está ‘inmerso’ en el sistema. Aún es posible adicionar otros términos al escalamiento en complejidad: cambios en la naturaleza del sistema, o en la comprensión que tiene el equipo del mismo; el objetivo de un diseño o proyecto puede cambiar o redefinirse, así como los recursos disponibles. Todos estos factores contribuyen al incremento de la complejidad, y deben ser tomados en cuenta adecuadamente, no siendo aconsejable subestimarlos a priori. Ingeniería Electrónica – Universidad Católica del Uruguay 42 - [ 1 ] Complejidad y Sistemas Complejos Naturalmente que el sentido común permite intuir la pertinencia de las afirmaciones de Warfield, sin necesidad de más careos de opinión. Sin embargo, como se mencionó en 1.2, no se considera prudente asumir que tal visión surge indefectiblemente en cada uno de nosotros, ni que posee una interpretación única; la inclusión explícita de estas afirmaciones aparentemente triviales responde precisamente a esa intención de ser explícitos, en pos de asegurar una visión común. [ 1.5 ] SISTEMAS COMPLEJOS Un sistema, de acuerdo a la discusión que se presenta en la sección 1.3, es un orden dinámico de partes y procesos en interacción no trivial ni despreciable cuyo grado de complejidad está dado fundamentalmente por el carácter de la relación entre las partes. En la presente sección se pretende fundamentar la precedente afirmación, en base a una caracterización genérica de las relaciones entre las partes de un sistema, las que conforman su estructura. “Axelrod y Cohen (1999) establecen que ‘la complejidad deriva de causas fundamentales, y no siempre puede ser eliminada’. Más aún, comentan: ‘Si bien los sistemas complejos pueden ser arduos de predecir, pueden tener un cierto grado de estructura y así permitir el mejoramiento mediante una intervención consciente’. De forma que, el identificar la estructura de un problema puede ser una de las maneras de lidiar con su complejidad. Axelrod y Cohen también se apegan a la idea presentada por Murray Gell - Mann (1995) quien propone que los sistemas complejos son difíciles de predecir no porque sean aleatorios, sino porque sus regularidades no se pueden describir en forma concisa62. Por tanto, la complejidad se diferencia de la aleatoriedad” 63 [MET02]. Sin embargo, puede observarse en la citada afirmación que la inexorabilidad sería característica del fenómeno de la complejidad. Esto se había inferido en la sección 1.1.2, donde esa característica estaba asociada a procesos evolutivos inevitables. Si bien aquí se afirma que los sistemas complejos no necesariamente son aleatorios, mientras que en los referidos procesos evolutivos - estrictamente, en los biológicos se adujo que el azar formaba parte del proceso de formación de sistemas complejos, esto no constituye una contradicción, puesto que lo que se afirma es que la aleatoriedad no se presenta en el sistema, y nada se menciona acerca de su proceso de formación. Consecuentemente, en la discusión acerca de la estructura de sistemas catalogados como complejos, no se debiera hallar la aleatoriedad como elemento constitutivo. [ 1.5.1 ] JERARQUÍA Simon provee una idea más elaborada sobre las características de los sistemas complejos que las simples afirmaciones precedentes, aportando indicios para la justificación de tales asertos. “Uno de los aspectos de la complejidad que ha suscitado considerable interés, es que la mayoría de los sistemas complejos que encontramos en la naturaleza (estructuras como átomos y moléculas, y sistemas como organismos vivos) así como los más complejos artefactos que hemos aprendido a diseñar y construir, comparten una característica general: son de naturaleza jerárquica.”64 [Sim01] Esta propiedad de jerarquía asociada por Simon a los sistemas que él clasifica como complejos, es posible reconocerla inmediatamente en el ejemplo presentado en la sección 1.1.1, donde la jerarquía es dada por los niveles de universos paralelos que propone Tegmark. Considero innecesario el discutir que el sentido común clasificaría al ‘multiverso’ de Tegmark como un sistema verdaderamente complejo - quizás, el más complejo que se pueda considerar, habida cuenta que todos los sistemas a los que nos podamos referir están a fortiori incluidos en 62 No subestime el lector esta afirmación. El problema de la descripción concisa se trata específicamente en la sección 3.3.6.2, pero se halla relacionado con un problema filosófico trascendental, cuya cobertura es esencialmente el contenido completo de la extensa sección 3.3 de este documento. 63 Texto traducido del original, en inglés. Ver nota 54, p. 39. 64 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 1.5 ] Sistemas Complejos - 43 este. No obstante, resta dilucidar si la jerarquía es realmente una característica común a los sistemas considerados como complejos, y a su vez, esto implica un consenso previo en cuanto a que significa sistema complejo – significado que aún no ha sido establecido. [ 1.5.2 ] ‘MODULARIDAD’ “Estos sistemas tienden a presentar una característica adicional: las conexiones e interacciones internas en cada subsistema son más frecuentes y rápidas que aquellas entre subsistemas. Sistemas que ostentan esta propiedad son llamados modulares65, y no es casualidad que la mayoría de los sistemas complejos - naturales, o concebidos por la humanidad - sean modulares. En particular, la ‘modularidad’ facilita su formación, e incrementa significativamente su posible tasa de evolución y desempeño - y por ende incrementa su chance de supervivencia en la competencia con otros sistemas.”66 [Sim01] A la característica jerárquica de los sistemas complejos, Simon adiciona la precedente propiedad de ‘modularidad’, la cual les confiere ventajas o beneficios para su formación, evolución y rendimiento. Sustenta su proposición efectuando las siguientes observaciones: • Considérese sistemas pequeños, que posean la propiedad de poder formar en primera instancia pequeñas agrupaciones, las que a su vez podrán agruparse en conglomerados de mayor tamaño, y así sucesivamente. Tales sistemas pequeños podrán gradualmente generar sistemas de mayor tamaño y complejidad67. El punto es que serán capaces de hacerlo más frecuente y rápidamente que si la estructura final, más grande, debiera ser obtenida a partir de los mismos componentes más pequeños en una sola etapa. Debidamente elaborado, este proceso podría explicar, por ejemplo, la evolución desde moléculas simples a complejas68, e incluso hasta los organismos como virus y bacterias. • Supóngase que ya se posee un sistema complejo69, formado por partes especializadas. Si los subsistemas están levemente acoplados (por ejemplo, sólo mediante relaciones de entradasalida) y sus procesos internos se conservasen independientes, cada uno de los subsistemas podría mutar a formas más eficientes sin alterar a los demás, ni degradar la funcionalidad del sistema total. En ambientes donde prima la ‘selección natural’, esta característica les conferiría una evolución más rápida frente a sistemas que, sin esa posibilidad de mejorar ‘por partes’, deberían hacerlo ‘completamente’ - y con éxito - para sobrevivir. Simon aduce que estos argumentos son expresables rigurosamente en forma matemática, y que “... Esta idea (por primera vez formalizada matemáticamente en 1956) ya anunció la efectividad del venerable concepto de ‘programación estructurada’ de la ingeniería informática”70 [Sim01] A efectos ilustrativos, Simon cita el caso de los ‘algoritmos genéticos’, cuya implementación computacional ha permitido observar - mediante simulaciones - que la tasa evolutiva de aquellos sistemas con la propiedad de modularidad es efectivamente superior a la de sistemas que no poseen tal propiedad. Un resultado de tal tipo de simulación se puede ver en [Haw02] 65 Simon los define como ‘nearly decomposable’, algo que traducido literalmente - abusando del lenguaje es ‘casi descomponibles’, y que en realidad quiere significar ‘pasibles de ser descompuestos en partes’, a las que usualmente se las llama subsistemas. He preferido emplear el término ‘modulares’ para evocar la expresión original en forma compacta, aunque luego me vea en el incómodo aprieto de emplear el inexistente sustantivo ‘modularidad’ para referirme a la propiedad de ser modular. 66 Texto traducido del original, en inglés. Ver nota 54, p. 39. 67 Implícitamente, Simon asocia escala con complejidad. Sin embargo, cabe notar que de sus palabras se infiere que un mero agrupamiento de sistemas que no interactúan entre sí, no califica como sistema. 68 En principio, aquí debe entenderse ‘complejas’ en el sentido empleado por quienes estudian esta área del conocimiento (químicos, biólogos moleculares, etc.) y no como una referencia circular: aún no hemos dado significado a ‘complejidad’. Pero, naturalmente, el significado que pretende dar Simon a ‘sistema complejo’ está alineado con ‘complicación’, como se interpreta comúnmente; lea entonces ‘sistema complicado’. 69 Aquí, ‘complejo’ depende de la interpretación personal del ‘sujeto omitido’ en la frase. 70 Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 44 - [ 1 ] Complejidad y Sistemas Complejos , p. 162. Personalmente, he visto un ensayo de algoritmos genéticos, elaborado por estudiantes de informática en mi facultad, aplicado a la generación de ‘jugadores’ capaces de aprender ciertos juegos implementables computacionalmente. De acuerdo a los resultados obtenidos por estos estudiantes – ejemplificados mediante ejecución de una simulación - tal tipo de jugadores ‘genéticos’ efectivamente presentaban una eficacia superior a sus contrincantes generados con capacidades prefijadas, y de hecho, lograban la superioridad en pocas generaciones. Cabe notar que el concepto de ‘modularidad’ no es de exclusivo interés teórico. Para quienes diseñan organizaciones y empresas, aparece bajo el nombre de ‘división del trabajo’, y constituye un paradigma esencial; similarmente, para aquellos que diseñan procesos de producción y lo emplean bajo la denominación de ‘especialización’, la ‘modularidad’ es un concepto significativo71. De hecho, Simon cree que el concepto de ‘modularidad’ debe ser una restricción central de diseño, si se pretenden obtener sistemas comprensibles - para nosotros, o para los sistemas mismos - y perfectibles mediante revisión72. [ 1.5.3 ] SÍMBOLOS SENCILLOS Maxwell, Ertas y Tanik resumen estas y otras propiedades de los sistemas complejos enunciadas por Simon: “Las cuatro características de los sistemas complejos, de acuerdo a Simon, son: • Los sistemas complejos son frecuentemente jerárquicos • La estructura de los sistemas complejos emerge vía procesos de evolución, y esos sistemas jerárquicos 73 evolucionarán mucho más rápidamente que aquellos que no lo son • Los sistemas complejos organizados jerárquicamente, pueden ser descompuestos en subsistemas para el análisis de su comportamiento • Dada su naturaleza jerárquica, los sistemas complejos pueden ser frecuentemente descritos, o representados, en términos de un conjunto de símbolos relativamente sencillo”74 [MET02]. Del último punto se sigue que, a las características de los sistemas complejos en la visión de Simon (discutidas precedentemente) se adiciona una característica más: la de poder ser expresados en términos relativamente sencillos. Sin embargo, los autores citados reconocen que la posibilidad de descomponer un sistema jerárquico en subsistemas –lo que proporcionaría un método que aplicado recursivamente podría llevar hasta el conjunto de símbolos sencilloslamentablemente dista de ser una tarea trivial75. 71 Este concepto de ‘sistema modular’ de Simon, así como la evolución de la visión de la ciencia ‘clásica’ a la actual en función del concepto de organización (secciones 1.3.1 y 1.3.2) y el concepto de sistema de Bertalanffy (sección 1.3.3) son manifiestos en varios de los artículos de la publicación nº10 de PRISMA, sobre la “Cultura y cambio en las organizaciones contemporáneas” [GASBRMLG98]. F. Sorondo explica que el cambio acaecido en la concepción de las organizaciones - el cual pasa de una perspectiva ‘racional’ a una ‘cultural’ - es consecuencia del reconocimiento de la significativa incidencia que tienen las interacciones entre grupos e individuos que integran las organizaciones (pp. 53-59). A. García concibe la relación entre los conceptos de organización y sistema (pp. 12-15) similarmente a Bertalanffy, y el concepto de sistema modular es manifiesto en el artículo de C. Baráibar, donde se visualiza a la empresa como un ‘sistema sociotécnico abierto’ (pp. 68-72) conformado por ‘equipos semiautónomos de producción’ (pp. 72-74). 72 Particulariza la idea en los sistemas informáticos, para los cuales anuncia en el discurso citado una serie de recomendaciones en forma de ‘objetivos de diseño’ [Sim01] 73 El texto original emplea el término ‘hieratic’ en lugar del término ‘jerárquico’ que se tradujo en su lugar. “hierático, ca. ║4. Dícese de la escultura y la pintura religiosas que reproducen formas tradicionales” [RAE84]. No encuentro motivo para el empleo del término ‘hierático’, con excepción quizás de la mención a ‘reproducción de formas tradicionales’. 74 Texto traducido del original, en inglés. Ver nota 54, p. 39. 75 Debe notarse que el concepto de ‘modularidad’ aparece implícito con el de jerarquía en la cita. Diseño de Sistemas Electrónicos Complejos [ 1.5 ] Sistemas Complejos - 45 Si bien descomponer un sistema jerárquico en subsistemas no es una tarea trivial, la posibilidad teórica de describir a un sistema complejo a partir de un conjunto relativamente sencillo de símbolos, permite relacionar el grado de complejidad del sistema con el detalle y escala de su descripción. Si se pretende describir un sistema complejo de estructura jerárquica modular en términos de un conjunto pequeño de símbolos, y hacerlo en una forma compacta, esa descripción necesariamente aprovechará las características enunciadas del sistema: en virtud de la ‘modularidad’, los símbolos primarios deberán usarse principalmente para describir los módulos; siguiendo la jerarquía, estos módulos constituirán la estructura, pero en este nivel de descripción los símbolos primarios quedan ’encapsulados’ en la descripción de los módulos, siendo estos últimos los símbolos que mayoritariamente describirán la estructura76. Si, por el contrario, se abate la jerarquía estructural, y se ignoran o fusionan las fronteras que delimitan los módulos, el volumen de información necesario para realizar la misma descripción del sistema desde esta perspectiva ‘plana’ - en términos de los símbolos primarios exclusivamente - será significativamente superior al caso anterior77. En virtud del carácter de las relaciones entre las partes de un sistema, puede inferirse que la descripción ‘plana’ del sistema presenta una complejidad significativamente superior a la descripción estructurada. De esta forma, la escala - interpretada como el volumen total de información descriptiva de un sistema, en términos de un conjunto de símbolos sencillos - es un indicador de la complejidad del sistema. Conviene aclarar que la escala de un sistema no debe interpretarse como algo relacionado con su ‘volumen físico’ o ‘extensión’, sino relacionada a la cantidad de información de una descripción - la escala podría asimilarse al índice del conjunto de entes componentes del sistema, que la descripción habilita a diferenciar. Equivalentemente, el detalle - asimilado como el volumen de información descriptiva en términos de los símbolos primarios,de parte del sistema, relativo al total - es también un indicador de complejidad. De esta forma, detalle y escala pueden emplearse respectivamente como indicadores ‘local’ y ‘global’ de complejidad de un sistema, tal como se ha inferido tempranamente en las secciones 1.1.1 y 1.1.2 de este capítulo. [ 1.6 ] RESUMEN Desde la visión ‘perspectivista’ de la ciencia moderna, sistema es un conjunto de elementos y sus relaciones, las cuales representan interacciones entre los elementos del conjunto y con el entorno, que son de carácter dinámico, y no necesariamente ‘débiles’ ni ‘lineales’. En otras palabras, sistema es un orden dinámico de partes y procesos en interacción no trivial ni despreciable. Se consideran dos modos de descripción formal de un sistema, la descripción interna y la externa, que en determinadas circunstancias pueden convertirse una en otra e intercambiarse. La descripción interna consiste usualmente en un conjunto de n medidas (variables de estado) cuyo cambio en el tiempo (trayectorias en el espacio de estados n-dimensional) se expresa analíticamente - en el caso de sistemas cuyas variables de estado varían con continuidad (sistemas continuos) - por un conjunto de ecuaciones diferenciales simultáneas de primer orden, ordinarias o en derivadas parciales, lineales o alineales (ecuaciones dinámicas) o mediante ecuaciones a diferencias para los sistemas cuyas variables de estado no son de tipo continuo (sistemas discretos). Es una descripción esencialmente estructural, puesto que procura describir el comportamiento del sistema en términos de ‘elementos internos’ y su interdependencia. La descripción externa considera al sistema como una ‘caja negra’ y expresa la relación de este con el entorno mediante funciones de transferencia entre ‘entradas’ y ‘salidas’. Es esencialmente 76 Naturalmente, este procedimiento de ‘encapsular’ detalles en unidades más abstractas puede reiterarse, dando origen a múltiples niveles de ‘encapsulamiento’. 77 Groseramente, podría asimilarse esta situación a la descripción de un conjunto por comprensión y extensión, respectivamente. Ingeniería Electrónica – Universidad Católica del Uruguay 46 - [ 1 ] Complejidad y Sistemas Complejos funcional, puesto que describe el comportamiento del sistema por su interacción con el medio, prescindiendo de los detalles internos. Si bien la interacción dinámica entre partes o procesos de un sistema puede sugerir una incipiente complejidad, en este documento se promueve la consideración de esta última como un fenómeno en sí mismo, de forma de admitir la clasificación de sistemas tanto como complejos como no complejos. La complejidad es un fenómeno asociado a sistemas y a las limitaciones de la mente humana, que deriva de causas fundamentales y no siempre es posible eliminar. Los sistemas a los cuales se asocia el fenómeno de la complejidad pueden ser de la más diversa índole, no necesariamente limitándose el fenómeno a los sistemas científico-tecnológicos, sino afectando a la totalidad de los sistemas con los que interactúa el ser humano. De la capacidad para extraer la complejidad como ‘factor común’ a los sistemas complejos, y comprender el fenómeno de la complejidad en sí, dependerá en gran medida el éxito que se tenga en la solución de los problemas que enfrenta actualmente la humanidad, entre los cuales se cuentan la necesidad de mantener el hábitat, las fuentes de aire y agua potables, alimentos, energía, servicios de salud, estabilidad política, etc. Maxwell, Ertas, y Tanik consolidan las observaciones acerca de la complejidad como fenómeno asociado a sistemas de ingeniería: “La complejidad emana de la naturaleza de los grandes sistemas interconectados, y es escalada por las características personales, las perspectivas, y el entorno de los individuos que conforman el equipo de diseño. Es importante que los ingenieros comprendan la complejidad en sí, y cómo esta afecta la comprensión y capacidad de predicción del comportamiento de los sistemas. Es más importante aún el manejar la complejidad de forma que no desborde la capacidad de diseño, e impida el desarrollo de soluciones efectivas” 78 [MET02]. Como fenómeno, a la complejidad pueden reconocérsele fuentes u orígenes. Se identifican básicamente dos fuentes de complejidad asociada a sistemas: la primer fuente es el propio sistema y la información o características que de alguna manera ‘emite’, las que están disponibles para ser coleccionadas y comprendidas por los observadores humanos, y que Warfield a bautizado como complejidad circunstancial por derivar del propio sistema en cuestión. La segunda fuente es la distorsión o mal interpretación que efectúa el receptor de la información emitida por el sistema, a la cual Warfield denomina complejidad cognitiva por estar asociada a las limitaciones de la mente humana y sus capacidades de razonamiento. Debe advertirse que es esencial para la correcta identificación de las fuentes de complejidad, la adecuada distinción entre lo que se considera el sistema y lo que es considerado su entorno, distinción que - en ciertos casos, por el propio desconocimiento del sistema - no es factible realizar con certeza o precisión. Al respecto, cabe considerar dos situaciones: la primera, donde el sistema es pasible de ser abarcado por el o los individuos que lo tratan, y la segunda - verdaderamente problemática - donde es el sistema quien ‘rodea’ al equipo. Es en el último caso donde las fuentes circunstancial y cognitivas de la complejidad pueden inicialmente ser indistinguibles, y solamente la emisión de información conforme evoluciona el sistema en el tiempo, eventualmente habilitará a la distinción entre ambas fuentes de complejidad. En cuanto fenómeno, además de orígenes, a la complejidad asociada a sistemas cabe reconocerle determinadas características. El reconocimiento de estas características, y su adecuada interpretación, son esenciales al momento de plantear estrategias para lidiar con los sistemas complejos. “En resumen, podríamos definir un sistema o un problema complejo como uno que contiene muchos componentes y subsistemas, organizados jerárquicamente, y que presentan múltiples interconexiones, no lineales, que son difíciles de comprender, reconocer, y predecir.”79 [MET02]. 78 Texto traducido del original, en inglés. Ver nota 54, p. 39. 79 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 1.6 ] Resumen - 47 Una de las características más significativas que presentan los sistemas complejos, es que son frecuentemente estructurados, y que esta estructura generalmente es jerárquica. En virtud de estas dos propiedades, resulta factible la descomposición de sistemas complejos en subsistemas, siguiendo la estructura y jerarquía del sistema original. Obtenida una adecuada descomposición, se puede trasmutar el análisis del sistema original por el análisis de cada subsistema por separado más el análisis de las interacciones entre los mismos. Siendo altamente probable que cada subsistema presente un grado de complejidad menor que el sistema completo, es esperable obtener una reducción significativa de la complejidad. Sin embargo, debe considerarse si la adición del análisis de las interacciones entre subsistemas no torna esta ventaja en aparente. Los sistemas complejos tienden a presentar una importante característica adicional: las conexiones e interacciones internas en cada subsistema son más frecuentes y rápidas que aquellas entre subsistemas, lo que les confiere ‘modularidad’. En particular, la estructura modular de aquellos sistemas complejos que emergen vía procesos de evolución facilita su formación, e incrementa significativamente su posible tasa de evolución y desempeño, como es el caso de sistemas biológicos. Este hecho tiene una importante consecuencia, y es que reduce significativamente la complejidad en las interacciones entre los subsistemas componentes de un sistema complejo, por lo cual un análisis de este tipo de interacciones entre subsistemas se torna factible y - relativamente - sencillo. Aquellos sistemas complejos en los cuales se combinen las características enunciadas precedentemente, poseerán una estructura jerárquica modular. En virtud de la propiedad de ‘modularidad’, la interacción entre subsistemas no adquiere la complejidad desplazada por la descomposición jerárquica del sistema en partes, por lo que efectivamente es posible trabajar a un nivel de complejidad significativamente inferior al original mediante una adecuada descomposición. Los sistemas complejos de estructura jerárquica y modular pueden ser frecuentemente descritos o representados en términos de un conjunto de símbolos relativamente sencillo. Esta propiedad es evidente, por ejemplo, en el caso de los computadores de uso general. Se puede desarrollar una vasta y compleja variedad de tareas80 a partir de un conjunto de símbolos relativamente sencillo, como son las instrucciones del procesador81. La complejidad del sistema final está dada por la combinación de módulos de código82 en forma jerárquica, donde las interconexiones entre módulos son simples y escasas en relación a las conexiones internas o al conjunto de interconexiones de módulos en un nivel jerárquico inferior. Dada la posibilidad de describir a un sistema complejo a partir de un conjunto relativamente sencillo de símbolos, es posible inferir el grado de complejidad de un sistema a partir del detalle de su descripción, es decir, del volumen de información requerido para describir parte del sistema, relativo al volumen que se requeriría para describirlo en su totalidad. Asimismo, entendiendo por escala del sistema el volumen total necesario de información - en términos de los símbolos primarios - que lo describe en forma no estructurada, es posible emplear la escala del sistema en forma equivalente al detalle descriptivo del sistema. Tal como se emplean en este documento, detalle y escala pueden entonces asimilarse a indicadores de la complejidad, 80 No incidentalmente, la complejidad de tales tareas es factible mediante incesantes procesos de evolución; esto refuerza la idea que los sistemas que surgen de procesos evolutivos exitosos ostentan la propiedad de ‘modularidad’. 81 Las ‘instrucciones del procesador’ se refieren efectivamente a las micro - instrucciones del dispositivo programable de silicio, y no a las instrucciones en algún posible lenguaje ensamblador, o instrucciones y construcciones de algún lenguaje de programación de nivel superior. 82 Aquí, ‘código’ debe interpretarse como código fuente, es decir, legible por el ser humano; el código objeto (interpretable directamente por el procesador) puede haber sufrido durante el proceso de ensamblado (o compilación/ensamblado) de un abatimiento de jerarquía, fusión de módulos, u otras modificaciones. Ingeniería Electrónica – Universidad Católica del Uruguay 48 - [ 1 ] Complejidad y Sistemas Complejos generados respectivamente a partir de medidas locales o globales del volumen de información descriptiva del sistema. “Un sistema complejo involucra agentes, personas, organizaciones, entidades políticas, programación de computadoras, etc., capaces de crear, destruir, o cambiar partes y subsistemas y adaptar las interacciones entre partes y subsistemas.”83 [MET02]. Así, la complejidad asociada a sistemas no es, en general, un fenómeno estático. Se observa que los sistemas considerados complejos - según el significado de sistema complejo y complejidad establecidos precedentemente - experimentan en general un inexorable incremento en complejidad. Una de las causas del incremento en la complejidad de los sistemas es el incremento en su escala. Y, en esencia, este escalamiento deriva de su evolución. Los procesos evolutivos tienden a aumentar constantemente la escala de los sistemas que engendran, como es posible observar en los procesos biológicos, así como en gran número de procesos evolutivos asociados a actividades humanas84. Así, es esperable que sistemas surgidos de procesos evolutivos hereden esa propiedad de escalamiento progresivo e inevitable y, consecuentemente, experimenten un inexorable incremento en complejidad. Asimismo, de la interacción entre procesos evolutivos es esperable un escalamiento adicional de la complejidad. Otro de los factores de incremento de la complejidad en sistemas es la degradación de su estructura modular. Este factor, al igual que el incremento en escala, también deriva de la evolución de los sistemas. Dado que en el curso de su evolución los sistemas pueden cambiar y adaptarse, las interacciones entre componentes pueden hacerse más frecuentes con el tiempo, y este incremento en la interacción entre subsistemas puede desvirtuar la estructura modular, según la clase y dinámica de las nuevas conexiones. Cabe notar que este factor de incremento en complejidad compromete el éxito evolutivo del sistema. En particular, para el caso de actividades humanas, probablemente sea causa frecuente del fracaso de proyectos, estancamiento de estructuras sociales, soluciones deficientes, etc. Desde la perspectiva del ser humano, el escalamiento en la complejidad puede provenir de cambios en la naturaleza del sistema o problema, o en el grado de comprensión del mismo. Esto último, sintetizado en el concepto de complejidad cognitiva, debe ser aplicado tanto en casos individuales como en casos donde está involucrado un conjunto de individuos. Por tanto, se entiende que la limitación de la mente humana y sus capacidades de razonamiento para comprender la información, incluye aspectos derivados de la interacción entre individuos que intentan establecer una visión común de cierto problema o situación. En definitiva, la complejidad - como fenómeno que deriva de causas fundamentales - no siempre se puede eliminar. No obstante, se admite la posibilidad de gestionar esa complejidad mediante intervención consciente, en función de las características de la complejidad y las propiedades de los sistemas a los cuales se asocia este fenómeno. En particular, se descarta que la aleatoriedad constituya un factor de complejidad, pese a que pueda intervenir en la formación o dinámica de sistemas complejos. [ 1.7 ] CONCLUSIONES DESCOMPOSICIÓN JERÁRQUICA MODULAR DE SISTEMAS COMPLEJOS Admitiendo que los sistemas complejos frecuentemente poseen una estructura jerárquica modular pasible de ser descrita en términos de un conjunto de elementos relativamente sencillos, se concluye que 83 Texto traducido del original, en inglés. Ver nota 54, p. 39. 84 Considere nuevamente el desarrollo informático como claro ejemplo de proceso evolutivo, que inexorablemente incrementa su escala (a partir del mismo conjunto de símbolos elementales, aplicando una jerarquía modular, incrementa en tamaño y requerimientos) y que permanentemente incrementa su complejidad, como se deduce de sus requerimientos cada vez más exigentes en recursos y mantenimiento, así como sus prestaciones. Diseño de Sistemas Electrónicos Complejos [ 1.7 ] Conclusiones - 49 lidiar con sistemas complejos de estructura jerárquico-modular requiere, en esencia, identificar la estructura jerárquica modular del sistema, y descomponerla siguiendo su jerarquía y división modular; de ser necesario, los subsistemas así obtenidos pueden ser descompuestos siguiendo este mismo criterio, hasta que se alcance un estadio de complejidad manejable. En consecuencia, la dificultad central a la gestión de la complejidad en sistemas de estructura jerárquico-modular, radica en como efectuar correctamente la identificación de la estructura del sistema, y como ejecutar recursivamente la descomposición modular. La identificación de la estructura de un sistema complejo, y su posterior descomposición exitosa, no son tareas factibles mediante exclusivo empleo de ‘sentido común’, en virtud de las fuentes de complejidad circunstancial y cognitiva implícitas. Se requiere la estricta adherencia a metodologías, que eviten se desvirtúe ese proceso de ‘divide y vencerás’ conforme se manifiestan ambos tipos de complejidad en el proceso de descomposición85. Al respecto, Maxwell, Ertas y Tanik señalan entre sus conclusiones en [MET02] que la gestión de sistemas complejos requiere: • desarrollar un grupo de trabajo (equipo humano) integrado y bien organizado • continuamente actualizar la estructura del sistema para incorporar nueva información y cambios • identificar y suministrar herramientas que pueda requerir el equipo de trabajo, en particular aquellas para comunicación, manipulación y presentación de datos e información • reconocer que no existen procedimientos mágicos para eliminar la complejidad de los sistemas de gran escala, pero que liderazgo, motivación, organización y comunicación son los elementos claves que pueden conceder al equipo la habilidad de gestionar la complejidad No obstante, no se propone en [MET02] como identificar la estructura del sistema, y como descomponerla. Al respecto, en este documento se sugiere una línea de trabajo, en base a la siguiente serie de observaciones: • la pretensión de una aplicación en forma recursiva del proceso de identificación y descomposición de la estructura jerárquica modular de un sistema, sugiere la ejecución de un proceso ‘fractálico’, auto-semejante para cada nivel jerárquico, y para cada módulo de la estructura del sistema86 • tal proceso de descomposición estructurado y recursivo, sugiere inmediatamente la posibilidad de ser descrito en forma algorítmica, y consecuentemente, admitiría en ese caso una correspondiente implementación computacional • una implementación computacional de la descomposición de un sistema, para ser operativa, requiere un modelo adecuado del sistema en términos computacionales87 • es posible pensar, entre otras posibilidades, la instrumentación de modelos computacionales de sistemas complejos a partir de modelos matemáticos de los mismos En consecuencia, 85 El concepto de metodología y su incidencia en los procesos de descomposición jerárquica de sistemas complejos es objeto de la sección 2.2. 86 Nótese que la metáfora del fractal se refiere al proceso de identificación y descomposición de la estructura jerárquica modular del sistema complejo en cuestión, no implicando que el sistema posea una estructura estrictamente fractálica; ésta se ha caracterizado, a lo más, como jerárquica y modular, pero no necesariamente auto - semejante. Sin embargo, el considerar a priori la estructura como fractálica (aunque ad post no resulte serlo) puede constituir una interesante y genérica hipótesis de trabajo inicial. 87 Más adecuadamente denominado como “modelo ejecutable”, en virtud de ser código pasible de ejecución en un computador. El concepto de modelo se estudia en el capítulo 3. Ingeniería Electrónica – Universidad Católica del Uruguay 50 - [ 1 ] Complejidad y Sistemas Complejos a efectos de abordar la dificultad central a la gestión de la complejidad en sistemas de estructura jerárquico-modular, se sugiere el empleo de modelos matemáticos adecuados del sistema, implementables computacionalmente, y procesos automatizados de exploración y descomposición estructural, también implementados en forma computacional; de no ser posible la implementación computacional, se sugiere el seguimiento del mismo procedimiento, en forma manual. Sin embargo, cabe aclarar que la línea de trabajo sugerida precedentemente adolece de los siguientes inconvenientes • la proposición de métodos de identificación de estructuras de sistemas complejos, y procedimientos de descomposición recursiva de tales estructuras, son cuestiones que al momento constituyen problemas abiertos • la definición y elaboración de modelos computacionales adecuados para los sistemas complejos, junto con sus correspondientes algoritmos de descomposición, se presenta como un arduo problema adicional ABSTRACCIÓN DEL DETALLE EN SISTEMAS COMPLEJOS Admitiendo que los sistemas complejos son en general de gran escala, es decir, son sistemas cuya descripción completa en forma ‘plana’ requiere volúmenes significativos de información; admitiendo además que a esa descripción ‘plana’ se puede estratificar, o clasificar en niveles, y en virtud de las limitaciones inherentes a la mente humana y sus capacidades de razonamiento, que dan origen a la faceta cognitiva del fenómeno de la complejidad, se concluye que lidiar con sistemas complejos de gran escala requiere, en esencia, reducir la cantidad de información disponible a volúmenes manejables en forma comprensible, manteniendo únicamente la información relevante al nivel de trabajo en la descripción del sistema; esta selección requiere la abstracción del detalle de niveles inferiores. En consecuencia, la dificultad central a la gestión de la complejidad en sistemas de gran escala radica en como realizar la abstracción del detalle, y como determinar la estratificación adecuada de la descripción del sistema que habilite lo anterior Al respecto, en este documento se adhiere a las siguientes afirmaciones: • la existencia de una estructura jerárquica en un sistema determina la estratificación adecuada para la descripción de un sistema complejo • de ostentar el sistema una estructura jerárquica modular, cabe efectuar la abstracción del detalle en base a los módulos respectivos, amén de efectuarse siguiendo la estratificación derivada de la jerarquía • aquellos mecanismos que permitan la identificación de una estructura jerárquica modular en un sistema, también deben permitir - o al menos asistir - a la abstracción del detalle • la dualidad físico-matemática propuesta por Tegmark en [Teg03] habilita a pensar lo anterior en términos de modelos matemáticos adecuados del sistema en cuestión • similarmente al proceso de descomposición jerárquico modular propuesto en la sección precedente, se sugiere la posibilidad de implementación computacional del proceso de abstracción de detalles, de contarse con un modelo adecuado del sistema en términos computacionales En consecuencia, a efectos de abordar la dificultad central a la gestión de la complejidad en sistemas de gran escala, se sugiere el empleo de modelos matemáticos adecuados del sistema, implementables computacionalmente, y procesos automatizados de abstracción de Diseño de Sistemas Electrónicos Complejos [ 1.7 ] Conclusiones - 51 detalle, también implementados en forma computacional; de no ser posible la implementación computacional, se sugiere el seguimiento del mismo procedimiento, en forma manual. Sin embargo, cabe aclarar que la línea de trabajo sugerida precedentemente adolece de los siguientes inconvenientes, similarmente al proceso de descomposición jerárquico-modular presentado en la sección previa: • la identificación de la estructura de sistemas complejos es una cuestión que al momento permanece como un problema abierto • la definición y elaboración de modelos computacionales adecuados para los sistemas complejos, se presenta como un arduo problema adicional EQUIVALENCIA ENTRE ABSTRACCIÓN DEL DETALLE Y DESCOMPOSICIÓN JERÁRQUICA MODULAR La descomposición de sistemas jerárquicos modulares, ejecutada a partir de modelos abstractos del sistema en cuestión - ya sean modelos implementables computacionalmente, o no - puede considerarse como un proceso en sentido inverso al proceso de abstracción de detalles examinado en la sección precedente y en la sección 1.1.1: • el proceso de abstracción de detalles propende al cambio de una descripción complicada de un sistema debido a su detalle (descripción ‘Aristotélica’) por una descripción matemática compacta, pero intrínsecamente complicada (descripción ‘Platónica’) • el proceso de descomposición parte de una descripción abstracta à la Platón, y la descompone hasta redescribir el sistema original en términos de símbolos sencillos - en esencia, ‘Aristotélicos’ - más cercanos a la intuición Cabe entonces cuestionarse si el proceso de descomposición (que fue sugerido como herramienta para simplificar el tratamiento de los sistemas complejos de estructura jerárquicomodular) ahora visto como proceso en sentido inverso al proceso de abstracción (que fue sugerido como herramienta para simplificar el tratamiento de sistemas complejos de gran escala) no implicaría una flagrante contradicción: ¿es posible la simplificación en ambos sentidos, o constituye - precisamente - un contrasentido? Que sea posible reducir la complejidad de la descripción de un sistema complejo, tanto mediante los procesos de descomposición (que operan en sentido del detalle) como mediante los procesos de abstracción de detalles (que operan en sentido inverso) no constituye una contradicción: un proceso de descomposición u otro proceso de abstracción de detalles redundará en una descripción simplificada del sistema en cuestión, dependiendo si lo que se pretende es detallar la descripción, o si por el contrario, el propósito es generalizarla; los procesos de descomposición y abstracción son sugeridos para efectuar las respectivas tareas, coadyuvando a la gestión de la complejidad emergente en cada uno de los sentidos de operación. En cualquier caso, la limitación de la mente humana - parte de la faceta cognitiva de la complejidad - restringe el volumen de información manejable en forma comprensible a una cantidad finita y escasa de conceptos o entes. De acuerdo al objetivo descriptivo que se persigue, desde el estadio inicial en la descripción de un sistema, se intentará generalizar y sintetizar88 esa descripción, o detallarla y analizarla89. Consecuentemente, en el caso asimilable a la generalización, conforme se incorpora información correspondiente a los módulos y estratos del 88 Aquí, sintetizar se emplea en el sentido de resumir. Sin embargo, el término ‘síntesis’ también se emplea en el sentido de generar o diseñar (de hecho, así se emplea en la mayor parte del presente documento);como esto último se refiere a procesos en el sentido del aumento del detalle, se produce así una desafortunada contradicción, la cual sólo puede dirimirse prestando la debida atención al contexto. 89 Aquí, analizar se emplea en el sentido de examinar. Similarmente a lo que sucede con el término ‘síntesis’ (ver nota 88, p. 51) el término ‘análisis’ sugiere nociones contradictorias según el contexto. Ingeniería Electrónica – Universidad Católica del Uruguay 52 - [ 1 ] Complejidad y Sistemas Complejos sistema que se van acopiando, necesariamente se requiere un descarte u ocultamiento selectivo de elementos informativos a fin de mantener acotado su volumen total; ello redunda en una pérdida progresiva de la noción de particularidades del sistema. En el segundo caso, el afán por ahondar en el detalle, incorpora información correspondiente al módulo o estrato local conforme este se explora, por lo que también es mandatorio el descarte selectivo de información para mantener acotado su volumen total; en este caso, se tiene una progresiva pérdida en la noción de la conectividad modular y de la globalidad del sistema. Los respectivos procesos de abstracción y descomposición propuestos asisten al mantenimiento de la coherencia en el manejo de la información, y a la permanencia dentro de las limitaciones impuestas por la complejidad: lo que se requiere es mantener acotado el campo de visión, de forma que en todo momento el volumen de información sea manejable y comprensible 90. Recurriendo a la metáfora del fractal: los procesos de abstracción de detalles y descomposición, si realizados suponiendo que la estructura jerárquico - modular de un sistema complejo de gran escala es de carácter auto - semejante, son entonces procesos ‘equivalentes’, en el sentido que son un mismo proceso ejecutado en distinto sentido según el objeto que persiga la descripción del sistema. En virtud de su usual estructura jerárquico - modular, es conveniente efectuar el tratamiento de sistemas complejos mediante procedimientos de descomposición o composición que sigan la propia estructura jerárquico - modular del sistema, según se pretenda detallar o generalizar su descripción, respectivamente. Estos procesos, que podemos denominar procesos de ‘descomposición o composición jerárquica modular’, pueden asimilarse a operaciones de acercamiento y alejamiento respecto de una imagen fractálica, tal que mantienen acotado el volumen de información mediante la incorporación o descarte adecuado de puntos conforme se modifica el campo visual. Se trata en esencia de un mismo proceso, ejecutable en dos sentidos opuestos, según se busque el detalle o la abstracción de la descripción. En los siguientes capítulos se discute el diseño en ingeniería, el modelado en ingeniería, y la evolución del diseño electrónico, a la luz de estas consideraciones acerca de la complejidad, los sistemas complejos, y la gestión de la complejidad en los sistemas complejos mediante abstracción y descomposición. 90 En ejemplo: la combinación del tiempo de vida y capacidad mental humanas, es lo que impide a un médico ser especialista en todas las ramas de la medicina contemporánea. Por tanto, en aras de una visión integral, el médico general debe resignarse a no ver detalles, mientras que el médico especialista se ve dedicado al detalle inherente a su área de acción (y correspondientemente tiene vedado el detalle de otras especialidades). No obstante, esta ‘limitación’ de tipo práctico no implica una contradicción entre las actividades, que inclusive podrían confundirse en una si los médicos vivieran lo suficiente, o tuvieran una capacidad superior al ‘homo sapiens’. La consulta al médico general o al especialista será más adecuada de acuerdo a la circunstancia, es decir, de acuerdo al nivel de abstracción o descomposición que se requiera para el diagnóstico. Diseño de Sistemas Electrónicos Complejos [2] DISEÑO EN INGENIERÍA El presente documento se refiere, según indica su propio título, al “Diseño de Sistemas Electrónicos Complejos”. En virtud de la alusión al término, en el capítulo 1 se acomete la necesaria discusión acerca del significado de sistema complejo. Así, con idéntica intención a la que se esgrimió para tratar el concepto de sistema complejo en el capítulo 1, se plantea en este capítulo una discusión acerca del significado del término diseño. No obstante, como se sugiere desde el título del presente capítulo, el significado del término diseño se establece específicamente en relación a la ingeniería, no intentándose un planteo en términos generales. Responde esto a una razón concreta, y es que el objeto de este trabajo es presentar el espacio de diseño de sistemas complejos de tipo electrónico; consecuentemente, se pretende ir focalizando progresivamente el trabajo sobre este propósito, de forma que a partir de este capítulo las discusiones se concentrarán en el área de ingeniería, y luego más específicamente en el área de la ingeniería electrónica. [ 2.1 ] PROCESO Y PRODUCTO DE DISEÑO ¿Que entiende Ud. por diseño? Prima facie, cabe distinguir el empleo del vocablo ‘diseño’ en referencia a la acción de diseñar, es decir, al acto de crear o generar un determinado producto material o intelectual, del empleo del vocablo ‘diseño’ como sustantivo, en referencia al propio producto material o intelectual obtenido. En ingeniería, es usual referirse al ‘proceso de diseño’ como la serie de acciones con que se crea algún ente material o intelectual, y luego referirse al propio producto o ente como ‘el diseño’. En las siguientes secciones se examina entonces el concepto de diseño en ingeniería, desde las dos perspectivas derivadas de esta diferenciación inicial entre verbo y sustantivo. [ 2.1.1 ] EL PROCESO DE DISEÑO Las siguientes son algunas visiones sobre el diseño en ingeniería - particularmente, el diseño en ingeniería electrónica - que hacen uso del término en referencia a la acción de diseñar. “El diseño de ingeniería es el proceso mediante el cual se crea un sistema, componente o proceso para satisfacer ciertas necesidades. Es un proceso de toma de decisiones (con frecuencia, iterativo) en el que se aplican las ciencias básicas, las matemáticas y las ciencias de la ingeniería para convertir los recursos de manera óptima y cumplir un objetivo establecido.” ABET (Comité de Acreditación para Ingeniería y Tecnología) citado en [Ras00], p. 15. Para J. Dixon, el diseño en ingeniería consiste en “idear, sujetándose a ciertas restricciones respecto a la forma de resolver el problema, un componente, sistema o proceso, para llevar a cabo óptimamente un trabajo específico, sujetándose a ciertas restricciones en la solución del problema.” ([Dix79], p. 18). Gonzalo Sánchez - Ingeniería Electrónica – Universidad Católica del Uruguay 54 - [ 2 ] Diseño en Ingeniería Rashid propone que el diseño transforma especificaciones en implementación; particularizando en el área de ingeniería electrónica, aduce que “Un diseño transforma las especificaciones en circuitos que satisfacen tales especificaciones.” ([Ras00], p. 12). En el “Handbook of Design in Electrical Engineering” se lee que el diseño es un plan, o composición ordenada de cuestiones técnicas y prácticas para implementar un producto o sistema. Este plan requiere documentación adecuada, tal que permita su evaluación e implementación ([HBEED], p. 7). “Diseñar es el acto de definir un sistema. Habitualmente, esto consiste en definir uno o más modelos del sistema, y ‘refinar’ estos modelos hasta que se obtiene la funcionalidad deseada, sujetándose a un conjunto de restricciones.”91 [PtP01]. Según surge de las precedentes citas, se puede convenir que el diseño en ingeniería es - en esencia - un proceso intelectual y ejecutivo (ideas/razonamiento y acciones) que presenta determinadas características y requisitos. Corresponde profundizar en estas cuestiones, las cuales se dan por sobrentendidas en las fuentes citadas. En cuanto proceso intelectual, se requiere considerar los aspectos sicológicos del proceso de diseño, y en cuanto proceso ejecutivo, cabe estudiar sus aspectos operacionales. La discusión de estos aspectos constituye el propósito de las secciones 2.1.1.2 y 2.1.1.3. Previo al planteo de los aspectos sicológicos y operacionales del proceso de diseño en ingeniería, en la siguiente sección 2.1.1.1 se señalan sus características más relevantes. [ 2.1.1.1 ] CARACTERÍSTICAS DEL PROCESO DE DISEÑO Una interpretación de las citas de la sección 2.1.1 permite caracterizar al proceso de diseño en ingeniería por: 92 • objetivo: el proceso tiene una finalidad, es específico; no se trata de una actividad guiada por mera curiosidad o exclusivo afán de exploración (que serían más bien procesos de investigación) • especificaciones: el objeto o finalidad del proceso conlleva asociada ciertas indicaciones a ser cumplidas o respetadas93, que constituirán parte de las restricciones al proceso y a su producto, ya sea este material o puramente intelectual • planificación: el proceso requiere un plan, un orden de trabajo • recursos: es imprescindible contar con recursos de índole material, económico o intelectual - capital, materia prima, maquinaria, herramientas, personal, conocimiento teórico, experiencia práctica, etc. - según sea el objeto o finalidad de diseño • inventiva: se pretende la creación de algún ente, material o abstracto, lo que necesariamente implica generación de ideas • toma de decisiones: cada opción que se plantea fuerza a una determinación; las resoluciones son inevitables, o se trata de un caso de proceso sin alternativas (reales, o no percibidas) • restricciones: amén de las restricciones derivadas de las especificaciones (las cuales son indicaciones adrede al diseño) el proceso de diseño se ve sometido a otros tipos de restricciones, entre las cuales se cuentan las económicas (en ejemplo, por limitaciones del presupuesto asignado, o por causas externas dinámicas como crisis económicas) decisiones externas (como decisiones estratégicas, políticas, etc.) criterios aplicables (de construcción, prueba, evaluación, optimización, etc.) que pudieren venir implícitos - o no especificados - 91 Texto traducido del original, en inglés. Ver nota 54, p. 39. 92 Los requerimientos son extraídos directamente de las citas, mas los comentarios explicativos son de autoría personal. 93 Las especificaciones son omnipresentes, y bien como restricciones o necesidades serán impuestas formando parte del objetivo, o bien se establecerán aparte del objetivo en forma de indicaciones, o - en caso de no provenir de restricciones, necesidades o indicaciones - necesariamente se generarán especificaciones que definan o particularicen el producto (material o intelectual) del proceso. Diseño de Sistemas Electrónicos Complejos [ 2.1 ] Proceso y Producto de Diseño - 55 en los conocimientos y teorías empleadas, y limitantes de tipo físico y práctico (como la causalidad, el universo disponible, etc.) • iteraciones: no necesariamente el proceso de diseño es lineal (lineal, en el sentido de directo); en ocasiones (a causa de cambio o incumplimiento en especificaciones, constricción de restricciones, decisiones expresas, etc.) se requiere reiterar o rehacer parte o todo el proceso, de forma que - de concepción a implementación - pueden existir múltiples iteraciones en el flujo de diseño (las iteraciones son particularmente habituales en procesos de refinamiento de modelos) Estas características confieren la idea inicial acerca del diseño como actividad; sin embargo, no constituyen más que una expresión concreta de la idea intuitiva que se tiene a nivel del grado en ingeniería sobre el diseño, y nada describen del proceso en sí. Por ejemplo, cabe preguntarse si los procesos de diseño en las distintas ramas de la ingeniería siguen un esquema común, o por el contrario, se realizan según esquemas diferentes de acuerdo a la actividad. ¿Y que hay respecto a distintos diseños dentro de una misma área? Además, ¿como se conjugan las precedentes características en un proceso de diseño efectivo, real? Planificación e inventiva ¿no serían características contradictorias?, es decir, ¿es posible planificar una creación, es decir, algo que se ‘inventa’? Ninguno de estos cuestionamientos se pueden examinar y decidir exclusivamente en base a la información anterior. [ 2.1.1.2 ] ASPECTOS SICOLÓGICOS DEL PROCESO DE DISEÑO Del estudio del proceso de diseño en ingeniería, Dixon concluye que este se puede descomponer en tres actividades intelectuales distintas: la inventiva, el análisis, y la toma de decisiones ([Dix79], pp. 391-392): • inventiva: Es la habilidad de aportar ideas fructíferas para la solución de los problemas de ingeniería. Se caracteriza por su infinita amplitud, por su dependencia en la percepción y la experiencia, y por su tendencia a inhibirse por las restricciones y predisposición mentales. El objeto de la inventiva es obtener muchas respuestas posibles. • análisis: Es la habilidad de obtener - dentro de un tiempo y costos razonables - respuestas significativas a las interrogantes que plantea la ingeniería. Se caracteriza por su convergencia natural, y su dependencia del juicio y conocimiento especializado de la materia. Involucra la construcción de modelos físico-matemáticos, la aplicación al mismo de principios físicos fundamentales, y la interpretación de los resultados. El objeto del análisis es obtener una respuesta real. • toma de decisiones: Es un proceso de selección entre todas las alternativas. Se caracteriza por estar involucrada con la información, fijación de valores, y optimización. El objeto de la toma de decisiones es seleccionar la mejor respuesta. En la mayoría de los casos, los ingenieros de diseño deben necesariamente ejecutar cada una de estas actividades, y con frecuencia, cambiar continua y rápidamente de una a otra actividad intelectual. Se plantea aquí un serio problema en esta integración de la inventiva, el análisis y la toma de decisiones: Existe evidencia de que una sólida habilidad analítica o un firme adiestramiento, interfiere con el funcionamiento de la inventiva. Y muy poco se conoce sobre la posible interferencia que pueda existir entre la habilidad para tomar decisiones y la inventiva o el análisis94. El primer tipo de interferencia, entre la inventiva y el análisis, es objeto de discusión en [Dix79]. El otro tipo de interferencia, entre la toma de decisiones y las otras actividades intelectuales, puede delinearse si se admiten las siguientes cuatro ‘áreas’ en el conocimiento95: 94 Más aún, ciertas decisiones iniciales para un proyecto deben tomarse, por lo que en muchos casos, algunas decisiones preceden al análisis, complicando así el proceso de diseño ([Dix79], p. 392). Ingeniería Electrónica – Universidad Católica del Uruguay 56 - [ 2 ] Diseño en Ingeniería 1. lo que se sabe que se sabe: se refiere al conocimiento que cada individuo sabe perfectamente que posee y que domina, abarcando desde cuestiones rutinarias como saber conducir un vehículo hasta el conocimiento empírico o el profesional, más probablemente aquel que es de ejercicio frecuente. 2. lo que no se sabe que se sabe: se refiere a aquellos conocimientos que el individuo no es consciente de poseer pero que efectivamente posee, surgiendo ‘sorpresiva y exitosamente’ en situaciones no frecuentes o no rutinarias 3. lo que se sabe que no se sabe: se refiere a las cuestiones que el individuo es plenamente consciente de no dominar (como por ejemplo pilotar un transbordador espacial, tarea que la mayoría de los individuos fehacientemente sabemos que somos incapaces de efectuar). Afortunadamente, es factible determinar esta área, lo que permite identificar algunas fuentes de sorpresas 4. lo que no se sabe que no se sabe: se refiere las cuestiones que el individuo no percibe, y que además, desconoce. Presenta el gran inconveniente de ser, por definición, imposible de delimitar en forma precisa, siendo entonces fuente de sorpresas - generalmente desagradables - que se advierten como consecuencia de errores, y por tanto, siempre a posteriori de sucedidos Así, es el área 3 en donde corresponde ubicar la ignorancia acerca de la interferencia entre toma de decisiones y las otras actividades de diseño. Sin embargo, no significa que las implicancias de esta ignorancia sean fáciles de identificar, siendo posible que ciertos aspectos clasifiquen de hecho en el área 4. Dado que en un proceso de diseño se ejecutan todas las actividades intelectuales, el potencial riesgo de verse sorprendido desagradablemente por interferencias entre toma de decisiones e inventiva o análisis, es algo con lo que - por el momento - se debe coexistir, en estado alerta. Dixon propone que el proceso de diseño en ingeniería no es un arte, sino que es posible educar y desarrollar aptitudes que coadyuven a las mencionadas actividades intelectuales de los procesos de diseño: “Únicamente el conocimiento y el estudio consciente de los procesos para resolver problemas de diseño y análisis (así como de sus éxitos y fracasos) mejorarán la probabilidad de éxito en el futuro” ([Dix79], p. 18). Con este objeto, plantea métodos para incentivar la inventiva ([Dix79], Parte I) educar la capacidad de análisis ([Dix79], Parte II) y racionalizar la toma de decisiones ([Dix79], Parte III). En frecuentes ocasiones, un mismo individuo deberá oficiar de creativo, analista, y ejecutor96 en un proceso de diseño, siendo entonces necesario su desempeño competente en cada una de las áreas; no siempre se podrá contar con un equipo de diseño en el cual las distintas actividades intelectuales sean ejecutadas por diferentes personas, de forma de minimizar las interferencias mutuas. En este trabajo no se estudian los aspectos sicológicos del proceso de diseño. No obstante, es esencial esta noción de actividades intelectuales inherentes al proceso de diseño para comprender la importancia y utilidad de las metodologías de diseño y las herramientas que asisten al proceso de diseño97, debido a su incidencia sobre el fenómeno de interferencia mutua entre las actividades intelectuales de diseño. [ 2.1.1.3 ] ASPECTOS OPERACIONALES DEL PROCESO DE DISEÑO Após de enunciar las características generales del proceso de diseño en ingeniería, y delinear sus aspectos sicológicos, se intenta en esta sección conferir una idea del proceso en sí, es decir, su aspecto ejecutivo u operacional. 95 Esta consideración se ha tomado de un comentario efectuado en el curso “Instrumentación y Medidas Eléctricas” dictado por D. Slomovitz en la Universidad Católica del Uruguay (2000). 96 En el sentido de quien toma las decisiones. 97 Los conceptos de metodologías y herramientas de diseño se introducen en la sección 2.2. Diseño de Sistemas Electrónicos Complejos [ 2.1 ] Proceso y Producto de Diseño - 57 Como punto de partida, se presenta la visión del proceso de diseño de Dixon [Dix79]98. Este autor propone que la actividad de diseño en ingeniería sigue un proceso cuyo esquema se reproduce en la Fig. 2.1, y se explicita en la Tabla 2.1. Definición del problema Reconocimiento de la meta Especificación de la tarea Definición de conceptos Análisis ingenieril Desarrollo de un plan Estructuración del modelo Analítico Experimental Aplicación de principios físicos Recolección de datos Especificación de la solución Cálculo Producción Comprobación Distribución, ventas, servicio Evaluación Optimización Fig. 2.1: Esquema de diseño en ingeniería ([Dix79], p. 20) El esquema de Dixon presupone que el proceso de diseño en ingeniería es general, común a las diversas ramas de la ingeniería. Incluye explícita o implícitamente a todas los requerimientos y características que se mencionan en la sección 2.1.1.1. Puede observarse que objetivo (o meta) y especificaciones figuran explícitamente en el esquema de la Fig. 2.1, aunque los recursos necesarios se deben inferir donde corresponda, siendo razonable que aquellos de tipo material correspondan en su mayoría a las fases rotuladas ‘Producción’ y ‘Distribución’. Se asigna la planificación explícitamente a la fase de Análisis, pero se puede inferir que - fuera de la fase rotulada como ‘Definición de Conceptos’ - la planificación se requiere también en el resto del proceso de diseño. Según Dixon, el proceso de diseño no siempre sigue un orden estricto, sino que es iterativo, existiendo realimentación entre sus distintas fases; esto se sugiere mediante el empleo de flechas de doble punta en el diagrama99. Además, aclara que el proceso de diseño está sujeto a limitaciones económicas, temporales, infraestructurales, de disponibilidad, y de habilidad, que limitan las posibilidades de optimación de resultados100 ([Dix79], p. 75). Aduce que existe una fase adicional en el análisis en ingeniería: la comunicación de los resultados y recomendaciones, actividad que debe ejecutarse en forma persuasiva, clara, completa, confiable, y eficiente101 102. 98 Esta visión data al menos del año 1979; debe tenerse en cuenta que la primer edición de [Dix79] es del año 1966. 99 El diagrama en [Dix79], p. 20, no usa flechas de doble sentido para el detalle de la fase de “Análisis Ingenieril”, por lo que tampoco se han empleado en este documento; no obstante, se admite la realimentación entre subprocesos de esta fase, de forma que aquí también debieran ser consideradas como flechas de doble punta, para mantener la coherencia. 100 Esta aclaración se efectúa en el texto, mas no en el diagrama. Ingeniería Electrónica – Universidad Católica del Uruguay 58 - [ 2 ] Diseño en Ingeniería Tabla 2.1: Fases del proceso de diseño en ingeniería [Dix79] (ver Fig. 2.1)103. Reconocimiento de la meta Especificación de la tarea Definición de los conceptos Análisis ingenieril Definición del problema Desarrollo de un plan Estructuración del modelo Aplicación de principios físicos y recolección de datos Cálculo Comprobación Evaluación Optimación Especificación de la solución Producción Distribución, ventas, servicio Se debe reconocer el objetivo asignado o auto-impuesto para el diseño, y realizar las consideraciones éticas pertinentes. Debe especificarse la tarea concreta a realizar, tal que se cumpla con la meta u objetivo general 104. Formulación del concepto que lleve a cabo la tarea. Requiere ideas, inventiva. Determina en gran parte la calidad de la solución. Es la parte fundamental del proceso de diseño 105. Análisis de la idea generada. Fase de gran importancia en el proceso general de diseño106. Generación de preguntas o cuestiones que pueden contestarse en términos de parámetros calculables o mensurables: debe ser una definición operacional y específica. Condiciona tipo y profundidad de los análisis a llevar a cabo. Planificación del conjunto de análisis a llevarse a cabo. Desarrollo de modelos (aproximaciones idealizadas) analíticos o experimentales, lo suficientemente sencillos para hacerlos factibles, manejables, e interpretables, pero que contengan la esencia del problema (en detalle suficiente) para que devuelvan resultados significativos. Aplicación de principios físicos de la ciencia o ingeniería a los modelos, y obtención de datos experimentales. Debe apelarse a los principios más fundamentales disponibles. Análisis de datos, u obtención de resultados analíticos y/o numéricos, según el caso. Comprobaciones matemáticas y de ingeniería de los resultados obtenidos: control de consistencia. Evaluación de resultados; análisis de posibles generalizaciones de los mismos. Optimación de resultados, siguiendo criterios de costos en sentido amplio, y sujeto a las restricciones aplicables. Transcripción de la solución en términos de producción: se debe especificar como se fabricará el producto. Producción de la solución según las especificaciones. Distribución, ventas, y servicio posventa de los productos. Si bien los aspectos sicológicos del proceso de diseño no se explicitan en el diagrama de Dixon, es factible identificar que la actividad creativa radica básicamente en la fase rotulada como ‘Definición de Conceptos’, mientras que la actividad de análisis se desarrolla fundamentalmente en la fase homónima del diagrama (‘Análisis Ingenieril’) en tanto que la actividad de toma de decisiones es subyacente al proceso completo, no siendo pasible de adjudicación a ninguna fase en particular. 101 Estas consideraciones son también aplicables a la documentación del producto terminado, no solamente a la documentación del análisis ingenieril. 102 Esta última característica (eficiencia) es de particular relevancia en caso de informes de resultados - estos deben contener la esencia de los mismos; en sí, requieren un diseño cuidadoso. 103 Las descripciones de las fases del proceso de diseño no son tomadas directamente de [Dix79], sino que son una interpretación del texto de Dixon, pudiendo por tanto existir algún sesgo respecto a la intención original del citado autor. Por el contrario, el diagrama es una reproducción fiel del original, sin interpretaciones de tipo personal. 104 Requiere toma de decisiones previo al análisis. 105 También requiere toma de decisiones previo al análisis. 106 Para su adecuada descripción, se descompone en ocho tareas que se indican en tipo cursiva , en la columna izquierda. Diseño de Sistemas Electrónicos Complejos [ 2.1 ] Proceso y Producto de Diseño - 59 El proceso de diseño según Dixon transcurre desde la idea a la implementación, pasando por etapas de especificación, definición de conceptos, y análisis. Estas dos últimas son consideradas por Dixon como críticas en el proceso de diseño, en virtud de su incidencia en el producto final; particularmente la definición de conceptos, en cuanto fase ‘creativa’, es la que presenta los mayores desafíos. En esta visión de Dixon se admite la posibilidad de iteraciones conforme se detectan errores o posibilidades de mejora durante la ejecución del proceso, que exigen o motivan la realimentación de información, y del esquema se interpreta que estas iteraciones pueden ocurrir en y entre cualquier etapa del proceso de diseño. Si bien es notorio el énfasis del autor en las etapas creativa y de análisis, las posibles iteraciones del proceso de diseño no se explicitan ni extensa ni sucintamente. En esencia, el esquema del proceso de diseño en ingeniería propuesto por Dixon es una expresión concreta de la noción intuitiva que se tiene a nivel de grado en ingeniería acerca de la ‘acción de diseñar’: ir de la idea a la implementación, pasando por etapas de especificación y análisis (modelado, verificación) admitiendo posibles iteraciones en este proceso. Rashid ([Ras00], p. 13) propone un esquema para el proceso de diseño en ingeniería electrónica más conciso que el propuesto por Dixon, el cual se reproduce en la Fig. 2.2. Fig. 2.2: Esquema del proceso de diseño en ingeniería electrónica ([Ras00], p. 13) Según Rashid, “Un diseño transforma las especificaciones en circuitos que satisfacen tales especificaciones. (...) En el trabajo de diseño, primero se atacan las actividades más desafiantes y luego, las más sencillas. En esa forma, si no puede hallarse una solución aceptable para los problemas difíciles, no se desperdician tiempo y dinero para resolver cuestiones más fáciles.” Por lo tanto, “... el proceso de diseño de ingeniería sigue una jerarquía en la que los sistemas se diseñan primero con la ayuda de diagramas funcionales de bloques, luego se prosigue con el diseño de los circuitos y los dispositivos.” ([Ras00], p. 12). Así, el proceso de diseño es una forma sistemática de hacer la transformación de especificaciones en implementación ([Ras00], p. 19). Rashid distingue además los conceptos de análisis y síntesis (diseño): “El análisis es el proceso mediante el cual se hallan las especificaciones únicas o propiedades de un circuito determinado. Por otra parte, el diseño es el proceso creativo que sirve para desarrollar la solución a un problema” ([Ras00], p. 14). Ingeniería Electrónica – Universidad Católica del Uruguay 60 - [ 2 ] Diseño en Ingeniería Si bien el proceso de diseño propuesto por Rashid se refiere específicamente al proceso de diseño en ingeniería electrónica, es factible su generalización. Así, el proceso de diseño en ingeniería, o síntesis, es un procedimiento sistemático para transformar especificaciones en implementación, en forma jerárquica. Se acometen primero las cuestiones de mayor complejidad, para pasar a dirimir cuestiones de complejidad inferior solamente en caso de tener solución las primeras. Se parte de un nivel funcional hasta alcanzarse el nivel de implementación, admitiéndose iteraciones en esta ejecución. Este procedimiento permite ahorrar costos en el sentido amplio del término. El proceso inverso, o análisis, es el proceso mediante el cual se obtienen las especificaciones correspondientes a una implementación dada. Basándose en esta ‘generalización’, es admisible comparar el esquema propuesto por Rashid (Fig. 2.1) con el esquema propuesto por Dixon (Fig. 2.2). Prima facie, los esquemas de Dixon y Rashid concuerdan en la orientación del proceso de diseño: ambos van de idea a implementación. Asimismo, por mera inspección de las etapas o fases descritas en cada esquema de proceso, se puede determinar que varias de las mismas coinciden en carácter y secuencia: ambos esquemas introducen etapas iniciales de especificación del producto que se pretende, y de ‘definición de conceptos’ o ‘diseño en forma de diagrama de bloques’, equivalentes a una descripción funcional del producto pretendido; seguidamente indican fases de modelado (eventualmente prototipos) y simulación107 de los conceptos e ideas iniciales; posteriormente proponen etapas de prueba y verificación108, y finalmente etapas de producción109. Pese a esta alineación, el esquema de Dixon resulta más ‘monolítico’, sugiriendo visualmente que el proceso de diseño en ingeniería es básicamente secuencial, aunque admita iteraciones. Por el contrario, el esquema de Rashid explicita la forma y momento de ejecución de las posibles iteraciones en el proceso de diseño. Estas retornan siempre a la misma fase del proceso, una de las más tempranas, que sigue a las iniciales de descripción general y definición de especificaciones del diseño: la descripción funcional del diseño. Esto no necesariamente implica que exista una diferencia entre ambas propuestas, dado que el proceso de diseño propuesto por Dixon simplemente no explicita el mecanismo de las posibles iteraciones en el diseño, las que entonces podrían suponerse tal como las propone Rashid. Sin embargo, existe una diferencia: Rashid hace énfasis en la jerarquía que debe respetarse en la ejecución del proceso de diseño, más que en las etapas que deben cumplirse. Cabe notar el empleo del los términos jerarquía y bloque en el planteo de Rashid, en relación a sistemas. En el capítulo 1 de este trabajo se efectúa una discusión sobre sistemas complejos, donde se afirma que estos son frecuentemente jerárquicos y modulares. La jerarquía estructural de un sistema complejo está dada por el detalle descriptivo de los subsistemas que lo componen, y su modularidad por el grado de interacción entre los subsistemas respecto a su actividad interna. Acorde a esto, un proceso de descomposición jerárquico-modular es adecuado para desglosar ese tipo de sistemas en sus partes constitutivas. Los sistemas complejos pueden ser además descritos en término de símbolos sencillos, lo que corresponde a efectuar la descripción del sistema al mínimo nivel de abstracción. En general, partiendo de cualquier nivel de abstracción, es posible obtener descripciones a niveles de abstracción superior mediante un proceso de composición jerárquico-modular, que sería un proceso en 107 Los conceptos de modelo y simulación se analizan en mayor detalle en el capítulo 3; al momento se apela a la noción intuitiva a nivel de grado en ingeniería. 108 Dixon agrupa las etapas de modelado y verificación dentro de lo que designa análisis ingenieril. Cabe notar que Rashid emplea el término ‘análisis’ como dual de ‘síntesis’, en el sentido de proceso que obtiene especificaciones a partir de una implementación dada. No resulta esto del todo contradictorio, si se considera que la comprobación o verificación que Dixon ubica en el análisis ingenieril, implica contrastar implementación con especificaciones, partiendo de la primera. 109 Debe entenderse producción como consecución del producto. Si bien esto podría sugerir que el resultado del proceso de diseño es necesariamente un objeto material, cabe aclarar que podría aplicarse esto a un producto ‘inmaterial’, como por ejemplo, un algoritmo o un programa informático. Así, se prefiere en este documento el término implementación. La discusión sobre el producto de un proceso de diseño se efectúa en la sección 2.1.2. Diseño de Sistemas Electrónicos Complejos [ 2.1 ] Proceso y Producto de Diseño - 61 sentido contrario al de descomposición. Coincidentemente, la noción de jerarquía en el proceso de diseño de Rashid se asocia con distintos niveles por los que transita el proceso de diseño, o síntesis. Este proceso va desde un nivel funcional, donde la descripción se efectúa mediante diagramas de bloques, hasta uno de implementación - descrito en términos de elementos110 que es mínimo nivel de abstracción requerido para la consecución del diseño. Asimismo, Rashid menciona un proceso en sentido inverso111 - desde el nivel de implementación al nivel funcional -y le denomina análisis, porque el mismo devuelve las especificaciones a partir de una determinada implementación112. En virtud de esto, puede plantearse una analogía entre los procesos de diseño y análisis de Rashid, y los procesos de descomposición y composición jerárquico modular de un sistema complejo; entre el nivel de implementación del proceso de Rashid, y el nivel de descripción en términos sencillos de un sistema complejo, y entre la descripción en diagramas de bloques de Rashid y una estructura modular de un sistema complejo. Si se identifica la descripción de un sistema complejo en términos de subsistemas, con un diseño a nivel funcional mediante diagramas de bloques, los bloques representan los subsistemas, y la conectividad entre bloques su interacción. Es posible concebir así un diseño a nivel funcional que respete la ‘modularidad’ en el sentido de Simon respecto a los sistemas complejos (sección 1.5.2). Asimismo, el nivel de implementación del diseño se puede identificar con la descripción de un sistema complejo en término de símbolos sencillos (sección 1.5.3) y los procesos de síntesis y análisis en el sentido de Rashid pueden asimilarse a los procesos de descomposición y composición jerárquico-modular de sistemas complejos, en el sentido descrito en la sección 1.7. Tenemos así una analogía entre el ‘proceso de descomposición de un sistema complejo’ y el ‘proceso de diseño’ según Rashid, y sus respectivos procesos duales. Esta analogía implica que los productos de un proceso de diseño son sistemas complejos113. La Fig. 2.3 esquematiza otra visión del proceso de diseño en ingeniería electrónica, la cual se presenta en el “Manual de Diseño en Ingeniería Electrónica” (“Handbook of Design in Electrical Engineering”, [HBEED]). De acuerdo a este esquema, el desarrollo de un producto sigue un proceso de diseño en tres niveles114: 110 Elementos sustituye a ‘circuitos y dispositivos’, que son los términos empleados por Rashid, quien se refiere al diseño de sistemas electrónicos en particular. 111 Menciona, mas no presenta un esquema de índole similar al que propone para el proceso de diseño (Fig. 2.2) 112 Se insiste en que los términos síntesis y análisis se refieren aquí a obtener una implementación a partir de ciertas especificaciones, y obtener las especificaciones de determinada implementación, respectivamente. En ocasiones, el término análisis puede ser empleado en el sentido de efectuar un examen, y por tanto, no relacionarse necesariamente con ninguna de las orientaciones del proceso de diseño (especificación a implementación, o viceversa). 113 Sistemas complejos, en el sentido establecido en el capítulo 1 de este trabajo. En la sección 2.1.2.3 se propone argumentación adicional en pro de esta analogía. 114 Nótese en el esquema la asociación implícita entre ‘proceso de diseño’ y ‘sistemas’. Ver sección 2.1.2.3. Ingeniería Electrónica – Universidad Católica del Uruguay 62 - [ 2 ] Diseño en Ingeniería Nivel Global Nivel de Sistema Nivel de Circuito/Dispositivo Diseño Final Fig. 2.3: Proceso de diseño en ingeniería eléctrica ([HBEED], p. 4) • Nivel Global: Fase inicial, donde se toman las decisiones de diseño. Las decisiones a este nivel incluyen la determinación de las características que cumplirán las necesidades percibidas, y las interacciones requeridas con otros equipos o con los operadores. • Nivel de Sistema: Fase de descripción del producto y su operativa, en base a diagramas de bloques funcionales. Involucra la resolución de cuestiones tecnológicas. • Nivel de Circuito o Dispositivo: Fase de diseño e implementación de los bloques funcionales, y especificación de componentes, dimensiones, etc. Los detalles del diseño se deben completar en esta fase. Si bien este esquema es orientado a la ingeniería eléctrica, es posible extenderlo sin dificultad alguna para el caso general, simplemente sustituyendo el rótulo “Nivel de Circuito / Dispositivo” por el rótulo “Nivel de Implementación”. Así ‘generalizado’, es evidente que - al igual que los procesos de diseño propuestos por Dixon y Rashid - este proceso también transcurre de idea a implementación, y admite iteraciones en la ejecución. “Existen desafíos creativos y tecnológicos específicos a cada nivel. Sin embargo, el avance no necesariamente es lineal; en cualquier momento el ingeniero puede requerir o verse obligado a retornar a una etapa anterior, en la medida que la evaluación revele fallas, errores - o alternativas - a las decisiones tomadas con anterioridad. Si bien el proceso admite volver directamente del último al primer nivel, siempre recorre todos los niveles en dirección descendente, pasando por el Nivel de Sistema”115 ([HBEED], p. 3). Así, no solamente se reencuentra en el esquema de la Fig. 2.3 la característica de realimentación entre etapas del proceso de diseño (iteraciones) sino además se explicita que en caso de iteración, el proceso de diseño retoma las etapas en dirección descendente, sin saltearse ninguna. Responde esto a una cuestión fundamental, que consiste en propagar a todo el diseño las posibles modificaciones, lo cual se logra de manera efectiva respetando la jerarquía del proceso de diseño; al respecto, es análogo al proceso propuesto por Rashid (Fig. 2.2) donde las posibles iteraciones del proceso de diseño retornan a la fase de ‘descripción funcional’, para luego transitar por las etapas intermedias en sentido ‘descendente’ sin saltearse ninguna. No obstante, el esquema de la Fig. 2.3 resulta menos explícito que el esquema de Rashid en cuanto a las fases que atraviesa el proceso de diseño, y significativamente menos explícito que el proceso de diseño propuesto por Dixon (Fig. 2.1). Cabe cuestionarse si esta pérdida de especificidad se debe a el enfoque del diseño electrónico, o si es que confiere alguna ventaja al 115 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 2.1 ] Proceso y Producto de Diseño - 63 momento de comprender los procesos de diseño, o si quizás es una forma de evitar ciertos problemas en el planteo del proceso de diseño general o el electrónico en particular. “El proceso de diseño es frecuentemente considerado como una secuencia de pasos que transforman un conjunto de especificaciones descritas informalmente, en una especificación detallada que puede usarse para fabricación. Todos los pasos intermedios se caracterizan por una transformación de una descripción más abstracta en una más detallada. Un diseñador puede ejecutar uno o más pasos en este proceso. Para el diseñador, el punto de partida es una especificación, y la descripción final del diseño es una implementación.” ([ELLS97], p. 3). “El problema de la especificación se refiere a la representación del diseño en cada uno de estos pasos; el problema de la validación es chequear que la representación sea consistente tanto dentro de un mismo paso como entre pasos; y el problema de la síntesis es transformar el diseño entre pasos. (...) síntesis se refiere a un paso en el proceso de refinamiento del diseño donde la representación del diseño se hace más detallada.”116 ([ELLS97], p. 56-57). La precedente cita, correspondiente a un trabajo acerca de diseño de sistemas electrónicos embebidos, pareciera confirmar que el despojo de detalle en los esquemas de proceso de diseño en ingeniería es causado por quienes se dedican al diseño electrónico en particular. Para comprender la posible razón de ello, obsérvese la suposición subyacente en la cita, que considera factible el proceso de diseño electrónico como una sucesión de etapas de diseño de estructura semejante; los mismos autores ejemplifican este hecho: “... Por ejemplo, un programador puede ver un conjunto de rutinas escritas en C como una implementación de su diseño, aunque todavía puedan ejecutarse muchos otros pasos antes que el diseño esté listo para fabricación.”117 118 ([ELLS97], p. 3-4). La visión del proceso de diseño como la concatenación de la secuencia ‘especificación – síntesis – implementación - análisis’, que transforma una descripción más abstracta en una más detallada en cada paso, supone la ejecución de una actividad ‘autosemejante’, análoga al proceso de descomposición jerárquicomodular de sistemas complejos que se propone en la sección 1.7 de este trabajo. En la sección 1.7 se sugiere la posibilidad de una implementación computacional de este tipo de proceso de diseño ‘fractálico’. En particular, el diseño electrónico - y fundamentalmente, el digital - constituye en la actualidad un caso emblemático donde tiene sentido la ejecución del proceso de diseño con herramientas informáticas. Consecuentemente, en esa área se promueve la búsqueda de una descripción del proceso de diseño, que admita ser tratada en términos manejables por las herramientas informáticas de diseño. Así, la aparente pérdida de especificidad en los esquemas del proceso de diseño electrónico es debido al interés de priorizar la estructura del proceso, respecto a las fases o etapas concretas por las cuales éste ha de transcurrir. Si bien la idea de una estructura subyacente al proceso de diseño se presenta a partir del área de diseño electrónico, se pretende en este trabajo extender esta idea al diseño en ingeniería en general. El objeto de la sección 2.1.1.4 es, precisamente, proponer una estructura para el proceso de diseño en ingeniería. [ 2.1.1.4 ] ESTRUCTURA DEL PROCESO DE DISEÑO En virtud de los diversos esquemas de proceso de diseño en ingeniería presentados y descritos en la sección 2.1.1.3, y sus analogías con el proceso de descomposición jerárquicomodular de sistemas complejos que se presenta en la sección 1.7 de este trabajo, en el presente 116 Texto traducido del original, en inglés. Ver nota 54, p. 39. 117 Texto traducido del original, en inglés. Ver nota 54, p. 39. 118 Si bien la cita propone la manufactura como fin del proceso de diseño, esto no se aplica al caso de productos de tipo intelectual, como puede ser el desarrollo de un programa informático, o el código para un procesador de señales digitales, por dar un par de ejemplos. El producto de un proceso de diseño se estudia en la sección 2.1.2. Ver nota 109, p. 60. Ingeniería Electrónica – Universidad Católica del Uruguay 64 - [ 2 ] Diseño en Ingeniería documento se propone considerar el proceso de diseño como la concatenación de la siguiente ‘estructura elemental’ de diseño, o ‘celda de diseño’119 (Fig. 2.4): Especificación síntesis análisis Implementación Fig. 2.4: ‘Celda de diseño’: ciclo de diseño elemental. Esta ‘celda de diseño’ representa un paso en el proceso de diseño, que transforma una descripción más abstracta en una más detallada. Cada paso del proceso de diseño en este sentido supone el tránsito de un nivel jerárquico superior a uno inferior. Así, respecto del nivel jerárquico en que se halla el proceso de diseño, la descripción más abstracta es una especificación, y la más detallada es una implementación; respecto del proceso total, el nivel más abstracto es ‘la especificación’, y el nivel más detallado es ‘la implementación’ del diseño. Cada ‘celda de diseño’ puede descomponerse en dos o más ‘celdas de diseño’, dado que las actividades de síntesis y análisis - en cuanto transformaciones de una descripción en otra descripción - pueden efectuarse, prima facie, con granularidad arbitraria. En virtud de esto, el proceso de diseño completo queda representado por una concatenación de estas ‘celdas de diseño’: el proceso de diseño completo puede considerarse como producto del refinamiento ‘fractálico’ de una ‘celda de diseño’ primigenia que representa al proceso total, quedando así representado por una concatenación de ‘celdas de diseño’ desde ‘la especificación’ a ‘la implementación’120. Las relaciones entre el proceso de diseño completo y la ‘celda de diseño’ se representan esquemáticamente en la Fig. 2.5121. La ‘celda de diseño’ genérica, representada a la derecha del esquema de la Fig. 2.5, indica que cada descripción es a la vez una implementación correspondiente a la etapa de síntesis previa, y una especificación para la siguiente etapa de síntesis 122. La validación se efectúa 119 ‘Celda de diseño’ parafraseando a las ‘celdas de campo’ de la teoría electromagnética, como modelo de propagación de las ondas electromagnéticas. Sin embargo, no se persigue analogía alguna en este caso, en virtud de la carencia de jerarquía entre las ‘celdas de campo’ de la teoría electromagnética. Otra opción sería denominarla ‘ciclo de diseño’. 120 Se pretende que el procedimiento sea analógico a un fractal; no significa que el diagrama resultante presente esta característica. De todas formas, esto último igual puede obtenerse si se admiten pasos de diseño donde los procesos de transformación de síntesis y análisis resulten en la identidad, es decir, que simplemente ‘copien’ una descripción sin alterarla - es decir, devolviendo una implementación idéntica a la especificación - con el único objeto de transmitir la especificación tal cual hacia el nivel inferior. 121 En la Fig. 5.2 se presenta un esquema similar, en el cual se ignoran los aspectos relativos al nivel de abstracción, y se remarca la flexibilidad de la ‘celda de diseño’ para expresar la recurrencia del proceso de diseño. 122 Que la implementación de la etapa al nivel n constituya la especificación para la etapa al nivel jerárquico inferior n - 1 no implica que esa implementación, en cuanto descripción, reitere explícitamente las especificaciones que le dieron origen (es decir, las especificaciones al nivel n); estas son ‘impuestas’ automáticamente ‘hacia abajo’ al cerrarse cada ciclo de validación. Diseño de Sistemas Electrónicos Complejos [ 2.1 ] Proceso y Producto de Diseño - 65 Proceso de diseño Nivel jerárquico ' Celda de Diseño' nivel de sistema nivel de símbolos sencillos A S implementación A descripción(n) S detalle S abstracción especificación A descripción(n-1) S A Fig. 2.5: El proceso de diseño como ‘fractal’ de ‘celdas de diseño’. recorriendo las descripciones en sentido inverso al de diseño o síntesis, y aplicando el procedimiento de análisis. Una etapa de síntesis es validada cuando, a partir de la implementación obtenida, la etapa de análisis devuelve una especificación compatible con la correspondiente a esa etapa123. En virtud de la posibilidad de abstraer un conjunto de etapas de diseño (un conjunto de ‘celdas de diseño’) en una única etapa o ‘celda’ de diseño, es posible extender la validación del proceso de síntesis de una a varias etapas de diseño124. Así, en el esquema de la Fig. 2.5, las iteraciones del proceso de diseño se corresponden con ciclos de validación. Las iteraciones en el proceso de diseño de la Fig. 2.5 no necesariamente retornan a la descripción a nivel funcional del diseño en forma directa, sino que pueden hacerlo etapa a etapa, donde cada etapa puede ser a su vez una abstracción de un número arbitrario de etapas, dada la definición de ‘celda de diseño’. En caso de detección de una síntesis inválida, este mecanismo permite identificar el paso de síntesis erróneo, inhibiendo el chequeo innecesario de etapas previas en tanto persistan errores a nivel del último paso de diseño. Esto minimiza las iteraciones del proceso de diseño, a la vez que obliga al tránsito por todas las etapas de síntesis a partir de la fallida, sin saltearse ninguna. Eventualmente, el éxito en la validación implica haber regresado al nivel de descripción más alto del diseño, o ‘la especificación’. En esto, el esquema de la Fig. 2.5 se corresponde con el esquema propuesto en el Manual de Diseño Electrónico (Fig. 2.3) y se diferencia del esquema propuesto por Rashid (Fig. 2.2) en el cual se retorna directa e indefectiblemente al nivel de descripción funcional. El proceso de diseño de la Fig. 2.5 es compatible con los procesos de composición y descomposición jerárquico-modular de sistemas complejos, en cuanto puede hacerse coincidir cada nivel descriptivo del proceso de diseño con un nivel de jerarquía del 123 Nótese el empleo del término compatible en lugar de idéntica en referencia a la especificación: la implementación obtenida puede cumplir con especificaciones más exigentes que las prestablecidas, con lo cual la validación es igualmente satisfactoria. 124 Nótese que se respeta cada una de las afirmaciones efectuadas en [ELLS97], p. 56-57, citadas en p. 63. Ingeniería Electrónica – Universidad Católica del Uruguay 66 - [ 2 ] Diseño en Ingeniería proceso de composición o descomposición de un sistema complejo. La definición de ‘celda de diseño’ dada admite una forma ‘recursiva’ o ‘fractálica’ de aplicación de los procesos de síntesis/análisis, análoga a los mencionados procesos de descomposición/composición, respectivamente. Es factible además concebir las descripciones representadas en la ‘celda de diseño’ como una agregación de descripciones ‘en paralelo’, y los procesos de síntesis y análisis como un número de procesos de síntesis y análisis concurrentes correspondiente a cada descripción ‘paralela’; así, es posible tratar cada nivel jerárquico en forma modular, en el sentido de la modularidad de un sistema complejo (sección 1.5.2). En la sección 1.7, se propone la automatización de los procesos de composición y descomposición jerárquico-modular de sistemas complejos, de ser ello posible. Consecuentemente, se sugiere la automatización del proceso de diseño según el esquema de la Fig. 2.5. “Desafortunadamente, las descripciones del diseño en sus varias etapas son frecuentemente informales, no estando conectadas lógicamente mediante un conjunto de relaciones precisas.”125 ([ELLS97], p. 4). Esta situación conspira contra todo intento de automatización del proceso de diseño de ingeniería. Así, al igual que para el caso de sistemas complejos cualesquiera, la automatización de estos procesos constituye a la fecha un problema abierto. Esta situación atenta en forma nefasta con las intenciones de automatización del proceso de diseño. Las implicancias de este hecho se estudian en la sección 2.2. [ 2.1.2 ] EL PRODUCTO DE DISEÑO Hasta aquí, se ha empleado reiteradamente la noción de ‘producto del proceso de diseño’, en forma intuitiva. Conferida en la sección 2.1.1 una primera idea acerca del proceso de diseño en sí, se aborda en la siguiente sección este otro aspecto del término ‘diseño’, ya anunciado en al inicio (sección 2.1): su empleo como sustantivo, el cual refiere ‘diseño’ a un producto. [ 2.1.2.1 ] EL ‘DISEÑO’ COMO DESCRIPCIÓN Un diseño, en referencia a un ente material o intelectual acabado, producto de un proceso de diseño como el que se describe en la sección 2.1.1, posee una característica esencial: es, precisamente, el resultado de un proceso de diseño. Se ruega no desestimar la precedente afirmación, o se la denoste como perogrullada. Como resultado de un proceso de diseño, el producto de diseño hereda del proceso ciertas propiedades, de las cuales interesa considerar en detalle la referente a la transformación de una descripción. En la sección 2.1.1.4 se concibe al proceso de diseño como un refinamiento progresivo de una descripción inicial, designada especificación, hasta otra descripción final, denominada implementación. Esta última, como fase final del proceso de diseño, necesariamente debe devolver el producto de dicho proceso. Así, el producto del proceso de diseño - el ‘diseño’ - es en esencia una descripción: • el resultado de un proceso de diseño es una descripción de un ente material o abstracto, concebida de tal forma que - após de la consecución del proceso original - permite la implementación repetitiva del ente, en forma predecible, es decir, manteniendo las especificaciones. • por descripción debe entenderse una serie o conjunto de indicaciones, proporcionadas en algún lenguaje textual o gráfico, cuya ambigüedad es limitada sólo por el requerimiento de mantenerse dentro de las especificaciones dadas. 125 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 2.1 ] Proceso y Producto de Diseño - 67 El sustantivo ‘diseño’ se refiere a una descripción - un conjunto de indicaciones proporcionadas en algún lenguaje - de un ente material o intelectual, derivado de un proceso de diseño, que admite su implementación repetitiva, o reproducción, manteniendo las especificaciones establecidas para el ente original126. Así, por ejemplo, un ‘diseño’ se diferencia de una ‘obra de arte’ en ciertos aspectos. Prima facie, los ‘diseños’ son concebidos para ser reproducidos, a diferencia de las obras de arte cuya característica es precisamente el ser únicas, e irrepetibles. Si bien la ‘unicidad’ de las obras de arte se considera usualmente como una cuestión inherente a su valoración, esta característica puede comprenderse en el presente contexto de ‘diseño’ como consecuencia de que las obras de arte no poseen especificaciones, y además, sus ‘implementaciones’ no constituyen una descripción de como reiterarlas. En esencia, a diferencia de un ‘diseño’ las obras de arte son ‘inefables’. Por ejemplo, Ud. podrá mediante molde adecuado reproducir la estatua del David para disfrutarla en su casa, o con una imprenta producir cuantas copias de Don Quijote le venga en gana, o con la colaboración del más experto falsificador recrear la Capilla Sixtina, pero no es posible establecer una serie de indicaciones que permitan obtener esas obras de arte desde cero, y aún en caso de contar con las originales, subsiste el inconveniente de no poseer indicación alguna para reiterar la obra a partir de su ‘implementación’ original127. Podría argumentar Ud., sin embargo, que es posible reproducir el Tah-Mahal. Correcto - pero en ese caso necesariamente se estaría en posesión del ‘diseño’ del edificio, plasmado en forma de plano arquitectónico al detalle o nivel de descripción adecuado. Así, un diseño puede quizás ser considerado como obra de arte, pero una obra de arte no es en general diseño, bien por carecer de especificación, bien por carecer de una implementación que permita extraer una descripción - y en caso de serlo, que no confiera indicaciones suficientes para la reproducción - o bien por no provenir de un proceso de diseño. Amén de las obras de arte, es también posible identificar diversos diseños materiales recalcitrantes a ser reproducidos por mera ‘copia’ de su implementación física; no es posible, en ejemplo, reproducir un circuito integrado por más que disponga de un original (y la tecnología de manufactura) si le faltan las indicaciones de como hacerlo, es decir, si se carece del ‘diseño’, pese a que el original fuera concebido como ‘repetible’. En consecuencia, el ‘diseño’ se compone de ambas descripciones, especificación e implementación, de las cuales la última debe conferir indicaciones adecuadas y suficientes para la reproducción del ‘diseño’ con las características establecidas en la primera128. Cabe notar que esta noción no requiere reiterar o replicar el proceso de diseño original para la reproducción del ‘diseño’; establece solamente que el resultado del proceso de diseño original debe devolver una descripción tal que permita la reproducción dentro de especificaciones. La reproducción de un ‘diseño’ puede hacerse - y normalmente se hace - vía procesos distintos al proceso de diseño original. 126 Naturalmente que el producto de diseño, cuando éste es de tipo material, se refiere también al objeto en sí. Sin embargo, el objeto material por sí solo no constituye el ‘diseño’; primero, porque en virtud de ser repetible, el ‘diseño’ podría referirse tanto a una de las ‘copias’ como al objeto ‘original’; segundo, puesto que por mera inspección del objeto mismo no siempre es posible efectuar una reproducción, y difícilmente se adivinen las especificaciones para ello; tercero, puesto que del propio objeto no necesariamente ha de deducirse el proceso de reproducción. Estos argumentos se discuten en la presente sección. 127 Se plantea aquí un inconveniente - adrede - con el ejemplo de una obra literaria: la ‘implementación’ de la obra de arte es el contenido literario - el texto -, y constituye una descripción que permite su exacta reproducción. En este caso puede advertirse que de lo que se carece es de especificación, teniéndose sólo una implementación que admite ser reproducida. Carente de especificación, la implementación no habría resultado de un proceso de diseño, y por tanto, la obra literaria no se trataría de un ‘diseño’ según la noción aquí conferida. 128 Al respecto, nótese la pertinencia de la estructura propuesta para la ‘celda de diseño’ (Fig. 2.4) y la estructura del proceso de diseño completo (Fig. 2.5) en la sección 2.1.1.4 Ingeniería Electrónica – Universidad Católica del Uruguay 68 - [ 2 ] Diseño en Ingeniería Considérese, por ejemplo, que no es necesario repetir las fases correspondientes a investigación del proceso original, puesto que ello no ocasiona una modificación en las especificaciones del producto al momento de su reproducción. Así, aunque distinto del original, el proceso de reproducción devuelve efectivamente el ‘diseño’. Considérese otro caso exento de posibles sutilezas129: para el caso de ‘diseños’ materiales, los cambios en las tecnologías de producción orientados al abaratamiento de los costos son naturalmente deseables de incorporar; ello implica una diferencia - significativa o no - respecto del proceso de manufactura original, pero que no necesariamente ocasiona una variación en las especificaciones. Es incluso posible (y usual) modificar las especificaciones a especificaciones más estrictas, con lo cual el ‘diseño’ original se sigue respetando130, manteniéndose válida su calificación como ‘diseño’ según la noción establecida en la presente sección. La noción de ‘diseño’ precedentemente conferida es función de las especificaciones, y su laxitud sigue estrictamente a esas especificaciones. Por ejemplo, no se requiere describir la yuxtaposición de moléculas del material que constituye un objeto material a diseñar, si se especifica sólo la forma y dimensiones de ese objeto; no obstante, implícitamente el material queda limitado a aquellos que permitan cumplir con las referidas especificaciones de forma y tamaño. Esto sugiere que la especificación de un diseño debe limitarse a lo estrictamente indispensable; es inconveniente la sobre-especificación, en virtud de la restricción que esto impone a la consecución del ‘diseño’. En particular, una sobre-especificación acota al conjunto solución dentro del espacio de diseño. Las implicaciones de la precedente afirmación no constituyen un hecho trivial; una eficiente exploración del espacio de diseño es un argumento clave y reiterado en las actuales metodologías de diseño, particularmente las de diseño electrónico. Los conceptos de espacio de diseño, su exploración, y el conjunto solución, se discuten en la sección 2.4. [ 2.1.2.2 ] EL LENGUAJE DE DESCRIPCIÓN Cabe aquí plantear una preocupación que concierne a la incidencia del lenguaje empleado para la descripción del ‘diseño’. Esta preocupación se deriva de la incidencia del lenguaje en el proceso de conocimiento, un tema controversial surgido en el ámbito antropológico a raíz de las observaciones de B. Whorf. “La hipótesis que propone Whorf es «que la creencia comúnmente sostenida de que los procesos cognoscitivos de todos los seres humanos poseen una estructura lógica común que opera anteriormente a la comunicación e independientemente de ella, es errónea. Juzga Whorf que son las pautas lingüísticas las que determinan lo que un individuo percibe en el mundo y como lo piensa. En vista de que tales pautas varían ampliamente, los modos de pensar y percibir de grupos que utilicen distintos sistemas lingüísticos conducirán a visiones del mundo básicamente diferentes. (Fearing, 1954.)». Ingresamos pues, en un nuevo concepto de relatividad, según el cual todos los observadores no son guiados por la misma evidencia física hacia el mismo cuadro del universo, a no ser que se parezcan sus trasfondos lingüísticos... ” ([Ber93], p. 233). Von Bertalanffy aduce que la hipótesis de Whorf es una expresión de un problema más general de la cognición humana. Cuestiona en que medida las ‘categorías del pensamiento’ - no sólo del conocimiento cotidiano, sino también del científico, como un refinamiento del 129 Se refiere a que en el primer ejemplo, la diferencia entre el proceso original y los subsiguientes puede ser vista como una diferencia ‘formal’ mas no como una diferencia ‘real’ o significativa: que no se reitere la fase de investigación es algo de índole netamente práctica, que no implica alteración o no de las fases subsiguientes; sin embargo, constituye una diferencia. 130 Esto es usual en la fabricación de semiconductores, donde los avances tecnológicos propician el abaratamiento de costos y, simultáneamente, mejores prestaciones. Es posible entonces reproducir un dispositivo semiconductor con tecnologías más modernas que las empleadas originalmente, manteniéndose dentro de sus especificaciones originales - aunque con un margen más holgado. Diseño de Sistemas Electrónicos Complejos [ 2.1 ] Proceso y Producto de Diseño - 69 primero - dependen y son modeladas a priori por factores biológicos y culturales, para quizás recién luego dar cabida a un conocimiento ‘absoluto’ emancipado de las precedentes limitaciones. “La percepción es universalmente humana, determinada por la dotación sicofísica del hombre131. La conceptualización está vinculada a la cultura, por depender de los sistemas simbólicos que aplicamos. Tales sistemas están determinados en gran medida por factores lingüísticos, por la estructura del lenguaje usado.”. La estructura del lenguaje parece determinar cuales rasgos de la realidad serán abstraídos, y con ello que forma adoptarán las categorías del pensamiento, y recíprocamente, cómo sea visto el mundo determina y forma el lenguaje. ([Ber93], pp. 249-250). Por ejemplo, según Whorf, las lenguas indoeuropeas hacen hincapié en el tiempo, cuestión que se evidencia en el afán de llevar registros, diarios, calendarios, relojes, el tiempo que se usa en la física, la noción de pasado, presente y futuro, e inclusive la actitud histórica. En contraste, ciertas lenguas indígenas no distinguen tiempos, sino que indican sólo la validez de los enunciados. Por ejemplo, en la lengua ‘hopi’ no hay diferencia entre ‘él corre’, ‘está corriendo’ o ‘corrió’, sino que todo es ‘hay correr’: el ‘hopi’ carece de noción general o intuición del tiempo como un continuo en fluir uniforme. En lugar de las categorías indoeuropeas de ‘espacio’ y ‘tiempo’, el ‘hopi’ prefiere distinguir todo lo que es accesible a los sentidos (sin distinguir entre el presente y el pasado) de lo que no es manifiesto, como el futuro y lo exclusivamente mental o intelectual. “¿Cómo se construiría una física siguiendo estos lineamientos, sin ‘t’ (tiempo) en sus ecuaciones? Perfectamente, por lo que se me alcanza, aunque por supuesto, requeriría diferente ideología y a lo mejor diferentes matemáticas. Claro está que ‘v’ (velocidad) tendría que desaparecer también. (1952, p. 7)”. Según Bertalanffy, Whorf aduce que el espacio, el tiempo y la materia de Newton no son intuiciones, sino recetas de la cultura y el lenguaje, y que la física relativista - otra descripción del universo, tan válida como la de Newton - es más bien concebida en términos matemáticos. Whatmough critica a Whorf sus argumentos exclusivamente ‘lingüísticos’ - “No sirve decir que la física ‘hopi’ no podría haber tenido conceptos como lo de espacio, velocidad y masa, o que habrían sido muy diferentes de los nuestros. Los hopi no tienen física porque el tabú o la magia les impiden la investigación experimental.”. De todas formas, sin entrar en discusiones y análisis estrictamente lingüísticos o culturales, es manifiesto que el estilo de pensamiento difiere entre las civilizaciones, incidiendo sobre sus nociones: lo primero que le importa a las lenguas indoeuropeas es el tiempo; al ‘hopi’ la validez; al návajo el tipo de actividad ([Ber93], pp. 234-235). En el planteo de la incidencia del lenguaje en la visión del universo, la matemática como lenguaje simbólico no escapa al cuestionamiento. Las matemáticas significan esencialmente la existencia de un algoritmo mucho más preciso que el lenguaje ordinario, siendo por ello ampliamente empleadas en el diseño, ya se refiera esto a proceso o producto (descripción). Sin embargo, la matemática es un lenguaje simbólico derivado del cotidiano. Así, no es independiente ni de la estructura de este, ni del contexto cultural, el cual determinará que aspectos o perspectivas serán matematizados132. 131 Respecto a la percepción sicofísica humana, aduce Von Bertalanffy que la expansión de los sentidos naturales merced a sensores artificiales (como instrumentos de medida y registro) permite a la ciencia cumplir una de sus funciones principales, la de ‘expandir lo observable’. Esta eliminación de las limitaciones sicofísicas conduce a la ‘desantropomorfización de la imagen del mundo’, en virtud de la cual, por ejemplo, los campos físicos de la óptica, la acústica, la teoría del calor - derivados de experiencias sensorias - se funden y trasmutan a la termodinámica, el electromagnetismo, la mecánica cuántica, etc. “Así va siendo eliminado lo que es específico de nuestra experiencia humana. Lo que al fin queda no es sino un sistema de relaciones matemáticas.” ([Ber93], pp. 256). Nótese que este punto ha sido introducido desde otra perspectiva en el presente documento, como el cambio de la visión ‘Aristotélica’ del universo, por una ‘Platónica’ (sección 1.1.1). 132 Se recuerda que en la idea de Von Bertalanffy, es claro que las categorías de la cognición dependen, primero, de factores biológicos (la tesis de Uexküll: la percepción está determinada por la organización sicofísica, que produce una experiencia isomorfa con la ‘realidad’) y segundo, de factores culturales, los cuales no alteran la potencialidad de la experiencia sensoria (incluida la ‘extendida’ por la ciencia y la tecnología) pero modifican la ‘apercepción’, es decir, que rasgos de la realidad experimentada serán enfocados, y cuales serán desestimados. Al respecto del contexto cultural, que la visión de >> p. 70 Ingeniería Electrónica – Universidad Católica del Uruguay 70 - [ 2 ] Diseño en Ingeniería En virtud de la posible incidencia del lenguaje en el proceso cognitivo según afirma Whorf, secundado por Bertalanffy a nivel cognitivo general, se requiere considerar la incidencia del lenguaje concreto empleado para la descripción, o el ‘diseño’: Textual o gráfico, de carácter matemático o verbal, el lenguaje empleado en la descripción del producto de un proceso de diseño es un factor limitante de ese ‘diseño’. Como se verá en el caso particular del diseño electrónico, la precedente afirmación es perfectamente pertinente, constituyendo un tema central de investigación y discusión la búsqueda de lenguajes y meta - lenguajes de descripción adecuados que no limiten en exceso la expresividad del ‘diseño’. En particular, bajo el rótulo de ‘Modelos de Cómputo’133, el problema de cómo modelar134 adecuadamente los distintos tipos de sistemas (sistemas de flujo de datos, máquinas de estados finitos, sistemas de control, sistemas reactivos, etc.) constituye el núcleo de esta cuestión; allí se hace manifiesta tanto la dependencia del modelo respecto al lenguaje de descripción, como la incidencia de la concepción cultural en los planteos, fundamentalmente en lo que respecta al concepto del tiempo, su representación y administración135. [ 2.1.2.3 ] EL ‘DISEÑO’ COMO ‘SISTEMA’ En varias de las citas efectuadas en la sección 2.1.1 al inicio del presente capítulo, se relaciona ‘diseño’ con ‘sistema’, bien asumiendo que “el producto de un proceso de diseño es un sistema”, o bien aduciendo que “el acto de diseñar es idear un proceso o sistema”, o directamente estableciendo que “diseñar es definir un sistema”. De hecho, no sorprende el advertir cierta laxitud en el empleo de los términos ‘diseño’ y ‘sistema’ en la literatura de ingeniería, llegándose inclusive a observar su directo intercambio, cual si fueren sinónimos. La afirmación “un diseño es un sistema complejo” se efectúa ya en la sección 2.1.1.3, en virtud de la analogía que se detecta entre los procesos de diseño y los procesos de descomposición jerárquico-modular de sistemas complejos. No obstante, la relación entre ‘diseño’ y ‘sistema’ puede inferirse también en base a las propias nociones de diseño y sistema complejo que se confieren en este documento. En la sección 2.1.2.1 se establece que un ‘diseño’ es una descripción de un ente material o intelectual, producto de un proceso de diseño como el que se presenta en la sección 2.1.1. Esa descripción del proceso de diseño implica que un ‘diseño’ requiere elaboración, que un ‘diseño’ no se refiere a un producto elemental, primario, o primitivo, puesto que en ese caso no se requeriría un proceso de diseño para su consecución. Por otra parte, en el capítulo 1 de este documento se confiere la idea de ‘sistema’ como orden de partes relacionadas en interacción no trivial ni despreciable (sección 1.3.3). A los sistemas se les adiciona el fenómeno de la complejidad, el cual deriva de las características de las referidas interacciones entre las partes constitutivas de los sistemas. Si bien el propio concepto de sistema presupone que este no es una entidad elemental, el concepto de sistema complejo que se emplea en este documento pretende enfatizar las características de la complejidad asociada a los sistemas. Así, puede inferirse que: << p. 69 Einstein resultase revolucionaria, se debió a la ruptura que supone respecto de la concepción cultural prevaleciente de tiempo y espacio absolutos. Respecto al lenguaje en sí, la Relatividad Especial o Restringida empleó una matemática esencialmente similar a la empleada por Newton, pero la Relatividad General requirió recursos matemáticos adicionales. 133 Siguiendo la expresión de Lee y Sangiovanni - Vincentelli, entre otros autores. También referido como modos de cómputo (‘models of computation’ y ‘modes of computation’ en la literatura de lengua inglesa, respectivamente). Ver sección 5.5. 134 El concepto de modelo - ligado íntimamente al de diseño y sistema - se estudia en el capítulo 3. 135 Una de cuyas expresiones más evidentes la constituyen los sistemas de ‘tiempo real’. Al decir de Whorf, se hablaría de un tiempo en la concepción indoeuropea. Diseño de Sistemas Electrónicos Complejos [ 2.1 ] Proceso y Producto de Diseño - 71 como producto de un proceso de diseño - lo que implica un grado significativo de elaboración - un ‘diseño’ es en esencia un ‘sistema complejo’, u organización de partes en interacción no trivial. Sin embargo, a partir de la cuasi tautológica afirmación “un ‘diseño’ es el producto de un proceso de diseño” se advierte que la consideración recíproca - un ‘sistema’ es un ‘diseño’ - no es válida, puesto que no todos los sistemas resultan de un proceso de diseño. El considerar que un ‘diseño’ es un sistema, quizás complejo, sugiere revisar los procesos de diseño desde la perspectiva de sistemas y su complejidad asociada. Así, en lo que resta del presente capítulo, se estudian los procesos de diseño de la sección 2.1.1.3 en relación a la noción de sistema complejo que se discute en el capítulo 1 de este trabajo, y las nociones de proceso y producto de diseño conferidas al inicio de este capítulo. [ 2.2 ] METODOLOGÍAS, FLUJOS, Y HERRAMIENTAS DE DISEÑO En la sección 2.1.1 se introduce el concepto de proceso de diseño, estableciendo algunas de sus características más relevantes (sección 2.1.1.1) sus aspectos sicológicos (sección 2.1.1.2) sus aspectos operacionales (sección 2.1.1.3) y su estructura (sección 2.1.1.4). En las dos últimas secciones se presentan diversos esquemas de procesos de diseño en ingeniería - particularmente, ingeniería electrónica - y se propone una concepción del proceso de diseño analógica a los procesos de descomposición jerárquico-modular de sistemas complejos (sección 1.7). Conviene ahora estudiar los procesos de diseño en ingeniería dentro de un marco conceptual algo más abstracto: las metodologías de diseño. El propósito de la presente sección es abordar los conceptos de metodologías de diseño, flujos de diseño, y herramientas de diseño en ingeniería, en base a las nociones iniciales de proceso y producto de diseño conferidas al inicio de este capítulo, y los conceptos de sistema, complejidad, y características de sistemas complejos que se discuten en el capítulo 1 de este trabajo. Como punto de partida, se adoptan las sucintas nociones de metodología y flujo de diseño que se presentan en [TTOV98], p. 21: • metodología de diseño: concepto abstracto que hace referencia a procesos de diseño genéricos, que relacionan entre sí los distintos niveles de complejidad y abstracción por los que atraviesa el diseño • flujo de diseño: personalización concreta de una cierta metodología, que cuenta con el soporte de herramientas de diseño • herramientas de diseño 136: cualquier elemento concreto que contribuya dando aporte o soporte a los posibles flujos de diseño, sea físico (como maquinaria, instrumentos) o inmaterial (modelos, teorías y procedimientos de cálculo concretos, recursos informáticos, etc.)137 136 Esta noción no se confiere en [TTOV98], p. 21, presumiblemente dándose por sobreentendida; no obstante, se adiciona aquí a título personal, a efectos de completar la presentación de los conceptos anunciados desde el título de la sección, y en virtud de constituir un elemento clave en la presente discusión, como se verá en los subsiguientes párrafos. 137 Pese a la posibilidad de que determinados flujos de diseño requieran herramientas de tipo físico, en general, el concepto de herramienta de diseño se refiere a herramientas de empleo ‘inmaterial’ como la matemática (en forma de modelos o procedimientos de cálculo concretos) teorías aplicables, tablas, etc. y - en la época actual - se refiere particularmente a las herramientas informáticas, que no solamente pueden implementar procedimientos de cálculo sino que además coadyuvan a labores de redacción, dibujo y diagramación, comunicación, presentación visual y gráfica (impresión) almacenamiento de información, simulación, etc. En definitiva, esta noción de ‘herramienta de diseño’ no es mas que la noción >> p. 72 Ingeniería Electrónica – Universidad Católica del Uruguay 72 - [ 2 ] Diseño en Ingeniería En consecuencia, establecer una metodología de diseño consiste en definir las distintas etapas que recorrerán los diferentes niveles de abstracción del diseño, mientras que establecer un flujo de diseño es fijar como se evoluciona a través de las mismas usando procedimientos manuales o automáticos soportados por determinadas herramientas de diseño; así, distintos flujos de diseño pueden responder a una misma metodología, y un mismo flujo de diseño se puede implementar con diferentes herramientas ([TTOV98], pp. 21-22). En este contexto, los esquemas de procesos de diseño que se presentan en la sección 2.1.1.3 (Fig. 2.1, Fig. 2.2, y Fig. 2.3) se conciben desde la perspectiva de metodologías de diseño y no como flujos de diseño, básicamente debido a su pretensión de ser procesos de diseño genéricos. Sin embargo, pese a ser también de aplicación general, el esquema que se presenta en la Fig. 2.5 no representa una metodología dado que estas requieren definir las etapas por las que transcurre el proceso de diseño. A diferencia de los esquemas de proceso de diseño de las Fig. 2.1, Fig. 2.2, y Fig. 2.3, que buscan establecer metodologías de diseño en ingeniería e ingeniería electrónica, el esquema de la Fig. 2.5 representa una ‘meta-metodología’ de diseño: confiere la estructura jerárquica del proceso de diseño - las relaciones entre los diferentes niveles de abstracción del diseño - y establece como se debe recorrer esta jerarquía, pero no indica cuales son los diferentes niveles de abstracción del diseño. Puede objetarse que conforme evolucione la ingeniería, la consecución de niveles superiores de abstracción en el conocimiento promoverá la aparición de esquemas de procesos de diseño aún más genéricos y abstractos que los que se presentan en la sección 2.1.1.3, por lo cual a futuro estos podrían considerarse, comparativamente, como más próximos a flujos de diseño que a metodologías. En otras palabras, la diferencia entre metodología de diseño y flujo de diseño podría adquirir un carácter relativo si se la observa desde la perspectiva que otorga la evolución. Sin embargo, se reconoce un elemento clave que permite dirimir entre los conceptos de flujo y metodología de diseño, por más que se relativice su diferencia merced a la evolución: la herramienta de diseño, que por su función tiende ser excluida de las metodologías, quedando asociada exclusivamente a los flujos de diseño. Las herramientas de diseño no brindan sólo un aporte a los procesos de diseño, sino que - al igual que sucede en gran número de actividades amén de los procesos de diseño en ingeniería - constituyen el soporte de las actividades, razón por la cual inciden en forma directa y significativa sobre estas. Esta dependencia de los flujos de diseño respecto de las herramientas con las que se implementan es precisamente lo que se busca evitar con la consecución de metodologías de diseño, cuyo objeto es independizar el proceso de diseño de los problemas derivados de la obsolescencia tecnológica y las herramientas disponibles. Así, los objetivos fundamentales de las metodologías de diseño son ([TTOV98], p. 22): • Establecer procesos de diseño que permitan reducir costos, tiempo y riesgos de desarrollo, a la vez que se garantizan las prestaciones requeridas del proyecto final (el producto de diseño) • Mantenerse, en lo posible, independiente de las herramientas de desarrollo y diseño, y las alternativas tecnológicas disponibles (para evitar problemas causados por la obsolescencia de estas). Por su parte, el papel de las herramientas de diseño, como se ha mencionado, es de dar soporte a los flujos concretos de diseño. Cada flujo de diseño es particular al caso, e idealmente responde a una determinada metodología de diseño elegida para cada caso. Sin embargo, es posible identificar un aspecto común a la aplicación de herramientas de diseño: << p. 71 usual de herramienta, referida a aquellas orientadas al diseño. Diseño de Sistemas Electrónicos Complejos [ 2.2 ] Metodologías, Flujos, y Herramientas de Diseño - 73 el rol fundamental de las herramientas de diseño es asistir las actividades de toma de decisiones del diseñador, de forma de mitigar la interferencia mutua entre inventiva, análisis y toma de decisiones (sección 2.1.1.2) “Algunos dicen que la toma de decisiones es esencialmente un arte. (...) Sin embargo, se ha producido un cambio con el advenimiento de la computadora y con el correspondiente crecimiento y desarrollo de ciencias que han trascendido al campo de la toma de decisiones. Los campos de esta actividad, que anteriormente se pensaba eran totalmente cualitativos y subjetivos, están desarrollándose ahora cuantitativamente...” ([Dix79], p. 276). Las herramientas de diseño son, precisamente, herramientas. Como tales, no pueden sustituir la capacidad de inventiva, no pueden ‘producir creatividad’, así como tampoco pueden realizar análisis y tomar decisiones que no hayan sido indicados hasta cierto punto por quienes las operan. Consecuentemente, al igual que cualquier herramienta su aporte a la consecución de la tarea para la cual se las emplea depende en gran medida del conocimiento y habilidad de quienes las eligen y manipulan - es decir, el diseñador o el equipo de diseño. Estas cuestiones se revisan en la sección 2.4.1. [ 2.2.1 ] DISEÑO ASCENDENTE Y DESCENDENTE Acorde a sus respectivos objetivos, “las metodologías siempre han hecho propuestas de refinamiento progresivo (proceso descendente, o ‘top-down’138) desde la idea a la implementación, pasando por distintas etapas o niveles de abstracción. Sin embargo, los flujos reales de diseño se han visto mucho más sujetos al estado de las herramientas de diseño que ha seguido una evolución ascendente (‘bottom-up’139) para ir cubriendo progresivamente las etapas de mayor nivel de complejidad desde el nivel físico140 al nivel funcional.” ([TTOV98], p. 22). A continuación, se establecen las nociones de diseño ‘descendente’ y ‘ascendente’, que permitirán analizar los procesos de diseño en el tiempo, inferir la incidencia de las herramientas de diseño en el tiempo de diseño, y visualizar la incidencia del tiempo de desarrollo en el costo del diseño. [ 2.2.1.1 ] DISEÑO DESCENDENTE Como sugieren los esquemas que se presentan en la sección 2.1.1.3, el proceso de diseño debería iniciarse abordando los aspectos más generales - la idea - para posteriormente ‘refinar’ esa visión hasta lograr el detalle requerido para efectuar la implementación. A estos procesos de diseño en ingeniería que se ejecutan desde lo ‘general’ a lo ‘particular’, es decir, desde niveles superiores de abstracción a niveles inferiores de mayor detalle, se les designa procesos de diseño descendente: “Un diseño estructurado consiste de dos componentes principales: 1. Dos conjuntos de criterios, cohesión y acoplamiento 2. Descomposición descendente de un sistema en módulos El objetivo de diseño es producir un sistema en el cual los módulos tengan alta coherencia y bajo acoplamiento.” ([LA90], p. 83). “Los métodos (...) son designados como ‘descomposición descendente’ de acuerdo al criterio que disminuye el acoplamiento y aumenta la coherencia.”141 ([LA90], p. 92). Así, dado que los productos de diseño son ‘sistemas’142, 138 Designación habitual en la literatura angloparlante; literalmente, ‘desde la cima hacia abajo’. 139 Designación habitual en la literatura angloparlante; literalmente, ‘desde la base hacia arriba’. 140 La cita es extraída de un texto sobre diseño de dispositivos electrónicos, por lo que el “nivel físico” se corresponde con el “Nivel de Implementación”. 141 Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 74 - [ 2 ] Diseño en Ingeniería la estrategia de diseño descendente es consecuencia de la ‘modularidad’ de los sistemas complejos, según Simon: “... las conexiones e interacciones internas en cada subsistema son más frecuentes y rápidas que aquellas entre subsistemas.” (sección 1.5.2). En virtud de la evolución tecnológica, la maduración del conocimiento, y el dominio de la práctica profesional, los procesos de diseño descendente de vanguardia generalmente no cuentan con correspondientes ‘herramientas de diseño descendente’, es decir, herramientas que soporten flujos de diseño descendente. La causa de esto radica en que las herramientas de diseño se forjan merced al advenimiento de las nuevas tecnologías, conforme estas presentan desafíos que exceden las capacidades de las herramientas de diseño adecuadas a métodos, flujos y tecnologías anteriores. Por tanto, no están disponibles a priori para diseños que emplean conocimientos o tecnologías noveles. Además, las herramientas de diseño surgen, de manera natural, ligadas al nivel de implementación. Así, las más recientes, aunque puedan estar disponibles, no son aún lo suficientemente maduras para ser empleadas a los niveles más abstractos de idea o especificación, y se limitan a una aplicación ‘local’, en virtud de la falta de confianza para su aplicación con mayor ‘generalidad’. Consecuentemente, en casos de conocimiento y tecnologías nuevos e inmaduros, el proceso de diseño descendente es ejecutado principalmente en forma manual. Resulta así altamente dependiente de la pericia y experiencia previas de los diseñadores, debido a que en estos casos de desarrollo manual, se conjugan perniciosamente los aspectos sicológicos del proceso de diseño (sección 2.1.1.2) con la complejidad, sus fuentes y sus factores de escalamiento (sección 1.4) y con las características inherentes a los sistemas complejos (sección 1.5). En virtud de la usual carencia de herramientas de diseño - debida a su inmadurez para el caso -, los procesos de diseño descendente se han asociado históricamente a metodologías de diseño en lugar de a flujos de diseño. [ 2.2.1.2 ] DISEÑO ASCENDENTE Los esquemas que se presentan en la sección 2.1.1.3, además de proponer el inicio del proceso de diseño en forma descendente, admiten la existencia de un proceso en sentido opuesto, al indicar posibles iteraciones en le proceso de diseño. Al proceso en este sentido se le denomina, correspondientemente, diseño ascendente. Para el caso de conocimientos y tecnologías inmaduras referido en la sección precedente, luego de la ejecución del proceso descendente, y habiéndose alcanzado el nivel de detalle requerido para la implementación, se debe verificar que el diseño cumple las especificaciones. Dado que a este nivel se está en condiciones de aplicar las herramientas de diseño de actualidad para el caso, es posible ejecutar el proceso en sentido inverso, efectuando una composición jerárquica de los detalles hasta la consecución del sistema bajo diseño. De esta forma, se recupera el estado de abstracción inicial, habiendo acarreado desde ‘abajo’ la información tecnológica y de la implementación. En consecuencia, es posible someter el diseño completo a verificación contra las especificaciones iniciales. Así, a diferencia de los procesos de diseño descendente, los procesos de diseño ascendente han contado históricamente con el soporte de herramientas de diseño, y por tanto, el diseño ascendente ha estado ligado más a flujos que a metodologías de diseño. Adicionalmente, el hecho que los procesos de diseño ascendente partan de niveles bajos de abstracción, donde imperan consideraciones específicas a cada caso, y donde la dependencia tecnológica es significativa, constituye una seria dificultad para extraer de los mismos cualquier suerte de generalización. 142 La identificación del producto de un proceso de diseño con un ‘sistema’ se argumenta brevemente en la sección 2.1.2.3. Diseño de Sistemas Electrónicos Complejos [ 2.2 ] Metodologías, Flujos, y Herramientas de Diseño - 75 [ 2.2.1.3 ] EL PROCESO DE DISEÑO EN EL TIEMPO: CICLO DESCENDENTE-ASCENDENTE La diferencia entre las propuestas metodológicas y la realidad de los flujos de diseño plantea dificultades en el plano operacional: la carencia de herramientas de diseño descendente incide negativamente en la calidad y velocidad del desarrollo, incrementando en número y prolongando en duración los ciclos de validación del diseño. Los ciclos de validación del diseño pueden representarse en el tiempo como concatenación de procesos de diseño descendente y ascendente. En el esquema de la Fig. 2.6 se representa uno de tales ciclos de validación. Esta figura muestra un solo ciclo del proceso de diseño, para el caso de herramientas de diseño disponibles en las mencionadas circunstancias de tecnología y conocimientos ‘inmaduros’. Nivel de abstracción De s Nivel de Especificación co m po s ic i ón Idea y establecimiento de especificaciones del diseño. jer á rq ui Nivel de detalle adecuado para implementación; herramientas disponibles. ca de sce nd en te m Co i si c po ón ár j er ica qu c as d en te en Comprobación de la implementación contra las especificaciones. Nivel de Implementación tiempo Flujo de diseño 'manual' Flujo de diseño asistido con herramientas de diseño 'ascendente' Fig. 2.6: Fases descendente y ascendente de un ciclo del proceso de diseño, en situación de conocimiento y tecnología inmaduros. (Adaptado de [TTOV98], p. 24.) Las formas descendente y ascendente que adopta el proceso de diseño, si bien son indicadas en los esquemas de proceso de diseño de la sección 2.1.1.3 (Fig. 2.1, Fig. 2.2, y Fig. 2.3) no se explicitan en el tiempo. Por contrapartida, el esquema de la Fig. 2.6 desarrolla un ciclo del proceso en el tiempo, pero no explicita las distintas fases por las cuales este proceso transcurre en ese ciclo, a excepción de los niveles de abstracción extremos - ”Nivel de Especificación” y “Nivel de Implementación” - correspondientes a la idea e implementación del diseño, respectivamente. El proceso de diseño completo requiere usualmente de varios ciclos143 hasta que la validación de la implementación contra las especificaciones devuelve un resultado exitoso, lo que corresponde a una secuencia de ciclos como el de la Fig. 2.6. El proceso completo se representa en la Fig. 2.7, donde se sugiere visualmente una ‘aceleración’ de los ciclos conforme son ejecutados, en virtud de la ‘maduración’ y ‘experiencia acumulada’ con las sucesivas pasadas del proceso de diseño, amén de la progresiva depuración de los errores (Adaptado de [Tan01], pp. 2-3). 143 Correspondientes a las iteraciones que se mencionan en todos los esquemas de proceso de diseño de la sección 2.1.1.3. Ingeniería Electrónica – Universidad Católica del Uruguay 76 - [ 2 ] Diseño en Ingeniería Nivel de abstracción validación no satisfactoria validación satisfactoria Costo validación implementación diseño especificación Nivel de Especificación costo de diseño tiempo de diseño Nivel de Implementación tiempo ciclo descendente y ascendente Fig. 2.7: Proceso de diseño asistido con herramientas de diseño ‘ascendente’, y costo del diseño, en función del tiempo. Sobre el primer ciclo de validación del proceso de diseño que se ejemplifica en la Fig. 2.7, se superponen los cuatro componentes de la ‘celda de diseño’ (Fig. 2.4): las descripciones inicial y final (especificación e implementación, respectivamente) y las actividades de síntesis y análisis (diseño y validación, respectivamente). Esto permite integrar la noción del desarrollo en el tiempo con la estructura jerárquico-modular del proceso de diseño, dada en la Fig. 2.4 (estructura de la ‘celda de diseño’) y la Fig. 2.5 (estructura del proceso de diseño completo). En esencia, corresponde a desarrollar los mencionados esquemas estructurales en la dimensión temporal. Con esta idea, puede inferirse el desarrollo en el tiempo de los esquemas del proceso de diseño de la sección 2.1.1.3 (Fig. 2.1, Fig. 2.2, y Fig. 2.3). El desarrollo del proceso de diseño en la dimensión temporal habilita a superponer la evolución del costo144 de diseño en el tiempo, como se indica en el esquema de la Fig. 2.7. Esto deja en evidencia que una duración excesiva del proceso de diseño constituye una situación indeseable. Dado que usualmente se estima que la tasa de crecimiento en el tiempo del costo de diseño sigue una ley exponencial145, resulta vital minimizar el tiempo de desarrollo; en consecuencia, las metodologías de diseño buscan promover flujos de diseño en los cuales el número de iteraciones del proceso sea mínimo, o que estas se ejecuten lo más rápido posible (ver Fig. 2.7). 144 El costo del diseño se aplica en el sentido amplio del término, no refiriéndose exclusivamente al costo económico. Sin embargo, merced a la contumacia de los ‘reduccionistas económicos’ - agentes incapaces de reconocer y admitir las severas limitaciones del único lenguaje que emplean para la descripción de los complejos sistemas sociales, y ajenos a las limitaciones inherentes al ‘reduccionismo’ advertidas en la ciencia (¡incluídas las ciencias sociales!) - el costo en la literatura se halla, indefectiblemente, medido en unidades monetarias. 145 Coincidentemente, esta estimación es corriente en el ámbito empresarial, en el departamento denominado usualmente ‘Operaciones’, asociado a lo que la moda actual designa ‘Logística’ en la empresa moderna (fines s. XX, principios s. XXI). Diseño de Sistemas Electrónicos Complejos [ 2.2 ] Metodologías, Flujos, y Herramientas de Diseño - 77 Se conciben dos estrategias para minimizar la cantidad y la duración de las iteraciones del proceso de diseño, íntimamente relacionadas: • Emplear herramientas de diseño: El empleo de herramientas de diseño reduce el tiempo de diseño en comparación con la ejecución de procesos manuales, los cuales están limitados por las capacidades sicofísicas humanas. La disponibilidad de herramientas de diseño es dependiente de dos factores, la maduración de los conocimientos y el grado de formalización de los procesos de diseño (secciones 2.2.1.1 y 2.2.1.2) los que determinan que la disponibilidad de herramientas sea mayor para procesos de diseño ‘ascendente’ que para procesos ‘descendentes’. • Formalizar el proceso de diseño: Amén de facilitar la implementación de herramientas de diseño, los métodos formales - aunque se ejecuten manualmente, no siendo automatizados por herramienta alguna - aseguran capacidades de cálculo, predicción y verificación. Dado que las iteraciones del proceso de diseño se corresponden con ciclos de validación, métodos formales de especificación, síntesis, implementación y análisis reducen la cantidad de ciclos146, y los aceleran147. Los efectos de la formalización y la automatización sobre el proceso de diseño se esquematizan en la Fig. 2.8, la cual hace uso y referencia del concepto de ‘celda de diseño’ (sección 2.1.1.4; Fig. 2.4 y Fig. 2.5) superponiendo al ejemplo una secuencia que abarca tres instancias de descripción del proceso. Nivel de abstracción Costo nivel validado en etapa previa Nivel de Especificación costo de diseño tiempo de diseño Nivel de Implementación implementación no satisfactoria implementación satisfactoria tiempo Fig. 2.8: Proceso de diseño formalizado y asistido por herramientas de diseño ‘descendente’ y ‘ascendente’. Obsérvese en la Fig. 2.8 que las implementaciones satisfactorias en un determinado nivel jerárquico del proceso permiten - após del ciclo de verificación correspondiente - descender en la jerarquía del diseño en el paso subsiguiente, mientras que las implementaciones 146 Se cometen menos errores, en virtud de la naturaleza de los procedimientos formales. 147 De obtenerse una descomposición formal del diseño como indica el esquema de la Fig. 2.5, sería factible ejecutar los ciclos de validación a niveles intermedios de abstracción, por lo cual las iteraciones que se indican en la Fig. 2.7 no requerirían ir desde el “Nivel de Especificación” al “Nivel de Implementación”, con el consiguiente ahorro de tiempo. Ingeniería Electrónica – Universidad Católica del Uruguay 78 - [ 2 ] Diseño en Ingeniería insatisfactorias requieren una nueva implementación al mismo nivel de abstracción. Por esta razón, los niveles alcanzados en el diseño que devuelven una validación exitosa evitan la necesidad de una síntesis hasta el “Nivel de Especificación” para los ciclos subsiguientes, produciendo de esta manera un ahorro de tiempo, y una consiguiente reducción en el costo del diseño. Puede inferirse inmediatamente que la automatización de los métodos formales constituye un significativo aporte en esta dirección. Como sugiere la flecha al fondo del esquema de la Fig. 2.8, un proceso de diseño de índole formal es, de hecho, descendente. Esto no constituye una flagrante contradicción con lo que se ha discutido hasta el momento en la presente sección: se ejecutan pasos ascendentes en el proceso, pero debido al formalismo, las validaciones indicadas como flechas punteadas en sentido vertical en el esquema son, de hecho, evitadas - aunque no lo sean conceptualmente - y por tanto no es necesario un retorno efectivo a los niveles más altos de abstracción, como sucede en el esquema de la Fig. 2.7. Con objeto de minimizar los costes de diseño, las metodologías de diseño promueven el empleo de métodos formales, que habilitan procesos de diseño esencialmente descendentes, como el que se indica en la Fig. 2.8. El ‘ideal’ del diseño sería contar con metodologías de diseño descendente, formales, y automatizadas. Sin embargo, no se puede ignorar el hecho que la formalización del diseño presupone determinada madurez previa, como se aduce en la sección 2.2.1.1. Asimismo, existen limitaciones al formalismo (ver secciones 3.3.4, 3.3.5 y 3.3.6). Así, en virtud de las limitaciones a los formalismos, y que el conocimiento necesariamente adelanta a las técnicas de diseño, un enfoque viable requiere la combinación de estrategias descendentes y ascendentes. En virtud del retraso en la consecución de métodos formales respecto al avance del conocimiento, y de las limitaciones a los formalismos148, en los procesos de diseño reales necesariamente se deben admitir metodologías mixtas descendentesascendentes. [ 2.3 ] TEORÍAS DE DISEÑO En ingeniería, las estrategias ascendente y descendente conforman dos conjuntos de metodologías, flujos y herramientas de diseño, que prima facie se diferencian por el sentido en que recorren los niveles de abstracción de los diseños (sección 2.2). No obstante, se observa un aporte común: constituyen dos maneras fundamentales para la adquisición de conocimientos relativos al diseño, en un plano más abstracto aún que el metodológico. Las estrategias de diseño ascendente y descendente poseen un objetivo común, que es establecer teorías de diseño para lidiar con la naturaleza del proceso de diseño, los productos de diseño, y el conocimiento de diseño ([Zen02], p. 1). Si bien contribuyen a este objetivo común, por su propia naturaleza las estrategias de diseño ascendente y descendente difieren en que el proceso de desarrollo de una teoría de diseño a partir de la estrategia descendente puede ser identificada en forma lógica, mientras que el proceso de elaboración de una teoría de diseño desde la perspectiva ascendente es ad hoc, y se atribuye fundamentalmente a la creatividad y talento del investigador. ([Zen02], p. 2). “La investigación en base a la estrategia ascendente intenta generalizar las teorías de diseño a partir de la observación de las actividades de diseño de ingeniería.(...) La investigación en base a la estrategia descendente intenta derivar teorías a partir de principios básicos.” ([Zen02], pp. 1-2). 148 El formalismo en el sentido de Hilbert se presenta en la sección 3.3.3.2.2, se define en la sección 3.3.4, y sus limitaciones se discuten en las secciones 3.3.5 y 3.3.6. Previamente, la sección 3.2 discute los temas de modelado informal, formal y matemático. Diseño de Sistemas Electrónicos Complejos [ 2.3 ] Teorías de diseño - 79 Un esquema que representa las maneras de establecer teorías de diseño a partir de las estrategias ascendente y descendente se indica en la Fig. 2.9 (adaptado de [Zen02], p. 2). estrategia descendente Axiomas Derivación TEORÍAS DE DISEÑO estrategia ascendente Generalización Actividades de diseño Fig. 2.9: Teorías de diseño a partir de estrategias ascendente y descendente (adaptado de [Zen02], p. 2) [ 2.3.1 ] EL ENFOQUE AXIOMÁTICO En ingeniería, se advierte una manifiesta preferencia por las estrategias de diseño descendente para la elaboración de teorías de diseño. Esta radica en la profundamente arraigada convicción que profesa la ciencia en general por el empleo de métodos formales, como la única herramienta disponible a la fecha capaz de garantizar la corrección en procedimientos y productos149, a diferencia de los enfoques ad hoc. Dada la preferencia por un desarrollo en forma lógica a partir de principios básicos, no debe extrañar que existan intentos de formalización del proceso de diseño que apelen a las estrategias empleadas con éxito para el desarrollo de la matemática 150. Cabe notar que este mismo criterio se advierte en la sección 1.3.3 del presente documento, en relación a la noción de sistema: “De acuerdo a Von Bertalanffy, con la designación (algo laxa) de axiomático se cubren aquellos enfoques que persiguen una noción rigurosa del sistema y de sus implicaciones, derivada por métodos lógico-matemáticos modernos.” (p. 36). En virtud de la conclusión que establece que un ‘diseño’ es un ‘sistema complejo’ (sección 2.1.2.3) no constituye una mera coincidencia el hecho que Zeng [Zen02] haya sugerido un enfoque axiomático para la elaboración de teorías de diseño. Según cita este autor, su trabajo ya hereda de varios trabajos previos. “En su pionero estudio del modelado axiomático del diseño, Yoshikawa (1981) estableció la ‘Teoría General del Diseño’ (abreviada GDT151). La base de la GDT es un modelo del reconocimiento humano. En este modelo, la GDT distingue entre una entidad y el concepto de una entidad. Una entidad es un objeto existente concreto, y el concepto de una entidad es una impresión mental abstracta concebida por un ser humano.”. En los términos propuestos por Zeng, una entidad es un objeto en la 149 Y que además - no incidentalmente - en el caso particular de la ingeniería contribuyen a la reducción del coste del diseño, en sentido amplio del término (sección 2.2.1.3). 150 Al menos, hasta la fecha – ver sección 3.3.5: La ‘espada de Gödel’. 151 N. del T.: acrónimo del nombre en inglés, ‘General Design Theory’. Ingeniería Electrónica – Universidad Católica del Uruguay 80 - [ 2 ] Diseño en Ingeniería naturaleza, mientras que el concepto de una entidad es también un objeto, pero pertinente al pensamiento humano. “Los diseñadores crean otro concepto de entidad usando conceptos de entidades previamente formados vía el proceso de reconocimiento.”152 ([Zen02], p. 20). Esta relación entre una entidad y su correspondiente concepto se representa en la Fig. 2.10. reconocimiento entidad concepto de la entidad diseño Fig. 2.10: Entidad y Concepto de Entidad; Teoría General del Diseño – Yoshikawa (1981) ([Zen02], p. 20) Pese a las potenciales ventajas, la estrategia descendente axiomática ha encontrado dificultades, tanto en virtud de la aparente escasa utilidad de sus resultados en las etapas iniciales del diseño, como del comparativamente largo período de maduración que requiere. “En primer lugar, los diseños aparentan ser una compleja actividad aleatoria y creativa, mientras que el enfoque axiomático es de naturaleza consistente, determinista, y precisa. Estas dos modalidades parecen oponerse una a otra.” ([Zen02], p. 2). Lo que Zeng manifiesta no es más que uno de los aspectos sicológicos del proceso de diseño, que se indican en la sección 2.1.1.2 del presente documento: la nefasta interferencia entre creatividad y capacidad analítica. Esto constituye un obstáculo para el progreso en esta área. En el enfoque axiomático, las actividades de diseño son investigadas mediante la derivación de teoremas a partir de los axiomas, en forma análoga a como procede la matemática moderna. “La teoría axiomática establecida incluye dos grupos de axiomas: axiomas de objetos y axiomas del pensamiento humano. Los axiomas de objetos establecen que todo lo que existe en el universo es un objeto, y que hay relaciones entre los objetos. (...) Los axiomas del pensamiento humano (...) identifican la naturaleza del razonamiento y de los procesos de reconocimiento en el pensamiento humano. Establecen que los seres humanos están limitados por la racionalidad, que no reconocen los objetos en forma precisa, y que la relación causal es la única plausible de todas las relaciones entre causa y efecto. (...) Este trabajo ha establecido formalmente dos nociones centrales de ‘Ciencias de lo Artificial’ 153 de Simon (Simon, 1969): racionalidad acotada, y sistemas jerárquicos.”154 155 ([Zen02], p. 24). De los axiomas, Zeng deduce teoremas que constituyen su modelo formal del diseño156: 1. Teorema 1: Un sistema de ingeniería se compone de la estructura del producto, la estructura del entorno, y las relaciones mutuas entre el producto y su entorno. 2. Teorema 2: En ingeniería, existe un limitado conocimiento del desempeño 157 de un número limitado de productos primitivos, para representar las relaciones causales de acciones a reacciones. 152 Texto traducido del original, en inglés. Ver nota 54, p. 39. 153 “The Sciences of the Artificial” es el título original de la obra (Ed. MIT Press, 1969). 154 Texto traducido del original, en inglés. Ver nota 54, p. 39. 155 Nótese la relación implícita entre diseño y sistemas complejos que confiere la cita, que así brinda un ejemplo más acorde a la afirmación ‘un diseño es un sistema complejo’ que se efectúa en la sección 2.1.2.3. 156 El concepto de modelo se aborda en el capítulo 3 del presente trabajo. 157 ‘Performance’, en el original. Diseño de Sistemas Electrónicos Complejos [ 2.3 ] Teorías de diseño - 81 3. Teorema 3: Los requerimientos del diseño pueden clasificarse en requerimientos estructurales y requerimientos de desempeño. Los requerimientos estructurales son restricciones a la estructura del producto, mientras que los requerimientos de desempeño son restricciones al desempeño del producto. Estos requerimientos pueden ser descompuestos en términos del entorno del producto, es decir, el medio ambiente donde se espera que el producto opere. 4. Teorema 4: El desempeño de un producto puede ser analizado mediante un conocimiento del desempeño por la gradual separación de cada componente de los restantes. 5. Teorema 5: Dado un conjunto de requerimientos de diseño, las soluciones del diseño pueden ser halladas por la descomposición del entorno del producto, que está implícito en la definición de los requerimientos del diseño. Cada paso de la descomposición del entorno engendra una solución parcial del diseño que redefine el entorno, y a su vez, los requerimientos de diseño. Este proceso se detiene cuando se han satisfecho todos los requerimientos de diseño158. Según Zeng, en estos teoremas se tiene en cuenta las cuestiones principales de un problema de diseño: los requerimientos de diseño, la estructura del producto, el desempeño del producto, el proceso de evaluación, y el proceso de síntesis del diseño. Los teoremas 3 y 5 son nuevos enfoques al modelado de requerimientos de diseño y proceso de síntesis de diseño (la representación uniforme de requerimientos de diseño, en términos del entorno del producto y un método de descomposición natural del problema de diseño) mientras que los teoremas 1, 2, y 4 han sido ampliamente discutido en la literatura, y constituyen propiedades generales del diseño, según aduce el propio autor. Al respecto, se observa que en los teoremas 1, 2 y 4 figuran la necesidad de considerar el entorno de los sistemas, el tratamiento de los sistemas en forma de ‘caja negra’, las limitaciones humanas para la comprensión y el manejo de sistemas complejos, y los procesos de descomposición de sistemas complejos, todas cuestiones que se abordan en el capítulo 1 de este documento159. En la Tabla 2.2 se reproduce, según Zeng, la evolución de los postulados de algunas teorías formales de diseño, que preceden - y conducen - a la suya ([Zen02], p. 23). 158 Texto traducido del original, en inglés (los 5 teoremas). Ver nota 54, p. 39. 159 No incidentalmente, en las referencias indicadas en [Zen02 ] se cita a Simon, Maxwell, Ertas y Tanik, aunque en referencia a otros trabajos ([Sim01], [MET02]). Ingeniería Electrónica – Universidad Católica del Uruguay 82 - [ 2 ] Diseño en Ingeniería Tabla 2.2: Evolución de las teorías axiomáticas de diseño ([Zen02], p. 23) Teoría 160 ADT (2002) Axiomas relativos a la representación de objetos FDT (1998) Axioma 3: Postulado 1: El conjunto de conceptos abstractos es una topología del conjunto de conceptos de entidad. La representación de un Todo en el universo es un artefacto se construye en base a objeto la multiplicidad de módulos Axioma 2: (atributos) y relaciones entre Existen relaciones entre los ellos. objetos del universo. Postulado 2: Axiomas relativos al pensamiento humano GDT (1981) Axioma 1: Axioma 1: El diseño de cualquier sistema complejo puede ser considerado a varios niveles. La dirección general es de mayor a menor abstracción. Un diseño a cualquier nivel de abstracción es una descripción de una colección organizada de restricciones (estructurales, de causa y efecto, funcionales, y características de desempeño) que aparecen en la implementación física del diseño. Postulado 3: Una entidad puede ser Cualquier representación del reconocida o descrita por conocimiento (tal como la los atributos. represente el diseñador) es incompleta. Axioma 2: El conjunto de entidades y el conjunto de conceptos de entidades presentan una correspondencia uno a uno. Postulado 4: El diseñador puede considerar solamente un subconjunto de representaciones del conocimiento en cada uno de los instantes de toma de decisiones. Postulado 5: Axioma 3: Los seres humanos están limitados por su racionalidad. Axioma 4: Los seres humanos no reconocen los objetos con precisión. Axioma 5: La relación causal es la única relación plausible de todas las relaciones entre causas y efectos. Es posible generar varios diseños factibles al nivel especificado por el diseñador. Observa Zeng: • La correspondencia biunívoca entre entidades y conceptos que establece el Axioma 2 de la GDT implicaría conocimiento perfecto, contra la hipótesis de ‘racionalidad acotada’ de Simon161. • El Axioma 1 de la ADT, en apariencia trivial, diferencia esta teoría de la teoría de conjuntos, donde objetos concretos y abstractos se distinguen por ‘conjunto’ y ‘elemento’ 162. En la 160 GDT es acrónimo de ‘General Design Theory’ (Yoshikawa, 1981); FDT, acrónimo de ‘Formal Design Theory’, (Braha y Maimon, 1998); y ADT, representa ‘Axiomatic Theory of Design Modeling’ (Zeng, 2002). 161 Esta hipótesis se refiere a la limitación de los recursos en el sistema racional (tiempo y memoria, por ejemplo) lo que implica una limitación a la cantidad de objetos en el pensamiento humano. Aclara Zeng que esta teoría ha sido modificada y extendida. 162 Identificando ‘objeto’ con ‘sistema’ en los contenidos de la Tabla 2.2. Diseño de Sistemas Electrónicos Complejos [ 2.3 ] Teorías de diseño - 83 ADT, el universo es el único concepto abstracto, y todos los demás objetos se tratan igualitariamente como ‘un objeto en el universo’, situación conveniente para la representación uniforme de los objetos de diseño en el proceso evolutivo de diseño ([Zen02], p. 5). La estructura de un sistema - que incluye las relaciones entre sus partes - se ha representado tradicionalmente desde la perspectiva de la teoría de conjuntos con el producto cartesiano. Esto no permite capturar la jerarquía de la estructura, a diferencia de lo que puede derivarse de los Axiomas 1 y 2 de la ADT ([Zen02], p. 8) • El razonamiento humano no es simétrico: solo el razonamiento deductivo es determinista, y todos los otros modos no son plausibles163 • Dado que un sistema en ingeniería es la estructura del producto, la estructura de su entorno, y las relaciones mutuas entre estos; dado además que un producto es un objeto en la naturaleza, y que el entorno es la colección de objetos en la naturaleza excluyendo al producto, en esencia resulta que un sistema de ingeniería es la estructura de la naturaleza164 En relación a las nociones de sistema y sistema complejo que se confieren en el capítulo 1 del presente documento, y las nociones acerca del proceso y producto de diseño conferidas este capítulo 2 (hasta la presente sección 2.3, exclusive) se observa de la Tabla 2.2 que: • el diseño es inherentemente no determinístico165 • se asocia el diseño con la producción de sistemas complejos • se concibe a los sistemas bien como conjuntos topológicos, o bien como colecciones de objetos, donde las relaciones entre partes son de primordial importancia, y no pueden ser obviadas en la concepción de sistema166 • el diseño de sistemas se concibe en niveles de abstracción, y se prefiere para esto la estrategia descendente • cada nivel en el diseño de un sistema es una descripción • se establecen en forma manifiesta las limitaciones humanas, respecto a la percepción, a la capacidad de manejo de volúmenes de información, y la capacidades de razonamiento; el conocimiento y su representación son siempre incompletos Las precedentes observaciones sobre los postulados de las teorías de diseño no son comunes a las tres teorías que menciona la Tabla 2.2, sino que constituyen observaciones particulares a cada una. No obstante, existe una marcada ‘orientación a objetos’ en todos los postulados, de características análogas a las que se aprecian a la fecha en los paradigmas de programación de sistemas informáticos y - aunque en menor medida, por el momento - sistemas electrónicos programables. Se considera en el presente trabajo que esto no es un hecho casual, sino causal, derivado de la incidencia que actualmente tienen la informática y sus paradigmas de desarrollo sobre los procesos de diseño en ingeniería167. En esencia, se correspondería con el 163 Este punto de vista podría ser cuestionado en base a la incidencia del lenguaje y la cultura en las categorías del pensamiento humano ([Ber93], cap. X; ver también la sección 2.1.2.2 del presente documento). En esencia, el encare axiomático completo sería objeto de revisión desde esta perspectiva. Asimismo, los resultados de Gödel (sección 3.3.5) deben ser adecuadamente considerados al efectuar y analizar esta afirmación. 164 Conclusión sin duda sorprendente - cuando no chocante - pero que resulta de los axiomas de la ADT, según su autor. No estaría contemplando, sin embargo, la posibilidad de ‘productos de diseño inmateriales’ como los que se proponen en la sección 2.1.2, si estos estuvieren circunscritos al ámbito del pensamiento humano. 165 No existe una única solución a cada problema de diseño; precisamente, la existencia de muchas soluciones constituye una de las dificultades (ver sección 2.4). 166 Aquí es donde Zeng objeta la teoría de conjuntos, pues al expresar la estructura de los sistemas (en la que se cuentan las relaciones entre partes) como productos cartesianos, no se confiere idea de jerarquía. Nótese que en la sección 1.3.3 de este documento no se promueve tal idea, sino que se intenta - con medios conceptuales limitados, en comparación con el trabajo de Zeng - conferir la idea de jerarquía. Ingeniería Electrónica – Universidad Católica del Uruguay 84 - [ 2 ] Diseño en Ingeniería ejercicio de abstracción que supone transmutar una visión Aristotélica por una Platónica168, en virtud de la evolución de la ciencia (secciones 1.3.1 y 1.3.2) y - particularmente - debido a su ‘desantropomorfización’ progresiva, al decir de Von Bertalanffy ([Ber93], pp. 251-261). [ 2.3.2 ] POSIBILIDADES DERIVADAS DEL ENFOQUE FORMAL En la sección precedente se afirma que la preferencia por las estrategias descendentes responde a cuestiones de profunda raigambre en la ciencia en general, y la ingeniería en particular, lo que ha contribuido al desarrollo de teorías de diseño de tipo formal como las teorías de diseño axiomáticas. En este contexto, según Zeng las estrategias de diseño descendente presentan la ventaja de poderse emplear en dos maneras ([Zen02], p. 2): 1. Como mecanismo lógico y científico para derivar teorías de diseño y modelos de diseño computacionales169. 2. Como método de implementación de herramientas informáticas de diseño170 y como método de organización de las actividades de diseño, a partir de las precedentes teorías y modelos. Cabe notar que estas dos maneras se hallan íntimamente asociadas (la segunda depende de la primera) en parte debido a la inicial derivación de modelos computacionales y la posterior implementación de herramientas informáticas de diseño que hagan uso de esos modelos171. Las ventajas que señala Zeng pueden comprenderse en virtud de lo que se discute en la sección 2.2.1.3. Allí se aduce que las herramientas de diseño descendente contribuyen a reducir en el tiempo de diseño - y por tanto, el coste - y se manifiesta que la automatización constituye un factor adicional de aceleración del proceso de diseño. Y, en efecto, la disponibilidad de herramientas informáticas supone cierta formalidad, y naturalmente habilita a la automatización de los procedimientos. Adicionalmente, el enfoque formal tiene gran incidencia en un área que los procedimientos ad hoc tienden a descuidar - la documentación. Esta es una parte esencial e imprescindible del diseño, desde el momento en que la especificación y la implementación 172 constituyen al ‘diseño’ (sección 2.1.2.1). La importancia de la documentación es manifiesta, además, en caso de producirse cambios en el diseño. En este contexto, los métodos formales proveen una forma precisa de registrar la funcionalidad pretendida y efectiva del sistema bajo diseño, y por tanto, coadyuvan a la generación de documentación precisa, sin ambigüedades, e incluso en forma automática en aquellos casos donde se dispone de herramientas informáticas de diseño. Ahora bien, las ventajas que supone la disponibilidad de herramientas informáticas, formales, de diseño descendente, resultan aún más evidentes cuando son consideradas en el contexto de la exploración del espacio de diseño. El concepto de ‘espacio de diseño’ es la 167 Nótese, por ejemplo, la mención a la informática que efectúa Zeng, como integrando las ‘ventajas’ del diseño descendente (p. 84, numeral 2). 168 Como se sugiere en la sección 1.1.1 de este documento. 169 El concepto de modelo se presenta en el capítulo 3, y en particular, los modelos computacionales o ejecutables se presentan en la sección 3.4. 170 Sistemas CAD, acrónimo de ‘Computer - Aided Design’ en la literatura de lengua inglesa. 171 Como se insiste en varios puntos de este documento, el concepto de modelo, y en particular de modelo computacional, es objeto del capítulo 3. Al momento es necesario - y suficiente - apelar a la noción intuitiva de modelo que se posee a nivel de grado en ingeniería; considérese que un ‘modelo computacional’ permite la simulación en un computador del sistema de interés, y que las herramientas informáticas de diseño que operan con estos ‘modelos computacionales’ son dirigidas en su operación por el diseñador. 172 ‘La Especificación’ y ‘La Implementación’; se refieren a las descripciones correspondientes a los niveles de abstracción extremos del diseño (Nivel de Sistema y Nivel de Implementación, respectivamente). No deben interpretarse en este caso como las descripciones de una ‘celda de diseño’ intermedia del proceso (sección 2.1.1.4). Diseño de Sistemas Electrónicos Complejos [ 2.3 ] Teorías de diseño - 85 conceptualización de una de las propiedades inherentes al diseño: su indeterminismo, o el hecho manifiesto que no existe una única solución a un problema de diseño dado. Este concepto de ‘espacio de diseño’, los mecanismos para su exploración, y el papel de las herramientas formales de diseño descendente, son objeto la última sección del presente capítulo sobre Diseño en Ingeniería. [ 2.4 ] EL ESPACIO DE DISEÑO El diseño no es determinista, en el sentido en que no existe un único diseño que satisfaga el problema de diseño. Así, en general es posible obtener varias soluciones al problema de diseño dado, que resultan equivalentes desde el punto de vista de las especificaciones de diseño. Aunque parezca obvio, cabe notar que equivalentes no implica que los diseños sean indistinguibles desde otro punto de vista, sino sólo en lo que respecta a las especificaciones. El carácter ‘no determinista’ del diseño respecto de sus especificaciones, manifiesta la relevancia de las especificaciones del diseño desde un punto de vista que hasta el momento no ha sido estudiado en el presente documento173. Como se afirma en la sección 2.1.2.1, las especificaciones son el punto de partida del proceso de diseño, y además, forman parte fundamental del producto de diseño una vez obtenido este. Sin embargo, el principal argumento para fundamentar tales afirmaciones deriva en forma natural del concepto del espacio de diseño, que recién aquí se intenta conferir. Como punto de partida, adviértase que las especificaciones de diseño implican restricciones sobre determinadas características o propiedades del producto de diseño174. Las características del diseño que las especificaciones refieren implícitamente, pueden ser establecidas formal o informalmente. No obstante, en ambos casos es admisible considerar las características del diseño como ‘variables’ en el sentido matemático, aunque en los casos informales esas variables no admitan una métrica, o ‘medida’, o ‘cuantificación’, o posibilidades de ‘comparaciones de orden’ (como ‘mayor’, menor’, ‘igual’, etc.). Cada característica de interés para el diseño está implícita por las especificaciones del diseño. Si se admite su consideración como ‘variables de diseño’, es posible imaginar un espacio n-dimensional, donde cada una de las n dimensiones se corresponde con una ‘variable de diseño’. Este espacio multidimensional de propiedades o características del diseño constituye el espacio de diseño. En esta visión ‘algebrista’ del diseño, se asume que las ‘variables de diseño’ son ‘no colineales’, de forma que constituyen una ‘base’ del ‘espacio de diseño’. Evidentemente, esta visión adolece de todos los inconvenientes derivados de un posible establecimiento informal (en el sentido de no ser expresados en forma lógico-matemática rigurosa) de las especificaciones de diseño. En este contexto, las restricciones que suponen las especificaciones de diseño se ejercen sobre los ‘valores’ que pudieren adoptar esas ‘variables de diseño’, y la determinación de los ‘valores’ a los cuales las ‘variables de diseño’ quedan restringidas por las especificaciones, también se complica en caso de especificaciones no formales. Las restricciones en cada ‘variable de diseño’, establecidas por las especificaciones, determinan un volumen n-dimensional en el espacio de diseño. Este volumen constituye el conjunto de soluciones de diseño dentro del espacio de diseño, que contiene todos los diseños posibles que son equivalentes para las especificaciones dadas. 173 Nótese que la propuesta de la ‘celda de diseño’ (Fig. 2.4) no asume la unicidad (ver nota 123, p. 65). 174 Véase la sección 2.1.1.1. Ingeniería Electrónica – Universidad Católica del Uruguay 86 - [ 2 ] Diseño en Ingeniería Esta perspectiva ‘algebrista’ del diseño, en términos de un ‘espacio de diseño’ y un ‘conjunto solución de diseño’, es factible incluso en casos de especificaciones no formales (en el sentido lógico-matemático) aunque en esas situaciones deben tenerse en cuenta las limitaciones implícitas en la visión - fundamentalmente, lo que respecta a ‘medidas’ sobre las ‘variables de diseño’. Un ejemplo de espacio de diseño trivial se representa en la Fig. 2.11. Las características de interés para el diseño del ejemplo son el ‘consumo de potencia’, el ‘costo económico’, y el ‘tamaño físico’ - lo que supone que el ejemplo se refiere a un producto de diseño de tipo material. consumo de potencia tamaño físico costo económico Fig. 2.11: Ejemplo trivial de ‘espacio de diseño’. Si a las características de interés del diseño al que se refiere la Fig. 2.11 se le imponen restricciones - es decir, si se dan las especificaciones de diseño completas - se determina el conjunto solución de diseño, dentro del espacio de diseño definido por esas características de interés (Fig. 2.12)175. En el ejemplo de la Fig. 2.12 se ha omitido una restricción inherente a todo proceso de diseño: el ‘nivel de conocimiento’. Sin embargo, no ha sido esa la única omisión. Cualquier diseño está condicionado por limitaciones inevitables, o prácticamente inevitables; por ejemplo, a la fecha no se conciben diseños que violen la causalidad, ni diseños cuyos productos materiales requieran materias primas inexistentes en el universo, o que superen la masa de la tierra o la velocidad de la luz176. Muchas de estas restricciones inevitables - que identificaremos con la etiqueta ‘limitaciones reales’ - son consecuencia del nivel de conocimiento (o más bien, del nivel de desconocimiento) el cual es a su vez dependiente de la cultura177; otras lo son del estadio tecnológico, y otras de la ‘realidad’ del universo en el que estamos insertos. En cualquier caso, las limitaciones reales establecerán cotas superiores a muchas ‘variables de diseño’ usuales (como potencia, tamaño, costo, velocidad, etc.); cotas que regirán independientemente de las limitaciones particulares deseadas para el caso178. En consecuencia, hay restricciones inherentes al espacio de diseño ‘ideal’, y por tanto, lo que llamamos espacio de diseño es en 175 Nótese que esta figura es factible en virtud de la tridimensionalidad del espacio de diseño del ejemplo, pese a los ejes oblicuos. El ‘volumen solución’ en un espacio n - dimensional estaría delimitado por los ‘hiperplanos’ que contienen a los extremos del intervalo al que están restringidos los valores en cada dimensión, hiperplanos definidos por las n - 1 dimensiones restantes. 176 Es una de las características del proceso de diseño (sección 2.1.1.1). 177 Esto se discute lateralmente en la sección 2.1.2.2. Por una discusión en mayor profundidad, véase [Ber93], Cap. X: “La relatividad de las categorías”. 178 Esto es lo que en la sección 2.1.1.1 se diferencia como ‘restricciones’ y ‘especificaciones’, respectivamente. Diseño de Sistemas Electrónicos Complejos [ 2.4 ] El Espacio de Diseño - 87 consumo de potencia conjunto solución tamaño físico costo económico Fig. 2.12: ‘Conjunto solución’ dentro del ‘espacio de diseño’. esencia un subespacio del ideal, que podríamos etiquetar ‘espacio de diseño real’. No obstante, no se suele hacer esta distinción, llamándolo simplemente ‘espacio de diseño’. El ‘espacio de diseño real’ es un subespacio del ‘espacio de diseño ideal’, al cual inevitablemente acotan las ‘limitaciones reales’, restricciones que operan sobre las ‘variables de diseño’ concebibles, y que que derivan de cuestiones fundamentales como la causalidad, limitantes físicas, cuestiones culturales, y - dependiente de esta última - el nivel de conocimiento. El ‘espacio de diseño’ se refiere, por tanto, al ‘espacio de diseño real’, y suelen omitirse las limitaciones reales que se asumen como obvias. En la Fig. 2.13 se toma el ejemplo de la Fig. 2.12, y se superponen las ‘limitaciones reales’ sobre las ‘variables de diseño’, representándolas como un segmento con extremos en forma de rombo. En el ejemplo de la Fig. 2.12 se limita el costo económico solamente a un máximo, que bien puede suponerse debido al presupuesto disponible, directivas de mercadeo, o combinaciones de esas y otras cuestiones similares. Si bien un costo nulo sería aceptable desde el punto de vista del diseño (¡sería fantástico, además!) el costo económico real nunca es nulo. La aplicación de esta ‘limitación real’ en la Fig. 2.13 da como resultado una reducción del ‘conjunto solución’ de la Fig. 2.12, eliminando aquellas soluciones por debajo del costo mínimo establecido por la realidad. En el ejemplo trivial de la Fig. 2.11 se han ignorado deliberadamente otras ‘variables de diseño’, como por ejemplo ‘potencia entregada’, ‘calor disipado’ o ‘velocidad de operación’, en la hipótesis plausible que estas ‘variables de diseño’ no son relevantes al problema de diseño particular del ejemplo. Nótese que esta situación puede darse en forma no intencional, por ejemplo, por falta de conocimiento, o por un enfoque del diseño poco cuidadoso179. Entonces, no obstante la forma, deliberada o inintencional, 179 Pesan aquí significativamente los aspectos sicológicos del proceso de diseño (sección 2.1.1.2). Ingeniería Electrónica – Universidad Católica del Uruguay 88 - [ 2 ] Diseño en Ingeniería consumo de potencia conjunto solución costo económico tamaño físico Fig. 2.13: ‘Conjunto solución’ factible, en el ‘espacio de diseño real’ una selección inapropiada de características o propiedades en la especificación elimina dimensiones del espacio de diseño, y con ellas, sus posibles restricciones (tanto las particulares al caso como las ‘limitaciones reales’); consecuentemente, el conjunto solución no queda adecuadamente determinado. Puede comprenderse así el significado de varias de las afirmaciones que se efectúan en la sección 2.1.2.1 - “La noción de ‘diseño’ (...) es función de las especificaciones, y su laxitud sigue estrictamente a esas especificaciones.”; “... es inconveniente la sobre-especificación, en virtud de la restricción que esto impone a la consecución del ‘diseño’.”. Una sobre-especificación acota al conjunto solución dentro del espacio de diseño definido por las variables elegidas en las especificación; una sub-especificación admite un conjunto solución más amplio, el cual pudiera contener soluciones no adecuadas. Se genera en consecuencia un compromiso entre la especificación por exceso o por defecto - o quizás por omisión180 - cuya incidencia en el diseño es crucial, en virtud de las consecuencias que la especificación tiene sobre el conjunto solución (amén de la que tiene en primera instancia sobre el espacio de diseño). La dependencia del espacio de diseño y del conjunto solución de las especificaciones de diseño, no hace más que manifestar la vital importancia de una adecuada especificación - ni por exceso, ni por defecto, ni por omisión - que Rechting sintetiza pragmáticamente como “La mayoría de los errores realmente importantes se comete el primer día.”181 La citada frase de Rechting no sólo se refiere a la especificación del diseño; implica también al proceso de diseño en sus etapas tempranas. Dada la especificación, y una vez establecido el espacio de diseño, las primeras fases del proceso de diseño pueden interpretarse como una exploración de este espacio, en busca de un camino que conduzca a cualquier elemento del conjunto solución. Dado que las variables de diseño no necesariamente definen una base ‘ortogonal’ del espacio de diseño182 - y es altamente improbable que lo hagan, en el estadio actual del conocimiento - esta exploración dista de ser una actividad trivial, y menos cuantas 180 No debe confundirse ‘por defecto’, en el sentido de ‘insuficiente’, con ‘por omisión’, en el sentido de ‘no se tuvo en cuenta’; ‘por exceso’ y ‘por defecto’ implican un acto consciente. 181 Eberhard Rechting, “Systems Architecting”; Editorial Prentice - Hall, 1991 (cita tomada de [CCGLPSV99], p. 15). Diseño de Sistemas Electrónicos Complejos [ 2.4 ] El Espacio de Diseño - 89 más ‘variables de diseño’ sean definidas. Nótese que, de hecho, no se justificaría la existencia de procesos de diseño, ni se hablaría de sistemas complejos si la exploración del espacio de diseño fuere sencilla. Esta perspectiva del proceso de diseño se aborda en la siguiente sección. [ 2.4.1 ] EXPLORACIÓN DEL ESPACIO DE DISEÑO La expresión ‘exploración del espacio de diseño’ se origina en el área de la ingeniería electrónica, en el contexto de la síntesis lógica183 del diseño de sistemas digitales. La velocidad de operación de los sistemas electrónicos digitales se ve favorecida mediante la operación en paralelo de las ‘puertas lógicas’, por lo cual esta configuración es usualmente considerada para diseños que requieren velocidad de operación elevada. No obstante, esta mejora en velocidad se obtiene a cambio de un probable incremento en el área del circuito, y esto siempre que el diseño admita la implementación de operaciones en paralelo. Con el objeto de estudiar este compromiso entre velocidad y área, los diseñadores digitales han trazado curvas de velocidad - área para diferentes costos de velocidad de operación y área del circuito, mediante ensayo con los diferentes restricciones de diseño. Este proceso de alteración sistemática de los parámetros de diseño se ha denominado exploración del espacio de diseño ([Gri03], p. 5). Extendiendo este concepto al caso general, la exploración del espacio de diseño consiste en la alteración sistemática de los parámetros de diseño, con objeto de hacer una cobertura del espacio de diseño que permita determinar el conjunto solución, y dentro de este, el subconjunto óptimo de acuerdo a ciertos criterios. La importancia de una adecuada exploración del espacio de diseño radica en la complejidad que supone un espacio de diseño multidimensional. Se constata que, dada una especificación, es decir, dado el espacio de diseño, los diseñadores ‘encogen’ el espacio de posibles diseños al recurrir a decisiones de diseño aplicadas con éxito en casos anteriores. Sin embargo, estas decisiones pueden no resultar óptimas en los problemas nuevos, e inevitablemente están sujetas a la preferencia del diseñador por un estilo de diseño particular. Esta situación de diseño basado en la experiencia previa de los diseñadores es en esencia ad hoc, y resiente la calidad final del diseño ([Gri03], p. 3). Una exploración del espacio de diseño basada exclusivamente en la experiencia previa tiene efectos similares a una especificación por exceso, en cuanto restringe el espacio de diseño, lo que puede ir en detrimento de la calidad final del diseño184. La alteración sistemática de los parámetros de diseño requiere un enfoque disciplinado que permita evaluar espacios de diseño vastos con un gran número de potenciales diseños. En esencia, los métodos para la exploración del espacio de diseño son algoritmos para poda y 182 ‘Ortogonales’ es una alegoría geométrica, para significar proyecciones ‘independientes’. Las figuras 2.11, 2.12, y 2.13 intentan ilustrar una situación de variables de diseño no ‘ortogonales’: es razonable admitir, por ejemplo, que cualquier cambio en el consumo de potencia de un diseño lleva inevitablemente aparejado cambios en el costo económico y en el tamaño físico, y que lo mismo sucede si se considera el efecto del cambio de una variable de diseño sobre las restantes. Estas observaciones de tipo empírico, se intentan representar como ejes oblicuos en el espacio de diseño, de forma que la proyección ortogonal del desplazamiento de un punto en el espacio implique una variación no nula en todas las coordenadas, a diferencia de lo que puede suceder en un sistema de ejes ortogonales en el sentido geométrico. 183 Síntesis lógica se refiere a la implementación automática (efectuada por un programa computacional) de circuitos o dispositivos electrónicos digitales a partir de la especificación del comportamiento del circuito efectuada en términos de funciones booleanas (circuitos digitales combinatorios) o tablas de transición de estados (circuitos digitales secuenciales). 184 La experiencia previa constituye un recurso válido para dirigir la exploración del espacio de diseño, pero para ello debe ser empleada siguiendo un criterio, y no como consecuencia del desconocimiento de alternativas de diseño. Ingeniería Electrónica – Universidad Católica del Uruguay 90 - [ 2 ] Diseño en Ingeniería cobertura del espacio, iterativos, a diferentes niveles de abstracción. Suponen, en general, una especificación del diseño de tipo formal. [ 2.4.1.1 ] MÉTODOS PARA LA EXPLORACIÓN DEL ESPACIO DE DISEÑO Los métodos para la exploración del espacio de diseño pueden clasificarse en primera instancia según la estrategia de optimación que emplean: 1. Toma de decisiones previas a la exploración: El diseñador decide como conformar los múltiples objetivos (p. ej. potencia, tamaño, velocidad) en una única ‘función de costo’, antes de ejecutar la exploración. 2. Exploración previo a toma de decisiones: La búsqueda de soluciones óptimas se ejecuta manteniendo los múltiples objetivos separados, y el resultado es un conjunto de soluciones óptimas según el criterio de Pareto185. La selección de una solución de este conjunto de soluciones requiere una toma de decisiones ulterior. 3. Toma de decisiones durante la exploración: Es una combinación de las estrategias anteriores. Las precedentes estrategias de optimación son factibles dentro de las diferentes estrategias para la cobertura del espacio de diseño que se indican a continuación: 1. Evaluación exhaustiva del espacio de diseño: Se evalúa directamente cada punto del espacio de diseño, es decir, toda posible combinación de los parámetros de diseño, por lo cual esta estrategia resulta prohibitiva para espacios de diseño vastos. Este tipo de exploración puede mantener varios objetivos. El proceso de exploración no es guiado, ni es sesgado según las preferencias del diseñador. 2. Muestreo del espacio de diseño: Se evalúan sólo algunos puntos del espacio de diseño, seleccionados mediante determinado criterio. Un criterio usual es la selección aleatoria; ejemplos de estas estrategias son los análisis de Monte Carlo, y el ‘refundido simulado’186. El proceso de exploración en caso de muestreo aleatorio no es guiado, ni es sesgado según las preferencias del diseñador. Otro criterio posible es efectuar un muestreo regular, es decir, basado en una grilla regular, lo cual puede sesgar el proceso de búsqueda. 3. Incorporación de conocimiento sobre el espacio de diseño: La exploración del espacio de diseño es guiada mediante la incorporación de información conocida acerca del espacio de diseño, con la intención de favorecer la convergencia hacia el conjunto de soluciones óptimas de Pareto. Este es un caso donde la experiencia previa es empleada con criterio, y no por mera preferencia, o por carencia de conocimiento de alternativas factibles. Ejemplos de estas estrategias son el ‘método del ascenso/descenso más rápido’, algoritmos evolutivos que combinan las técnicas de ‘paseo al azar’ con la ‘supervivencia del más apto’ y producen ‘mutaciones’ y ‘cruzamientos’ en las poblaciones obtenidas. La exploración del espacio de diseño se ve guiada, por ejemplo, en función de la forma que el diseñador elige la representación del problema, e implementa las mutaciones y cruzamientos. 185 El criterio del óptimo de Pareto establece que “Una solución es óptima (Pareto) si no es dominada por ninguna otra solución; soluciones ‘no dominadas’ forman un conjunto de óptimos (Pareto) donde ninguna solución del conjunto es dominada por cualquier otra solución del conjunto”. El criterio de dominación de Pareto se define: “Dados k objetivos a ser minimizados, y dos soluciones A y B, de valores (a0, a1,..., ak - 1) y (b0, b1,..., bk - 1) para todos los objetivos respectivamente, la solución A domina a la B si y solo si para todo 0≤i<ki, ai ≤ bi , y existe j / aj < bj ”. Se habla de dominancia estricta si para todo j, aj < bj, y de dominancia débil si no se requiere la condición ‘<’, alcanzando sólo con ‘≤’. ([Gri03], p. 14) 186 ‘Simulated annealing’, en inglés. La expresión es empleada en forma alegórica para describir procesos en los cuales los elementos de un conjunto se comportan similarmente a las moléculas de los materiales sometidos al proceso de ‘refundido’ o ‘recocido’ de la industria metalúrgica, por el cual se obtiene una mayor densidad en la fundición. Diseño de Sistemas Electrónicos Complejos [ 2.4 ] El Espacio de Diseño - 91 Se advierte que las precedentes estrategias no resultan ‘ortogonales’. Es posible, por ejemplo, efectuar un muestreo del espacio de diseño en base a la forma esperada del espacio de diseño o las funciones de costo, lo que implica la incorporación de conocimiento sobre el espacio de diseño, resultando en una búsqueda guiada y admitiendo un posible sesgo de aplicarse alguna preferencia del diseñador. En consecuencia, cabe efectuar una clasificación en exploraciones guiadas y no guiadas, según como los precedentes métodos de exploración progresan iteración a iteración. Exploraciones guiadas son, por ejemplo, los métodos de ascenso y descenso de colinas y algoritmos evolutivos donde el diseñador implementa cruzamientos, mientras que ejemplos de exploraciones no guiadas son métodos de Monte Carlo sin supervisión, búsquedas exhaustivas y muestreo aleatorio. El propósito de las exploraciones no guiadas es conferir una visión del espacio de diseño no sesgada por las preferencias del diseñador. El propósito de las exploraciones guiadas es acelerar la convergencia de la exploración hacia las soluciones. Los precedentes métodos de exploración pueden emplear técnicas adicionales para reducir la complejidad de la búsqueda mediante la poda del espacio de diseño. Cabe notar que una primer reducción del espacio de diseño se efectúa inevitablemente con cualquier método que cuantice las variables de diseño187. Amén de esta situación, entre las técnicas para la reducción del espacio de diseño se cuentan: 1. Exploración jerárquica: El espacio de diseño se divide en regiones, las cuales son examinadas en forma ‘gruesa’, y ordenadas según estos resultados preliminares. Luego, son exploradas un nivel jerárquico inferior, es decir, a un nivel de mayor detalle. Los resultados de estos exámenes son realimentados al nivel superior de partida, donde se efectúa la comparación de los resultados, y de esta manera es seleccionada la región más adecuada para proseguir la búsqueda. 2. Subdivisión del espacio de diseño en partes independientes: El problema inicial de optimación se divide en sub-problemas independientes, de forma de evitar la consideración de todas las posibles combinaciones de los parámetros de diseño. En vez de ello, se consideran las combinaciones de soluciones de Pareto halladas para los sub-problemas. Por ejemplo, puede considerarse por separado costo económico en función de tamaño físico, de costo económico en función de disipación de potencia, y combinar los resultados de acuerdo al criterio de dominancia de Pareto. Nótese que las dimensiones de los sub-problemas de diseño suelen ser diferentes. Esta técnica tiene relación con el concepto de ortogonalización de las variables de diseño 3. Análisis de sensibilidad de los parámetros de diseño: El análisis de sensibilidad del espacio de diseño se efectúa mediante un conjunto de referencias, en la hipótesis de independencia de parámetros de diseño. En cada ejecución del análisis de sensibilidad, un único parámetro de diseño es alterado mientras los restantes son fijados a valores arbitrarios. Con cada ejecución, se registra el rango dinámico de las propiedades de la solución, y en consecuencia se ordenan los parámetros según la sensibilidad de las propiedades a la variación de cada uno. Así, la complejidad de la exploración del espacio de diseño se reduce a la suma de las variaciones de los parámetros, en lugar de la multiplicación en el caso de búsqueda exhaustiva. Puede además descartarse aquellos parámetros cuya incidencia en las propiedades del diseño son relativamente pequeñas. 4. Constricción del espacio de diseño: La reducción del espacio de diseño es factible en forma directa por detección de casos límite, los cuales pueden ser identificados entre otras maneras por métodos analíticos para el ‘peor caso’. 187 Nótese que - en teoría - los métodos de muestreo no necesariamente implican una cuantización de las variables de diseño; sin embargo, en la práctica esto es casi inevitable. Ingeniería Electrónica – Universidad Católica del Uruguay 92 - [ 2 ] Diseño en Ingeniería [ 2.4.1.2 ] EL PROCESO DE DISEÑO DESDE LA PERSPECTIVA DE LA EXPLORACIÓN DEL ESPACIO DE DISEÑO El efecto sobre el proceso de diseño de una exploración previa a toma de decisiones, jerárquica, con posible incorporación de conocimientos sobre el espacio de diseño, y probablemente guiada, puede visualizarse en el esquema que se representa la Fig. 2.14. Este diagrama es conocido como ‘pirámide de abstracción’188 en virtud de presentar la perspectiva jerárquica del proceso de diseño en términos de ‘nivel de abstracción’ (o equivalentemente, ‘nivel de detalle’, invirtiendo el sentido del eje189). Nivel de detalle Nivel de abstracción exploración implementación Alternativas de implementación Fig. 2.14: ‘Pirámide de abstracción’ En el ejemplo de la Fig. 2.14, el camino sinuoso que ‘conecta’ los puntos seleccionados após de la exploración en cada nivel de abstracción, registra un flujo concreto de diseño. Tal como señala la flecha asociada al camino, este constituye un flujo netamente ‘descendente’, el cual es posible identificar con la flecha al fondo del esquema de la Fig. 2.8. Como en ese esquema, aquí no se está sugiriendo un proceso de diseño sin iteraciones, sino que se manifiesta que éste es de tipo descendente, y probablemente formal. Así, los esquemas de la Fig. 2.8 y la Fig. 2.14 son dos representaciones de un proceso de diseño descendente, por descomposición jerárquico-modular, probablemente formal; la primera muestra la evolución temporal de la travesía jerárquica, y la segunda muestra la exploración de las alternativas de diseño conforme se atraviesa la jerarquía; ambos esquemas son ‘expansiones’ en dos dimensiones ortogonales - para el caso particular de procedimientos descendentes, quizás formales - del esquema de la Fig. 2.5 (que sólo indica la estructura jerárquica del proceso de diseño). Conviene indicar que la implementación que se obtiene en el ejemplo de la Fig. 2.14 es, en principio, una de las tantas que podrían haber satisfecho las especificaciones de partida, la cual ha sido determinada por el proceso de diseño ejemplificado merced a los procesos de síntesis, 188 Al menos, así es designado en la literatura de diseño electrónico, donde se lo halla representando cuestiones diversas, como el incremento del tiempo de desarrollo o el costo (la base de la pirámide) conforme disminuye el nivel de abstracción, o las arquitecturas alternativas (la base de la pirámide) capaces de soportar una aplicación particular (el vértice superior de la pirámide). 189 La relación abstracción ~ detalle se presenta en la sección 1.1.1, y se reitera en la sección 1.7. Diseño de Sistemas Electrónicos Complejos [ 2.4 ] El Espacio de Diseño - 93 análisis, y toma de decisiones inherentes al caso particular. Recíprocamente, es posible considerar ‘hacia atrás’ el proceso de diseño, y ‘recuperar’ las posibles especificaciones que soporta la implementación dada. Sin embargo, el posible conjunto de especificaciones de partida que soportaría una implementación dada, y el conjunto de implementaciones posibles para una especificación dada, no tienen más condición de estar relacionados que de la siguiente manera: para cada implementación, la especificación de partida debe ser soportada por esta, y recíprocamente, dada esa especificación, la implementación referida anteriormente debe poder alcanzarse mediante un proceso de diseño. La precedente idea se confiere en forma ‘visual’ en el esquema de la Fig. 2.15: dada una especificación, la implementación debe ‘caer’ dentro del ‘cono de visión’ de la especificación, y recíprocamente, la especificación debe ser ‘vista’ desde la implementación; de no ocurrir esto, el diseño es erróneo - no sería posible cerrar un ciclo de validación. Alternativas de especificación de Ip Nivel de detalle Nivel de abstracción especificación Ek implementación Ip Alternativas de implementación de Ek Fig. 2.15: Alternativas de implementación para la especificación dada, y alternativas de especificación para la implementación dada La existencia de alternativas de implementación dada una especificación, y de alternativas de especificación para una implementación, son consecuencia del no determinismo del proceso de diseño, y de la imperfección inexorable en toda creación física o material, cuestiones identificables en la laxitud de las especificaciones, los errores inevitables - por ejemplo, errores en mediciones, o la cuantización de las operaciones de cálculo -, etc. (Fig. 2.15). Este esquema es otra visión del ciclo de validación (ver sección 2.1.1.4, y figuras 2.4, 2.5, y 2.8) para el caso del proceso de diseño completo. No obstante los diferentes métodos para la exploración del espacio de diseño, y las diferentes perspectivas que se puedan plantear para ‘visualizar’ el proceso de diseño, debe recordarse que subsiste la cuestión central: “... si un diseñador experimentado podrá siempre hallar una solución adecuada conforme se incrementa la complejidad del espacio de diseño, o si las herramientas Ingeniería Electrónica – Universidad Católica del Uruguay 94 - [ 2 ] Diseño en Ingeniería que automaticen la exploración del espacio de diseño podrán ayudar al diseñador a hallar soluciones en forma efectiva.”190 ([Gri03], p. 45). Según Gries, el ambiente académico se enfoca en automatizar los métodos de exploración y cobertura del espacio de diseño, mientras que las herramientas comerciales alivian al diseñador experimentado en el proceso manual de exploración del espacio de diseño. [ 2.5 ] RESUMEN Se propone en este documento diferenciar entre el empleo del término diseño en referencia a la acción de diseñar, es decir, al acto de crear o generar un determinado producto material o intelectual, del empleo del vocablo diseño como sustantivo, en referencia al propio producto material o intelectual obtenido. Esta diferenciación, quizás en apariencia un tanto artificial, sólo pretende coadyuvar a conferir más fácilmente la noción de Diseño en Ingeniería, en sentido amplio. En este contexto, y con el propósito de evitar ambigüedades, en el presente documento diseño se referirá al proceso, y el ‘diseño’ hará referencia al producto de dicho proceso. En cuanto acción, se habla de un proceso de diseño. Este proceso de diseño es tanto intelectual como ejecutivo, por lo cual cabe diferenciar sus aspectos de tipo sicológico de sus aspectos operacionales. En cuanto a sus aspectos sicológicos, el proceso de diseño requiere creatividad, análisis y toma de decisiones, actividades intelectuales que presentan la nefasta propiedad de interferencia mutua no constructiva. La actividad creativa se concentra generalmente en las fases iniciales del proceso de diseño, mientras que las actividades de análisis y toma de decisiones son recurrentes en todo el desarrollo. De estas actividades intelectuales, la creatividad - motor de la innovación - es recalcitrante a cualquier tipo de pretensión sistematizadora; consecuentemente, en este documento sólo es referida como una actividad requerida para el diseño, pero al momento inasequible en términos racionales. En cuanto a sus aspectos operacionales, el proceso de diseño tiene una finalidad - un objetivo - el cual está sujeto a ciertas restricciones. Estas pueden clasificarse en dos grandes categorías; las especificaciones, que constituyen indicaciones que se requieren del producto del proceso de diseño, y las limitaciones que supone la realidad: limitaciones físicas (de índole práctica; factibilidad; recursos disponibles) limitantes económicas, decisiones externas (por ejemplo, políticas) el estadio del conocimiento y las limitantes que constituyen los criterios que del conocimiento se derivan. Por tanto, los procesos de diseño requieren de planificación, y registran frecuentes iteraciones en su ejecución, las cuales se corresponden generalmente con inconsistencias detectadas en las fases de verificación - por ejemplo, incumplimiento de las especificaciones - o por efectos circunstanciales derivados de posibles cambios de especificación u objetivos durante el proceso, decisiones externas, decisiones de diseño en función del propio desarrollo, o determinadas por la propia estrategia de diseño. El desarrollo del proceso de diseño puede esquematizarse como el tránsito por distintas fases o etapas, por ejemplo, ‘requerimientos’, ‘idea’, ‘especificación’, ‘modelado’, ‘simulación’, ‘análisis’, ‘verificación’, e ‘implementación’. Esta esquematización prioriza los aspectos operacionales del proceso de diseño. Diferentes autores proponen esquemas donde indican las diferentes fases por las cuales transita el proceso de diseño que cada uno concibe (ver los ejemplos de las figuras 2.1, 2.2, y 2.3). Se observa que, en general, se presenta al proceso de diseño como concebido de idea a implementación, aunque no necesariamente su verdadero desarrollo haya seguido estrictamente ese sentido. De hecho, las iteraciones en el proceso son frecuentes, y los diferentes esquemas del proceso de diseño en ingeniería las indican implícita o explícitamente. La presentación del proceso de idea a implementación es favorable para la correcta documentación del diseño, y facilita además su comprensión, en virtud de ir desde lo general a lo particular. 190 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 2.5 ] Resumen - 95 “El proceso de diseño es frecuentemente considerado como una secuencia de pasos que transforman un conjunto de especificaciones descritas informalmente, en una especificación detallada que puede usarse para fabricación. Todos los pasos intermedios se caracterizan por una transformación de una descripción más abstracta en una más detallada. Un diseñador puede ejecutar uno o más pasos en este proceso. Para el diseñador, el punto de partida es una especificación, y la descripción final del diseño es una implementación.” ([ELLS97], p. 3). “El problema de la especificación se refiere a la representación del diseño en cada uno de estos pasos; el problema de la validación es chequear que la representación sea consistente tanto dentro de un mismo paso como entre pasos; y el problema de la síntesis es transformar el diseño entre pasos. (...) síntesis se refiere a un paso en el proceso de refinamiento del diseño donde la representación del diseño se hace más detallada.”191 ([ELLS97], p. 56-57). Para el proceso de diseño completo, las descripciones inicial y final se designan - al igual que para cualquier paso intermedio - especificación e implementación192. Así, el proceso de diseño se trata esencialmente de transformaciones de descripciones. La introducción de ‘ideas creativas’ a lo largo del proceso de diseño se efectúa en las referidas transformaciones de descripciones; eventualmente, la especificación inicial habrá requerido también de la introducción de ideas para su consecución193. En este trabajo se propone una estructura para describir genéricamente al proceso de diseño, la cual se presenta en la figura 2.5. La ‘celda de diseño’ de la figura 2.4 constituye el elemento básico de la secuencia ‘especificación – síntesis – implementación – análisis’, y define un ciclo de validación en el proceso de diseño194. Así, el proceso de diseño completo puede representarse como una ‘concatenación’ de ‘celdas de diseño’ que va desde la especificación (la descripción inicial respecto a lo que se considere el proceso completo) hasta la implementación (la descripción final respecto a lo que se considere el proceso completo). Esta ‘secuencia’ puede verse como producto de un refinamiento ‘fractálico’ de una ‘celda de diseño’ primigenia que representa al proceso total. Esta visión del proceso de diseño como la concatenación de la secuencia ‘especificación – síntesis – implementación – análisis’, que transforma una descripción más abstracta en una más detallada en cada paso, supone la ejecución de una actividad ‘autosemejante’, ‘fractálica’. En virtud de ello, el proceso de diseño resulta análogo al de descomposición jerárquico-modular de sistemas complejos, descrito en la sección 1.7. Recíprocamente, un proceso en sentido inverso al proceso de diseño resulta análogo al de composición de sistemas complejos, y permitiría reconstruir las especificaciones de diseño a partir de una implementación satisfactoria. De esta forma, se pueden considerar las iteraciones del proceso de diseño como sucesiones de procesos de descomposición y composición de sistemas complejos, que a medida que transcurre el proceso de diseño recorren todos los niveles jerárquicos definidos para el sistema, pasando al menos una vez por cada uno. Cabe notar que la 191 Texto traducido del original, en inglés. Ver nota 54, p. 39. 192 Esto es coherente con el hecho que un diseñador puede participar en parte de un determinado proceso de diseño, pero desde su perspectiva, esa parte constituye un proceso completo. Por ejemplo, para quien diseña un algoritmo de procesamiento de señales para un sistema de comunicaciones, su ‘proceso de diseño’ implementa el algoritmo según ciertas especificaciones. Para quien implementa ese algoritmo sobre dispositivos electrónicos concretos, su ‘proceso de diseño’ está especificado por el algoritmo, y la implementación es su consecución satisfactoria sobre el equipo físico. A su vez, el equipo electrónico de comunicaciones que opera según la implementación de ese (y otros) algoritmos, constituye un ‘proceso de diseño’ que enmarca a los previos. Y el diseño del sistema completo de comunicaciones, del cual el equipo forma parte, constituye un ‘proceso de diseño’ que abarca a todos los procesos de diseño precedentes. No obstante, para referirse específicamente a las descripciones inicial y final de cada proceso - que por los argumentos previos son descripciones relativas - usualmente se habla de ‘la especificación’ y ‘la implementación’, respectivamente. 193 Por este motivo, y en virtud de la superficialidad con la que se está forzado a tratar a la creatividad en el proceso de diseño, se procura tomar como punto de partida la etapa generalmente referida como ‘especificación’, sin estudiar los mecanismos que permiten la consecución de una especificación. 194 En este contexto, la creatividad se ven asociada fundamentalmente al proceso de síntesis. Ingeniería Electrónica – Universidad Católica del Uruguay 96 - [ 2 ] Diseño en Ingeniería ‘celda de diseño’ propuesta permite interpretar tanto a los procesos de descomposición como los de composición jerárquico modular de sistemas complejos. La noción del diseño como un proceso - una acción, o secuencia de acciones - tiene su contraparte en la consideración del término ‘diseño’ como sustantivo. Este ‘diseño’, en cuanto producto de un proceso de diseño, hereda del proceso ciertas características, en particular, lo relativo a la transformación de descripciones. Un ‘diseño’ es una descripción de un ente material o intelectual, derivado de un proceso de diseño, que admite su implementación repetitiva, o reproducción, manteniendo las especificaciones establecidas para el ente original. No se requiere reiterar o replicar el proceso de diseño original para la reproducción del diseño, sino sólo una ‘reproducción controlada’ del producto de diseño; la reproducción de un ‘diseño’ normalmente se hace vía procesos distintos al proceso de diseño original. Así, el producto de diseño se compone de dos descripciones, la especificación y la implementación, de las cuales la última debe conferir indicaciones adecuadas y suficientes para la reproducción del ‘diseño’ de forma que cumpla con las características establecidas en la primera. Las descripciones en que consiste el producto de diseño - la especificación, y la implementación - son, en esencia, un conjunto de indicaciones proporcionadas en algún lenguaje. Ya sea este textual o gráfico, de carácter matemático formal o informal, el lenguaje empleado en la descripción del producto de un proceso de diseño, constituye un severo factor limitante del ‘diseño’, en virtud de las hipótesis de Whorf 195 y Von Bertalanffy 196 ([Ber93], cap. X) respecto a la incidencia de la dotación sicofísica y la cultura - y en particular, el lenguaje - sobre el conocimiento y la expresión del mismo. En virtud de la elaboración que supone un proceso de diseño - manifiesta en la analogía entre el proceso de diseño y el de descomposición jerárquico-modular de sistemas complejos se infiere que el producto de un proceso de diseño es un sistema complejo197. Sin embargo, no todos los sistemas (complejos o no) son ‘diseños’, puesto que no necesariamente son producto de un proceso de diseño. Una metodología de diseño busca establecer procesos de diseño genéricos, que relacionan entre sí los distintos niveles de complejidad y abstracción por los que atraviesa el diseño. Establecida la metodología, el fijar como se evoluciona a través de los niveles de complejidad y abstracción definidos por esta, ya se mediante procedimientos manuales o automáticos, define el flujo de diseño concreto que constituye al proceso de diseño en sí. El flujo de diseño cuenta con el aporte y el soporte de herramientas de diseño adecuadas al flujo particular elegido. Así, distintos flujos de diseño pueden responder a una misma metodología de diseño, y un mismo flujo se puede implementar con diferentes herramientas de diseño ([TTOV98], pp. 21-22). En este contexto, los esquemas de las figuras 2.1, 2.2, y 2.3 se corresponden con metodologías de diseño. Sin embargo, el esquema de la Fig. 2.5 - basado en la ‘celda de diseño’ propuesta en la Fig. 2.4 - constituye una meta-metodología de diseño: confiere la estructura jerárquica del proceso de diseño - cómo son las relaciones entre diferentes etapas del diseño - y establece cómo se debe recorrer esta jerarquía, pero no indica las etapas concretas que se deben recorrer. Acorde a sus respectivos objetivos, “las metodologías siempre han hecho propuestas de refinamiento progresivo (proceso descendente, o ‘top-down’198) desde la idea a la implementación, pasando por distintas etapas o niveles de abstracción. Sin embargo, los flujos reales de diseño se han visto 195 “... son las pautas lingüísticas las que determinan lo que un individuo percibe en el mundo y como lo piensa. (...) los modos de pensar y percibir de grupos que utilicen distintos sistemas lingüísticos conducirán a visiones del mundo básicamente diferentes...” 196 “La percepción es universalmente humana, determinada por la dotación sicofísica del hombre. La conceptualización está vinculada a la cultura, por depender de los sistemas simbólicos que aplicamos.” 197 Esto es coherente con la analogía entre los procesos de diseño y los procesos de descomposición y composición jerárquico - modular de sistemas complejos. Diseño de Sistemas Electrónicos Complejos [ 2.5 ] Resumen - 97 mucho más sujetos al estado de las herramientas de diseño que ha seguido una evolución ascendente (‘bottom-up’199) para ir cubriendo progresivamente las etapas de mayor nivel de complejidad desde el nivel físico200 al nivel funcional.” ([TTOV98], p. 22). Usualmente se estima que la tasa de crecimiento en el tiempo del costo201 de diseño sigue una ley exponencial. Por tanto, la minimización del tiempo de de diseño es un objetivo esencial de las metodologías de diseño. Al respecto, la formalización de los procesos de diseño ha sido promovida como manera de minimizar o acelerar las iteraciones del proceso de diseño. Esto puede plantearse en términos de la ‘celda de diseño’ propuesta, donde los ciclos de validación serían automáticos en caso de haber transformaciones formales entre las descripciones (especificación e implementación) en cada paso de diseño (ver figuras 2.7 y 2.8). Desafortunadamente, los métodos formales poseen limitaciones intrínsecas 202, y además, no siempre es posible expresar cada paso del proceso de diseño en términos formales203. Así, pese a los intentos de formalización del proceso de diseño (promovidos fundamentalmente por las metodologías que proponen estrategias descendentes) tanto las limitaciones de los propios métodos formales, como la dificultad de expresión formal de las actividades intelectuales - particularmente la creatividad - se conjugan con la inmediatez que suponen los encares ascendentes para que, en la práctica, los procesos reales de diseño sean una combinación de flujos descendente y ascendente 204. Los primeros, de índole fundamentalmente teórico, aportan las concepciones globales; los segundos, acarrean desde el nivel de implementación el detalle, las particularidades, y la información tecnológica. Esencialmente, los procesos de diseño reales resultan de una combinación de estrategias descendente y ascendente, asimilables a una visión Platónica y Aristotélica de la misma situación, respectivamente. El intento de formalización de los procesos de diseño ha diferenciado dos estrategias de diseño, designadas ascendente y descendente según el sentido en el que se transmutan la abstracción y el detalle. El ‘factor en común’ a las referidas estrategias es abstraído en las teorías de diseño. Así, estas teorías se elaboran por generalización de las actividades de diseño - asociadas a estrategias de diseño ascendente - y por derivación desde postulados formales, o axiomas - asociados a estrategias de diseño descendentes (Fig. 2.9). En virtud de la tradición formalista de las matemáticas, y su utilidad en la ingeniería, históricamente se han favorecido los enfoques formales o axiomáticos. Estos cuentan con la ventaja de ser factibles de implementación computacional determinista. No obstante, en cuanto enfoques formales, sufren de las limitaciones intrínsecas a los sistemas formales205. En particular, el tema de la intuición, asociado con la actividad intelectual creativa, no se ha podido domar mediante las teorías de diseño. Por su naturaleza, el diseño es ambiguo, no es determinista, en el sentido que no existe un único diseño que satisfaga a cada problema de diseño. El producto de un proceso de diseño es función de las especificaciones, por lo cual la posible diversidad de ‘diseños’ para un mismo 198 Designación habitual en la literatura angloparlante; literalmente, ‘desde la cima hacia abajo’. En esta filosofía se inscriben las metodologías indicadas en las figuras 2.1, 2.2, y 2.3. 199 Designación habitual en la literatura angloparlante; literalmente, ‘desde la base hacia arriba’. 200 La cita es extraída de un texto sobre diseño de dispositivos electrónicos, por lo que el “nivel físico” se corresponde con el “Nivel de Implementación”. 201 En sentido amplio del término; no sólo coste económico. 202 Esto se estudia en el capítulo 3, particularmente en las secciones 3.3.5 y 3.3.6. 203 Esto también se aborda en el capítulo 3, en la sección 3.2. Requiere la consideración de ‘diseño’ como modelo, que se discute en la sección 3.5.1. 204 La ‘inmediatez que suponen los encares ascendentes’ se debe a que, en general, la innovación implica inmadurez de metodologías, técnicas y tecnologías, por lo que la información disponible se corresponde con niveles de abstracción bajos; así, las estrategias ascendentes constituyen naturalmente la manera inicial de conferir la información correspondiente al ‘estado del arte’. 205 Ver nota 202, p. 97. Ingeniería Electrónica – Universidad Católica del Uruguay 98 - [ 2 ] Diseño en Ingeniería problema de diseño está determinada por esas especificaciones. Estas son restricciones efectuadas sobre ciertas propiedades o características que ha de tener el ‘diseño’, por lo cual en cierta medida las características de interés del diseño se implican mediante las especificaciones. Si se consideran esas características o propiedades como ‘variables de diseño’, es posible imaginar un espacio n-dimensional, donde cada una de las n dimensiones se corresponde con una ‘variable de diseño’. Ese hipotético espacio multidimensional de propiedades o características del diseño, inferidas de las especificaciones, constituye el espacio de diseño. Dentro del espacio de diseño implicado por las especificaciones, se superponen las restricciones que las propias especificaciones establecen para cada característica (cada ‘variable de diseño’) con las limitaciones que impone la realidad - incluyendo el estadio del conocimiento. Así, el espacio de diseño se ve limitado por las especificaciones a un volumen ndimensional, designado ‘conjunto de soluciones de diseño’, el cual puede verse ulteriormente limitado por las limitaciones que impone la realidad. Esta situación puede también concebirse como que el espacio de diseño ‘ideal’, dado por las características implícitas en las especificaciones, se ve restringido prima facie por las limitaciones que impone la realidad, y dentro de ese subespacio que podría designarse ‘espacio de diseño real’, las especificaciones determinan un volumen que constituye el conjunto de las soluciones de diseño. Normalmente, se asume que el espacio de diseño ya considera las limitaciones derivadas de la realidad, o sea, es el espacio de diseño ‘real’, el espacio de los diseños factibles. El proceso de diseño implica una exploración del espacio de diseño, que permite la consecución de un diseño factible dentro de las especificaciones, es decir, se llega a una región, o a un punto, dentro del conjunto solución. La alteración sistemática de los parámetros de diseño durante el proceso de diseño constituye una forma de exploración del espacio de diseño, que busca obtener un subconjunto del conjunto solución que sea óptimo desde determinados puntos de vista. Esta exploración puede ser basada en experiencia previa, pero este encare adolece del inconveniente que el efecto de la experiencia previa puede resultar equivalente a una restricción del espacio de diseño, cual si fuere una especificación por exceso, con lo cual la consecución de un subconjunto óptimo del conjunto solución puede verse afectada negativamente. Por este motivo, existen varias metodologías para la exploración del espacio de diseño, las cuales difieren en la estrategia de optimación que emplean (toma de decisiones previa, posterior, o concurrente con la exploración) y las estrategias para la cobertura del espacio de diseño (evaluación exhaustiva, muestreo, incorporación de conocimientos sobre el espacio de diseño). Las diferentes estrategias determinan si la exploración del espacio de diseño es no guiada (lo cual pretende conferir una visión del espacio de diseño no sesgada por las preferencias del diseñador) o guiada (las que pretenden acelerar la convergencia de la exploración hacia el conjunto solución). Estas estrategias pueden ser acompañadas de otras técnicas para la ‘poda’ del espacio de diseño, que facilite la consecución de soluciones por reducción del espacio de diseño (como son la exploración jerárquica, la subdivisión del espacio de diseño en subespacios independientes, los análisis de sensibilidad de los parámetros de diseño, y la detección de casos límite). La consideración de un ‘espacio de diseño’ y su posibilidad de ‘exploración’ habilitan una representación del proceso de diseño que priorice su dimensión ‘espacial’, como se sugiere en los esquemas de las figuras 2.14 y 2.15. En comparación, los esquemas de las figuras 2.7 y 2.8 destacan la dimensión ‘temporal’ del proceso de diseño. La relación entre estos esquemas y los esquemas de las figuras 2.1, 2.2, y 2.3 es que los últimos abstraen ambas dimensiones ‘espacial’ y ‘temporal’, presentando al proceso de diseño sólo en sus aspectos conceptuales. Y finalmente, la consideración del proceso de diseño como una actividad ‘fractálica’, que se propone en la Fig. 2.5 en virtud de su estructura subyacente, es la visión del proceso de diseño en un plano de abstracción aún mayor. Diseño de Sistemas Electrónicos Complejos [ 2.6 ] Conclusiones - 99 [ 2.6 ] CONCLUSIONES La visión del proceso de diseño como la concatenación de ciclos de validación (especificación → síntesis → implementación → análisis) que transforman una descripción más abstracta en una más detallada en cada paso, puede considerarse como una actividad de refinamiento de un ciclo primigenio, ejecutada en forma ‘autosemejante’, ‘fractálica’ (Fig. 2.5). En virtud de ello, el proceso de diseño resulta análogo al de descomposición jerárquico-modular de sistemas complejos, descrito en la sección 1.7. Recíprocamente, un proceso en sentido inverso al proceso de diseño resulta análogo al de composición de sistemas complejos, y permitiría reconstruir las especificaciones de diseño a partir de una implementación satisfactoria. En consecuencia, el producto de un proceso de diseño es la descripción de un sistema complejo: la descripción de una ‘complejidad organizada’, a la cual puede reconocérsele una estructura jerárquica y modular. Esta descripción está constituida por dos partes, designadas especificación e implementación, la última de las cuales confiere la información suficiente para la reproducción del producto de diseño de forma de cumplir con la especificación. Cabe recordar que, en general, la consecución de especificaciones a partir de los requerimientos o las ideas de diseño es una fase recalcitrante a formalización o sistematización, al igual que lo relacionado con la actividad intelectual creativa. Un problema trascendental es el lenguaje en el cual se expresan las descripciones del proceso de diseño, de las cuales la final e inicial constituyen el producto de diseño. Este puede ser textual o gráfico, de carácter formal o informal; en cualquier caso es una limitante severa al proceso y al producto de diseño. Se registran dos estrategias de diseño, descendente y ascendente, que pueden asimilarse a las visiones ‘Platónica’ y ‘Aristotélica’ de un sistema a diseñar, respectivamente. Tanto las teorías como las metodologías de diseño han promovido estrategias descendentes a partir de las especificaciones de diseño, en virtud de la formalidad - en el sentido matemático usual que implica una visión de tipo Platónica. Por el contrario, los flujos concretos de diseño son de carácter Aristotélico, donde la información es promovida en forma ascendente desde los niveles de implementación. Una actividad propiciada por las estrategias de tipo descendente es la exploración (sistemática) del espacio de diseño, que propende a la consecución de una solución factible al problema de diseño, teniendo en cuenta o independizándose de la preferencia y experiencias previas del diseñador. Otra ventaja atribuida a las estrategias de diseño descendente es la reducción del costo de diseño, en sentido amplio del término, fundamentalmente debido a la reducción del tiempo de desarrollo. Sin embargo, los procesos de diseño reales combinan ambas estrategias, en virtud de que la maduración del conocimiento habilita y promueve los procesos descendentes, pero la innovación - fundamentalmente en lo relativo a tecnología - promueve flujos de información ascendentes. Ingeniería Electrónica – Universidad Católica del Uruguay [3] MODELOS El presente capítulo se dedica a la discusión del concepto de modelo, y su relación con el proceso y el producto de diseño en ingeniería. Similarmente a como se discuten las nociones de sistema y complejidad en el capítulo 1 y la noción de diseño en el capítulo 2, se pretende conferir aquí la noción de modelo en ingeniería. [ 3.1 ] CARACTERÍSTICAS Y PROPIEDADES GENERALES Un ‘modelo’ es una construcción análoga a una entidad, a la cual ‘representa’ con limitada precisión, en aspectos que son relevantes para cierta situación en la cual se pretende emplear el modelo en lugar de la entidad original. El empleo de modelos en lugar de las entidades originales a las cuales estos representan, obedece fundamentalmente a tres motivos, los cuales perfilan los ‘aspectos relevantes’ en los cuales el modelo representa a la entidad original: 1. Simplicidad: En ocasiones se busca operar con una versión más sencilla o simplificada de la ‘realidad’, que permita efectuar estimaciones a menor costo - en el sentido amplio del término: tiempo, esfuerzo, recursos, etc. - que el factible con la entidad original. 2. Complejidad: En ocasiones la complejidad asociada a la situación requiere una simplificación para admitir su tratamiento, a cuyos efectos un modelo constituye una herramienta idónea206. Se diferencia del motivo precedente en cuanto la ‘simplicidad’ es un motivo meramente conveniente, mientras que la complejidad supone un motivo de carácter ‘inexorable’. 3. Focalización y abstracción: En ocasiones sólo es de interés un subconjunto de propiedades o características de la situación, pasibles de ser capturadas en un modelo de ésta. Similarmente, puede ser de interés el ignorar deliberadamente determinados detalles de la ‘realidad’ de trabajo, lo cual sugiere la implementación de un modelo que los abstraiga. Este motivo se diferencia de los anteriores en que, más que efectuar un estudio del contexto general en sí, el foco de interés son precisamente ciertos detalles o características a resaltar o abstraer, posiblemente para brindar múltiples puntos de vista de una misma situación (mediante la confección de diferentes modelos que focalicen o abstraigan los detalles en cuestión) o para estudiar las consecuencias de la modificación de tales detalles en en el contexto general - por ejemplo, para experimentación. En otras palabras, la focalización o abstracción de detalles se relaciona con una visión centrada en lo ‘local’, mientras que la simplicidad y complejidad se refieren a visiones de tipo ‘global’. Por ejemplo, la maqueta de una edificación es un modelo de la construcción edilicia que confiere al arquitecto una idea del aspecto exterior de la obra, mas no representa a la construcción real en lo relativo a servicios como las instalaciones eléctrica, hidráulica y de saneamiento. Tales servicios son en general representados en los planos arquitectónicos, y no 206 Considérese ‘complejidad’ en el sentido que se discute en el capítulo 1 de este trabajo. Gonzalo Sánchez - Ingeniería Electrónica – Universidad Católica del Uruguay 102 - [ 3 ] Modelos se incorporan en la maqueta puesto que no son relevantes en lo que respecta al aspecto exterior de la construcción en sus líneas generales. Naturalmente, los propios planos arquitectónicos son también un modelo de la edificación, de los cuales es posible imaginar el aspecto exterior de la obra, pero en cuanto a ‘visualización’ la maqueta brinda una visión directa y más práctica, en especial a quienes carecen de suficiente experiencia como para imaginar la obra real desde diversas perspectivas a partir de unos diagramas - por ejemplo, los clientes del arquitecto207. Este simple ejemplo de la maqueta o los planos arquitectónicos de una construcción edilicia sugiere la existencia de dos tipos de modelo, uno de tipo material y el otro de carácter inmaterial, en función del modo en que se confiere la información: en un modelo ‘material’ la información - o, al menos, parte de la información - la constituye el propio ‘objeto físico’ del modelo, mientras que la información en un modelo inmaterial se corresponde sólo con ‘ideas’208. El modelo de una entidad puede ser de carácter material o inmaterial, según el modo en que confiere la información con la cual representa a la entidad. El carácter del modelo es independiente del carácter material o inmaterial de la entidad representada. Es posible concebir una variedad significativa de modelos físicos; estáticos, como la maqueta arquitectónica del ejemplo anterior, o dinámicos, si se dota a los estáticos de sensores, actuadores, mecanismos y motores, como se aprecia en los aeromodelos, los trenes a escala de juguetería y de coleccionista, o los túneles de viento, los planetarios, y estudios hidrográficos de bahías, canales y ríos a escala. Asimismo, la variedad de modelos de tipo inmaterial es vasta, abarcando desde descripciones verbales, diagramas y esquemas (como los planos arquitectónicos del ejemplo) hasta modelos matemáticos, y - desde la introducción del computador - modelos ‘ejecutables’ o ‘simulaciones’209. Esencialmente, los modelos de carácter inmaterial son descripciones proporcionadas en algún lenguaje, ya sea este verbal o escrito, gráfico o textual210. Asimismo, cabe notar que en un estadio superior de elaboración, las teorías científicas son modelos de carácter inmaterial, puesto que pretenden representar a la realidad en aquellos aspectos relevantes para cada disciplina - son analogías conceptuales de la realidad211, y esto es la esencia de un modelo. En función de su objetivo, existe una variedad significativa de modelos - desde recreación y entretenimiento, a la ingeniería o investigación científica - y se los encuentra por doquier. Al respecto, debe tenerse presente que las ventajas y desventajas de los modelos no afectan en igual forma a los juguetes, maquetas, o instrumentos didácticos, como a los modelos o prototipos de ingeniería, donde resultan críticas las capacidades de cálculo y predicción, y 207 Como ejemplo adicional, considérese que la diversidad de modelos cuyo objeto es brindar diferentes puntos de vista de una misma realidad se adopta como actual paradigma para el desarrollo de sistemas de información (véase por ejemplo [Qua01], p. 1 - The Importance of Modeling). 208 Se prefiere emplear el término ‘ideas’ en lugar de ‘conceptos’, para no inducir a confusiones, puesto que todo modelo implica una conceptuación, en virtud de ser una construcción analógica y limitada de la realidad. 209 Naturalmente, los referidos modelos inmateriales son plasmados, en última instancia, sobre un soporte material. Sin embargo, este soporte material no es más que eso - un soporte, un vehículo para la información que puede ser sustituido a conveniencia - y no constituye en sí la información que se desea conferir. 210 Por tanto, al igual que las descripciones que constituyen al producto de un proceso de diseño, los modelos son sometidos a las condicionantes del lenguaje empleado (ver sección 2.1.2.2). 211 Aquí se prefiere destacar el carácter conceptual de una teoría, aunque implique cierta redundancia (ver nota 208, p. 102). Diseño de Sistemas Electrónicos Complejos [ 3.1 ] Características y propiedades generales - 103 nefastas las omisiones de propiedades relevantes a la aplicación 212. “Son bien conocidas las ventajas y los peligros de los modelos. La ventaja está en que es el camino para crear una teoría, es decir, el modelo permite deducciones a partir de premisas, explicación y predicción, a menudo con resultados inesperados. El peligro es la excesiva simplificación: para hacerla conceptualmente controlable, tenemos que reducir la realidad a un esqueleto conceptual, dejando en pie la pregunta de si al proceder así no habremos amputado partes vitales de la anatomía. El riesgo de supersimplificación es tanto mayor cuanto más múltiple y complejo es el fenómeno” ([Ber93], p. 210). Consecuentemente, el desarrollo y aplicación de modelos implica un compromiso entre precisión y utilidad, donde el mayor riesgo que se corre es el de sobresimplificación. En lo que resta del presente capítulo, por razones de brevedad, la discusión se centra en modelos de carácter inmaterial. No obstante, es factible inferir una posible extensión de la discusión a modelos de carácter material a partir de los conceptos referidos a los modelos inmateriales. [ 3.2 ] MODELOS VERBALES Y FORMALES “Las ventajas de los modelos matemáticos - no ambigüedad, posibilidad de deducción estricta, verificabilidad por datos observados - son bien conocidas. No quiere esto decir que modelos formulados en lenguaje ordinario hayan de ser desdeñados o rechazados.” (...) “Las matemáticas significan esencialmente la existencia de un algoritmo mucho más preciso que el lenguaje ordinario.” Sin embargo, “La historia de la ciencia atestigua que la expresión en lenguaje ordinario a menudo precedió a la formulación matemática, a la invención de un algoritmo.” (...) “Quizás valga más tener primero algún modelo no matemático, con sus limitaciones, pero que exprese algún aspecto previamente inadvertido, en espera del surgimiento venidero de algún algoritmo apropiado, que a partir de modelos matemáticos prematuros que calquen algoritmos conocidos y con ello acaso restrinjan el campo visual.“ ([Ber93], p. 23). De esta forma, Von Bertalanffy establece una consideración esencial en lo tocante a la utilidad de los modelos, que se puede sintetizar de la siguiente manera: Un modelo verbal (informal)213 es preferible a ninguno, o a algún modelo formal que - por poder ser formulado lógica o matemáticamente - es impuesto por la fuerza a la realidad, y la falsifica214 (Adaptado de [Ber93], p. 23). 212 Considérense, por ejemplo, las implicancias de omisiones en relación a la seguridad de equipamientos médicos, sistemas de control industrial, sistemas de transporte (aviones, trenes, barcos, automóviles) etc. 213 Informal se refiere al sentido usual de ‘no estar expresado en forma matemático - lógica rigurosa’. Esta noción se revisa en la sección 3.3, particularmente en 3.3.4. 214 Un escenario emblemático para esta situación se da en el ámbito económico actual, a raíz de la tendencia a la ‘axiomatización’ de la teoría económica, como se argumenta duramente en [Mar99], y también en [HH05]. Un problema usual es que se suele confundir probabilidad con estadística. La diferencia entre el cálculo de probabilidades y la inferencia estadística es, en esencia, que la estadística es una ciencia experimental, en tanto que la probabilidad es una rama de la matemática, cuyos teoremas no dependen de resultados experimentales sino de los axiomas sobre los que se erige (ver [San80], Cap. 7, p. 87). Así, por ejemplo, si luego de un gran número de tiradas de una moneda, la relación entre ‘cara’ y ‘número’ difiere en forma significativa de 1, el probabilista dirá que el experimento se ha realizado con error (el individuo que tira la moneda no lo hace en forma estrictamente aleatoria, o la moneda no es simétrica) mientras que el estadístico concluye que la ley de los grandes números no es aplicable en este caso, y que se debe buscar otro modelo que devuelva resultados más congruentes con los resultados experimentales. Definido un modelo matemático parametrizable, el ajuste de los parámetros en función de los datos experimentales (considerados con su error de mensura) es un procedimiento esencialmente estadístico, que emplea el cálculo de probabilidades para determinar la probabilidad de los datos dado el modelo, pero que necesariamente interpreta el resultado en forma intuitiva, no matemática, como la verosimilitud del modelo dados los datos ([PTVF02], pp. 662-663). No cabe, por tanto, aceptar ningún tipo de ‘justificación matemática’ en el ámbito económico, puesto que en esencia sólo puede >> p. 104 Ingeniería Electrónica – Universidad Católica del Uruguay 104 - [ 3 ] Modelos Como aduce Von Bertalanffy, la precedente aserción tiene un sólido fundamento histórico. A la fecha, una significativa cantidad de modelos han surgido primero de manera informal, como descripciones intuitivas - calificadas hasta de ‘genialidades’ - siendo sólo posteriormente pasibles de formalización, conseguida no sin esfuerzo, y no en todos los casos (estos últimos notablemente en las áreas relativas a lo biológico y lo social). Como ejemplo de formalización a posteriori de un modelo intuitivo cabe citar el empleo - tremendamente efectivo - de la ‘función’ delta de Dirac por la física, hasta la consecución de la primer teoría de las ‘funciones generalizadas’ o Teoría de las Distribuciones por L. Schwartz. No obstante, existen razones más significativas que los meros sucesos históricos para reivindicar el uso y la utilidad de modelos no formales, las que se revisan en las siguientes secciones. [ 3.2.1 ] INTROSPECCIÓN, DEDUCCIÓN, ROBUSTEZ, INCOMPLETITUD En primer lugar, por su propia construcción, los modelos informales confieren introspección a la situación que modelan, es decir, el propio modelo tiene la virtud de sugerir el concepto que emplea para capturar la instancia de la realidad a la que representa. En cambio, los modelos formales pueden ser implementados como un mero artilugio de cálculo, o una expresión matemática de alta complejidad o difícil interpretación, cuya construcción - aunque posiblemente concebida con extrema ‘habilidad’ - quizás sólo permita una idea superficial de lo que sucede215. En segundo lugar, existen problemas inherentes a la propia formalización, como ser la dicotomía inconsistencia o incompletitud de los sistemas axiomáticos formales à la Hilbert, pero que no afectan a los comparativamente más ‘flexibles’ modelos informales. Si bien la discusión acerca de este tipo de sistemas se efectúa en la sección 3.3.4, y la consideración de sus inconvenientes y otras consecuencias se posponen a las secciones 3.3.5 y 3.3.6, el hecho que los modelos matemáticos sean pasibles de ‘vulnerabilidades’ puede inferirse por el modo de desarrollo de modelos (teorías) en la física. Los modelos que emplea la física se conciben, ab initio, inexactos e incompletos216; son sujetos a continua revisión, y no son ajustados a una estricta formalidad, puesto que pretenden ser robustos ante perturbaciones 217. Por el contrario, los modelos formales son inherentemente frágiles, especialmente aquellos que no son de tipo << p. 103 discutirse la verosimilitud de los modelos usados en función de los ‘datos económicos’ (‘experimentales’, medidos inexorablemente con error) y la credibilidad que se tiene en las inferencias que se efectúan a partir de estos modelos. El empleo - en ocasiones abusivo - de la palabra ‘confianza’ en el discurso económico, se debe precisamente a esta razón. Así, en economía, el ceñirse por ortodoxia a modelos matemáticos puede ‘falsificar’ la realidad, cuestión que gran cantidad de idóneos se niega obstinadamente a reconocer, con perjuicios experimentados a escala planetaria (Como ejemplo doméstico: ante críticas a su política económica en tiempos de crisis, el Ministro de Economía del Uruguay en 2002, Cr. A. Bensión, manifestó que “...no es que el modelo estuviera mal, sino que la realidad cambió...”. Este discurso es claramente incompatible con una filosofía ‘estadística’). 215 Más allá del tema ‘modelos’ en ingeniería, este efecto es notorio en las demostraciones de ciertos teoremas matemáticos: existen habilísimas demostraciones de teoremas matemáticos, pero de las cuales no se desprende una idea cabal del concepto que ellas mismas prueban - en general, las demostraciones por reducción al absurdo carecen de la virtud de brindar ‘introspección’. Naturalmente, hay demostraciones formales que son además conceptualmente significativas; puede verse que en general las demostraciones de tipo constructivo poseen carácter introspectivo, como el Teorema de Bolzano - la existencia de al menos un cero de una función continua que cambia de signo en un intervalo cerrado, demostrado por encaje de intervalos ([PCT60], V. I, § 26-2, pp. 396-397). 216 Inexactos e incompletos, más allá de la ‘inexactitud e incompletitud intrínsecas’ que supone un modelo como ‘construcción análoga a una entidad, a la cual representa con precisión limitada’. La ‘inexactitud e incompletitud intrínsecas’ se derivan, prima facie, de las motivaciones de simplicidad, complejidad, focalización o abstracción esgrimidas al inicio del presente capítulo. Lo que aquí se refiere es una inexactitud e incompletitud adicional a la intrínseca, cuyo carácter se explicita a continuación. 217 Ver nota 221, p. 105. Diseño de Sistemas Electrónicos Complejos [ 3.2 ] Modelos verbales y formales - 105 ‘constructivo’, puesto en caso de una posible ‘perturbación’, la propia estructura formal exige la caída completa del modelo, por más pequeña que esta perturbación pueda ser. “... permítanme decir por que es bueno lograr varias pruebas diferentes de un resultado matemático importante. Cada una (...) ilustra un aspecto diferente del problema, y revela diferentes conexiones, y empuja a uno a diferentes direcciones. Pero además es un hecho, como dijo el matemático George Pólya en su pequeño y hermoso libro ‘Cómo resolverlo’, (...) que es mejor estar sobre dos piernas en lugar de una. (...) Si se tiene sólo una prueba, y ésta contiene un error, entonces uno queda sin nada. Tener varias pruebas no sólo es más seguro, sino que además brinda mayor introspección, y brinda mayor comprensión. Después de todo, el objeto de la matemática es obtener introspección, no sólo pruebas. Una demostración larga y complicada que no brinda introspección no solamente es sicológicamente insatisfactoria, es frágil, y fácilmente puede contener una falla. Y yo prefiero pruebas con ideas, no pruebas con muchos cálculos.”218 ([Cha04], c. II). En esencia, los modelos informales admiten la intuición como herramienta válida para su desarrollo, mientras que los formales se limitan a la deducción. Una virtud de los modelos informales, derivada del carácter intuitivo de su formulación, es que brindan introspección al fenómeno al que describen, mientras que el carácter deductivo de los modelos formales no lo garantiza. Una virtud adicional de los modelos informales consiste en la robustez ante perturbaciones que les confiere su carácter intuitivo, en contraste con la fragilidad intrínseca que implica la propia estructura de los modelos formales lógicamente consistentes, los cuales - además son pasibles de la limitación Gödeliana de incompletitud que se examina en la sección 3.3.5. [ 3.2.2 ] MODELOS MATEMÁTICOS INFORMALES El mencionado modo de desarrollo y empleo de modelos no formales en la física sugiere un cuestionamiento adicional: la relación entre modelos formales y modelos matemáticos. El empleo por la física de la ‘delta de Dirac’ como una ‘función’ ordinaria (no como una ‘función generalizada’) se admite actualmente dentro del denominado cálculo operacional. Este maneja modelos de tipo matemático, en una forma tal que no se corresponde con un ejercicio riguroso de los conceptos de la teoría de funciones ordinarias, dentro de la que los modelos son operados219. Sin embargo, estos cálculos devuelven resultados matemáticamente correctos, y coherentes con la realidad modelada, razón por la cual la física los aplicó sin importar su flagrante falta de rigurosidad (la cual inclusive implica una contradicción con la teoría de funciones usuales). Este hecho sugiere la existencia de modelos expresados matemáticamente, aunque de carácter no formal, no estrictamente deductivos. Podría argumentarse en favor de descalificar como modelos ‘matemáticos’ a todos aquellos que no se apegan a teorías matemáticas válidas a priori, pero esto genera inmediatamente el problema de reconocer cuales son estas teorías ‘absolutamente confiables’ 220, las que - además deberán ser inmutables a posteriori so pena de desvirtuar su confiabilidad. Aún si se ignora este problema, y se restringe la consideración a solamente aquellos modelos basados en teorías matemáticas sólidas y fundadas, consta el ejemplo de los modelos matemáticos que emplea la física, concebidos inexactos e incompletos, con la intención de conferirles robustez ante perturbaciones221. Pero aún desestimando las fuentes de incertidumbre reales, los modelos 218 Texto traducido del original, en inglés. Ver nota 54, p. 39. 219 Se recuerda que su formulación y aplicación sólo son válidas en el ámbito más general dado por la teoría de las distribuciones, cuya consecución, además, sucedió al empleo del cálculo simbólico en lugar de precederlo, y por tanto validarlo como formalmente consistente. 220 La solución a este problema fue intentada por Hilbert (sección 3.3.3.2.2) y demostrada inviable por Gödel (sección 3.3.5). 221 Estas perturbaciones son inexorables: derivan de la incertidumbre en las medidas experimentales, dada la precisión limitada de los sentidos y los instrumentos, la interferencia de ruidos, la adecuación de los experimentos con los que se chequean los modelos teóricos, y las propias limitaciones >> p. 106 Ingeniería Electrónica – Universidad Católica del Uruguay 106 - [ 3 ] Modelos matemáticos que usa la física requieren interpretación, con lo cual la asociación entre modelos matemáticos y modelos formales se torna extremadamente difusa. A efectos de ilustrar el argumento de ‘interpretación’ considérese, por ejemplo, la caída libre de un cuerpo. El modelo del fenómeno, expresado en forma matemática siguiendo la mecánica de Newton, es: g 2 y t=y t 0 y 't 0 ⋅t− ⋅t 2 donde la función y(t) representa la evolución temporal del desplazamiento vertical del cuerpo, con y(t0) e y’(t0) la posición y velocidad iniciales respectivamente, y g la aceleración de la gravedad. Suponiendo velocidad inicial nula, si se busca el tiempo tf en el cual el cuerpo alcanza la altura y(tf )=0 (que, por ejemplo, puede corresponderse con la superficie terrestre) resulta: t f =± 2⋅y t 0 g Esta doble solución matemática no se corresponde con la realidad física a menos que se agregue al modelo la condición tf > t0. Esta condición no es más que la imposición de la causalidad combinada con la unidireccionalidad del tiempo, y es lo que permite seleccionar la solución físicamente coherente del doble resultado matemático. Así, el resultado matemático ‘formal’ se debe interpretar desde un punto de vista físico, o carece de coherencia. Puede objetarse que este doble resultado matemático ‘incoherente’ se debe a un modelo inadecuado del fenómeno, que no incluye ab initio la condición tf > t0. En verdad el modelo es inadecuado, pero la inadecuación corresponde al modelo matemático del tiempo de la mecánica de Newton, y no a una omisión de la condición tf > t0 en el modelo del fenómeno. Desde Galileo, el modelo matemático del tiempo es de tipo geométrico, donde se preserva la noción de orden de eventos, mas se carece de noción de presente, pasado y futuro222. Estas nociones se deben incorporar ‘desde afuera’, y así es que la condición tf > t0 constituye una meta-regla223 y no una regla matemática. La incorporación al modelo de esta condición no responde entonces a un error u omisión particular en el planteamiento del modelo, sino general, que se debe a un modelo matemático inadecuado (‘insuficiente’) de un aspecto fundamental de la realidad como es el tiempo; la matemática por sí sola no tiene potestad para restringir el comportamiento de la variable t a una variedad ‘entrópica’ en el modelo geométrico Galileano del tiempo. No obstante, el modelo del ejemplo directamente ignora los efectos de rotación terrestres, y no por ello se obtiene una predicción absolutamente ajena a la realidad224 - a lo más, una capacidad de predicción ‘poco precisa’, o sujeta a determinadas hipótesis no explícitas. Así, pese a la aparente pertinencia de la objeción, cabe recordar que el aducir incompletitud, inadecuación, o << p. 105 teóricas, es decir, las limitaciones del propio conocimiento. 222 En esencia, el modelo del tiempo en la teoría de la Relatividad de Einstein es también geométrico, sólo que en este caso el modelo del espacio - tiempo es más sofisticado que los modelos geométricos del espacio y del tiempo independientes de Newton (y Galileo). Pese al concepto termodinámico de entropía, la carencia de una noción consistente y general de ‘tiempo pasado, presente y futuro’ en los modelos de la física derivados de estas teorías constituye un severo problema (en especial, para el modelado de la causalidad y los organismos vivos) y se le refiere como ‘el problema de la flecha del tiempo’. Sería recién superado de afianzarse la teoría de Física de Procesos, según aducen sus autores [CKK00]. (Para una somera introducción a esta visión de la física, véase [Cho00]). 223 La meta - regla para el modelo geométrico del tiempo equivale a señalar (con un dedo, por ejemplo) al punto que representa el ‘ahora’, e ir desplazando dicho punto sobre el eje temporal para indicar la actualización del ‘ahora’, es decir, el fluir del tiempo. ([CKK00], p. 2; [Cah03], s. 2.1, pp. 7-9) 224 Por ejemplo, predice independencia del tiempo de caída del objeto respecto a su masa, como observara Galileo en su famosa experiencia desde la torre de Pisa. Nótese que tampoco se incluyen los efectos de fricción con el aire, etc. Diseño de Sistemas Electrónicos Complejos [ 3.2 ] Modelos verbales y formales - 107 inexactitud de un modelo constituye - estrictamente - una tautología, en virtud de la propia noción de modelo como construcción análoga pero limitada de la realidad. El elemento clave en este cuestionamiento reside en la diferencia entre los dominios de formulación de un modelo, y el de su aplicación. Las posibles deficiencias de los modelos son un riesgo intrínseco al modelado, pero esas eventuales inconveniencias derivadas de un modelo incompleto, inadecuado, o inexacto, competen exclusivamente al dominio de aplicación del modelo, no al dominio en el cual este es implementado; a éste sólo compete la posibilidad de una mala formulación225. Este hecho, bien conocido por la física, explica la necesidad de interpretación de los modelos matemáticos que esta disciplina formula para modelar la realidad, lo que esencialmente requiere una dotación de significado a la formulación matemática. Como consecuencia de esta necesidad de significación e interpretación, así como de la inevitable incertidumbre y de la posibilidad de refutación experimental, los modelos de la física constituyen ejemplos manifiestos de modelos matemáticos no formales: de los mismos se admite la posibilidad de cálculo y predicción, mas no se pueden establecer conclusiones exclusivamente por deducción, por más ‘adecuados’ - desde el punto de vista físico, es decir, del domino de aplicación - que sean los modelos matemáticos del fenómeno en cuestión. Así, la existencia de modelos matemáticos ‘informales’ se relaciona esencialmente con la diferencia entre los dominios de formulación del modelo y de su aplicación. La usual asociación entre modelos formales y modelos lógico-matemáticos es válida sólo en este sentido: los modelos formales deben necesariamente ser formulados en forma lógico-matemática y operados estrictamente por deducción, pero no recíprocamente. La asimetría es provocada por la posible incorporación de una semántica a los modelos matemáticos, que modifica sus propiedades formales previas dependientes exclusivamente de su estructura sintáctica, y que admite el uso de la intuición226. Por ejemplo, se argumenta en [Cah03], s. 3, pp. 11-13 que los modelos de la física clásica, relativista, y cuántica, son modelos matemáticos formales (puramente sintácticos) a los que se incorpora un significado (semántica) en términos de meta-reglas y aserciones metafísicas. Por el contrario, la física de procesos que promueven estos autores incorpora ab initio una semántica en el modelo matemático, el cual no consiste un modelo formal de tipo axiomático, sino una red neuronal estocástica. El ‘significado’ radica en la incertidumbre que de forma aleatoria es incorporada al modelo, la cual es de carácter auto-referente ([CKK00], pp. 3-4)227. [ 3.2.3 ] MODELOS MATEMÁTICOS Y MODELOS FORMALES DE MODELOS ‘VERBALES’ Fundamentalmente debido a las necesidad de cálculo y predicción, en la ciencia y la ingeniería se es proclive al empleo de modelos matemáticos. Independientemente de la formalidad o no de estos modelos, se plantea la cuestión de factibilidad de construcción de modelos matemáticos de los fenómenos de interés. Afortunadamente, la formulación matemática de ciertos modelos ‘verbales’, es viable en el caso particular de isomorfismo entre los campos descritos por los modelos ‘verbales’ con algún campo de la matemática o de la ciencia ya modelado matemáticamente con éxito suficiente. Según Von Bertalanffy, este hecho se deriva del concepto de sistema: “Consecuencia de la existencia de propiedades generales de sistemas es la 225 En el sentido “se han empleado en forma incorrecta los elementos del dominio de implementación”. 226 Formalismo, sistemas formales, sintaxis, son conceptos que se explicitan en las secciones 3.3.3.2.2 y 3.3.4. 227 Algunas de estas consideraciones se revisan en la sección 3.3.6.2.5, desde la perspectiva de la Teoría de Información Algorítmica (sección 3.3.6.2). Por una introducción a la Física de Procesos, véase [Cho00]. Ingeniería Electrónica – Universidad Católica del Uruguay 108 - [ 3 ] Modelos aparición de similaridades estructurales e isomorfismos en diferentes campos” ([Ber93], p. 33). Esto requiere interpretar adecuadamente el concepto de isomorfismo entre campos. Una analogía es una similitud superficial entre fenómenos que no se corresponden ni en factores causales, ni en las leyes pertinentes; por ejemplo, la comparación entre el desarrollo de una población y el ciclo vital de un organismo. Otro nivel cualitativamente distinto lo constituyen las homologías, donde las leyes respectivas entre fenómenos son formalmente 228 idénticas; por ejemplo, la consideración del flujo de calor como el fluir de una sustancia, aunque no exista una ‘sustancia calorífica’. Son las homologías lógicas las que se refieren como isomorfismos entre campos. En ingeniería, resulta familiar el hecho que el mismo conjunto de ecuaciones diferenciales sea aplicable para describir problemas correspondientes a distintas ramas, como mecánica y electrónica; un típico ejemplo de esta homología entre modelos lo constituyen el oscilador armónico mecánico forzado con amortiguamiento viscoso, y un circuito eléctrico resistivoinductivo-capacitivo alimentado con una fuente independiente, los cuales se pueden describir mediante una ecuación diferencial escalar de segundo orden, a coeficientes constantes, más un término independiente229. Esto no es más que una consecuencia de que, en ciertos aspectos, pueden aplicarse abstracciones y modelos conceptuales coincidentes a fenómenos diferentes. Sin embargo, de la misma manera que la aplicación de las leyes físicas a distintos objetos no pretende que estos sean semejantes en aspectos ajenos a la física, es incorrecto interpretar que lo anterior se deba al hecho evidente que las matemáticas se pueden aplicar a toda suerte de cuestiones y cosas230; se requiere un isomorfismo o similaridad estructural (Adaptado de [Ber93], pp. 82-88). Así, según Von Bertalanffy, sólo la identificación de isomorfismos entre modelos autorizaría la identificación de modelos matemáticos con modelos ‘verbales’, permitiendo dotar a estos últimos de capacidad de cálculo y predicción. Sin embargo, la dificultad radica en que los modelos ‘verbales’ pueden carecer de una estructura que habilite a la correcta identificación de isomorfismos. Consecuentemente, se aduce aquí que todo modelo verbal requiere ser inicialmente formulado en términos matemáticos, aunque sea con escasa rigurosidad, y basándose fuertemente en la intuición, de forma de posibilitar un examen estructural que habilite a la búsqueda de promitentes isomorfismos. A la fecha, esta actividad no constituye un cuerpo cerrado del conocimiento. En ([Pod97], s. 1.3) se consideran dos maneras en las cuales una ‘intuición’ puede formularse matemáticamente, y eventualmente formalizarse: el método genético, y el método axiomático. El método genético intenta reconstruir el modelo intuitivo por medio de otro modelo considerado ‘más confiable’231. Un ejemplo de aplicación de este método consiste en considerar a los números complejos como puntos en el plano, y reconocer las operaciones entre números complejos en términos geométricos en el plano que los representa; así, la posible reticencia inicial hacia el modelo de los números complejos se supera al modelarlos en términos de otro modelo que consta con mayor grado de credibilidad (la geometría plana). Nótese que el método genético es compatible con la identificación de isomorfismos entre campos, discutida precedentemente. Así, este método puede considerarse como ‘relativo’, en cuanto aclara una intuición en términos de otro modelo, que - a su vez - podrá ser intuitivo o no. Por el contrario, el método axiomático opera en términos ‘absolutos’: entre aquellas aserciones comúnmente aceptadas sobre un modelo, se selecciona un subconjunto de las mismas, sin requerir su validación, y se reconstruyen y validan las restantes aserciones a partir de estas primeras. Estas aserciones ‘primitivas’ son postuladas sin requerir demostración, en virtud de ser 228 Se refiere a la estructura, o la sintaxis. 229 O, equivalentemente, en forma de ecuaciones de estado, que vectorialmente se pueden escribir como dx(t)/dt=A·x(t)+u(t), donde x(t) es el vector de estado, A la matriz de transición de estado, y u(t) el vector forzante. 230 No implica esto que dicha aplicación sea adecuada, es decir, que devuelva resultados coherentes, sino sólo que - en principio - es posible aplicar la matemática a “toda suerte de cuestiones y cosas”. 231 Nótese que presupone, de todas formas, la disposición de un modelo matemático inicial. Diseño de Sistemas Electrónicos Complejos [ 3.2 ] Modelos verbales y formales - 109 ‘evidentes’232; son denominadas axiomas, si el modelo en cuestión se refiere a una teoría. Si la validación del resto de las aserciones (teoremas, en el caso de una teoría) se efectúa mediante estricta deducción a partir de los axiomas, entonces el modelo es un modelo formal (o correspondientemente, una teoría formal)233. Sin embargo, se pueden permitir algunas instancias intuitivas el proceso de validación, con la condición que estas sean ‘más evidentes’ que los propios postulados del modelo axiomático234. Ejemplos del método axiomático son los axiomas de Euclides para su geometría, los axiomas de Peano para la aritmética de los números naturales, y los axiomas de Zermelo-Fraenkel para la teoría de conjuntos. Un modelo intuitivo puede reconstruirse en términos de otro modelo, ‘más confiable’ - proceso denominado método genético - o bien por selección de un subconjunto de propiedades ‘evidentes’ del modelo, las que se postulan sin requerimientos de validación (axiomas) y de las cuales se derivan el resto de las propiedades del modelo - proceso denominado método axiomático - ya sea por estricta deducción (modelo formal) o admitiendo derivaciones intuitivas, con la condición de ser estas ‘más evidentes’ que los propios axiomas del modelo. En cualquier caso, la reconstrucción de un modelo intuitivo plantea el interrogante acerca de la adecuación de dicha reconstrucción. ¿Subyace quizás a los conceptos intuitivos una propiedad aún no manifiesta en la práctica, o ante el estadio actual del conocimiento235? La aparición de propiedades inesperadas en los modelos reconstruidos significa que efectivamente se ha implementado una reconstrucción, y no una mera copia de los modelos intuitivos, e implica que el tema de la adecuación debe ser considerado seriamente. En el caso de una reconstrucción ‘axiomática’, el problema de la adecuación se traduce en la pregunta de si todas las propiedades esenciales del modelo intuitivo están presentes en los axiomas. Toda reconstrucción de un modelo intuitivo plantea el problema de la adecuación de tal reconstrucción, en el sentido de si se mantienen las propiedades esenciales del modelo, y si surgen propiedades inesperadas o no existentes en el original. Se plantea, en consecuencia, la necesidad de establecer criterios que permitan decidir la adecuación o no de una reconstrucción. Según Podnieks, la única repuesta realista es considerar sólo aquellos aspectos del modelo intuitivo que pueden ser reconocidos en la práctica del razonamiento matemático. Sin embargo, esto no elimina el problema de ‘propiedades ocultas’ en el modelo intuitivo original. Un criterio razonable puede derivarse de la observación de Pólya y Chaitin, sobre las ventajas de disponer de ‘varias pruebas’ en lugar de una: una posible evidencia de una reconstrucción adecuada consiste en la consecución de varias reconstrucciones equivalentes entre sí. Si bien no es posible probar la equivalencia entre un modelo intuitivo y cualquiera de sus reconstrucciones formales (este es precisamente el problema de la adecuación) sí resulta posible validar o invalidar la equivalencia entre las diferentes reconstrucciones formales del modelo intuitivo. Así, el contar con reconstrucciones formales probadamente equivalentes de un modelo intuitivo, confiere confianza en la adecuación de las reconstrucciones. Un ejemplo de esta situación es la noción de computabilidad, o el concepto de algoritmo, del cual se conocen como reconstrucciones formales las funciones recursivas, el autómata de Turing, el cálculo Lambda de 232 Puede darse otra razón de corte pragmático para postular estas aserciones sin requerir su demostración, que nada tiene que ver con su carácter de ‘verdad evidente’: ¡se necesita establecer un punto de partida, para no incurrir en una regresión infinita! ([Cha99], c. 1). 233 Esto se revisa con más detalle en la sección 3.3.4. 234 Este comportamiento no está exento de críticas, particularmente de los círculos ‘formalistas’ de la matemática. 235 Consideradas además la percepción y apercepción humanas, condicionadas por factores biológicos y culturales, como se insiste reiteradamente en este documento siguiendo a Von Bertalanffy. Ingeniería Electrónica – Universidad Católica del Uruguay 110 - [ 3 ] Modelos Church, los sistemas canónicos de Post, y los algoritmos normales de Markov - todas estas demostradas equivalentes entre sí ([Pod97], s. 1.3). Amén del interés por la capacidad de cálculo y predicción, la historia de la matemática registra, a la fecha, una evolución de los modelos intuitivos hacia los modelos formales. “La tendencia a reemplazar los conceptos intuitivos por sus reconstrucciones más o menos explícitas aparece claramente en la historia de la matemática. Las teorías intuitivas no pueden desarrollarse normalmente sin estas reconstrucciones: la precisión de los principios intuitivos básicos se torna insuficiente cuando crece la complejidad de los conceptos y los métodos. En la mayoría de las situaciones la reconstrucción puede ser realizada por el método genético, pero para reconstruir los conceptos matemáticos más fundamentales, el método axiomático debe ser usado (los conceptos fundamentales son denominados fundamentales precisamente porque no pueden ser reducidos a otros conceptos).”236 ([Pod97], s. 1.3). En sintonía con la precedente consideración, “Las teorías matemáticas, sobre todo las que tienen relación con los fenómenos naturales, a los que tratan primero de entender para luego predecir, se construyen siempre a partir de conceptos intuitivos, suficientemente claros para que puedan ser aplicados en las primeras etapas de la teoría, pero no suficientemente rigurosos para que queden a salvo de objeciones cuando la misma alcanza cierto grado de desarrollo. Se hace necesario, entonces, revisar los fundamentos, precisando las definiciones y dándoles, si ello es posible, una construcción axiomática. De esta manera, si alguna vez aparecen resultados contradictorios o paradójicos, se sabrá bien que lo único que deberá ser revisado son los axiomas y a ello habrá que acudir también siempre que se desee una extensión o una limitación de la teoría. Sin embargo, para empezar a estudiar una teoría, no siempre es el camino axiomático el más recomendable. Los axiomas son elaborados por quienes conocen muy bien la teoría, y su verdadero sentido y necesidad se comprenden con claridad tan sólo cuando se está ya familiarizado con los elementos y relaciones básicas que ellos tratan de afirmar de manera abstracta y precisa. Es mejor empezar por definiciones tal vez no muy exactas y con ejemplos simples, pero substanciales, para poder comprender luego el verdadero sentido de los axiomas, y para que los mismos aparezcan de manera natural como expesión sintética y firme de conocimientos ya adquiridos.” ([San80], p. 1). Sin embargo, la tendencia histórica hacia la axiomatización de la matemática sufre de limitaciones, a causa de la inherente incompletitud de los sistemas axiomáticos formales consistentes demostrada por Gödel en 1931, reformulada por Turing en términos de la incomputabilidad, y extendida por Chaitin en términos de aleatoriedad en el seno de la matemática pura. Estas cuestiones de carácter fundamental merecen una particular dedicación, a lo cual se dedica la siguiente - y extensa - sección 3.3 del presente capítulo. [ 3.3 ] MODELOS MATEMÁTICOS [ 3.3.1 ] CONSIDERACIONES INICIALES El sistema tautológico de naturaleza hipotético-deductiva que es la matemática implica que este sea ‘verdadero’ en más de una cultura: cualquier ser racional que acepte las premisas necesariamente tiene que convenir en todas las deducciones. Sin embargo, la matemática - en cuanto lenguaje simbólico derivado del cotidiano - no es independiente ni de la estructura de este, ni del contexto cultural, el cual determinará que aspectos o perspectivas serán matematizados. Así, la preocupación griega por los problemas geométricos y la preocupación de las matemáticas occidentales por el cálculo, o la preferencia de un físico por la termodinámica clásica ‘macroscópica’, la estadística molecular ‘microscópica’, la mecánica de matrices o la ondulatoria para vérselas con los mismos fenómenos. ([Ber93], pp. 249-250). “Tal vez la estructura de nuestra lógica esté esencialmente determinada por la estructura de nuestro sistema nervioso central. Éste es en resumidas cuentas una computadora digital, ya que las neuronas 236 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 111 funcionan de acuerdo con la ley del todo a nada de la fisiología, en término de decisiones de sí o no. A esto corresponde el criterio heraclíteo237 de nuestro pensar en opuestos, nuestra lógica bivalente del sí o no, el álgebra booleana, y el sistema de numeración binario.” ([Ber93], p. 259). El origen del sistema binario de numeración se remonta a Leibniz238, y en su momento se le atribuyó un carácter teológico: cualquier número puede ser representado por la combinación de ‘algo’ (1) y ‘nada’ (0). “Leibniz notaba orgulloso lo fácil que resultaba calcular con su sistema binario, acorde a lo que uno podría esperar de haber llegado al basamento lógico de la realidad. Por supuesto, esta observación también la han hecho los ingenieros de computadores tres siglos después; la idea es la misma, pese a que el lenguaje y el contexto cultural en el cual se formula es algo diferente. Esto es lo que Dantzig tiene para decir al respecto en su ‘Number, The Language of Science’: «Es la elegancia mística del sistema binario que hizo exclamar a Leibniz: ‘Omnibus ex nihil ducendis sufficit unum’ (Uno alcanza para derivar todo desde la nada)239. Dice Laplace: ‘Leibniz vio en su aritmética binaria la imagen de la Creación... Imaginó que la Unidad representa a Dios, y Cero al vacío; que el Ser Supremo obtuvo todo lo existente desde el vacío, similarmente a como la unidad y el cero expresan todos los números en su sistema de numeración... Menciono esto meramente para mostrar como los prejuicios de la infancia pueden obnubilar la visión de hasta los más grandes hombres!...’ ¡Alas! Lo que en su momento fuera alabado como un monumento al monoteísmo, ha terminado en las entrañas de un robot. Puesto que la mayor parte de las máquinas calculadoras de alta velocidad [computadores] operan en base al principio binario.» Pese a las críticas de Laplace, la visión de Leibniz de crear el mundo a partir de 1’s y 0’s se resiste a desaparecer. De hecho, ha comenzado a inspirar a físicos contemporáneos, quienes probablemente ni siquiera han oído hablar de Leibniz.”240 241 ([Cha04], c. III). Se pregunta Von Bertalanffy: ¿Tiene esta antítesis realidad metafísica, o no es sino expresión de hábitos lingüísticos y del modo de acción de nuestro sistema nervioso? 242. Concluye que, efectivamente, las categorías de nuestra experiencia y pensamiento parecen estar determinadas por factores biológicos así como culturales, y que - pese a su progresiva ‘desvinculación humana’, producto de la desantropomorfización de la imagen del mundo promovido por el avance de la ciencia y la tecnología - el conocimiento humano sólo es reflejo de ciertos aspectos de la realidad: tiene sólo verdad relativa, es decir, es válido sólo desde cierto punto de vista suplementado por enunciados antitéticos desde puntos opuestos ([Ber93], pp. 260-261). En esta hipótesis, y en cuanto parte del conocimiento humano, la matemática - y por ende el modelado matemático - está sometida, a priori, a condicionantes lingüísticas y culturales, las que son precedidas por condicionantes sicofísicas, entre las cuales la propia estructura del sistema nervioso central humano probablemente determine la estructura lógica del pensamiento. En el presente documento, la precedente afirmación se debe adoptar como una suerte de hipótesis de trabajo, pero cuya formulación concreta se desconoce. Sin embargo, en virtud de la relativa uniformidad biológica de los seres humanos, las condicionantes sicofísicas se pueden asumir como casi iguales, lo que permite considerar la hipótesis - aunque desconocida en términos concretos - como un ‘factor común’. Más arriesgado es suponer que las condicionantes lingüísticas y culturales son similares, y que por tanto pueden incorporarse a ese ‘factor común’; sólo sería razonable hacerlo para el caso de las modernas culturas ‘occidentales’, dado el origen de las 237 De Heráclito. ¡Nótese la antigüedad! 238 Circa 1700. Nótese que tampoco se trata de una novedad. 239 (Según la fuente citada) en alemán: “Einer hat alles aus nichts gemacht.”, que palabra a palabra en inglés es “One has all from nothing made.”. La traducción directa sería “Uno ha hecho todo de la nada”, pero una interpretación que tome en cuenta una intención teológica la modificaría a “El Uno ha hecho el Todo de la Nada”. 240 Texto traducido del original, en inglés. Ver nota 54, p. 39. 241 Nótese la estructura anidada de las citas, y su indicación mediante los pares de símbolos “ ”, « », y ‘ ’: “Chaitin «Dantzig ‘Leibniz’ ‘Laplace‘ Dantzig» Chaitin”. 242 Ver la sección 2.1.2.2, donde se presenta el problema de la percepción y apercepción, condicionadas respectivamente a la dotación sicofísica, y a la incidencia del lenguaje y la cultura. Ingeniería Electrónica – Universidad Católica del Uruguay 112 - [ 3 ] Modelos ideas del presente documento. Sin embargo, por razones de circunstancia, en este documento no hay más remedio que proceder admitiendo esta suposición; así, sobre la base de este ‘factor común’ sicofísico, lingüístico y cultural, en las siguientes secciones se discuten los restantes aspectos de los modelos matemáticos. [ 3.3.2 ] LA NATURALEZA DEL MÉTODO MATEMÁTICO En los siglos sexto y quinto antes de Cristo, la evolución de las matemáticas griegas permitió el desarrollo de objetos matemáticos, en la acepción moderna del término: las ideas de número, punto, línea recta, etc. se ‘estabilizaron’, y se desprendieron de sus ‘fuentes reales’, las propiedades y relaciones de los objetos cotidianos al ser humano243. Este proceso de idealización culminó en conceptos estables, fijos y autocontenidos (objetos matemáticos) sin los cuales el conocimiento matemático no hubiera avanzado más allá del nivel de un arte244. Los conceptos de número, punto y línea han cambiado muy poco desde entonces. Es precisamente esta estabilización de los conceptos la evidencia de su escisión de los objetos reales que les dieron origen, y que les permiten continuar su existencia independientemente de estos. Sorprendentemente, la postura filosófica de Platón - que concibe esta dualidad del ‘mundo de las ideas’ y el ‘mundo de las cosas’ - las considera causalmente en sentido contrario: el mundo de las ideas de Platón precede al mundo de los objetos cotidianos, el cual no es más que que una implementación imperfecta del primero. Así, Platón trata el producto final de la evolución de los conceptos matemáticos - un sistema estable y autocontenido de objetos idealizados - como un punto de inicio independiente de la evolución del ‘mundo de las cosas’ ([Pod97], s. 1.1). Hoy día, cualquier postura filosófica que trate objetos en el pensamiento humano como un ‘mundo’ específico e independiente, ha de denominarse Platonismo. Para los matemáticos, una actitud Platónica hacia los objetos de su investigación es inevitable: el matemático no investiga las relaciones entre los objetos cotidianos (el ‘mundo real’ de los materialistas) sino su noción (estable) en un ‘mundo ideal’ de números, puntos, líneas, etc.; durante su investigación, ese ‘mundo fantástico’ constituye la realidad ulterior, no habiendo ninguna otra realidad más fundamental detrás de esta. En consecuencia, la verdadera naturaleza del método matemático consiste en la investigación de modelos245 estables y autocontenidos, de los cuales se pueden extraer el mayor número de conclusiones a partir de un mínimo de premisas. ([Pod97], s. 1.2) Así, el modelo matemático de una entidad es, en esencia, un modelo estable que puede ser investigado por un matemático246 en forma independiente a la entidad original. Cualquier refinamiento de este modelo para aproximarlo al ente original requiere la implementación de un nuevo modelo, el cual también debe ser estable para permitir su investigación en términos matemáticos. El refinamiento de un modelo matemático implica la creación de un nuevo modelo matemático, que necesariamente debe ser estable como el primero. La propia estabilidad inherente a todo modelo matemático implica la independencia del original. Así, es posible la existencia de modelos matemáticos inadecuados como modelos de 243 En ejemplo, el concepto de número natural se desarrolló a partir de las manipulaciones con colecciones (finitas) de objetos reales (discretos). 244 Según Podnieks, las matemáticas en el antiguo Oriente quedaron en este estadio; los Griegos fueron quienes avanzaron hasta la idealización. 245 No debe confundirse el empleo del término modelo en la expresión ‘modelo matemático’ (de un proceso natural o un dispositivo técnico) con la acepción de modelo en el área de la Lógica Matemática, que se refiere a conjuntos de fórmulas. 246 No se implica que sólo un matemático pueda investigar el modelo, sino que la investigación debe poder realizarse en términos de los procedimientos que emplearía un matemático: trabajar en el ‘mundo ideal’ del modelo, no en el ‘mundo real’ de la entidad. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 113 entidad ‘real’ alguna, pero cuyo tratamiento matemático es perfectamente factible. Si bien la correspondencia inadecuada entre un modelo y la entidad original constituye un peligro inherente a todo tipo de modelo (ver sección 3.1) el hecho que el modelo matemático esté definido en forma precisa y pueda prescindir del ente original, facilita el hecho que pueda emplearse para experimentación con objeto de investigación: el carácter estable y autocontenido de los modelo matemáticos posibilita estas ‘mutaciones’, las cuales son difíciles - si no imposibles - de lograr con otro tipo de modelos. En particular, esto constituye una de las principales propiedades de los modelos matemáticos, que les permite la implementación computacional, donde las actividades de experimentación se denominan simulaciones (ver sección 3.4). Sin embargo, el carácter estable y autocontenido de los modelos matemáticos es a la vez su fuerza y su debilidad. Su principal potencial es la capacidad y eficiencia para extraer el máximo de conclusiones a partir de mínimas premisas. Pero su fatal debilidad radica en que ningún modelo estable y autocontenido - ninguna teoría, por tanto - es capaz de resolver todos los problemas que surgen en la ciencia, ni siquiera en la propia matemática. Una confirmación de esta hipótesis la constituyen los teoremas de incompletitud de Gödel (sección 3.3.5). Como se menciona al fin de la sección 3.2, la crucial importancia de los resultados de Gödel es que constituyen limitaciones a la matemática axiomática formal. Estas han sido reinterpretadas en términos de incomputabilidad de aserciones matemáticas, y de aleatoriedad en el ‘universo matemático’, en un proceso que abarca prácticamente a todo el siglo XX. A efectos de su cabal comprensión, se propone en primera instancia una revisión cronológica de estos hechos, a lo cual se destinan las siguientes secciones, para recién luego definir los sistemas axiomáticos formales promovidos históricamente por la matemática, y discutir los resultados de Gödel y sus consecuencias. Puede, no obstante, avanzarse directamente a la sección 3.3.4 salteando el interludio que confiere el contexto histórico, sin que ello represente un impedimento insoslayable para la comprensión del resto del capítulo. [ 3.3.3 ] INTERLUDIO HISTÓRICO [ 3.3.3.1 ] PARADOJAS LÓGICAS: LA CRISIS EN LOS FUNDAMENTOS DE LA MATEMÁTICA En los más de dos milenios de desarrollo de la matemática desde los Sumerios, Babilonios y Egipcios hasta nuestros días, la historia registra no una sino varias crisis en la matemática, acaecidas en distintas épocas de la humanidad [Cha00]. Ya en la antigua Grecia, los Pitagóricos enfrentaron una de las primeras crisis conocidas, cuando debieron resignarse ante la conclusión que √2 no es un número racional, es decir, no es un número expresable como cociente de dos números enteros. Para quienes la racionalidad constituía algo de carácter supremo, este hallazgo representó una verdadera crisis, cuya memoria fue perpetuada con la designación de irracional para todos aquellos números que - al igual que √2 o π - no son expresables ‘en forma racional’247. Superada la desesperación Pitagórica, la siguiente crisis es promovida por el desarrollo del cálculo infinitesimal, en virtud de la ‘insensatez’ que suponen los infinitésimos, de concepción denostada por algunos como ‘cuasi teológica’. Aún una nueva controversia surgirá posteriormente, en el seno de la - para ese entonces, establecida geometría, ante la independencia del postulado de las rectas paralelas y la consiguiente gestación de geometrías no Euclidianas. Este acto por demás aberrante, constituye un agravio a la primer teoría axiomática de la matemática, cuya belleza conceptual y utilidad habían sido probadas y reafirmadas en varias circunstancias 248 desde su concepción por Euclides. Y 247 Según Dantzig (citado en [Cha04], c. V) los Pitagóricos les calificaron originalmente como ‘impronunciables’. 248 En particular en el dominio de la física, con el modelo geométrico del tiempo como una recta orientada, por Galileo, y con la concepción geométrica del espacio (tridimensional) de la mecánica de >> p. 114 Ingeniería Electrónica – Universidad Católica del Uruguay 114 - [ 3 ] Modelos culminando con estos dos milenios de sacrificado desarrollo, a poco de iniciado el siglo XX el edificio de las matemáticas se ve violentamente sacudido una vez más, merced a la aparición de contradicciones lógicas en la teoría de conjuntos, cuyo nefasto corolario consiste en la devastadora noción de incompletitud de la obra cúlmine de la matemática de fines del siglo XIX y principios del XX, los sistemas axiomáticos formales. Registrada la conmoción inicial, y lejos de ser superada, la crisis de la ‘incompletitud’ fue de hecho soslayada, continuándose el desarrollo de la matemática en forma tradicional. No obstante, esta crisis permanece latente en forma más tangible, en términos de la incomputabilidad de los números reales, y a lo largo del siglo XX, se profundiza hasta decretarse en forma de aleatoriedad en las mismas raíces de la matemática pura. Por su significación y sus repercusiones - aún en proceso - se detallan los acontecimientos históricos que dan origen esta última crisis registrada, la cual conmueve los propios fundamentos de la teoría matemática. [ 3.3.3.1.1 ] EL INFINITO MATEMÁTICO: LA TEORÍA DE CONJUNTOS INFINITOS DE CANTOR Hasta el siglo XIX, el infinito entre los matemáticos es ‘sólo una forma de hablar’ - no se requiere una noción matemática rigurosa del concepto, en tanto alcanza considerar números ‘lo suficientemente grandes’ para el cálculo de límites, sucesiones y series. Sin embargo, el progresivo empleo de funciones de variable real y compleja, y la emergente teoría de los números reales (Cauchy, Weierstrass, Dedekind) obliga a la consecución de una definición de ‘conjuntos infinitos’ ([JecXX], p. 1). La primer noción de conjunto infinito es dada por Cantor circa 1870, y con ello se inaugura la teoría de conjuntos. Cantor introduce la noción de conjuntos infinitos arbitrarios de números enteros, y la noción de números transfinitos con sus definiciones de números ordinales y cardinales – algo que Poincaré denostó como una absoluta insensatez, una ‘enfermedad’ que esperaba fuese superada con el tiempo. Sin embargo, muchos matemáticos de la época adoptaron con entusiasmo este encare, dando así nacimiento a la topología y la matemática abstracta , y de esta manera, se pasa de la matemática de ‘fórmulas’ del siglo XIX a un nivel de abstracción superior en términos de conjuntos teóricos. Basándose en la definición de conjuntos infinitos de Cantor249, con escasas excepciones se logran reconstruir casi todos los conceptos y argumentos matemáticos existentes a la fecha, en términos de la nueva teoría de conjuntos. Así, la teoría de conjuntos se convierte en un modelo para la reconstrucción de (casi) toda la matemática, adquiriendo por este motivo una importancia superlativa. Y precisamente, en este momento en que es considerada asequible la reconstrucción de la matemática en base a la teoría de conjuntos à la Cantor, se comienzan a detectar antinomias - contradicciones lógicas - en su seno, y así se establecen las primeras condiciones para la crisis del siglo XX en las matemáticas. Sin embargo, no es hasta que Bertrand Russell insiste con su versión de la paradoja de Epiménides que ésta efectivamente se desata. [ 3.3.3.1.2 ] LA PARADOJA DE RUSSELL La paradoja de Russell - la única que lleva su nombre, mas no la única que detectó - es la expresión en términos de la teoría de conjuntos de la llamada Paradoja del Mentiroso, atribuida al cretense Epiménides en el siglo quinto antes de Cristo. Epiménides habría afirmado que “todos los cretenses son mentirosos”; siendo él mismo un cretense, de ser verdad su afirmación entonces se tendría una contradicción; de ser falsa su afirmación, hay al menos un cretense que no es mentiroso, pero dependiendo de si Epiménides se halla o no en tal grupo, no se llega a una contradicción en este caso. Así que del sólo dicho de Epiménides, no siempre se establece una contradicción, sino que - estrictamente - se concluye que hay algún cretense que no es mentiroso. Sin embargo, atribuyéndole a Epiménides el uso de la primera << p. 113 Newton, ambos Euclidianos. 249 Una definición de tipo axiomática, pero con elementos intuitivos (ver sección 3.2.3, p. 108); en este sentido, de carácter similar a la geometría Euclidiana. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 115 persona del singular, y el tiempo verbal ‘presente’, resultaría “En este momento, estoy mintiendo”250, y entonces la contradicción es manifiesta, teniéndose así la efectiva Paradoja del Mentiroso. La Paradoja del Mentiroso, reformulada por Russell en términos de la teoría de conjuntos, consiste en definir “el conjunto R de todos los conjuntos que no son miembros de sí mismos”251, y preguntar por la clasificación de éste conjunto así definido: si R es miembro de sí mismo, entonces no debiera estar en R - se tiene en este caso una contradicción - y si R no es miembro de sí mismo, entonces por definición debería estar incluido en R, lo que lo haría miembro de si mismo - también en este caso se obtiene una contradicción - por lo cual el conjunto R de Russell es efectivamente paradójica. R ={a / a∉a} ; ¿ R∈R ? El elemento esencial que conduce a la contradicción lógica, tanto en la Paradoja del Mentiroso como en la Paradoja de Russell, consiste en la autorreferencia: Si bien la Paradoja del Mentiroso puede considerarse como un mero juego de palabras factible por la imprecisión inherente al lenguaje usual, atinadamente Russell insistió en que este tipo de inconsistencias en el seno de la teoría de conjuntos252 consistía en un serio problema lógico que debía ser resuelto sin dilación, puesto que si se admiten este tipo de contradicciones (es decir, si se permite sean simultáneamente verdaderas la proposición P y su contraria ¬P) entonces es factible validar cualquier proposición Q253: P → P+Q → (P+Q)·¬P → Q. Así, en la lógica ‘clásica’, de una contradicción es posible derivar cualquier proposición [SEP03a]. La lógica, inicialmente promovida por Leibniz a fines del siglo XVII, propone que la matemática - total, o parcialmente - es reducible a la lógica formal. Prima facie aduce que todas las aserciones matemáticas son factibles de traducción a verdades lógicas (es decir, que el vocabulario de la matemática es un subconjunto propio del vocabulario de la lógica) y que, además, es factible reconstruir todas las pruebas matemáticas en términos de pruebas lógicas (es decir, que los teoremas matemáticos constituyen un subconjunto propio de los teoremas de la lógica). A fines del siglo XIX, el hecho que gran parte de las matemáticas podían deducirse de un conjunto relativamente pequeño de nociones primitivas era en general aceptado. Sin 250 Según Podnieks ([Pod97], s. 5.1) esta versión no sería de Epiménides sino de Eubúlides (siglo cuarto AC); no obstante, en la literatura se la nombra siguiendo al primero, razón por la cual se opta por introducir la paradoja del mentiroso asociada a Epiménides. El proceso de desarrollo de la Paradoja del Mentiroso habría culminado en el siglo XIV, cuando Jean Buridan la expresó como “Todas las aserciones en este folio son falsas” (habiendo de hecho una única aserción, la precedente). En términos actuales, sería ‘p: p es falsa’. Es posible construir versiones que eviten la autorreferencia en forma directa, como ‘p1: p2 es falsa; p2: p1 es verdadera’. Asimismo, es posible extender la paradoja a lógicas multivaluadas; por ejemplo, para el caso de tres valores: ‘p: p es falsa, o p no tiene valor lógico’. 251 Esta definición no constituye un dislate: considérese, por ejemplo, (A) un conjunto de seres humanos, y (B) un conjunto de ideas; el primero no es miembro de sí mismo - un conjunto de seres humanos no es un ser humano - mas el segundo sí puede considerarse como miembro de sí mismo - un conjunto de ideas es una idea. Así, el conjunto propuesto por Russell estaría integrado por todos los posibles conjuntos del estilo del conjunto (A) en este ejemplo. Otro ejemplo de un conjunto tipo (B) puede obtenerse, por ejemplo, de considerar al conjunto de lo que no son seres humanos. 252 El propio Cantor estaba al tanto de esta paradoja, en virtud de un resultado de su teoría que establece que para todo conjunto infinito, existe un conjunto más grande, también infinito, que es el conjunto de todos sus subconjuntos. La paradoja se origina (por autorreferencia) si este argumento se aplica al conjunto universal, es decir, al conjunto de todos los conjuntos. 253 Aquí, el símbolo “+” denota la operación lógica ‘o’, el símbolo “· ” denota la operación lógica ‘y’, el símbolo “→” denota la operación ‘implica’ (que devuelve el valor falso sólo cuando en una expresión A → B es A verdadero y B falso). El argumento es considerado en el contexto de la lógica matemática clásica (previa a la lógica de Principia Mathematica de Russell y Whitehead). La demostración en [SEP03a] aduce que el último paso de la cadena se prueba mediante el denominado ‘silogismo de disjunción’. Véase [PodXX], secciones 2.4 y 4.2. Ingeniería Electrónica – Universidad Católica del Uruguay 116 - [ 3 ] Modelos embargo, la idea de Leibniz recién fue desarrollada decisivamente por Frege, quien arribó a las definiciones necesarias para reconstruir la aritmética en términos lógicos circa 1880 [SEP03b]. En este contexto, la Paradoja de Russell también asestó un severo golpe a la extensa obra de Frege, hecho registrado en su segundo volumen, en un Apéndice II que el autor debió agregar prácticamente al momento de la publicación de su trabajo en 1902 254: “Difícilmente nada más desafortunado puede ocurrirle a un escritor científico que el ver sacudidos los cimientos de su obra luego de finalizado el trabajo. Esta es la posición en la que he sido ubicado por una carta del Sr. Bertrand Russell ...”255 ([Pod97], s. 6.1; tomado de Heijenoort, 1967). Luego de veinte años de trabajo, esta fue la última publicación de Frege. No obstante, la Paradoja de Russell no fue un fracaso personal de Frege, sino un fracaso del desarrollo matemático histórico, que evidenciaba la necesidad de postulación de nuevos recursos para el desarrollo de la lógica. En 1903, tanto Whitehead como Russell - habiendo llegado a la misma conclusión, y coincidiendo considerablemente en sus investigaciones - comenzaron a colaborar para la reformulación de la lógica, en base al trabajo de Frege, y en sintonía con la línea de Peano. En casi una década de trabajo, elaboran una obra monumental de tres volúmenes, publicados en 1910, 1912 y 1913, la cual resultó a la postre una de las más importantes del siglo XX: “Principia Mathematica”. Con Principia Mathematica, Whitehead y Russell reconstruyen partes fundamentales de la matemática - incluyendo la aritmética - como un sistema deductivo256, partiendo de un conjunto finito de axiomas y donde cada teorema deriva, lógicamente, de los axiomas y teoremas precedentes siguiendo un conjunto finito de reglas de inferencia [BraXX]. Sin embargo, el objetivo principal de “Principia Mathematica” suscitó varias controversias, fundamentalmente en virtud de ciertas suposiciones que Russell y Whitehead debieron adoptar para realizar su trabajo. Particularmente, el axioma del infinito fue considerado de carácter más empírico que lógico, y el axioma de reducibilidad - incorporado para evitar paradojas como la de Russell demasiado ad hoc. En consecuencia, la cuestión de si la matemática podría ser reducida a la lógica, o si sólo podría ser reducida a la teoría de conjuntos, permaneció abierta. Sin embargo, “Principia Mathematica” - con su notación sensiblemente superior a la de Frege, y por tanto capaz de conferir adecuadamente el poder expresivo de la lógica de predicados logró exhibir la potencialidad de la idea de los sistemas deductivos formales, sentando las bases de lo que sería la meta-lógica257. Mostró, además, las relaciones entre lógica, metafísica, y epistemología, con lo cual introdujo un amplio espectro de nociones filosóficas. Y así también preparó la escena para el descubrimiento de los resultados meta-teóricos de Gödel, algunos años después258 [SEP03b]. [ 3.3.3.2 ] ESTRATEGIAS PARA LA RESOLUCIÓN DE LA CRISIS EN LA LÓGICA La crisis detectada por Russell en los fundamentos de la lógica se propaga a los fundamentos de la matemática, que para entonces se hallaba reconstruida sobre la lógica, vía la teoría de conjuntos. Así, el problema a resolver es la inconsistencia de la teoría de conjuntos de Cantor. 254 Nótese la fecha: aunque cercana, es posterior a Cantor. 255 Texto traducido del original, en inglés. Ver nota 54, p. 39. 256 El concepto de sistema deductivo se precisa en la sección 3.3.4. 257 En su tesis doctoral, Post demostró la completitud y consistencia del cálculo proposicional descrito en “Principia Mathematica”, mediante la introducción del método de ‘tablas de verdad’ que - originalmente usaba dos valores, ‘verdadero’ y ‘falso’. 258 Circa 1920, Post llegó a resultados similares a que de Gödel, Church y Turing arribarían más adelante, pero no los publicó por considerar que requerían un análisis más completo. ([PodXX], s. 4.2, tomado de “Mac Tutor History of Mathematics archive” URL: http://www-history.mcs.standrews.ac.uk/history/). Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 117 Al respecto de las inconsistencias en su teoría, el propio Cantor había propuesto como solución el restringir los axiomas a aquellas instancias que no produjesen contradicciones. Sin embargo, Zermelo mejora esta idea, proponiendo el empleo de sólo aquellos axiomas necesarios para la reconstrucción de los conceptos matemáticos usuales259. En otras palabras, Cantor propone no usar aquellos conceptos que dan lugar a contradicciones, mientras que Zermelo propone reconstruir sólo lo útil de la teoría matemática ([Pod97], s. 2.3). La idea de Zermelo prospera, y para 1920 quedaría establecido el sistema de axiomas de ZermeloFraenkel para la teoría de conjuntos, aceptado como la fundación lógica de las matemáticas 260 ([JecXX], p. 3). El sistema axiomático de Zermelo-Fraenkel, a diferencia del Cantoriano, es consistente261. La mayoría de sus axiomas son esencialmente principios de construcción que formalizan la operativa con conjuntos. Sin embargo, dos de sus axiomas - el axioma de infinitud, y el axioma de elección - son una excepción. El primero postula la existencia de conjuntos infinitos - equivalentemente, el conjunto N de los números naturales - y es la esencia de la teoría de conjuntos262. El segundo, de carácter altamente no constructivo263, postula la existencia de ‘funciones de elección’ sin especificar su descripción. Sin embargo, la proposición de otros axiomas - el axioma de determinismo, y el axioma de constructibilidad - causan conflictos al ser aplicados en lugar del axioma de elección, puesto que con cada uno se da origen a una nueva teoría de conjuntos, consistente, pero incompatible con las restantes264. Así, la idea de corte Platonista de un ‘mundo ideal de los conjuntos’ no sólo es privada de la unicidad, sino que sus diferentes manifestaciones ni siquiera resultan equivalentes. Se tiene entonces que, aunque consistente, el sistema de axiomas ZF no parece alcanzar como fundación única para la matemática. En este contexto, la reacción ante la crisis iniciada por las contradicciones lógicas en la teoría de conjuntos se manifestó siguiendo dos filosofías diferentes: el constructivismo de Brouwer, y la formalización total de Hilbert. [ 3.3.3.2.1 ] CONSTRUCTIVISMO O INTUICIONISMO Poincaré y Kroneker, entre otros, ya habían expresado su desaprobación a los métodos ‘idealistas’ en la matemática, pero es recién con la tesis doctoral de Brouwer en 1907 que la matemática ‘constructiva’ se emprende sistemáticamente. 259 Nótese el problema de la reconstrucción de un modelo en términos de otro (sección 3.2.3, p. 109). Igualmente, la idea de Zermelo adolece del inconveniente que representa la posible existencia de conceptos aún no descubiertos en las formulaciones matemáticas previas a la teoría de conjuntos. De manifestarse a posteriori ¿serán también pasibles de reconstrucción en el nuevo modelo? De hecho, la posterior formalización de Zermelo - Fraenkel, amén de distinta forma, difiere de la teoría de Cantor en algunos contenidos ([Pod97], s. 1.3). 260 Es un conjunto de axiomas (postulados) y esquemas de axiomas (‘formatos’ para postulados; comprenden a conjuntos de axiomas) que determinan el uso de conjuntos en las matemáticas. 261 Al menos, hasta la fecha de redacción de este documento. 262 Si se reemplaza este axioma por su negación, se obtiene una teoría equivalente a la a la aritmética de Peano, la teoría axiomática numérica elemental. 263 La noción de ‘constructivo’ en matemáticas se confiere en la sección 3.3.3.2.1. 264 Posteriormente, se demuestra (Gödel, Cohen) que estos axiomas son independientes del resto de los axiomas de Zermelo - Fraenkel, con lo cual se justifica el origen de diferentes teorías de conjuntos, en forma similar a como la independencia del postulado de las paralelas - independiente a los restantes postulados Euclidianos - da origen a geometrías no Euclidianas. De aquí la diferenciación que se hace entre ZF y ZFC (este último por Zermelo - Fraenkel más el axioma de elección, ‘Axiom of Choice’ en inglés). Ingeniería Electrónica – Universidad Católica del Uruguay 118 - [ 3 ] Modelos De acuerdo a la filosofía de Brouwer, denominada Intuicionismo, la matemática es una creación libre de la mente humana, y por tanto, un objeto matemático existe solamente si puede ser construido mentalmente265. Prima facie, Brouwer aduce que las antinomias epistemológicas detectadas por Russell en la teoría de conjuntos se deben al hecho que la matemática precede a la lógica. Propone que - al revés de lo supuesto hasta la fecha, desde Leibniz a Frege - la lógica surgió, por abstracción, de las matemáticas de los conjuntos finitos y sus subconjuntos propios. Así, según Brouwer, el error consistió en aplicar la lógica a conjuntos infinitos olvidando su origen matemático y finito, no pareciéndole entonces sorprendente el surgimiento de las paradojas, sino su demora en aparecer. La matemática constructiva se diferencia de la matemática clásica (tradicional) por su estricta interpretación del cuantificador ‘existe’ en la forma ‘se puede construir’. Para trabajar en forma ‘constructiva’ se deben reinterpretar el cuantificador de existencia y todos los otros cuantificadores y conectores lógicos, como instrucciones para construir la prueba de la proposición lógica que los emplea. En particular, las demostraciones por reducción al absurdo (‘reductio ad absurdum’) son inadmisibles desde el punto de vista constructivista266 ([Cha99], c. 1). El problema radica en el Principio del Tercero Excluido267 de la lógica clásica - que establece que cualquier proposición matemática es ‘verdadera’, o bien lo es su contraria, no admitiéndose una tercera opción - el cual permite demostraciones indirectas, no constructivas, como la ‘reducción al absurdo’268. En esencia, la lógica intuicionista se obtiene de la clásica eliminando este axioma ([PodXX], s. 1.3). El problema con el Principio del Tercero Excluido (el axioma ‘P o ¬P’ de la lógica clásica) tiene dos facetas. Por ejemplo, si se produce alguna contradicción por suponer que determinada propiedad P vale para todas las entidades de un cierto conjunto, el Principio del Tercero Excluido permite concluir que entonces existe al menos una entidad del conjunto que no posee la propiedad P, sin necesidad de dar instrucciones para construir la prueba de esa aserción. Por otro lado, una proposición como ‘(0 ÷ 0 = 1) o ¬(0 ÷ 0 = 1)’ es un teorema en la teoría clásica (es verdadera como directa aplicación del Principio del Tercero Excluido) pese a que por separado ninguna de ‘(0 ÷ 0 = 1)’ y ‘¬(0 ÷ 0 = 1)’ son teoremas ni tampoco anti-teoremas en la teoría clásica (son construcciones carentes de sentido en el sistema aritmético, donde la división por 0 no está definida)269. 265 En principio, no interesa si la construcción de un objeto matemático es imposible desde el punto de vista práctico; no importa, por ejemplo, si el cálculo de un ente matemático pudiese demorar un tiempo inaceptablemente largo, sino que sólo interesa que en teoría el cálculo se pueda efectuar, es decir, si se explicita la manera de efectuar el cálculo. 266 Ver nota 268, p. 118. 267 ‘The Law of the Excluded Middle’ en la literatura angloparlante; ‘Tertium non datur’ en latín. 268 Las demostraciones por reducción al absurdo se basan en el principio del tercero excluido: si suponer que P es ‘verdadero’ permite deducir alguna proposición absurda (una contradicción) entonces la consistencia del sistema obliga a admitir que P no es ‘verdadero’ como se supuso (es decir, debe concluirse que la suposición P = ‘verdadero’ es incorrecta) - pero, en principio, esto no implica que el opuesto, ¬P, sea ‘verdadero’; que automáticamente se asuma ¬P = ‘verdadero’ es resultado de la aplicación del principio del tercero excluido. Cabe notar que muchos de los resultados aceptados de la matemática clásica se han obtenido en base a la lógica bi - valuada, por lo cual no puede asumirse la existencia de más de dos valores de verdad para ciertos casos de algún dominio, y proceder al empleo de la forma convencional de la matemática en el resto de los casos del dominio, sin verificar la compatibilidad de este proceder. En particular, de acuerdo al argumento que da inicio a esta nota, los resultados de la matemática clásica obtenidos por el método de reducción al absurdo fallan cuando existen más opciones que ‘verdadero’ y ‘falso’ (lógicas multivaluadas). Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 119 Como concepto, esto fue introducido por Brouwer en 1908 270, y como sistema formal, por Heyting en 1930 271, en la usual forma de axiomas para la interpretación ‘constructiva’ de la lógica, que por ende se designan Axiomas de la Lógica Intuitiva. Esta interpretación de la lógica habilita a las matemáticas computables. La idea de Brouwer fue reformulada por Markov, en lo que se ha denominado matemática constructiva recursiva, que - en esencia - es una teoría de funciones recursivas con lógica intuicionista. Más adelante, Bishop logra una nueva reformulación de forma tal que puede ser interpretada en términos de las anteriores. A pesar de las críticas, puede verse que quienes practican el constructivismo de Bishop están, de hecho, haciendo matemáticas con lógica intuicionista. Por lo que, aparentemente, la matemática algorítmica es equivalente a la matemática que emplea exclusivamente la lógica intuicionista. La lógica intuicionista habilita a las matemáticas computables o algorítmicas. Los matemáticos constructivistas pueden trabajar con la seguridad que les brinda la lógica intuicionista, la cual se encarga automáticamente de cuidar las decisiones inadmisibles desde un punto de vista computacional272 [SEP03c]. Sin embargo, no fue la propuesta de Brouwer la adoptada por los matemáticos de la época, quienes en cambio adhirieron a la propuesta de Hilbert, que seguía la línea formalista tradicional en matemáticas, iniciada ya por Euclides, y continuada por Leibniz, Boole, Frege y Peano en épocas más cercanas. [ 3.3.3.2.2 ] FORMALISMO Un elemento esencial en la filosofía formalista de Hilbert estaba presente en su famosa lectura de 1900, donde formuló una lista de 23 problemas como desafíos para el siglo XX que recién comenzaba. La sexta pregunta estaba relacionada con la axiomatización de la física, y uno de los puntos en esta cuestión se refería a la teoría de las probabilidades, porque para Hilbert, la probabilidad era una noción proveniente de la física, una noción que tenía que ver con el mundo real. Subyacente - a tal punto que no fue formulado entre las 23 preguntas de su lectura de 1900, aunque luego sí fuera planteado como problema a estudiar - reside la creencia que toda proposición matemática es decidible: la matemática es ‘determinista’, no se trata de cuestiones aleatorias a describir en términos probabilísticos. Su idea, de carácter evidentemente Platónica, era que para cada proposición matemática correctamente planteada, hay una única respuesta - la proposición se puede probar, o se puede refutar (probar su contraria) - y el hecho que en ciertos casos no se conozca una respuesta, se debe a nuestras limitaciones o nuestro trabajo aún insuficiente en la materia, y no a que esta respuesta no exista en el ‘mundo ideal’ de las matemáticas [Cha89]. Respecto al constructivismo impulsado inicialmente por Brouwer, Hilbert consideraba que la lógica intuicionista en que se basaba imponía restricciones demasiado severas a la matemática como para permitirle un desarrollo fructífero. Por el contrario, su propuesta acorde a la línea filosófica Platónica promovió una extensión del método tradicional. Ante la aparente deficiencia del sistema axiomático de ZF como fundamento para la matemática, la idea de Hilbert es la búsqueda y consecución de un sistema 269 Nótese aquí la ‘validez estructural’ que confiere el axioma ‘P o ¬P’ de la lógica clásica, pese a la ‘invalidez del contenido’ tanto de ‘P’ como de ‘¬P’. Se infiere, ya desde aquí, la crucial importancia de diferenciar entre sintaxis y semántica en relación a la validez de un resultado matemático. 270 L.E.J. Brouwer, “De onbetrouwbaarheid der logische principes”, Tijdschrift voor Wijsbegeerte, 2 (1908) pp.152-158; in Dutch - “The unreliability of the logical principles”. (Tomado de [PodXX], s. 1.3). 271 A. Heyting, “Die formalen Regeln der intuitionistischen Mathematik” Sitzungsberichte der Preussischen Akademie der Wissenschaften, Physikalisch - mathematische Klasse, 1930, pp.42-56. (Tomado de [PodXX], s. 1.3). 272 Computacional, en el sentido de calculable (nótese que el origen del computador electrónico, tal como se lo conoce a la fecha, es posterior - aunque su concepción intelectual no fue tan posterior; véase la sección 3.3.6.1). Ingeniería Electrónica – Universidad Católica del Uruguay 120 - [ 3 ] Modelos axiomático completo y consistente para toda la matemática, donde toda proposición sea formalmente decidible, es decir, un sistema axiomático tal que permita determinar sin ambigüedad la prueba o refutación de cada teorema derivado de los axiomas ([JecXX], p. 5). • consistente: implica el uso de la proposición ‘P o ¬P’ en el sentido de la lógica clásica: no pueden ser ambos P y ¬P verdaderos simultáneamente, pero se aceptan demostraciones no constructivistas273 274. • completo: significa que P o ¬P es siempre decidible, es decir, siempre se puede demostrar P, o ¬P, no cabiendo la posibilidad de indecisión o indeterminación. • formal: existe un procedimiento de decisión para demostrar bien P, o bien ¬P, cuestión siempre posible en virtud de la completitud del sistema. La idea de Hilbert es una extensión de la tradición formalista de la matemática en dos aspectos. En primer lugar, exige la eliminación de la ambigüedad que supone el lenguaje natural, mediante el empleo de lenguajes artificiales, absolutamente precisos, para cuya formulación se apoya en la maquinaria sintáctica de la lógica simbólica de Frege, Russell y Whitehead. De esta forma, el propio conjunto de axiomas finitos sobre los que ha de fundarse la matemática, y la expresión de todo teorema derivado de los axiomas, deben ser expresados en este lenguaje artificial e inambiguo. En segundo lugar, exige el establecimiento de reglas de deducción absolutamente claras y precisas, de forma tal que todo teorema pueda ser verificado mediante un procedimiento ‘mecánico’, en el sentido de ‘procedimiento de cálculo rutinario, preestablecido’. En otras palabras, se parte de los axiomas - expresados en lenguaje artificial - se aplican, una a una, las reglas de inferencia - como se procede en la lógica simbólica - y así, mecánicamente 275, se deducen todos los teoremas a partir de los axiomas, los que quedan expresados en una gramática perfecta. “Estos ingredientes se encuentran ya en Euclides, excepto que algunos de sus axiomas eran tácitos, algunos pasos en sus demostraciones eran omitidos, y él usaba el Griego en lugar de lógica simbólica, en otras palabras, un lenguaje humano, no un lenguaje de máquina.” ([Cha04], cap. II). El formalismo propuesto por Hilbert consiste en eliminar de la matemática el razonamiento intuitivo y las ambigüedades del lenguaje natural u ordinario, mediante la utilización de un lenguaje artificial preciso, reglas de deducción precisas, y un procedimiento ‘mecánico’ para el chequeo de los teoremas, que permita decidir si estos efectivamente derivan de los axiomas fundacionales - que son expresados en lenguaje artificial, preciso - siguiendo las reglas de inferencia preestablecidas. Propugna el empleo de la lógica simbólica elaborada por Frege, Russell y Whitehead, para crear el lenguaje artificial para el razonamiento matemático, es decir, la deducción. Para Hilbert, la factibilidad de su propuesta se debe a que los teoremas son cuestiones puramente sintácticas, estructurales, e independientes de la semántica. Así, la designación de formal enfatiza que ningún paso del razonamiento puede efectuarse sin referirse a la lista de axiomas y reglas de inferencia establecidas para la teoría276. 273 Estrictamente la consistencia no garantiza que un sistema sea correcto, sino solamente que no alberga ni genera contradicciones. Sin embargo, de los argumentos de Hilbert en favor de su propuesta, algunos autores infieren que su intención persigue la corrección del sistema. 274 Note que el interés en la consistencia del sistema no solamente radica en que las contradicciones son indeseables: un sistema inconsistente resulta completamente inútil. Si un sistema es inconsistente, a partir de una única contradicción, la lógica clásica permite validar cualquier proposición, o equivalentemente, deducir que todo es falso (véanse las referencias citadas en la nota 253). 275 Implica que cada paso en la deducción debe honrar explícitamente las reglas de inferencia; no puede efectuarse ningún paso del razonamiento, por más pequeño que sea, sin ceñirse estrictamente a por lo menos una regla de inferencia. Este punto es perfectamente comprendido por Turing, quien propone su autómata para tales efectos (sección 3.3.6). Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 121 La pretensión de Hilbert de conseguir un sistema axiomático para toda la matemática presenta serias dificultades de tipo práctico. Prima facie, el conjunto de todos los teoremas deducidos de un conjunto de axiomas finito es, potencialmente, infinito. Por ende, la consistencia de un sistema axiomático no puede ser estudiada en forma empírica, sino sólo por medios teóricos, es decir, se requiere una teoría para validar o falsificar la consistencia de un sistema axiomático. En consecuencia, el alcance de la propuesta de Hilbert exacerba el problema: ¿que tipo de teoría se requiere para probar la consistencia del sistema axiomático sobre el que se funda la matemática entera? Una demostración en base a métodos poco confiables carecería de valor probatorio; claramente los métodos de razonamiento a emplearse para la demostración de la consistencia de un sistema axiomático deben ser más confiables que los métodos de razonamiento por los cuales se derivan los teoremas desde el sistema axiomático en cuestión277. Sin embargo, si la teoría en cuestión es la matemática, no se dispone de mejor herramienta que la propia matemática para este propósito. Entonces, ¿como probar la consistencia de la teoría matemática entera, en base a métodos de la propia matemática? La única solución factible a estos inconvenientes es emplear, exclusivamente, los métodos confiables de la propia teoría matemática. El programa de formalización total de Hilbert presenta varios inconvenientes. En virtud del conjunto potencialmente infinito de teoremas derivables de un sistema finito de axiomas, la consistencia de este último no puede ser validada más que en forma teórica. La teoría a emplearse para validar la consistencia del sistema axiomático del que deriva la matemática entera, requeriría métodos más confiables que los propios métodos matemáticos. No disponiéndose en matemáticas más que de la propia matemática como teoría ‘más confiable’, la consistencia del sistema axiomático sobre el que se funda la matemática requiere el empleo de los propios métodos matemáticos, de los que se deberían, entonces, emplear solamente aquellos ‘absolutamente confiables’. En la época de Hilbert, se consideraba que el razonamiento aritmético (discreto) - que sólo emplea números naturales u objetos ‘discretos’ similares - era la rama de máxima ‘confiabilidad’ en matemáticas. Naturalmente, la intención de Hilbert era la validación del sistema axiomático fundacional de la matemática usando un subconjunto del razonamiento aritmético. Necesariamente, debía incluirse el Principio de Inducción, en virtud de la cantidad infinita de posibles teoremas derivables del sistema axiomático. Sin embargo, esto fue objetado en 1908 por Poincaré, quien consideraba inviable probar la consistencia de las matemáticas mediante la principal herramienta de la aritmética - el Principio de Inducción - puesto que ello daría lugar a un argumento ‘circular’: la consistencia de las matemáticas implicaría la de la aritmética, y con ello, la consistencia del propio principio de inducción278. No obstante las dificultades de índole práctica, el trabajo de Frege, Russell y Hilbert muestra que la axiomatización de una teoría matemática - la completa eliminación de la intuición, su reducción a un conjunto de axiomas y reglas de inferencia - es factible, inclusive para las teorías más complicadas ([Pod97], s. 1.4; [PodXX], s. 1.1). El hecho interesante es que si se establece un sistema de axiomas, a la vez consistente y completo (ver p. 120) entonces siempre se puede establecer un procedimiento de decisión279 [Cha89]. Este es el caso de la aritmética de Presburger 280, 276 Se sugiere revisar en este punto la sección 3.2.2, teniendo presente que el formalismo à la Hilbert consiste en contar con un mecanismo de chequeo automático de teoremas, la consecución de los cuales se debe a un proceso estrictamente deductivo a partir de los axiomas. 277 Nótese que esto sugiere, en cierta manera, el empleo de métodos genéticos (sección 3.2.3). 278 El argumento circular radica en la propia idea de Hilbert, de probar la consistencia de la matemática por medio de la propia matemática (parte de ella, la aritmética de Peano). El énfasis de Poincaré en el Principio de Inducción radica en que este es un componente fundamental de la aritmética de Peano, y es una suposición muy discutible. 279 Ver sección 3.3.4. Ingeniería Electrónica – Universidad Católica del Uruguay 122 - [ 3 ] Modelos hecho que profundizó en Hilbert la confianza en la factibilidad de su ambicioso plan – ambición que Gödel, en 1931, demostraría ser inviable ([Pod97], s. 3.1). La intención de Hilbert era validar la consistencia del sistema axiomático para la matemática entera mediante la ‘absolutamente confiable’ aritmética elemental. Esta idea fue objetada por Poincaré por considerarla un argumento circular - se usaría fundamentalmente el Principio de Inducción281 para la validación de la consistencia de la matemática, lo que implica la validez de la aritmética (y así del propio Principio de Inducción). La relevancia de esta intuición no fue captada, sin embargo, hasta 1930, cuando Gödel anunció que Poincaré estaba en lo cierto: no es factible una prueba fehaciente de la consistencia de partes esenciales de la matemática ([Pod97], s. 1.5) (ver sección 3.3.5). Cabe notar que la propuesta de Hilbert, al prescribir la renuncia del significado, permite contemplar la matemática como un mero juego de símbolos sobre un papel 282, del cual se pueden deducir teoremas a partir de los axiomas mediante manipulación de símbolos ([Cha02a], p. 166). De aquí la noción cotidiana de la matemática - “El sistema simbólico de las matemáticas está encarnado en una enorme máquina de pensar que, cuando se le suministra un enunciado, produce una solución sobre la base de un proceso fijo de concatenación de símbolos que hubiera sido difícil de prever.” ([Ber93], p. 269). Esta reducción del razonamiento matemático a un cálculo despojado de significado, convierte a la matemática en un objeto combinatorio, una serie de reglas para jugar con combinaciones de símbolos, y en consecuencia admite el uso de métodos matemáticos para estudiar la propia matemática ([Cha99], c. 1). Así, Hilbert inaugura la meta-matemática, o el estudio de lo que la matemática es capaz de hacer y conseguir: el estudio de las limitaciones de la matemática. La meta-matemática, promovida fundamentalmente por Hilbert como manera de confirmar la potencialidad de la matemática, como una manera de perfeccionar el método axiomático, como una forma de eliminar toda duda, acabó siendo en ese sentido, un fiasco: precisamente en el contexto de la meta-matemática es que Gödel, en 1931, prueba que la idea de formalización completa de Hilbert es imposible de alcanzar 283. Prima facie, este auto examen promovido por Hilbert sólo sirvió para profundizar la crisis a la que intentaba resolver. Sin embargo, dio un fruto inesperado, cuyo indiscutible éxito se puede apreciar actualmente como un producto tecnológico de extrema utilidad: el computador. “A fin de cuentas resultó que no es posible formalizar el razonamiento matemático. por lo que en ese sentido su idea fue un fracaso tremendo. Sin embargo, desde otra perspectiva, la idea de Hilbert fue un éxito, porque el formalismo ha sido uno de los más grandes períodos de bonanza del siglo XX - no para razonamientos matemáticos o deducción, sino para programación, para cálculo, para cómputo. Este es un fragmento olvidado de la historia intelectual.”284 ([Cha02a], p. 164). Adicionalmente, llevó al descubrimiento de nuevos conceptos fundamentales - completitud e incompletitud, computabilidad e incomputabilidad, complejidad y aleatoriedad - que en la 280 Mojzesz Presburger, 1929. La aritmética de Presburger es la aritmética de Peano sin la operación de multiplicación: {N, +}. 281 El empleo de la aritmética lo implica; ver nota 278, p. 121. 282 Hoy día, esto puede asimilarse como un juego con cadenas de caracteres en un computador. 283 Cabe notar que pese a la controversia en torno al Principio del Tercero Excluido - rechazado por los constructivistas - este principio no tiene relación alguna con la viabilidad del programa de Hilbert: los mismos problemas lógicos surgen con o sin el Principio del Tercero Excluido. (Tomado de http://people.cs.uchicago.edu/~odonnell/OData/Courses/22C:096/Lecture_notes/Hilbert_program.html). De hecho, el trabajo de Gödel es estrictamente constructivista. 284 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 123 segunda mitad del siglo XX se han desarrollado como nuevos y fértiles campos de la matemática ([Cha99], c. 1). Conferido el contexto histórico, se da por finalizado el interludio de esta sección 3.3.3, y se procede a definir en forma concisa el concepto de sistema axiomático formal à la Hilbert (sección 3.3.4) sobre el cual se edifica la matemática del siglo XX. La modestia impuesta por Gödel a esta filosofía se discute en la sección 3.3.5, y la extensión de sus resultados de incompletitud en términos de incomputabilidad (Turing) y aleatoriedad (Chaitin) se efectúa en la sección 3.3.6. [ 3.3.4 ] SISTEMAS AXIOMÁTICOS FORMALES En la concepción de Podnieks [Pod97] (sección 3.3.2) la naturaleza del método matemático consiste en la investigación de modelos estables y autocontenidos, de los cuales se pueden extraer el máximo de conclusiones a partir de las mínimas premisas. La característica de estabilidad de los modelos matemáticos a la vez requiere y permite que el refinamiento de un modelo matemático consista en la creación de un nuevo modelo, estable como el que lo origina. Estos modelos a los que se refiere Podnieks se corresponden con sistemas axiomáticos formales à la Hilbert, cuyo origen y motivaciones históricas se confieren en la precedente sección 3.3.3. Es posible, actualmente, definir los sistemas axiomáticos formales à la Hilbert en términos no disponibles a la fecha de su concepción: computador y algoritmo. Y es posible hacerlo puesto que estos conceptos son consecuencias prácticas del formalismo à la Hilbert, como se discute en la sección 3.3.6.1. “Puede parecer sorprendente para un matemático, pero la definición general más exacta de ‘formal’ no menciona ni axiomas, ni reglas de inferencia. Puede ser mejor formulada en términos de la teoría de algoritmos (o funciones recursivas): una teoría T se denomina teoría formal, si - y sólo si - se dispone de un algoritmo (es decir, un procedimiento computacional aplicable mecánicamente) para chequear la corrección del razonamiento vía los principios de T. Esto significa que cuando alguien va a publicar un ‘texto matemático’ llamándolo ‘la prueba de un teorema de T’, debemos poder chequear mecánicamente si el texto en cuestión es realmente una prueba de acuerdo a los estándares de razonamiento aceptados en T. Así, en las teorías formales, los estándares de razonamiento deben ser definidos en forma lo suficientemente precisa como para permitir el chequeo de pruebas mediante un programa computacional. (Nótese que estamos discutiendo aquí el chequeo de teoremas consumados, y no el problema de si una proposición es decidible o no).”285 286 ([Pod97], s. 1.4; [PodXX], s. 1.1). La relación entre los sistemas formales à la Hilbert y los procedimientos computacionales radica en la generación de estructuras simbólicas mediante reglas formales (sintácticas) es decir, independientes del significado (semántica) de los componentes287. Una definición de sistemas formales en estos términos se presenta en [HS95]: • Lenguaje formal: conjunto de expresiones construidas a partir de un conjunto finito de símbolos abstractos (alfabeto) cuya descripción es efectuada por una gramática. • Gramática formal: describe una forma de generar las palabras del lenguaje, a partir del alfabeto, por medio de reglas formales o producciones u → v, cuyo significado es la sustitución 285 Texto traducido del original, en inglés. Ver nota 54, p. 39. 286 La aclaración de Podnieks, que aduce no estar discutiendo el problema de si una proposición es decidible o no, está motivada por los teoremas de indecisión e incompletitud de Gödel, que se discuten en la sección 3.3.5. 287 Revísese la sección 3.2, y considérense los argumentos acerca de modelos matemáticos informales y formales en función de la presente definición de sistema formal (matemático). Ingeniería Electrónica – Universidad Católica del Uruguay 124 - [ 3 ] Modelos aub → avb288 289. Adicionalmente a los símbolos del alfabeto, las reglas pueden incorporar variables 290. • Sistema formal: lenguaje formal dotado de una operación de consecuencia, que en su forma más general es una transformación entre expresiones (subconjuntos) del lenguaje. Si la consecuencia de un conjunto se puede obtener de un subconjunto finito del propio conjunto, entonces el sistema formal se designa sistema deductivo. • Sistema deductivo: sistema formal donde las transformaciones entre subconjuntos del lenguaje se conciben como relaciones entre algunos subconjuntos designados premisas, y un subconjunto denominado conclusión. Si se carece de premisas, el subconjunto conclusión se designa axioma. Estas relaciones son llamadas reglas de inferencia, y al igual que la operación de consecuencia, definen un conjunto de reglas respecto de las cuales el sistema deductivo puede ser considerado un sistema basado en reglas 291. • Cálculo lógico: sistema deductivo para el cual se especifican los medios por los cuales se construyen las expresiones (como conectores lógicos, cuantificadores) y las reglas mediante las cuales se generan las inferencias. En un cálculo lógico, las expresiones se designan usualmente como fórmulas. Las reglas de inferencia permiten transformar fórmulas en otras fórmulas. • Sistema formal tipo Frege-Hilbert: variedad de cálculo lógico para los cuales se especifica un conjunto de fórmulas iniciales (axiomas) y el conjunto de reglas de inferencia. Usualmente la lista de axiomas es relativamente extensa, y los principios de inferencia son sólo unos pocos292. La relación de consecuencia dada por el operador de consecuencia se denomina ‘derivación a partir de las suposiciones’. Así, lo que en este documento se ha denominado simplemente como “sistema formal”, es un Sistema Formal tipo Frege-Hilbert en base a la definición dada en [HS95], que usualmente es referido como Sistema Axiomático Formal 293. En esencia, un Sistema Axiomático Formal es una variedad de Cálculo Lógico dotado de fórmulas iniciales y reglas de inferencia - un lenguaje simbólico, cuyas expresiones son construidas a partir de un conjunto de símbolos y expresiones iniciales mediante reglas de manipulación de símbolos, y reglas de inferencia dadas por operaciones de transformación entre subconjuntos de expresiones. Para demostrar que en un sistema deductivo cada teorema deriva de los axiomas siguiendo las reglas de inferencia, se necesitan considerar las fórmulas con las que se representan los axiomas y teoremas del sistema, y representar las reglas de inferencia por reglas ‘mecánicas’, de acuerdo a las que - a partir de una o más fórmulas - se obtiene otra fórmula por manipulación de 288 Los caracteres u y v se resaltan en negrillas sólo a efectos de facilitar la comprensión de la sustitución que indica la producción; la tipografía no tiene ninguna connotación sintáctica. (El conjunto {a,b,u,v} está incluido en el alfabeto). 289 El cómputo de una máquina de Turing (ver sección 3.3.6.1) puede ser descrito mediante una gramática formal; recíprocamente, la generación de palabras en una gramática formal puede ser simulada por una máquina de Turing. 290 Las llamadas gramáticas libres de contexto (‘context - free’, en inglés) son aquellas donde las reglas (producciones) tienen siempre una única variable del lado izquierdo. Son empleadas en la generación de lenguajes artificiales, especialmente los lenguajes de programación. 291 Los sistemas basados en reglas, al igual que las gramáticas, son tan potentes como una máquina de Turing, y por tanto, pueden emplearse para expresar cualquier algoritmo. 292 En la lógica proposicional usual, sólo ‘modus ponens’: P → Q, P |- Q. (El símbolo ‘|-’ significa prueba, demuestra; el símbolo ‘→’ es de implicancia. El esquema axiomático ‘Modus ponens’ establece entonces que la implicancia permite validar; una cadena de implicancias P → P1 → ... → PN → Q puede expresarse como P |- Q). 293 FAS, en la literatura de habla inglesa; acrónimo de ‘Formal Axiomatic System’. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 125 símbolos. Así, esta representación de un sistema deductivo consistirá de una secuencia de fórmulas (un cálculo lógico) en el cual las fórmulas iniciales expresan a los axiomas del sistema deductivo, y cada una de las otras fórmulas - que expresan a los teoremas - se obtienen de las iniciales por una secuencia de manipulaciones simbólicas. Una secuencia (válida) de manipulaciones simbólicas en un cálculo lógico se corresponde con, y representa a, la concatenación de deducciones en el sistema deductivo correspondiente. La correspondencia entre un cálculo lógico y un sistema deductivo puede verse al revés, y es de la forma en que Hilbert originó la meta-matemática. Hilbert construye un cálculo lógico independientemente de cualquier interpretación, como una secuencia de fórmulas que comienza con pocas fórmulas iniciales, y en donde toda otra fórmula se obtiene de las precedentes mediante manipulaciones simbólicas. El cálculo puede ser interpretado como representación de un sistema deductivo, cuando resulta posible interpretar a las fórmulas iniciales como expresión de los axiomas del sistema deductivo, y cuando resulta posible interpretar a las reglas de manipulación simbólica como las reglas lógicas de inferencia del sistema deductivo. De ser posibles las precedentes interpretaciones, la prueba de que una fórmula (cualquiera que no sea de las iniciales) es producida en la secuencia de fórmulas del cálculo, otorga una prueba de que la proposición a la que representa (la proposición que es la interpretación de esa fórmula) es un teorema del sistema deductivo, es decir, se puede deducir de los axiomas del sistema mediante sus reglas de inferencia. Un Sistema Axiomático Formal à la Hilbert puede considerarse como el conjunto {Alfabeto, Gramática, Axiomas, Reglas de Inferencia, Algoritmo de Validación}, el cual constituye un conjunto computacionalmente enumerable de aserciones matemáticas, a veces designado conjunto de aserciones matemáticas recursivamente enumerable, o simplemente conjunto generado. Esta formulación en términos ‘computacionales’ se debe a Turing y Post ([Cha04], c. II). El Algoritmo de Validación es, precisamente, la razón de la designación de un sistema formal à la Hilbert como ‘conjunto computacionalmente enumerable de aserciones matemáticas’. Es parte de un procedimiento mecánico, rutinario, que en principio permitiría dilucidar cualquier cuestión formulable en un sistema axiomático formal consistente y completo294. Este procedimiento - inaplicable en la práctica, puesto que requeriría la eternidad para su consecución - pero teóricamente factible295, es como sigue: se recorre la totalidad de las posibles construcciones en el sistema axiomático formal (el lenguaje formal) una a una, en el orden determinado por su tamaño (su orden lexicográfico)296. Para cada posible cadena de símbolos (expresión) se chequea (mediante el algoritmo de validación) si su construcción sigue las reglas de inferencia del sistema, y se aceptan como válidas aquellas que efectivamente cumplen con las reglas de deducción, descartándose aquellas construcciones que no lo hacen. De esta manera, este procedimiento - que combina un ‘algoritmo generador de todas las posibles cadenas simbólicas’ con un ‘algoritmo de validación’ - es equivalente a un ‘algoritmo generador de teoremas’, es decir, un ‘algoritmo generador de cadenas simbólicas válidas según las reglas 294 Recuérdese que si un sistema formal es a la vez consistente y completo, entonces cualquier proposición es decidible: o bien se halla su prueba, o su refutación (la prueba de la proposición contraria). Como decidir, es precisamente una cuestión para la cual Hilbert pretende elaborar un procedimiento ‘mecánico’, el aquí denominado Algoritmo de Validación. 295 De hecho, es factible incluso desde un punto de vista constructivista. 296 Se comienza por las secuencias de símbolos del alfabeto de un carácter de largo, luego se sigue con las de dos, de tres, y así sucesivamente, ad infinitum. La mayoría de estas secuencias violarán las reglas gramaticales, pero eventualmente se producirán todas las secuencias ‘gramaticalmente correctas’ [Cha92]. Fue Post quien señaló esta idea, implícita en el trabajo de Turing (sección 3.3.6.1): la posibilidad de obtener un conjunto de objetos, generados uno a uno mediante un algoritmo ejecutado por una máquina, en algún orden determinado. Esta es la esencia de un sistema formal ([Cha04], c. 2). Ingeniería Electrónica – Universidad Católica del Uruguay 126 - [ 3 ] Modelos de inferencia’297. Por construcción, ese conjunto es enumerable. Así, a partir del conjunto de axiomas y reglas se puede, en teoría, producir toda proposición válida298, es decir, se pueden determinar uno a uno todos los teoremas del sistema deductivo, conformando entonces un ‘conjunto computacionalmente enumerable de aserciones matemáticas’. En cierto sentido, la consecución de estos algoritmos implica que no son necesarias para el desarrollo de la matemática ni la ingenuidad, ni la intuición, ni la inspiración [Cha89]. La matemática sería nada más que un procedimiento mecánico. Sin embargo, no es este el caso. Existen limitaciones fundamentales inherentes a todo Sistema Axiomático Formal con capacidad de autorreferencia. El seminal trabajo de Gödel (1931) demuestra que no es factible obtener un sistema axiomático formal que sea a la vez consistente y completo, con lo cual no toda proposición es decidible - en particular, no se puede siquiera decidir la consistencia interna del sistema (sección 3.3.5). Además, el posterior trabajo de Turing (1936) demuestra que no es siquiera posible obtener un procedimiento de decisión para la demostración o refutación de una proposición matemática arbitraria (sección 3.3.6.1). Y finalmente, Chaitin demuestra que las precedentes limitaciones responden al hecho que existe aleatoriedad en el seno de la matemática pura (sección 3.3.6.2). Estas limitaciones inherentes a los sistemas axiomáticos formales no constituyen, sin embargo, una limitación absoluta y terminante para las matemáticas - lo que implican es una severa limitación del Platonismo como única filosofía para el desarrollo matemático. [ 3.3.5 ] LA ‘ESPADA DE GÖDEL’ Según cuentan Horacio en una de sus “Odas” y Cicerón en sus “Tusculanas”, Damocles (siglo IV, AC) era cortesano de Dionisio I “El Viejo”, tirano de Siracusa, a quien envidiaba por su vida aparentemente afortunada y cómoda. El rey, cansado de las reiteradas alusiones de Damocles acerca de la magnificencia de su vida próspera y lujosa, decidió escarmentarlo. Con ese propósito, le invitó a sustituirlo durante un festín en el sitio de honor, y dispuso que sobre su cabeza pendiera una afilada espada, suspendida sólo de una crin de caballo. Así, cuando en pleno banquete Damocles descubrió, horrorizado, el peligro al que estaba expuesto, comprendió la realidad de la situación del monarca: la precariedad de su posición como tirano, y lo efímero e inestable de su próspero y lujoso modo de vivir. En referencia a esta historia, la ‘espada de Damocles’ es una frase que alude la inseguridad experimentada por aquellos que ostentan un gran poder, a causa de la posibilidad de verse privados del mismo en forma abrupta e impredecible. Modernamente, la frase ‘la espada de Damocles’ es empleada para expresar la presencia de un peligro inminente, o una amenaza en ciernes, que puede desencadenarse en cualquier momento. En este documento, la ‘espada de Gödel’ es una alegoría a Damocles, que se refiere a la situación en que Gödel ubica a la matemática formalista de principios del siglo XX, con sus teoremas de indecisión e incompletitud de los sistemas axiomáticos formales capaces de representar a la aritmética elemental299. [ 3.3.5.1 ] TEOREMAS DE INDECISIÓN E INCOMPLETITUD DE GÖDEL En Setiembre de 1930, hacia el fin de la Segunda Conferencia sobre Epistemología de las Ciencias Exactas en Koenisberg, Gödel declara la inviabilidad del programa de Hilbert: 297 De hecho, la combinación de los primeros puede ser considerada como el segundo. Y en cualquier caso, por construcción, es posible una enumeración de las cadenas simbólicas que se van produciendo. 298 Sintácticamente válida. 299 La aritmética usual, de Peano, dada por {N, +, ·}, es decir, el conjunto de los números naturales y las operaciones de adición y multiplicación. Es diferente a la aritmética de Presburger, que carece de la operación de multiplicación. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 127 “Bajo la hipótesis de consistencia de la matemática clásica, uno puede dar ejemplos de proposiciones que son verdaderas por su contenido, pero que no son demostrables en el sistema formal de la matemática clásica.”300 301 ([Pod97], s. 5.3). Los resultados del trabajo de Gödel - presentados en Octubre de 1930 302, y publicados en 1931 303 - demuestran que no hay forma de obtener un sistema axiomático formal para toda la matemática - ni siquiera para la aritmética elemental - el cual pueda garantizar, a la vez, la inexistencia de contradicciones y la existencia de la prueba o refutación para cada proposición correctamente planteada en términos del sistema. Cada sistema aritmético contiene proposiciones aritméticas - proposiciones que conciernen sólo a relaciones entre números enteros304 que no pueden ser probadas o refutadas 305 dentro del propio sistema. Si se asume que el sistema no es contradictorio (es consistente) esto implica que el sistema no es capaz de demostrar todos sus teoremas (es incompleto). En particular, un sistema formal consistente es incapaz de probar internamente su propia consistencia. La solución a estos problemas requiere extender el conjunto de axiomas del sistema. Sin embargo, este proceso de agregar axiomas nunca puede lograr la completitud del sistema, si se mantiene la consistencia. Si bien recientemente se han presentado trabajos que aducen la invalidez formal de los resultados de Gödel [Cat03], en este documento interesan más las consecuencias históricas y prácticas306 de los teoremas de Gödel que la corrección de su demostración; las consecuencias han sido reconstruidas por Turing y Chaitin en otros términos, más ‘intuitivos’, que facilitan 300 Texto traducido del original, en inglés. Ver nota 54, p. 39. 301 Es importante diferenciar entre contenido (semántica) y forma (sintaxis). Gödel (y Hilbert) emplean una palabra que ha sido traducida al inglés como ‘contentual’. En casos, se ha interpretado como ‘intuitivo’, pero en http://people.cs.uchicago.edu/~odonnell/OData/Courses/22C:096/Lecture_notes/Hilbert_program.html se aduce que el término ‘contentual’ se refiere al contenido de las fórmulas o aserciones, y se emplea como opuesto a formal que se refiere a la forma de las fórmulas o aserciones. De hecho, en el ámbito de la lógica, formal no se refiere a riguroso, y de aquí que lo opuesto de formal no sea ‘informal’ en el sentido de ‘poco riguroso’, sino de ‘referente al contenido y no a la forma’. El razonamiento formal es, en esencia, cómputo. El razonamiento ‘contentual’ es esencialmente inspiración – de aquí su interpretación como intuitivo. Aunque carecía de la noción de ‘computador’, Hilbert de hecho concibe las demostraciones matemáticas como procedimientos computacionales, cuya corrección puede ser chequeada objetiva y confiablemente por consideración de su estructura simbólica, y no por el contenido que expresa cada aserción de la demostración. De encontrarse un error, no se está detectando la veracidad o falsedad de una aserción, sino una manipulación de símbolos que no sigue las reglas, lo que da lugar a una expresión que no es ni un teorema ni un anti-teorema del sistema axiomático (ver sección 3.3.4). 302 En una reunión de la Academia de Ciencias de Viena (“Akademie der Wissenschaften in Wien, Mathematisch - Naturwissenschaftliche Klasse, Anzeiger”, 1930, N 76, pp. 214-215). 303 “Über formal unentseheidbare Sätze der Principia Mathematica und verwandter Systeme I”, en “Monatshefte für Mathematik und Physik”, Vol. 38, pp. 173-198 (Leipzig, 1931). Una traducción al inglés, “On formally undecidable propositions of Principia Mathematica and related systems I”, está disponible (a la fecha de redacción del presente documento) en el sitio http://home.ddc.net/ygg/etext/godel/godel3.htm. 304 Y que incluyen a la operación de multiplicación. 305 Entendiéndose por refutación la prueba de la proposición contraria, y por prueba, la consecución de la expresión de la proposición mediante exclusiva aplicación de las reglas de inferencia del sistema (estricta deducción) a partir de los axiomas del propio sistema. 306 Consecuencias, en lugar de implicancias (lógicas, deductivas). No se pretende cometer en este trabajo la imprudencia intelectual de avalar - cual dogma - ningún resultado, no sólo porque no se está al nivel académico necesario para dar aval o refutar, sino fundamentalmente en virtud de la humildad que la historia impone al conocimiento humano: ninguna forma ‘rígida’ o ‘estática’ del conocimiento resiste la perpetua revisión a la que la historia inexorablemente lo somete – el conocimiento es necesariamente ‘dinámico’. Ingeniería Electrónica – Universidad Católica del Uruguay 128 - [ 3 ] Modelos su comprensión y apuntalan su credibilidad307. No obstante, se confiere aquí una brevísima sinopsis del trabajo de Gödel, con objeto de mostrar su línea de pensamiento, y la relación con la crisis en los fundamentos de la matemática (sección 3.3.3.1). En esencia, los Teoremas de Incompletitud - como es usualmente referido el trabajo de Gödel - son corolarios de la Proposición VI en [Göd31]. Esta proposición establece que si un sistema formal es consistente308, entonces existen proposiciones que no son demostrables por el sistema, ni lo son sus contrarias. Es decir, la Proposición VI de Gödel demuestra que en los sistemas formales consistentes, existen proposiciones correctamente formuladas en términos del sistema, pero sobre las que este no puede decidir la demostración o refutación. A este ‘Teorema de Indecisión’309, sigue el corolario que es conocido como el Primer Teorema de Incompletitud de Gödel: Primer Teorema de Incompletitud: si un sistema formal es consistente, entonces es incompleto310. Sobre el fin de su trabajo, Gödel delinea la prueba de lo que llama Proposición XI 311, que establece que si un sistema es consistente, no es posible demostrar su consistencia internamente, es decir, por los medios del propio sistema. Se tiene así el Segundo Teorema de Incompletitud: Segundo Teorema de Incompletitud: no es posible demostrar la consistencia de un sistema formal (consistente) por medio del propio sistema. Como indica Gödel en el título de su trabajo, el sistema formal al que se refiere es al sistema deductivo de Principia Mathematica, y particularmente la parte requerida para establecer los teoremas de la aritmética de los números enteros. En su trabajo, Gödel da una descripción exacta de su sistema formal, especificando sus símbolos básicos, sus fórmulas válidas, sus fórmulas iniciales (axiomas) y la relación de consecuencia, aduciendo que en esencia tal sistema se obtiene de superponer la lógica de Principia Mathematica a los axiomas de Peano para la aritmética de los números enteros. Sin embargo, lo que Gödel construye es en realidad un cálculo lógico capaz de representar al sistema deductivo de interés312, la aritmética elemental de Peano. Y en consecuencia, lo que Gödel demuestra es un resultado acerca del cálculo lógico que construye, y no de lo que este representa. Así, expresada en términos del cálculo lógico que Gödel elabora, la “Proposición VI” demuestra que dos fórmulas particulares - que son una la contraria de la otra - no pueden obtenerse de las fórmulas iniciales mediante las reglas de manipulación simbólica del cálculo. Por tanto, el trabajo de Gödel se refiere a cuales fórmulas pueden - o no pueden - ser obtenidas por medio de su cálculo lógico particular. El interés radica en que el cálculo lógico que Gödel 307 Y en caso que los resultados de Gödel sean inválidos desde el punto de vista formal, no necesariamente han de serlo las mencionadas reconstrucciones. Esto permite la supervivencia de la idea original de incompletitud, aunque con otro carácter, cuestión que se discute en la sección 3.3.6. 308 La ‘consistencia’ a la que se refiere Gödel es de un carácter particular; sin embargo, Rossen (en 1936) logra extender el concepto a la noción usual de consistencia. 309 Esta designación es personal. 310 Cabe notar que el Primer Teorema de Incompletitud requiere que el sistema formal sea consistente. Como se discute en la sección 3.3.5.2, del Segundo Teorema de Incompletitud se deduce que no es posible obtener una prueba absoluta de consistencia de un sistema formal, por lo que este Primer Teorema de Incompletitud parecería devenir en mera retórica. Estrictamente, entonces, si no se sabe si una teoría es consistente o inconsistente, no se puede decidir sobre la veracidad o falsedad de ciertas aserciones. 311 Confiere un esquema de como sería la prueba de la “Proposición XI”. Si bien Gödel manifiesta al final de [Göd31] la intención de publicar la prueba completa, la publicación nunca se efectuó. (Nótese que el título del trabajo de Gödel, “On formally undecidable propositions of Principia Mathematica and related systems I”, indica que es la primera parte de un trabajo más extenso - pero que a posteriori no se concretó). 312 La definición de cálculo lógico, sistema deductivo, y su relación, se confiere en la sección 3.3.4. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 129 construye es efectivamente interpretable como la representación del sistema deductivo para la aritmética de los números enteros (la parte ‘aritmética’ de Principia Mathematica) y por tanto, los problemas de indecisión e incompletitud en el cálculo de Gödel se reflejan en el sistema deductivo representado, la aritmética de Peano. Este es el hecho que ocasiona el escándalo histórico en torno a los resultados de Gödel [BraXX]. Un aspecto clave en el trabajo de Gödel consiste en combinar el contenido (semántica) de las proposiciones a las que sus fórmulas representan, con la estructura (sintaxis) del sistema formal consistente al que su cálculo lógico representa. Los argumentos semánticos de Gödel se inspiran en la Paradoja del Mentiroso (sección 3.3.3.1.2). Mediante un procedimiento extremadamente ingenioso, Gödel construye la aserción “No soy un teorema”. Si esta aserción es demostrable - es decir, resulta ser un teorema - entonces en virtud de lo que expresa (su contenido) se produce una contradicción. Así, se estaría demostrando un teorema falso, lo que implicaría que la lógica es inconsistente. Ante esta situación, si se asume que la lógica es consistente - algo deseable y razonable, siendo esta la de Principia Mathematica de Russell y Whitehead entonces la aserción debe - correspondientemente - suponerse verdadera. Pero entonces debe ser a fortiori indemostrable, para no generar una contradicción. Por tanto, si se asume la consistencia del sistema, este es forzosamente incompleto: hay proposiciones verdaderas (por su contenido) que el sistema es incapaz de probar ([Heh90], p. 3). Alternativamente, interprétese la aserción como “Soy indemostrable”. De ser demostrable, la aserción estaría enunciando algo falso, y así se estaría probando un teorema falso, implicando que el sistema es inconsistente. De ser indemostrable como la misma aserción asegura, entonces estaría expresando un enunciado verdadero, y así habrían teoremas verdaderos que no pueden ser probados, implicando que el sistema es incompleto ([Cha02a], p. 167). Nótese que los precedentes esquemas argumentales se refieren al Teorema de Indecisión y al Primer Teorema de Incompletitud. El Segundo Teorema de Incompletitud se obtiene si se modifica la aserción “Soy indemostrable” para que afirme que - en lugar de sí misma - la consistencia del sistema es indemostrable. En ese caso, apelando al mismo esquema argumental, se tiene que un sistema consistente no es capaz de demostrar su propia consistencia, porque de lograrlo se incurriría en una contradicción: probaría su inconsistencia. En esencia, los teoremas de Gödel constituyen un elaborado esquema de codificación de la Paradoja del Mentiroso en términos de la teoría numérica elemental, la aritmética de Peano {N, +, ·}. En su trabajo, Gödel indica como construir una expresión numérica que puede ser interpretada como el ‘código’ de la proposición indecidible en su cálculo lógico313. El método novedoso de Gödel consiste en asignar números a los símbolos, a las concatenaciones de símbolos (fórmulas) y a las concatenaciones de fórmulas (esquemas de deducción) de su sistema formal, en forma unívoca314. Similarmente a como Descartes inventó la geometría de coordenadas mediante la asignación de pares de números a los puntos del plano, Gödel inventó lo que podría llamarse ‘meta-matemática de coordenadas’ mediante su asignación de números a símbolos, fórmulas y esquemas deductivos. Y así, similarmente a como Descartes demuestra teoremas geométricos de puntos del plano mediante la demostración de teoremas algebraicos de números, Gödel establece conceptos y proposiciones meta-matemáticos mediante conceptos y proposiciones relativos a los números naturales - los números asignados a las expresiones de su sistema315 [BraXX]. Actualmente, la codificación numérica de una aserción no resulta sorprendente en virtud del uso habitual del computador, en el cual la información es almacenada en forma 313 Gödel hace un uso extensivo de la recursión, y con ello se las ingenia para que la proposición - una vez efectuada la codificación del sistema en términos numéricos - se calcule a sí misma (a esto se refieren las indicaciones para construir). Nótese que esto implica una autorreferencia. 314 Apela hábilmente para ello a los números primos, y a la propiedad de unicidad de la descomposición de números enteros en factores primos 315 “En otras palabras, el procedimiento descrito precedentemente provee una imagen isomorfa del sistema de Principia Mathematica en el dominio de la aritmética, y todos los argumentos meta-matemáticos pueden ser efectuados equivalentemente en esta imagen isomorfa” [Göd31]. Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 130 - [ 3 ] Modelos numérica (más precisamente, binaria)316. Sin embargo, para la época, la idea de ‘aritmetización’ de Gödel constituye una obra de ingenio y esfuerzo prodigiosos. El trabajo meta-matemático de Gödel es de carácter sintáctico. La indeterminación o indecisión de proposiciones aritméticas dentro del sistema deductivo para la aritmética A a la que representa el cálculo lógico C que Gödel construye, pueden clasificarse como características meta-matemáticas sintácticas puesto que la indecisión deriva de la indeterminación de ciertas fórmulas dentro del cálculo C. Sin embargo, a diferencia de los cálculos lógicos, los sistemas deductivos poseen, además, características meta-matemáticas semánticas; en particular, sus proposiciones poseen o carecen la propiedad de ser ‘verdaderas’ o ‘falsas’. Esto constituye el aspecto clave en el trabajo de Gödel: combinando la propiedad sintáctica de ser demostrable con la propiedad semántica de ser verdadera 317, el método de aritmetización de Gödel asegura que cierta proposición g es ‘verdadera’ si y sólo si es indemostrable dentro de A. Sin embargo, la demostración es una prueba puramente sintáctica acerca de un cálculo C. La interpretación de C como el sistema deductivo A para la aritmética es, estrictamente, irrelevante para el argumento [BraXX]. Si bien los resultados son aplicables al cálculo lógico particular C, Gödel indica como se aplicarían demostraciones similares a otros cálculos que cumplan con dos condiciones, tan generales, que cualquier cálculo lógico capaz de expresar la aritmética elemental las satisface. Como lo han confirmado y clarificado otros meta-matemáticos318, no es posible construir ningún cálculo lógico donde cada fórmula (que representa a cada proposición aritmética) sea demostrable o refutable dentro del propio cálculo. Por lo tanto, ningún sistema deductivo para la aritmética poseerá la característica sintáctica general de contener la prueba o la refutación de cada proposición aritmética, hecho que comúnmente se describe diciendo que la aritmética es inherentemente incompleta [BraXX]. En 1936, Gentzen demuestra la consistencia de un sistema formal de tipo Frege-Hilbert, pero lo hace mediante el empleo de métodos ajenos (no reducibles) a las reglas de inferencia de un sistema formal, es decir, métodos no constructivistas319. Por el contrario, el argumento de Gödel es constructivista en sentido estricto. En el trabajo de Gödel, la recursividad juega un papel preponderante, y el método de recursión que emplea Gödel es una extensión del método de definición mediante el Principio de Inducción matemático. Sin embargo, el método recursivo empleado permite construir, siguiendo una regla, cualquier número en una secuencia infinita recursiva, de forma que una referencia a la secuencia infinita puede ser construida como una referencia a la regla de construcción, y no como una referencia a una entidad infinita dada. Así, pese a las extensiones que Gödel hace a la noción de recursión, su trabajo admite una interpretación en términos efectivamente constructivistas. De forma que, por un lado, Gödel demuestra las limitaciones de los sistemas formales constructivistas para la matemática (que incluyen todos aquellos sistemas capaces de fundar un cálculo lógico para la aritmética sobre el 316 Y, actualmente, tampoco es novedad que exista más de una codificación posible. En particular, el texto que Ud. está leyendo en este momento ha sido almacenado en un formato numérico adecuado para el procesador de texto particular en el cual se produce este documento, pero perfectamente puede ser recodificado al formato que otra aplicación requiera, como podría ser otro procesador de texto o incluso un sistema de impresión. En todos los casos, lo que interesa es que el contenido (el texto en sí) es el mismo. 317 La distinción entre lo semántico y lo sintáctico fue explicitada posteriormente por Tarski, cuyo trabajo estableció teoremas de indecisión de tipo semántico [BraXX]. 318 Cabe notar que si bien no se dispone directamente de la fecha de la referencia [BraXX] es razonable inferir, de documentos que acompañan a la Introducción de Braithwaite, que esta es anterior a [Cat03], trabajo donde se aduce la invalidez de la Proposición VI del trabajo de Gödel (proposición de la cual derivan los resultados de incompletitud, designada en el presente documento como Teorema de Indecisión). 319 Nótese que, en esencia, las reglas de inferencia de un Sistema Axiomático Formal son indicaciones para construir los teoremas del sistema. (La concepción filosófica constructivista es conferida en la sección 3.3.3.2.1). Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 131 Principio de Inducción) pero por otro, muestra la potencia de los métodos constructivistas para la meta-matemática, para estudiar las limitaciones de la matemática [BraXX]. Hasta aquí algunas consideraciones respecto al trabajo de Gödel en sí mismo. Interesa ahora analizar las consecuencias de sus resultados; si bien en parte han sido conferidos en esta sección, se discuten específicamente en la sección siguiente. [ 3.3.5.2 ] CONSECUENCIAS DE LOS TEOREMAS DE GÖDEL El escándalo que suscitaron los teoremas de Gödel, radica en que son interpretables en términos de la ‘absolutamente confiable’ aritmética de Peano {N, +, ·}, una rama de las matemáticas de singular importancia práctica, y de las más antiguas en la historia de la humanidad. Si bien este solo hecho es más que suficiente para generar una conmoción considerable, se tiene además que el programa de Hilbert es dependiente de la consistencia y completitud de la aritmética elemental. El objetivo de Hilbert (ver sección 3.3.3.2.2, p. 122) era, en primer lugar, construir una teoría formal para toda la matemática, y en segundo lugar, probar la consistencia de esa teoría por medio de la aritmética de Peano. Si bien la primer etapa fue aparentemente conseguida con la formulación de las teorías axiomáticas de conjuntos post-Cantorianas, la segunda etapa fue desarticulada por los teoremas de incompletitud de Gödel. Al respecto, el resultado más devastador para los promotores del formalismo no es la existencia de proposiciones verdaderas que no pueden ser demostradas (Primer Teorema de Incompletitud) sino que un sistema deductivo consistente no es capaz de demostrar su propia consistencia, a partir de sus axiomas, y mediante sus reglas de inferencia (Segundo Teorema de Incompletitud) porque en particular, la aritmética de Peano no puede probar su propia consistencia. El segundo teorema de Gödel establece, entonces, que no es posible garantizar la consistencia de la matemática por medio una de sus partes, como es la aritmética elemental. Este es el hecho que pone fin al sueño de Hilbert, e invalida la filosofía prevaleciente 320 en la época que creía posible la integración de las diferentes ramas de la matemática sobre un único fundamento lógico. Ningún (único) sistema formal puede describir completamente a todos los sistemas formales (incluyéndose a sí mismo). No es posible, por tanto, la consecución de un sistema formal para toda la matemática, como era la idea de Hilbert. No obstante, un sistema formal puede describir completamente a cualquier otro sistema formal. En este sentido más modesto, la idea de Hilbert es factible 321 [Heh90]. Prima facie, los Teoremas de Indecisión e Incompletitud de Gödel se refieren al lenguaje específico de la aritmética de Peano, lo cual puede sugerir que los fenómenos de incompletitud podrían ser causados por una inadecuada elección del lenguaje o del sistema lógico (axiomas y reglas de inferencia). Sin embargo - como lo aclara el propio Gödel - sus teoremas pueden ser demostrados para teorías formales basadas en lenguajes y lógica arbitrarios, siempre que estos sean capaces de ‘representar’ la aritmética de Peano. Un sistema formal capaz de ‘representar’ la aritmética de Peano, es designado como una teoría fundamental ([Pod97], s. 3.2;s. 5.3). Una teoría T se dice fundamental sólo si la aritmética de Peano (PA) es ‘relativamente interpretable’ en T, es decir, si existe un algoritmo Tr que transforme cada fórmula F de PA en una fórmula 320 Recuérdese que Poincaré objetaba la idea de Hilbert para reconstruir los fundamentos de la matemática, aduciendo que no debía justificarse el Principio de Inducción por medio del Principio de Inducción. El Principio de Inducción es la esencia de la aritmética de Peano, por lo cual la objeción de Poincaré aduce que no debe justificarse la aritmética de Peano por medio de la aritmética de Peano. El Segundo Teorema de Incompletitud de Gödel le da la razón: puede intentarse, pero de lograrse, se probará la inconsistencia de la aritmética de Peano. 321 Y ha tenido un éxito brillante en lo relativo al cómputo. Ingeniería Electrónica – Universidad Católica del Uruguay 132 - [ 3 ] Modelos Tr(F) de T322. En esencia, una teoría es fundamental si es capaz de probar las propiedades fundamentales de los números naturales. Naturalmente, la teoría fundamental más simple es la propia aritmética de Peano; lo son también sus extensiones. Las teorías de conjuntos de Zermelo-Fraenkel, y Zermelo-Fraenkel dotada del Axioma de Elección, son otros ejemplos de teorías fundamentales, pasibles de aplicación de los Teoremas de Gödel. Por el contrario, la aritmética de Presburger - una versión ‘mutilada’323 de la aritmética de Peano - no es una teoría fundamental; así, logra ser a la vez consistente y completa. Con esta definición de teoría fundamental, los resultados de Gödel se pueden reformular como un ‘Principio de Imperfección’: ‘Principio de Imperfección’: Las teorías fundamentales (sistemas axiomáticos formales de tipo Frege-Hilbert capaces de representar la aritmética elemental de Peano) no son perfectas: o bien son inconsistentes, o bien son incompletas - si son consistentes entonces son incompletas, y si son completas entonces resultan inconsistentes. Además, son incapaces de probar su consistencia interna, es decir, la consistencia de sus axiomas. En este contexto, si se descubre una aserción que no es ni un teorema ni un anti-teorema en una teoría formal, puede decidirse arbitrariamente adoptar la aserción (o su contraria) como postulado, y agregarse como axioma al sistema de axiomas. Sin embargo, de los resultados de Gödel es inmediato que, si se pretende mantener la consistencia, el proceso de agregar axiomas no permite completar una teoría fundamental. Por otro lado, si bien es factible demostrar la consistencia de una teoría fundamental por medio de otra (totalmente distinta, u obtenida, por ejemplo, suplementando la primera con axiomas) esto condiciona la prueba de consistencia de la primera a la consistencia de la segunda, y así sucesivamente. En consecuencia, no es posible elaborar una prueba de consistencia absoluta para una teoría fundamental, y solamente puede demostrarse la consistencia relativa de una teoría fundamental T’ respecto a otra teoría fundamental T (supuesta consistente) si T’ deriva de T por adición o supresión de axiomas . No existe una prueba final y determinante (absoluta) de consistencia para ninguna teoría fundamental. Sólo puede aspirarse a obtener una prueba de consistencia relativa: supuesta la consistencia de una teoría fundamental T, sólo puede probarse que T’, obtenida de T por incorporación o eliminación de axiomas, mantiene - o no - la hipotética consistencia. En particular, mediante los métodos formales no se puede asegurar la consistencia de los axiomas de la aritmética, por lo que no es posible garantizar que de estos no derive una contradicción. Así, la consistencia de la aritmética es, esencialmente, un acto de fé. Cabe notar que la aritmética de Peano es equivalente a la teoría de conjuntos finitos que se obtiene de negar el Axioma de Infinitud 324 en la teoría de conjuntos infinitos de Zermelo-Fraenkel. La teoría de conjuntos de ZermeloFraenkel, como teoría formal, puede probar la consistencia de la aritmética de Peano, y entonces, como consecuencia del Segundo Teorema de Gödel, se deduce que la consistencia del Axioma de Infinitud, relativa al resto de los axiomas de la teoría de conjuntos de ZermeloFraenkel, no puede ser probada. Así, la aceptación de la existencia de conjuntos infinitos - incluso de conjuntos infinitos de números enteros - es un acto de fé, que la teoría de conjuntos ZF no resulte contradictoria [JecXX]. 322 Conforme a las siguientes condiciones: (1) Si F es demostrable en PA, entonces Tr(F) es demostrable en T; (2) Tr(~F) es demostrable en T sólo si ~Tr(F) es demostrable en T; (3) Si Tr(F) y Tr(F→G) son demostrables en T, entonces Tr(G) es demostrable en T. 323 Carece de la operación de multiplicación. 324 El Axioma de Infinitud es la esencia de la teoría de conjuntos; postula la existencia de conjuntos infinitos, o equivalentemente, la del conjunto de los números naturales N. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 133 Las teorías fundamentales no pueden garantizar la inexistencia contradicciones en su seno. Por tanto, la aceptación de la consistencia cualquier teoría fundamental, como la aritmética elemental, o la teoría conjuntos de Zermelo-Fraenkel, es esencialmente un acto de fé. Esta es ‘Espada de Gödel’ para la matemática formalista. Implica que matemáticas no es posible prescindir de la intuición, tal como aducía Poincaré. de de de la en Los precedentes argumentos ocasionan un sutil problema con el Primer Teorema de Incompletitud. Este teorema325 requiere, por hipótesis, que la teoría formal sea consistente. El problema es, precisamente, como comprobar la consistencia de un sistema formal, hecho que se ha mostrado es imposible de conseguir en términos absolutos, siendo sólo factible en términos relativos, significando que la consistencia es esencialmente un acto puramente intuitivo. Así, si la intuición induce a creer en la consistencia de cierta teoría fundamental, el único procedimiento admisible es adoptar - sin argumentos suficientes - la propia conjetura de consistencia como un axioma326; aunque no puede jamás ser verificada, esta hipótesis de consistencia sí puede ser refutada de derivarse alguna inconsistencia en el sistema ([Pod97], s. 6.3). Si bien la consistencia de una teoría fundamental nunca será demostrable, podrá ser refutable de surgir posteriormente una contradicción en el sistema, en cuyo caso quedaría probada la inconsistencia de la teoría. Cabe entonces cuestionarse el afán de probar la consistencia de una teoría: “... El teorema de Gödel implica que la consistencia de T no puede ser demostrada en T. ¿Por que debería ser este un argumento en contra de la aceptación de los axiomas y métodos de T? En definitiva, ya sabemos que no todo en matemáticas puede ser demostrado matemáticamente. Debemos aceptar algo sin demostración327. El teorema de Gödel no nos dice nada que no supiéramos al respecto. Además, ¿que tal si la consistencia de T fuera de hecho demostrable en T, contrariamente al teorema de Gödel? ¿Por que ello debería tener algún efecto sobre cualquier duda escéptica que pudiéramos tener respecto a T? A fin de cuentas, una prueba de consistencia interna en T no sería más que otra demostración en T, en sí misma pasible de duda.”328 329 Cabe notar que, independientemente de los teoremas de Gödel, una prueba de consistencia interna de una teoría no sería más que otra demostración en esa teoría, en sí misma pasible de duda. Así, quizás el afán por demostrar la consistencia de una teoría sea una pretensión fútil ab initio. Necesariamente han de buscarse otro tipo de justificaciones. Considérese el papel de la evidencia experimental en el ejercicio de la física: sólo otorga confiabilidad a las teorías si sus predicciones se ajustan a la evidencia experimental, pero no puede garantizar su corrección. Sin embargo, ostenta el inapelable poder de refutación en caso de no haber correspondencia entre las predicciones y la realidad experimental. La introducción de esta ‘asimetría’ entre la capacidad de demostración y de refutación por experimentación en la física, indica que no existe algo así como ‘una teoría física’ y ‘la teoría contraria’ - refutar una teoría no es demostrar la ‘opuesta’ - sino que hay diversas teorías, ‘compatibles’ o 325 Al igual que la Proposición VI (en este documento, designada como Teorema de Indecisión) de la cual deriva. 326 Nótese que no se busca la completitud del sistema con esta maniobra, sino sólo postular la consistencia. 327 Los axiomas son el ejemplo manifiesto de esta afirmación. Más allá del hecho que los axiomas son un punto de partida para evitar una regresión infinita, su calidad de ‘verdades evidentes’ es pura y exclusivamente basada en la intuición. 328 Incluso la demostración de la consistencia de T por medio de otra teoría formal T’ adolecería del mismo problema: la consistencia de T en T’ es una prueba más en T’, pasible de duda en T’ . El problema de la consistencia interna de T solamente se traslada a la consistencia interna de T’, y así sucesivamente. 329 Texto traducido del original, en inglés. Ver nota 54, p. 39. (No se tiene registro del autor de la cita). Ingeniería Electrónica – Universidad Católica del Uruguay 134 - [ 3 ] Modelos ‘incompatibles’ con la realidad. La física, pues, no parece practicar el Platonismo. Las precedentes consecuencias del Segundo Teorema de Gödel parecen indicar lo mismo para la propia matemática. Puede intentarse la adopción de postulados o principios de razonamiento que busquen de alguna manera escapar a la amenaza de la ‘espada de Gödel’ - por ejemplo, siendo no constructivistas. No obstante, estos podrían devenir tan complicados intrínsecamente, que su propia consistencia sería objeto de seria duda, desvirtuando el propósito de su utilización. Cabe notar que tanto una ampliación del sistema axiomático como la adopción de nuevos principios de razonamiento incrementa la probabilidad de contradicciones en una teoría axiomática, en virtud del incremento en la complejidad del sistema330. En virtud de la asimetría entre la capacidad de refutación y la incapacidad de demostración de su consistencia interna - similarmente a como ocurre con la evidencia experimental en física - parece razonable cuestionarse si la matemática podría adoptar criterios similares a la física, en base a evidencia ‘computacional’331 en lugar de evidencia experimental ‘de laboratorio’. “Esta es una visión ‘casi empírica’ (Lakatos) de cómo trabajar en matemáticas, fuertemente relacionada con la idea de la llamada ‘matemática experimental’, que usa evidencia computacional en lugar de la demostración tradicional para ‘establecer’ nuevas verdades. Esto no sólo podría ser extremadamente conveniente, como Borwein, Bailey y Girgensohn argumentan, sino de hecho podría ser a veces absolutamente necesario para el progreso de la matemática a pesar del fenómeno de la incompletitud.”332 ([Cha04], c. VI). Los teoremas de Gödel han provocado muchas discusiones acerca de la insuficiencia del método axiomático para la reconstrucción333 del pensamiento matemático informal. ¿Difiere el ‘razonamiento axiomático’ del razonamiento informal? De ser así, deberían existir pruebas matemáticas que no siguieran el patrón usual ‘premisas → conclusiones’. Aún, si no todos los procesos de razonamiento matemático son reducibles a una cadena de conclusiones, podría investigarse si al menos siguen alguna regla definida y estable. El problema es que si estas reglas no son formulables explícitamente, no es posible determinar si son definidas334. Así, de acuerdo a esta visión, los límites de la axiomatización coincidirían con los límites de la propia matemática. Sin embargo, esto no es más que una expresión del Platonismo en la matemática, sólo que convertido en un Platonismo metodológico (Adaptado de [Pod97], s. 1.3). En esencia, los Teoremas de Indecisión e Incompletitud de Gödel no constituyen argumentos contra el formalismo, sino contra el Platonismo: ningún sistema estable y autocontenido - ningún fantástico ‘mundo de las ideas’ - puede ser perfecto. La modestia impuesta por Gödel a una gran cantidad de sistemas deductivos, y a la concepción Platónica, tiene consecuencias que trascienden a la lógica, la matemática y la metamatemática. “Como es posible leer en ‘Gödel, Escher, Bach’ de Douglas Hofstadter, ‘The Emperor’s New Mind’ de Roger Penrose, u otros trabajos contemporáneos, la conclusión de Gödel para la aritmética 330 Incidentalmente, este es un argumento en favor de la búsqueda de una teoría para el tratamiento de sistemas complejos (secciones 1.3 y 1.5). 331 Estos temas se revisan en la siguiente sección. 332 Texto traducido del original, en inglés. Ver nota 54, p. 39. La tipografía en negrillas en la cita no es del autor original, sino que corresponde al presente documento. 333 Ver sección 3.2.3. 334 Un argumento similar a este justifica la primera etapa del programa de Hilbert (formalizar la matemática intuitiva): de tenerse un sistema fundado - aunque sea parcialmente - en términos intuitivos, una prueba de consistencia del sistema (la segunda etapa del programa de Hilbert) carece de asidero: no se tiene algo ‘definido’ explícitamente. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 135 general tiene consecuencias más amplias para la humanidad. No es razonable esperar que un sistema legal, un conjunto de leyes físicas, o una serie de mandamientos religiosos tenga el mismo rigor que caracteriza a la aritmética recursivamente enumerable. Sin embargo, puede esperarse el surgimiento de ejemplos de afirmaciones lógicas (por ejemplo: ‘¿Es la secesión constitucional?’) que no resulten demostrables o indemostrables dentro de una estructura lógica completa. Más interesante aún, la realidad de formas ‘Platónicas’ - ideales contemplados por el intelecto humano - es también cuestionada por algunos corolarios sencillos del Teorema de Gödel. Su Proposición XI establece que la consistencia interna de cualquier sistema deductivo (si éste es consistente) no es demostrable ni refutable dentro del sistema. Unas rápidas zancadas dentro de la lógica permiten interpretar este corolario como ‘Cualquier estructura consistente, suficientemente compleja, no puede ser auto-dependiente’ - es decir, debe confiar en la intuición, o alguna confirmación externa de ciertas proposiciones (específicamente, la que demuestre la consistencia interna).”335. En particular, Maris ([Mar99], cap. 4, pp. 37-42) critica muy duramente la axiomatización de la economía como proyección del programa formalista de Hilbert, en virtud de los resultados de Gödel. Quizás lo más interesante de la despiadada crítica que este autor hace a los economistas ‘matemáticos’, es la marcada diferencia entre estructura y contenido: “La economía ‘culta’ se ha convertido entonces en un sistema donde se dedican a extraer las conclusiones lógicas implícitas en cualquier conjunto de axiomas o postulados. La validez de la inferencia matemática no debe nada a la significación, posiblemente vinculada a los términos o expresiones contenidos en los postulados. ‘Ganancia, racionalidad, utilidad’ no tienen más sentido que ‘punto’ o ‘recta’ en la geometría de Riemman. La validez de las demostraciones económicas reposa en la lógica de las aserciones que contienen, y no en la naturaleza particular de aquello de que hablan. (...) Parafraseando a Russell, la «economía es esa disciplina en la cual no se sabe de que se habla, ni si es verdad lo que se dice» . (...) No importa saber si los postulados son verdaderos (además, no lo son) ni si las conclusiones son verdaderas (tampoco lo son). Únicamente importa afirmar que las conclusiones son las consecuencias lógicas necesarias de los postulados. «La economía sólo dice que un cuadrúpedo es un animal con cuatro patas» Gracias, Russell, una vez más.” Insiste este economista autocrítico: “Una palabra acerca de la economía axiomatizada. ¿Sistema deductivo?: Gödel. (...) La economía matemática, un tipo muy trivial de sistema deductivo, como otrora la escolástica, ni más ni menos noble, no escapa a esta posibilidad de inconsistencia. (...) ... es sospechoso que se haya construido una ‘axiomática’ de la economía, sobre el proyecto formalista de Hilbert, que soñaba ‘descarnar’ las matemáticas, ‘vaciar’ de sentido toda expresión de sistemas, construir un sistema de signos puros donde nada estaría oculto. El proyecto de ‘economía pura’ encarnado por Walras, mecánico de la sociedad, y Pareto, divulgador del anterior, ponía de manifiesto la visión reduccionista y mecanicista que sería la de Hilbert 336 (...) El proyecto de una economía ‘pura’, descarnada, etérea - ¿purificada en realidad de qué? ¿de manchas sociales, de la pobreza, de la desgracia humana, de la vida? - asombra por lo ingenuo. De hecho (...) es místico, completa y sencillamente religioso.”337 [ 3.3.6 ] INDECISIÓN, INCOMPLETITUD, INCOMPUTABILIDAD E INDETERMINISMO – DE GÖDEL A TURING Y CHAITIN. Los resultados de Kurt Gödel constituyen un mojón en la historia intelectual del siglo XX. Y lo son, no solamente por derecho propio - por lo que en sí significan - sino además por constituir el punto de partida para otros trabajos también trascendentales, a los cuales se dedica la presente sección. 335 Texto traducido del original, en inglés. Ver nota 54, p. 39. Tomado de http://home.ddc.net/ygg/etext/godel/ index.htm. 336 Nótese la visión calificada de ‘reduccionista’ y ‘mecanisista’, y las referencias a ‘vaciar de sentido a los sistemas’, en relación a la concepción de sistema en las ciencias según Von Bertalanffy (sección 1.3). 337 La visión crítica de Maris coincide con la de Hazel Henderson y un sinnúmero de otras personas la cual expresa en su artículo “El falso ‘Premio Nobel’ de Economía”, donde denuncia esta impostura científica ([HH05], p. 34). Ingeniería Electrónica – Universidad Católica del Uruguay 136 - [ 3 ] Modelos [ 3.3.6.1 ] EL AUTÓMATA DE TURING, LOS REALES INCOMPUTABLES, Y EL PROBLEMA DE FINALIZACIÓN Escasos cinco años después de la publicación de los teoremas de Gödel, Alan Turing publica en 1936 un trabajo clave: “On computable numbers, with an application to the Entscheidungsproblem”338 ([Cha92], s. 2). Habiendo comprendido a la perfección la idea de Hilbert sobre el ‘procedimiento mecánico’ para decidir si una demostración obedece las reglas de inferencia en un sistema axiomático formal, Turing elabora un modelo matemático de una máquina capaz de ejecutar tales procedimientos339. La ‘máquina de Turing’ es el modelo de una máquina versátil que - a diferencia de las de su época, concebidas para efectuar cómputos específicos - permite ejecutar cómputos diversos de acuerdo a como se la instruya. Desde la óptica actual es el modelo de un computador - estrictamente, es el primer modelo de un computador - aunque uno muy rudimentario, e idealizado. “Todos sabemos que el computador es un objeto muy práctico. De hecho, los computadores han devenido indispensables para el funcionamiento de una sociedad moderna. Pero lo que incluso expertos en computadores no recuerdan es que - y exagero sólo levemente - el computador fue inventado con el propósito de ayudar a la clarificación de un cuestionamiento filosófico acerca de los fundamentos de la matemática. ¿Sorprendente? Sí, lo es.” ([Cha02a], p. 164). La ‘máquina de Turing’ es un modelo matemático de un autómata, capaz de efectuar manipulaciones simbólicas de acuerdo a un cálculo lógico - en este contexto, designado ‘programa’ - que se le suministra en términos de una gramática formal. Las manipulaciones simbólicas se corresponden con los razonamientos deductivos de un sistema axiomático formal al que el cálculo representa, y para este propósito el autómata ideal dispone de memoria y tiempo infinitos. De esta manera, en teoría todos los teoremas que derivan de un sistema axiomático formal à la Hilbert se pueden generar mediante cómputo y manipulaciones simbólicas en el autómata, a partir de la codificación de los axiomas del sistema y las reglas de inferencia en un lenguaje formal. En particular, este autómata podría ejecutar el ‘programa’ de Hilbert, si se le suministra el sistema axiomático formal para la matemática y el algoritmo de validación pretendido por Hilbert. La correspondencia entre los sistemas axiomáticos formales y el autómata de Turing es la que se indica en el esquema de la Fig. 3.1 340: El ‘autómata de Turing’ es concebido, según aduce su autor, con capacidad para ejecutar cualquier cómputo que un ser humano pueda llevar a cabo - entre estos, el procedimiento de decisión de Hilbert, de existir este procedimiento341. Sin embargo, Turing se pregunta acerca de 338 “Acerca de números computables, con una aplicación al problema de decisión” (En ‘Proc. London Math. Soc.’, 1936, vol. 42, pp.230-265; recibido el 28 de Mayo, 1936). El ‘problema de decisión’ se refiere a la factibilidad de consecución de un ‘procedimiento de decisión’ para los sistemas axiomáticos formales (el ‘algoritmo de validación’ de la propuesta de Hilbert; ver secciones 3.3.3.2.2 y 3.3.4). 339 Una descripción de la ‘maquina de Turing’, y ejemplos de operación, se presentan en [PodXX], s. 6.1. 340 El concepto de ‘intérprete’ se aborda con generalidad en la segunda parte de este trabajo (sección 5.2.6.2.1.2). Básicamente, un intérprete debe ser capaz de comprender y hacer ejecutar las órdenes contenidas en un programa. Para el caso representado en la Fig. 3.1, el intérprete es el autómata de Turing; el propio computador. En el contexto de la informática actual, en general el intérprete se refiere a un programa ejecutable por el computador, que es capaz de de comprender y hacer ejecutar las órdenes que el usuario le indica directamente desde el teclado, o desde archivos de comandos - y por tanto se le designa usualmente ‘intérprete de comandos’. Basta considerar al computador y este programa como una ‘caja negra’, para reducirla al caso de interés en esta sección - de hecho, desde la perspectiva de ‘caja negra’ un computador ejecutando un intérprete de comandos es indistinguible de un intérprete ‘físico’. 341 Propósito para el cual el autómata requiere ser dotado de memoria infinita para realizar sus operaciones, así como la eternidad para operar (sin fallas). Recuérdese, el autómata de Turing no se trata de un computador real, sino un modelo matemático de lo que hoy es un computador. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 137 axiomas reglas de inferencia entrada / estado inicial del programa intérprete del programa teorema(s) salida del programa deducción cómputo Fig. 3.1: Correspondencia entre un Sistema Axiomático Formal y el autómata de Turing las cuestiones que esta máquina - y, por tanto, un ser humano - no sería capaz de hacer, ni siquiera en teoría. Y así obtiene unos resultados trascendentales. En primer lugar descubre que existen números reales que su autómata es incapaz de calcular, es decir, Turing descubre que existen números reales que son incomputables. En segundo lugar, determina que tampoco es posible decidir, por adelantado342, si un programa arbitrario es del tipo que finaliza en determinado momento, o si es del tipo que nunca lo hace y queda atascado indefinidamente en alguna iteración343. Y en tercer lugar, como consecuencia de estos problemas, Turing determina que los sistemas axiomáticos formales son incompletos, y que además el procedimiento de decisión pretendido en el programa de Hilbert no es factible. Del trabajo de Turing, se tienen resultados que extienden los de Gödel, quedando estos como corolario de un problema más general que la incompletitud: la incomputabilidad. “El encare de Turing pienso que es justo decir que en cierta forma es más fundamental. De hecho, Turing hizo más que Gödel. Turing no solamente obtiene como corolario los resultados de Gödel, él muestra que no puede haber un procedimiento de decisión. Fíjese, si uno asume que tiene un sistema axiomático formal para la aritmética, y es consistente, del trabajo de Gödel uno sabe que este no puede ser completo, pero podría aún existir un procedimiento de decisión. Podría aún haber un procedimiento mecánico que le permitiera a uno decidir si una determinada aserción es verdadera o no. Este problema fue dejado abierto por Gödel, pero Turing lo cierra. El hecho que no pueda existir un procedimiento de decisión es más fundamental, y uno obtiene la incompletitud como corolario.”344 ([Cha92], s. 2). [ 3.3.6.1.1 ] NÚMEROS REALES INCOMPUTABLES Para conferir una sinopsis del trabajo de Turing, comencemos por definir que un número es computable si existe un algoritmo para calcular, uno a uno, todos sus dígitos. Prima facie, esta definición estrictamente constructivista enfrenta un problema con los números reales, cuya expresión - decimal, binaria, o la que se prefiera - es una cadena infinita de dígitos. No obstante, existen algoritmos para calcular, por ejemplo, los dígitos del número π uno a uno345, y algoritmos para calcular las soluciones de ecuaciones algebraicas a coeficientes enteros. Sin embargo, estos números reales computables son la excepción, puesto que es posible enumerarlos en correspondencia con el algoritmo que los calcula, y de la teoría de conjuntos se sabe que el conjunto de los números reales no es enumerable ([Cha92], s. 2). Esto constituye la base para el razonamiento de Turing. 342 Por adelantado implica no ejecutar el programa en cuestión, sino decidirlo mediante el razonamiento - por ejemplo, estudiándolo mediante otro programa. 343 Nótese que - como es usual - aquí se abusa de la noción de ‘programa’, en el siguiente sentido: todo programa, en cuanto colección finita de símbolos, necesariamente ‘finaliza’; lo que puede no finalizar es su ejecución. Por tanto, cuando aquí se habla de ‘la finalización de un programa’, en realidad se refiere a ‘la finalización de su ejecución’, y así debe interpretarse. Esta cuestión se discute en la sección 3.4. 344 Texto traducido del original, en inglés. Ver nota 54, p. 39. 345 El hecho que este algoritmo o procedimiento mecánico sea - en la práctica - interminable, no es impedimento para considerarlo un procedimiento constructivista (sección 3.3.3.2.1). El autómata de Turing está preparado para ello (ver nota 341, p. 136). Ingeniería Electrónica – Universidad Católica del Uruguay 138 - [ 3 ] Modelos El argumento de Turing requiere de su autómata: propone que se listen, uno a uno, todos los posibles programas que su autómata es capaz de ejecutar. Naturalmente, esto no es posible en la práctica, pero en teoría, es un procedimiento constructivista perfectamente concebible. Entre estos (infinitos) programas, se hallan aquellos cuyo cometido es calcular algún número real, y la idea es eliminar de la lista el resto, es decir, todos aquellos programas que hacen otras cosas en lugar de computar un número real. Una vez depurada la lista, se podría formar una tabla de dos columnas, en la cual la primera identifica al programa, y la segunda contiene al número real computable que el programa correspondiente en la primera columna calcula 346. Ahora, adoptando el ‘método diagonal’ de Cantor, Turing propone recorrer la segunda columna de la tabla, observando los dígitos luego del punto decimal de la siguiente manera: el primer dígito del primer número, el segundo dígito del segundo, etc 347. Finalmente, se ‘construye’ un nuevo número real R, cuyos dígitos difieran, uno a uno, de los observados348. Un esquema de este procedimiento se representa en la Tabla 3.1: Tabla 3.1: Método diagonal para la demostración de existencia de un número real R incomputable (Turing) Programa Número real que calcula p1 0 . d11 d12 d13 d14 ... p2 0 . d21 d22 d23 d24 ... p3 0 . d31 d32 d33 d34 ... p4 0 . d41 d42 d43 d44 ... ... ... R 0 . ≠d11 ≠d22 ≠d33 ≠d44 ... ← R difiere de todos los números reales ‘computables’ por los pj El número R no puede estar en la lista coordinada con los programas p j, por construcción. Por lo tanto, es incomputable: no puede ser calculado, dígito a dígito, por ningún programa. Así, el número R es un número que el autómata de Turing - y, por ende, cualquier ser humano - es incapaz de computar. Sin embargo, ¿cómo es esto posible, si se acaba de dar un procedimiento - impráctico, pero teóricamente posible - para ‘construir’ al número R? La cuestión es que si bien el procedimiento de cálculo para R sugerido en la Tabla 3.1 parece factible, este depende de los resultados devueltos por los programas que computan a los distintos números reales - depende, concretamente, de que los programas pn efectivamente entreguen los dígitos dnn. Y esto constituye un caso particular del segundo problema de Turing, problema designado ‘Halting Problem’ en la literatura de habla inglesa, y que aquí referiremos como Problema de Finalización: el de decidir, por adelantado, sobre la finalización de un programa arbitrario. [ 3.3.6.1.2 ] EL PROBLEMA DE FINALIZACIÓN El Problema de Finalización se refiere a la cuestión si un programa - uno que está completamente autocontenido, es decir, que no requiere datos de entrada una vez iniciado349 346 De esto resulta evidente que los reales computables son enumerables, por lo cual - sabiendo de la teoría de conjuntos que el conjunto de todos los números reales no es numerable - ya se tiene el resultado de Turing: la mayoría de los números reales son incomputables. 347 Para comprender el argumento de Turing, basta considerar los reales comprendidos en el intervalo [0,1]. 348 Evitando el uso de los dígitos 0 o 9, por la sencilla razón que dos expresiones decimales como 0.39999.... y 0.40000.... corresponden al mismo número real. 349 Los datos requeridos por el programa deben estar incluidos dentro del propio programa; no pueden serle suministrados a posteriori por mecanismos ‘externos’ al programa (como por ejemplo, operaciones de entrada). Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 139 eventualmente finaliza350 ([Cha04], c. II). Un caso particular de este problema se presenta cuando se pretende calcular cada dígito del número R. Para calcular en n-ésimo dígito de R, se requiere ejecutar el n-ésimo programa pn, y esperar a que este devuelva el n-ésimo dígito dnn del número que calcula351, para entonces poder modificarlo. Prima facie, ejecutar el n-ésimo programa es perfectamente factible, pero ¿que sucede si este programa nunca devuelve el nésimo dígito, porque - por algún motivo - nunca finaliza?352 Y, justamente, ese debe ser el caso: no puede ser posible decidir, por adelantado, si un programa arbitrario finaliza, porque ello habilitaría a computar el número R353, un número que - por construcción - difiere de cualquier número real computable. Este es el argumento original de Turing ([Cha92], s. 2). Y la respuesta al Problema de Finalización es, consecuentemente, negativa. Nótese que el Problema de Finalización de Turing sería trivialmente soluble de establecerse un límite de tiempo; bastaría entonces ejecutar en el autómata un programa arbitrario, y si no finaliza antes del límite temporal preestablecido, entonces se clasificaría como un programa del tipo que no finaliza. Por esto es que el problema se presenta si la decisión se debe tomar por adelantado. Por adelantado, significa que la decisión se debe tomar sin ejecutar al programa, sólo por medios del razonamiento. Por adelantado, implica que podría elaborarse un ‘programa comprobador de finalización’, al cual se le suministraría como dato otro programa - el programa sobre cuya finalización se pretende decidir - y que como resultado indicaría si el programa bajo análisis es del tipo que finaliza o no. Sin embargo, puede demostrarse que un programa comprobador de finalización ‘universal’ es inconcebible, mediante un argumento por reducción al absurdo. Admitiéndose la existencia de un ‘programa comprobador de finalización’, podría elaborarse un tercer programa, que usara al programa comprobador para analizar un programa arbitrario suministrado como dato, y que - obtenido el resultado del comprobador - decidiera finalizar si el resultado del análisis indica que el programa suministrado como dato nunca finaliza, y decidiera no hacerlo en el caso contrario - por ejemplo, atascándose en un bucle infinito. En otras palabras, este tercer programa haría lo contrario al resultado indicado por el comprobador de finalización. Ahora, ¿que sucede si el programa que se le suministra como dato es él mismo?354 Recuérdese que este programa se atascaría en un bucle infinito si el programa bajo análisis es de los que finaliza, y finalizaría en caso contrario; ahora bien, siendo el propio programa el que se analiza, de finalizar ingresaría en un bucle infinito, por lo cual no finalizaría - se tendría una contradicción - y de no hacerlo, finalizaría - por lo que también se produciría un resultado contradictorio355. Consecuentemente, la elemental estructura de este 350 Se refiere a la finalización de su ejecución en el autómata. Ver nota 343, p. 137. 351 Al ser cada número real una cadena infinita de dígitos, evidentemente los programas pj deben ir entregando uno a uno los dígitos del número real que calculan, puesto que si ‘esperasen’ a tener el resultado completo antes de entregarlo, estarían a priori condenados a jamás devolver el resultado. 352 Nótese que el Problema de Finalización es equivalente a decidir por adelantado si un programa produce alguna salida (si ‘entrega algún resultado’): de ser posible determinar por adelantado la finalización de un programa, este puede alterarse para que - inmediatamente antes de finalizar - genere un ‘aviso’ indicando su inminente finalización. En el caso en cuestión, los programas pj deben ser capaces, en el transcurso de su ejecución, de publicar cada dígito que calculan (ver nota 351, p. 139) para lo cual no deben atascarse en ningún bucle infinito - es decir, deben ser del tipo que ‘finaliza’ - para cada dígito que calculan. 353 Puesto que se podría decidir, por adelantado, si cada programa pn devuelve el dígito dnn , y así se tendría asegurado de antemano que es teóricamente factible elegir los dígitos de R para que este resulte ‘incomputable’. Paradójicamente, podría construirse un programa adicional que ejecutase a cada pn hasta obtener el dígito dnn necesario y alterarlo, con lo cual R sería ‘computable’. Este programa adicional nunca se atascaría en un bucle infinito puesto que de antemano se sabría que los pn efectivamente le devuelven los dígitos requeridos. 354 Nótese que, en esencia, lo que se está proponiendo aquí es una autorreferencia, y esta es perfectamente factible. 355 El argumento usa la capacidad de autorreferencia del formalismo - tal como hace Gödel en su trabajo (sección 3.3.5.1) - para generar una contradicción al estilo de la Paradoja de Russell (sección 3.3.3.1.2). Ingeniería Electrónica – Universidad Católica del Uruguay 140 - [ 3 ] Modelos programa paradójico permite concluir que es imposible elaborar un ‘programa comprobador de finalización universal’, es decir, un programa capaz de analizar a cualquier programa arbitrario, y determinar si es del tipo que finaliza o no. Y por tanto, se tiene otra demostración de que el Problema de Finalización es insoluble - o, más precisamente, incomputable. El argumento ‘diagonal’ de Cantor, aplicado a los números reales computables, permite deducir que existen números reales incomputables por el autómata de Turing. Ello implica, además, que no puede determinarse de antemano (mediante el razonamiento, o un algoritmo) si un programa arbitrario - cualquier posible algoritmo ejecutable por el autómata de Turing - es del tipo que produce un resultado o no, si finaliza o no. [ 3.3.6.1.3 ] CONSECUENCIAS DE LA INCOMPUTABILIDAD Y LA INSOLUBILIDAD DEL PROBLEMA DE FINALIZACIÓN Que el Problema de Finalización de Turing sea insoluble tiene una consecuencia nefasta sobre el programa de formalización de Hilbert. Turing demuestra que no existe conjunto de instrucciones alguno que, suministrado a su autómata, le permitan analizar a un programa arbitrario y decidir si es del tipo que finaliza o no. Pero si esta decisión no es factible mediante un procedimiento ‘mecánico’ como es la manipulación simbólica de su autómata, entonces tampoco puede haber un sistema axiomático formal à la Hilbert que permita resolver el Problema de Finalización. Puesto que un sistema axiomático formal, consistente y completo, daría un procedimiento ‘mecánico’ para solucionar el Problema de Finalización; si un sistema axiomático formal permitiese probar si cada programa individual es del tipo que finaliza o no, esto daría una forma de computar si un programa arbitrario eventualmente finaliza: simplemente, se construirían uno a uno todos los teoremas a partir de los axiomas, y así se obtendría - para todo programa ejecutable por el autómata - la prueba de que finaliza, o su refutación356. Pero el autómata de Turing es incapaz de resolver el Problema de Finalización, de forma que el precedente procedimiento ‘mecánico’ - y por tanto, computable - no puede ser factible. Consecuentemente, el sistema axiomático es necesariamente incompleto: existen programas para los cuales no es posible demostrar o refutar que finalizan; no hay forma de contener toda la verdad y sólo la verdad acerca del Problema de Finalización en un sistema axiomático formal que sea (o se asuma) consistente ([Cha04], c. II). Y para el programa formalista de Hilbert, la incompletitud derivada de la insolubilidad del Problema de Finalización constituye una limitación significativamente más restrictiva que la incompletitud de Gödel, porque muestra que lo que no existe es un procedimiento de decisión - y la incompletitud se tiene como corolario. Dado que el Problema de Finalización se puede derivar de la incomputabilidad, en definitiva se tiene que la incomputabilidad implica que los sistemas axiomáticos formales à la Hilbert - asumidos consistentes - no solamente son incompletos, sino que además carecen de un procedimiento de decisión. Considerando que los programas del autómata de Turing pueden ser la codificación de un cálculo lógico representativo de un sistema axiomático formal à la Hilbert - un ‘programa’ de Hilbert - Turing demuestra que no es posible obtener un procedimiento de decisión para tales sistemas - es decir, un procedimiento que permita decidir la prueba o refutación de toda aserción formulable en el sistema - puesto que permitiría resolver el insoluble ‘Problema de Finalización’ para cada programa. Consecuentemente, aún admitiendo la consistencia del sistema, existen programas sobre cuya finalización no 356 Se recorren todas las posibles pruebas en orden de tamaño, y se aplica el algoritmo de verificación de Hilbert a cada una hasta que se halla la prueba o refutación de que el programa arbitrario es del tipo que finaliza ([Cha99], c. 1). Véase la sección 3.3.4 por una explicación más detallada de este procedimiento, designado ‘British Museum Algorithm’ (designación cuyo motivo admito desconocer completamente). Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 141 se puede decidir por adelantado, lo que implica la incompletitud de los sistemas axiomáticos formales. Así, el sueño de Hilbert es decretado completamente inviable: Turing no solamente demuestra la incompletitud de los sistemas axiomáticos formales, sino que además determina que no es factible siquiera un procedimiento de decisión. La limitación del programa de Hilbert demostrada por Turing es más restrictiva que la demostrada por Gödel - y a la vez, más sencilla, y más fundamental: “¡La belleza en el encare de Turing de la incompletitud, basado en la incomputabilidad, es que podemos obtener un resultado de incompletitud sin saber nada acerca de la estructura interna del sistema axiomático formal! Todo lo que necesitamos saber es que existe un algoritmo de verificación, lo que ciertamente constituye un requerimiento mínimo. Porque si no hay forma de estar seguro que una demostración es correcta o no, entonces el sistema axiomático formal no es de gran utilidad.”357 ([Cha99], c. 4). El trabajo de Turing es entonces, en cierta medida, más profundo que el de Gödel. Gödel tuvo la intuición y el tesón para ir contra la tradición de dos milenios en matemáticas - y el coraje de sospechar que un individuo de la talla y el prestigio de Hilbert estaba equivocado. Al respecto, Turing elabora sobre el trabajo pionero de Gödel. Sin embargo, obtiene resultados más fundamentales que los de Gödel en cuanto a incompletitud – y además, obtiene resultados adicionales. Al mismo tiempo que Turing demuestra, como Gödel, que cualquier formalismo para razonar es incompleto, propone un formalismo universal para el cómputo: el lenguaje de máquina del autómata de Turing. El error de Hilbert consistió en prescribir el uso de lenguajes artificiales (lenguajes formales) para llevar a cabo pruebas, demostraciones, razonamientos; esto no funciona en virtud de la incompletitud. Pero la incompletitud no es aplicable al uso de lenguajes formales para el cómputo, para expresar algoritmos - por el contrario, el hecho que Turing demuestre la universalidad del cómputo, constituye una forma manifiesta de completitud. Así, si bien el formalismo impulsado por Hilbert falla para el razonamiento, resulta absolutamente exitoso para el cómputo: desde Turing, es la base teórica para la informática actual ([Cha99], c. 1). El trabajo de Turing contiene aún otros resultados significativos, aparte de la demostración de la incompletitud a causa de la incomputabilidad, y de la universalidad de los formalismos para el cómputo. Discute, entre otras cosas, como calcular π, como calcular raíces de ecuaciones... en esencia, Turing discute como efectuar análisis numérico con su autómata - el tratamiento de números reales, de precisión infinita, con su autómata de precisión finita ([Cha99], c. 1). El trabajo de 1936 de Turing, si bien elabora sobre la idea de Gödel, tiene la virtud de extenderla, de lograr una causa más fundamental para la incompletitud, que es la incomputabilidad. Sin embargo, la incompletitud no es el único resultado significativo de ese trabajo. Para demostrar la incomputabilidad, Turing diseña el modelo del primer computador: el autómata o máquina de Turing. Y con esta máquina de propósito general demuestra, además, que el formalismo pretendido por Hilbert para expresar razonamientos, que falla debido a la incompletitud e incomputabilidad, es sin embargo completo para expresar algoritmos. En otras palabras, demuestra la universalidad de los formalismos à la Hilbert para el cómputo, lo que constituye la base teórica para la actual informática. Y finalmente, discute como efectuar el cómputo con su autómata - de precisión finita - sobre objetos matemáticos como los números reales, de precisión infinita - es decir, inicia el análisis numérico ([Cha99], c. 1). Innecesario es, a la fecha, describir la trascendencia de cada uno de estos resultados colaterales a la incomputabilidad. 357 Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 142 - [ 3 ] Modelos Sin embargo, aunque la incomputabilidad es una razón más profunda que la incompletitud, tanto que la hace parecer un fenómeno mucho más natural, existe una razón aún más fundamental que la incomputabilidad, y es la existencia de aleatoriedad de carácter estructural en el seno de la matemática pura - tema que se discute en la siguiente sección. [ 3.3.6.2 ] ALEATORIEDAD COMO INCOMPRESIBILIDAD – LA TEORÍA DE INFORMACIÓN ALGORÍTMICA DE CHAITIN Precedidas por la conmoción que supuso la Física Estadística, la física de principios del siglo XX experimentó dos revoluciones significativas: la Teoría de la Relatividad, y la Mecánica Cuántica. Similarmente a la crisis en los fundamentos de la matemática de la época (sección 3.3.3.1) las teorías cuántica y relativista constituyen un cuestionamiento a los propios fundamentos de la física clásica. En particular, la física cuántica liquida la concepción determinista de la física clásica, proponiendo que en el dominio de las pequeñas dimensiones lo que prevalecen son efectos estrictamente aleatorios, es decir, que en la escala atómica la física es intrínsecamente indeterminista. Incidentalmente, del moderno estudio de la dinámica no lineal se observa que incluso en la física clásica de Newton existe una suerte de aleatoriedad e indeterminismo, surgiendo la Teoría del Caos como un aparente principio unificador de estas nociones358. Circa 1950, inspirado en la aleatoriedad que había filtrado en el seno de la física, y en conocimiento de los resultados de Gödel y Turing, Chaitin comienza a sospechar si la real causa de la incomputabilidad - y, por tanto, de la incompletitud - no radicaría en la existencia de aleatoriedad en el seno de la matemática pura. De ser así, quizás la razón ulterior para no poder encontrar la prueba de una aserción matemática dada es que realmente no hay nada que probar, porque la aserción se refiere a una cuestión aleatoria. A modo de ejemplo, Chaitin propone comparar el fenómeno físico del decaimiento de una sustancia radiactiva - cuya tendencia aparentemente suave y regular es en realidad constituida por pequeños saltos discretos, cuyo instante de transición es impredecible - con la cuestión matemática referente a la distribución de los números primos - cuya tendencia es una curva conocida, pero conformada por una secuencia de saltos discretos y erráticos, donde el siguiente número primo no es, a la fecha, predecible por ninguna teoría general359. Es así que, en la década de 1960, tanto Chaitin como Kolmogorov independientemente sugieren esta idea de aleatoriedad en el seno de las matemáticas, que - en el caso de Chaitin evolucionará hasta constituirse en la Teoría de Información Algorítmica (AIT360) ([Cha02a], p. 169). Inspirados en la aleatoriedad que había filtrado en el seno de la física a partir de la Física Estadística y - fundamentalmente - de la Mecánica Cuántica, a mediados del siglo XX Chaitin (e independientemente, Kolmogorov) comienzan a sospechar si la real causa de la incomputabilidad de Turing y de la incompletitud de Gödel no radicaría en la existencia de aleatoriedad en el seno de la matemática pura. Así, que no se pueda hallar la prueba (o 358 Recuérdese que aunque los sistemas no lineales presenten una compleja dinámica - designada por ello caótica - esta es, teóricamente, determinista. Sin embargo, en la práctica resulta muy costoso el cálculo de los detalles de la dinámica, debido al cómputo masivo que requiere, y adicionalmente, la alta sensibilidad ante perturbaciones lo haría inviable en casos que impliquen mediciones. Así, a la fecha sólo se puede pretender el tratamiento ‘determinístico’ de estos sistemas a nivel de su comportamiento ‘global’, adoptándose un encare ‘estadístico’ para lo ‘local’, los detalles. 359 Incidentalmente, este ejemplo pone de manifiesto la relevancia del argumento de Gödel contra el Platonismo. En física, se ha debido aceptar que existen cuestiones no calculables determinísticamente. Sin embargo, a los matemáticos acostumbrados a las ideas Platónicas - filosofía necesaria para su diario actuar, según Podnieks ([Pod97], s. 1.6) - les cuesta aún resignarse a que en su disciplina puedan haber cuestiones que no sean ni demostrables ni refutables (en particular, Hilbert suscribía a esta idea, que toda cuestión en matemáticas es dirimible en verdadero o falso). 360 Acrónimo de ‘Algorithmic Information Theory’, nombre original en inglés. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 143 refutación) de determinadas aserciones matemáticas quizás se deba a que el resultado es aleatorio – en cuyo caso no hay nada que probar. [ 3.3.6.2.1 ] ALEATORIEDAD ESTADÍSTICA, ALEATORIEDAD ESTRUCTURAL, ALEATORIEDAD ALGORÍTMICA La aleatoriedad que Chaitin y Kolmogorov sospechan subyacente a la matemática, no tiene exactamente el mismo carácter que la aleatoriedad que usualmente se asocia a los procesos físicos - por ejemplo, el proceso de tirar una moneda - aunque ambos tipos de aleatoriedad están íntimamente relacionados. La aleatoriedad con la cual habitualmente se lidia en física es de carácter ‘estadístico’, mientras que la aleatoriedad en matemáticas sería de carácter ‘estructural’. La aleatoriedad supuesta por Chaitin y Kolmogorov en el seno de las matemáticas no tendría el usual carácter ‘estadístico’ de la aleatoriedad en los procesos físicos, sino que sería una aleatoriedad de tipo ‘estructural’, relacionada con la primera, pero diferente. Como señala el propio Chaitin, una noción de aleatoriedad ‘estructural’ ya había sido esbozada por Leibniz más de dos siglos antes361, en una observación que relaciona aleatoriedad con complejidad. Leibniz se cuestiona como diferenciar entre un mundo gobernado por leyes - un mundo donde la ciencia es aplicable, y funciona - y uno que no lo es. En otras palabras, ¿como distinguir un conjunto de observaciones que siguen una ley matemática, de uno que no lo hace? Para precisar el problema, Leibniz plantea el siguiente experimento: ciérrense los ojos, y márquese una hoja de papel reiteradas veces con un lápiz, obteniéndose así una distribución aleatoria de puntos sobre el papel. Aún así - observa Leibniz - existirá una ‘ley’ matemática que pase por todos y cada uno de los puntos, porque siempre se puede construir una expresión que permita ‘calcular’ cualquier conjunto de puntos distribuidos aleatoriamente: la interpolación Lagrangiana, que para tres puntos (xA,yA), (xB,yB), y (xC,yC), resulta y = yA(x-xB)(xxC)/(xA-xB)(xA-xC) + yB(x-xA)(x-xC)/(xB-xA)(xB-xC) + yC(x-xA)(x-xB)/(xC-xA)(xC-xB)362. Y en este contexto, la respuesta de Leibniz al cuestionamiento inicial es que “...si la ley ha de ser demasiado complicada (‘fort composée’) entonces los puntos están efectivamente distribuidos en forma aleatoria, son ‘irrégulier’, no están de acuerdo con una ley científica. Pero si la ley es simple, entonces es una genuina ley de la naturaleza...”363 ([Cha04], c. III). Cabe notar que esta observación es más fuerte que el medieval Principio de Parsimonia364, puesto que que no solamente aduce que la teoría más 361 Cabe notar que Chaitin elabora sus ideas en forma autónoma, ‘reencontrándolas’ a posteriori en las secciones V y VI del ‘Discours de Métaphysique ’ de Leibniz (1686). 362 Una simplificación de este procedimiento puede usarse para ‘conectar’ puntos que se corresponden con muestras de una función ordinaria, por ejemplo, obtenidas de la medición experimental de un fenómeno: basta con construir un polinomio P(x) con coeficientes genéricos, de grado igual (o superior) a la cantidad de muestras, e imponer la anulación de la función y = P(x) en cada punto muestral. No obstante, es evidente para un científico que este método no habilita a decir que el polinomio así construido sea una ‘ley científica’ que rige al fenómeno cuya magnitud fue muestreada experimentalmente; esto no constituye un ejercicio de ‘ajuste de parámetros del modelo matemático de un fenómeno’ en el sentido estadístico, porque el modelo no proviene de una idea o concepto relacionado con la experiencia, sino de un mero artilugio de cálculo. Sin embargo, se verá que el argumento de Leibniz sigue otra línea de razonamiento que tiene que ver sólo con el concepto de información. 363 Texto traducido del original, en inglés. Ver nota 54, p. 39. 364 También conocido como Principio de Economía, o de Simplicidad; ‘Ockham’s Razor’ (u ‘Occam’s Razor’) en la literatura angloparlante. Es atribuido al fraile franciscano y lógico inglés William de Ockham (1284 - 1347) en el siglo XIV, y constituye la base del reduccionismo metodológico, siguiendo a Aristóteles. En Latín, “Pluralitas non est ponenda sine neccesitate”: “La pluralidad no debe ser postulada innecesariamente”. Es un argumento heurístico que no necesariamente brinda respuestas correctas. Constituye sólo una débil guía para la selección de la hipótesis científica que contiene la menor cantidad de suposiciones arbitrarias, siendo a la vez la más fructífera. Ante hipótesis igualmente ‘simples’ (ver nota 365, p. 144) el Principio de Parsimonia no es capaz de establecer preferencias. Ingeniería Electrónica – Universidad Católica del Uruguay 144 - [ 3 ] Modelos sencilla365 es la mejor, sino que explica el por qué. Pero aún así, el argumento de Leibniz no permite determinar la complejidad de una expresión. ¿Cómo medir la ‘complejidad’ de una ‘ley’, y compararla con la ‘complejidad’ de los datos que dicha ‘ley’ pretende ‘explicar’? Según Chaitin, “Leibniz tenía todas las piezas, sólo le faltaba componerlas. Puesto que él deificaba al 0 y al 1, y apreciaba la importancia de las máquinas de calcular. (...) La forma en que yo lo diría es así: considero una teoría científica como un programa binario en un computador para calcular observaciones, que son también expresadas en forma binaria366. Se obtendría una ley de la naturaleza si hay compresión, si los datos experimentales están comprimidos en un programa de computador que tiene menos bits que los que componen los datos que intenta explicar. Cuanto mayor el grado de compresión, mejor la ley, más se comprende a los datos. Pero si los datos experimentales no pueden ser comprimidos, si el programa más pequeño para calcularlos es tan grande como estos, entonces los datos no siguen una ley, carecen de estructura, no siguen un patrón, no son pasibles de estudio científico, son incompresibles. En una palabra, aleatorios, irreducibles.”367 ([Cha04], c. III). En matemáticas, aleatorio es aquel objeto que carece de estructura o patrón, y que por tanto no puede ser ‘calculado’ a partir de objetos más concisos, debiendo ser descrito ‘tal cual es’. Así, un objeto matemático aleatorio es tal que su descripción es irreducible, incompresible. Esta es la idea básica de aleatoriedad ‘estructural’. Esta aleatoriedad ‘estructural’ se diferencia de la ‘estadística’ en que no interesa de donde proviene, sino sólo como ‘es’, cual es su estructura. No obstante, mediante un proceso aleatorio en el sentido estadístico es posible generar un objeto matemático ‘estructuralmente’ aleatorio; de aquí la relación entre ambos tipos de aleatoriedad. Por ejemplo, la expansión binaria de un número real podría obtenerse mediante una secuencia infinita de lanzamientos independientes de una moneda equilibrada368. Prima facie, la secuencia binaria infinita así obtenida sería altamente improbable de producir mediante cálculo desde una fórmula concisa369, y por ende sería aleatoria en el sentido ‘estructural’. En conocimiento del autómata de Turing, y la noción de computabilidad, la referencia al cálculo que efectúa la noción de aleatoriedad de carácter ‘estructural’, sugiere a Chaitin reinterpretarla en términos computacionales, y designarla en consecuencia aleatoriedad algorítmica. Apelando a la noción de computabilidad - al autómata de Turing - la aleatoriedad ‘estructural’ inherente a las matemáticas puede interpretarse en términos algorítmicos: si el algoritmo más conciso que genera un objeto matemático (por ejemplo, un número) resulta igual o más largo que la descripción ‘directa’ del propio objeto (la cadena de cifras del número, en el ejemplo) entonces el objeto es aleatorio. En este contexto, la aleatoriedad ‘estructural’ es designada aleatoriedad ‘algorítmica’. 365 ‘Sencilla’ en el sentido de requerir, comparativamente, la menor cantidad de suposiciones arbitrarias para especificar su estructura teórica (y al mismo tiempo dar la mayor cantidad posible de respuestas coherentes con la realidad). No significa ‘sencilla de usar’: por ejemplo, la Teoría de la Relatividad Especial es ‘sencilla’ - se basa en sólo dos principios fundamentales - pero ‘difícil de usar’ en virtud del volumen de cálculos requeridos para efectuar predicciones. Generalmente, se sospecha de una teoría cuya cantidad de elementos arbitrarios es comparable - menos de un orden de magnitud, por ejemplo - con la cantidad de información que confiere acerca de la realidad. 366 Ray Solomonoff propuso en 1960 una idea similar ([Cha02a], p. 170). 367 Texto traducido del original, en inglés. Ver nota 54, p. 39. 368 Este proceso puede ser simulado enteramente en el dominio matemático, y de hecho, constituye en parte la idea del número Ω de Chaitin - la ‘Probabilidad de Finalización’ - que se discute en la sección 3.3.6.2.4. 369 Con la excepción, quizás, que el número obtenido sea justo la solución a una ecuación para la cual existe un procedimiento de cálculo de soluciones. Pero puede demostrarse que esto tiene probabilidad nula de ocurrir. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 145 [ 3.3.6.2.2 ] TEORÍAS CIENTÍFICAS, SISTEMAS FORMALES, Y PROGRAMAS: COMPRESIBILIDAD DE LA INFORMACIÓN Un objeto es ‘algorítmicamente aleatorio’ si su estructura impide que sea descrito en forma más concisa que darlo ‘tal cual’. Por ejemplo, un conjunto de datos físicos serían aleatorios - según la noción de aleatoriedad algorítmica - si la forma más concisa de publicarlos es en forma tabular, es decir, si no hay una teoría que proponga una ‘ley’ (una fórmula matemática) más ‘sencilla’ que los propios datos, con la cual ‘producirlos’ por cálculo. Por el contrario, si se cuenta con una teoría física adecuada para ‘explicar’ un determinado fenómeno (una serie de datos experimentales) en definitiva lo que se logró es ‘comprimir’ al conjunto de observaciones en un conjunto más pequeño de leyes o principios físicos. Similarmente, los sistemas axiomáticos en matemáticas cumplen una función de compresión: en los axiomas reside ‘comprimida’ una gran cantidad de información matemática (los teoremas, es decir, las aserciones verdaderas) que se puede extraer mediante las reglas de inferencia asociadas al sistema axiomático. Así, la posibilidad de contar con teorías físicas, o sistemas axiomáticos para la matemática, reside en que - en cada caso - los ‘datos’ no son información algorítmicamente aleatoria, y que por tanto se pueden ‘comprimir’. Dado que los axiomas son hipótesis que deben hacerse cada vez que se trabaja en matemáticas, y dado que la adopción de cada hipótesis constituye inevitablemente un acto de fé, el minimizar la cantidad de axiomas torna más confiable a la teoría matemática basada en el sistema (sección 3.3.5.2). Por tanto, cuanto mayor la ‘compresión’ que se logre de los teoremas en los axiomas, más confiable es la teoría matemática que descansa sobre el sistema axiomático formal en cuestión. Análogamente, cuanto menos los postulados en una teoría física - cuanto mayor la compresión de los fenómenos físicos en un conjunto reducido de postulados - más robusta resulta la teoría física [Cha00]. Consecuentemente, el Principio de Parsimonia puede justificarse en términos de la mayor compresión de la información que se logra con las ‘mejores’ teorías científicas. En la misma línea que la interpretación de los sistemas axiomáticos formales en base al autómata de Turing, Chaitin sugiere una interpretación ‘computacional’ para las teorías científicas: propone que toda teoría científica es esencialmente un ‘programa para calcular las observaciones’. Y en estos términos, la aplicación del Principio de Parsimonia implica que cuanto más pequeño es el programa respecto a lo que produce como salida (las ‘observaciones’) tanto mejor es la teoría. “¿Cual es el programa más conciso que produce una salida dada? Si el programa es conciso, y la salida no lo es, entonces se tiene una teoría. Si la salida es aleatoria, entonces no hay compresión posible, y la entrada debe ser del mismo tamaño que la salida.” ([Cha04], c. II). En virtud del equivalente computacional de los sistemas axiomáticos formales obtenido por Turing con su autómata, Chaitin propone considerar las teorías científicas como programas ejecutables por un computador para calcular las ‘observaciones’, es decir, efectuar predicciones. Puede observarse que los postulados en las teorías físicas contienen ‘comprimido’ al comportamiento del fenómeno modelado por la teoría, permitiendo su predicción - mediante cálculo e interpretación - a partir de ese conjunto reducido de suposiciones. Similarmente, la función de los axiomas en un sistema axiomático formal es contener ‘comprimidos’ a los teoremas, los cuales pueden ser extraídos por deducción mediante las reglas de inferencia asociadas al sistema. En este contexto, la idea es ‘comprimir’ la información en el programa; si el tamaño del programa es mayor que la propia información que produce como salida - o equivalentemente, si la forma más concisa para conferir la información es darla ‘tal cual es’ entonces la teoría o el sistema formal representado por el programa es inútil. Coincidentemente con el Principio de Parsimonia, el programa más conciso se correspondería con la mejor teoría, similarmente a como la minimización del programa que representa a un sistema formal lo torna Ingeniería Electrónica – Universidad Católica del Uruguay 146 - [ 3 ] Modelos más confiable, puesto que esencialmente implica minimizar el conjunto de axiomas del sistema. Así, COMPRESIÓN ES COMPRENSIÓN; la información aleatoria es incompresible, y por tanto, incomprensible370. [ 3.3.6.2.3 ] TEORÍA DE INFORMACIÓN ALGORÍTMICA La relación entre el Principio de Parsimonia y el tamaño de un programa, sugiere una forma de medir la complejidad de la información: en términos del tamaño del programa más conciso que la produce. Esta medida de la complejidad tiene también relación con el concepto de entropía en física: el tamaño de un programa es análogo al grado de desorden de un sistema físico. La entropía aumenta con el grado de desorden de un sistema, análogamente a como el tamaño de un programa crece conforme aumenta la aleatoriedad (algorítmica) de la información que debe producir como salida371. La relación entre compresibilidad y comprensibilidad sugiere una forma de medir la complejidad de la información: en términos del programa más conciso que la produce. Esta es la idea central de la Teoría de Información Algorítmica de Chaitin372. Esta forma de medir la complejidad computacional no se centra en el tiempo de cómputo373 sino en el tamaño del programa necesario para el cómputo, es decir, en la cantidad de información que es necesario suministrar al autómata de Turing - al computador universal para que pueda hacer su trabajo. Aquí referiremos a este concepto como complejidad algorítmica374. El interés de la Teoría de Información Algorítmica es exclusivamente el tamaño de los programas, independientemente del tiempo de cómputo - la complejidad algorítmica. Es una forma distinta al tiempo de cómputo para medir la complejidad computacional, que se refiere sólo a la mínima cantidad de información que se debe suministrar a un computador para que realice su tarea. El cómputo debe ser factible mediante el autómata de Turing, o cualquier computador universal equivalente, y por ende, debe ser discreto. En la medida en que no afectan significativamente a la complejidad algorítmica, la elección del computador y del lenguaje de programación es irrelevante; no 370 Nótese la analogía entre esta afirmación, y la diferencia entre ‘aprender de memoria’ vs. ‘aprender los conceptos’, cuestión tan cara en el ámbito educativo. E infiérase, en consecuencia, la trascendencia de estos resultados en cuanto a las posibilidades de cognición humanas – quizás existan patrones o estructuras no detectables siquiera por una autómata de Turing, máquina ideal con memoria infinita y la eternidad para realizar los cómputos. (Para un caso no ideal como el autómata de Turing, Klir ilustra en forma manifiesta la limitación que existe en todo proceso de observación de un sistema discreto real, y su incidencia en la posibilidad de detección de patrones o estructuras, mediante la introducción del concepto de ‘variables de muestreo’ para la observación de la actividad del sistema discreto, de las cuales un conjunto fijo constituye una ‘máscara de observación’, constituyendo una memoria finita, de aplicación durante un período de observación también finito. [Kli69], s. 3.3, pp. 114-119; el ejemplo 3.6 es particularmente ilustrativo). 371 Por ejemplo, un programa que calcule las posiciones de las moléculas de un gas a temperatura ambiente, será - en relación al número de moléculas - significativamente más grande que uno que calcule la estructura de un cristal, debido a la regularidad estructural de este último comparada con la del gas. 372 La referencia más completa al tema, disponible gratuita y públicamente, es [Cha03]. 373 A este aspecto se dedicó Von Neumann, quien - após de Turing - comprendió la importancia de estudiar el tiempo de cómputo, siendo así uno de los pioneros en el estudio de la complejidad computacional. La complejidad computacional derivada del tiempo de cómputo constituye a la fecha un cuerpo del conocimiento bien desarrollado ([Cha02a], p. 169). 374 Este concepto es designado por el autor como ‘Program - size complexity’. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 147 obstante, una vez elegidos el computador y el lenguaje de programación, estos deben mantenerse fijos375. La Fig. 3.2 manifiesta la similaridad entre la Teoría de Información Algorítmica de Chaitin, las teorías científicas, y los sistemas axiomáticos formales, cuando se las considera desde la perspectiva de la aleatoriedad algorítmica de la información de salida, y sus posibilidades de compresión - la complejidad algorítmica. En cada caso, se tiene una entrada, un procesamiento ‘mecánico’, y una salida, tal que la información a la salida es obtenida mediante el proceso ‘mecánico’ a partir de la información de entrada376. En cada caso, la idea consiste en maximizar el tamaño de la salida, minimizando el tamaño de la entrada; obtener el máximo de información a partir del procesamiento de la menor cantidad de información posible; determinar cual es la mínima cantidad de información que se debe suministrar para obtener una salida dada377. Teoría de Información Algorítmica (AIT) programa ' elegante' computador datos de salida Método Científico teoría cálculos predicciones Sistema Formal Axiomático tipo Frege-Hilbert (Formulación abstracta Turing-Post) axiomas ENTRADA deducción SALIDA construida mecánicamente desde ENTRADA Tamaño de ENTRADA respecto de SALIDA mide complejidad de SALIDA teoremas SALIDA Fig. 3.2: Analogía entre la Teoría de Información Algorítmica (AIT), el Método Científico, y la formulación ‘computacional’ de los Sistemas Axiomáticos Formales tipo Frege-Hilbert, respecto de la complejidad algorítmica de la información de salida (su compresibilidad en la información de entrada) 375 En particular, ello implica que el lenguaje de programación debe ser estático, en el sentido que no debe evolucionar. Si bien este no es el caso de los lenguajes de programación empleados en la práctica, ello no invalida el argumento de AIT. 376 La similaridad puede apreciarse incluso con desarrollo embriogénico, que del ADN produce un organismo. Sin embargo, en el caso de la biología, existe un límite de tiempo - el de gestación - del que carece AIT, por lo cual la analogía no es tan exacta como en los restantes casos de la Fig. 3.2. Además, en biología la redundancia de información es usual - y deseable - por lo cual el ADN no es el programa más conciso para producir un organismo, con lo cual la analogía es aún más débil ([Cha04], c. III). Sin embargo, la idea básica es común: la información está ‘comprimida’ en un ‘programa’, y existen elementos para ‘ejecutar’ el programa y descomprimir la información que este contiene. 377 Nótese la coincidencia de esta idea con la concepción de Podnieks acerca de la naturaleza del método matemático (sección 3.3.2). Ingeniería Electrónica – Universidad Católica del Uruguay 148 - [ 3 ] Modelos ¿Cuanto puede comprimirse la información en un programa que la produzca como salida? La experiencia cotidiana con el computador parece indicar que hay un tope para la compresión de la información, lo que implica la existencia de un programa ‘mínimo’ en cada caso. Chaitin define que un programa computacional es ‘elegante´ si no hay otro programa más conciso - en el mismo lenguaje - que produzca exactamente la misma salida (independientemente del tiempo de ejecución). Esta definición admite que exista más de un programa estrictamente del mismo tamaño que el ‘elegante’ - es decir, admite la existencia de un conjunto de programas ‘elegantes’ - pero ninguno de tamaño menor. La existencia de programas ‘elegantes’ está garantizada por el mero hecho que el conjunto de tareas computacionales es un conjunto no vacío (existen tareas computacionales); además, es un conjunto infinito numerable de elementos. Un programa ‘elegante’ es, en sí, computacionalmente irreducible. Considérese el siguiente proceso, donde en primera instancia la ejecución de un programa designado ‘generador’ produce o computa al programa ‘elegante’ como salida, y en segunda instancia la ejecución del programa ‘elegante’ produce la salida: programa 'generador' computador programa 'elegante' computador salida El precedente proceso se puede efectuar mediante un programa único - designémosle ’conciso’ - constituido por la concatenación del programa ‘generador’ con una rutina sencilla, de tamaño fijo y pequeño, que se encarga de tomar la salida del programa ‘generador’ y hacerla ejecutar: programa 'conciso' = {programa 'generador' + rutina de tamaño fijo} computador salida Se tiene así exactamente la misma salida del programa ‘elegante’ a partir del ‘conciso’. Pero el programa ‘conciso’ - por más conciso que sea - no puede ser más pequeño que el ‘elegante’, puesto que se estaría obteniendo la misma salida que la producida por el programa ‘elegante’ a partir de un programa más pequeño, en contradicción con la hipótesis que un programa ‘elegante’ es el más pequeño posible para una salida dada378. Consecuentemente, un programa ‘elegante’ es, a fortiori, computacionalmente irreducible ([Cha02b], s. V). Un programa computacional se define ‘elegante´ si no hay otro programa más conciso - en el mismo lenguaje - que produzca exactamente la misma salida (independientemente del tiempo de ejecución). Si bien la definición no exige unicidad 379, un programa ‘elegante’ es computacionalmente irreducible; es la compresión óptima de su salida. Y entonces, por definición, su tamaño es la medida de la complejidad de la salida. En virtud de la precedente definición de ‘elegancia’, y la consideración de las teorías científicas (y los sistemas axiomáticos formales) como programas, la aplicación del Principio de Parsimonia y criterios de confiabilidad sugerirían la elección de aquellas teorías y sistemas formales representados por programas ‘elegantes’. “Desde ‘Elementos’ de Euclides, una verdad matemática se establece mediante reducción a verdades más simples hasta que las auto-evidentes - ’axiomas’ o ‘postulados’ (¡los átomos del pensamiento!) - son alcanzadas.” ([Cha02b], s. V). Por tanto, es de interés la consecución de un método para determinar los programas ‘elegantes’ en cada caso. Sin embargo, este intento produce el primer resultado de incompletitud derivado de la Teoría de Información Algorítmica: no es posible determinar si un programa es ‘elegante’. Y por tanto, no 378 O es uno del conjunto de programas ‘elegantes’ que producen esa salida. 379 La definición admite la existencia de un conjunto de programas ‘elegantes’: un conjunto de programas cuya salida es exactamente igual a la del programa ‘elegante’, y cuyo tamaño es exactamente igual a ese programa. En esencia, lo que no se presume es unicidad en la compresión algorítmica de la información. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 149 es posible determinar si se dispone de la mejor teoría para explicar una serie de observaciones dada, y tampoco es posible determinar si el sistema formal es el más conciso para generar un conjunto de teoremas dados. La demostración de que no es posible determinar si un programa es ‘elegante’ sigue un argumento similar al que muestra que un programa elegante es computacionalmente irreducible. Considérese, en primera instancia, un sistema deductivo. Este se puede representar mediante un programa para un determinado computador, cuya ejecución genera todas las deducciones del sistema - el conjunto infinito de todos los teoremas del sistema. Supóngase además que el programa es ‘elegante’, es decir, es el más conciso que genera al conjunto de teoremas. El tamaño de este programa ‘elegante’ es, por definición, la medida de la complejidad del sistema. sistema formal axiomático (programa 'elegante') computador conjunto de todos los teoremas Considérese, en segunda instancia, una rutina de tamaño fijo que - combinada con el programa ‘elegante’ - detecta al primer programa ‘elegante’ generado por el sistema 380, cuyo tamaño sea mayor que los tamaños sumados del programa ‘elegante’ (la complejidad del sistema) y la rutina de tamaño fijo: programa 'elegante' + rutina1 de tamaño fijo computador primer programa 'elegante', de tamaño mayor que la complejidad del sistema más la rutina1 de tamaño fijo Considérese, finalmente, que la rutina de tamaño fijo no solamente detecta al primer programa ‘elegante’ generado por el sistema - cuyo tamaño supera a la complejidad combinada del sistema y la propia rutina de tamaño fijo - sino que además lo pone a ejecución, y publica su salida (distinguimos los casos con los subíndices 1 y 2, respectivamente): programa 'elegante' + rutina2 de tamaño fijo computador salida del primer programa ' elegante', de tamaño mayor que la complejidad del sistema más la rutina2 de tamaño fijo Se supone que la rutina de tamaño fijo (cualquiera de 1 o 2) fue concebida de forma tal que el tamaño del primer programa ‘elegante’ detectado sea mayor que la complejidad del sistema más la propia rutina de largo fijo381. Sin embargo, el precedente esquema muestra que es posible producir la salida del primer programa ‘elegante’, a partir de un algoritmo de menor tamaño382, lo que contradice su calidad de ‘elegante’. Por tanto, o bien el sistema es 380 Por la misma razón que un sistema formal puede ser representado mediante un programa, los teoremas generados por un sistema formal son también programas: constituyen expresiones simbólicas válidas en el lenguaje formal del cálculo lógico que representa al sistema, a las que son aplicables las reglas de inferencia del sistema. En particular, alguno de estos programas podrá ser ‘elegante’, si el sistema permite demostrar ciertos teoremas de más de una forma (como por ejemplo sucede frecuentemente en el sistema axiomático formal de la matemática actual). 381 Si se detectan programas ‘elegantes’ cuyo tamaño no cumpla la condición, simplemente se descartan y se busca hasta obtener el primero que lo haga. 382 Nótese que este argumento requiere que la teoría sea generada por un programa ‘elegante’, es decir, algorítmicamente irreducible. Y aunque no se disponga de tal programa, es perfectamente posible asumir su existencia, y no por ello se invalida el argumento. Ingeniería Electrónica – Universidad Católica del Uruguay 150 - [ 3 ] Modelos inconsistente (algo no deseable, por cierto) o bien el programa en cuestión no puede ser hallado. Prefiriendo asumir la consistencia del sistema, se concluye que no es posible identificar un programa ‘elegante’ generado por un sistema formal, si su tamaño supera significativamente a la complejidad del sistema383 ([Cha02b], s. VI). Medir la complejidad de la información en términos de AIT pone de manifiesto un serio inconveniente: en general, no es posible decidir si un programa es el más conciso para producir una determinada salida, es decir, no es posible determinar si un programa es ‘elegante’. Si se tiene un programa que calcula algo, esto constituye sólo una cota superior para el tamaño del programa ‘elegante’ que calcula lo mismo, pero jamás se puede probar el ínfimo [Cha00]. En particular, no es posible probar que un programa generado por un sistema formal es ‘elegante’, si su tamaño es significativamente mayor que el tamaño del programa ‘elegante’ que genera todos los teoremas del sistema axiomático formal al cual el último representa. Se tiene así un primer resultado de incompletitud derivado de la Teoría de Información Algorítmica: no se puede probar que un programa es ‘elegante’ si su tamaño supera significativamente la complejidad del sistema formal que lo genera ([Cha02b], s. VI). Sólo puede probarse que una cantidad finita de programas específicos son ‘elegantes’ - aquellos cuyo tamaño son menores que la complejidad del sistema ([Cha04], c. VI). Este resultado de incompletitud tiene una consecuencia inmediata que trasciende largamente a la Teoría de Información Algorítmica. Porque no poder demostrar que un programa es ‘elegante’ si su tamaño supera al del algoritmo que genera todos los teoremas de la teoría (por definición, la medida de la complejidad de la teoría) o equivalentemente, no poder hallar ‘mecánicamente’ más que una cantidad finita de programas ‘elegantes’, implica que el Problema de Finalización de Turing es insoluble ([Cha04], c. VI). Y ello implica la incompletitud de los sistemas axiomáticos formales à la Hilbert (sección 3.3.6.1.3). Un argumento por reducción al absurdo permite verificar que la solución al Problema de Finalización de Turing permitiría determinar cada programa ‘elegante’. Asumiendo que es factible determinar para cada programa si es del tipo que finaliza, se ejecutan sólo aquellos que finalizan y se registran las salidas correspondientes. Ordenando entonces estos programas por tamaño, de aquellos que producen la misma salida se descartan todos excepto el primero (o el conjunto de los primeros, de igual tamaño); así, en teoría se pueden obtener todos los programas ‘elegantes’ que genera el sistema - una cantidad infinita. Pero según AIT sólo es posible determinar un número finito de programas ‘elegantes’ - solamente aquellos de menor tamaño que la complejidad del sistema - por lo cual la hipótesis es necesariamente falsa: el Problema de Finalización no puede tener solución ([Cha04], c. VI). La imposibilidad de determinar en general que un programa es ‘elegante’, implica que el Problema de Finalización de Turing es insoluble. De esta forma, el primer resultado de incompletitud trasciende la Teoría de Información Algorítmica, proyectándose sobre la teoría matemática axiomática y formal à la Hilbert (sección 3.3.6.1.3). Esta revisión del Problema de Finalización de Turing desde la perspectiva de la Teoría de Información Algorítmica - medición de la complejidad de la información en función del tamaño de los programas que la producen - aporta nuevas posibilidades al problema. En la sección 3.3.6.1.2 se aduce que el Problema de Finalización es insoluble puesto que no es factible la consecución de 383 Conviene considerar la complejidad de un sistema axiomático formal como el tamaño en bits del programa que enumera el conjunto de teoremas [Cha92]. Es decir, es el tamaño en bits de los axiomas (el ‘programa’) más el tamaño en bits del intérprete que ejecuta al programa de acuerdo a las reglas de inferencia, más el tamaño en bits de un programa adicional que enumere los teoremas producidos por el intérprete a partir de los axiomas. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 151 un algoritmo comprobador de finalización ‘universal’ 384, es decir, un algoritmo que permita decidir si un programa arbitrario385 es del tipo que finaliza o no. Prima facie, esto podría inducir a pensar que ningún algoritmo comprobador de finalización es concebible. Sin embargo, desde la perspectiva de AIT cabe una alternativa: dado un algoritmo chequeador de finalización de N bits, entonces existe un programa cuyo tamaño es al menos unos pocos bits mayor que N, que nunca finaliza, lo cual no es posible determinar con el algoritmo chequeador de N bits - asumiendo que este algoritmo prefiere no dar una respuesta a dar una respuesta equivocada ([Cha04], c. VI). Esto significa que el Problema de Finalización es soluble pero sólo en un número finito de casos, al igual que la determinación de los programas ‘elegantes’ es factible solamente para aquellos cuyo tamaño no supera la complejidad de la teoría (un número finito de programas). La precedente limitación inherente a un posible algoritmo comprobador de finalización tiene consecuencias sobre los sistemas formales à la Hilbert: dado que el algoritmo chequeador de finalización puede reinterpretarse en términos de un sistema axiomático formal (sección 3.3.6.1.3) un sistema axiomático formal tiene complejidad limitada, finita, y que cualquier cuestión cuyo tamaño en bits sea mayor que la versión computerizada del sistema386 no puede ser dilucidada en ese sistema. Recuérdese que la idea de un sistema axiomático es contener todos los teoremas ‘comprimidos’ en los axiomas, y que esta información se puede extraer aplicando las reglas de inferencia asociadas al sistema. Así, los axiomas y las reglas de inferencia constituyen el programa ‘elegante’ (con su intérprete) para la generación de los teoremas, y la complejidad algorítmica de estos últimos es entonces necesariamente igual o menor que la complejidad de los primeros - porque en los sistemas formales à la Hilbert no se agrega información desde fuera del sistema: todo está allí, en los axiomas y las reglas de inferencia. Si se compara la complejidad algorítmica 387 del sistema axiomático con la complejidad algorítmica del resultado que se pretende derivar de ese sistema, y el resultado es más complejo que el sistema, entonces no es factible obtenerlo del sistema mediante deducción ([Cha99], c. 1). Un sistema axiomático formal de N bits permite decidir todas las cuestiones de complejidad hasta N bits; ese es el límite del sistema [Cha00]. La complejidad algorítmica finita de un sistema axiomático es capaz de capturar solamente una cantidad finita de información: para obtener más información a la salida, se debe suministrar más información a la entrada. [ 3.3.6.2.4 ] EL NÚMERO Ω: ALEATORIEDAD ALGORÍTMICA EN MATEMÁTICAS Hasta aquí, se ha ‘definido’ la aleatoriedad algorítmica, y en base a ello se ha conferido la idea de la Teoría de Información Algorítmica. Luego, se ha mostrado una consecuencia trascendental de esta teoría: no es posible demostrar, en general, que un programa es ‘elegante’ - o, en particular, que uno cuyo tamaño supera la complejidad del sistema es ‘elegante’ - lo cual implica que el Problema de Finalización de Turing es insoluble. Y, a su vez, ello implica la incompletitud de Gödel para los sistemas axiomáticos formales à la Hilbert (sección 3.3.6.1.3). Adicionalmente, se ha establecido una limitación al alcance de los sistemas axiomáticos formales, en términos del tamaño en bits de su programa equivalente en el 384 Este argumento constituye una demostración alternativa a la demostración original de la insolubilidad del Problema de Finalización, obtenida como corolario de la incomputabilidad. 385 Nótese que arbitrario implica una referencia a todo programa; por ello el calificativo de ‘universal’. 386 Los axiomas y las reglas de inferencia, o los axiomas y un generador de todas las cadenas simbólicas posibles combinado con un comprobador de teoremas. Estos ‘objetos’ conforman un conjunto finito, cuya complejidad algorítmica es, además, finita. 387 Recuérdese que la complejidad algorítmica es el tamaño del programa más conciso que produce ciertos resultados dados Ingeniería Electrónica – Universidad Católica del Uruguay 152 - [ 3 ] Modelos autómata de Turing (u otro computador universal arbitrario): un sistema axiomático formal de N bits permite determinar cuestiones de complejidad hasta N bits. Sin embargo, falta demostrar que efectivamente existe aleatoriedad algorítmica en el seno de la matemática pura. Esto es la idea del resto de la sección, donde se conectan más íntimamente la aleatoriedad algorítmica de AIT con la incomputabilidad de Turing mediante el número real aleatorio e incomputable Ω; luego se relaciona Ω con el Problema de Finalización de Turing; a su vez se asocia este problema con el 10º problema de Hilbert (referente a la solución de las ecuaciones Diofantinas) y así finalmente será posible constatar que existe aleatoriedad algorítmica al mismo nivel que causó el escándalo Gödeliano: la aritmética elemental. El camino hacia la constatación de existencia de aleatoriedad en la matemática pura se inicia considerando una observación efectuada por Borel, referente a la ‘indefinición’ de la noción de aleatoriedad: Borel observa que de poderse establecer una noción definitiva de aleatoriedad, ello permitiría identificar a un objeto aleatorio, que no sería aleatorio en absoluto. Para Borel, aleatorio implica que en cierta manera ‘no es posible distinguir al objeto del resto del conjunto’, puesto que se carece de una propiedad distintiva que permita seleccionarlo ‘del montón’. Y el problema consiste en que de definirse aleatoriedad, la propiedad de ser aleatorio se convierte en una característica que puede usarse precisamente para diferenciar objetos atípicos de un conjunto388. Según Chaitin, esto conduce a elaborar una jerarquía de nociones de aleatoriedad, donde la aleatoriedad en cada nivel se deriva de la definición de aleatoriedad del nivel previo, como una característica adicional. La conclusión de Borel es que no puede haber una definición última y definitiva de aleatoriedad; este concepto es escurridizo, porque hay algo paradójico en relación al mismo que impide su consecución. Definir aleatoriedad resulta, en definitiva, una cuestión de decidir cuanto se está dispuesto a demandar; donde se pone el límite y se toma lo que se tiene en ese punto como aleatorio ([Cha04], c. VI). El planteo de Borel acerca de la indefinición de la aleatoriedad puede efectuarse considerando números, y un número puede pensarse como una cadena de bits, si se considera su expresión en binario. En este contexto, Chaitin define que una cadena de bits infinita S es aleatoria si sus prefijos SN son - a excepción de una cantidad finita - cadenas finitas aleatorias. De esta forma, para cadenas infinitas, la aleatoriedad pasa a ser una cuestión indiscutible, absoluta. Pero para cadenas finitas, el argumento de Borel se aplica y efectivamente la cuestión es decidir donde se pone el límite y se toma una cadena como aleatoria. Al respecto, Chaitin propone emplear el siguiente criterio, que resulta de la aplicación de las ideas de AIT: una cadena finita de bits SN es aleatoria cuando su complejidad es mayor que N, es decir, cuando el tamaño en bits del programa más conciso que la produce es mayor que el largo en bits de la propia cadena. Es, en esencia, la aplicación de la definición de aleatoriedad algorítmica a una cadena de bits. E, intuitivamente, es una definición coherente: la descripción de una cadena de N 0’s o 1’s requiere saber únicamente la cantidad de bits que la componen y el valor de uno de ellos, de forma que el tamaño de un programa que la computa es del orden de log 2N << N bits (para N grande389); su complejidad es baja. Por el contrario, los programas ‘elegantes’ de N bits son algorítmicamente irreducibles, por lo que no pueden ser producidos por programas de menos de N bits; así, tienen complejidad del orden de N, lo que los ubica en el límite entre lo estructurado y lo aleatorio390 ([Cha99], c. VI). 388 Chaitin propone el siguiente ejemplo: Supóngase que de alguna manera se decide como distinguir entre números enteros cuyos dígitos forman una cadena aleatoria, y los que no. Luego, imagínese el primer número de N dígitos que satisface la definición de aleatoriedad prefijada. Ahora, note que - en caso de hacerlo - el número considerado sería en cierta manera atípico: es precisamente el primer número de N dígitos que posee esta propiedad particular que se fijó como criterio de aleatoriedad. Y así, deja de ser un número ‘del montón’ - posee una particularidad que permite distinguirlo - y entonces no puede ser aleatorio en el sentido de Borel. 389 Es esencialmente un bucle de N iteraciones que concatena una constante de un bit. Especificar N en binario requiere log2N bits, y el código correspondiente a un bucle finito es constante, de forma que resulta comparativamente pequeño conforme se incrementa N. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 153 Una cadena finita de N bits S N es aleatoria cuando su complejidad H(SN) es mayor que N, es decir, cuando el tamaño en bits del programa más conciso que la produce es mayor que el largo en bits de la propia cadena: H(SN) > | SN| = N → SN aleatoria. Una cadena infinita de bits S es aleatoria cuando todos sus prefijos S N - a excepción de una cantidad finita - son cadenas finitas aleatorias. A diferencia de las cadenas finitas, donde la complejidad es relativa, la característica de aleatoriedad de las cadenas infinitas es una cuestión absoluta. El siguiente paso para la constatación de la existencia de aleatoriedad en matemáticas, consiste en advertir que el número incomputable R que propone Turing (sección 3.3.6.1.1; Tabla 3.1) - el cual es una cadena infinita de dígitos - contiene información redundante. Para verlo, conviene considerar una situación equivalente: usando el mismo procedimiento que Turing, en lugar de ‘construir’ el número incomputable R simplemente se ‘construye’ un número binario fraccionario B, con la propiedad que el valor del n-ésimo bit luego del punto binario de B indica si el n-ésimo programa pn es del tipo que finaliza o no391. Así, cada uno de los infinitos bits de este número binario incomputable B nos daría la solución del Problema de Finalización para cada respectivo programa. Pero los diferentes casos del Problema de Finalización están relacionados, y por esa razón B contiene información redundante: los bits de B no son independientes uno de otro. Y la causa es que una cantidad finita de instancias del Problema de Finalización de Turing no son independientes. Si el Problema de Finalización se pretende resolver para una cantidad finita N de programas, y - de alguna manera, que no es relevante al momento - se sabe de antemano que una cantidad K son del tipo que finaliza, simplemente se ejecutan los N programas en paralelo hasta que se observa la finalización de los K primeros de ellos, y el resto se puede ignorar. Esto es expresable con menos de N bits de información; bastan en el orden de log2N bits, lo necesario para expresar un número K ≤ N en binario. Así, N instancias del Problema de Finalización es información redundante si se conoce de antemano cuantos programas de los N son del tipo que finaliza, y se necesitan K ≤ N bits de B para indicarlo en forma concisa. Pero esto implica que cada prefijo BN de B es una cadena finita compresible, y por tanto, no aleatoria. Como los programas pn son un infinito numerable, B tiene infinitos prefijos BN que no son cadenas finitas aleatorias, y entonces - por definición - B no es una cadena infinita aleatoria. Entonces, es compresible, y por tanto contiene información redundante. Sin embargo, la idea de conocer de antemano cuantos programas de un conjunto son del tipo que finalizan, sugiere una forma de eliminar la redundancia. Precisamente, esa idea es la que Chaitin emplea para la definición de su número Ω. Considerando el problema de la ‘indefinición de la aleatoriedad’ de Borel, sus derivaciones en la noción de aleatoriedad para cadenas de bits finitas e infinitas, y la redundancia en el Problema de Finalización de Turing, Chaitin reformula el Problema de Finalización de la siguiente manera: en lugar de preguntarse si un programa individual es del tipo que finaliza, considera la totalidad de los programas y se pregunta ¿cual es la probabilidad que un programa elegido al azar, desde conjunto de todos los programas, sea del tipo que finaliza? De esta manera, se combinan todas las instancias del Problema de Finalización de Turing en un único número real - la Probabilidad de Finalización - que se designa Ω. Dado que la Teoría de Información Algorítmica considera los programas como cadenas de bits, la reformulación de Chaitin del Problema de Finalización de Turing, es equivalente a generar un 390 De hecho, tienen apenas la estructura suficiente para hacerlos auto - delimitados (la noción de auto - delimitación y sus razones se exponen más adelante en la presente sección). Esencialmente, la estructura corresponde a su encabezado - del orden de log2N bits - que indica precisamente la cantidad N de bits del programa (ver nota 394, p. 154). 391 Por ejemplo, B=.011010... significaría que p1, p4, y p6 son programas del tipo que nunca finalizan, mientras que p2, p3, y p5 son del tipo que efectivamente finaliza, etc. En esencia, este número B es un paso previo en la ‘construcción’ del número R. Ingeniería Electrónica – Universidad Católica del Uruguay 154 - [ 3 ] Modelos programa, bit a bit, mediante lanzamientos independientes de una moneda balanceada, y estudiar la probabilidad de que el programa generado de esa manera azarosa sea del tipo que finalice. De acuerdo a la definición clásica de probabilidad, la probabilidad de obtener un programa dado de N bits, mediante lanzamientos de una moneda equilibrada para determinar cada uno de sus bits, es simplemente 2-N. Así, cada programa - del tipo que finaliza - contribuiría a la Probabilidad de Finalización con un término 2-|p|, donde |p| es su tamaño medido en bits. Sin embargo, la suma de estos (infinitos) términos sería divergente, por lo cual la Probabilidad de Finalización no estaría bien definida392. Chaitin soluciona este problema introduciendo la siguiente restricción: ninguna extensión de un programa válido puede ser un programa válido393. Y esto se obtiene exigiendo que los programas deben ser auto-delimitados, es decir, el computador debe ir leyendo un programa de a bit y decidir por si mismo cuando ha llegado al final del programa, y por tanto debe dejar de leer. Dado que los programas no tienen una única longitud, el computador debe poder determinar cual es el último bit correspondiente al programa a partir del propio programa que ejecuta, por lo cual la codificación de los programas tiene que advertírselo de algún modo394. Por cierto, esta exigencia no constituye ninguna extravagancia: todos los lenguajes de programación reales brindan constructores para indicar tanto el fin como el inicio de los programas, y con estos delimitadores es posible anidar y concatenar subprogramas, análogamente a como los paréntesis permiten delimitar las expresiones matemáticas 395. Cabe notar que esta exigencia de autodelimitación de los programas no solamente constituye un recurso para la correcta definición de Ω, sino que compromete a todos los resultados de AIT 396; 392 Por ejemplo, considerando que los dos únicos posibles programas de 1 bit de longitud y al menos uno cualquiera más son del tipo que finaliza, la suma ya resultaría mayor que 1, y por lo tanto, sería directamente inadmisible como un valor probabilístico. Con mayor generalidad: la expresión de la suma es c1·2 - 1 + c2·2 - 2 + c3·2 - 3 + c4·2 - 4 + ... donde los ci indican la cantidad de programas de i bits que son del tipo que finalizan; suponiendo - sin mayor pérdida de generalidad - que para cada tamaño i sólo la mitad de los programas son del tipo que finaliza, ci = ½·2 i y la suma resultaría (½·2 1)·2 - 1 + (½·2 2)·2 - 2 + (½·2 3)·2 - 3 + (½·2 4)·2 - 4 + ... = ½ + ½ + ½ + ½ + ... → ∞. 393 Para el ejemplo considerado en la nota 392 (p. 154) si los dos únicos programas de 1 bit fuesen del tipo que finaliza esta restricción garantiza que no puede haber un tercero que lo haga. En este caso, la probabilidad queda bien definida - y además es coherente el resultado que se obtiene (la certeza). No es difícil ver que esto vale en el caso general. 394 Una estrategia trivial consiste en dar cada bit del programa por duplicado, y finalizar con un par de bits diferentes: por ejemplo, 1100001100111100....001100100011010110010.... sería un programa hasta el par de bits 10 destacado en negritas, y un computador programado para reconocer esto podría decidir perfectamente cuando ha llegado al final del programa. Dado que esto implica la duplicación del tamaño del programa, una estrategia más sofisticada consiste en emplear esta técnica para describir sólo un encabezado auto - limitante que preceda al programa, donde se indique el número de bits que componen al programa que sigue a ese encabezado; de esta forma, se duplicaría solamente en tamaño al encabezado (que representa un número natural, el largo de la secuencia de bits del programa que lo sucede). Adicionalmente, pueden predefinirse encabezamientos anidados, para lograr mayor economía en caso de programas extensos. Nótese que, en general, esta técnica de encabezamiento aumentaría el largo de un programa de N bits en el orden de log2N bits. 395 Esto se hace en forma casi refleja al editar el código fuente de un programa; los ‘constructores’ referidos son expresiones simbólicas características del lenguaje formal, como ‘begin’, ‘end’, ‘;’, ‘{‘, ‘}’, etc. que de algún modo los compiladores, ensambladores y enlazadores traducen al formato binario interpretable por el computador correspondiente. 396 Esta restricción está relacionada con la compresibilidad de una cadena de bits. Kolmogorov define una cadena infinita de bits como aleatoria, si cada uno de sus ‘prefijos’ finitos - sus posibles comienzos es una cadena aleatoria. Sin embargo, Löf lo impugna diciendo que puede hacerse una compresión del orden de log2N (donde N es la longitud en bits de cada prefijo) por la eventual existencia de sucesiones de 0’s o 1’s en los prefijos. Pero la auto - delimitación que propone Chaitin tiene el efecto de agregar a una cadena de N bits un encabezado justamente del orden de log 2N. “... la mayoría de las cadenas de N bits auto - delimitantes requieren - al menos - programas de N + log2N bits. Ahora sí es posible demandar que la complejidad de cada prefijo de N bits de una cadena aleatoria infinita nunca se reduzca por debajo de N. Los ‘baches’ de compresión del orden de log2N ahora reducen los prefijos de N + log2N a N, en lugar de N a >> p. 155 Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 155 de hecho, según su autor, el planteamiento original de esta teoría en 1960 es falaz por este motivo, y por ello debió ser reformulada (1974) [Cha92]. Además, la autodelimitación es coherente con la hipótesis de trabajo del Problema de Finalización de Turing, que demanda que los programas no efectúen lecturas externas 397 (sección 3.3.6.1.2). Así, en definitiva, promediando sobre el Problema de Finalización de Turing, se puede definir la Probabilidad de Finalización - el número Ω - como el límite de la suma de 2-|p|, donde |p| es el tamaño en bits de los programas autodelimitados p del tipo que finalizan: =∑ 2 p −∣p∣ : probabilidad de finalización ; p : programa autodelimitado del tipo que finaliza ∣p∣: tamañoen bits de p La Probabilidad de Finalización Ω de Chaitin constituye una reformulación del Problema de Finalización de Turing, que considera el ensemble de programas autodelimitantes del tipo que finaliza, e indica la probabilidad de que un programa, generado aleatoriamente bit a bit mediante lanzamientos independientes de una moneda equilibrada, finalice. Prima facie, parecería factible intentar el cálculo de Ω mediante una sucesión de aproximaciones. Fijando el computador y el lenguaje de programación, primero se establece un límite temporal tN finito para convertir el Problema de Finalización en un problema trivialmente soluble 398. Luego, en orden de tamaño creciente, se ejecuta cada posible programa de hasta N bits durante el tiempo tN finito, y cada programa que se observe que finaliza contribuye con 2-|p| al valor aproximado de Ω; los restantes programas se asumen son del tipo que no finaliza. Así, el (posible) error que se comete en esta aproximación deriva precisamente de asumir que los programas que no finalizaron dentro del límite temporal prefijado tN no lo harán jamás, y por tanto, en el límite N→∞ la aproximación a este número real Ω es por debajo. Nótese que aunque esta convergencia progrese muy lentamente399, el tiempo de cómputo no se considera parte del problema en AIT; el límite temporario tN es un artificio de carácter meramente práctico. No obstante, esta aproximación presenta un inconveniente estrictamente algorítmico: “Normalmente, para que los valores aproximados de un número real sean útiles, debe saberse que tan cerca se está del valor al que se está aproximando, debe conocerse lo que se llama la ‘tasa de convergencia’, o tener lo que se llama ‘un regulador de convergencia computable’. Pero aquí no tenemos nada de eso, sólo una secuencia de números racionales que muy lentamente se acercan a Ω, pero sin jamás habilitarnos a saber que tan cerca estamos de Ω en determinado momento de este interminable cómputo.”400 ([Cha04], c. VI). Esto deriva del hecho que el Problema de Finalización es en realidad insoluble, y por tanto - aunque se alargue tN- no se puede tener ninguna idea acerca de la cantidad de programas que finalizarán en algún momento más allá del tN fijado. Y las consecuencias de este frustrante intento de aproximación a Ω son importantes: Ω es un real incomputable, y sus bits son información irreducible. Una vez definido Ω, la Teoría de Información Algorítmica presenta su segundo resultado de incompletitud: Ω es un número real incomputable . El argumento para demostrarlo aduce que podrían usarse los primeros N dígitos de la expresión en binario de Ω (los primeros N bits de << p. 154 N - log2N. Y de esta forma, mi definición de aleatoriedad en términos de complejidad funciona tanto para cadenas finitas como infinitas. Resulta ser equivalente a la definición de Martin - Löf para cadenas infinitas. ” ([Cha99], c. 6). 397 Una razón trivial para ello, es que desde el exterior se les transmita la orden de finalización. 398 Este límite temporal tN debe - al menos - alcanzar para que el computador elegido pueda leer un programa arbitrario de N bits, e iniciar su ejecución. En la práctica, debe permitir la ejecución durante un período razonable; Chaitin, por ejemplo, asume tN = N segundos. 399 Más lentamente conforme se incrementa N, dado que el tiempo requerido para calcular los bits de Ω crece según el máximo tiempo de ejecución de un programa de N bits [Cha00]. 400 Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 156 - [ 3 ] Modelos Ω) para decidir el Problema de Finalización para todos los programas de hasta N bits. Por definición, para conocer el N-ésimo bit de Ω se deben haber visto todos los programas de tamaño menor o igual a N bits que finalizan, verbigracia, ello implica conocer la solución al Problema de Finalización para todos los programas de hasta N bits. Pero N es arbitrario (puede hacerse que N→∞) y el Problema de Finalización es soluble únicamente para un número finito de casos401, de forma que no podrá ser posible conocer infinitos bits de Ω. Así, Ω es efectivamente incomputable; ningún procedimiento de aproximación permitirá alcanzar el valor de Ω, ni siquiera en teoría. Ω es un número real incomputable: no es factible un procedimiento para calcular sus bits, uno a uno, puesto que ello implicaría conocer la solución al Problema de Finalización para todos los programas cuyo tamaño en bits sea menor o igual que la cadena de bits de Ω considerada hasta el momento – y si bien el Problema de Finalización es soluble para un número finito de casos, la longitud de esta cadena considerada crece indefinidamente. Este constituye el segundo resultado de incompletitud de la Teoría de Información Algorítmica. El número real incomputable Ω presenta, además, la siguiente propiedad: los bits de Ω constituyen hechos matemáticos irreducibles. Esto se puede comprender al considerar la información contenida en los primeros N bits de Ω, y compararla con la información contenida en el número real binario B que se menciona en la p. 153, cuyo n-ésimo bit indica si el programa pn es del tipo que finaliza o no402. Supóngase que - de alguna manera - se conocen los N primeros bits de Ω, es decir, de algún modo se conoce el prefijo ΩN de Ω. Aplicando el procedimiento de aproximación descrito precedentemente, se van obteniendo aproximaciones a Ω cada vez mejores - incrementando el límite temporal tN- hasta que los primeros N bits del valor aproximado coincidan con los bits del prefijo ΩN dado, y en ese momento, se detiene el proceso de aproximación. En virtud de la definición de Ω, hasta ese punto se habrán visto exactamente todos los programas de N bits o menos que finalizan, y no se necesita seguir incrementando tN; el resto de los programas puede ignorarse puesto que se sabe que no finalizarán jamás. Considerando que el conjunto de programas de N bits o menos es un conjunto finito, conocer ΩN de antemano es entonces equivalente a saber de antemano cuantos programas de ese conjunto finito son del tipo que finaliza. Y consecuentemente, a diferencia del número B, ΩN contiene la solución al Problema de Finalización sin información redundante. Alternativamente, puede llegarse al precedente resultado por otro camino: una vez obtenido el prefijo ΩN dado mediante el procedimiento de aproximación, es perfectamente posible generar una cadena de bits tal que no coincida con ninguna de las salidas de los programas que finalizaron durante la aproximación. Esta cadena puede generarse en forma manual y arbitraria, o dejando correr al procedimiento de aproximación a Ω por unos ciclos más hasta que publique la salida de un programa que difiera de todas las previas403. Dado que las salidas correspondientes a los programas del tipo que finalizan de N bits o menos ya han sido observadas, necesariamente esta cadena de bits no puede haber sido producida por ningún programa de N bits o menos; se corresponde, por tanto, con la salida de un programa del tipo que finaliza de más de N bits. De forma que los primeros N bits de Ω requieren programas del orden de N bits: apenas se alcanza el valor de ΩN, ello implica que se han visto todos los programas que finalizan de hasta N bits, y cualquier otro programa que finalice a partir de ese 401 Demostración efectuada por los propios mecanismos de AIT, esencialmente la imposibilidad de demostrar que un programa es ‘elegante’. Es importante notar que no se requiere apelar a la demostración de Turing. 402 Recuérdese la discusión en la p. 153, donde se muestra que B puede verse como un paso intermedio en la ‘construcción’ del número incomputable R de Turing, cuyos bits no son independientes y por tanto contiene información redundante. 403 Cabiendo la posibilidad que un conjunto de programas produzca idéntica salida, se ignorarían estos casos. Corresponderían a que algún programa de N bits o menos sea el programa ‘elegante’ para tales salidas. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 157 momento es de más de N bits. En esencia, el precedente argumento no es más que la constatación de que la definición de Ω implica que sus prefijos ΩN son cadenas de bits irreducibles. En particular, si se pretende que un programa devuelva los primeros N bits de Ω y finalice, el tamaño de este programa debe ser mayor que N bits, porque los primeros N bits de Ω son información irreducible, y por ende no pueden ser producidos por programas de N bits o menores 404. De hecho, lo óptimo sería que el programa contuviese los N primeros bits de Ω como un dato, una constante, y que simplemente los publicase como salida405. En definitiva, que los prefijos ΩN de Ω contengan información no redundante significa que Ω satisface la definición de una cadena infinita aleatoria. Y, en consecuencia, Ω es información incompresible . Ω es información matemática irreducible, un número real algorítmicamente aleatorio: la forma más concisa de generar sus N primeros bits es incorporarlos como un dato en el programa, tal cual son; no hay forma de producirlos a partir de algo más conciso que su directa expresión binaria. Este constituye el tercer resultado de incompletitud de AIT - y el más trascendente. “Ω es información irreducible . Esta debiera ser una idea chocante, información matemática irreducible, porque la idea normal en matemáticas, la idea Hilbertiana, la idea clásica de las matemáticas, es que toda la verdad matemática puede ser reducida a un pequeño conjunto de axiomas sobre el cual todos podemos acordar, y que esperemos sean ‘auto-evidentes’. Pero si se quiere determinar cuales son los bits de la Probabilidad de Finalización Ω, esto es algo que no puede ser reducido a nada más simple de lo que es.”406 [Cha00]. Que Ω sea incomputable significa que no hay un algoritmo que permita computar sus bits uno a uno, al igual que el número R de Turing. Pero que sea información irreducible implica que es imposible probar cual es el valor de los bits individuales de Ω mediante un sistema axiomático formal. Porque con un sistema axiomático formal de complejidad N - es decir, expresado en términos de un programa de N bits en el autómata de Turing (sección 3.3.6.1) como máximo pueden computarse objetos de complejidad N (sección 3.3.6.2.3) y si los teoremas de este sistema formal son de la forma “El 1 er bit de Ω es 0”, “El 7º bit de Ω es 1”, “El 2456º bit de Ω es 1”, “El 1256389º bit de Ω es 0”, etc. 407, ello implica que se podrán calcular como máximo N+c bits de Ω408 409. Y esto prueba que hay regiones de la matemática pura en donde el razonamiento es absolutamente inútil: si se pretende probar si un bit individual en un lugar específico de la expansión binaria del número real Ω es 0 o 1, esencialmente esto debe 404 Estrictamente, los primeros N bits de Ω no pueden ser producidos por programas significativamente menores que N bits. Dicho en forma más precisa: los bits de ΩN no pueden ser producidos por programas de menos de N - c bits, donde c es una constante que no depende de N. La constante c puede considerarse un detalle técnico que no es esencial para comprender la idea de incompresibilidad, y basta considerar N lo suficientemente grande para que N - c ≈ N ([Cha74], [Cha03]). 405 Nótese que para ello alcanza un programa de N+1 bits, si el computador esta diseñado de tal forma que, según el estado de ese bit ‘extra’ del programa, pueda tomar la decisión de publicar los N bits de Ω almacenados como dato en el resto del programa, y luego finalizar. En el caso general, el programa será de N+c bits, donde c es una constante que depende del computador y el lenguaje de programación. Así, en general N bits de Ω requerirán como máximo programas de N+c bits. Sin embargo, esta cota superior de aspecto inocente puede implicar una cantidad de información considerable, dependiendo de N (véase el ejemplo en la nota 461, p. 173). 406 Texto traducido del original, en inglés. Ver nota 54, p. 39. 407 Nótese que no necesariamente los bits de Ω que se intenten calcular deben ser consecutivos al primero; sólo interesa su cantidad. 408 En principio, puede interpretarse la nota 404 (p. 157) para N bits cualesquiera de Ω, no necesariamente los primeros. Si se considera la complejidad de un sistema axiomático formal como el tamaño en bits del programa que enumera al conjunto de teoremas - eso es cuantos bits se requieren para especificar los axiomas, las reglas de inferencia, y código adicional para publicar la lista enumerada de teoremas - y este programa es de N bits, entonces solamente se podrán calcular N bits de Ω. 409 Se asume, naturalmente, que el sistema formal en cuestión es consistente. Ingeniería Electrónica – Universidad Católica del Uruguay 158 - [ 3 ] Modelos adoptarse como hipótesis, como axioma; sólo una cantidad finita N de estas pruebas son viables en un sistema formal de complejidad N [Cha92]. Que los bits de Ω constituyan información irreducible implica que es imposible probar cual es el valor de los bits individuales de Ω mediante un sistema axiomático formal. Un sistema axiomático formal de complejidad N sólo permite determinar una cantidad finita N de bits arbitrarios de Ω, tantos como su complejidad. Si mediante deducción - el razonamiento - se pretende probar que un bit individual en un lugar específico de la expansión binaria de Ω es 0 o 1, esto no será posible excepto para un número finito de casos, fuera de los cuales el valor de los bits de Ω deben adoptarse como hipótesis, como axiomas. Este es un resultado de incompletitud severo: significa que hay regiones de la matemática pura en donde el razonamiento es absolutamente inútil. Pese a que Ω es un número real cuya definición matemática es concreta, s us bits no poseen una estructura o patrón que se pueda percibir, porque entre los mismos no hay correlación. Recuérdese que Ω es la probabilidad de que un programa cuyos bits sean generados al azar (por ejemplo, mediante lanzamientos independientes de una moneda equilibrada) sea del tipo que finaliza. Pero de la misma manera que conocer el resultado de un millón de lanzamientos de una moneda no ayuda en absoluto a predecir los siguientes resultados, o conocer los resultados de los lanzamientos pares no dice nada sobre los resultados de los lanzamientos impares, conocer algunos bits de Ω no brinda información alguna acerca de los otros. Así, los bits de Ω simulan en matemáticas lo que en el mundo real serían lanzamientos independientes de una moneda balanceada ([Cha04], c. VI). Y una particularidad en el experimento de lanzar una moneda consiste en que las realizaciones constituyen ‘verdades’ accidentales, en el sentido que son hechos para los cuales no hay una razón por la cual suceden; simplemente se obtiene ‘cara’ o ‘número’, y no hay un motivo manifiesto para que ocurra una u otra cosa. Pero entonces, la simulación en matemáticas de lanzamientos independientes de una moneda balanceada - los bits de Ω implican que en matemáticas hay ‘verdades’ que carecen de un motivo, de una razón. “¿Cual es la idea de las matemáticas? La idea normal es que si algo es verdadero, es verdadero por alguna razón - ¡Leibniz! - si algo es verdadero, lo es por algún motivo. Ahora, en la matemática pura, la razón por la cual algo es verdadero se llama una prueba, y la tarea del matemático es encontrar pruebas. ¡Pero los bits de este número Ω, el hecho que sean 0 o 1, son verdades matemáticas que son verdaderas por ningún motivo, son verdaderas por accidente! Y esta es la razón por la cual nunca conoceremos estos bits. En otras palabras, no es que Hilbert estuviese sólo un poco equivocado. No es que la noción normal en matemáticas era sólo levemente equivocada, que hay unos escasos huecos, que hay unos pocos casos degenerados como la aserción ‘Soy indemostrable’. ¡No es así! ¡Es mucho, mucho peor que eso! Hay casos extremos donde la verdad matemática carece de estructura, donde es maximalmente incognoscible, donde es completamente accidental, donde se tienen verdades que se asemejan a lanzamientos de monedas, que son verdaderas por accidente, verdaderas por ningún motivo. ¡Esto es por lo cual nunca se puede probar si bits individuales de Ω son 0 o 1, porque no hay un motivo para que bits individuales sean 0 o 1!...”410 [Cha00]. Los bits de Ω simulan en matemáticas lo que en el mundo real serían lanzamientos independientes de una moneda balanceada. Así, que los bits de Ω sean 0 o 1 son aserciones matemáticas verdaderas por ningún motivo, verdaderas por accidente. Esta es la razón por la cual no es posible probar el valor de bits individuales de Ω: no hay un motivo para que sean 0 o 1. Y esto muestra que la incompletitud en matemáticas no se trata solamente de casos aislados o patológicos como la aserción de Gödel “¡Soy indemostrable!”, sino que hay casos donde se carece totalmente de estructura, donde se tienen verdades que se asemejan a lanzamientos de monedas, y que por tanto están vedados al conocimiento deductivo. 410 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 159 Este resultado puede entonces interpretarse informalmente como que la matemática contiene aleatoriedad: los bits de Ω. Sin embargo, debe insistirse en que ‘aleatoriedad’ no implica que la matemática sea arbitraria, y que ocasionalmente 2+2 sea distinto de 4. Como se señala ya desde la sección 3.3.6.2.1, la aleatoriedad considerada es de tipo algorítmica: lo que en matemáticas existe es información irreducible, pero no arbitrariedad. Por ello, decir que Ω es un número aleatorio es quizás un tanto confuso, porque Ω es un número definido con precisión, que técnicamente satisface las propiedades que hacen a un número real aleatorio. Lo más adecuado es decir que Ω es un número irreducible, en virtud de que lo es tanto algorítmicamente, como computacionalmente, como lógicamente - Ω es irreducible por medio del razonamiento; sus bits no pueden ser obtenidos de axiomas más simples que ellos mismos. Decir que Ω es aleatorio requiere tener presente las precedentes observaciones. La cuestión es que la información en Ω está ‘empaquetada’ en sus bits de forma irreducible, irredundante, y por eso los bits de Ω efectivamente simulan ser el resultado de un proceso aleatorio como el lanzamiento de una moneda. Y esto implica que Ω posee muchas de las características típicas del resultado de un proceso aleatorio en el sentido físico - un proceso impredecible, que solamente admite un tratamiento estadístico. Así, se podrán probar todo tipo de propiedades estadísticas acerca de los bits de Ω, pero jamás determinarlos en forma individual. Esta precisión pone de manifiesto una limitante de la Teoría de Información Algorítmica, y es que un número real aleatorio puede ser insignificante (carecer de sentido) o puede ser extremadamente significativo (como Ω, que contiene toda la información del Problema de Finalización) pero AIT no puede distinguir entre estos. Los bits de Ω demuestran que existe aleatoriedad algorítmica en matemáticas. El hecho que la información del Problema de Finalización esté ‘empaquetada’ en los bits de Ω en forma irreducible e irredundante, produce que estos efectivamente simulen ser el resultado de un proceso aleatorio como el lanzamiento de una moneda. Esto implica que Ω posee muchas de las características típicas del resultado de un proceso aleatorio en el sentido físico - un proceso impredecible, que solamente admite un tratamiento estadístico. Por esto Ω constituye un resultado de incompletitud más severo que la incomputabilidad: hay áreas de la matemática en las cuales el razonamiento es inútil, y sólo puede esperarse un tratamiento estadístico de los fenómenos. Ω es una suerte de atentado contra el determinismo. Ω parece un número computable, pero está más allá de la frontera de lo que la matemática puede calcular; puede aproximarse por debajo, pero jamás se sabe que tan cerca se está del valor verdadero. Tal como la observación de Borel acerca de la indefinición de aleatoriedad, Ω casi parece asequible - pero no lo es. “En otras palabras, para que un resultado de incompletitud sea chocante, la situación debe ser tal que justo en el momento que estamos por estirarnos y tocar algo, se nos pega en los dedos. Jamás podemos tenerlo, pese a que está tentadoramente servido sobre la mesa de la cena, junto a mucha comida apetecible. Eso es mucho más frustrante y mucho más interesante que haber sido informados que no podemos poseer algo o hacer algo que nunca pareció lo suficientemente concreto o traído a tierra, algo que jamás pareció una legítima posibilidad en primera instancia.”411 ([Cha04], c. VI). Desde la perspectiva de la Teoría de Información Algorítmica - la complejidad de la información dada por el tamaño del programa más conciso que la produce, y el número real incomputable y algorítmicamente aleatorio Ω - la incompletitud en matemáticas se presenta como un fenómeno inmediato e inevitable. No obstante, a Chaitin le preocupa que muchos matemáticos desestimaran - en su momento - los resultados de incompletitud de Gödel, aduciendo que las aserciones a las que 411 Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 160 - [ 3 ] Modelos estos se referían no eran del tipo con las que ellos usualmente trabajaban. “Lo que no podía aceptar es que incluso en el mundo de las matemáticas, los matemáticos estaban diciendo ‘que importa, en la práctica deberíamos hacer matemáticas exactamente a como lo veníamos haciendo, esto no se aplica a los problemas que me interesan.’ Esa fue básicamente la reacción a los trabajos de incompletitud de Gödel y Turing.”412 [Cha00]. En virtud de ello, y considerando que los resultados de incompletitud de AIT son más severos que los resultados de Turing y Gödel, la idea de Chaitin es llevar Ω al basamento matemático - la aritmética elemental - de forma de al menos expresar estos resultados al nivel de los anteriores. Incidentalmente, el camino para expresar los bits de Ω en términos de la aritmética elemental pasa por otro de los problemas planteados por Hilbert en 1900 - su décimo problema - que se refiere a la factibilidad de solución de las ecuaciones diofantinas. Una ecuación diofantina es una ecuación algebraica (polinomial) en la cual las constantes y las incógnitas son números naturales (enteros positivos)413. El décimo problema de Hilbert es esencialmente un reto para descubrir un algoritmo que permita la solución de este tipo de ecuaciones, un algoritmo capaz de determinar el conjunto de números naturales que satisfacen cada una de las posibles ecuaciones de este tipo. Pero en 1970, al trabajo combinado de Robinson, Putnam y Davis se adjunta un resultado clave de Matijasevic, que permite demostrar que el 10º Problema de Hilbert es insoluble: no existe un algoritmo para hallar la solución de una ecuación diofantina414. Nótese que de existir una solución, esta podría ser hallada mediante un procedimiento sistemático que fuese sustituyendo ordenadamente las incógnitas por números naturales; pero de no existir una solución, este procedimiento sería inacabable y el problema consistiría en decidir cuando finalizarlo, y dar por insoluble la ecuación. Dado que este procedimiento podría programarse en el autómata de Turing, en esencia lo que se obtiene es una versión del Problema de Finalización de Turing - y como este es insoluble, se deduce que el método no permite la solución de una ecuación diofantina arbitraria ([Cha04], c. II). Así, aunque las ecuaciones diofantinas provienen de la Alejandría clásica, increíblemente resulta que una ecuación diofantina ordinaria puede representar a una máquina de Turing; una ecuación diofantina ordinaria es un computador universal (Fig. 3.4). En la ecuación diofantina ordinaria universal (Fig. 3.4) están presentes ambos lados (izquierdo, I, y derecho, D) dos símbolos especiales, k (el parámetro de la ecuación) y n (la incógnita de interés) más otras incógnitas x1, x2, x3,... que no revisten especial interés. La interpretación de esta ecuación diofantina universal como un computador consiste en considerar a k como el programa, n como la salida del programa, y las variables x1, x2, x3,... como una variable de tiempo multidimensional, que representan los instantes de tiempo del cómputo en los cuales k produce n. La operación de este ‘computador’ consiste entonces en colocar un valor específico de k, que se corresponde con el programa a ejecutar, y se calcula la expresión I(k, n) = D(k, n) hasta hallar los instantes x1, x2, x3,... en los cuales valores 412 Texto traducido del original, en inglés. Ver nota 54, p. 39. 413 Una ecuación diofantina ordinaria está constituida por constantes e incógnitas relacionadas mediante adición y multiplicación; una ecuación diofantina exponencial incorpora la operación de exponenciación. Esto implica que en una ecuación diofantina ordinaria, los exponentes son exclusivamente números naturales, mientras que en una exponencial, los exponentes pueden contener incógnitas. En cualquier caso, la idea es evitar el uso de números enteros negativos y la substracción, por lo cual es mandatorio emplear ambos lados de la ecuación (los términos se deben coleccionar a ambos lados del símbolo ‘=’, no pudiéndose en general llevar la ecuación a una forma f(x)=0) ([Cha04], c. II). 414 Julia Robinson, Hilary Putnam, Martin Davis y Yuri Matijasevic. Matijasevic construyó una ecuación diofantina donde una de las variables (k) se distingue como parámetro, y que tiene solución para determinados valores de k si y sólo si el k - ésimo programa es del tipo que finaliza. En esencia, lo que Matijasevic demostró en 1970 es que el 10º Problema de Hilbert es equivalente a decidir si un programa computacional arbitrario es del tipo que finaliza. Y como desde Turing se sabe que no existe un algoritmo para resolver el Problema de Finalización, el 10º Problema de Hilbert resulta insoluble. Matijasevic ha seguido trabajando al respecto; en particular, en colaboración con James Jones (1984) han producido un resultado que Chaitin usa en sus argumentos. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 161 Ecuación Diofantina Ordinaria Universal (Computador Universal) I(k, n, x1, x2, x3,....) = D(k, n, x1, x2, x3,....) k: programa n: salida x1, x2, x3,...: instantes de tiempo Fig. 3.3: Ecuación Diofantina Ordinaria Universal; representación del autómata de Turing, o el computador universal. predeterminados de n hacen que la ecuación se satisfaga - lo que implicaría que el ‘programa’ k ha producido la ‘salida’ n415. Así, por ejemplo, puede suministrarse un número k que sea la codificación de un programa para enumerar todos los teoremas de un sistema axiomático formal, y los teoremas serían devueltos como números tales que su decodificación produce la cadena de caracteres correspondiente al teorema416. “Y esta ecuación diofantina significa que estamos en problemas. Significa que no puede haber una forma de decidir si una ecuación diofantina tiene alguna solución. Porque de poder hacerlo, podríamos decidir si un programa computacional devuelve una salida, y si pudiéramos hacer eso, podríamos solucionar el Problema de Finalización de Turing.” ([Cha04], c. II). El trabajo combinado de Robinson, Putnam, Davis y Matijasevic, permite demostrar en 1970 que el 10º Problema de Hilbert de 1900 es insoluble: no existe ningún algoritmo para hallar la solución de una ecuación diofantina polinomial. Porque una ecuación diofantina ordinaria universal es un modelo para el computador universal, y el 10º problema de Hilbert resulta entonces equivalente al insoluble Problema de Finalización de Turing ([Cha04], c. II). Esto muestra que el problema de la incomputabilidad - y por tanto, de la incompletitud - está incorporado en el núcleo de las matemáticas, la aritmética elemental, y acecha disfrazado en las ecuaciones diofantinas algebraicas de las antiguas Grecia y Alejandría, desde hace más de dos mil años ([Cha04], c. II). Empleando los precedentes resultados - y el trabajo de Jones y Matijasevic de 1984417 - en 1987 Chaitin logra reinterpretar los bits de su número Ω como aserciones sobre una ecuación diofantina exponencial. Construye una ecuación de proporciones fantásticas (17000 variables) cuyas soluciones saltan de una cantidad finita a una infinita según el valor de cada bit de Ω 418 (Fig. 5.6). Así, Chaitin demuestra en forma concreta que su número real Ω se puede derivar directamente de ciertas aserciones sobre ecuaciones diofantinas, y por tanto, el hecho que existan verdades matemáticas irreducibles reside en la aritmética elemental, no derivando ni de la teoría de 415 Naturalmente, los ‘programas’ y sus ‘salidas’ serían números, pero consistirían simplemente una codificación para cadenas de caracteres, las cuales serían las descripciones de algoritmos o sistemas axiomáticos formales. 416 Por ejemplo, conviértase el número natural obtenido a binario, omítase el bit más significativo, sepárese la cadena de bits en octetos , y decodifíquense los bytes obtenidos según el código ASCII (este ejemplo asume que la codificación fue efectuada en ASCII). Naturalmente, no es el único tipo de codificación posible. 417 Ver [Cha04], capítulo II, sección “Hilbert's 10th Problem & Diophantine Equations as Computers”. 418 Similarmente, en 2003, Ord y Kieu (Australia) consiguen construir una ecuación diofantina cuyas soluciones pasan de ser una cantidad par a una cantidad impar siguiendo los bits de Ω. Ingeniería Electrónica – Universidad Católica del Uruguay 162 - [ 3 ] Modelos conjuntos, ni de los números reales, ni de construcciones matemáticas más abstractas que las efectuadas por Peano. Esto parece rendirle homenaje a Kroneker: “Dios creo los números enteros, el resto es obra del hombre.” ([Cha04], c. VI). Ecuación Diofantina Exponencial (Chaitin, 1987) I(k, n, x1, x2, x3,....) = D(k, n, x1, x2, x3,....) k, x1, x2, x3,...: incógnitas n: parámetro La ecuación tiene una cantidad infinita de soluciones si el n-ésimo bit de Ω ? es 1 La ecuación tiene una cantidad finita de soluciones si el n-ésimo bit de Ω ? es 0 Fig. 3.4: Ecuación Diofantina Exponencial de Chaitin (1987). Sus soluciones varían de una cantidad finita a infinita, según el n - ésimo bit de Ω sea 0 o 1. Cabe notar la diferencia entre los trabajos de Matijasevic y Chaitin. Matijasevic muestra que hay una ecuación diofantina ordinaria, polinomial, dotada de un parámetro ante cuya variación uno se cuestiona si la ecuación tiene solución o no, y que resulta ser equivalente al Problema de Finalización de Turing. Esto demuestra que el 10º problema de Hilbert es insoluble, y que por tanto hay cuestiones que escapan al razonamiento formal matemático. Sin embargo, Chaitin requiere una ecuación diofantina exponencial para llevar la aleatoriedad algorítmica a la aritmética de Peano; en lugar de preguntarse como Hilbert si existe un algoritmo para decidir si una ecuación diofantina tiene solución, la pregunta que se formula Chaitin es más abstracta: si el número de soluciones es una cantidad finita o infinita. En otras palabras: la ecuación de Matijasevic está construida de forma que tiene solución solamente si cada programa particular (obtenido al variar el parámetro de la ecuación) es del tipo que finaliza. La ecuación de Chaitin está construida de forma que la cantidad de soluciones es finita o infinita según el valor de cada bit de Ω. Así, la ecuación de Matijasevic plantea N preguntas aritméticas a ser respondidas con sí o no, y que representan log2N bits de información algorítmica; la ecuación de Chaitin contiene esta información depurada de redundancias, y por tanto, en forma incompresible419 [Cha92]. Elaborada sobre el trabajo de Matijasevic y Jones de 1984, la ecuación diofantina exponencial de Chaitin de 1987 demuestra que se puede hallar la carencia absoluta de estructura de Ω inclusive en la aritmética elemental. La aleatoriedad algorítmica, la información irreducible, no requiere construcciones matemáticas más abstractas que las efectuadas por Peano con {N, +, ·, =}. “Esta es la razón por la cual digo que hay aleatoriedad en la teoría numérica elemental, en la aritmética de los números naturales. Esta es una pared de piedra impenetrable, es el peor caso. Desde Gödel sabíamos que no podíamos obtener un sistema axiomático formal que fuese completo. Sabíamos que estábamos en problemas, y Turing nos mostró cuan básico 419 Esto se corresponde con la diferencia entre la compresibilidad de la información contenida en el número B y en el número Ω (p. 153 de la presente sección). Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 163 era, pero Ω es un caso extremo donde el razonamiento falla por completo.”420 [Cha92]. [ 3.3.6.2.5 ] CONSECUENCIAS DE LA TEORÍA DE INFORMACIÓN ALGORÍTMICA Las consecuencias de la Teoría de Información Algorítmica trascienden a la matemática y meta-matemática. Pese a su relativamente corta historia, se registra una aplicación en la física que - de resultar una vía fructífera - significaría una incursión en niveles aún más fundamentales que los manejados hasta la fecha por cualquier teoría física, Cuántica y Relatividad incluidas, y brindaría una nueva perspectiva para el modelado de la realidad. Sin embargo, según Chaitin las implicancias de los fenómenos de incompletitud, incomputabilidad y aleatoriedad algorítmica no han calado en la propia comunidad matemática. La presente sección se dedica a describir someramente estas cuestiones, aunque las implicancias de algunas de las consideraciones que se efectúan aquí serán manifiestas en otras secciones de este documento. [ 3.3.6.2.5.1 ] ¿MATEMÁTICAS CUASI-EMPÍRICAS? En primera instancia, se consideran las consecuencias de AIT en lo relativo a las matemáticas. Parafraseando a Platón, el ‘mundo de las matemáticas’ resulta ser de complejidad infinita - de hecho, incluso el mundo de la aritmética elemental presenta complejidad infinita - y por tanto, no es asequible mediante sistemas axiomáticos formales de complejidad finita. No alcanza con un único y estático sistema de axiomas, como era la pretensión de Hilbert. Si se pretende el acceso a regiones arbitrarias del universo matemático, necesariamente se requieren aportar nuevos postulados, nuevas reglas de inferencia, u otra clase de información a la teoría matemática general. “¿Y de dónde podremos adquirir nuevo material si no puede ser deducido de lo que ya sabemos? Bueno, no estoy seguro, pero creo que podría provenir del mismo lado de donde los físicos sacan sus ecuaciones: basados en inspiración, imaginación, y experimentos - en el caso de las matemáticas, computacionales, no de laboratorio.”421 ([Cha04], c. VI). El universo matemático presenta complejidad infinita - ya desde la aritmética elemental - y por tanto no es asequible mediante un sistema axiomático formal, cuya complejidad es finita. El acceso a ese universo matemático requiere permanente incorporación de nuevos axiomas y reglas de inferencia - un inexorable aumento de la complejidad - y esta información no podrá ser adquirida mediante deducción a partir de la información conocida, sino que requerirá, como la física, de inspiración y experimentos, que en el caso de la matemática serán de tipo computacional ([Cha04], c. VI). Prima facie, esta conclusión de Chaitin parece chocar con la concepción de Podnieks acerca de la naturaleza del método matemático, la cual se presenta en la sección 3.3.2: “... la verdadera naturaleza del método matemático consiste en la investigación de modelos estables y autocontenidos, de los cuales se pueden extraer el mayor número de conclusiones a partir de un mínimo de premisas...” Sin embargo, no necesariamente las visiones de estos autores son incompatibles, como se infiere de las conclusiones que Podnieks efectúa sobre el final del primer capítulo de [Pod97]. Según Podnieks, si bien el sistema numérico natural fue desarrollado a partir de la experiencia humana con colecciones finitas de objetos, los resultados concernientes al infinito numérico pueden obtenerse sólo mediante modelos teóricos. Pero esta creencia (que resultados generales sobre números naturales pueden ser obtenidos exclusivamente por medio del razonamiento sin la práctica experimental adicional) significa que se está convencido que el modelo teórico es estable, autocontenido, y (suficientemente) completo. De hecho, la teoría numérica tiene dos formulaciones, pre y post Cantorianas (esta 420 Texto traducido del original, en inglés. Ver nota 54, p. 39. 421 Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 164 - [ 3 ] Modelos última en términos de la teoría de conjuntos de Zermelo-Fraenkel más el Axioma de Elección, ZFC) y si bien la formulación post-Cantoriana ha reemplazado a la original, ambas se mantienen y pueden usarse para deducir nuevos teoremas. Por otro lado, la geometría Euclidiana no es sustituible por las geometrías no Euclidianas, y sin embargo, la geometría de un tipo puede ser empleada sin perjuicio de lo que se pueda hacer mediante el empleo de una geometría del otro tipo. Por este motivo, Podnieks sostiene su definición de la matemática como la investigación de modelos que pueden ser tratados independientemente de los datos experimentales: precisamente porque son estables y autocontenidos ([Pod97], s. 1.6). Esto no contradice la advertencia de Chaitin sobre el agotamiento de las posibilidades en un sistema axiomático formal de carácter estático; sólo habla del proceder matemático una vez que se ha extraído el concepto de la experiencia práctica. Por ello Podnieks incluso avala el proceder Platónico para la investigación matemática: el modelo estable y autocontenido debe ser la ‘realidad ulterior’, si no ha de tener ninguna contraparte experimental ([Pod97], s. 1.6). Esto no implica que otro proceder - como el sugerido por Chaitin, basado en ‘experimentación’ - sea el adecuado para generar nuevas experiencias de las cuales se extraerán nuevos conceptos. Así, para Podnieks los métodos genético y axiomático (sección 3.2.3) no son empleados en forma heurística, sino para clarificar conceptos intuitivos cuando estos no son lo suficientemente precisos como para continuar la investigación. De hecho, el criterio de Podnieks para evaluar una teoría o modelo es sumamente pragmático: ante una teoría que presente contradicciones, una nueva teoría será mejor si preserva los resultados útiles de la anterior, eliminando las contradicciones422. Y si en una teoría surgen problemas de incompletitud, entonces cualquier extensión de esta será mejor si alguno de los problemas se decide positiva o negativamente 423 ([Pod97], s. 1.6). Esto también está alineado con las ideas de Chaitin: para obtener más a la salida, debe suministrarse más a la entrada. En esencia, la contradicción entre la noción de Podnieks y las ideas de Chaitin es aparente si se acepta que Podnieks considera que se hace ‘matemática’ desde el momento en que un concepto ha de ser formalizado por los métodos genético o axiomático porque su formulación intuitiva no permite progreso ulterior, mientras que Chaitin considera que ciertas cuestiones intuitivas han de aceptarse sin posibilidad ulterior de formalización. La actitud Platónica - suponer que un modelo matemático es la ‘realidad ulterior’ y así trabajar independientemente de cualquier contraparte experimental - es válida para aplicar los métodos genético y axiomático, una vez que los conceptos intuitivos se han escindido del ‘mundo experimental’ de donde fueron obtenidos, y se han vuelto poco precisos para proseguir la investigación. Así, la naturaleza del método matemático según Podnieks - la investigación de modelos estables y autocontenidos, que pueden ser tratados independientemente de los datos experimentales - no es incompatible con la idea de Chaitin, puesto que no se refiere a la generación de nuevos conceptos, sino a su tratamiento y depuración una vez conseguidos. De hecho, Podnieks - similarmente a Chaitin - sugiere la extensión del sistema axiomático en el que se funda la matemática adoptando una actitud absolutamente pragmática. En virtud de la incompletitud, la incomputabilidad, y la existencia de hechos matemáticos irreducibles (aleatoriedad algorítmica) la creencia de Chaitin es que la matemática debiera practicarse más con el espíritu de una ciencia experimental, en lugar de siempre demandar pruebas para todo. Aduce que esta actitud es la adoptada de hecho por los científicos teóricos de la computación, cuya comunidad - aunque no lo admita, y se refiera al problema P ≠ NP como una hipótesis no demostrada424 422 Por ejemplo, en este sentido la teoría de conjuntos ZFC es mejor que la teoría de conjuntos de Cantor (sección 3.3.3.1). 423 Aunque, en este sentido, puedan producirse teorías poco interesantes (como sucede, por ejemplo, al adicionar la Hipótesis del Continuo a ZFC). En este caso, se requieren hipótesis más potentes (por ejemplo, adicionar el Axioma de Constructibilidad, o el de Determinismo, que producen dos teorías interesantes aunque contradictorias, según Podnieks). 424 P ≠ NP se refiere a la diferencia entre la complejidad Polinomial vs. No - Polinomial. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 165 se comporta de la misma forma que lo harían los físicos: emplean la hipótesis P ≠ NP como un nuevo axioma, como un postulado más. Chaitin señala que los postulados científicos jamás son ‘auto-evidentes’ - evidentes por sí mismos - sino que son justificados pragmáticamente, porque para aquellos que trabajan en las ciencias empíricas, como los biólogos o físicos, el criterio clave consiste en la utilidad de la hipótesis y no necesariamente su ‘veracidad evidente’; así, cuando varias conjeturas pueden ser explicadas a partir de una cierta hipótesis, esta es tomada en cuenta muy seriamente por los científicos experimentales. Sin embargo, esta sugerencia parece ridícula para la mayoría de los matemáticos. “Creo que la afirmación de Euclides, que un axioma es una verdad evidente, es un gran error. Ciertamente, la ecuación de Schrödinger no es una verdad evidente. Y la hipótesis de Riemman tampoco, pero es sumamente útil.”425 (Chaitin). Empleando un término acuñado por Imre Lakatos, Chaitin se declara partidario de adoptar una actitud ‘cuasi-empírica’ en matemáticas, porque considera que esta es la única forma de adaptarse a la existencia de los hechos matemáticos irreducibles que demuestra AIT: sin objetar al usual mecanismo de demostración a partir de los axiomas, considera que mientras no se halla una prueba, recurrir a conjeturas y argumentos de carácter heurístico constituye una alternativa perfectamente válida - y en algunos casos, quizás esa sea la única alternativa viable. La adopción de criterios experimentales en matemática, refrendada y promovida por Chaitin, es habilitada por una cuestión fundamental: la existencia del computador. Este objeto, inicialmente considerado como un mero artilugio tecnológico, ha cambiado radicalmente la forma en que la humanidad desarrolla sus actividades, al punto que actualmente se ha vuelto indispensable para el funcionamiento de la sociedad moderna, y tremendamente útil en el ámbito científico. Pero lo que generalmente no se explicita es la crucial incidencia que el computador puede tener en el desarrollo de la propia matemática - fin que, irónicamente, constituyó su (usualmente ignorado) origen426. La incipiente tendencia a proceder en forma más pragmática (‘cuasiempírica’) entre los matemáticos se designa ‘matemática experimental’, una frase comúnmente escuchada en el campo del caos, fractales y dinámica no lineal. La posibilidad que introduce la matemática ‘experimental’ consiste en que mediante la ejecución de experimentos numéricos, cabe la chance de observar algún hecho o comportamiento que sugiera el planteo de conjeturas interesantes. Naturalmente, obtener una prueba razonablemente concisa de conjeturas surgidas a partir de observaciones experimentales sería lo deseable - de hecho, obtener múltiples pruebas desde distintos puntos de vista sería lo mejor. Pero si esto no sucede, y no se puede esperar a que alguien halle alguna prueba, se puede seguir adelante sobre la base de ‘evidencia experimental’, que se obtiene del experimento original u otros experimentos adecuados. Naturalmente, este proceder es propiciado por el computador, porque hacer cálculos en un autómata es sencillo (en comparación con el cálculo manual) y se pueden probar relativamente rápido una cantidad significativa de casos. Afirma Von Bertalanffy: “Los conjuntos de ecuaciones diferenciales simultáneas427 como camino hacia un ‘modelo’ o una definición de un sistema son fastidiosos de resolver, si son lineales, hasta en el caso de pocas variables; de no serlo no pueden resolverse salvo en casos especiales. Por esta razón las computadoras han abierto un nuevo camino en la investigación de sistemas; no solo facilitando los cálculos que de otra suerte habrían requerido tiempo y energía excesivos y reemplazando el ingenio matemático por procedimientos rutinarios, sino también abriendo campos donde no existen teorías o modos de solución matemáticos. Es posible así computerizar sistemas que van más allá de las matemáticas ordinarias; por otro lado, experimentos realizados en el laboratorio pueden ser sustituidos por simulación en computadora, y el modelo alcanzado ser verificado entonces con datos experimentales.” ([Ber93], p. 19). A modo de ejemplo, Chaitin cita al libro A New Kind of Science de Wolfram, aduciendo que constituye un largo capítulo de matemáticas experimentales. De hecho, Wolfram debió desarrollar su propio lenguaje de programación, Mathematica, para poder efectuar los cómputos masivos que le 425 Texto traducido del original, en inglés. Ver nota 54, p. 39. 426 Ver sección 3.3.6.1. 427 U otras estructuras matemáticas como conjuntos de ecuaciones en diferencias para los sistemas discretos. Ingeniería Electrónica – Universidad Católica del Uruguay 166 - [ 3 ] Modelos condujeron a sus conjeturas 428. Así, Chaitin afirma que el computador ha incrementado enormemente la experiencia matemática, y reconoce que - irónicamente - no han sido sus resultados, ni los de Gödel o Turing, los que han impulsado a la matemática experimental, sino su corolario tecnológico y agente habilitante: el computador. Irónico, además, si se tiene en cuenta que de las tres viejas escuelas de filosofía matemática - lógica, formalista, e intuicionista - la más relegada fue la filosofía intuicionista de Brouwer (ver sección 3.3.3.2.1) cuya actitud constructivista precedió por años al computador que habría de darle impulso sobre fines del siglo XX [Cha92]. La existencia del computador proporciona a los matemáticos de un versátil ‘laboratorio’ para efectuar ‘experimentos matemáticos’. La posibilidad de cálculo masivo ha incrementado significativamente la experiencia matemática, y promueve la adopción de una actitud ‘cuasiempírica’ en matemáticas - un pragmatismo similar al de las ciencias físicas y biológicas - donde en lugar de ‘evidencia experimental’ se aceptaría ‘evidencia computacional’ mientras que la tradicional demostración matemática permanezca inasequible. De hecho, los fenómenos de incompletitud y aleatoriedad algorítmica implican que las conjeturas, argumentos heurísticos, y evidencia computacional derivada de experimentos numéricos con el computador, quizás constituyan la única alternativa ante las limitaciones inherentes a los sistemas axiomáticos formales para el razonamiento. Y que - al igual que los postulados científicos, que son justificados pragmáticamente en función de la utilidad que suponen ciertas hipótesis matemáticas quizás no tengan más remedio que ser aceptadas en función de su utilidad. “Es posible argumentar que los teoremas de incompletitud fallan el objetivo completamente, porque la matemática no se trata de consecuencias de reglas, sino de creatividad e imaginación. Considere el número imaginario i, la raíz cuadrada de -1. Este número era imposible, rompió la regla que x 2 debe ser positivo, pero las matemáticas eventualmente se beneficiaron y tuvieron más sentido con i que sin i. ¡Así que quizás los teoremas de incompletitud son irrelevantes! Porque limitan al razonamiento formal, pero nada dicen acerca de lo que pasa cuando cambiamos las reglas del juego. Como matemático creativo, ciertamente adhiero al punto de vista que la imaginación para cambiar las reglas del juego es más importante que moler eternamente las consecuencias de un conjunto de reglas dadas. Pero no sé como analizar la creatividad y la imaginación con mis herramientas meta-matemáticas...”429 430 ([Cha99], c. I). De esta manera, Chaitin remarca un punto crucial en relación con todo lo discutido en la sección 3.3.5, y la presente sección 3.3.6: los resultados de incompletitud, incomputabilidad, y aleatoriedad algorítmica sólo se aplican a los sistemas axiomáticos formales à la Hilbert descritos en la sección 3.3.4. Pero al mismo tiempo, con esto reitera la necesidad de un cambio en la forma de hacer matemáticas, que supone un cuestionamiento al formalismo como el único método de desarrollo matemático. La cuestión consiste precisamente en proponer el 428 Sin embargo, a diferencia de Chaitin, Wolfram no considera que exista aleatoriedad en el universo, sino seudo - aleatoriedad. Esta diferencia puede resumirse en una simple pregunta, que enfrenta razón versus aleatoriedad: ¿Es el universo como π o como Ω? La idea de Wolfram es que el universo es como π: parece complicado (su expansión decimal o binaria parecen cadenas de dígitos aleatorias) pero en esencia no lo es, puesto que es la razón (cociente) entre una circunferencia y su diámetro . Coincidentemente, según AIT la complejidad de π es finita porque existen algoritmos capaces de computar uno a uno sus dígitos (aunque en la práctica el cómputo de π sea interminable). Pero según Chaitin, si se ha de confiar en los actuales resultados de la Física Cuántica, al parecer el universo tendría efectivamente complejidad algorítmica infinita, y sería más bien como Ω - y por tanto, en gran parte incomprensible. Por el contrario, Wolfram considera que existen algoritmos sencillos y determinísticos que en última instancia dan cuenta de la complejidad aparente que se observa, y por ello habla de seudo - aleatoriedad, o una aleatoriedad aparente. Para Wolfram - como Leibniz - nada sería contingente, todo sucedería por una razón [Cha02b]. 429 Texto traducido del original, en inglés. Ver nota 54, p. 39. 430 Nótese que Chaitin coincide con Dixon respecto a la dificultad de analizar la actividad creativa (ver sección 2.1.1.2). Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 167 cambio en las reglas del juego que darán lugar a la matemática del futuro, cambio que Chaitin sugiere puede provenir por adopción de una actitud ‘cuasi-empírica’ en matemáticas, similar a la de las ciencias experimentales como la física, que acepte evidencia ‘experimental’ producida por el computador. “Richard Mattuck, en su libro al que modestamente se refiere como ‘Diagramas de Feynman para Idiotas’ (el título oficial es ‘A Guide to Feynman Diagrams in the Many-Body Problem’) resume el progreso de la física como sigue. ¿Cuántos cuerpos se requieren para tener un problema?”431 ([Cha99], c. VII). Porque, irónicamente, el progreso de la física ha logrado reducir la cantidad de cuerpos necesarios para tener un problema: la Mecánica Newtoniana puede resolver la interacción gravitatoria entre dos masas, pero tres cuerpos constituyen un problema insoluble si se pretenden soluciones en forma cerrada; en la Relatividad General, dos cuerpos ya representan un problema que requiere apelar a cómputo masivo en un computador; y en Física Cuántica, incluso cero cuerpos es demasiado, porque el vacío cuántico es un espacio de creación y aniquilación de partículas virtuales, extremadamente complicado, que directamente impide soluciones en forma cerrada. Conclusión: la física contemporánea es muy complicada; sus ecuaciones no son sencillas. Y esta ‘evolución en complejidad’ de la física le sugiere a Chaitin la existencia de una contraparte en la futura evolución de la matemática. Se pregunta Chaitin: “¿Cómo será la matemática del futuro? ¿Habrán nuevas ideas, sencillas y poderosas, o las cosas serán entreveradas y complicadas como en biología?”. Recuérdese que uno de los resultados de AIT es que no se pueden probar bits individuales de Ω, pero sí se está habilitado a probar todo tipo de propiedades estadísticas de los bits de Ω. Quizás las matemáticas del futuro, al igual que la física contemporánea, deba resignarse a que ciertas cuestiones son sólo tratables en términos estadísticos, y no en términos individuales, de casos particulares. “¿Una nueva matemática complicada? 432 En cierta forma, en los tres casos, Gödel, Turing, y yo, ya tenemos una nueva matemática ‘biológica’ complicada, la matemática del tercer milenio, o al menos la del siglo XXI. La visión convencional es que la materia es lo primario, y que la información si existe, emerge de la materia. ¿Pero que tal si la información es primaria, y la materia un fenómeno secundario?” ([Cha99], c. VII). Este punto, aunque muy discutible, parece ser tomado en cuenta muy seriamente por algunos físicos contemporáneos australianos, y de hecho, constituye el elemento esencial de su propuesta de una ‘física de procesos’, que se discute poco más adelante. Si la postulación de Tegmark sobre la simetría completa entre física y matemáticas433 resulta acertada, entonces habría que atender al desarrollo de esta propuesta de física de procesos, para ver como puede influir en el desarrollo de la matemática post Gödel-Turing-Chaitin. Los resultados de incompletitud, incomputabilidad y aleatoriedad algorítmica son aplicables exclusivamente a los sistemas axiomáticos formales à la Hilbert. Pero aunque un cambio en las ‘reglas del juego’ permitiría evitar las limitaciones que derivan de los precedentes resultados, al mismo tiempo implicaría abandonar al formalismo como herramienta exclusiva para el desarrollo matemático 434. Quizás una ‘nueva actitud’ en matemáticas implique resignarse a que ciertos hechos matemáticos puedan ser estudiados únicamente en términos estadísticos, y no en una base individual, determinista, y estrictamente deductiva. Sin embargo, con un cambio en las reglas del juego de la matemática que impliquen la adopción de una actitud ‘cuasi-empírica’, la matemática 431 Texto traducido del original, en inglés. Ver nota 54, p. 39. 432 Nótese la sugerencia que se efectúa sobre el fin de la sección 1.1.1 del presente trabajo, acerca de una transmutación de la complejidad entre la física y la matemática, afirmación que además puede reinterpretarse en términos de los contenidos del capítulo 3 como una reformulación de modelos. 433 Ver sección 1.1.1 y [Teg03]. 434 Esto sustenta la propuesta mencionada precedentemente, referente a la adopción de una actitud pragmática en matemáticas, como se acostumbra en física o las ciencias biológicas, donde la utilidad de las hipótesis y la evidencia experimental son elementos de vital importancia. Ingeniería Electrónica – Universidad Católica del Uruguay 168 - [ 3 ] Modelos podría experimentar una ‘evolución en complejidad’, análoga a la evolución de las ciencias experimentales 435. Así, la similaridad entre física y matemáticas quizás resulte más profunda de lo que Chaitin sugiere: quizás la postulación de Tegmark sobre la simetría completa entre física y matemática no sea tan descabellada. Y quizás entonces la conjetura que se efectúa en este documento, referente a un proceso de transmutación de la complejidad entre modelos de la realidad de carácter Aristotélico y Platónico, tampoco sea una idea del todo ridícula (sección 1.1.1). “Quizás estas ideas foráneas serán rechazadas de plano por el sistema inmune de la comunidad matemática. Por ahora ciertamente lo son436”, dice Chaitin, comentando que sólo a los físicos les gusta su trabajo. Es que si bien a los físicos les interesaba el fenómeno de la incompletitud de Gödel, hasta el trabajo de Chaitin no pudieron conectarlo con su actividad. El resultado de Gödel es demasiado abstracto como para referirse desde un punto de vista comprensible en términos físicos, pero la idea de aleatoriedad proviene de la física, y la noción de complejidad en términos del ‘programa más conciso’ se asemeja a la idea termodinámica de entropía, lo que permite la conexión [Cha00]. Aunque esta conexión pareciera ser una consecuencia inesperada y fortuita de la Teoría de Información Algorítmica, teniendo en cuenta la postulación de Tegmark sobre simetría completa entre física y matemáticas, y las conjeturas efectuadas en este documento como consecuencia de esa hipótesis437, resulta pertinente un somero planteo de esta conexión colateral de AIT con la física. Los resultados son provocativos. [ 3.3.6.2.5.2 ] DE REGRESO A LEIBNIZ Y A HERÁCLITO: FÍSICA DE PROCESOS En [Cho00] se introduce la idea de Física de Procesos, propuesta por los australianos Cahill y Klinger. “Los resultados de Gödel y Chaitin se aplican a cualquier sistema formal lo suficientemente potente como para hacer aserciones sobre sí mismo438. «Aquí es donde entra la física» dice Cahill. «El Universo es suficientemente rico como para ser auto-referente - por ejemplo, yo soy consciente de mí mismo». Esto sugiere que la mayoría de las verdades cotidianas carecen de explicación. De acuerdo a Cahill y Klinger, ello debe ser porque la realidad está basada en aleatoriedad. Ellos creen que la aleatoriedad es más fundamental que los objetos físicos. En el seno de la física convencional reside la idea que existen ‘objetos’ - cosas que son reales, a pesar de que no interactúen con otras cosas. Antes de escribir ecuaciones para describir cómo operan los electrones, los campos magnéticos, y el espacio, los físicos comienzan por asumir que tales cosas existen. Sería mucho más satisfactorio deshacerse de este basamento de suposiciones. Esto fue reconocido en el siglo 17 por el matemático alemán Gottfried Leibniz439. Leibniz creía que la realidad estaba constituida por cosas que él designaba ‘mónadas’, cuya existencia se debía exclusivamente a las relaciones de una con cada otra440. Esta imagen languideció en los remansos de la ciencia porque era inmensamente difícil de convertirla en una receta para calcular cosas, a diferencia de la mecánica de Newton.”441 ([Cho00], p. 2). La Física de Procesos es un modelo de la realidad basado en información. La hipótesis fundamental es que la realidad debe modelarse como información semántica (o relacional) auto435 Ver las secciones 1.3.1 y 1.3.2 del presente documento, haciendo abstracción de su orientación a ‘sistemas’. 436 Se refiere a las ideas de aleatoriedad algorítmica en el seno de las matemáticas, y la idea de aceptar evidencia ‘experimental’ de tipo computacional. 437 El manejo del detalle y la abstracción como la transmutación entre modelos de tipo Aristotélico y Platónico de la realidad (sección 1.1.1); la existencia de modelos matemáticos ‘informales’ y la incorporación de semántica a los modelos matemáticos formales (sección 3.2.2). 438 Es decir, sistemas que permiten la autorreferencia. 439 Todo parece indicar que la obra de Leibniz habría de ser debidamente revisada y reconsiderada desde la perspectiva actual. 440 Nótese la idea subyacente de sistema, en el sentido de Von Bertalanffy o Simon (capítulo 1). ¿Otra coincidencia? 441 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 169 organizada por una red neuronal442 estocástica, donde las limitaciones derivadas de la Teoría de Información Algorítmica son implementadas mediante la introducción de ruido aleatorio auto-referente. Este modelo en base a una red neuronal sugiere que la realidad genera y procesa información como patrones, y no como símbolos en algún sistema axiomático formal; el punto clave es que la información es semántica, es decir, tiene significado dentro del sistema. Al elaborar modelos mediante sistemas formales o sintácticos, los físicos asumen que estos son capaces de comprimir la realidad en axiomas y reglas para la manipulación de símbolos. Gödel demostró que este tipo de sistemas - de soportar auto-referencias - poseen la limitación fundamental de no poder comprimir todas las verdades en una estructura axiomática. Así, todos los modelos de la física basados en sistemas sintácticos (sistemas donde la información es exclusivamente sintáctica y carece de sentido dentro del sistema) sufren de las limitaciones Gödelianas. Si bien en la física clásica y moderna estas limitaciones ‘sintácticas’ fueron soslayadas mediante el empleo de meta-reglas y aserciones provenientes de fuera del sistema formal, sus modelos son concebidos con un paradigma de estructura y no de proceso. En particular, la Física de Procesos se distingue por su capacidad de modelar al tiempo como un proceso - logrando un modelo que posee noción del ahora, del pasado registrable, y del futuro incierto - a diferencia de la física ‘estructural’ donde el modelo temporal es geométrico, y por ello incapaz de expresar el problema de la ‘flecha del tiempo’. “La falla persistente de la física para modelar correctamente todos los aspectos del tiempo, aparte del orden de eventos, surge porque la física siempre ha usado modelos que no representan procesos, como son por naturaleza los sistemas formales o sintácticos. Tales sistemas no requieren ninguna noción de proceso - son completamente estructurales y estáticos.”443 ([Cah03], pp. 10-11). En la Fig. 3.5 se presenta en forma gráfica la limitación de los sistemas sintácticos autoreferentes. La frontera Gödeliana separa las aserciones demostrables por el sistema sintáctico de las indemostrables. Chaitin, con su Teoría de Información Algorítmica, prueba que en matemáticas estas aserciones indemostrables son objetos de estructura aleatoria desde la perspectiva del sistema axiomático formal considerado. Por esta razón los objetos algorítmicamente aleatorios no pueden ser comprimidos en los axiomas del sistema formal; individualmente no poseen estructura que se pueda aprovechar para describirlos en forma concisa. Las reglas de inferencia del sistema formal no permiten acceder a zonas allende la frontera de Gödel, por lo cual sólo mediante meta-reglas se podría alcanzar algún objeto cuya estructura no es describible por el sistema axiomático formal en cuestión444. Según Cahill, es precisamente la consideración de las limitaciones de Gödel la que conduce a desmistificar el usual paradigma en el cual la realidad se codifica en formalismos y ‘leyes’. “La Física de Procesos es un modelo radical de la teoría de la información, que surgió del análisis de varias limitaciones existentes; de las limitaciones de los sistemas formales de información descubiertas por Gödel, Turing y Chaitin, de las limitaciones del modelo geométrico del tiempo en los modelos construidos por Galileo, Newton y Einstein, y por las limitaciones de la teoría cuántica y su incapacidad de dar cuenta de los procesos de medición. Como es usual dentro de la física estas limitaciones fueron disimuladas por varias meta-reglas y construcciones metafísicas.(...) En física de procesos, la hipótesis fundamental es que la realidad ha de ser modelada como información semántica auto-organizada, es decir, información que ‘internamente’ tiene significado, usando un modelo de red neuronal limitado y auto-referente. Tal sistema no posee leyes u objetos a priori, y se hace evolucionar usando un proceso de auto-inicio, de forma que es el propio sistema el que ‘internamente’ genera patrones de relaciones y sus modos dominantes de comportamiento, y todos los (sub)sistemas son de carácter fractálico, es decir, relaciones dentro de relaciones, y así sucesivamente ad infinitum.”445 ([Cah03] s. 2.2, pp. 9-10). Nótese, en primer lugar, como los resultados de Gödel, Turing y Chaitin, aunque constituyan 442 Una red neuronal es un sistema matemático que guarda semejanza con el modelo de las redes neuronales de los sistemas biológicos. Las redes neuronales se caracterizan por su habilidad de procesamiento de patrones (información no simbólica). 443 Texto traducido del original, en inglés. Ver nota 54, p. 39. 444 Es decir, objetos cuya descripción no puede hacerse en términos de los axiomas y reglas de inferencia del sistema de forma más concisa que darlo ‘tal cual’ (secciones 3.3.6.2.1 y 3.3.6.2.3). Ingeniería Electrónica – Universidad Católica del Uruguay 170 - [ 3 ] Modelos objetos de estructura algorítmicamente aleatoria (Chaitin) meta-regla regla Sistema Axiomático Formal frontera de Gödel objetos estructurados Fig. 3.5: Representación gráfica de la limitación Gödeliana de los sistemas sintácticos auto-referentes, desde la perspectiva de la Teoría de Información Algorítmica de Chaitin. La ‘frontera de Gödel’ confina aquellos objetos cuya estructura permite describirlos en forma concisa en término de los axiomas y reglas de inferencia del sistema axiomático formal. Las reglas del sistema no permiten acceso a objetos allende la ‘frontera de Gödel’, los cuales pueden ser alcanzado sólo mediante meta-reglas (o la ampliación de la base axiomática). Estos objetos son algorítmicamente aleatorios respecto del sistema axiomático formal en cuestión. (Adaptado de [Cah03], p.12; Fig. 2). limitaciones a los sistemas formales, parecen promover nuevos horizontes en lugar de ejercer influencias ‘pesimistas’ para el desarrollo - al menos, en el ámbito de la física. Nótese, en segundo lugar, que el nuevo paradigma requiere la introducción de significado en los modelos matemáticos446. Nótese, en tercer lugar, la importancia superlativa que se confieren a las relaciones entre los elementos de un sistema, las que en este modelo son suficientes para representar al sistema, prescindiendo de los objetos que constituyen los elementos del sistema447. Y nótese, finalmente, la mención acerca de la estructura fractálica que aparentemente produce este modelo de sistema448. La visión de la física de procesos que promueven Cahill y Klinger se representa en la Fig. 3.6. En esta concepción, las estructuras que se perciben emergen de la aleatoriedad autoreferente - matemáticamente, podrían verse como ‘verdades de ensemble’ establecidas a partir de las ‘verdades contingentes’ producto de un proceso iterativo - por lo cual en esencia el sistema sintáctico es inducido por el sistema semántico. Cahill aduce que el modo simbólico o sintáctico usual es aplicable solamente a descripciones fenomenológicas de alto nivel, y que por esta razón fue descubierto primero449. No obstante, el modelo de la realidad en términos de procesos se remonta a Heráclito (540-480 AC) quien aducía que el sentido común se equivoca al pensar que la realidad consiste de objetos estables; más bien la realidad está en estado de flujo. La apariencia de los objetos dependerían de este flujo para su continuidad e identidad, y 445 Texto traducido del original, en inglés. Ver nota 54, p. 39. 446 Ver la discusión al respecto en la sección 3.2.2. 447 La noción de sistema, según Von Bertalanffy, se confiere en la sección 1.3. Las secciones 1.4 y 1.5 introducen la noción de complejidad en sistemas debida a Simon. 448 La idea de una estructura fractálica se plantea en la sección 1.7, en relación a sistemas complejos. En el caso de la física de procesos de Cahill y Klinger, la estructura a la que se refieren es la del propio universo, que surgiría a partir de... ¡ruido aleatorio auto - referente!. Nótese que esta bizarra idea no es incompatible con la noción de sistema complejo de Simon, quien admite aleatoriedad en la formación de los sistemas, la que sin embargo no se manifiesta al nivel de las estructuras que emergen de esos procesos de formación. 449 Nótese que esto es perfectamente compatible con la idea de Simon referente a la formación de sistemas complejos (ver nota 448, p. 170). Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 171 para Heráclito, no era el cambio sino la apariencia de estabilidad lo que debía ser explicado450. Por ello, la física de procesos ha sido descrita como Sistema de Proceso Herácliteo, identificando al flujo con el ruido auto-referente. ([Cah03], p. 14; [CKK00], p. 3). Sistema semántico auto-referente (proceso estocástico) Sistema Axiomático Formal inducido verdades contingentes frontera de Gödel inducida verdades 'de ensemble' Fig. 3.6: Visión de los sistemas sintácticos desde la perspectiva de la Física de Procesos de Cahill y Klinger. Los sistemas sintácticos serían inducidos por el sistema semántico auto-referente, en virtud de la percepción de estructuras inducidas por el proceso estocástico, amenas al tratamiento mediante sistemas formales. (Adaptado y simplificado de [Cah03], p. 14; Fig. 2). “El concepto clave es modelar la realidad vía un proceso de orden-desorden, que toma en cuenta las limitaciones del formalismo o la lógica mediante el uso del nuevo concepto de ruido auto-referente (SRN 451). Este SRN no es aleatoriedad debida a una simple falta de conocimiento potencial (como sucede en física estadística) sino que representa lo que en principio son verdades no demostrables o no algorítmicas; usando SRN esencialmente trascendemos los límites de la lógica sin ser ilógicos. (...) ... en lugar de ser un impedimento para comprender la realidad, el descubrimiento de Gödel y su extensión como SRN actúa como un recurso intrínseco dentro de este sistema no formal y con el cual ha sido posible un modelado de la realidad vastamente mejorado. Induciendo, aproximadamente, un sistema formal junto con sus meta-reglas asociadas se conecta y engloba al actual modelado físico de la realidad.”452 ([CKK00], p. 3). Si la idea de Tegmark sobre simetría entre física y matemática fuere acertada, la Física de Procesos propuesta por Cahill y Klinger constituiría una evidencia en favor de la adopción de meta-reglas y del uso de la experimentación en matemáticas, para superar la barrera Gödeliana inherente a las estructuras formales 453, y 450 Similarmente, desde antaño las filosofías Budistas se inclinan a pensar que la realidad es dinámica, no estática, pero que la lógica imagina una realidad estabilizada en conceptos y nombres; el objetivo ulterior de la lógica Budista es explicar la relación entre una realidad dinámica y las construcciones estáticas de la lógica. ([Cah03], pp. 14-15). 451 Acrónimo de ‘Self - Referential Noise’. 452 Texto traducido del original, en inglés. Ver nota 54, p. 39. 453 La limitación Gödeliana de los sistemas formales muestra la real incidencia del lenguaje en la apercepción (sección 2.1.2.2): el autómata de Turing (un intérprete de un lenguaje artificial) no es capaz de determinar cuestiones por fuera del sistema sintáctico empleado, y de nada sirve el argumento de ampliar el sistema (lenguaje) formal, en virtud de que el problema persiste con toda posible ampliación. La interpretación ‘física’ de la limitación Gödeliana implica que hay conocimiento inalcanzable en términos de los sistemas (lenguajes) formales, los cuales sólo pueden formular ‘leyes de la física’ limitadas por la complejidad algorítmica del sistema (lenguaje). El cambio en este panorama reside en salirse de los sistemas axiomáticos formales, por ejemplo, mediante el uso de la intuición y la Ingeniería Electrónica – Universidad Católica del Uruguay 172 - [ 3 ] Modelos alcanzar las verdades contingentes de Chaitin. Por otro lado, las ideas detrás de la Física de Procesos, y las nociones de sistema, complejidad, y ‘modularidad’ que se manejan en este documento, resultan no sólo compatibles, sino que además parecen converger sobre aspectos como estructura, proceso, evolución, complejidad, y aleatoriedad. Subyacente en las precedentes consideraciones, reside la idea de incorporación de la semántica a las estructuras puramente sintácticas de la matemática formalista del siglo XX. Esta idea se promueve en el presente documento. “De hecho, estos resultados meta-matemáticos negativos se dan en un siglo que constituye un éxito tremendo, espectacular para las matemáticas, las matemáticas avanzan a pasos agigantados. De forma que no hay razón para el pesimismo. Así que lo que necesitamos es una teoría más realista que nos de una mejor idea de por qué la matemática está resultando espléndida, que lo es. Pero me gustaría tener alguna comprensión teórica de esto, y no sólo evidencia anecdótica.” (Chaitin). Quizás las ideas de Tegmark, las de física de procesos, y las de Simon, combinadas puedan explicar el éxito de las matemáticas del siglo XX - si las estructuras se forman a partir de información aleatoria, y pueden evolucionar en complejidad generando sistemas modulares jerárquicos, de existir simetría entre física y matemáticas ello podría dar cuenta del éxito de los sistemas axiomáticos formales para describir las estructuras matemáticas. [ 3.3.6.2.5.3 ] FORMALISMOS INFORMÁTICOS FÚTILES Acorde a su origen, la Teoría de Información Algorítmica tiene consecuencias en el ámbito computacional. Prima facie, otorga a los sistemas formales à la Hilbert su justa medida de éxito. “Como he dicho, los sistemas formales no tuvieron éxito para el razonamiento, pero tuvieron un éxito brillante para la computación. De forma que Hilbert es el suceso más increíble en el mundo, pero como tecnología, no como epistemología. ¡Me gusta decir que mi campo no tiene aplicaciones, que lo más interesante acerca del campo de la complejidad dada por el tamaño de los programas es que no posee aplicaciones, que demuestra que no puede ser aplicable! Porque no se puede calcular el tamaño del programa más conciso. Pero eso es lo fascinante acerca de ello, porque revela las limitaciones a nuestro conocimiento. Por esto es que la complejidad dada por el tamaño de los programas tiene significancia epistemológica.”454 [Cha00]. Pero además, sugiere que el desarrollo de programas y su verificación están limitados por estos mismos resultados epistemológicos. “Déjenme repetir: ¡los sistemas axiomáticos formales son un fracaso! Los algoritmos para demostrar teoremas no funcionan. Uno puede publicar trabajos al respecto, pero estos sólo demuestran teoremas triviales. (...) Similarmente, demostrar la corrección de programas empleando métodos formales es fútil. La depuración se lleva a cabo experimentalmente, mediante prueba y error. Y los gerentes 455 precavidos insisten en ejecutar un sistema nuevo en paralelo con el viejo hasta que creen que el nuevo funciona. Excepto - lo que hicimos en un maravilloso proyecto en IBM - si se está constantemente comiendo lo cocinado por uno mismo. Nosotros estábamos constantemente ejecutando la última versión de nuestros programas, constantemente compilando nuestro compilador optimizador por medio de sí mismo. Por estarlo empleando constantemente nosotros mismos, obteníamos una realimentación instantánea del diseño y de su ‘performance’, que estaba evolucionando constantemente. En mi opinión esa es la única forma de desarrollar un largo proyecto de programación: un encare descendente totalitario no puede funcionar. Se debe diseñar a medida que se avanza, y no al inicio antes de escribir una sola línea de código. Y siento que mi experiencia en el mundo real de depuración de programas confiere una lección filosófica valiosa: la experimentación es la única manera de ‘demostrar’ que los programas son correctos. Las demostraciones matemáticas tradicionales son posibles sólo en mundos de juguete, no en el mundo real. El mundo real es muy complicado. Un físico diría: la matemática pura sólo puede lidiar con el átomo de hidrógeno. ¡Un protón, un electrón, y eso es todo! La visión de una matemática cuasi-empírica podrá ser << p. 171 incorporación de semántica a las estructuras formales - lo que implica un cambio significativo en el lenguaje empleado. 454 Texto traducido del original, en inglés. Ver nota 54, p. 39. 455 Se refiere a gerentes de sistemas informáticos. Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 173 controversial en la comunidad matemática, pero es una noticia vieja en el negocio de la computación. Los programadores ya profesan una actitud cuasi-empírica respecto a las demostraciones. Pese a que la programación es una cuestión puramente mental, no física, los programadores se comportan como físicos, no como matemáticos, cuando se trata de depurar.”456 457 ([Cha04], s. VII). Entre los problemas prácticos más importantes en la ingeniería informática se encuentra la estimación de proyectos informáticos458: la estimación de cronogramas de desarrollo y el aseguramiento de la productividad y la calidad de los programas computacionales. Al respecto, los resultados de la complejidad algorítmica459 pueden ser interpretados como indicadores de ciertos límites a la estimación de proyectos informáticos. Pese a ser límites abstractos, de todas maneras contradicen las entusiastas afirmaciones efectuadas ocasionalmente por quienes promueven programas de estimación comerciales. “Específicamente, si se acepta que la complejidad algorítmica es una definición apropiada para la complejidad de un proyecto de programación, entonces las proclamaciones de estimación absolutamente objetiva de la complejidad de proyectos, tiempo de desarrollo, y productividad de los programadores son necesariamente incorrectas.” ([Lew01], p. 1). Las estimaciones del tiempo de desarrollo de un programa dependen de las estimaciones de su tamaño o su complejidad. Pero las estadísticas históricas no pueden proveer esto último en el caso de programas nuevos, porque la estimación del tamaño y la complejidad de un programa no son factibles a priori. La complejidad algorítmica muestra que no se puede calcular el tamaño mínimo de un programa que efectúa una tarea predeterminada, y que si bien existe un tamaño máximo calculable (el tamaño ‘tabular’ 460) este es inútil porque generalmente sobreestima en forma grosera el tamaño de un programa razonable para la tarea prefijada 461. De hecho, la relación entre el tamaño tabular y la (incomputable) complejidad algorítmica, considerada como función del tamaño tabular, crece tan rápidamente como cualquier función computable. Asimismo, el tiempo de desarrollo no se puede predecir objetivamente. Esto es una consecuencia directa del hecho que las estimaciones del tiempo de desarrollo deben considerar la complejidad del programa y su tamaño462, lo que no es factible a priori. Y finalmente, también debido a que no es factible determinar a priori la complejidad de un programa nuevo, la productividad tampoco puede ser determinada objetivamente, ni en forma absoluta ni entre proyectos. La posibilidad de lograr una estimación estadística también es limitada, puesto que el teorema de Chaitin - levemente reformulado - dice que un programa de estimación no puede calcular una cota inferior para la complejidad de programas cuyo tamaño es significativamente mayor que el propio. Además, la estimación estadística de la complejidad adolece de un problema intrínseco que no se presenta en las aplicaciones estadísticas comunes, como la estimación de una media poblacional: el problema es que el basamento es (y será) desconocido, de forma que no es posible determinar el sesgo y la varianza de los posibles diferentes estimadores [Lew01]. La Teoría de Información Algorítmica tiene consecuencias significativas en el ámbito computacional. En cuanto sistema formal, la computación está limitada por 456 Texto traducido del original, en inglés. Ver nota 54, p. 39. 457 Esta consecuencia tiene un significado particularmente importante en el desarrollo de sistemas electrónicos complejos. 458 ‘Software estimation’ en la literatura angloparlante. 459 Designada ‘complejidad KCS’ en [Lew01], en referencia a Kolmogorov, Chaitin, y Solomonoff. 460 Se refiere a contener la salida del programa enteramente en una tabla, y no producirla por medio de un algoritmo más conciso que los datos que la salida representa. 461 Por ejemplo, si la multiplicación de dos enteros arbitrarios de 32 bits se diera en forma tabular en lugar de algorítmicamente, se requerirían N=64·2 64 bits (cada posible resultado es de 64 bits) ([Lew01], p. 3). 462 Nótese que, en última instancia, hay límites a la velocidad a la cual un programador puede escribir código. Por tanto, cualquier estimación del tiempo de desarrollo de un programa que se suponga independiente del tamaño del programa, será errónea si el programa resulta ser mayor que lo que puede ser construido durante el período estimado. Ingeniería Electrónica – Universidad Católica del Uruguay 174 - [ 3 ] Modelos los resultados de incompletitud aplicables a los sistemas formales. En virtud de las limitaciones de los sistemas formales para el razonamiento, demostrar la corrección de los programas mediante algoritmos es un intento fútil; la depuración de los programas no tiene más remedio que hacerse experimentalmente, vía prueba y error, porque a excepción de casos triviales la depuración no es factible mediante métodos formales [Cha04]. Los resultados de la complejidad algorítmica pueden ser además interpretados como indicadores de que la complejidad de los programas, los cronogramas de desarrollo de proyectos informáticos, y la productividad de los programadores, no pueden ser estimados objetivamente, y por tanto continuarán siendo una cuestión de opinión. Aún las estimaciones estadísticas en esas áreas se hallan limitadas por los resultados de incompletitud que implican el desconocimiento del universo muestral. En esencia, la estimación objetiva de proyectos informáticos es irrealizable, y los resultados estadísticos deben adoptarse muy escépticamente. De hecho, si se creyera que estas estimaciones fueran factibles de codificación como otros procesos de ingeniería, entonces el litigio sería una consecuencia razonable y esperable ante estimaciones inadecuadas [Lew01]. [ 3.3.7 ] CONSIDERACIONES FINALES Se cierra aquí la extensa sección dedicada a la discusión de los modelos matemáticos, que se iniciara efectuando consideraciones acerca de la incidencia cultural en la matemática, y presentara su evolución histórica hasta la matemática formalista del siglo XX, asociada a la figura de Hilbert. La naturaleza del método matemático ha sido considerada en el marco de las limitaciones meta-matemáticas demostradas por Gödel, Turing y Chaitin, y en consecuencia se ha considerado la adopción de actitudes en matemáticas similares a las de las ciencias experimentales, y la incorporación de semántica a los modelos matemáticos formalistas puramente sintácticos, con objeto de superar estas limitaciones. En particular, se ha discutido la capacidad de los modelos semánticos para el modelado del mundo real, en términos de las ideas subyacentes a la Física de Procesos de Cahill y Klinger, un modelo matemático que surge de considerar prima facie las limitaciones de los modelos estructurales y proponer un modelo alternativo de proceso. Sin embargo,após de las exposiciones acerca del autómata de Turing, y la Teoría de Información Algorítmica, cabe discutir la ubicuidad del campo numérico real para el modelado matemático. Pueden verse en la siguiente sección algunos argumentos tanto de tipo físico como matemático en contra del continuo; estos argumentos, aunque pequen por abstractos o filosóficos, se ven reflejados desde una perspectiva más pragmática cuando se aborda el concepto de ‘modelo ejecutable’ (sección 3.4) y cuando se discute el modelado en ingeniería (sección 3.5). [ 3.3.7.1 ] LOS NÚMEROS REALES SON IRREALES - ARGUMENTOS FÍSICOS Y MATEMÁTICOS EN CONTRA DEL CONTINUO “Un número real no es un objeto digital, es un objeto analógico. Y dado que varía con continuidad, y no en saltos discretos, si uno de tales números se convierte en bits se obtiene una cantidad infinita de bits. ¡Pero los computadores no pueden efectuar operaciones con números que poseen una cantidad infinita de bits! Y mi teoría de información algorítmica se basa en lo que las computadoras pueden hacer.”463 ([Cha04], c. III). De esta forma, Chaitin introduce una discusión respecto a los números reales, a la cual dedica los capítulos IV y V de [Cha04]464. En esta sección se presentan 463 Texto traducido del original, en inglés. Ver nota 54, p. 39. 464 “A propósito, ¿por qué se llaman ‘reales’? Para distinguirlos de los llamados números ‘imaginarios’ como √ - 1. Los números imaginarios no son ni más ni menos imaginarios que los números reales, pero inicialmente, varios siglos atrás, inclusive en los tiempos de Leibniz, hubo mucha resistencia a considerarlos a la par de los >> p. 175 Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 175 tales argumentos, que son tanto de carácter físico como matemático, y promueven la consideración de una ‘filosofía digital’, como en la que se basa la Teoría de Información Algorítmica de Chaitin. Según Chaitin, existen indicios de que este universo particular en el que vivimos es de hecho un universo discreto y digital, y no un universo continuo y analógico. Estas ideas se remiten a Demócrito, quien aducía que la materia debía de ser discreta, y a Zeno, quien incluso tuvo la audacia de sugerir que el espacio y tiempo continuos eran imposibilidades contradictorias en sí mismas. Feynman efectúa al respecto una aguda reflexión: “«Siempre me molesta que, de acuerdo a las leyes tal como las entendemos actualmente, una máquina de cómputo requiera una cantidad infinita de operaciones lógicas para determinar que es lo que sucede en una región arbitrariamente pequeña del espacio, y en una región arbitrariamente pequeña del tiempo. ¿Cómo puede todo ello suceder en ese pequeño espacio? ¿Por qué ha de requerirse una cantidad infinita de lógica para determinar lo que hará una pequeña región del espacio-tiempo? Así, frecuentemente he considerado la hipótesis que en última instancia la física no requerirá una formulación matemática, que en última instancia el mecanismo será revelado, y las leyes resultarán ser simples como el tablero de damas...» Feynman, The Character of Physical Law.”465 ([Cha04], c. IV). De hecho, una gran cantidad de cálculos en física divergen al infinito cuando se trata de distancias infinitesimales, y si bien los físicos son adeptos a no formularse la pregunta equivocada, Chaitin, como matemático, se cuestiona si ello no sería una indicación de que los números reales constituyen un problema, y que las distancias infinitesimales no existen. Al respecto, plantea dos ejemplos: la infinita cantidad de energía almacenada en el campo alrededor de un electrón puntual según la teoría electromagnética de Maxwell, y el contenido energético infinito del vacío de acuerdo a la teoría de campo cuántica 466. Así, para Chaitin, la teoría de cuerdas se inventó para eliminar las divergencias a medida que las distancias se hacen arbitrariamente pequeñas - elimina, por ejemplo, fuentes puntuales como el electrón, sustituyéndolos por lazos de cuerdas, cuya longitud proporciona una escala de distancia mínima - aunque generalmente no se presente la teoría de esa forma. Por otra parte, según Rolf Landauer no existe mensura de una magnitud física que se haya efectuado con más de 20 dígitos (significativos) de precisión. Los experimentos que alcanzan tal grado de precisión son obras maestras del arte de laboratorio, y de la búsqueda de cantidades físicas adecuadamente definidas y lo suficientemente estables como para permitir ser medidas con ese grado de precisión, sin mencionar la eliminación de todas las posibles fuentes de ruido. Por tanto, Landauer se cuestiona por qué nadie habría de creer en mediciones arbitrariamente precisas, o en los números reales que se emplean para registrar los resultados de esas mensuras. “¡O sea, existen montones de razones para sospechar que podríamos vivir en un universo digital, que Dios prefiere ser capaz de copiar las cosas en forma exacta cuando debe hacerlo, en vez de obtener el inevitable incremento en ruido que acompaña al copiado analógico!”467 ([Cha04], c. IV). Y a las << p. 174 números reales. Para la época de Euler, los números imaginarios eran extremadamente útiles. Por ejemplo, el famoso resultado de Euler e ix = cos(x) + isen(x) sometió por completo a la trigonometría. Y la aserción (Gauss) que una ecuación algebraica de grado n posee exactamente n raíces sólo funciona con la ayuda de los imaginarios. Adicionalmente, la teoría de funciones de variable compleja (Cauchy) muestra que el cálculo y en particular las llamadas series de potencia tienen mucho más sentido con los imaginarios que sin ellos. El argumento final en su favor, si alguno fuere necesario, fue provisto por la ecuación de Schrödinger en la mecánica cuántica, en donde los imaginarios son absolutamente esenciales, dado que las probabilidades cuánticas (llamadas ‘amplitudes probabilísticas’) deben tener dirección además de magnitud.” ([Cha04], c. V). Texto traducido del original, en inglés. Ver nota 54, p. 39. 465 Texto traducido del original, en inglés. Ver nota 54, p. 39. 466 De hecho, según la mecánica cuántica, las mediciones con precisión infinita requieren energía infinita (aceleradores de partículas infinitamente grandes, e infinitamente caros) pero de todas formas, bastante antes de llegarse a esta situación se obtiene el colapso gravitacional dentro de un agujero negro si se cree en la relatividad general ([Cha04], c. IV). 467 Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 176 - [ 3 ] Modelos precedentes razones de carácter ‘físico’, pueden agregarse razones de índole puramente matemática. La designación de trascendental fue otorgada por Leibniz a su cálculo infinitesimal que permitía el cálculo de curvas que no satisfacían ecuaciones algebraicas, pero lo que queda de la idea de Leibniz acerca de los métodos trascendentales es meramente la distinción entre números algebraicos y números trascendentales: aquellos números que no constituyen soluciones a ecuaciones de tipo algebraico, y que hoy se denominan números irracionales. Según Chaitin, la historia intelectual de las demostraciones de existencia de estos números tiene cuatro etapas significativas, que han cambiado la forma de ver el problema, y que ilustran la elusividad del conjunto de los números reales. En primer lugar, Liouville, Hermite and Lindemann, con gran esfuerzo fueron los primeros capaces de exhibir números reales individuales que demostrablemente eran trascendentales. En segundo lugar, la teoría de conjuntos infinitos de Cantor reveló que los números reales trascendentes poseían la cardinalidad del continuo, mientras que los reales algebraicos eran solamente tan numerosos como los enteros, un infinito ‘menor’. En tercer lugar, Turing demostró que los números reales algebraicos son computables con su autómata, pero que la mayoría de los números reales son incomputables y por tanto trascendentales. En cuarto lugar, de la definición de número real aleatorio resulta que con probabilidad 1, un real elegido al azar es efectivamente aleatorio, por tanto incomputable, y por tanto trascendental. Así, un número real cuya expresión en binario es construida mediante infinitos lanzamientos independientes de una moneda equilibrada resulta, con certeza, un número trascendental, mientras que los reales no aleatorios, computables, algebraicos, tienen probabilidad nula de ser obtenidos al azar. Y esto significa que el conjunto de números reales capaz de ser individualmente nombrado, especificado, definido, o referido - en forma constructiva, o no - por un sistema axiomático formal o por un lenguaje formal, es de probabilidad nula: los número reales son, con certeza, innombrables ([Cha04], c. V). Así, según Chaitin, aunque surjan naturalmente en la geometría, el conjunto de los números reales es elusivo. ¿Cómo creer en la existencia de números que no son computables y que ni siquiera es posible referirlos o especificarlos, con probabilidad uno - ¡certeza! - de que así suceda? Así, desde los números ‘impronunciables’ de los Pitagóricos, como √2 (sección 3.3.3.1) se llega entonces - con probabilidad 1, con certeza - a que no hay forma de nombrar, especificar, definir, o siquiera referirse - no importa que tan poco constructivamente - a números reales individuales. De los ‘impronunciables’ a los ‘innombrables’, pareciera no haber escapatoria a esta cuestión ([Cha04], c. V). Y el argumento principal es que los números reales contienen una cantidad de información infinita. La primer mención a esta cuestión se debe a Borel, en 1927, donde propone ‘un asombroso número que lo sabe todo’. Aduce Borel que si se cree en un número real como una secuencia infinita de dígitos, entonces uno podría consolidar todo el conocimiento humano en un único número real. Para ello, Borel proponía construir este número como un oráculo cuyos dígitos - en su expansión binaria - sirviesen para responder toda pregunta imaginable cuya respuesta pudiere ser expresada en términos de ‘sí’ o ‘no’. Sin embargo, la característica asombrosa del número oráculo de Borel es que no habría nada que impidiera poner en ese único número real una cantidad infinita de información. Borel se preguntaba entonces por una razón que diera credibilidad a tal número oráculo capaz de almacenar una cantidad infinita de información. Y no parece haber razón alguna para creer en ello, por lo cual Borel considera tal número como una fantasía matemática, una ‘reducción al absurdo’ del concepto de número real ([Cha04], c. V). Actualmente, un argumento más directo para comprender esta idea consiste en considerar la capacidad tecnológica disponible para digitalizar la información como texto, audio, y video. La concatenación de toda esa información en un formato digital podría verse como el procedimiento de construcción de un número binario, que bien podría corresponderse con la expansión binaria de un número real en el intervalo unidad. Pero se trataría de una cantidad de información finita - finita, aunque se incremente el conocimiento humano - por lo cual se deduce que bastaría con un número racional para almacenarla. Esta versión del oráculo Diseño de Sistemas Electrónicos Complejos [ 3.3 ] Modelos matemáticos - 177 de Borel no requiere apelar a ningún número real; sólo precisa un único elemento del campo numérico racional Q. La razón por la cual el precedente argumento resulta el principal en el cuestionamiento de la ubicuidad del continuo, es de origen epistemológico. “Epistemología es definida como la rama de la filosofía que investiga el origen, estructura, métodos, y validez del conocimiento. Uno de los resultados más importantes de la epistemología es el descubrimiento de que hay necesariamente algunas limitaciones del conocimiento.”468 ([Kli69], s. 8.1, p.268). En el citado libro, desde la perspectiva de la ingeniería, Klir efectúa una clara, pragmática y concisa introducción a la teoría general de los sistemas, en la línea de Von Bertalanffy469. Y es de sus conclusiones que se puede comprender el problema epistemológico que plantean los números reales: “La teoría general de los sistemas tal como se ha delineado es basada esencialmente en este resultado epistemológico. El concepto de sistema es tal que es posible ante cualquier circunstancia mantenerse dentro de los límites del conocimiento. No se requiere conocer los límites pero se requiere permanecer dentro de los límites. El último requerimiento, en contraposición al primero, es asequible mediante una selección clara y única de cantidades, y mediante el uso de un nivel de resolución espacio-temporal apropiado. El nivel de resolución se supone es siempre elegido en forma tal que no hay incertidumbre acerca de los valores de las cantidades en el transcurso de su observación. El nivel de resolución más bajo distingue sólo dos valores diferentes de cualquier cantidad considerada, y el nivel de resolución más alto está relacionado con la capacidad discriminatoria de nuestros sentidos o instrumentos aplicados. Se sigue del principio de incertidumbre de Heisenberg que el poder discriminatorio tiene un límite definido. Si aceptamos el principio de incertidumbre, hallamos que únicamente los sistemas discretos son significativos desde el punto de vista epistemológico.”470 ([Kli69], s. 8.1, p.268). Aclara Klir: “El uso de sistemas matemáticos continuos para describir otros sistemas es meramente pragmático. Métodos matemáticos potentes para sistemas de variable continua han sido elaborados en el largo transcurso de la historia de la matemática y son generalmente bien conocidos. Métodos matemáticos eficientes para sistemas con variables discretas, por el contrario, han sido elaborados sólo recientemente 471 y son menos conocidos. Su desarrollo está estrechamente relacionado al desarrollo de la ciencia de la computación. Los computadores digitales automáticos, las herramientas contemporáneas más potentes para procesamiento de información, son esencialmente sistemas discretos. Son por tanto mejor preparados para la solución de problemas de tipo discreto. Esto es ventajoso desde que los datos empíricos (esencialmente discretos) pueden ser procesados directamente y no requieren ser transformados en primera instancia a la forma impropia de variables continuas. Así, las computadoras digitales nos permiten, en principio, trabajar con los datos empíricos reales en lugar de sustitutos continuos inciertos. El subsiguiente desarrollo de la matemática discreta es de primordial importancia para la teoría general de los sistemas así como para la teoría de la determinación de la evidencia empírica.”472 473 ([Kli69], s. 8.5, p.275). 468 Texto traducido del original, en inglés. Ver nota 54, p. 39. 469 Ver sección 1.3. Cabe aclarar que, desafortunadamente, la citada referencia ([Kli69]) fue conocida y conseguida a posteriori de la elaboración de los capítulos 1, 2, y casi la totalidad del capítulo 3 del presente documento. Una temprana consulta a este excelente libro hubiera indudablemente redundado en una formulación mucho más clara y concisa del concepto de sistema, hubiera permitido profundizar en los procesos de diseño en ingeniería, y hubiera permitido la incorporación de los conceptos - por demás acertados - que el autor confiere en la referida obra. No obstante, cabe notar que las afirmaciones que se efectúan en el presente documento están en sintonía con las ideas de Klir en su “An Approach to General Systems Theory”. 470 Texto traducido del original, en inglés. Ver nota 54, p. 39. La tipografía en negritas se introduce en el presente documento, no correspondiendo al original. 471 Nótese la época de la cual data la referencia citada. 472 Texto traducido del original, en inglés. Ver nota 54, p. 39. 473 Cabe notar la coincidencia entre la idea de Klir acerca de los ‘datos empíricos esencialmente discretos’ con la de Landauer (p. 175) que se refiere a la precisión inherentemente limitada de las mensuras de cantidades físicas. También, son acordes las observaciones de Klir referentes al uso y utilidad de los computadores con las ideas de Chaitin, que se presentan en la sección 3.3.6.2.5.1 (bajo el rótulo ‘¿Matemáticas cuasi - empíricas?’): los computadores son el medio que permite - y por tanto, promueve el desarrollo de la matemática discreta. Nótese también que la limitación que - según Klir - el >> p. 178 Ingeniería Electrónica – Universidad Católica del Uruguay 178 - [ 3 ] Modelos Pueden esgrimirse argumentos tanto de tipo físico como matemático en contra de la existencia de los números reales, pese a su aparentemente inmediata justificación en la geometría. Desde antiguo, Demócrito y Zeno aducen que la materia ha de ser discreta y que la continuidad del espacio y del tiempo es una imposibilidad contradictoria en si misma. Esto es actualmente argumentado por Feynman, quien señala que una región arbitrariamente pequeña del espacio-tiempo requeriría de infinitas operaciones lógicas en un autómata para ser resuelta en término de las leyes de la física, tal como se conciben en la actualidad (en términos del continuo). Además, la divergencia de ciertos cálculos de la física, que ocurre cuando se consideran distancias infinitesimales, se ha debido soslayar mediante teorías que introducen mínimos a las distancias concebibles, lo que promueve más sospechas respecto al uso del continuo en la física. Y por encima de todo esto, Landauer aduce que la mensura de magnitudes físicas ha sido y será limitada en precisión, y que por tanto en física no hay siquiera razones para considerar números capaces de registrar precisiones infinitas. Adicionalmente, el hecho que los números irracionales sea ciertamente una variedad incomputable, y que además no sea posible referir, especificar o siquiera nombrar sus elementos, pone en tela de juicio la existencia de este elusivo cuerpo numérico, inclusive desde el punto de vista matemático. Incidentalmente, dado que toda pieza de información - texto, imagen, audio, video, etc. - puede ser digitalizada y concatenada con las restantes para conformar una cadena de bits, finita, necesariamente tal cadena se corresponde con la expansión binaria de un número racional en el intervalo unidad, y por tanto basta con un único número racional para contener la totalidad del conocimiento humano - aunque evolucione, pues siempre será finito. Y en este contexto, que un único número real baste para almacenar una cantidad infinita de información, motiva a que Borel los considere como una fantasía matemática. ([Cha04], c. IV-V). Porque, en esencia, una cantidad infinita de información es epistemológicamente insignificante, puesto que necesariamente rebasa los límites - finitos - del conocimiento. Estos problemas filosóficos asociados a los números reales eran referidos por el propio Leibniz como ‘el laberinto del continuo’ ([Cha04], c. V). [ 3.4 ] MODELOS EJECUTABLES [ 3.4.1 ] CONCEPTO DE PROGRAMA, MODELO EJECUTABLE, Y SIMULACIÓN “Un programa es una descripción o especificación del comportamiento de un computador. Un computador ejecuta un programa comportándose de acuerdo al programa, satisfaciendo el programa. La gente usualmente confunde los programas con el comportamiento del computador. Hablan de lo que hace el programa; por supuesto, este solamente es desplegado en el papel o la pantalla; es el computador el que hace algo. Preguntan si un programa termina; por supuesto que termina; es su comportamiento el que puede no hacerlo. Un programa no es un comportamiento, sino una especificación de comportamiento. Más aún, un computador puede no comportarse como especifica un programa por diversas razones: un cabezal de un disco puede romperse, un compilador puede ser defectuoso, o un recurso puede agotarse << p. 177 principio de incertidumbre de Heisenberg establece sobre la capacidad discriminatoria de los sentidos humanos y los instrumentos de mensura, constituye una limitante esencial al proceso de ‘desantropomorfización de la imagen del mundo’ propiciado por el avance tecnológico - científico, al que se refiere Von Bertalanffy (ver nota 131, p. 69). Diseño de Sistemas Electrónicos Complejos [ 3.4 ] Modelos ejecutables - 179 (desborde de la pila, desborde aritmético o numérico) por mencionar unos pocos. La diferencia entre un programa y el comportamiento del computador es obvia.”474 ([Heh04], p. 41) “Un programa es la especificación del comportamiento del computador; por el momento, eso significa que es una expresión booleana475 que relaciona un estado previo con uno posterior. No toda especificación es un programa. Un programa es una especificación implementada, es decir, una especificación para la cual ha sido provista una implementación, tal que un computador pueda ejecutarla.”476 477([Heh04], p. 41). Al respecto de las precedentes observaciones, cabe notar que en este documento efectivamente se abusa de la palabra ‘programa’, pues en gran número de casos se refiere con esta al comportamiento del computador que ejecuta al referido programa 478. Admitiendo esta usual laxitud en el empleo del término - pero asumiendo su adecuado significado - interesa aquí discutir aquella particularidad de los programas que deriva, precisamente, de su posibilidad de ejecución en el computador, lo que les diferencia de otros modelos matemáticos formales expresados simplemente como símbolos y ecuaciones ‘en papel’. Una utilidad evidente de los programas es la del cómputo sistemático, ‘mecanizado’; no obstante, cabe notar la diferencia significativa que existe entre la ejecución de programas que modelan las propiedades o el comportamiento de sistemas, y la ejecución de programas dedicados solamente a la realización de cálculos científicos, o a la gestión empresarial. En estos últimos, la estructura de control del programa se puede alterar, mientras que el resultado producido por la ejecución el programa se mantenga correcto. Es decir: del comportamiento del computador pretendido por el programa, interesa solamente la devolución de resultados correctos desde el punto de vista lógico. Pero el modelado de un sistema ‘real’ no solamente debe reflejar la fidelidad lógica, o la precisión de los resultados, sino también otros aspectos como por ejemplo la fidelidad temporal479, causalidad, etc., lo que implica que la elaboración de la estructura de control de este otro tipo de programa requiere cuidados adicionales480. Así, con objeto de diferenciar los distintos tipos de programa - y recordar la diferencia subyacente cabe introducir el concepto de modelo ejecutable: Un modelo ejecutable es un programa, cuyo objeto es modelar el comportamiento de alguna entidad - fundamentalmente sistemas - vía el comportamiento del computador. 474 475 Texto traducido del original, en inglés. Ver nota 54, p. 39. Una expresión en términos del Álgebra de Boole. 476 Texto traducido del original, en inglés. Ver nota 54, p. 39. El subrayado corresponde al autor original; la tipografía en negritas es resorte del presente documento. 477 Nótese que la noción de ‘programa’ como ‘especificación implementada del comportamiento de un computador’ está admitiendo la consideración como ‘programa’ de su código fuente, en las hipótesis de (a1) existencia de un compilador adecuado para el computador que ha de ejecutar el programa, y (a2) compilación sin errores del código fuente; o (b1) existencia de un intérprete adecuado para los comandos dados en el código fuente, y (b2) código fuente libre de errores de sintaxis. Es decir, por ‘programa’ puede hacerse referencia a una descripción del comportamiento de un computador que no sea directamente ejecutable por este, siempre que exista algún medio que garantice su traducción a otra descripción que sí sea directamente ejecutable por el computador. 478 Por ejemplo, en la sección 3.3.6.1 se discute repetidamente si un programa finaliza o no, en lugar de efectuar el planteo estrictamente correcto: si la ejecución del programa finaliza o no. 479 Temporización que - según el nivel de abstracción al que se elabore el modelo - podrá limitarse a modelar el orden parcial o total de eventos, o modelarlos con determinada precisión. 480 El actual diseño de sistemas electrónicos programables (fundamentalmente los designados sistemas embebidos) presenta como uno de los temas claves el ‘modelo de cómputo’ a emplear por los programas dedicados a modelar los sistemas. Este ‘modelo (o modo) de cómputo’ tiene precisamente relación con la ‘estructura de control’ del programa. Ingeniería Electrónica – Universidad Católica del Uruguay 180 - [ 3 ] Modelos La designación de ‘modelos ejecutables’ pretende diferenciarles de aquellos programas que son dedicados exclusivamente al cálculo científico, a la gestión administrativa, u otros propósitos de índole similar, y cuyo objeto es básicamente la devolución de resultados correctos desde el punto de vista ‘lógico’, sin que interese esencialmente el proceso de ejecución (el comportamiento del computador) que los produce. Los modelos ejecutables tienen como objeto la descripción del comportamiento de los sistemas a los que modelan, por lo cual su ejecución se orienta a representar procesos, en los cuales la fidelidad de la representación temporal, causalidad, etc. son cuestiones tan importantes como la fidelidad lógica, o la precisión de los resultados. Por tanto, la estructura de los modelos ejecutables reviste singular importancia desde la perspectiva de la aplicación. En cuanto modelo, un modelo ejecutable cumple con la noción que se confiere en la sección 3.1: es una construcción análoga a una entidad, a la cual ‘representa’ con limitada precisión, en aspectos que son relevantes para cierta situación en la cual se pretende emplear el modelo en lugar de la entidad original. Pero la utilidad principal de los modelos ejecutables consiste precisamente en la posibilidad de ejecutar el modelo en el propio computador, para estudiar su comportamiento y propiedades en un ambiente controlado. Por este motivo, los modelos ejecutables son usualmente llamados simulaciones, aunque el término es apropiado sólo cuando el modelo computacional es claramente distinto del sistema que modela481 [PtP01]. Aquí se prefiere emplear la designación de ‘modelo ejecutable’ frente al término ‘simulación’, en virtud de la relación entre modelos y el proceso de refinamiento de descripciones que constituyen los procesos de diseño482. Los modelos ejecutables son también denominados simulaciones, pero esta designación es adecuada sólo cuando el modelo es claramente distinto al sistema que modela. Por razones de generalidad, se prefiere entonces la designación de ‘modelo ejecutable’. La utilidad principal de los modelos ejecutables - simular el comportamiento de algún sistema al que modelan - aprovecha la posibilidad de representar la dinámica del sistema483 mediante el propio proceso de ejecución del modelo que efectúa el autómata (el computador) 484. La 481 Aunque pueda no resultar intuitivo, no siempre el modelo ejecutable se diferencia claramente del sistema real. En el caso de sistemas de cómputo general (designémosles sistemas programables) perfectamente puede mutarse de una implementación física, a una implementación ‘algorítmica’ ejecutada sobre otro dispositivo físico programable. De las secciones 3.3.5.2 y 3.3.6.1 se tiene que un computador puede emular a cualquier otro, es decir, un computador adecuadamente programado puede ser indistinguible - desde el punto de vista lógico - de otro computador, y por tanto, la funcionalidad del primer dispositivo físico puede ser emulada por otro dispositivo, programándolo adecuadamente. Es decir, un emulador es un computador ejecutando el ‘modelo ejecutable’ de otro computador, al que ‘simula en forma exacta’ (emula) desde el punto de vista lógico. Este caso muestra que las diferencias entre el ‘modelo ejecutable’ y el sistema modelado pueden resultar difusas desde ciertas perspectivas - en el ejemplo, desde el punto de vista de los programas es indistinguible el dispositivo original del emulador - y con el término simulación se pretende indicar los casos en que las diferencias son manifiestas. Sin embargo, el término simulador se emplea frecuentemente en electrónica para distinguir a los llamados ‘emuladores en circuito’ de un dispositivo programable (dispositivos que emulan a otros dispositivos programables, en aspectos físicos y eléctricos además de los lógicos) de una emulación hecha completamente por programa en un computador, complicando el uso de los términos. 482 Esta cuestión se trata en la sección 3.5.1. 483 Y de su entorno. Generalmente, el comportamiento de un sistema se concibe en respuesta a estímulos provenientes de fuera del sistema, y esta interacción del sistema con el entorno de alguna manera también se debe modelar. 484 Por dinámica aquí se refiere a la dinámica del sistema modelado por el modelo ejecutable, y no significa que el modelo sea una entidad dinámica en el sentido de la sección 3.1, lo que >> p. 181 Diseño de Sistemas Electrónicos Complejos [ 3.4 ] Modelos ejecutables - 181 capacidad de ser efectivamente ‘dinámicos’ - es decir, la capacidad para desencadenar procesos en el computador - constituye la propiedad esencial de los modelos ejecutables, puesto que en ese aspecto superan las limitaciones de sus contrapartes estrictamente matemáticas, ‘estáticas’. Por ejemplo: el modelo puramente matemático que consiste en las ecuaciones del movimiento de cuerpos o partículas, elaborado de acuerdo a la mecánica de Newton, es un modelo estático - las ecuaciones del movimiento f(t)=0 en realidad describen funciones estáticas, donde se debe apelar a la meta-regla del tiempo geométrico para interpretar al movimiento o la dinámica del sistema485. Por el contrario, un modelo ejecutable de la misma situación puede ser empleado para mostrar efectivamente la dinámica del movimiento, haciendo uso de las capacidades de almacenamiento y visualización del computador, y de la propia ejecución del programa en el computador, proceso que se desarrolla en el tiempo486. Así, en comparación con los modelos puramente matemáticos, la ejecución en el computador de los ‘modelos ejecutables’ posibilita una mayor introspección en el comportamiento de los sistemas que se modelan, y adicionalmente, permite la interacción del diseñador con los modelos en el ambiente controlado que supone el computador. Una propiedad esencial de los modelos ejecutables es la dinámica que es posible conferirles aprovechando su ejecución del computador. Esto les convierte en un proceso en el tiempo, a diferencia de sus contrapartes puramente matemáticas que son descripciones estáticas - tanto de hecho, como también por su significado puramente estructural, en el caso de modelos matemáticos formales. La capacidad de manifestarse como un proceso es lo que les hace ideales para la simulación del comportamiento de sistemas. Las características de almacenamiento y visualización de datos que provee el computador se conjugan con el ambiente de ejecución controlado e interactivo que brinda, con lo cual los modelos ejecutables adquieren un valor superlativo tanto en ingeniería como en la actividad científica en general. [ 3.4.2 ] VENTAJAS Y DESVENTAJAS DE LOS MODELOS EJECUTABLES / SIMULACIONES Respecto a los sistemas reales, los modelos ejecutables presentan las siguientes las ventajas, inherentes a su simulación en el computador ([TTOV98], p. 138): 1. Reducción del riesgo asociado a la realización de un nuevo sistema, o a su modificación487. 2. Mayor y mejor control sobre las condiciones experimentales en las que se realizan dichas observaciones488. 3. Facilidad para probar alternativas y seleccionar la que ofrezca mejores resultados (exploración del espacio de diseño489). << p. 180 supondría un modelo material. En ocasiones, se habla de modelos (ejecutables) dinámicos dando por sobreentendida la precedente aclaración. 485 [CKK00], p. 2. La meta - regla consiste en imaginar un punto que se mueve según la coordenada t, indicando el instante actual ([Cah03], s. 2.1, pp. 7-9). 486 Aunque el tiempo en el que se desarrolla el proceso de cómputo en el autómata no sea el tiempo efectivo de proceso del sistema modelado, estos tiempos pueden hacerse correspondientes de alguna manera conocida (ya sea determinista o no) y de esa forma, adquiere relevancia el hecho que el cómputo en el autómata sea un proceso, es decir, algo que se desarrolla en el tiempo. Por lo pronto, la ejecución del modelo en el computador forzosamente impone la ‘flecha del tiempo’ al sistema modelado. 487 Aquí se refiere fundamentalmente al ‘ambiente controlado’ que supone un computador. 488 Ídem nota 487, p. 181. 489 Ver sección 2.4.1. Ingeniería Electrónica – Universidad Católica del Uruguay 182 - [ 3 ] Modelos 4. Posibilidad de analizar en menos tiempo las soluciones propuestas a los problemas descubiertos con la simulación, que mediante observaciones realizadas en el mundo real490. 5. Reducción de la cantidad de suposiciones necesarias respecto a las requeridas por los modelos matemáticos formales491. 6. Documentación implícita en la especificación de las relaciones lógicas que se establecen al elaborar el modelo ejecutable. No obstante, la simulación por computador puede resultar una técnica de resolución de problemas complicada y costosa, tanto en tiempo de desarrollo del modelo ejecutable como en tiempo de ejecución, y por tanto, sólo es ventajoso emplearla cuando ([TTOV98], p. 138): 1. el sistema real no existe, y además: • su implementación es significativamente más costosa que la del modelo ejecutable492. • su implementación requiere significativamente más tiempo que el desarrollo del modelo. • su implementación conlleva riesgos considerables de construcción, operación, mantenimiento, observación, etc493. • no es factible su implementación por otras razones494. 2. el sistema real existe pero su observación y experimentación es costosa, inaccesible, peligrosa o destructiva para el propio sistema. 3. se requiere efectuar en un tiempo limitado la predicción del comportamiento del sistema en largos períodos de tiempo. 4. un modelo matemático formal del sistema no presente soluciones analíticas y por tanto sea inviable su análisis en términos formales, debiendo recurrirse al cálculo numérico495. Además de las desventajas que presenta cualquier tipo de modelo, los modelos ejecutables presentan las siguientes desventajas particulares, inherentes a su naturaleza ([TTOV98], p. 138): 1. La simulación es una técnica o proceso experimental, y por tanto sólo permite mejorar (o empeorar) la confianza que se tiene en el modelo496. 490 Ver sección 2.4.1. 491 Pueden efectuarse cálculos numéricos en lugar de deducción estricta, y así pretenderse resultados aproximados, flexibilizando la rigidez inherente a los modelos matemáticos formales (ver secciones 3.2.1 y 3.2.2). 492 No subestime esta consideración. La ‘implementación’ del modelo ejecutable requiere de programación, y un costo inevitable en este caso corresponde a la remuneración del equipo de diseño del modelo, que puede ser un monto significativo dependiendo de la aplicación - en la industria aeroespacial, nuclear o médica, no basta con unos pocos licenciados en informática para resolver y programar los modelos; se requieren especialistas. Adicionalmente, en caso de modelos sumamente elaborados, el costo del equipamiento informático para la síntesis y ejecución de los modelos ejecutables puede ser significativo. Considere, por ejemplo, la infraestructura física y humana que requiere un conjunto de computadores operando en forma concurrente (‘cluster’) para que el equipo de desarrollo pueda trabajar confiable y rápidamente - este es un caso usual en el desarrollo de sistemas electrónicos complejos, como un circuito integrado de aplicación específica, o un microprocesador sofisticado. 493 Considere a modo de ejemplo el diseño de un reactor nuclear. 494 Aunque esotérico, considere por ejemplo el diseño de una estación espacial, a ser ensamblada por piezas in situ. Como ejemplo más cotidiano, considere el diseño de algún sistema que se adelante a las tecnologías de fabricación (o a su disponibilidad comercial). 495 Cualquier sistema dinámico no integrable; usual en dinámica no lineal de sistemas. 496 No obstante, note que aunque la simulación constituyera una ‘demostración formal’ en lugar de una ‘técnica experimental’, los resultados de Gödel (sección 3.3.5.2) implican que en cualquier caso >> p. 183 Diseño de Sistemas Electrónicos Complejos [ 3.4 ] Modelos ejecutables - 183 2. Requiere la validez del propio modelo ejecutable, lo que quizás constituya el problema más significativo497. 3. En cuanto a su dominio de elaboración, los modelos ejecutables son lenguajes (sistemas) formales, y por ende sufren, estructuralmente, las mismas limitaciones aplicables a los sistemas axiomáticos formales (Gödel, Turing, Chaitin; secciones 3.3.5 y 3.3.6). Adicionalmente, son limitados por el hecho de que el autómata de Turing es una construcción ideal, y en la realidad es implementable sólo en forma aproximada - un computador real dispone de memoria y tiempo finitos para la ejecución. Estas limitaciones se consideran en mayor detalle, a continuación. [ 3.4.3 ] LIMITACIONES FÁCTICAS DE LOS MODELOS EJECUTABLES La realidad tecnológica y física obliga a que los modelos ejecutables se vean limitados por la memoria finita que dispone un computador real para la operación498. En consecuencia los modelos ejecutables se ven limitados a operar dentro del campo numérico racional Q. Esto implica que mediante modelos ejecutables no es posible calcular siquiera números computables en el campo numérico real499 R, debiéndose trabajar sujeto a determinada precisión, mediante aproximaciones en Q a los x computables de R. Sin embargo, esto no constituye una limitación severa para las ciencias empíricas o la ingeniería, puesto que estas disciplinas deben lidiar necesariamente con medidas - mensuras de magnitudes en el mundo real - y por ende el campo numérico Q satisface plenamente sus necesidades500. De esta manera, la incomputabilidad de Turing se sufre en los modelos ejecutables que corresponden a cuestiones puramente matemáticas, pero puede por lo general ignorarse en las simulaciones de sistemas reales. Por otro lado, como aduce Chaitin (sección 3.3.6.2.5) la actitud adoptada de hecho por la comunidad de científicos teóricos de la computación es pragmática en lo que se refiere a pruebas de programas, la que efectúan mayoritariamente en forma empírica - por tanteo y error, educados, pero tanteo y error al fin - y les permite ir adquiriendo confianza en sus programas, en lugar de pretender demostraciones estrictas y formales de corrección. En cualquier caso, la interpretación semántica - y no solamente estructural - que de hecho se hace de los modelos ejecutables, en virtud de los procesos que estos simulan, permiten soslayar las limitaciones de tipo Gödeliano, y orientar su uso al terreno experimental donde las limitaciones son de otra índole501. En virtud de las limitaciones que impone la realidad - memoria finita de los computadores reales, y tiempo de cómputo limitado desde la perspectiva humana los modelos ejecutables deben forzosamente operar en el campo numérico racional Q. Esto no representa problema para las ciencias experimentales o la ingeniería, puesto que las incertidumbres derivadas de las mensuras en estas << p. 182 lo único que se puede tener es confianza... 497 Considere las posibles consecuencias (nefastas) de una simulación inadecuada de un sistema aeronáutico, de un sistema de control de tráfico de trenes, o de un reactor nuclear. Si bien la confianza en la corrección de cualquier tipo de modelo para estos casos es trascendental, en particular los modelos ejecutables - por su capacidad de simular procesos complejos - son quienes juegan un papel básico en estas aplicaciones. 498 Limitación a la cual se adiciona la humana necesidad de tiempo finito (y razonable) de cómputo (la limitación temporal no afecta a un autómata - si este no falla, ni fallan sus fuentes de energía; en todo caso, a la fecha la limitación principal de los autómatas es establecida por la finitud de su memoria). 499 Adviértase el contexto, para diferenciar el término ‘real’ en referencia al campo numérico R y el ‘mundo real’ o la ‘realidad’ (física). 500 En la sección 3.3.7.1 se esgrimen argumentos de tipo físico y matemático respecto a la pertinencia de los campos numéricos Q y R. 501 Por ejemplo, las limitaciones conceptualizadas en términos de la ‘máscara observacional’ de Klir (ver nota 370 (p. 146) y [Kli69], s. 3.3, pp. 114-119; el ejemplo 3.6 es particularmente ilustrativo). Ingeniería Electrónica – Universidad Católica del Uruguay 184 - [ 3 ] Modelos disciplinas implican que se requiere sólo determinada precisión, y el campo Q puede satisfacer plenamente esta necesidad. Así, con la restricción al campo Q en los modelos ejecutables se evita cualquier posible manifestación del problema de incomputabilidad de Turing, y - aunque persista inevitablemente el Problema de Finalización - las limitaciones temporales humanas tornan este otro problema en una simple toma de decisión. Además, las posibles limitaciones Gödelianas a los sistemas formales que suponen los modelos ejecutables pueden ser soslayadas mediante una actitud pragmática en la interpretación de los resultados devueltos por estos - actitud de hecho aplicada en las ciencias empíricas e incluso por los científicos de la computación - que no pretenda demostraciones rigurosas sino se conforme con la ‘evidencia experimental’ que brindan las trazas de ejecución. [ 3.4.4 ] OBJETOS Y PROCESOS Se presenta aquí una consideración final respecto a la filosofía de desarrollo de los modelos ejecutables, en función de las ideas manejadas en el presente documento. Actualmente, el desarrollo de programas sigue un paradigma designado programación orientada a objetos502, o simplemente, orientación a objetos. La metodología de programación orientada a objetos propone el desarrollo de programas complejos en base a módulos de programa, o componentes, los cuales son un modelo computacional de los objetos observables del mundo real. De acuerdo a este paradigma, los objetos cotidianos son abstraídos en términos de sus atributos y comportamiento - que computacionalmente se hacen corresponder con datos y funciones en el código, respectivamente - y se modela la posible comunicación para los objetos capaces de intercambiar mensajes o señales. Las capacidades de comunicación, junto con atributos y comportamiento, constituyen así una descripción de tipo ‘caja negra’ del objeto. La idea central en este paradigma es que los objetos provean un encapsulamiento para los atributos y el comportamiento; es decir, se ‘empaquetan’ datos y funciones en los objetos, y aunque estos puedan comunicarse vía las interfases de comunicación definidas, en principio no se les otorga capacidad de introspección en la forma de operación de los otros objetos 503 con los cuales interactúan. De esta forma, la implementación504 de un componente puede ser modificada - por ejemplo, para mejorar su rendimiento - pero si se mantiene invariante su interfase, el relacionamiento con otros objetos no se ve alterado ([DD94], s. 16.1, pp. 594-595). Esta técnica de ‘ocultamiento de la información’ no es más que una forma de promover la elaboración de sistemas jerárquicos modulares, en el sentido de Simon (sección 1.5); es una forma de aplicar la abstracción en combinación con la modularidad estructural de los sistemas que se desean construir, y facilita la evolución y mantenimiento de los programas. “Los objetos son en esencia componentes de software505 reutilizables que modelan elementos del mundo real” ([DD94], s. 1.14, p. 14). La programación orientada a objetos promueve que un programa sea elaborado en forma jerárquico-modular relacionando esos componentes, y aprovechando el ocultamiento de la información encapsulada en cada objeto para mantener la complejidad dentro de límites manejables. Sin embargo, la Física de Procesos propuesta por Cahill y Klinger intenta justamente abatir la idea que el mundo está compuesto por objetos, en favor de una visión Heráclitea de un mundo en estado de flujo, de perpetuo proceso. ¿Será conveniente entonces proponer la búsqueda de un nuevo paradigma para la elaboración de modelos ejecutables de sistemas reales, basado en procesos en lugar de objetos - una programación orientada a procesos? Si bien este cuestionamiento 502 OOP, ‘Object - Oriented Programming’, en inglés. 503 Hay excepciones, pero no cabe una discusión al respecto en la presente sección. 504 O ‘puesta en práctica’, como se le designa en ocasiones. 505 La edición en español de [DD94] no traduce, ni pone entre comillas o apóstrofes, la palabra de origen inglés ‘software’. Diseño de Sistemas Electrónicos Complejos [ 3.4 ] Modelos ejecutables - 185 parecería retrotraer el desarrollo informático a los lenguajes orientados a la acción506, la elaboración de modelos ejecutables de sistemas electrónicos complejos en la actualidad adolece de serios inconvenientes para poder expresar cuestiones como concurrencia e intercambio de información sincrónico o asíncrono - ¡procesos! - entre módulos, y esto constituye una necesidad puesto que la estructura por sí sola es incapaz de conferir el comportamiento de tales sistemas, compuestos por millones de elementos integrados. De hecho (y como se ha señalado por otros motivos en la sección 2.1.2.2) el tópico designado ‘modelos de cómputo’ constituye un tema de extensa e intensa discusión en el área de diseño de sistemas electrónicos programables, y las actuales tendencias de ‘diseño en base a actores’ y ‘diseño en base a modelos’ - relacionadas con el tema de los ‘modos de cómputo’ - se orientan al modelado de procesos, tomando en consideración los paradigmas de la programación orientada a objetos. El actual paradigma de desarrollo de programas computacionales se designa programación orientada a objetos, y consiste básicamente en modelar los objetos observables en el mundo real abstrayendo sus atributos y comportamiento, es decir, ‘ocultando’ la implementación. Sin embargo, cabe cuestionarse si la visión que surge de la Física de Procesos - un mundo que no se compone de objetos estables, sino que los objetos emergen de un proceso permanente - no convendría extenderla al diseño de modelos ejecutables de sistemas, uno de cuyos intereses es precisamente modelar procesos, promoviendo así lo que podría designarse como programación orientada a procesos. Cabe cuestionarse, además, si las modernas tendencias de diseño electrónico - el ‘diseño en base a actores’ y el ‘diseño en base a modelos’, relacionadas con el tema de los designados ‘modos de cómputo’ -no constituye un paso en ese sentido, aunque partiendo de los paradigmas de la programación orientada a objetos. [ 3.5 ] MODELADO EN INGENIERÍA [ 3.5.1 ] CONSIDERACIONES INICIALES El empleo de modelos en la ciencia es, según Von Bertalanffy, “... el camino para crear una teoría...”. Similarmente entonces, puede plantearse que: En la ingeniería, el modelado es un ‘camino para diseñar’ - los procesos de diseño en ingeniería se basan en el desarrollo, prueba y verificación de modelos. En ingeniería, el concepto de modelo está tan íntimamente ligado al concepto de diseño, que en ocasiones resulta extremadamente difícil distinguir el ‘modelo’ del ‘diseño’507 al cual el primero pudo dar origen. Esta ‘fusión’ de los conceptos de modelo y diseño se exacerba con el advenimiento de modelos implementados computacionalmente - modelos ‘ejecutables’ o simulaciones508 - que en el área particular de diseño electrónico mutan casi inadvertidamente del ‘modelo ejecutable’ al ‘diseño’ o implementación final (por ejemplo, cuando se trata del código para simulación de un dispositivo digital, el cual puede derivar directamente en 506 También designados ‘procedurales’, término creado ad hoc del inglés ‘procedural’, y que alude a los ‘procedimientos’ (‘procedures’, en inglés) que en algunos lenguajes de programación como Pascal constituyen un elemento de construcción para componer un programa, similarmente a las ‘funciones’. En tiempo de ejecución, este tipo de construcciones son ‘llamadas’ o invocadas, efectúan su función o procedimiento, y finalizan (eventualmente retornando un valor) por lo cual los lenguajes que las implementan resultan orientados a la acción (y, en principio, no son orientados a objetos: el lenguaje C es un caso de lenguaje prima facie orientado a la acción). 507 Cabe recordar que aquí, ‘diseño’ se refiere al producto de un proceso de diseño (ver sección 2.1.2). 508 Ver sección 3.4. Ingeniería Electrónica – Universidad Católica del Uruguay 186 - [ 3 ] Modelos indicaciones para la fabricación del dispositivo ‘físico’509). Con objeto de establecer las diferencias pertinentes, en este trabajo se ha separado tempranamente y en forma explícita el concepto de modelo del concepto diseño, aunque esta separación pueda parecer, en ciertos casos, algo artificial510. De hecho, el proceso de diseño en ingeniería, considerado como concatenación de ciclos de ‘especificación → síntesis → implementación → validación’ que transforman una descripción más abstracta en una más detallada en cada paso (sección 2.1.1.3) constituye una refinación de ‘modelos’. Por ‘refinación’ se entiende que el modelo se transforma paulatinamente en la entidad que al inicio representa511, por adición de los detalles que le confieren una mayor precisión en la representación, hasta que esta resulta indistinguible de la entidad, desde el punto de vista de la especificación. Para el caso de modelos formales, la ‘refinación’ se efectúa siguiendo un proceso deductivo, de manera que cada paso es validado en virtud de la lógica que rige al sistema formal deductivo que se aplica. Para el caso de modelos no formales, aún pueden aplicarse metodologías que propendan a la sistematización en el manejo de la información. En esencia, el proceso de diseño en ingeniería consiste en una refinación de modelos; un proceso que por incorporación de detalles incrementa la precisión de las descripciones, desde la especificación a la implementación. [ 3.5.2 ] CONSIDERACIONES FINALES En virtud de la naturaleza y finalidad de la ingeniería, es indispensable que los modelos considerados posean capacidad de cálculo, para permitir predicciones512. Por tanto, los modelos matemáticos, y los modelos ejecutables, constituyen dos variedades extensamente empleadas en ingeniería513. Sin embargo, estas clases de modelos adolecen de limitaciones estructurales, puesto que los sistemas formales axiomáticos son pasibles de los fenómenos de incompletitud de Gödel, de incomputabilidad de Turing, y de aleatoriedad algorítmica de Chaitin. Si tanto el dominio de elaboración como el de aplicación de los modelos es de carácter formal (el uso ‘formal’ implica forma, es decir, resultados sintácticos o estructurales, pero no semánticos, o de contenido) entonces se está expuesto a los resultados de Gödel, Turing y Chaitin. Sin embargo, aunque tanto los dominios de elaboración y aplicación de los modelos empleados en ingeniería sean de tipo formal, la ingeniería se salva de los fenómenos de incompletitud, incomputabilidad y aleatoriedad algorítmica por su propia naturaleza ‘fáctica’ y ‘constructivista’. La finalidad de la ingeniería consiste, prima facie, en obtener resultados concretos, no teorías ‘universales’514; por tanto, no interesa si otras cuestiones aparte de la que se trata en particular caen fuera del alcance del modelo empleado. Esto permite emplear el sistema formal más 509 En ejemplo, esto se refiere a simulaciones en lenguajes como VHDL, Verilog, o SystemC, a partir de las cuales es posible ‘sintetizar’ los dispositivos simulados si se ha atenido a determinadas restricciones en la expresión de los modelos simulables (sección 5.2.6.1). 510 Similar situación se produce ocasionalmente con los conceptos de sistema y ‘diseño’. 511 En el caso de un diseño, tal entidad es, en principio, inexistente. Sin embargo, se admite en este trabajo un modelo de una entidad inmaterial, por lo que en este caso podría asociarse la entidad con la especificación del diseño, o un ‘diseño ideal’ derivado de esta. 512 Esto es compatible con la noción de modelo establecida en la sección 3.1; simplemente se adiciona el requerimiento de permitir cálculos y predicción. 513 Por similares motivos, la ciencia también requiere y elabora modelos con capacidad de cálculo y predicción. Recuérdese que, en esencia, una teoría es un modelo. La ciencia en general es una actividad que requiere la capacidad de predicción - y por tanto la capacidad de cálculo - en sus modelos, las teorías científicas. Diseño de Sistemas Electrónicos Complejos [ 3.5 ] Modelado en Ingeniería - 187 conveniente, e inclusive extenderlo de ser necesario, hasta cubrir las necesidades, sin importar si otras cuestiones resultan insolubles en el mismo marco. Como los ‘diseños’ ante todo deben ‘funcionar’, la realimentación proveniente de la realidad implica que necesariamente se ha soslayado la posible incidencia de cualquiera de los fenómenos mencionados. En ingeniería, la realimentación que proviene de un ‘diseño’ constituido, implica que fundamentalmente se han soslayado los problemas de incompletitud. Por otro lado, las especificaciones de diseño implican que se requiere una precisión limitada, y ello significa que alcanza con limitarse al campo numérico racional para el cálculo en ingeniería. Asimismo, argumentos de robustez en el diseño desmerecen todo tipo de cálculo de precisión infinita. Estas consideraciones de corte pragmático (que resultan facilitadoras en vez de restrictivas para el diseño) se pueden además sustentar en el plano teórico con los argumentos de índole física y matemática en contra de los números reales (sección 3.3.7.1). La precisión limitada, impuesta por la realidad y por criterios de robustez del diseño, y los argumentos teóricos en contra del continuo, promueven esencialmente una ingeniería ‘racional’, que evita los problemas de incomputabilidad. Finalmente, los sistemas complejos a los que se refiere este trabajo explícitamente descartan un componente aleatorio en su operación, porque el objeto de la ingeniería es obtener sistemas que funcionan, dentro de las especificaciones: el propio hecho de lograr la implementación de un sistema implica que este funciona en forma determinista dentro de las especificaciones. Así, las especificaciones de diseño constituyen un límite dentro del cual los diseños deben ser deterministas, y por tanto, la consecución de un diseño que cumple las especificaciones implica que, necesariamente, se ha evitado el fenómeno de la aleatoriedad estructural. [ 3.6 ] RESUMEN MODELOS – CARACTERÍSTICAS Y PROPIEDADES GENERALES Un ‘modelo’ es una construcción análoga a una entidad, a la cual ‘representa’, con limitada precisión, en aspectos relevantes para cierta situación en la cual se pretende emplear el modelo en lugar de la entidad original. Los aspectos relevantes para cada circunstancia son determinados por la intención de simplificar la realidad de trabajo - ya sea por motivos de economía en sentido amplio, o por la dificultad que impone la complejidad de dicha realidad o a la intención de focalizar o abstraer aspectos particulares de un problema, por ejemplo para experimentación. El modelo de una entidad puede ser de carácter material o inmaterial, según el modo en que confiere la información con la cual representa a la entidad, y ese carácter es independiente del carácter material o inmaterial de la entidad representada. En particular, las teorías científicas son modelos (de carácter inmaterial) puesto que pretenden representar a la realidad en aquellos aspectos relevantes para cada disciplina - son analogías conceptuales de la realidad, y eso es la esencia de un modelo. 514 Por ‘teorías universales’ se debe entender ‘válidas no solamente para ingeniería, sino para la ciencia en general’ (como es por ejemplo el caso de las teorías físicas). Así, la consideración de ‘resultados concretos’ incluye aquellos resultados cuya validez es de carácter ‘general’ para un área o toda la ingeniería, pero sin trascenderla; la ingeniería no busca resultados aplicables a todas las ciencias, como es el objeto de la física, o la matemática. Ingeniería Electrónica – Universidad Católica del Uruguay 188 - [ 3 ] Modelos MODELOS VERBALES, MODELOS MATEMÁTICOS, Y MODELOS FORMALES Amén de su carácter material o inmaterial, los modelos pueden ser de tipo formal o informal, en el sentido de estar expresados y operar en forma lógico-matemática rigurosa o no, respectivamente515. Los modelos informales y formales difieren fundamentalmente en aspectos como grado de introspección a la realidad modelada, capacidad de deducción, robustez ante perturbaciones, y limitaciones intrínsecas para capturar la realidad modelada (los fenómenos de incompletitud, en el caso de los modelos formales). En esencia, los modelos informales admiten la intuición como herramienta válida para su desarrollo, mientras que los formales se limitan estrictamente a la deducción. Una virtud de los modelos informales - que deriva del carácter intuitivo de su formulación - es que brindan introspección al fenómeno al que describen, mientras que el carácter deductivo de los modelos formales, aunque no lo impide, tampoco lo garantiza. Una virtud adicional de los modelos informales consiste en la robustez ante perturbaciones que les confiere su carácter intuitivo, en contraste con la fragilidad intrínseca que implica la propia estructura de los modelos formales lógicamente consistentes - el mecanismo deductivo propaga cualquier yerro, desde que se comete o es detectado, invalidando una a una todas las derivaciones hasta el final de la cadena deductiva. Otro problema que adolecen los modelos estrictamente formales es el fenómeno de incompletitud, señalado por Gödel en 1931 (sección 3.3.5) que implica que los modelos formales no son siquiera capaces de capturar la totalidad de los propios formalismos - y, por tanto, más incapaces aún de capturar lo que llamamos ‘realidad’. En virtud de la noción precedente, en este documento se admite la posibilidad de consecución de modelos matemáticos informales, dado que la usual asociación entre modelos formales y modelos lógico-matemáticos es válida sólo en el sentido siguiente: los modelos formales deben necesariamente ser formulados en forma lógico-matemática y operados estrictamente por deducción, pero no recíprocamente. La asimetría es provocada por la posible incorporación de una semántica a los modelos matemáticos, que modifica sus propiedades formales previas, dependientes exclusivamente de su estructura sintáctica, y que admite el uso de la intuición. Este hecho es bien conocido por la física, y explica la necesidad de interpretación de los modelos matemáticos que esta disciplina formula para modelar la realidad, lo que esencialmente requiere una dotación de significado a la formulación matemática. En consecuencia, lo que aquí se refiere como ‘modelo matemático informal’ es un modelo expresado matemáticamente, pero al cual se debe interpretar ad hoc en el contexto de su aplicación - el modelo posee un significado no capturado en la mera estructura matemática - y que implica que su uso no necesariamente sigue las vías de deducción estricta - usualmente, se aplican meta-reglas a los modelos matemáticos para incorporarles el significado necesario516. Esto puede comprenderse con mayor facilidad si se diferencia entre el dominio de implementación del modelo (por ejemplo, la matemática) y el dominio de aplicación (por ejemplo, la mecánica clásica de Newton). Se sabe que las posibles deficiencias de los modelos son un riesgo intrínseco al modelado, en cuanto representación análoga pero restringida de una realidad. Así, las eventuales inconveniencias derivadas de un modelo incompleto, inadecuado, o inexacto, atañen exclusivamente al dominio 515 Puede parecer bizarra la posibilidad de concepción de un modelo material de carácter formal (en el sentido referido, de operar en forma lógico - matemática rigurosa). No obstante, a modo de ejemplo, se pueden citar las calculadoras mecánicas, capaces de efectuar operaciones aritméticas. Aún más; es perfectamente factible construir ‘puertas lógicas mecánicas’ que emulen las funciones lógicas usuales de los circuitos electrónicos digitales (‘Y’, ‘O’, ‘NO’, etc.) con las cuales, en teoría, podrían construirse modelos mecánicos - y por ende, materiales (aunque probablemente imprácticos) - de diversos autómatas. De todas maneras, este documento se concentra en los modelos de carácter inmaterial, con lo cual se evita el tratamiento del precedente asunto. 516 Un caso emblemático en la física es la aplicación de la meta - regla geométrica para establecer la ‘flecha del tiempo’. Diseño de Sistemas Electrónicos Complejos [ 3.6 ] Resumen - 189 de aplicación del modelo, no al dominio en el cual este es implementado; a éste sólo compete la posibilidad de una mala formulación en sus propios términos517. En virtud de la precedente aclaración, se considera la factibilidad de consecución de modelos matemáticos - tanto informales como formales - a partir de modelos puramente ‘verbales’, o ‘intuitivos’. Al respecto, se conciben dos formas: un modelo intuitivo puede reconstruirse en términos de otro modelo, ‘más confiable’ - proceso denominado método genético - o bien por selección de un subconjunto de propiedades ‘evidentes’ del modelo, las que se postulan sin requerimientos de validación (axiomas) y de las cuales se derivan el resto de las propiedades del modelo ya sea por estricta deducción (modelo formal) o admitiendo derivaciones intuitivas, con la condición de ser estas ‘más evidentes’ que los propios axiomas del modelo - proceso denominado método axiomático. Toda reconstrucción de un modelo intuitivo - ya sea por el método genético o axiomático - plantea el problema de la adecuación de tal reconstrucción, en el sentido de si se mantienen las propiedades esenciales del modelo ‘verbal’ original, y si surgen propiedades inesperadas o no existentes en el original. Una posible evidencia de una reconstrucción adecuada consiste en la consecución de varias reconstrucciones que resulten equivalentes entre sí, pero en principio, demostrar518 tal equivalencia entre reconstrucciones de un modelo intuitivo es posible solamente entre sus reconstrucciones formales. La aparición de propiedades no observadas en los modelos originales manifiesta que verdaderamente se ha efectuado una reconstrucción y no una mera copia; cabe cuestionarse en ese caso si estas propiedades ‘nuevas’ invalidan la reconstrucción, o si, por el contrario, abren nuevas perspectivas en el tratamiento de la realidad modelada, o predicen fenomenologías aún no observadas en esta. En ciencia e ingeniería los modelos son mayoritariamente expresados en términos matemáticos, fundamentalmente por la capacidad de cálculo que se requiere de los mismos. Y la tradición formalista de la matemática ha determinado que la tendencia en ciencia e ingeniería sea hacia los modelos formales en sentido estricto, y que el método axiomático sea considerado más confiable que el genético para la matematización de los modelos intuitivos. De hecho, el método axiomático ha sido empleado para ‘poner orden’ cuando las formulaciones intuitivas parecen haber llegado a un punto de estancamiento, es decir, donde el avance requiere la aplicación de la maquinaria deductiva formal para abrirse camino. Así, con la designación de ‘modelo matemático’ se refiere usualmente a un ‘modelo matemático formal’, concebido en forma axiomática y estrictamente deductiva. No obstante, al decir de Von Bertalanffy, ‘un modelo verbal (informal) es preferible a ninguno, o a algún modelo formal que - por poder ser formulado lógica o matemáticamente - es impuesto por la fuerza a la realidad, y la falsifica’519. Aún así, existen nefastas tendencias a ignorar esta observación, tanto en pro de una formalidad obcecada, como de una informalidad liviana y apresurada pero disfrazada como formal en ropajes matemáticos. Como consecuencia de la observada ubicuidad de los modelos matemáticos en ciencia e ingeniería, conjugada con su tendencia al formalismo siguiendo la tradición en matemáticas, las deficiencias que ello pudiere implicar (de acuerdo a la citada observación de Von Bertalanffy) y la consideración aquí introducida de la factibilidad de modelos matemáticos ‘informales’ (en el sentido de incorporación de semántica a la estructura sintáctica formal de la 517 Cabe reiterar: la ‘incompletitud’ de un modelo, referida a su dominio de aplicación, es una cuestión inevitable por la propia naturaleza de los modelos; lo que aquí se refiere como modelo ’incompleto’, ‘inadecuado’, o ‘inexacto’ es una calificación básicamente cualitativa, y altamente dependiente del dominio de aplicación y el caso particular en cuestión; diríase “el modelo no representa adecuadamente al caso”. Pero el fenómeno de incompletitud Gödeliano, inherente a los sistemas formales, no debe confundirse con la calificación de modelo ‘incompleto’ de un sistema físico (por ejemplo, un modelo matemático de la caída libre de un cuerpo hacia la superficie terrestre, que no incorpore los efectos del rozamiento con el aire, o los efectos rotatorios de la Tierra, cuando estos efectos son relevantes al caso). 518 En el sentido de demostración lógico - matemática rigurosa, formal. 519 Adaptado de [Ber93], p. 23. Ingeniería Electrónica – Universidad Católica del Uruguay 190 - [ 3 ] Modelos matemática clásica) se impone una discusión respecto al significado y limitaciones de los modelos matemáticos. Y esto requiere, a priori, considerar el significado y limitaciones inherentes a la propia matemática que les da origen. SISTEMAS AXIOMÁTICOS FORMALES (FREGE, HILBERT) La matemática tradicional se erige sobre la idea Platónica de la existencia de un ‘mundo de las ideas’, perfecto, e independiente de la realidad cotidiana. ‘Perfecto’ significa que en el ‘mundo ideal’ de las matemáticas no se observan contradicciones, y que toda cuestión matemática es decidible. Es decir: toda aseveración matemática correctamente formulada, o bien resulta válida o bien resulta inválida; jamás será válida e inválida simultáneamente; es inevitablemente verdadera ó falsa - no cabiendo una tercera alternativa - y la demostración o refutación de su validez es siempre posible. Este concepto Platónico de perfección se explicita usualmente mediante los términos completo (toda proposición es decidible en verdadera o falsa) y consistente (el sistema carece de contradicciones). Desde Euclides se concibe la idea de matemáticas como un sistema axiomático, es decir, se concibe el desarrollo matemático como concatenación de razonamientos a partir de un conjunto finito de postulados iniciales (axiomas) de carácter ‘evidente’ en sí mismos. Luego de dos milenios de desarrollo, acordes con la filosofía Platonista, este concepto Euclidiano tiene su culminación circa 1900 con el concepto de Sistema Axiomático Formal de Hilbert. El formalismo de Hilbert consiste en eliminar de la matemática el razonamiento intuitivo y las ambigüedades del lenguaje natural u ordinario, en virtud de considerarlo el causante de las (relativamente pocas) contradicciones emergidas del razonamiento matemático, desde el origen hasta su época. Hilbert propone la erradicación del lenguaje natural mediante el empleo de algún lenguaje artificial para el razonamiento matemático o deducción, el cual se basa en la lógica simbólica propugnada por Frege, Russell y Whitehead. Para Hilbert, un lenguaje artificial permitiría expresar los axiomas y establecer las reglas de inferencia en forma precisa e inambigua, y además debería permitir la consecución de un procedimiento ‘mecánico’ - un procedimiento sistemático - para el chequeo de los teoremas, es decir, un procedimiento de decisión inapelable, capaz de determinar si los teoremas derivan de los axiomas fundacionales siguiendo las reglas de inferencia preestablecidas. Para ello, ningún paso del razonamiento matemático puede efectuarse sin ceñirse estrictamente a las reglas de inferencia establecidas para la teoría, y no puede introducirse ningún concepto adicional al incluido en el conjunto finito de axiomas del sistema. Así, la propuesta de Hilbert implica que los teoremas matemáticos son cuestiones puramente sintácticas, estructurales, independientes de la semántica. Precisamente, la designación de formal enfatiza que el interés es la forma (y no el contenido) de las expresiones matemáticas: su veracidad depende exclusivamente de su estructura, y no de lo que estas podrían aludir o representar. En esencia, un Sistema Axiomático Formal à la Hilbert es un lenguaje simbólico, cuyas expresiones son construidas a partir de un conjunto de símbolos y expresiones iniciales (axiomas) mediante reglas de manipulación de símbolos (las reglas de inferencia son dadas por operaciones de transformación entre subconjuntos de expresiones); modernamente, se le designa cálculo lógico. Una secuencia - válida - de manipulaciones simbólicas en el lenguaje simbólico se corresponde con, y representa a, la concatenación de deducciones en un sistema deductivo, al que el lenguaje simbólico representa. Apelando al concepto moderno de ‘algoritmo’, una teoría T se denomina teoría formal, si - y sólo si - se dispone de un algoritmo (es decir, un procedimiento computacional aplicable ‘mecánicamente’) para chequear la corrección del razonamiento vía los principios de T. En consecuencia, un Sistema Axiomático Formal à la Hilbert puede considerarse como el conjunto {Alfabeto, Gramática, Axiomas, Reglas de Inferencia, Algoritmo de Validación}, el cual constituye un conjunto computacionalmente enumerable de Diseño de Sistemas Electrónicos Complejos [ 3.6 ] Resumen - 191 aserciones matemáticas, a veces designado conjunto de aserciones matemáticas recursivamente enumerable, o simplemente conjunto generado520. INCOMPLETITUD, INCOMPUTABILIDAD, Y ALEATORIEDAD ALGORÍTMICA (GÖDEL, TURING, CHAITIN) Para la concepción tradicional en matemáticas, sintetizada en el concepto de Sistema Axiomático Formal de tipo Frege-Hilbert, resulta devastador el hecho que existan limitaciones fundamentales inherentes a todo Sistema Axiomático Formal con capacidad de autorreferencia, como por ejemplo, la aritmética elemental de Peano 521. El seminal trabajo de Gödel (1931) demuestra que no es factible obtener un sistema axiomático formal que sea a la vez consistente y completo, lo cual implica que en un sistema consistente, no toda proposición es decidible522: “Bajo la hipótesis de consistencia de la matemática clásica, uno puede dar ejemplos de proposiciones que son verdaderas por su contenido, pero que no son demostrables en el sistema formal de la matemática clásica.”523. Y lo que es peor aún: en particular, no puede determinarse la consistencia del sistema en forma interna, es decir, por mecanismos inherentes al propio sistema formal. De los resultados de Gödel, puede formularse el siguiente ‘Principio de Imperfección’: Las teorías fundamentales (sistemas axiomáticos formales de tipo Frege-Hilbert capaces de representar la aritmética elemental de Peano) no son perfectas: si son consistentes entonces son incompletas, y si son completas entonces resultan inconsistentes. Además, son incapaces de probar su consistencia interna, es decir, la consistencia de sus axiomas. Bajo la hipótesis de consistencia, pueden solucionarse problemas particulares de indecisión mediante la extensión adecuada del conjunto de axiomas del sistema; sin embargo, este proceso de agregar axiomas nunca permite completar una teoría fundamental si se mantiene su (hipotética) consistencia inicial. Por tanto, no existe una prueba final y determinante (absoluta) de consistencia para ninguna teoría fundamental; sólo puede aspirarse a obtener una prueba de consistencia relativa524. Y, por tanto, las teorías fundamentales no pueden garantizar la inexistencia de contradicciones en su seno. Consecuentemente, la aceptación de la consistencia de cualquier teoría fundamental - como la aritmética elemental, o la teoría de conjuntos de Zermelo-Fraenkel - es esencialmente un acto de fé525. Esta es una suerte de ‘Espada de Gödel’ para la matemática clásica formalista, que implica que en matemáticas no es posible prescindir de la intuición, tal como aducía Poincaré 526. Empero, no implica esto que los resultados de Gödel establezcan una limitación absoluta y terminante para las matemáticas, sino lo que esencialmente constituyen es un duro argumento en contra del Platonismo en cuanto única filosofía para el desarrollo matemático: ningún fantástico ‘mundo de las ideas’ puede ser perfecto. 520 Esta formulación en términos ‘computacionales’ se debe a Post y Turing ([Cha04], c. II). Este último fue quien concibió, para dirimir estas cuestiones, el modelo matemático del primer computador: un autómata universal, capaz de ejecutar el procedimiento deductivo de Hilbert en base a instrucciones y datos suministrados mediante un lenguaje simbólico. 521 Y en consecuencia, por extensión, el sistema axiomático formal de toda la matemática clásica. 522 Se selecciona el ‘menor de los males’ entre las dos posibles situaciones: un sistema inconsistente, aunque completo, es inútil. Al menos, se debe pedir consistencia - y el precio a pagar es la incompletitud. 523 Kurt Gödel, citado en [Pod97], s. 5.3. 524 Supuesta la consistencia de una teoría fundamental T, sólo puede probarse que T’, obtenida de T por incorporación o eliminación de axiomas, mantiene o no mantiene la hipotética consistencia de T. 525 Para empezar, la aceptación sin demostración de los axiomas de un sistema formal constituye un acto de fé, primigenio, independientemente de los resultados de Gödel. Asimismo, y también independientemente de los resultados de Gödel, cabe argumentar que una prueba de consistencia interna de una teoría no sería más que otra demostración en esa teoría, en sí misma pasible de duda. 526 Nótese que si bien los resultados de Gödel establecen que la consistencia de una teoría fundamental jamás sería demostrable, esta aún podría ser refutable de surgir alguna contradicción en el sistema, en cuyo caso quedaría probada la inconsistencia de la teoría. Así, quizás el afán por demostrar la consistencia interna de una teoría formal sea sobre todo una pretensión fútil, y que la única actitud viable sería postular, a priori, la consistencia interna de la teoría formal - he aquí el acto de fé, inicial - para someterla, a posteriori, a pruebas de refutación. Ingeniería Electrónica – Universidad Católica del Uruguay 192 - [ 3 ] Modelos Dado que ningún (único) sistema formal puede describir completamente a todos los sistemas formales (incluyéndose a sí mismo) no es posible la consecución de un sistema formal para toda la matemática, como era la idea de Hilbert. No obstante, un sistema formal puede describir completamente a cualquier otro sistema formal, y en este sentido más modesto, la idea de Hilbert es factible. De hecho, aunque el formalismo impulsado por Hilbert no sirva para la deducción, es decir, para el razonamiento matemático, el formalismo ha sido un éxito rotundo para el cómputo, como atestigua la innegable incidencia del computador y los sistemas programables en la actualidad. El éxito de los formalismos en lo referente al cómputo se debe a Turing, quien concibió una máquina intérprete de lenguajes formales, capaz de ejecutar los procedimientos de validación pretendidos por Hilbert. La ‘máquina de Turing’ es el modelo matemático de un autómata, capaz de efectuar manipulaciones simbólicas de acuerdo a un cálculo lógico - en este contexto, designado ‘programa’ - que se le suministra en términos de una gramática formal. Las manipulaciones simbólicas se corresponden con los razonamientos deductivos de un sistema axiomático formal al que el cálculo representa, propósito para el cual este autómata ideal dispone de memoria y tiempo infinitos. De esta manera, en teoría, todos los teoremas que derivan de un sistema axiomático formal à la Hilbert se pueden generar mediante cómputo y manipulaciones simbólicas en el autómata, a partir de la codificación de los axiomas del sistema y las reglas de inferencia en el lenguaje formal determinado que el autómata es capaz de interpretar. Y, en particular, este autómata podría ejecutar el ‘programa’ de Hilbert, si se le suministra el sistema axiomático formal correspondiente a la matemática clásica (los axiomas empleados por la matemática, codificados en un lenguaje artificial interpretable por el autómata) con lo cual la interpretación efectuada por el autómata se correspondería con la ejecución del algoritmo de validación pretendido por Hilbert. Sin embargo, los sistemas de cómputo adolecen de un problema fundamental, la incomputabilidad, advertido por Turing en 1936 (en base al referido concepto del autómata universal) y que implica que hay ciertas cuestiones que el autómata no es capaz de producir mediante programas 527. La incomputabilidad implica, a su vez, que no puede determinarse de antemano (mediante el razonamiento, o un algoritmo) si un programa arbitrario - cualquier posible algoritmo ejecutable por el autómata de Turing - es del tipo cuya ejecución produce un resultado, o no - equivalentemente, si su ejecución finaliza o no - cuestión denominada Problema de Finalización528. Considerando que el programa a ejecutarse en el autómata de Turing puede ser la codificación de un cálculo lógico representativo de un sistema axiomático formal à la Hilbert, la conclusión de Turing es que no es posible obtener un procedimiento de decisión para tales sistemas - es decir, un procedimiento que permita decidir la prueba o refutación de toda aserción formulable en el sistema - puesto que permitiría resolver el referido ‘Problema de Finalización’ para cada programa. Consecuentemente, aún admitiendo la consistencia del sistema formal codificado en su autómata, Turing demuestra que existen programas cuya finalización no se puede decidir por adelantado - equivalentemente, mediante deducción - lo que implica que el sistema axiomático formal representado por los programas en su autómata es incompleto. Y así, el sueño de Hilbert es decretado completamente inviable: Turing no solamente demuestra la incompletitud de los sistemas axiomáticos formales - por una vía radicalmente diferente a Gödel - sino que además determina que no es factible siquiera obtener un procedimiento de decisión para la demostración o refutación de una proposición matemática arbitraria, desarticulando completamente la idea formalista de Hilbert y de la matemática clásica. No obstante, al mismo tiempo Turing demuestra que el formalismo pretendido por Hilbert para expresar razonamientos - que falla debido a la incompletitud e incomputabilidad - es sin embargo completo para expresar algoritmos, es decir, demuestra la universalidad de los formalismos à la Hilbert para el cómputo, lo que constituye la base teórica para la actual informática. 527 Ver sección 3.3.6.1.1. 528 Ver sección 3.3.6.1.2 Diseño de Sistemas Electrónicos Complejos [ 3.6 ] Resumen - 193 El golpe de gracia para la matemática formalista es asestado a mediados del siglo XX por Chaitin, con la constatación de la existencia de aleatoriedad en el seno de la matemática pura529. Chaitin - e independientemente, Kolmogorov - inspirados en la aleatoriedad que había filtrado en el seno de la física a partir de la Física Estadística y de la Mecánica Cuántica, intuyen que la real causa de la incomputabilidad de Turing y de la incompletitud de Gödel radica en la existencia de aleatoriedad en el seno de la matemática pura. Así, el hecho que no se pueda hallar la prueba o refutación de determinadas aserciones matemáticas, quizás se deba a que el resultado es aleatorio - en cuyo caso no hay nada que probar o refutar. La aleatoriedad supuesta por Chaitin y Kolmogorov en el seno de las matemáticas no tendría el usual carácter ‘estadístico’ inherente a la aleatoriedad que manifiestan los procesos físicos, sino que sería una aleatoriedad de tipo ‘estructural’, diferente, aunque relacionada con la primera. En matemáticas, ‘aleatorio’ es aquel objeto que carece de estructura o patrón, y que por tanto no puede ser ‘calculado’ a partir de objetos más concisos, debiendo ser descrito ‘tal cual es’. Así, un objeto matemático aleatorio es tal que su descripción matemática es irreducible, incompresible. Esta es la idea básica de aleatoriedad ‘estructural’. Apelando a la noción de computabilidad (al autómata de Turing) la aleatoriedad ‘estructural’ inherente a las matemáticas puede interpretarse en términos algorítmicos: si el algoritmo más conciso que genera un objeto matemático (por ejemplo, un número) resulta igual o más largo que la descripción ‘directa’ del propio objeto (la cadena de cifras del número, en el ejemplo) entonces el objeto es aleatorio. Así, en este contexto la aleatoriedad ‘estructural’ es designada aleatoriedad algorítmica. En virtud del equivalente computacional de los sistemas deductivos obtenido por Turing con su autómata, Chaitin propone considerar las teorías científicas como ‘programas’ ejecutables por un computador para calcular las ‘observaciones’, es decir, efectuar predicciones. Observa que los postulados en las teorías físicas contienen ‘comprimido’ al comportamiento del fenómeno modelado por la teoría, permitiendo su predicción - mediante cálculo e interpretación - a partir de ese conjunto finito y reducido de suposiciones básicas. Similarmente, la función de los axiomas en un sistema axiomático formal es contener ‘comprimidos’ a los teoremas, los cuales pueden ser ‘descomprimidos’ por deducción, mediante las reglas de inferencia asociadas al sistema. En este contexto, la idea de Chaitin es ‘comprimir’ información en un programa, y si el tamaño del programa es mayor que la propia información que el programa produce como salida - o equivalentemente, si la forma más concisa para conferir la información es darla ‘tal cual es’ - entonces la teoría o el sistema formal representado por el programa es inútil. Coincidentemente con el Principio de Parsimonia, el programa más conciso se correspondería así con la mejor teoría: la minimización del programa que representa a un sistema formal lo torna más confiable, puesto que esencialmente minimiza el conjunto de axiomas del sistema. En consecuencia, según el concepto de aleatoriedad algorítmica, compresión es comprensión; la información aleatoria es incompresible, y por tanto, incomprensible 530. La relación entre compresibilidad y comprensibilidad sugiere una forma de medir la complejidad de la información: en términos del programa más conciso que la produce. Esta es la idea central de la Teoría de Información Algorítmica de Chaitin: la complejidad algorítmica se refiere a la mínima cantidad de información que se debe suministrar a un computador para que realice su tarea. 529 Ver sección 3.3.6.2. 530 Cabe remarcar que la compresión a la que se refiere la Teoría de Información Algorítmica es compresión sin pérdidas. A modo de ejemplo: las utilidades de compresión de datos que se emplean en los computadores (‘zip’, ‘pkzip’, ‘gzip’, ‘bzip’, ‘bzip2’, ‘compress’, etc.) son de esta clase, pero existen protocolos de compresión de audio, video, e imágenes (‘mp3’, ’mpeg’, ‘jpeg’, etc.) que son de la clase con pérdidas; vale decir, no permiten reconstruir la información original mediante descompresión, sino sólo una aproximación (que se considera adecuada en cada caso). Ingeniería Electrónica – Universidad Católica del Uruguay 194 - [ 3 ] Modelos Definido formalmente el concepto de aleatoriedad algorítmica, Chaitin constata la existencia de este tipo de aleatoriedad estructural en el seno de la matemática mediante la definición - formal - de un número real que llama Ω531. Este número, que resulta incomputable en el sentido de Turing, y contiene comprimida en forma óptima la información acerca del Problema de Finalización de Turing, puede ser definido formal y correctamente en términos de la aritmética elemental de Peano por medio de ciertas ecuaciones diofantinas exponenciales, capaces de representar la operación del autómata de Turing 532. De esta manera, los fenómenos de incompletitud de Gödel e incomputabilidad de Turing quedan vinculados al hecho más fundamental - y más radicalmente antiPlatónico - que es la existencia de aleatoriedad de tipo estructural en matemáticas, incluso al nivel de la venerable aritmética elemental. Una primer consecuencia de la aleatoriedad estructural en el seno de las matemáticas es que hay áreas de la matemática en las cuales el razonamiento es inútil, y sólo puede esperarse un tratamiento estadístico de los fenómenos. Y otro efecto de este resultado sobre los sistemas axiomáticos formales à la Hilbert es que si se compara la complejidad algorítmica del sistema axiomático con la complejidad algorítmica del resultado que se pretende derivar de ese sistema, y el resultado es más complejo que el sistema, entonces no es factible obtenerlo del sistema mediante deducción ([Cha99], c. 1). Chaitin demuestra que un sistema axiomático formal que - codificado para un autómata de Turing - resulta ser de N bits, permite decidir todas las cuestiones de complejidad hasta N bits; ese es el límite del sistema [Cha00]. Así, la complejidad algorítmica finita de un sistema axiomático formal finito es capaz de capturar solamente una cantidad finita de información; para obtener más información a la salida, se debe suministrar más información a la entrada. En consecuencia, el universo matemático, infinito533, no es asequible a partir de un conjunto de axiomas finito. En definitiva, la matemática clásica, Platónica por excelencia, ha de someterse a la injuria que le espetan los fenómenos de incompletitud, incomputabilidad, y aleatoriedad algorítmica. Sin embargo, no constituye esto un descrédito a su utilidad ni ubicuidad como herramienta, sino que resiente exclusivamente la filosofía Platónica basal de la matemática tradicional, cuestionando la ubicuidad de la filosofía Platónica como motor del desarrollo en matemáticas. Así, en virtud de la asimetría entre la capacidad de refutación y la incapacidad de demostración de su consistencia interna - similarmente a como ocurre con la evidencia experimental en física ciertos autores comienzan a cuestionarse si la matemática podría adoptar criterios de desarrollo similares a la física, en base a evidencia ‘computacional’ en lugar de la evidencia experimental ‘de laboratorio’ de la física. “Esta es una visión ‘casi empírica’ (Lakatos) de cómo trabajar en matemáticas, fuertemente relacionada con la idea de la llamada ‘matemática experimental’, que usa evidencia computacional en lugar de la demostración tradicional para ‘establecer’ nuevas verdades. Esto no sólo podría ser extremadamente conveniente, como Borwein, Bailey y Girgensohn 531 El número real Ω de Chaitin - designado Probabilidad de Finalización - constituye una reformulación del Problema de Finalización de Turing, que considera el ‘ensemble’ de programas auto-delimitantes del tipo cuya ejecución finaliza, e indica la probabilidad de que un programa, generado aleatoriamente bit a bit mediante lanzamientos independientes de una moneda equilibrada, finalice al ser ejecutado. Chaitin demuestra que los bits de Ω son la prueba de existencia de aleatoriedad algorítmica en matemáticas: el hecho que la información del Problema de Finalización de Turing esté ‘empaquetada’ en los bits de Ω en forma irreducible e irredundante, hace que estos efectivamente simulen ser el resultado de un proceso aleatorio como el lanzamiento de una moneda. Esto implica que Ω posee muchas de las características típicas del resultado de un proceso aleatorio en el sentido físico - un proceso impredecible, que solamente admite un tratamiento estadístico. Por esta razón, Ω constituye un resultado de incompletitud más severo que la incomputabilidad: manifiesta que hay áreas de la matemática en las cuales el razonamiento es inútil, y sólo puede esperarse un tratamiento estadístico de los fenómenos. 532 Ver sección 3.3.6.2.4. 533 Infinito no debe interpretarse como el resultado de perpetuar la cadena deductiva a partir de los axiomas fundacionales (puesto que, según Chaitin, la información que se obtendría - una vez superado el tamaño en bits correspondiente a la codificación de los axiomas - sería redundante). Debe interpretarse, por ejemplo, considerando las infinitas aserciones factibles de correcta formulación en términos matemáticos. Diseño de Sistemas Electrónicos Complejos [ 3.6 ] Resumen - 195 argumentan, sino de hecho podría ser a veces absolutamente necesario para el progreso de la matemática a pesar del fenómeno de la incompletitud.” ([Cha04], c. VI). El éxito rotundo de los formalismos à la Hilbert para el cómputo - factible gracias a las implementaciones reales y concretas del autómata ideal de Turing, los computadores - en conjunción con la concepción de una matemática experimental, constituyen la base para el desarrollo de modelos computacionales. Al igual que los modelos matemáticos formales, el dominio de formulación de estos modelos es estrictamente formal, mas su dominio de aplicación excede en capacidades al de sus contrapartes matemáticas ‘en papel’, al incorporar la propia ejecución del modelo por el autómata, lo cual les confiere la característica dinámica de proceso. Por este motivo, en el presente documento no sólo se refiere a estos modelos matemáticos implementados computacionalmente como programas, sino que en casos específicos se habla de modelos ejecutables. MODELOS EJECUTABLES Un programa es una implementación de una descripción o especificación del comportamiento de un computador, es decir, una especificación del comportamiento de un computador, para la cual ha sido provista una implementación que puede ser interpretada (y ejecutada) por un computador 534. Es un algoritmo, expresado en un lenguaje formal, de forma tal que resulta interpretable por una implementación real del autómata ideal de Turing. Un modelo ejecutable es un programa, cuyo objeto principal es modelar el comportamiento de los sistemas a los cuales representa. Es así orientado naturalmente al modelado de procesos, lo que implica que no puede limitarse a la devolución de resultados correctos desde el punto de vista ‘lógico’, sino que debe fidelidad en otros aspectos inherentes a procesos como es, por ejemplo, la evolución temporal535. Según el nivel de abstracción al que se elabore el modelo ejecutable, podrá limitarse a modelar el orden parcial o total de eventos, o modelarlos con cierta precisión predeterminada. Así, la propiedad esencial de los modelos ejecutables es la dinámica que es posible conferirles aprovechando su ejecución en el computador. Esto les convierte en un proceso en el tiempo, a diferencia de sus contrapartes matemáticas ‘en papel’ que son descripciones estáticas - tanto de hecho, como también por su significado puramente estructural, en el caso de modelos matemáticos formales. La capacidad de manifestarse como un proceso hace ideales a los modelos ejecutables para la simulación del comportamiento de sistemas reales. Las características de almacenamiento y visualización de datos que provee el computador se conjugan con el ambiente de ejecución controlado que brinda, con lo cual los modelos ejecutables adquieren un valor superlativo tanto en ingeniería como en la actividad científica en general. La designación de simulación pretende diferenciar la ejecución de modelos ejecutables, de las implementaciones de algoritmos que son dedicados exclusivamente al cálculo científico, a gestión administrativa, u otros propósitos de índole similar, cuyo objeto no es la descripción de procesos sino básicamente la devolución de resultados correctos desde el punto de vista ‘lógico’. Es a estos últimos que se les designa simplemente programas. En virtud de las limitaciones de los computadores reales - memoria finita - y las limitaciones humanas - tiempo de ejecución finito y razonable - los programas (entre los cuales se hallan los modelos ejecutables) se ven restringidos a trabajar en el campo numérico racional Q. Esto no representa problema para las ciencias experimentales o la ingeniería, puesto que en estas disciplinas las incertidumbres derivadas de las mensuras requieren únicamente cierto grado de precisión, y por tanto el campo Q puede satisfacer plenamente sus necesidades. Adicionalmente, las posibles limitaciones Gödelianas a los lenguajes formales con los que se elaboran los programas y modelos ejecutables pueden ser soslayadas mediante una actitud pragmática en la interpretación de los resultados o procesos que producen; una actitud 534 Adaptado de [Heh04], p. 41. 535 Y, asociado a ello, la concurrencia. Ingeniería Electrónica – Universidad Católica del Uruguay 196 - [ 3 ] Modelos aplicada de hecho en las ciencias empíricas e incluso por los científicos en computación, que no pretenda demostraciones rigurosas sino que se conforme con la ‘evidencia experimental’ que brindan las trazas de ejecución de los modelos ejecutables, o los resultados del cómputo de los programas de propósito general. Aunque resulte chocante, la informática es el producto exitoso del concepto de Sistema Axiomático Formal à la Hilbert, viable gracias al concepto del autómata de Turing, la ingeniería electrónica, y la tecnología de semiconductores 536. Para la ciencia y la ingeniería en general, estos conceptos - materializados en el computador electrónico actual - constituyen una invaluable herramienta de desarrollo. En este contexto, lo que aquí se denominan modelos ejecutables constituyen quizás la faceta práctica más útil - más que el cómputo con fines científicos, u otros ‘programas’ de propósito general - en virtud de la incorporación efectiva de una dinámica a los modelos, que les confiere la investidura de procesos. MODELADO EN INGENIERÍA En la ingeniería, el modelado es un ‘camino para diseñar’: los procesos de diseño en ingeniería se basan en el desarrollo, prueba y verificación de modelos. Si ‘diseñar’ es el acto de ‘definir’ un sistema, y ‘modelar’ es el acto de ‘representarlo’, entonces el proceso de diseño en ingeniería consiste en una refinación de modelos, desde la especificación a la implementación. Incluso aunque los dominios de elaboración y aplicación de los modelos empleados en ingeniería sean de tipo formal, la ingeniería se salva de los fenómenos de incompletitud, incomputabilidad, y aleatoriedad algorítmica, por su inherente naturaleza ‘fáctica’ y ‘constructivista’. No compete a la ingeniería el resolver las cuestiones con la máxima generalidad, sino con la generalidad suficiente para cada caso particular al que se enfrenta, y además, no trabaja en ambientes infinitos ni teóricos, sino acotados y reales (‘fácticos’, podríamos decir) de los cuales puede obtener una realimentación de la información. Así, se tiene que: • En ingeniería, la realimentación que proviene de los ‘diseños’537 constituidos, implica que se han soslayado posibles problemas de incompletitud. • La precisión limitada, impuesta por la realidad y por criterios de robustez del diseño, promueven esencialmente una ingeniería ‘racional’ - tanto en sentido alegórico como concreto, en referencia al campo numérico Q - que evita los problemas de incomputabilidad. • Las especificaciones de diseño constituyen un límite dentro del cual los diseños deben ser deterministas, y por tanto, la consecución de un diseño implica necesariamente que se ha superado cualquier fenómeno de aleatoriedad estructural. [ 3.7 ] CONCLUSIONES En ingeniería y la actividad científica, es extensivo el empleo de modelos de carácter inmaterial. Así, las observaciones en la presente sección se centran en esta clase de modelos. En primera instancia, cabe recordar que: los modelos de carácter inmaterial son descripciones proporcionadas en algún lenguaje, ya sea este verbal o escrito, textual o gráfico538. 536 Sobre estos últimos dos aspectos, consúltese el capítulo 4 de este documento, secciones 4.1 y 4.2 respectivamente. 537 Como se usa en el capítulo 2, ‘diseño’ se refiere al producto de un proceso de diseño. 538 Por tanto, al igual que las descripciones que constituyen al producto de un proceso de diseño, los modelos están a priori sometidos a las condicionantes de los lenguajes (y la cultura) empleados (ver sección 2.1.2.2). A su vez, las referidas condicionantes son precedidas por condicionantes de tipo sicofísico, entre las cuales la propia estructura del sistema nervioso central humano probablemente determine la estructura lógica del pensamiento. Naturalmente, todo esto se enmarca dentro de >> p. 197 Diseño de Sistemas Electrónicos Complejos [ 3.7 ] Conclusiones - 197 En virtud de la noción de ‘modelo’ conferida en el presente capítulo, si la entidad a modelar es un sistema, puede considerarse que modelar es esencialmente el acto de ‘representar’ a ese sistema. Por otro lado, en virtud de la noción de ‘diseño’ conferida en el capítulo 2, puede considerarse que diseñar es ‘definir‘ al sistema mediante descripciones adecuadas. Así, tanto la representación como la definición del sistema son descripciones, y en este contexto, cabe concebir la siguiente relación entre los conceptos de ‘diseño’ y ‘modelo’: los procesos de diseño en ingeniería consisten en un refinamiento de modelos, donde ‘refinamiento’ implica un proceso de transformación de descripciones (modificaciones de la representación del sistema) que por incorporación de detalles incrementa la precisión de la descripción inicial (especificación) hasta la final (implementación) las que juntas ‘definen’ al producto del proceso de diseño. Dada la naturaleza de las disciplinas, la generalidad de los modelos empleados en ingeniería y la actividad científica requieren capacidades de cálculo, y por ende, a la fecha los modelos matemáticos son de importancia superlativa en este contexto. En virtud de la ‘desantropomorfización de la imagen del mundo’ señalada por Von Bertalanffy 539, se registra un progresivo incremento en el nivel de abstracción de los modelos científico-tecnológicos, que afecta particularmente a los establecidos en términos matemáticos. Adicionalmente, considerando los dos milenios de tradición Platónica en matemáticas, la tendencia es inevitablemente hacia la formalización de los modelos. En lógica y en matemáticas, formal significa referente a la forma, en contraposición a referente al contenido. Consecuentemente, en relación a sistemas, formal se refiere exclusivamente a las estructuras (sintaxis) vacías o despojadas de contenidos (semántica 540). Cabe notar que la usual idea de ‘rigurosidad’ asociada al término ‘formal’ en matemáticas deriva del concepto de Sistema Axiomático Formal tipo Frege-Hilbert. Este tipo de sistema es un cálculo lógico, ‘dual’ al sistema deductivo de las matemáticas, cuya estricta manipulación simbólica se hace corresponder con el razonamiento matemático, la deducción. Así, la manipulación sistemática de símbolos es lo que sugiere la idea de rigurosidad asociada al razonamiento matemático. Pero la esencia de un Sistema Axiomático Formal tipo Frege-Hilbert reside precisamente en la forma o estructura que condiciona a los símbolos541. En consecuencia, por definición todo modelo ‘formal’ debe ser expresado en términos matemáticos, y además ser manipulado exclusivamente mediante deducción. Sin embargo, nada impide describir modelos en términos matemáticos y operarlos ‘informalmente’, en el sentido de no limitarse a operar por deducción - seguir la forma, respetar la estructura - sino, por ejemplo, aplicar la intuición y considerar significados. Así, aunque pueda resultar sorprendente, la precedente noción de ‘formal’ admite la posibilidad de consecución de modelos matemáticos informales, en el siguiente sentido: modelos cuyo lenguaje de descripción es matemático, pero cuyo tratamiento u operativa no se realiza siguiendo estrictamente un proceso de manipulación simbólica sistemático, sino que se admiten manipulaciones ‘intuitivas’ además de ‘deductivas’, para lo cual puede tomarse en cuenta su contenido, es decir, considerarse aspectos semánticos además de sintácticos. Por tanto, << p. 196 las limitaciones generales al conocimiento humano. 539 Ver nota 131, p. 69. 540 Se advierte que el término semántica adquiere significados muy diversos según el contexto. Por ejemplo, en el contexto de analizadores sintácticos para los lenguajes informáticos, ‘acción semántica’ se refiere a... ¡cuestiones de sintaxis! (situación por demás irónica, que más se parece a una venganza de la matemática contra Gödel y Turing que a una terminología infeliz). 541 Ver secciones 3.3.3.2.2 y 3.3.4. Ingeniería Electrónica – Universidad Católica del Uruguay 198 - [ 3 ] Modelos la usual asociación entre modelos formales y modelos lógico-matemáticos es válida sólo en este sentido: los modelos formales deben formularse en forma lógico - matemática y operarse estrictamente por deducción, pero no es necesario recíprocamente, pudiendo concebirse modelos matemáticos ‘informales’. La asimetría es provocada por la posible manipulación intuitiva de los modelos, en base a consideraciones semánticas, lo que modifica sus propiedades formales previas dependientes exclusivamente de su estructura sintáctica. La asimetría entre modelos formales y modelos matemáticos referida precedentemente puede analizarse considerando el dominio de implementación del modelo (es decir, en que términos es efectuada la descripción) y su dominio de aplicación (es decir, en que circunstancias se emplea esa descripción). Un ejemplo lo constituye la física: esta disciplina siempre efectúa una interpretación en base a conceptos de física (el dominio de aplicación) de los modelos que formula en términos matemáticos (el dominio de implementación). Pero interpretar implica que previamente se efectuó una dotación de significado a la formulación matemática; precisamente aquí es donde se provoca la asimetría referida precedentemente. Un caso concreto es la aplicación de la meta-regla geométrica del tiempo542. La asimetría entre modelos matemáticos y modelos formales, causada por la incorporación de semántica a la mera estructura sintáctica, tiene una consecuencia trascendental: La dotación de una semántica a los modelos matemáticos - que modifica sus propiedades formales, exclusivamente estructurales - permite soslayar limitaciones como los fenómenos de incompletitud de Gödel, incomputabilidad de Turing, y aleatoriedad algorítmica de Chaitin-Kolmogorov, inherentes a cualquier modelo estrictamente formal543. La precedente afirmación puede ilustrarse con otro ejemplo extraído de la física. El modelo de ‘Física de Procesos’, propuesto por investigadores australianos de la universidad de Flinders544, se basa en la hipótesis fundamental que la realidad debe modelarse como información semántica (o relacional) auto-organizada, donde semántica alude al hecho que la información es interna al sistema, y tiene significado dentro del sistema. Este sistema semántico es actualizado mediante un proceso estocástico iterativo que incorpora ruido aleatorio autorreferente, implementado mediante una red neuronal. Esto sugiere que la realidad genera y procesa información como patrones, y no meramente como símbolos en algún sistema axiomático formal. Según los autores, a partir de las inicialmente débiles y escasas relaciones entre los elementos de información que componen a su modelo, el proceso iterativo las fortalece, incrementa y asocia, hasta generar estructuras (agrupaciones de elementos de información cuyas relaciones se automantienen)545. Como consecuencia del surgimiento de estas estructuras de información, para los autores se induce un sistema formal axiomático cuyas reglas permiten acceder a dichas estructuras de información, mientras que al resto del sistema - consistente en información no estructurada - eventualmente puede accederse mediante meta-reglas 546. “El descubrimiento dramático es que en lugar de resultar un impedimento para la comprensión de la 542 Ver secciones 3.2.2 y 3.3.6.2.5, p. 168: De regreso a Leibniz y a Heráclito: Física de Procesos. 543 Ver secciones 3.3.5 y 3.3.6. 544 Ver sección 3.3.6.2.5, p. 168, De regreso a Leibniz y a Heráclito: Física de Procesos; [Cho00], [Cah03], [CKK00], [Kit02]. 545 En palabras de los autores: “... el sistema opera formando una estructura disipativa, impulsada por el SRN†, y que se caracteriza por un emergente y expansivo espacio de procesos fractálico tridimensional, en el cual se hallan embebidos defectos topológicos fractálicos auto - replicantes. (...) Este surgimiento es un incremento no algorítmico de la complejidad del sistema”([CKK00], p. 3). (Texto traducido del original, en inglés. Ver nota 54, p. 39) †Ver nota 547, p. 199. 546 Ver Fig. 3.6 y Fig. 3.5. Diseño de Sistemas Electrónicos Complejos [ 3.7 ] Conclusiones - 199 realidad, el descubrimiento de Gödel y su extensión a SRN 547 actúa como recurso intrínseco a este sistema no formal, y con el cual se ha hecho posible un modelado de la realidad vastamente mejorado. Al inducir, aproximadamente, un sistema formal junto con meta-reglas emergentes asociadas, se vincula con y engloba al actual modelado físico de la realidad.”548 ([CKK00], p. 3). No obstante, aún sin efectuar consideraciones semánticas para soslayar las limitaciones inherentes a los sistemas formales, estos igualmente resultan ideales para expresar algoritmos. La manipulación formal de símbolos en base a reglas precisas, que Hilbert prescribía como método para efectuar razonamientos matemáticos infalibles 549, fue imaginada por Turing como operaciones efectuadas por una máquina automática ideal - un autómata ideal - capaz de aplicar sistemáticamente sobre los símbolos las reglas de manipulación predefinidas. Sirviéndose de este modelo de autómata, Turing demuestra la universalidad de los formalismos à la Hilbert para el cómputo, para expresar algoritmos; sienta así la base teórica para la actual informática550. Las actuales implementaciones del autómata de Turing, los computadores, son máquinas de procesamiento simbólico - formales en sentido estricto - donde los símbolos a manipular se designan programas. La interpretación de estos programas, que es efectuada por la máquina obedeciendo a reglas predefinidas, determinan el comportamiento del computador según cada programa. Un programa es la especificación del comportamiento del computador para la cual ha sido provista una implementación, tal que un computador pueda ejecutarla 551. La especificación del comportamiento de un computador pretendida en un programa puede no corresponderse con el efectivo comportamiento del computador, por motivos como errores de concepción del programa, errores en la posible traducción del programa al nivel ejecutable, o errores de ejecución debidos a fallas físicas del computador. La utilidad natural de los programas es la del cómputo sistemático, ‘mecanizado’; no obstante, existe una diferencia significativa entre la ejecución de programas dedicados solamente a la realización de cálculos científicos, o a la gestión empresarial, y la ejecución de programas que modelan las propiedades o el comportamiento de sistemas. En los primeros, la estructura de control del programa se puede alterar mientras que el resultado producido por la ejecución el programa se mantenga correcto; verbigracia, del comportamiento del computador pretendido por el programa, interesa solamente la devolución de resultados correctos desde el punto de vista lógico. Pero el modelado de un sistema ‘real’ no solamente debe reflejar la fidelidad lógica y/o la precisión de los resultados, sino también otros aspectos como por ejemplo la fidelidad temporal552, causalidad, etc., implicando que la elaboración de la estructura de control 547 Acrónimo del inglés ‘Self - Referential Noise’: ruido aleatorio autorreferente. 548 Texto traducido del original, en inglés. Ver nota 54, p. 39. 549 Idea que falla debido a los fenómenos de incompletitud (Gödel) e incomputabilidad (Turing). 550 Ver sección 3.3.6.1.3. 551 Adaptado de [Heh04], p. 41. Nótese que no toda especificación es un programa; debe existir al menos una implementación para serlo. La noción de ‘programa’ como ‘especificación implementada del comportamiento de un computador’ admite la consideración como ‘programa’ de su código fuente, en cualquiera de los siguientes pares de hipótesis: (a1) existencia de un compilador adecuado para el computador que ha de ejecutar el programa, y (a2) compilación sin errores del código fuente; o (b1) existencia de un intérprete adecuado para los comandos dados en el código fuente, y (b2) código fuente libre de errores de sintaxis. Es decir, por ‘programa’ puede hacerse referencia a una descripción del comportamiento de un computador que no sea directamente ejecutable por este, siempre que exista algún medio que garantice su traducción a otra descripción que sí sea directamente ejecutable por el computador. 552 Temporización que - según el nivel de abstracción al que se elabore el modelo - podrá limitarse a modelar el orden parcial o total de eventos, o modelarlos con precisión determinada. Ingeniería Electrónica – Universidad Católica del Uruguay 200 - [ 3 ] Modelos de este otro tipo de programas requiere cuidados adicionales 553. Así, con objeto de diferenciar los distintos tipos de programa - y recordar la diferencia subyacente - conviene introducir el concepto de modelo ejecutable: Un modelo ejecutable es un programa, cuyo objeto es modelar el comportamiento de alguna entidad - fundamentalmente sistemas - vía el comportamiento del computador. La designación de ‘modelos ejecutables’ pretende diferenciarles de aquellos programas que son dedicados exclusivamente al cálculo científico, a la gestión administrativa, u otros propósitos de índole similar, y cuyo objeto es básicamente la devolución de resultados correctos desde el punto de vista ‘lógico’, sin que interese esencialmente el proceso de ejecución (el comportamiento del computador) que los produce. Los modelos ejecutables tienen como objeto la descripción del comportamiento de los sistemas a los que modelan, por lo cual su ejecución se orienta a representar procesos, en los cuales la fidelidad de la representación temporal, causalidad, etc. son cuestiones tan importantes como la fidelidad lógica, o la precisión de los resultados. Por tanto, la estructura de control de los modelos ejecutables reviste singular importancia desde la perspectiva de la aplicación. La utilidad natural de los modelos ejecutables consiste precisamente en la posibilidad de ejecutar el modelo en el propio computador, para estudiar su comportamiento en un ambiente controlado. Por este motivo, los modelos ejecutables son usualmente llamados simulaciones, aunque el término es apropiado sólo cuando el modelo computacional es claramente distinto del sistema que modela554. Esa capacidad para desencadenar procesos en el computador constituye la propiedad esencial de los modelos ejecutables, que en ese aspecto superan las limitaciones de sus contrapartes matemáticas ‘en papel’, necesariamente estáticas. Por ejemplo, para el caso de modelos ejecutables de sistemas físicos, el proceso de ejecución del modelo que efectúa el computador sustituye a la meta-regla geométrica del tiempo aplicada en sus contrapartes matemáticas ‘en papel’. Una propiedad esencial de los modelos ejecutables es la dinámica que es posible conferirles aprovechando su ejecución del computador. Esto les convierte en un proceso - un desarrollo de eventos en el tiempo - a diferencia de sus contrapartes puramente matemáticas que son descripciones estáticas - tanto de hecho, como también por su significado puramente estructural, en el caso de modelos formales. Esta capacidad de manifestarse como un proceso es lo que les hace ideales para la simulación del comportamiento de sistemas, con la ventaja adicional de contar con el ambiente de ejecución controlado e interactivo que brinda el computador. El actual paradigma de desarrollo de programas se designa programación orientada a objetos, y consiste básicamente en modelar los objetos observables en el mundo real abstrayendo su implementación. Sus orígenes se hallan, indudablemente, enraizados en la llamada ‘cultura occidental’ con su particular manera de percibir y conceptualizar la realidad. Sin embargo, ante la visión que propone la Física de Procesos (un mundo que no se compone de objetos estables, sino uno en el cual los objetos emergen de un proceso permanente) cabe plantear la posibilidad de elaborar un nuevo paradigma de programación orientado al efectivo modelado de procesos - paradigma que podría designarse como programación orientada a procesos. Incidentalmente, la consecución de tal paradigma facilitaría la elaboración y la aplicación de 553 El actual diseño de sistemas electrónicos programables (fundamentalmente los designados sistemas embebidos) presenta como uno de los temas claves el ‘modelo de cómputo’ a emplear por los programas dedicados a modelar los sistemas. Este ‘modelo (o modo) de cómputo’ tiene precisamente relación con la ‘estructura de control’ del programa. 554 Ver nota 481, p. 180. Diseño de Sistemas Electrónicos Complejos [ 3.7 ] Conclusiones - 201 modelos ejecutables, cuyo propósito fundamental implica el modelado de procesos. Y, de hecho, el diseño electrónico de actualidad requiere paradigmas de programación que faciliten esa ‘orientación a procesos’, en virtud del carácter de las aplicaciones de los sistemas electrónicos. En virtud del propósito de los modelos ejecutables, y ante la visión que propone la Física de Procesos, cabe plantear la posibilidad de elaborar un nuevo paradigma de programación que constituya una alternativa o complemento a la actual programación orientada a objetos: una programación orientada a procesos. De hecho, tal paradigma facilitaría el diseño de sistemas electrónicos de actualidad, dado que gran parte de las aplicaciones típicas de dichos sistemas requiere intervenir en procesos, y además, el comportamiento previsto por la programación en sistemas programables requiere en muchos casos un diseño desde la perspectiva de procesos, y no de funciones o procedimientos. El computador y sus programas (modelos ejecutables incluidos) constituyen un sistema formal que, por idóneo para el cómputo y la expresión de algoritmos, está sujeto a las limitaciones inherentes a todo sistema formal 555. Pero al igual que ocurre con los sistemas formales ‘en papel’, es posible mitigar el impacto de las limitaciones considerando aspectos semánticos. Al respecto, los modelos ejecutables cuentan con una libertad adicional respecto a sus contrapartes exclusivamente matemáticas, que es la posibilidad de interpretar - e incluso, interactuar con - el proceso de ejecución del modelo. Un ejemplo manifiesto es la simulación556 de sistemas, donde la alteración de parámetros del modelo puede efectuarse en tiempo de ejecución, facilitando entonces la interpretación de los cambios de comportamiento del modelo. Si bien el dominio de implementación de los modelos ejecutables es formal, estos cuentan con una ventaja frente a sus contrapartes exclusivamente matemáticas: la posibilidad de interpretar - e incluso, interactuar con - el proceso de ejecución, lo que facilita efectuar consideraciones semánticas para sobreponerse a las posibles limitaciones de Gödel, Turing, y Chaitin. Además, luego de los resultados de la Teoría de Información Algorítmica de Chaitin557, la ‘evidencia experimental’ provista por las trazas de ejecución de los programas o modelos ejecutables quizás sea la única forma de establecer conclusiones inasequibles por la vía formal; en este aspecto, los modelos matemáticos ‘en papel’ nada pueden aportar. Cabe aclarar una diferencia importante entre un programa à la AIT558 y un modelo ejecutable. Prima facie, un modelo no contiene la totalidad de la información inherente a la entidad que representa, sino sólo la esencial al propósito 559; en este sentido podría considerarse 555 Aunque los computadores - en cuanto implementación real del autómata de Turing, ideal - no posean memoria infinita, ni sus usuarios humanos dispongan de tiempo infinito para esperar resultados, de todas formas los resultados de incompletitud, incomputabilidad y aleatoriedad algorítmica son aplicables. 556 Aquí sí se asume que el modelo ejecutable es claramente distinto al sistema modelado, y por ende, el empleo del término simulación. 557 Ver sección 3.3.6.2.5. 558 Acrónimo del inglés ‘Algorithmic Information Theory’, la Teoría de Información Algorítmica, de Chaitin. 559 No sólo ello es la esencia de un modelo, sino que además, la ‘totalidad de la información’ cae en un terreno filosófico (epistemológico) harto difícil. Una excepción a la afirmación sería el ‘modelo’ constituido por el par de descripciones especificación - implementación de un proceso de diseño, pero ello no quita la validez al argumento que diferencia los programas en la noción de AIT de los ‘modelos ejecutables’ en la noción del presente documento. Ingeniería Electrónica – Universidad Católica del Uruguay 202 - [ 3 ] Modelos que los modelos ‘comprimen’ información, pero lo hacen con pérdidas560. En contraposición, AIT supone una compresión de información sin pérdidas. Los resultados de la aleatoriedad algorítmica pueden ser interpretados como una causa para que la complejidad de los programas, los cronogramas de desarrollo de proyectos informáticos, y la productividad de los programadores, no puedan ser estimados de forma objetiva, y por tanto continúen esencialmente siendo una cuestión de opinión. Incluso las estimaciones de carácter estadístico en esas áreas se hallan limitadas por el fenómeno de la aleatoriedad algorítmica, al implicar este la incompletitud, y por ende el desconocimiento del universo muestral. Así, el fenómeno de aleatoriedad algorítmica implica que la estimación objetiva de proyectos informáticos es irrealizable, y los resultados estadísticos deben adoptarse muy escépticamente. De hecho, si se creyera que estas estimaciones fueran factibles de codificación como otros procesos de ingeniería, entonces el litigio sería una consecuencia razonable y esperable ante estimaciones inadecuadas [Lew01]. Una consecuencia aún más significativa de la Teoría de Información Algorítmica sobre el dominio informático es respecto a la depuración de programas. Cabe destacar que el interés por esta cuestión no concierne solamente a la informática, sino que se extiende particularmente a la electrónica, dado que el diseño electrónico de actualidad incorpora una significativa cantidad y variedad de herramientas, procedimientos y conceptos informáticos561. La Teoría de Información Algorítmica expone de forma palmaria las limitaciones que los sistemas formales presentan para el razonamiento. En cuanto dominio estrictamente formal, la informática sufre tales limitaciones, y como consecuencia se tiene que demostrar la corrección de los programas mediante algoritmos - a excepción de casos triviales - es un intento fútil. En general, la depuración de programas no tiene otra opción que efectuarse experimentalmente, mediante prueba y error562 [Cha04]. Hasta aquí se ha argumentado que las limitaciones inherentes a los modelos formales (ya sean estos expresados en forma lógico-matemática convencional, o en términos computacionales mediante programas y modelos ejecutables) pueden ser eventualmente sobrepuestas mediante la incorporación de semántica (la consideración de contenidos, amén de la propia estructura del sistema formal). No obstante, conviene estimar si esas limitaciones pueden afectar las actividades de ingeniería, por ejemplo en aquellos casos en que la ingeniería hace uso de modelos formales sin aplicación de meta-reglas e interpretaciones semánticas. Aunque tanto los dominios de elaboración y aplicación de los modelos empleados en ingeniería sean de tipo formal, la ingeniería elude los fenómenos de 560 Una analogía es el caso de la compresión de un archivo de audio en formato MP3, frente a un archivo de audio comprimido con utilidades tipo ZIP - en el último no se pierde información; en el primero sí, pero (desde cierto punto de vista) contiene la esencial, y así resulta más eficiente. 561 Ver capítulos 4 y 5. 562 Esta afirmación no habilita a abandonar alegremente los intentos por mejorar - y asegurar dentro de límites razonables - la calidad de los programas. Que la actitud de tanteo y error sea comúnmente la adoptada por programadores mediocres, no necesariamente responde a un cabal conocimiento de estas limitaciones abstractas, sino usualmente de una conducta que quizás sea apenas adecuada a la producción de programas orientados al usuario de computadores personales. En ningún caso puede ser la actitud de quienes programan sistemas de los cuales depende la seguridad o calidad de la vida humana, o de los cuales pueden desencadenarse problemas ecológicos. De hecho, en estos casos, las limitaciones de los sistemas formales constituyen una problemática clave que se intenta gestionar para sobreponer. Un ejemplo de carácter cotidiano lo constituye el diseño, fabricación, programación, e implantación de controladores industriales como PLC; incluso el desarrollo de los lenguajes de programación y compiladores para estos equipos es objeto de una cuidadosa preparación. Diseño de Sistemas Electrónicos Complejos [ 3.7 ] Conclusiones - 203 incompletitud, incomputabilidad y aleatoriedad algorítmica por su propia naturaleza ‘fáctica’ y ‘constructivista’. La finalidad de la ingeniería consiste, prima facie, en obtener resultados concretos, no teorías ‘universales’563; por tanto, no interesa si otras cuestiones aparte de la que se trata en particular caen fuera del alcance del modelo empleado. Esto permite emplear el sistema formal más conveniente, e inclusive extenderlo de ser necesario, hasta cubrir las necesidades, sin importar si otras cuestiones resultan insolubles en el mismo marco. Además, como los ‘diseños’ ante todo deben funcionar, la realimentación proveniente de la realidad - un ‘diseño’ constituído y operativo - implica que necesariamente se ha eludido el fenómeno de incompletitud. En ingeniería, la realimentación que proviene de un ‘diseño’ constituido, implica que fundamentalmente se han soslayado los problemas de incompletitud. Por otro lado, las especificaciones de diseño implican que se requiere una precisión limitada, y ello significa que alcanza con limitarse al campo numérico racional para el cálculo en ingeniería564. Asimismo, argumentos de robustez aplicados al diseño desmerecen todo tipo de cálculo de precisión infinita. Estas consideraciones de corte pragmático (que resultan facilitadoras en vez de restrictivas para el diseño) se pueden además sustentar en el plano teórico con los argumentos de índole física y matemática en contra de los números reales (sección 3.3.7.1). La precisión limitada, impuesta por la realidad y por criterios de robustez del diseño, y los argumentos teóricos en contra del continuo, promueven esencialmente una ingeniería ‘racional’, que así evita los problemas de incomputabilidad. Finalmente, los sistemas complejos a los que se refiere este trabajo explícitamente descartan un componente aleatorio en su operación, porque el objeto de la ingeniería es obtener sistemas que funcionan, dentro de las especificaciones. Así, el propio hecho de lograr la implementación de un sistema implica - conforme a la noción de diseño esbozada en el capítulo 2 - que éste funciona en forma determinista dentro de las especificaciones. Por tanto, las especificaciones de diseño constituyen un límite dentro del cual los diseños deben ser deterministas, y por tanto, la consecución de un diseño que cumple las especificaciones implica que, necesariamente, se ha evitado el fenómeno de la aleatoriedad estructural. En conclusión: no sucede que los fenómenos de incompletitud, incomputabilidad, y aleatoriedad algorítmica o estructural dejen de existir u operar cuando se trata de actividades de ingeniería, sino que la ingeniería logra eludir sus efectos por su propia naturaleza. No obstante, conforme las actividades de ingeniería se desplacen a niveles más abstractos de conceptualización - probablemente asociado al uso incremental de herramientas y conceptos de informática - el cabal conocimiento de las limitaciones inherentes a los sistemas formales y sus efectos habrá de tenerse, correspondientemente, cada vez más en consideración. 563 Por ‘teorías universales’ se debe entender ‘válidas no solamente para ingeniería, sino para la ciencia en general’ (como es por ejemplo el caso de las teorías físicas). Así, la consideración de ‘resultados concretos’ incluye aquellos resultados cuya validez es de carácter ‘general’ para un área o toda la ingeniería, pero sin trascenderla; la ingeniería no busca resultados aplicables a todas las ciencias, como es el objeto de la física, o la matemática. 564 Y además, cualquier número real es aproximable con precisión predeterminada por un racional. Ingeniería Electrónica – Universidad Católica del Uruguay PARTE II [4] EVOLUCIÓN HISTÓRICA DE LA ELECTRÓNICA Luego del extenso preámbulo de carácter genérico y contenido mayormente filosófico de la Parte I (capítulos 1 a 3) se inicia con este capítulo la segunda parte del presente documento, específica al ámbito del diseño electrónico. En función del objetivo del presente documento (conferir el panorama de diseño de sistemas electrónicos complejos) el propósito de este capítulo es presentar la evolución histórica de la electrónica, a partir del desarrollo de los circuitos integrados - particularmente los de alta escala de integración - por considerarse este hecho como el ‘mojón tecnológico’ a partir del cual fue factible la consecución de sistemas electrónicos complejos. No se discute aquí ningún aspecto tecnológico en sí mismo, sino que las referencias tecnológicas son efectuadas exclusivamente en función de su incidencia en el diseño de los sistemas electrónicos; en esencia, lo que se trata en este capítulo es la incidencia de la tecnología en el diseño a lo largo del tiempo. Cabe notar que la evolución histórica de la electrónica, a partir de los circuitos integrados de alta escala de integración, ha sido concurrente con el desarrollo de la informática. Esta circunstancia no es casual, sino consecuencia de la sinergia establecida entre ambas disciplinas a partir de los logros de la microelectrónica de fines de la década de 1970. Entre los productos de la microelectrónica de esa época, la consecución de microprocesadores permitió diseñar plataformas de cómputo más potentes que las de las previas generaciones. Sobre estas plataformas más capaces, la informática pudo extender y perfeccionar sus propias herramientas de desarrollo, y con ellas, obtener mejores y más potentes abstracciones de cómputo y herramientas de diseño asistidas por computador. En particular, se produjo un significativo desarrollo de herramientas informáticas para asistir al diseño electrónico, con las cuales la electrónica abordó el diseño e implementación de nuevas y más potentes generaciones de procesadores y computadores. Se cierra así un ciclo de soporte mutuo entre ambas disciplinas, que induce a su desarrollo en forma concurrente. En consecuencia, dado que las herramientas informáticas han brindado el soporte fundamental a los flujos de diseño electrónico actuales565, en este capítulo se presenta, amén de la evolución de la electrónica, la evolución histórica de la estructura de las herramientas informáticas para diseño electrónico asistido por computador. Las siguientes secciones 4.1, 4.2, y 4.3, se dedican a conferir una sinopsis del desarrollo electrónico de fines del siglo XX, sobre tres dimensiones: el diseño electrónico desde 1970, la fabricación de IC a partir de la década de 1980, y la estructura de las herramientas informáticas para diseño electrónico en el mismo período. En la sección 4.4 se presenta la problemática actual que enfrenta el diseño electrónico. De esta manera, se estará en condiciones de abordar con mayor detalle el panorama de diseño de sistemas electrónicos complejos de actualidad (capítulo 5). 565 Véanse la relación entre los conceptos de metodología, flujo y herramientas de diseño en la sección 2.2. Gonzalo Sánchez - Ingeniería Electrónica – Universidad Católica del Uruguay 208 - [ 4 ] Evolución Histórica de la Electrónica [ 4.1 ] SINOPSIS DEL DESARROLLO ELECTRÓNICO (1970-2000) La microelectrónica nace circa 1960, y durante la década de 1970 evoluciona hasta la consecución de las primeras memorias y microprocesadores [TTOV98]. Así se dan las condiciones para que en la siguiente década de 1980 se acelere significativamente el desarrollo informático, y se produzca la co - evolución microelectrónica-informática, a un ritmo vertiginoso. Es en la década de 1980 que las dificultades en el diseño electrónico comienzan a manifestarse por la vía de los hechos, y por tanto es la época que se considera en el presente trabajo como referencia inicial para la discusión del diseño de sistemas electrónicos complejos. A modo de sinopsis566 de la evolución de la microelectrónica, se extrae de la presentación en [TTOV98], s. 1.1 una lista de los eventos significativos acaecidos en cada una de las décadas desde 1970 hasta el fin del siglo XX. [ 4.1.1 ] DÉCADA DE 1970 567 • Se registra una significativa evolución de los procesos de fabricación de circuitos integrados (IC, ‘Integrated Circuits’) de tipo analógico y digital, cuyo origen data del inicio de la década de 1960. • Tanto la fabricación como el diseño de circuitos integrados se hallan confinados al ámbito específico de las fábricas de semiconductores (‘foundries’) no siendo accesible a los diseñadores fuera de este contexto, en virtud del nivel de abstracción de los diseños 568 y su estrecha relación con la tecnología de fabricación. • El esfuerzo de diseño de los circuitos integrados se concentra en los niveles eléctrico (establecer características e interconexiones de los componentes básicos a nivel de transistor) y topográfico569 (dibujar las ‘máscaras’ necesarias para la fabricación de los dispositivos y sus interconexiones). • El proceso de diseño de circuitos integrados es fundamentalmente manual, y a la medida de las posibilidades de cada tecnología. La única herramienta informática para asistir al diseño es el simulador analógico de esquemas eléctricos SPICE 570. 566 Los temas referentes a la fabricación y el diseño de circuitos integrados, y la evolución de las herramientas de diseño electrónico y los entornos de desarrollo, se discuten con mayor detalle en las secciones 4.2, 4.3 y 4.4. 567 Tomado de [TTOV98], s. 1.1, pp. 2-12. 568 Se trabaja a nivel eléctrico y topográfico (se considera el comportamiento eléctrico de los transistores individuales, y se preocupa de su configuración geométrica e interconexión) lo que, en esencia, constituye un trabajo al nivel de implementación (nivel físico). 569 Proceso designado ‘layout’ en la literatura angloparlante. También se habla del nivel geométrico. 570 Acrónimo de ‘Simulation Program with Integrated Circuit Emphasis’, SPICE es un simulador de propósito general para circuitos analógicos lineales y no lineales. Contiene modelos para la mayoría de los elementos básicos con los que se conforman circuitos analógicos, y presenta las siguientes capacidades: cálculo del punto de operación (polarización); cálculo de sensibilidad; análisis de fenómenos transitorios; análisis de Fourier, ruido, y distorsión; cálculo de funciones de transferencia, ubicación de polos y ceros de funciones de transferencia, y cálculo de la respuesta en frecuencia en régimen de pequeña señal (‘small - signal’). SPICE fue desarrollado en la Universidad de Berkeley, California, y su primer versión se publica en 1972. En 1975 se publica la versión SPICE2 - que mantiene el núcleo del programa intacto, pero incluye mejoras en los modelos de los dispositivos simulables, mejoras en las técnicas numéricas, en la interfaz de usuario, y otras adiciones - y finalmente en 1985 se publica la versión SPICE3, en la cual se cambia el lenguaje de programación del código fuente de FORTRAN a C. Aún hoy se sigue usando el simulador original, o algunos de sus descendientes directos, los que incorporan más modelos, nuevas técnicas numéricas, nuevas capacidades de cálculo y análisis, e interfases de usuario modernas. Diseño de Sistemas Electrónicos Complejos [ 4.1 ] Sinopsis del desarrollo electrónico (1970-2000) - 209 • Los circuitos integrados son desarrollados con el objetivo de constituir componentes estándar, con los cuales es posible conformar sistemas electrónicos sobre placas de circuito impreso (PCB, ‘Printed Circuit Board’) específicos a la aplicación, tarea esta última que sí puede ser llevada a cabo por diseñadores fuera del ámbito de las fábricas de semiconductores. Sobre el fin de esta década, se obtienen las primeras memorias dinámicas de acceso aleatorio (DRAM) y los primeros procesadores. Esto permite el advenimiento de los primeros computadores ‘pequeños’ - en relación a los grandes computadores centrales (‘mainframes’) prevalentes en la década - los cuales constituyen el soporte inicial para el desarrollo mutuo electrónico-informático de la década siguiente. [ 4.1.2 ] DÉCADA DE 1980 571 • Los microcomputadores de fines de la década de 1970 dan paso a las estaciones de trabajo (‘workstations’) y los computadores personales (PC, ‘Personal Computers’). Sobre esta base se potencia un ciclo sinérgico de soporte mutuo entre microelectrónica e informática, en el cual la primera disciplina genera plataformas de cómputo sobre las cuales la segunda puede desarrollar sus abstracciones de programación, las que a su vez permiten la consecución de herramientas informáticas para desarrollo electrónico que son aplicadas para diseñar nuevas generaciones de plataformas de cómputo. • Se logra la independización entre los procesos de fabricación y diseño de circuitos integrados, lo que hace factible el diseño de circuitos integrados fuera del contexto de las fábricas de semiconductores. • En las referidas circunstancias de independencia de los procesos de fabricación y diseño de circuitos integrados, se constata el surgimiento de un desfase entre las capacidades de fabricación y las capacidades de diseño, debido a una carencia casi absoluta de metodologías y herramientas de diseño y a la inviabilidad de aplicación de las técnicas de prototipado de circuitos impresos al desarrollo y depuración de circuitos integrados. Este desfase se ha denominado ‘brecha tecnológica’. • Sobre los computadores personales y las estaciones de trabajo se promueve una significativa actividad de desarrollo de metodologías y herramientas de diseño asistidas por computador (CAD, ‘Computer-Aided Design’). Aunque en principio estas herramientas son orientadas al diseño de circuitos integrados, rápidamente se extienden para abordar el diseño electrónico en general. • Una gran novedad de la década es la factibilidad del diseño de circuitos integrados específicos para la aplicación (ASIC, ‘Application-Specific Integrated Circuit’)572. Estos son circuitos integrados fabricados específicamente para una aplicación, diseñados por los propios ingenieros que desarrollan la aplicación. Esto constituye un salto cualitativo respecto a las posibilidades de diseño de la década anterior, donde las aplicaciones se desarrollaban en base a componentes estándar. Se identifican cuatro modalidades en el diseño de ASIC: 1. Diseño totalmente a medida (‘full-custom’): La libertad del diseño es máxima, pero requiere lidiar con todos los niveles de diseño, inclusive los de mayor complejidad (eléctrico y geométrico) y por tanto se involucra a todas las etapas del proceso de fabricación del IC. Los riesgos y costes son elevados, y por tanto justificables sólo para grandes volúmenes de producción, o proyectos con restricciones severas (de velocidad, consumo de potencia, área del circuito, o confidencialidad) con presupuestos suficientes. 2. Diseño en base a celdas estándar precaracterizadas (‘semi-custom standard cells’): Los IC se diseñan a partir de bibliotecas de celdas precaracterizadas para cada tecnología, que si bien limitan las posibilidades de diseño respecto de un ASIC, le 571 Tomado de [TTOV98], s. 1.1, pp. 2-12. 572 Véase [Tew96] para una concisa presentación de los ASIC. Ingeniería Electrónica – Universidad Católica del Uruguay 210 - [ 4 ] Evolución Histórica de la Electrónica evitan al diseñador el lidiar con los niveles más bajos del diseño (topográfico o geométrico, y eléctrico). Similarmente a los ASIC, estos dispositivos requieren el proceso de fabricación completo. 3. Diseño en base a matrices de puertas predifundidas (‘semi-custom gate arrays’): Consiste en diseñar los circuitos sobre la base de una estructura regular de dispositivos básicos implantada en el IC, la cual es personalizable mediante un conexionado específico que sólo requiere las últimas etapas de fabricación. Similarmente al diseño en base a celdas estándar, el diseño de estos dispositivos se basa en bibliotecas de celdas correspondientes a cada familia (biblioteca de celdas precaracterizadas para cada tecnología) y está limitado en forma ulterior por las posibilidades de la estructura prefabricada. 4. Diseño en base a lógica programable (FPGA, ‘Field-Programmable Gate Array’; FPLD ‘Field-Programmable Logic Devices’; CPLD ‘Complex Programmable Logic Devices’): Similarmente al diseño en base a matrices de puertas predifundidas, el diseño se realiza en base a componentes prefabricados en el IC, pero la diferencia reside en que estos dispositivos son programables - la interconexión de sus componentes internos se define mediante programación - lo que permite disponer de ellos após de su proceso de fabricación completo y de su verificación en la fábrica. El diseño se basa en bibliotecas precaracterizadas y mecanismos de mapeo de funciones; de estos se deriva la ‘programación’ que, al cargarse en el dispositivo, activa las conexiones de sus componentes prefabricados de la manera indicada por el diseñador. Esta fase de programación la puede hacer el propio diseñador en pocos segundos, inclusive cuando el dispositivo ya se halla incorporado a un sistema, en una placa de circuito impreso573. • Sobre el fin de la década, surge otra novedad: los primeros lenguajes de descripción de dispositivos electrónicos (HDL, ‘Hardware Description Language’). Estos son lenguajes de programación orientados a la descripción de dispositivos electrónicos digitales, que permiten la concepción del diseño a niveles arquitectural574 y funcional575 (elevando así el nivel de abstracción respecto del nivel físico576) pero que permiten descripciones mixtas multinivel577. En esencia, los HDL adoptan los conceptos de abstracción provistos por los lenguajes de programación usuales en informática578 y agregan capacidades expresivas para 573 De aquí la designación de ‘field - programmable’, que podría traducirse como programable ‘in situ’, aludiendo a la capacidad de programación - y reprogramación - del dispositivo luego de instalado en la aplicación final. 574 Nivel arquitectural, o estructural: el circuito o sistema se describe mediante bloques funcionales, y eventualmente incorpora información relativa a la temporización de las acciones, pero no se confieren detalles de implementación física. Se distinguen dos subniveles: descripciones en términos de transferencias entre registros (RTL, ‘Register Transfer Level’) y, por debajo, descripciones en términos de puertas lógicas. 575 Nivel funcional o comportamental: el comportamiento del circuito o sistema se especifica como una relación funcional entre entradas y salidas, en forma totalmente independiente de la posible implementación. 576 Nivel físico: las descripciones son en términos eléctricos (nivel de transistor) o geométricos (topografía de la descripción eléctrica del circuito; máscaras de fabricación). 577 Es decir, descripciones de circuitos constituidas por módulos descritos a diferentes niveles de abstracción; por ejemplo, módulos descritos en términos algorítmicos (nivel funcional) módulos descritos en términos RTL (nivel arquitectural) y módulos descritos en términos de puertas lógicas (nivel arquitectural, de menor abstracción que el RTL). 578 Los lenguajes de ‘alto nivel’ (HLL, ‘High - Level Languages’) como C, C++, Ada, etc. empleados para la programación ‘general’ o ‘habitual’ de computadores (programación de sistemas operativos, programación de herramientas informáticas de desarrollo, y programación de aplicaciones de usuario, como bases de datos, procesadores de texto, planillas de cálculo, sistemas de gestión, cálculo científico, etc.). Diseño de Sistemas Electrónicos Complejos [ 4.1 ] Sinopsis del desarrollo electrónico (1970-2000) - 211 el modelado de eventos concurrentes. Aunque originalmente pensados para la simulación de dispositivos, ciertos subconjuntos de los HDL permiten elaborar descripciones que habilitan además la síntesis automática579 del IC modelado. Con la promitente consolidación de los niveles físico, arquitectural, y funcional se busca promover el diseño descendente: partiendo de una descripción a nivel funcional (comportamental) se buscan generar varias descripciones a un nivel arquitectural (RTL y/o de puertas lógicas) para, mediante simulación, evaluar alternativas antes de abordar el diseño detallado y la implementación física580. Sin embargo, en virtud de su acoplamiento a la innovación tecnológica, el desarrollo de los entornos de diseño durante esta década de 1980 siguió, de manera natural, un proceso ascendente581, y logró consolidar solamente los niveles físico y arquitectural, mientras que la incorporación definitiva del nivel funcional a metodologías y herramientas de diseño no se logró sino hasta la década siguiente. [ 4.1.3 ] DÉCADA DE 1990 582 • Los diseños en base a FPGA, CPLD y FPLD cobran importancia frente a los ASIC ‘fullcustom’, en virtud del costo que tiene la fabricación de ‘máscaras’ para estos últimos 583, el cual se incrementa conforme la innovación tecnológica permite reducir los tamaños de los circuitos integrados a escalas submicrónicas. • Se introducen nuevas tecnologías de encapsulado, lo que permite la integración de de varios microcircuitos sobre un mismo sustrato cerámico, laminado, o de silicio, con conexiones prefabricadas (MCM, ‘Multi-Chip Modules’). Las posibilidades de manufactura submicrónicas hacen factible la integración de sensores y actuadores mecánicos a los circuitos integrados (MEMS, ‘Micro-Electro-Mechanical Systems’) e inclusive sensores químicos, en base a los mismos procesos de miniaturización electrónicos. Emerge así una nueva categoría de sistemas electrónicos: los Microsistemas, o Sistemas en un Encapsulado (SoC, ‘System-on-Chip’). • En el contexto de sistemas en un encapsulado y microsistemas, se agranda la ‘brecha tecnológica’ debido a la carencia de métodos y herramientas para lidiar con la complejidad de los diseños584. Esto suscita mayor esfuerzo en la investigación de metodologías, especialmente las de tipo descendente: se requiere la consecución de diseños ‘correctos por construcción’ para minimizar las iteraciones del proceso de diseño (en virtud de la creciente constricción del tiempo disponible desde la concepción a la comercialización; ‘time-to- 579 Es decir: la generación de las máscaras para la fabricación de un ASIC (en alguna de las primeras tres modalidades referidas precedentemente) o la programación de una FPGA o CPLD. 580 Esencialmente, se facilita la exploración del espacio de diseño (sección 2.4.1) actividad de importancia superlativa en las metodologías de diseño descendente (‘top - down’) (secciones 2.2.1 y 2.2.1.1). 581 ‘Bottom - up’; ver secciones 2.2.1 y 2.2.1.2. 582 Tomado de [TTOV98], s. 1.1, pp. 2-12. 583 Problema referido como ‘the million - dollar - mask problem’ en la literatura de habla inglesa, en referencia al costo en el entorno del millón de dólares para la fabricación de una (única) ‘máscara’ a partir de la cual se producen los circuitos integrados. 584 Por ejemplo, se invierte el problema de retardos en las señales: en la década de 1980, el retardo de una conexión podía despreciarse frente al retardo de una compuerta (en tecnologías superiores a una micra, el 80% del retardo se debe a compuertas y el 20% a las conexiones) mientras que en la década de 1990, las tecnologías sub - micrónicas avanzadas (por ejemplo 0,3 μm) determinan que el 80% del retardo se debe a las conexiones frente al 20% de las compuertas. Así, los procesos de diseño de IC deben incorporar a las etapas de posicionamiento y conexión de bloques funcionales una fase de planificación topográfica (‘floorplaning’) que tenga en cuenta estos retardos de conexión, lo que aumenta significativamente la complejidad del diseño (y la de las herramientas informáticas que asisten al diseño). Ingeniería Electrónica – Universidad Católica del Uruguay 212 - [ 4 ] Evolución Histórica de la Electrónica market’585) y evitar las correcciones a las máscaras de fabricación de IC (en virtud de su costo exhorbitante para tecnologías submicrónicas; ‘the million-dollar-mask problem’). • Sobre los niveles físico y estructural consolidados a fines de la década anterior, se consolidan definitivamente los niveles arquitectural y funcional con el desarrollo y la implantación de los HDL en los flujos de diseño (VHDL 586 y Verilog son los HDL que obtienen aceptación; se convierten en estándar de la IEEE). • Con los HDL, se diseñan ‘macro’ bloques funcionales, como microprocesadores de uso general (CPU, ‘Central Processing Unit’) procesadores de señales digitales (DSP, ‘DigitalSignal Processors’) y microcontroladores (MCU, ‘Micro-Controller Units’). No obstante, este tipo de dispositivos requiere programación, y por tanto, los HDL no son en general suficientes para dar una solución integral a los problemas planteados por los SoC o los sistemas en PCB que incorporan bloques programables. Se requiere el uso conjunto de HDL con lenguajes de programación de bajo y alto nivel (lenguajes ensambladores específicos a cada dispositivo programable, y/o lenguajes de uso general como C, C++, Ada, Java, etc. con sus respectivos compiladores) lo que genera la necesidad de interfases entre lenguajes, interoperabilidad (por ejemplo, para simulación) etc. 587 • La integración en red de los sistemas informáticos potencia el desarrollo de los sistemas electrónicos, al permitir el trabajo concurrente y a distancia de equipos de diseño, con facilidades de comunicación, visualización, almacenamiento, y procesamiento muy superiores a la década precedente588. • Se produce una generalización del diseño electrónico: del diseño de IC como los ASIC, las metodologías y herramientas de diseño en desarrollo se comienzan a aplicar para el diseño de sistemas electrónicos ‘macroscópicos’, y su integración con sistemas de información generales. Esto se produce en el marco de una evolución coordinada de las distintas técnicas CAD, dando lugar a la llamada Automación del Diseño Electrónico (EDA, ‘Electronic Design Automation’). La evolución es concurrente con el desarrollo de la Ingeniería Informática Asistida por Computador (CASE, ‘Computer-Aided Software Engineering’) como parte del ciclo sinérgico de soporte mutuo entre microelectrónica e informática iniciado en la década previa. Esta evolución concurrente promueve el desarrollo más general de la Ingeniería Asistida por Computador (CAE, ‘Computer-Aided Engineering’). Conferida la precedente sinopsis de la evolución del desarrollo electrónico desde 1970 al fin del siglo XX, el resto del capítulo se dedica a reexaminar, con mayor detalle, la evolución del diseño electrónico a partir de los años 80 (origen de las tecnologías VLSI 589 para IC). 585 Ver nota 594, p. 216. 586 Acrónimo de ‘VHSIC - HDL’. VHSIC es acrónimo de ‘Very High - Speed Integrated - Circuit’, o circuito integrado de alta velocidad., por lo cual VHDL significa: lenguaje de descripción de circuitos integrados de alta velocidad. 587 Esta programación, referida como programación embebida, constituye un serio problema - en el contexto más general de diseño de sistemas embebidos - al que se le dedica particular atención sobre finales del siglo XX, principios del XXI y hasta la fecha. En particular, la interoperabilidad de HLL y HDL es una cuestión clave para el codiseño, cosimulación y codepuración de sistemas, conceptos que se presentan más adelante en este documento. 588 Considérese, simplemente, las posibilidades abiertas por la red global Internet para el intercambio de información, en diversos formatos soportados por las capacidades ‘multimedia’ desarrolladas en esta época: “... podemos decir que estamos asistiendo a una auténtica explosión de medios no siempre fácil de seguir y asumir” [TTOV98], p. 12. 589 Acrónimo de la voz inglesa ‘Very Large Scale of Integration’, se refiere a circuitos integrados de ‘muy alta escala de integración’. Diseño de Sistemas Electrónicos Complejos [ 4.2 ] Sinopsis de la fabricación de circuitos integrados - 213 [ 4.2 ] SINOPSIS DE LA FABRICACIÓN DE CIRCUITOS INTEGRADOS [ 4.2.1 ] TENDENCIAS HISTÓRICAS Y PROYECCIONES Impulsada por la incesante evolución tecnológica, la industria de semiconductores ha sido históricamente capaz de proveer dispositivos que cada tres años cuadruplican su cantidad de funciones, con sólo un modesto factor de incremento del tamaño de los circuitos de 1.4, y un factor de aumento en el costo de los dispositivos de - coincidentemente - 1.4. Es decir que, manteniendo el costo del mm2 de silicio prácticamente constante, se sigue aún la tendencia anunciada en 1965 por Moore, referente a la evolución del nivel de integración de los dispositivos electrónicos. En 1999, la Asociación de Industrias de Semiconductores (SIA, ‘Semiconductor Industry Association’) indica en su publicación ITRS (‘The International Technology Roadmap for Semiconductors: 1999 Edition’) que esta tendencia se ha acelerado en los últimos años, reduciéndose el ciclo de cuadruplicación de funciones de tres a dos años, mientras que se ha mantenido la tendencia histórica de disminución del costo por función en un 25 - 30% al año [SIA99]. Este aumento de la funcionalidad de los dispositivos a costos cada vez más reducidos, se ha basado fundamentalmente en la capacidad de ‘escalamiento’ de la industria de semiconductores, que es la capacidad de integración de un número cada vez mayor de los mismos elementos constitutivos de circuitos integrados por unidad de área de silicio. Actualmente, se está llegando a un punto donde las técnicas de ‘escalamiento’ empleadas durante los últimos 30 años para la fabricación de dispositivos CMOS planares comienzan a manifestar limitaciones inherentes a los materiales utilizados. No obstante, tales tecnologías pueden extenderse mediante la introducción de nuevos materiales, dando a los físicos de estado sólido y a los diseñadores de circuitos integrados la posibilidad de mantener la tendencia histórica generada por las técnicas de ‘escalamiento tradicional’, constituyendo un nuevo régimen denominado ‘escalamiento equivalente’. Esto posibilita desplazar el límite de los procesos CMOS planares por unos cinco o diez años más, y con ello continuar el seguimiento de la ‘Ley de Moore’590. En base a la posibilidad de extender las técnicas de manufactura actuales con la introducción de nuevos materiales - o sea, continuar en la tendencia de la ‘Ley de Moore’ mediante técnicas de ‘escalamiento equivalente’ - la SIA anuncia en ITRS 1999 sus proyecciones de logros tecnológicos para los siguientes 15 años, los que se resumen en la Tabla 4.1 y se representan gráficamente en la Fig. 4.1. Estas proyecciones son establecidas en base a lo que la SIA denomina ‘Nodos Tecnológicos’, concepto que pretende sincronizar el desarrollo tecnológico general con una dimensión característica de las memorias DRAM (longitud entre conexiones metálicas de celdas de bit DRAM) cuyos ciclos de reducción históricamente siguieron la ‘Ley de Moore’ (logrando una cuadruplicación de la cantidad de bits por circuito integrado cada tres años). Por ende, cada ‘Nodo Tecnológico’ supone un avance tecnológico significativo respecto al nodo previo (70% de ‘escalamiento’) aunque no indica la resolución máxima obtenible mediante los procesos de fabricación, la cual suele ser mayor. No obstante, para ediciones posteriores a ITRS 1999 la SIA prevé abandonar este concepto de ‘Nodo Tecnológico’ a causa de - precisamente - el ‘escalamiento equivalente’, que con la incorporación de nuevos materiales requerirá otras formas de estimar la tasa de ‘escalamiento’ concurrentemente con el aumento de funcionalidad y la evolución del costo por función. 590 Naturalmente, la capacidad de producir cada vez más transistores por mm 2 tiene un límite físico, impuesto en última instancia por la estructura atómica de la materia. En algún momento, esta limitación física impondrá restricciones inexorables al escalamiento de los dispositivos semiconductores, que - de acuerdo a las teorías físicas actuales - como máximo podrán contar con transistores mono - electrónicos o conformados por un único elemento cuántico. Ingeniería Electrónica – Universidad Católica del Uruguay 214 - [ 4 ] Evolución Histórica de la Electrónica Tabla 4.1: Proyección de desarrollo tecnológico de semiconductores – SIA 1999 Año Nodo Tecnológico (nm) 1997 250 1998 250 1999 180 2002 130 2005 100 2008 70 2011 50 2014 35 250 Nodo Tecnológico (nm) 200 y = 204.52e -0.1087x R2 = 0.998 180 150 130 100 100 70 50 35 50 2014 2011 Año 2008 2005 2002 1999 0 Fig. 4.1: Datos de la Tabla 4.1 aproximados por un modelo exponencial (recuadro interno de la gráfica) En el resumen de su edición 2001 de ITRS, la SIA se ve obligada a ajustar sus proyecciones anunciando metas más exigentes que las previstas en su documento de 1999, a raíz de la evolución tecnológica experimentada en el período comprendido entre las publicaciones, el que sobrepasó significativamente las expectativas [SIA02]. Los ‘nodos tecnológicos’ revisados para la edición 2001 de ITRS se indican en la Tabla 4.2 591. A efectos comparativos, la longitud entre conexiones metálicas de celdas DRAM se representa gráficamente en la Fig. 4.2, conjuntamente con los datos correspondientes de la edición 1999. Tabla 4.2: Proyección de desarrollo tecnológico de semiconductores – SIA 2001 Nodo Tecnológico y Capacidad de los CI Longitud entre conexiones metálicas de celdas de bit DRAM (nm) Tamaño de memorias DRAM (Mbits) Longitud física de compuerta en microprocesadores (nm) Frecuencia de reloj en microprocesadores (MHz) 2001 130 512 65 1684 2005 80 2000 32 5173 2010 45 2016 22 8000 18 11511 64000 9 28751 Estas tendencias históricas y proyecciones de posibilidad tecnológica de manufactura son las que han permitido el desarrollo casi explosivo de la electrónica por los últimos 30 años hasta la fecha. Consecuentemente, el desarrollo permanente de la electrónica en las mismas proporciones que las históricas se ha tornado en algo habitual y ‘esperable’ desde el punto de vista de los consumidores (en su más amplia acepción) al punto que la industria de 591 En esta edición de ITRS, la SIA comienza a extender el concepto ‘Nodo Tecnológico Longitud entre conexiones metálicas de celdas de bit DRAM’ como índice de avance tecnológico, incorporando otras categorías de comparación. Diseño de Sistemas Electrónicos Complejos [ 4.2 ] Sinopsis de la fabricación de circuitos integrados - 215 250 Nodo Tecnológico (nm) 200 y = 204.52e -0.1087x R2 = 0.998 180 150 130 130 100 100 70 80 50 y = 184.48e R2 = 0.9999 50 -0.1181x 35 45 22 2014 2011 Año 2008 2005 2002 1999 0 Fig. 4.2: Datos de la Tabla 4.1 y la Tabla 4.2, aproximados por modelos exponenciales (recuadros internos de la gráfica) semiconductores considera vital para el negocio el poder seguir cumpliendo con tales expectativas. Así, actualmente, el desarrollo tecnológico en la fabricación de semiconductores se ve instigado por las expectativas que él mismo ha generado, y por los requerimientos que surgen a causa de esas expectativas. La SIA, por tanto, revisa las (posibles) dificultades que se presentan para este desarrollo, y efectúa sus previsiones a futuro. [ 4.2.2 ] DIFICULTADES ACTUALES Y DESAFÍOS FUTUROS Los avances tecnológicos y las tendencias en la fabricación de semiconductores delineadas en la sección 4.2.1, se traducen en un significativo aumento en la complejidad de los circuitos integrados factibles de manufacturar, en especial con la migración a procesos de ‘escalamiento equivalente’. Sin embargo, ya en ITRS 1999 la SIA considera un desafío demasiado exigente el poder seguir la ‘Ley de Moore’, con el ciclo reducido a dos años, exclusivamente mediante innovación tecnológica592. Consecuentemente, plantea la necesidad de afrontar innovaciones en el área de diseño de sistemas y circuitos, y la necesidad de integrar diversas técnicas de fabricación en una misma pastilla de circuito integrado con las propias técnicas de encapsulado. Esta emergente categoría de productos, que la SIA identifica como sistemas en un solo encapsulado (SoC, acrónimo de ‘System-on-a-Chip’) se definen principalmente por su prestación y costo más que por límites tecnológicos. Son generalmente diseños de tecnologías mixtas, incluyendo memoria DRAM, lógica de bajo consumo o de alta velocidad, subcircuitos analógicos, subcircuitos de radiofrecuencia, subcircuitos ópticos (especialmente para 592 Cabe mencionar que el seguimiento de la ‘Ley de Moore’ y tendencias similares fue tomado por la SIA como el espíritu de su ITRS desde 1992 ([SIA99], Introduction – Technology Requirements Perspective) validando en cierta forma la expresión ‘profecía autocumplida’ de Moore, mencionada anteriormente en este documento. Ingeniería Electrónica – Universidad Católica del Uruguay 216 - [ 4 ] Evolución Histórica de la Electrónica entrada/salida) microsensores y microactuadores (sistemas micro-electro-mecánicos, o MEMS por su acrónimo en inglés) e inclusive sistemas electro-químicos, previéndose además la incorporación de sistemas electro-biológicos en un futuro no muy lejano593. Por razones de costo y tiempo de comercialización594, la SIA estima que gran parte de este tipo de circuitos se utilice conjuntamente con FPGA 595 y memorias ‘Flash’ 596 para conformar plataformas programables 597, que mediante programación adecuada se puedan reprogramar y/o reconfigurar para cubrir una variedad de necesidades. Según la SIA, con el advenimiento de sistemas en un solo encapsulado, las herramientas de diseño y las tecnologías requeridas para ensamblar, verificar y programar tales sistemas incluidos en plataformas programables, presentarán un difícil desafío en la próxima década. En este contexto, y con objeto de organizar el planteo de las dificultades y definir los problemas y desafíos para el corto y largo plazo, la SIA clasifica los actuales y los potenciales problemas por áreas de trabajo, y propone grupos de trabajo correspondientes para estudiar los problemas598. Un resumen de esta clasificación se encuentra en ITRS 1999 ([SIA99], pp. 5-10) varias tablas con una exposición más extensa de las dificultades para cada área se presentan en ([SIA99], pp. 11-22) y el desarrollo completo para cada una de las categorías se explicita en el capítulo correspondiente a cada área de trabajo, lo que constituye el cuerpo del citado documento. De estos múltiples desafíos y dificultades que la SIA prevé para los próximos años599 en todas las áreas de trabajo relacionadas con la fabricación de circuitos integrados, se señalan a continuación algunos pocos600: 593 De hecho, la integración electrónica y biológica es vista por el físico teórico Stephen Hawking como necesaria para que la humanidad pueda seguir el ritmo exponencial de crecimiento de la información (ver sección 1.1.2). 594 En la literatura en idioma inglés, el ‘tiempo de comercialización’ se denomina ‘time - to - market’, y se refiere al tiempo que transcurre desde el inicio del diseño del sistema, hasta su introducción comercial como bien de consumo en el mercado. Actualmente, este tiempo se ha convertido en un parámetro crítico para el éxito de un producto, por razones de competencia y de obsolecencia tecnológica. A la fecha, este factor de presión ha servido para incentivar el desarrollo de metodologías y herramientas de diseño, pero quien escribe lo considera como un factor más pernicioso que benéfico, conforme somete el desarrollo a un interés exclusivamente mercantilista - ni siquiera un interés económico en el sentido amplio del término - contrapuesto al bienestar mental y ecológico que es el que verdaderamente debiera pautar la ética y los métodos del desarrollo. 595 Acrónimo en idioma inglés de ‘Field Programmable Gate Arrays’. Son circuitos integrados lógicos conformados por grandes cantidades de celdas, de estructura regular, y función reconfigurable mediante programación adecuada, la cual se puede llevar a cabo en el sistema final lo cual les confiere la característica de ‘programabilidad en la propia aplicación’. 596 Tipo de memoria de semiconductor no volátil actualmente usada en microprocesadores y microcontroladores, y como medio de almacenamiento masivo en cámaras digitales, audio portátil, y unidades de disco duro de estado sólido. 597 El concepto de plataforma programable corresponde a la categoría de sistemas electrónicos complejos, más que a la de circuitos integrados, y se estudiará en profundidad más adelante en este documento. Por ahora, considérese a modo de ejemplo que el computador personal (PC) es una plataforma programable mediante cambios en programas pero no mediante reconfiguración de componentes electrónicos. 598 Las mencionadas áreas de trabajo definidas por la SIA son: Área de Diseño; Área de Prueba; Área de Integración de Procesos, Dispositivos, y Estructuras; Área de Procesos de Fabricación; Área de Litografía; Área de Interconexión; Área de Integración en Fábrica; Área de Ensamblado y Encapsulado; Área de Medio Ambiente, Seguridad y Salud; Área de Reducción de Defectos; Área de Metrología; Área de Modelado y Simulación. 599 Considerando la fecha de publicación de la referencia - 1999 - y la de redacción del presente documento, los problemas no son solamente futuros sino que muchos son actuales. 600 No se hace una transcripción textual, sino una adaptación de los conceptos originales. Diseño de Sistemas Electrónicos Complejos [ 4.2 ] Sinopsis de la fabricación de circuitos integrados - 217 1. el manejo y la consideración de un número enorme de dispositivos que componen los sistemas implementados sobre circuitos integrados, producto de los avances en las tecnologías de integración 2. la consideración de la interacción de esa cantidad enorme de dispositivos integrados en una pastilla de silicio601 3. la gestión de las interconexiones físicas entre el gran número de dispositivos, que además de la distribución de señales particulares entre los dispositivos del sistema implica la distribución de las líneas comunes a la totalidad de los dispositivos del circuito, como alimentación, tierra, y señales de reloj602 4. el mantenimiento de la integridad de las señales, en un contexto de frecuencias de reloj cada vez más elevadas, voltajes de alimentación cada vez más bajos, e interferencia mutua y ruido propagado por el sustrato en circuitos integrados cada vez más reducidos, donde los efectos de la estructura atómica de la materia comienzan a influir significativamente 5. la gestión térmica y de potencia (corrientes y voltajes) de los circuitos integrados, que eventualmente considere los efectos atómicos de la materia debido a la reducción en el tamaño de los circuitos integrados y sus encapsulados 6. la necesidad de incorporar funciones de auto-chequeo, y facilidades para chequeo y depuración externas en los sistemas, en virtud de dificultad para la verificación de los circuitos integrados que emanan del tamaño decreciente y la complejidad creciente de los sistemas integrados 7. la incorporación de nuevos materiales, componentes pasivos, elementos mecánicos y elementos ópticos a los circuitos integrados 8. la necesidad de incorporar capacidad es de programación (y reprogramación) en los sistemas603 9. la necesidad de nuevas técnicas de modelado, que - en el cada vez más exigente contexto descrito precedentemente - permitan la consecución de modelos eficientes y unificados, de forma de permitir el tratamiento integral del encapsulado, el circuito eléctrico, los problemas térmicos y mecánicos y los efectos físicos debidos a la escala nanométrica de los circuitos integrados 10.la necesidad de metodologías de diseño para Sistemas en un Encapsulado (SoC) que requieren capacidades para lidiar con la heterogeneidad de estilos de diseño, incluyendo analógico, digital, señal mixta, radiofrecuencia, electro-óptico, electro-mecánico, etc. 11.la tendencia al uso de sistemas abiertos y a la integración en red de los sistemas, en particular con redes de sistemas de cómputo general 12.la interacción entre los diferentes niveles de abstracción de los diseños 13.la consecución de métodos formales para la especificación y verificación a nivel de sistema604, en el contexto de sistemas heterogéneos tanto en sus estilos de diseño como en sus tecnologías de implementación 601 En los términos del capítulo 1 del presente documento, la dificultad sería la consideración del sistema, y el desafío es lograr metodologías que permitan el tratamiento de los diseños a ese nivel de sistema. 602 Problema que implica la resolución espacial en tres dimensiones, y para el cual se proponen modificaciones como ser interconexiones ópticas o por radiofrecuencia internas a la pastilla de silicio. 603 Este desafío se inscribe en el más general de programación de sistemas embebidos. 604 Verificación no se refiere a ‘ensayos’ o ‘pruebas de campo’, sino a ‘chequeos de consistencia’ (de tipo teórico). Ingeniería Electrónica – Universidad Católica del Uruguay 218 - [ 4 ] Evolución Histórica de la Electrónica 14.la necesidad de efectuar los diseños en equipos multidisciplinarios, los cuales son conformados por numerosos geográficamente individuos con aptitudes y habilidades diversas, distribuidos 15.la necesidad de rápida migración de tecnologías en los diseños para mantener la productividad y para poder superar la rapidez de los ciclos de obsolecencia tecnológica 16.el intercambio de propiedad intelectual605 para favorecer la estandarización, la reutilización de componentes, y cumplir con las demandas de mayores prestaciones y menores costos de los sistemas606 Así, según la SIA, la complejidad del diseño está creciendo en forma super-exponencial debido a los efectos conjuntos derivados de un incremento en la complejidad de la propia pastilla de silicio, en la complejidad de los sistemas integrados en esta, y en la complejidad de los propios procesos de diseño. La complejidad en lo que respecta a la propia pastilla de silicio aumenta debido al incremento en el número de elementos que interactúan, el incremento del número de interconexiones, la heterogeneidad de elementos que se incorporan (señal mixta, elementos ópticos, mecánicos, etc.) los efectos de la reducción del tamaño (efectos electromagnéticos y cuánticos) y su incidencia en los requerimientos de corriente y voltaje. La complejidad en lo que respecta al sistema integrado en la pastilla (SoC) se ve aumentada por la heterogeneidad de las aplicaciones y los estilos de diseño correspondientes, y la necesidad de incorporar programación e integrar bloques de propiedad intelectual por razones de flexibilidad y coste. La complejidad de los propios procesos de diseño aumenta con el incremento de interacción entre los diferentes niveles de abstracción del diseño y el incremento del tamaño y dispersión geográfica de los equipos de diseñadores, necesaria para cumplir con las demandas del tiempo de comercialización, costo, calidad y productividad. Todo ello tiene directa incidencia en la verificación (chequeo funcional teórico) de los circuitos integrados, y también se traduce en un incremento en la complejidad de las pruebas (ensayos empíricos) y los sistemas de prueba concretos para chequear los dispositivos, ya sean estos externos o intrínsecos al sistema. En esencia, estos desafíos y dificultades no son más que la manifestación explícita de la ‘brecha tecnológica’, detectada ya en la década de los 80. [ 4.3 ] SINOPSIS DE LA EVOLUCIÓN ESTRUCTURAL DE LAS HERRAMIENTAS INFORMÁTICAS PARA DISEÑO ELECTRÓNICO En la sección 4.1.1 se aduce que en la década de 1970, prácticamente la única herramienta informática para diseño electrónico consiste en el simulador analógico de esquemas eléctricos SPICE570. Pero conforme se gesta y cierra el ciclo de soporte mutuo entre electrónica e informática, a partir de la década de 1980 (sección 4.1.2) la diversidad y estructura de las herramientas informáticas para diseño electrónico varía considerablemente, y en forma concurrente con los desarrollos en microelectrónica. En ([TTOV98], p. 8) se presenta un esquema que describe los cambios estructurales en las herramientas en relación a sus capacidades de intercomunicación, esquema que se reproduce e interpreta aquí, en las figuras 4.3 a 4.6 (secciones 4.3.1 a 4.3.4). 605 IP por su acrónimo de ‘Intellectual Property’. Se refiere a la modalidad de comercialización de diseños de circuitos integrados - particularmente aquellos programables, bibliotecas de bloques, módulos o unidades funcionales - que se efectúa en forma de descripciones hechas en lenguajes formales estandarizados, de manera de posibilitar su inclusión en otros diseños (la noción de diseño como par especificación - implementación de descripciones se confiere en la sección 2.1.2.1 del presente documento). 606 Esto está relacionado estrechamente con el punto anterior, referente a la dificultad que representan los ciclos de obsolesencia tecnológica: el intercambio de IP es un método para lidiar con esas situaciones. Diseño de Sistemas Electrónicos Complejos [ 4.3 ] Sinopsis de la evolución estructural de las herramientas informáticas para diseño electrónico - 219 [ 4.3.1 ] HERRAMIENTAS CAD INDEPENDIENTES Inicialmente, las herramientas CAD fueron concebidas independientemente, y cada una contaba con su interfaz de usuario y su base de datos específica. Así, la interoperabilidad entre estas herramientas CAD independientes requería de interfases ad hoc, para cada par de herramientas entre las cuales se deseara transferir información (Fig. 4.3). Interfaz de Usuarioj Herramientaj Base de Datosj Interfaz Hij Interfaz Hjk Interfaz de Usuarioi Interfaz de Usuariok Herramientai Base de Datosi Interfaz Hki Herramientak Base de Datosk Fig. 4.3: Evolución de la estructura de las herramientas CAD y su interoperabilidad (cuadro 1). Herramientas independientes. Requieren interfases ad hoc para intercambio de información (Adaptado de [TTOV98], p. 8). El inconveniente manifiesto de este estadio es precisamente la dificultad para el intercambio de información, que requiere de interfases específicas no disponibles ab initio, las que pueden ser difíciles o directamente imposibles de desarrollar, según los formatos propietarios de cada herramienta, y su carácter de público conocimiento o no. Además, esta dificultad escala con el crecimiento en la cantidad de interfases necesarias, conforme se incrementa el número de herramientas disponibles. [ 4.3.2 ] ENTORNOS DE HERRAMIENTAS CAD INTEGRADAS El segundo paso en la evolución de las herramientas CAD consistió en unificar la interfaz de usuario y la base de datos para las diferentes herramientas, dando lugar a los entornos CAD integrados (Fig. 4.4). Este esquema permite superar el problema de las interfases entre herramientas, pero posee la desventaja de limitar los flujos de diseño posibles, a aquellos soportados por el entorno CAD. Ingeniería Electrónica – Universidad Católica del Uruguay 220 - [ 4 ] Evolución Histórica de la Electrónica Interfaz de Usuario Lenguaje de interface Herramientai Herramientaj ····· Herramientan Lenguaje de acceso / gestión Base de Datos Entorno CAD integrado Fig. 4.4: Evolución de la estructura de las herramientas CAD y su interoperabilidad (cuadro 2). Entornos CAD Integrados. Herramientas comparten Base de Datos e Interfaz de Usuario (Adaptado de [TTOV98], p. 8). [ 4.3.3 ] ENTORNOS DE HERRAMIENTAS CAD INTEGRADAS, ABIERTOS Y FLEXIBLES Interfaz de Usuario Lenguaje de interface Herramientai Herramientaj ····· Herramientan Lenguaje de acceso / gestión Base de Datos Facilidades para integración de nuevas herramientas Facilidades para incorporación de mecanismos de gestión del flujo de diseño El siguiente paso en la evolución lo constituyen los entornos CAD abiertos y flexibles, que disponen de facilidades para permitir la inclusión de nuevas herramientas y mecanismos de gestión del flujo de diseño (Fig. 4.5). Entorno CAD integrado, abierto y flexible Fig. 4.5: Evolución de la estructura de las herramientas CAD y su interoperabilidad (cuadro 3). Entornos CAD Integrados, Flexibles y Abiertos. Herramientas comparten Base de Datos e Interfaz de Usuario, y se dispone de facilidades para integrar nuevas herramientas y mecanismos de gestión del flujo de diseño (Adaptado de [TTOV98], p. 8). De esta forma, es factible extender el entorno CAD para soportar nuevos flujos de diseño y sus respectivas metodologías de gestión, lo cual le confiere adaptabilidad. Diseño de Sistemas Electrónicos Complejos [ 4.3 ] Sinopsis de la evolución estructural de las herramientas informáticas para diseño electrónico - 221 [ 4.3.4 ] ESTÁNDARES PARA INTERCAMBIO DE INFORMACIÓN ENTRE HERRAMIENTAS CAD El último paso en la evolución de las herramientas de diseño (a la fecha) lo constituye la estandarización de formatos para el intercambio de información. De esta manera, los flujos específicos de diseño se configuran e instrumentan empleando las herramientas CAD que adhieran a los estándares más adecuadas para el caso. Esto evita generar interfases ad hoc entre herramientas, y permite incluso la interoperabilidad entre herramientas independientes y entornos CAD integrados (Fig. 4.6). Herramientai Entorno CAD Integradom Entorno CAD Integradol ESTÁNDARES (Electrónicos Informáticos Mecánicos) Herramientak Herramientaj Entorno CAD Integradon Fig. 4.6: Evolución de la estructura de las herramientas CAD y su interoperabilidad (cuadro 4). Estándares Electrónicos, Informáticos, Mecánicos. Herramientas independientes, especializadas, comparten información en base a estándares electrónicos, informáticos, mecánicos, etc. de dominio público (Adaptado de [TTOV98], p. 8). Este esquema ha sido promovido por la complejidad que presentan para el diseño los sistemas heterogéneos, y la consecuente necesidad de intercambio de propiedad intelectual, y reutilización de diseños y componentes de diseño, para superar la brecha tecnológica y las presiones mercantiles. La creciente disponibilidad de herramientas de calidad y propiedad intelectual de carácter libre607 ha sido un factor significativo en la consecución de este estadio. No obstante, esta última etapa de la evolución de las herramientas CAD no soluciona definitivamente el problema de la interoperabilidad de las herramientas: la capacidad de transferir información gracias a los formatos estándar no implica que esa transferencia se pueda efectuar en tiempo de ejecución, y menos aún en tiempo real. Así, la posibilidad de emplear modelos ejecutables (en el sentido de la sección 3.4) para el diseño de sistemas electrónicos, puede resultar significativamente limitada, según sea definido el estándar para el intercambio de información. Este problema se analiza más adelante en este documento, cuando se trata al problema de codiseño, cosimulación y codepuración de sistemas electrónicos. 607 Libre, en el sentido de disponer de acceso irrestricto al diseño - es decir, disponer de su descripción completa. Esto habilita a su inspección y modificación, con objeto de mejorarlo, o adaptarlo a las necesidades específicas del caso. No implica gratis. Ingeniería Electrónica – Universidad Católica del Uruguay 222 - [ 4 ] Evolución Histórica de la Electrónica [ 4.3.5 ] CLASIFICACIÓN ABSTRACTA DE HERRAMIENTAS CAD Independientemente de su evolución estructural, las herramientas CAD pueden ser consideradas desde la perspectiva de la tarea o función a la que asisten o automatizan, así como por la manera en que representan la información. Según su función, las herramientas CAD típicas pueden ser clasificadas en: • Herramientas de Edición: Son las herramientas que permiten al diseñador el ingreso y manipulación de descripciones, como editores de texto para lenguajes de descripción, programación, documentación, etc.; editores de esquemas para lenguajes de programación con sintaxis visual, diagramas, etc.; y editores gráficos para descripciones topográficas o geométricas (como el diseño de PCB o IC) • Herramientas de análisis/simulación: Son las herramientas que asisten al diseñador extraer propiedades del diseño, ya sea de manera formal (por análisis formal) o mediante simulación. • Herramientas de síntesis: Son las herramientas que asisten al diseñador en los procesos de traducción o refinamiento de descripciones de un nivel de abstracción a otro nivel de abstracción inferior, o les efectúan en forma automática o semiautomática bajo control del diseñador. • Herramientas de optimación: Son herramientas íntimamente asociadas a las herramientas de síntesis, que usualmente operan de forma transparente para el diseñador (aunque bajo su control) y cumplen la función obvia de optimar los procesos de síntesis. Según el modo de representar la información, las herramientas CAD pueden clasificarse en: • Herramientas de representación externa: Son las herramientas orientadas al usuario, típicamente las dedicadas a efectuar descripciones, como las herramientas de edición, o las herramientas para generación de reportes, informes, u otro tipo de salidas textuales y visuales, como las herramientas de simulación. • Herramientas de representación interna: Son las herramientas orientadas al cómputo, al procesamiento, y por lo general son transparentes o directamente ocultas al usuario, como las herramientas de optimación. Estas herramientas operan sobre formatos intermedios o internos, que no son los formatos de edición, ingreso, captura, reporte, o visualización de datos, sino los formatos de trabajo de la herramienta (o conjunto de herramientas integradas). En el capítulo 5, y particularmente en la sección 5.2, las precedentes clasificaciones de las herramientas CAD se pueden apreciar en relación a las diferentes etapas del proceso de diseño. [ 4.4 ] PRESENTACIÓN DE LA PROBLEMÁTICA Y DESAFÍOS DEL DISEÑO ACTUAL DE SISTEMAS ELECTRÓNICOS COMPLEJOS [ 4.4.1 ] COMPLEJIDAD Y SISTEMAS Según Von Bertalanffy, para poder lidiar con la creciente complejidad exhumada por el encare reduccionista de la ciencia clásica, esta debió efectuar un cambio filosófico en favor de la moderna ‘visión de sistemas’ (sección 1.3). Así, el problema de la complejidad asociada a los sistemas - emergente de relaciones no despreciables, alineales, y dinámicas entre las partes constitutivas de estos - promovió en la ciencia un cambio que esencialmente requiere una visión de alto nivel de abstracción608. Como también se aduce en el capítulo 1, las problemáticas 608 En cierta forma, consiste en la transmutación de una visión de carácter Aristotélico por una de carácter Platónico, a la que se hace mención en la sección 1.1.1. Irónicamente, en virtud de los resultados de Gödel y sus derivaciones (secciones 3.3.5 y 3.3.6) esta transmutación de perspectivas debe ser considerada conjuntamente con la aparentemente necesaria renuncia a las ideas Platónicas del mundo perfecto de las ideas. Esencialmente, consiste en efectuar abstracciones con significado, y no Diseño de Sistemas Electrónicos Complejos [ 4.4 ] Presentación de la problemática y desafíos del diseño actual de sistemas electrónicos complejos - 223 inherentes a los sistemas complejos cualesquiera derivan - entre otras causas - de procesos evolutivos, los que en general incrementan la escala609 de los sistemas (si la evolución de los sistemas respeta su jerarquía y modularidad) particularmente cuando diferentes procesos evolutivos se combinan. Cabe esperar entonces que las problemáticas de sistemas complejos constituyan un ‘factor común’ a las problemáticas inherentes al diseño electrónico, ya se trate de circuitos integrados o de cualquier sistema electrónico de tamaño macroscópico que esté constituido por muchas partes en apreciable interacción alineal, así como de sistemas de información asociado a estos (como, por ejemplo, los programas que ejecutan los procesadores digitales programables de dichos sistemas, o las herramientas informáticas que asisten al diseño, tanto de los procesadores como su programación). Así, muchas de las dificultades y desafíos anunciados en la sección 4.2.2 trascienden al ámbito específico del diseño de circuitos integrados VLSI, SoC, y MEMS, por derivarse de problemáticas inherentes a sistemas electrónicos, y en última instancia, problemáticas generales inherentes a sistemas (cualesquiera). No incidentalmente, tal como se discute en el capítulo 1 de este documento, surge entonces el problema de la complejidad asociada a los sistemas y nuestras limitaciones cognitivas. “Los avances en la tecnología electrónica han sido sencillamente extraordinarios. Como se manifiesta en la ‘Ley de Moore’, el subyacente crecimiento exponencial en las capacidades a precio constante tiene profundas implicancias a lo largo del tiempo. Implica un desplazamiento desde limitaciones de desempeño a limitaciones causadas por nuestra incompleta comprensión de como realizar determinada aplicación. (...) Actualmente, gran parte del necesario progreso es constreñido por limitaciones en nuestra comprensión de la tarea o aplicación, más que por la factibilidad o el coste de implementación.”610 ([LM98], pp. 77-78). “En ciertos casos, un diseño puede no ser siquiera intentado, puesto que su complejidad no puede ser administrada. La mayor parte de los programas informáticos hoy en día no serían diseñados sin lenguajes de alto nivel, pese a consideraciones de eficiencia. Por lo tanto, metodologías y herramientas que manejen la complejidad, aún si sacrifican la eficiencia, no solamente resultan deseables sino esenciales. En resumen, el aspecto crítico para el desarrollo de muchos productos no es ‘¿cómo diseñamos circuitería lo suficientemente veloz?’ sino más bien ‘¿es factible administrar la complejidad del diseño?’ o ‘¿cómo reducimos el tiempo de comercialización?’ ”611 ([LM98], p. 79). Los problemas que enfrenta el diseño electrónico de actualidad son, como los de la ciencia contemporánea, problemas de sistemas 612. Y en este contexto, emerge como una de las principales dificultades el manejo de la complejidad asociada a los sistemas, dadas nuestras limitaciones cognitivas.613 Así, el aspecto crítico para el desarrollo actual de sistemas electrónicos consiste en la administración de la complejidad del diseño. También en concordancia con los argumentos que se esgrimen en el capítulo 1 de este documento, Lee y Messerschmitt resaltan en [LM98] la importancia de la abstracción en el diseño electrónico, como forma de lidiar con la complejidad asociada a los sistemas614. << p. 222 exclusivamente estructurales. 609 No se debe confundir el significado de ‘escala’ en el contexto de sistemas complejos cualesquiera, con el concepto de ‘escalamiento’ en el contexto de semiconductores, aunque estén relacionados: este último se refiere a la reducción del tamaño de los circuitos integrados, mientras que el primero tiene relación con la cantidad de partes constitutivas de un sistema. Tampoco debe confundirse el término ‘reducción’ en el contexto de semiconductores, con el concepto de ‘reduccionismo’ de la ciencia clásica, pese a su posible ‘semejanza metafórica’. 610 Texto traducido del original, en inglés. Ver nota 54, p. 39. 611 Texto traducido del original, en inglés. Ver nota 54, p. 39. 612 Ver capítulo 1, particularmente la sección 1.3.2. 613 Ver capítulo 1, particularmente la sección 1.4. 614 Sistemas complejos en la noción de Simon (y que es la adoptada en el presente trabajo): ‘totalidades’ cuyas partes experimentan interacciones no lineales ni despreciables, y que presentan >> p. 224 Ingeniería Electrónica – Universidad Católica del Uruguay 224 - [ 4 ] Evolución Histórica de la Electrónica “Mientras que anteriormente los límites fundamentales en ingeniería eléctrica eran siempre de tipo físico, hoy tienden a ser la complejidad (y sus primos, ‘decidibilidad’ y computabilidad615). La arquitectura concebida con cuidado es necesaria para administrar la complejidad, a veces a expensas de la eficiencia. Una herramienta importante para el manejo de la complejidad es la abstracción. Uno de los éxitos más dramáticos de la abstracción es el diseño digital, donde los circuitos son modelados como funciones Booleanas. Otro ejemplo es el diseño sincrónico, donde el tiempo se torna discreto. (...) Muchos diseños hoy en día usan simultáneamente múltiples abstracciones. Por ejemplo, un microcontrolador puede ser concebido como un circuito digital sincrónico y luego abstraído como un conjunto de instrucciones. El conjunto de instrucciones puede ser posteriormente abstraído mediante un compilador, en cuyo caso los diseños se llevan a cabo en un lenguaje de alto nivel como C, C++, o Java. Los sistemas operativos, componentes de ‘software’ (JavaBeans o ActiveX) y ‘middleware’ (como CORBA o DCOM) ofrecen niveles de abstracción aún mayores para el diseño de sistemas. En algunas situaciones, la penalización sobre el desempeño incurrida por basar los diseños en niveles de abstracción superiores puede ser sustancial. Esta penalización, sin embargo, resulta perfectamente aceptable cuando nos damos cuenta que el diseño no podría haber sido conceptualizado correctamente a niveles de abstracción inferiores, o que el costo o el tiempo de desarrollo del diseño serían excesivos. Un diseño efectuado a un nivel de abstracción demasiado bajo es probable que resulte pobre, tardío, o ambas cosas.”616 ([LM98], p. 79). Una herramienta importante para lidiar con la complejidad es la abstracción617. Y pese al detrimento en el desempeño o eficiencia en los que pueda incurrirse como consecuencia de efectuar los diseños a un nivel de abstracción elevado, tal penalización resulta perfectamente aceptable si se estima que el diseño efectuado a niveles de abstracción demasiado bajos probablemente resulte pobre, tardío, o directamente erróneo por no ser conceptualizado correctamente. [ 4.4.2 ] ABSTRACCIONES ADECUADAS La abstracción por sí sola no es suficiente para lidiar eficientemente con la complejidad. Es preciso determinar y aplicar las abstracciones adecuadas a cada caso. En sus orígenes, los sistemas electrónicos se limitaban a implementar funciones fijas, como por ejemplo las funciones de calculadoras elementales o equipos de radio y televisión sencillos. Sin embargo, desde la aparición del primer microprocesador, los sistemas electrónicos han ido incorporando en forma creciente dispositivos programables en virtud de la flexibilidad que les confiere la programabilidad, al punto que los sistemas electrónicos de función fija constituyen hoy la excepción: las calculadoras son programables por el usuario, los equipos de audio y video incorporan diferentes tipos de procesadores para sus funciones internas y la interfaz con el usuario, e incluso los automóviles incorporan electrónica programable. El caso emblemático lo constituyen los computadores: su utilidad reside exclusivamente en la programabilidad. << p. 223 estructura de carácter jerárquico - modular. Esto último - poseer estructura, y que esta sea jerárquica y modular - es lo que los mantiene dentro de los límites cognitivos. Podríamos denominar sistemas hipercomplejos a los que no se logra percibirles estructura - quizás probablemente por no ser ésta de carácter jerárquico, o modular - los cuales quedarían así fuera de nuestra capacidad de comprensión (al menos, por la vía puramente ‘estructural’; quizás la incorporación de semántica permita acceder a este tipo de sistemas, pero probablemente a costa de indeterminismo, pérdida de certeza, incremento del carácter estadístico, etc.). 615 Nótese aquí la referencia a los resultados de Gödel y Turing (secciones 3.3.5 y 3.3.6). 616 Texto traducido del original, en inglés. Ver nota 54, p. 39. Se mantienen los términos ‘software’ y ‘middleware’ que figuran en el original, aquí entre comillas simples. 617 Ver capítulo 1, particularmente la sección 1.1.1. Diseño de Sistemas Electrónicos Complejos [ 4.4 ] Presentación de la problemática y desafíos del diseño actual de sistemas electrónicos complejos - 225 En el precedente contexto, el diseño de sistemas electrónicos tradicional ha distinguido dos aspectos o fases del diseño: ‘hardware’, en referencia a los dispositivos electrónicos físicos618, y ‘software’, en referencia a la programación de aquellos dispositivos electrónicos físicos programables619. Una evidencia manifiesta de ello es la existencia en la educación universitaria típica de formaciones independientes de profesionales en informática y electrónica. Sin embargo, puede observarse que el diseño de ‘hardware’ de actualidad incorpora cada vez más las técnicas usuales en el desarrollo de ‘software’ y, recíprocamente, el ‘software’ está adoptando metodologías características del diseño de ‘hardware’ para su propio desarrollo, situación que sugiere revisar el origen de los conceptos ‘software’ y ‘hardware’, y la aparente diferencia entre lo que estos evocan: “Cada vez más, los diseños combinan elementos mejor adaptados a la programabilidad con elementos mejor adaptados a ‘hardware’ diseñado a medida. La diferencia esencial hoy es que el ‘software’ es secuencial y el ‘hardware’ es concurrente, pero esta distinción se está difuminando. Tecnologías como los compiladores comportamentales están introduciendo un estilo más secuencial en el diseño de ‘hardware’. Mientras tanto, lenguajes de programación concurrentes están introduciendo más concurrencia en el diseño de ‘software’. La cuestión esencial es escoger la abstracción adecuada, no de elección entre ‘hardware’ y ‘software’; de hecho, puede argumentarse que esta última carece de sentido dado que cualquier diseño de ‘software’, cuando se lo considera a otro nivel de abstracción, es un diseño de ‘hardware’620.“621 ([LM98], p. 80). La precedente observación tiene además una contraparte operacional. “Sintácticamente, ‘hardware’ y ‘software’ se han fusionado completamente. Mientras que los diagramas lógicos y esquemáticos eran lo usualmente empleado para diseño de ‘hardware’, hoy es cada vez más frecuente programas en Verilog y VHDL. Estos programas se asemejan sintácticamente mucho más al ‘software’ que al ‘hardware’. Lo que los hace ‘hardware’ es la semántica concurrente detrás de la sintaxis. Las ingenierías de ‘software’ y ‘hardware’ tiene de pronto muchas cosas en común. Ambas lidian con control de código fuente, depuración interactiva, estructuras de datos, técnicas de compilación, y semántica de los lenguajes de programación622. El diseño de sistemas digitales es mayormente una tarea de programación. Al nivel práctico, el diseño de ‘hardware’ digital en el sentido moderno de emplear herramientas de diseño asistidas por computador y lenguajes de descripción de ‘hardware’ requiere un conjunto de habilidades de programación notablemente similar al diseño de ‘software’, incluso en el uso de modelos de eventos discretos y concurrencia. (...) Mientras que uno puede argumentar que la ‘Ley de Moore’ está generalmente desplazando al diseño desde ‘hardware’ hacia ‘software’, el diseño de ‘software’ está también beneficiándose cada vez más de metodologías de diseño al estilo del ‘hardware’. Hay hoy un énfasis creciente sobre reutilización en ‘software’, y un encare que está adquiriendo impulso son los componentes de ‘software’. Hay además un creciente interés en la concurrencia y la comunicación dentro de un sistema de ‘software’. El sofisticado modelo de concurrencia implementado en los lenguajes de programación sincrónicos/reactivos como Esterel y Lustre emplea abiertamente la metáfora de ‘hardware’ síncrono, y los compiladores para esos lenguajes han tomado prestado métodos de síntesis de ‘hardware’. La concurrencia en ‘software’, no obstante, puede asumir más formas que lo que puede hacer en 618 Los dispositivos físicos son tangibles, de donde surge la designación alegórica ‘hard - ware’, o cosas (‘ware’) duras (‘hard’). 619 La programación es considerada inherentemente inmaterial, y por tanto, intangible; de ello surge la designación alegórica ‘soft - ware’, o cosas (‘ware’) blandas (‘soft’). 620 De hecho, considerado a un nivel de abstracción relativamente bajo, un sistema electrónico que incluya procesadores programables y su respectiva programación puede ser visto enteramente como un dispositivo físico (puramente ‘hardware’ en la noción tradicional) donde los programas son meramente el estado inicial de los elementos y/o celdas de memoria del sistema. 621 Texto traducido del original, en inglés. Ver nota 54, p. 39. Se mantienen los términos ‘software’ y ‘hardware’ que figuran en el original, aquí entre comillas simples. 622 Nótese que aquí, semántica no tiene el significado que se le otorga en el capítulo 3 del presente documento (esencialmente, interpretación del contenido). En el contexto de lenguajes de programación y compiladores, semántica se refiere, irónicamente, a la interpretación de la sintaxis (el significado de la estructura sintáctica, no de su contenido). Ingeniería Electrónica – Universidad Católica del Uruguay 226 - [ 4 ] Evolución Histórica de la Electrónica ‘hardware’. No requiere estar limitada por nociones de tiempo o distancia, por ejemplo 623, y puede introducir la noción de cómputo transportable, como agentes o ‘applets’624 de Java, que no tienen contraparte en ‘hardware’.”625 626([LM98], pp. 82-83). Así, tal como se aduce en las secciones 4.1 y 4.3, el diseño de ‘hardware’ ha cambiado radicalmente sobre fines del siglo XX. La inextricable relación entre lo que habitualmente se designa ‘hardware’ y ‘software’ evidencia la necesidad de revisar el concepto subyacente a esa designación - esencialmente, que los términos ‘hardware’ o ‘software’ responden al grado de concurrencia o secuencialidad de la aplicación. Lo que usualmente se designa ‘hardware’ y ‘software’ en electrónica son cuestiones esencialmente equivalentes cuando se les considera desde ciertos niveles de abstracción. De hecho, el diseño de ‘hardware’ y ‘software’ se ha fusionado completamente desde el punto de vista sintáctico: el diseño de sistemas digitales es mayormente una tarea de programación, y al nivel práctico, el diseño de ‘hardware’ digital - en el sentido moderno de emplear herramientas de diseño asistidas por computador, y lenguajes de descripción de ‘hardware’ - requiere un conjunto de habilidades de programación notablemente similar al diseño de ‘software’. Recíprocamente, el diseño de ‘software’ está incorporando cada vez más conceptos y metodologías de diseño al estilo ‘hardware’, como ‘reutilización’ de ‘componentes’, ‘concurrencia’, y ‘comunicación’ dentro de un sistema de ‘software’. Esta crecientemente inextricable relación entre lo que habitualmente se designa ‘hardware’ y ‘software’ exige replantearse el concepto subyacente a esa designación - en esencia, pensar en términos de ‘hardware’ o ‘software’ de acuerdo al grado de concurrencia o secuencialidad en una aplicación. Así, la adopción de un encare ‘hardware’ o ‘software’ según el grado de concurrencia o secuencialidad de un aplicación no necesariamente constituye una ‘abstracción adecuada’. En [HNP94], Hehner, Norvell y Paige se refieren al diseño electrónico (digital) a alto nivel de abstracción627, y puede verse que aquí también se promueve el empleo de la abstracción 623 La concurrencia en dispositivos electrónicos físicos debe forzosamente considerar la distancia entre sus diversos componentes en relación a la frecuencia de las señales entre estos: la propagación de señales en caminos conmensurables con su longitud de onda pueden (entre otros efectos de ‘líneas de transmisión’) desincronizar lo que en esquemáticos del circuito parecía ser concurrente (ver, por ejemplo, la nota 584, p. 211). 624 ‘Applet’: programa que es ejecutado desde otro programa. Un caso típico lo constituyen los pequeños programas que se ejecutan dentro de un programa de navegación (‘browser’) de internet, cuando es visitada la página en la cual los ‘applets’ se hallan embebidos. Esto permite que sea el propio computador local (el que ejecuta el cliente de navegación) quien genere la salida prevista por el ‘applet’ ejecutándolo localmente, en lugar de solicitar al servidor remoto que ejecute el programa para descargar los resultados. De aquí se infiere la designación de cómputo transportable: se transporta el motor del cómputo, en lugar de sus resultados. Debe garantizarse, sin embargo, que este motor sea ejecutable en el destino; la máquina virtual de Java es una solución prevista para este caso (esencialmente, es un intérprete con múltiples implementaciones orientadas a operar en diversas plataformas computacionales). 625 Texto traducido del original, en inglés. Ver nota 54, p. 39. Se mantienen los términos ‘software’, ‘hardware’, y ‘applets’ que figuran en el original, aquí entre comillas simples. 626 Conceptos como ‘eventos discretos’, ‘concurrencia’, ‘lenguajes sincrónicos/reactivos’, ‘síntesis de ‘hardware’’, etc. son presentados con mayor detalle en el capítulo 5 del presente documento. 627 El objeto del trabajo citado ([HNP94]) es la presentación de dos métodos con los cuales implementar programas ordinarios con puertas lógicas. Nótese que, de hecho, este trabajo indica una implementación concreta de la equivalencia entre ‘hardware’ y ‘software’. Diseño de Sistemas Electrónicos Complejos [ 4.4 ] Presentación de la problemática y desafíos del diseño actual de sistemas electrónicos complejos - 227 adecuada al propósito: “Los métodos de diseño de circuitos digitales que se encuentran comúnmente en los textos actuales se asemejan a los métodos de programación de bajo nivel en lenguaje de máquina de cuarenta años atrás. Seleccionar manualmente las puertas lógicas individuales en un circuito es algo así como seleccionar las instrucciones de máquina individuales en un programa. Estos métodos podrán haber sido adecuados para el diseño de circuitos pequeños cuando se les introdujo, y podrán ser aún adecuados para circuitos grandes que son simplemente repeticiones de uno pequeño (como una memoria) pero no son adecuados para circuitos de aplicación específica que ejecutan algoritmos particulares y complicados. La alternativa usual a la construcción de circuitos específicos para una aplicación es usar un procesador de uso general, y adaptarlo para la aplicación escribiendo un programa. Que ello se pueda hacer fue una visión fundamental, debida a Turing, sobre la cual se basa la ciencia de la computación. Pero para algunas aplicaciones, particularmente donde la velocidad de ejecución o la seguridad es importante, un circuito construido a medida presenta algunas ventajas sobre la usual combinación procesador-yprograma. La velocidad se mejora debido a la ausencia de circuitos al nivel de ‘lenguaje de máquina’ con su ciclo de interpretación ‘carga - ejecución’, y por la facilidad con la que puede introducirse el paralelismo. La seguridad se mejora por la imposibilidad de reprogramación. Adicionalmente, a menos que la aplicación requiera un algoritmo extenso, se ahorra espacio en comparación con la combinación de programa y procesador.”628 ([HNP94], pp. 381-382). Aquí se tiene en forma manifiesta que la abstracción per se no sólo es insuficiente, sino que tampoco necesariamente resulta útil: la alternativa al diseño de circuitos específicos - usar un procesador y adaptarlo a la aplicación mediante programación - equivale a agregar un nivel de abstracción (conjunto de instrucciones, y su ciclo de carga-ejecución) al diseño, pero este nivel adicional no siempre es admisible, particularmente en aplicaciones con requerimientos exigentes de velocidad y seguridad. Para Lee y Messerschmitt, un incremento del nivel de abstracción en el diseño efectuado de forma adecuada requiere la redefinición de las nociones y conceptos tradicionales en ingeniería eléctrica, amén de la revisión de los conceptos referidos a ‘hardware’ y ‘software’ discutida precedentemente. “Una fortaleza tradicional en ingeniería eléctrica ha sido su encare formal al modelado de sistemas. Estructuras matemáticas bien desarrolladas, como transformadas de Laplace y Fourier, ecuaciones diferenciales, procesos estocásticos, y álgebra lineal, han provisto el fundamento para el modelado de circuitos, procesamiento de señales, control realimentado, y la capa física de las comunicaciones. Todas estas áreas, sin embargo, se han tornado el dominio de los expertos técnicos y quedan progresivamente fuera del alcance de los diseñadores629. Para atender las necesidades de los diseñadores mientras se preserva la tradicional fortaleza en el modelado formal, debemos elevar el nivel de abstracción. La noción de ‘señal’ no debería limitarse más a sólo ‘voltaje en el tiempo’, sino que debería ser generalizada para incluir el arribo discreto de mensajes. La noción de ‘estado’ no debería circunscribirse más a las variables en una ecuación diferencial, sino que debería generalizarse hasta incluir el estado de un autómata finito. La noción de ‘sistema’ no debería continuar siendo la de una matriz que define un conjunto de ecuaciones lineales, sino que se debería generalizar hasta incluir un motor computacional completo en el sentido de Turing.”630 ([LM98], p. 81). No obstante la visión de ‘sistemas’ para el diseño electrónico que se promueve en [LM98], no se discute allí cuales son los mecanismos concretos para efectuar el incremento del nivel de abstracción. Al elevar el nivel de abstracción en el diseño, se puede mantener la fortaleza tradicional de la ingeniería eléctrica, que es su encare formal para el modelado de sistemas: la clave consiste en permitir a los diseñadores trabajar en los niveles de abstracción superiores, mientras que 628 Texto traducido del original, en inglés. Ver nota 54, p. 39. 629 Los autores citados designan como ‘expertos técnicos’ a los ingenieros especialistas - usualmente graduados a nivel doctoral (PhD) - que se hallan involucrados en las investigaciones y trabajos altamente técnicos que definen el ‘estado del arte’. Con la denominación de ‘diseñadores’ se refieren a los ingenieros que no caen en la precedente categoría, los cuales usualmente ostentan un grado de ‘bachelor’ (BS) o posiblemente ‘master’ (MSc) y son fundamentalmente quienes diseñan los ‘sistemas’ ([LM98], p. 81). 630 Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 228 - [ 4 ] Evolución Histórica de la Electrónica los expertos técnicos pueden continuar en los niveles de abstracción inferiores631. Así, la cuestión se torna en establecer los métodos mediante los cuales es factible elevar adecuada y disciplinadamente el nivel de abstracción. Tal como se aduce en el presente capítulo, las herramientas informáticas de diseño son indispensables para el diseño electrónico, y la razón fundamental es que proveen el soporte para lidiar con múltiples niveles de abstracción. “El diseño de los ‘chips’ actuales con millones de transistores sería muy difícil de lograr sin herramientas de diseño asistidas por computador. Estas herramientas administran la información evolutiva del diseño, asisten en la coordinación de múltiples diseñadores, automatizan ciertas tareas de optimación, y permiten trabajar al diseñador con niveles de abstracción más altos. Puede argumentarse que la última tarea, pese a ser la más importante, es la más lenta en evolucionar. En el contexto del diseño digital, el encare de Mead - Conway y los lenguajes de diseño de ‘hardware’ (hoy particularmente VHDL y Verilog) constituyen dos mojones claves con los cuales fueron puestos a disponibilidad de los diseñadores nuevos y más altos niveles de abstracción. (...) Asimismo, nuevas cuestiones devinieron fundamentales a causa de las herramientas. Verilog y VHDL, por ejemplo, son lenguajes de programación concurrentes con un modelo de cómputo de eventos discretos632. Un consumidor de herramientas de diseño informado, por tanto, necesita ciertos conocimientos fundamentales de concurrencia y modelado mediante eventos discretos.”633 ([LM98], p. 80). La precedentemente referida ubicuidad de los HDL - de hecho, la de cualquier lenguaje de programación - para el diseño de sistemas digitales, es expresada claramente por Hehner, Norvell y Paige, y reside en la capacidad de permitir descripciones a un nivel de abstracción superior al de puertas lógicas: “El diseño de circuitos puede ser hecho en forma más efectiva describiendo la función que un circuito debería cumplir, que describiendo al circuito que debería cumplir esa función. Un lenguaje de programación es más conveniente para ese propósito que un lenguaje a nivel de puertas lógicas. Parece casi obvio que los circuitos complejos pueden ser diseñados de esta manera más fácil y confiablemente que mediante descripciones a bajo nivel en términos de compuertas.”634 ([HNP94], p. 410). Al respecto, cabe recordar que los HDL (como VHDL, Verilog, SystemC, etc.) permiten descripciones tanto a nivel de puertas lógicas, como también a niveles de abstracción superiores como el nivel funcional o comportamental635. No obstante, al afirmar que el diseño de circuitos puede ser hecho más efectivamente mediante lenguajes de programación (ya sea HLL usuales, o HDL) se estaría asumiendo la existencia de mecanismos para la implementación automática de circuitos a partir de descripciones comportamentales, cuestión resuelta a la fecha sólo para subconjuntos de los HDL y lenguajes de programación referidos636. Pero aún admitiendo su superior efectividad respecto a las descripciones efectuadas al nivel de puertas lógicas, el diseño a nivel funcional mediante HLL o HDL requiere un conocimiento de las limitaciones expresivas de los lenguajes, y cierto conocimiento de los mecanismos intrínsecos de herramientas correspondientes (como los compiladores); no alcanza con meramente dominar la sintaxis de los lenguajes. Adicionalmente, la selección de la abstracción adecuada entre las disponibles en los HDL (y eventualmente, algún HLL) resulta competencia específica 631 Nótese que, en esencia, esto sugiere una combinación de los encares ascendente y descendente de un proceso de diseño (ver sección 2.2.1). 632 El concepto de ‘modelo de cómputo’ se estudia en la sección 5.5. 633 Texto traducido del original, en inglés. Ver nota 54, p. 39. Se mantienen los términos ‘chips’ y ‘hardware’ que figuran en el original, aquí entre comillas simples. 634 Texto traducido del original, en inglés. Ver nota 54, p. 39. Nótese que aquí se sugiere el ‘caso recíproco’ mencionado en la nota 627, p. 226. 635 Ver secciones 4.1.2 y 4.1.3. 636 Proceso habitualmente referido - con cierta laxitud - como síntesis automática de circuitos (sección 5.2.6.1). Diseño de Sistemas Electrónicos Complejos [ 4.4 ] Presentación de la problemática y desafíos del diseño actual de sistemas electrónicos complejos - 229 de los diseñadores que usan estos lenguajes para describir circuitos - ni los lenguajes, ni sus herramientas asociadas poseen capacidad de decisión a ese nivel - lo que sugiere fuertemente que el diseñador debe conocer los conceptos fundamentales subyacentes a cada abstracción. Para el diseño de sistemas electrónicos digitales los HDL constituyen un recurso clave, con cuya consecución fueron puestos a disponibilidad de los diseñadores nuevos y más altos niveles de abstracción que el eléctrico y geométrico, e incluso, que el de puertas lógicas. Y la razón es que en casos de complejidad significativa, es más fácil, confiable y efectivo describir la función que debe cumplir un circuito, que describir al circuito que cumpla esa función637. Por tanto, un vehículo indispensable para alcanzar niveles de abstracción superiores lo constituyen las herramientas informáticas de asistencia al diseño. No obstante, el empleo eficiente de herramientas informáticas para asistir al diseño requiere conocimientos adecuados, no solamente de las metodologías y flujos de diseño pertinentes a los procesos de diseño soportados por las herramientas, sino además de las propias abstracciones y formalismos sobre las cuales se implementa el funcionamiento de las mismas638. Con los HDL, por ejemplo, afloran cuestiones como ‘concurrencia’ y ‘eventos discretos’, asociados a ‘control de código fuente’ y ‘compilación’, motivo por el cual estos conceptos - y otros de diversa índole639 - devienen fundamentales para el diseñador. Consecuentemente, no sólo se requieren determinar las abstracciones adecuadas para cada diseño640 sino que además debe tenerse en cuenta como realizar las referidas abstracciones empleando las herramientas de diseño apropiadas, en forma disciplinada y consciente641. [ 4.4.3 ] SISTEMAS EMBEBIDOS HETEROGÉNEOS Es posible identificar un aspecto clave que contribuye a la complejidad asociada a los sistemas, en torno al cual gira la problemática y desafíos del diseño de sistemas electrónicos actuales: la heterogeneidad. Esta no sólo es una característica de los SoC o MEMS (sistemas ‘a escala microscópica’) sino también de los sistemas designados sistemas embebidos (sistemas ‘a escala macroscópica’). Los sistemas embebidos son sistemas electrónicos con capacidad de cómputo, pero que por estar ‘embebidos’ en otros sistemas a los cuales controlan o aportan funcionalidades, no son percibidos como un computador. Son, sin embargo, omnipresentes en la vida moderna 642: se 637 Es evidentemente más probable que la descripción de un circuito complejo efectuada a nivel funcional mediante un HDL (o un HLL con facilidades de expresión orientadas al diseño electrónico) genere un circuito con el comportamiento deseado, que la misma descripción intentada a nivel arquitectural (estructural; en términos RTL o de puertas lógicas) o físico (a nivel de transistor, eléctrico o geométrico). 638 Recuérdese que cualquier programa informático debe ser descrito en términos formales, aunque no necesariamente su comportamiento constituye o implementa un formalismo. En el ámbito de las herramientas de diseño electrónico un ejemplo lo constituyen los modelos ejecutables destinados a simulación para producir ‘evidencia computacional’ o trazas de comportamientos (ver sección 3.4). 639 Por ejemplo, en el caso de los HDL se presentan limitaciones expresivas si se pretende emplearlos para la síntesis automática eficiente de circuitos, que obligan a restringirse a un subconjunto de dichos lenguajes para efectuar las descripciones para sintetizar. 640 Por ejemplo, al nivel más trivial, determinar que conviene tratar como ‘software’, que como ‘hardware’. 641 Cuales herramientas son necesarias, como se comunican o interoperan, como se asegura que no incorporan errores al proceso por mala utilización, etc. 642 La vida moderna en sociedades de consumo tecnificadas. Vergonzosamente, a la fecha la mayor parte de la población mundial aún desconoce el teléfono, no dispone de energía eléctrica, ni agua potable por cañería. Ingeniería Electrónica – Universidad Católica del Uruguay 230 - [ 4 ] Evolución Histórica de la Electrónica les halla en los actuales equipos de audio, fotografía, y video; equipos de telefonía celular y fija; asistentes digitales personales643; electrodomésticos programables; equipamiento médico, industrial, científico y militar; equipamiento de automóviles, trenes, barcos, aviones y vehículos aeroespaciales; etc. La función esencial de los sistemas embebidos es la interacción con el medio ambiente y sus procesos físicos que se desarrollan en el tiempo. Así, a diferencia de los sistemas de cómputo convencionales, los sistemas embebidos necesariamente han de tener una noción de las variables físicas, particularmente el tiempo físico. Asimismo, en virtud de sus aplicaciones, los sistemas embebidos son limitados en su tamaño físico, consumo de potencia, y capacidad de memoria, y por tanto presentan una arquitectura especializada para cada aplicación. Su arquitectura ‘hardware’ debe ser conformada por dispositivos de índole diversa para adaptarles a la aplicación, por ejemplo: SoC, MEMS, ASIC y/o ASIP 644 para funciones críticas y/o específicas; FPGA y/o DSP para procesamiento de señales; microcontroladores para control del sistema e interfases de usuario; conversores AD/DA, y un conjunto de entradas y salidas digitales para interactuar con el mundo físico; etc. La correspondiente arquitectura ‘software’ resulta una mezcla de programación orientada al control, programación orientada al flujo de datos, y programación para interfaz y comando de dispositivos periféricos para administrar los diferentes dispositivos y tareas del sistema. Consecuentemente, los sistemas embebidos son esencialmente heterogeneidad se manifiesta en las siguientes dimensiones: heterogéneos, y esa 1. los sistemas embebidos requieren dispositivos electrónicos físicos específicos a cada aplicación, así como de programación de complejidad significativa a ejecutarse en los dispositivos programables; en el contexto de aplicaciones diversas y específicas bajo severas restricciones de coste645, esta heterogeneidad ‘hardware - software’ supera largamente a la relativa a computadores y programas convencionales, y se manifiesta al momento de la integración del sistema 2. el ‘hardware’ embebido es inherentemente heterogéneo, en virtud de la combinación de múltiples dispositivos requerida por la variedad y especificidad de las aplicaciones; entre estos se cuentan amplificadores, reguladores, filtros, conversores A/D y D/A, microcontroladores, DSP, memorias, ASIC, ASIP, FPGA, y eventuales SoC y MEMS que incorporarían elementos ópticos y mecánicos a los precedentes elementos y dispositivos electrónicos 3. el ‘software’ embebido es correspondientemente heterogéneo, en función de la diversidad de estilos de programación que requieren estos sistemas y su arquitectura ‘hardware’; en un caso típico de sistema embebido, como el computador de abordo de un automóvil, se ejecuta una mezcla de procesos orientados al control, bajo la supervisión de un núcleo de tiempo real multitarea (que corren, por ejemplo, sobre uno o varios microcontroladores y/o ASIP) así como tareas orientadas al procesamiento de señales digitales en tiempo real (por ejemplo, trabajando cooperativamente sobre uno o varios DSP, en comunicación con aceleradores en FPGA y/o ASIC) motivo por el cual la programación de los referidos subsistemas necesariamente difiere en forma radical Así, no sólo los sistemas embebidos son heterogéneos por integrar componentes ‘hardware’ y ‘software’ complejos y específicos, sino que tanto la arquitectura ‘hardware’ como la arquitectura 643 Las modernas agendas electrónicas PDA, ‘Personal Digital Assistants’. 644 ‘Application - Specific Instruction Processors’: procesadores integrados específicos a la aplicación. Constituyen un caso particular de ASIC, donde el circuito integrado diseñado específicamente para la aplicación es un un procesador que interpreta y ejecuta instrucciones también específicas a la aplicación: un ‘intérprete de silicio’ específico a la aplicación. 645 En el sentido amplio del término: restricciones al tamaño físico, al tamaño de la memoria, al consumo de potencia, al costo económico, etc. Diseño de Sistemas Electrónicos Complejos [ 4.4 ] Presentación de la problemática y desafíos del diseño actual de sistemas electrónicos complejos - 231 ‘software’ son heterogéneas en sí mismas, requiriendo estilos de diseño radicalmente diferentes para cada uno de sus módulos. Un factor adicional a la complejidad es la heterogeneidad. Los sistemas embebidos, que son esencialmente heterogéneos, representan así el mayor desafío para el diseño electrónico de actualidad. Una evidencia de esta situación es la diversidad de modelos y lenguajes empleados para la descripción de los sistemas embebidos. La heterogeneidad de los sistemas embebidos actuales no sólo está dada por la mezcla de dispositivos electrónicos físicos con la programación que compete a los de tipo programable (es decir, la integración de componentes ‘hardware’ y ‘software’ en un mismo sistema) sino también por la heterogeneidad de los propios componentes ‘hardware’ del sistema (como IC analógicos, digitales, o mixtos, y sus sub-variedades, más la diversidad de dispositivos programables, y eventuales partes mecánicas) así como por la heterogeneidad de estilos de programación requerida para los componentes ‘software’ (como orientación a control, procesamiento de señales, interfases de usuario, etc.) ([CKL95], pp. 1-2). [ 4.4.4 ] SISTEMAS ELECTRÓNICOS ANALÓGICOS Hasta aquí poco se ha mencionado respecto al diseño electrónico analógico. Y el motivo fundamental es que, actualmente, el cuello de botella se halla en los niveles de mayor abstracción - al nivel de sistema - mientras que el diseño analógico concentra sus esfuerzos a niveles eléctrico y topográfico, es decir, al nivel físico, de mínima abstracción (ver sección 5.2, figuras 5.5 y 5.3). En otras palabras: el diseño analógico es fundamentalmente orientado a componentes, más no a sistemas, motivo por el cual este documento no dedica atención especial al diseño analógico. No obstante, los componentes analógicos son partes constitutivas indispensables de los sistemas electrónicos, y como tales, deben ser contemplados en el contexto del sistema. Asimismo, el advenimiento de los SoC y MEMS ineluctablemente requiere considerar ciertos aspectos de los referidos sistemas a nivel físico, dominio por excelencia del diseño analógico. Por tanto, es conveniente precisar la problemática y desafíos planteados por el diseño analógico desde la perspectiva del diseño de sistemas electrónicos complejos. Al respecto, cabe notar que los problemas de SoC y MEMS a nivel de sistema son, precisamente, problemas de sistemas, por lo cual se aplican todas las observaciones concernientes a sistemas efectuadas en el presente documento, por más que estas sean hechas en el contexto de sistemas mayormente digitales y macroscópicos. Así, las particularidades del nivel físico (como posibles efectos cuánticos y limitaciones atómicas de la materia, conforme se reducen las dimensiones de los IC) tienden a ser incorporadas en las herramientas de diseño, al igual que actualmente sucede con los efectos topográficos y elementos parásitos en un IC. En particular, los simuladores de circuitos analógicos son unas de las herramientas que deben considerar los efectos físicos a escala microscópica con creciente precisión, en virtud de su incidencia conforme se reducen las dimensiones de los transistores, se aumentan las frecuencias de trabajo646, y disminuyen los voltajes de alimentación debido a los requerimientos de consumo cada vez más exigentes. Si bien a la fecha aún alcanza con herramientas del carácter de las descritas en la sección 4.1.2 para la mayoría de los diseños analógicos, en la sección 4.2 se advierte que se aproxima el momento en el cual la referida incidencia de la escala atómica de la materia en la fabricación de los IC obligará a considerar los efectos cuánticos, y efectos del encapsulado, tanto en el diseño 646 Se recuerda que al nivel de transistor (niveles eléctrico y topográfico) un diseño digital es forzosamente un circuito analógico, y como tal, la ‘frecuencia de operación’ es un parámetro relevante en el dominio analógico. Ingeniería Electrónica – Universidad Católica del Uruguay 232 - [ 4 ] Evolución Histórica de la Electrónica analógico como también en el digital. Esto, sumando al advenimiento de los SoC o MEMS, requerirá una convergencia entre las áreas digital y analógica superior a la obtenida actualmente. Al respecto, ya existen iniciativas de extensiones a los HDL para la descripción de circuitos analógicos (como por ejemplo, VHDL-AMS 647 para el lenguaje VHDL) que buscan elevar el nivel de abstracción de las descripciones de componentes analógicos, con el propósito de obtener mayor eficiencia en las simulaciones para incorporarles en simulaciones a nivel de sistema, sin una penalización significativa en eficiencia y precisión. Aún así, se requiere mantener el nexo con los simuladores de mayor precisión a nivel físico. Consecuentemente, desde una perspectiva de sistemas, el mayor desafío del diseño electrónico analógico se presenta en el desarrollo de las herramientas de diseño analógico, y la integración de estas en el flujo de diseño de sistemas mixtos digitales - analógicos complejos. En el presente documento no se exploran en forma específica aspectos relativos al diseño electrónico analógico, por diversos motivos. En primer lugar, el objetivo principal del trabajo es el diseño de sistemas, lo que implica fundamentalmente a niveles de abstracción muy superiores al eléctrico y topográfico, que es donde se concentra el diseño analógico tradicional. En otras palabras, el diseño analógico típico no se orienta a sistemas, sino a componentes; la excepción la constituyen los SoC y MEMS. En segundo lugar, los problemas de sistemas son aplicables a los SoC y MEMS, por lo cual se puede reaprovechar la consideración de la problemática de sistemas a alto nivel. Al igual que las particularidades del nivel físico actuales, como las reactancias parásitas, las futuras consideraciones de los efectos cuánticos y limitaciones provenientes de la escala atómica de la materia serán reflejados en las herramientas de diseño y simulación específicas al nivel físico; son las herramientas de diseño analógico, por tanto, las que presentan los desafíos de diseño. En tercer lugar, una cabal comprensión de las metodologías, flujos y herramientas de diseño electrónico orientadas al diseño de sistemas (mayormente digitales) puede capitalizarse para comprender las respectivas contrapartes orientadas al diseño analógico, facilitar la interoperación de herramientas de ambos dominios, e incluso abordar su eventual fusión. De hecho, ya se cuenta con extensiones a los HDL para la descripción de circuitos analógicos, como por ejemplo, VHDL-AMS648 para el lenguaje VHDL. Esta extensión permite la simulación mixta analógica-digital, con el beneficio de la aplicación de las técnicas de abstracción para la simulación de sistemas al diseño analógico; esto mejora la eficiencia de las simulaciones analógicas en el contexto de reducción del tamaño de los transistores, reducción en el consumo de potencia, aumento de la frecuencia de operación649, e incidencia creciente de efectos parásitos y de escala que emergen como consideraciones adicionales a la simulación eléctrica tradicional650. Y en cuarto lugar, porque el problema subyacente - aunque quizás el más significativo - en el diseño de sistemas consiste en la integración de metodologías, flujos y herramientas diversos, en cuyo caso las relativas al diseño electrónico analógico, digital, y eventualmente al mecánico, químico, etc. se presentan en igualdad de condiciones desde la perspectiva del ‘sistema’ (sección 5.2). 647 AMS, por ‘Analog and Mixed-Signal’ en inglés. 648 (AMS, por ‘Analog and Mixed-Signal’ en inglés) 649 Ver nota 646, p. 231. 650 Ver sección 5.2.6.1.10, particularmente los análisis descritos a partir de las páginas 274 y 277. Diseño de Sistemas Electrónicos Complejos [ 4.4 ] Presentación de la problemática y desafíos del diseño actual de sistemas electrónicos complejos - 233 [ 4.4.5 ] ASPECTOS EXTERNOS Finalmente, cabe notar que a las precedentes características intrínsecas al diseño electrónico se agregan, a fortiori, fuentes de complejidad externas: los requerimientos que la sociedad actual demanda de los sistemas electrónicos, y las expectativas generadas en virtud de su rápida evolución histórica. Estos requerimientos y expectativas crecen en forma vertiginosa y fomentan la dependencia social en la tecnología, particularmente la electrónica al ser cuasi omnipresente. Esta situación ejerce una descomunal presión sobre los diseñadores, de quienes se esperan productos libres de error, que sean tolerantes a fallas, económicos, reutilizables o reconfigurables, estén extensamente documentados y a la vez sean fáciles de usar 651, y que además sean producidos en el menor plazo posible para evitar la obsolescencia y maximizar la utilidad que puedan generar. Desafortunadamente, esta fuente de complejidad es inevitable, y - en virtud de la voracidad que impone la cultura mercantilista occidental actual probablemente sea la responsable de la mayor parte de los errores de diseño. La dependencia en la tecnología electrónica que hoy evidencian las sociedades (al menos, las de los países que se proclaman avanzados) constituye un factor adicional de complejidad para el diseño electrónico. Como consecuencia de la voracidad mercantilista occidental actual, esta fuente de complejidad - que con eufemismo se presenta como el problema del ‘tiempo de comercialización’652 -es inevitable, y probablemente la responsable de la comisión de gran parte de los errores de diseño electrónico contemporáneos. [ 4.5 ] RESUMEN La evolución histórica de la electrónica, a partir de los circuitos integrados de alta escala de integración, ha sido concurrente con el desarrollo de la informática, como consecuencia de la sinergia establecida entre ambas disciplinas a partir de los ‘70 y ‘80. Entre los productos de la microelectrónica de fines de la década de 1970, la consecución de microprocesadores permitió diseñar plataformas de cómputo más potentes que las de las previas generaciones. En la década siguiente, sobre estas plataformas más capaces la informática pudo extender y perfeccionar sus propias herramientas de desarrollo, y con ellas, obtener mejores y más potentes abstracciones de cómputo y herramientas de diseño asistidas por computador. En particular, se produjo un significativo desarrollo de herramientas informáticas para asistir al diseño electrónico, con las cuales la electrónica abordó el diseño e implementación de nuevas y más potentes generaciones de procesadores y computadores, cerrando así un ciclo de soporte mutuo entre ambas disciplinas, que promueve su desarrollo sinérgico, concurrente. Desde la perspectiva del diseño electrónico, esta evolución puede resumirse en ciertos hitos acaecidos a partir de la década del ‘70. Hasta la década de 1970, tanto la fabricación como el diseño de IC estaba confinado a las fábricas de semiconductores (‘foundries’). Esta limitación derivaba del hecho que el diseño era desarrollado a niveles eléctrico y topográfico, contándose entonces con una única herramienta informática para asistir al diseño de los IC, el simulador SPICE. En este estadio, el objetivo principal era la producción de IC genéricos (‘componentes’) que los ingenieros fuera del ámbito de las fábricas podían ensamblar sobre PCB para conformar sistemas electrónicos específicos a la aplicación. No obstante, a fines del ‘70 fueron implementados los primeros 651 La calidad, completitud y eficacia de la documentación es extremadamente difícil de compatibilizar: ante la creciente complejidad de los sistemas - requerida directa o indirectamente por los usuarios - la documentación técnica necesariamente se incrementa - y lo hace en gran volumen - pero al mismo tiempo esos usuarios son cada vez más renuentes a leer manuales e instrucciones de seguridad ‘complicados’ y ‘extensos’. 652 ‘Time - to - market’ en la literatura angloparlante. Ingeniería Electrónica – Universidad Católica del Uruguay 234 - [ 4 ] Evolución Histórica de la Electrónica microcomputadores, proporcionando para la década siguiente una plataforma de cómputo alternativa a los grandes computadores centrales (‘mainframes’) existentes a la fecha. En los ‘80 se logra la independización de los procesos de diseño y manufactura, con lo cual el diseño de IC puede pasar a desarrollarse por ingenieros trabajando en aplicaciones fuera de las fábricas. Los microcomputadores dieron paso a las estaciones de trabajo (‘workstations’) con lo cual quedaron a disposición las herramientas necesarias para diseñar circuitos integrados específicos para las aplicaciones (ASIC). Surgieron así cuatro modalidades de diseño para estos ASIC: diseños totalmente a medida (que requieren un diseño completo - hasta el nivel físico - y un proceso de fabricación completo del IC); diseños en base a celdas estándar (se diseña a nivel superior al físico, en base a bibliotecas de celdas, pero aún requiriendo un proceso de fabricación completo); diseños en base a matrices de puertas predifundidas (se diseña a nivel superior al físico, en base a bibliotecas de celdas, pero sobre una estructura regular de puertas de forma que no se requieren la totalidad de las etapas de fabricación del IC); y diseños sobre dispositivos reprogramables, FPGA y CPLD (que no requieren ninguna etapa de fabricación; el diseño se efectúa sobre IC verificados a nivel de componentes internos desde la fábrica, estableciendo la interconexión de los componentes internos mediante una instancia de programación, que puede efectuarse en el sitio y a demanda). En esta década del ‘80 se constata que las capacidades de fabricación de IC comienzan a superar a las capacidades de diseño, situación que se designa brecha tecnológica. Con objeto de sobreponerse a estas limitaciones de diseño, se intenta elevar el nivel de abstracción desde el nivel físico (niveles eléctrico y topográfico) al nivel arquitectural (puertas lógicas, y RTL) y posteriormente, al nivel funcional (comportamiento del circuito). Al respecto, una herramienta clave puesta a disposición de los diseñadores a fines de la década fueron los HDL (fundamentalmente VHDL y Verilog) cuyo desarrollo en la década siguiente posibilitó simulaciones (mixtas, y multinivel) y síntesis automática de circuitos653. En los ‘90, sobre los niveles físico y arquitectural de fines de la década anterior, se consolida definitivamente el nivel funcional, y se difunde la implantación de los HDL en los flujos de diseño. Con los HDL, se diseñan ‘macro’ bloques funcionales, como microprocesadores de uso general (CPU, ‘Central Processing Unit’) procesadores de señales digitales (DSP, ‘Digital-Signal Processors’) y microcontroladores (MCU, ‘Micro-Controller Units’). No obstante, este tipo de dispositivos requiere programación, y por tanto, los HDL no son en general suficientes para dar una solución integral a los problemas planteados por los sistemas (en PCB) que incorporan bloques programables. Se requiere el uso conjunto de HDL con lenguajes de programación de bajo y alto nivel (lenguajes ensambladores específicos a cada dispositivo programable, y/o lenguajes de uso general como C, C++, Ada, Java, etc. con sus respectivos compiladores) lo que genera la necesidad de interfases entre lenguajes, interoperabilidad entre herramientas (por ejemplo, para simulación) etc654. Por otro lado, aunque las FPGA pasan a predominar sobre las demás modalidades de diseño de ASIC por razones de coste, surgen nuevos tipos de IC en virtud del incesante incremento en la capacidad de integración de componentes heterogéneos en las pastillas de silicio. La posibilidad de incorporar a los IC elementos mecánicos (e incluso químicos, y en algún futuro no lejano, biológicos) permite la consecución de sistemas completos en una pastilla (genéricamente designados SoC, aunque se distinguen específicamente tipos como microsistemas electromecánicos, MEMS, o múltiples módulos en un solo encapsulado, MCM). El surgimiento de los SoC replica a nivel IC el problema planteado por los sistemas programables en PCB (la necesidad de integrar, al menos, el diseño de los dispositivos o 653 La síntesis automática requiere descripciones efectuadas en términos de subconjuntos específicos de los HDL, es decir, no se puede admitir el empleo de la máxima capacidad expresiva de los lenguajes (por ejemplo, la recursión) si se pretende una descripción ‘sintetizable’. 654 Esta programación, referida como programación embebida, constituye un serio problema - en el contexto más general de diseño de sistemas embebidos - al que se le dedica particular atención sobre finales del siglo XX, principios del XXI y hasta la fecha. En particular, la interoperabilidad de HLL y HDL es una cuestión clave para el codiseño, cosimulación y codepuración de sistemas, conceptos que se analizan con mayor detalle en el capítulo 5. Diseño de Sistemas Electrónicos Complejos [ 4.5 ] Resumen - 235 sistemas programables con el diseño de su propia programación); y la integración en red de los sistemas electrónicos que se acelera en esta década obliga a plantearse la generalización del diseño electrónico hacia el diseño de sistemas. La necesidad de generalización del diseño electrónico se manifiestan particularmente en la evolución de la fabricación de semiconductores, y de las herramientas informáticas de diseño orientadas al diseño electrónico (herramientas CAD para diseño electrónico). • Fabricación de semiconductores: Impulsada por la incesante evolución tecnológica, la industria de semiconductores ha sido históricamente capaz de proveer dispositivos que cada tres años cuadruplican su cantidad de funciones, manteniendo el costo del mm 2 de silicio prácticamente constante. Esta tendencia, anunciada en 1965 por Moore (y por tanto referida como ‘Ley de Moore’ en la literatura655) se aceleró sobre fines del siglo XX y principios del siglo XXI. De continuarse esta tendencia, circa 2015 se estarían alcanzando los límites de las actuales técnicas de fabricación CMOS planares. Así, ya en el año 1999 la industria de semiconductores ha considerado un desafío demasiado exigente el seguir la ‘Ley de Moore’ exclusivamente por innovación tecnológica, y ha planteado tanto la necesidad de afrontar innovaciones en el área de diseño de sistemas y circuitos electrónicos, como la necesidad de integrar diversas técnicas de fabricación en una misma pastilla de circuito integrado, junto con las propias técnicas de encapsulado. El impulso al diseño electrónico promovido desde la industria de semiconductores responde al significativo aumento de la complejidad de los diseños, en tres dimensiones relacionadas: la mayor complejidad de la pastilla de silicio, que deriva de la escala de integración y el número de componentes posibles de integrar; la complejidad inherente a los propios sistemas que es factible implantar en un sólo IC, que derivan de su heterogeneidad de componentes y aplicaciones; y la mayor complejidad de los respectivos procesos de diseño. Así, aunque las posibilidades de fabricación han sido cada vez mayores, la brecha tecnológica detectada en los ‘80 continua creciendo pese a los esfuerzos invertidos específicamente en metodologías y técnicas de diseño656. • Herramientas informáticas para diseño electrónico: Inicialmente, las herramientas CAD para diseño electrónico surgieron en forma independiente para cada tarea dentro del proceso de diseño (como SPICE para asistir al diseño de IC analógicos, en 1972) por lo que el intercambio de información entre herramientas requirió la elaboración de interfases ad hoc para cada par de ellas (por ejemplo, entre SPICE y cada editor de máscaras, o cada editor de captura de esquemáticos). La solución a este inconveniente fueron los entornos CAD integrados, los cuales incorporan varias herramientas con capacidad de acceso a la base de datos del diseño, y además presentan al usuario una interfaz común a ese conjunto de herramientas que integran al entorno de desarrollo. No obstante, los esquemas de este tipo experimentaron las limitaciones inherentes a su carácter ‘cerrado’ o ‘rígido’, por lo cual el paso siguiente en su evolución - a fines de los ‘80 - consistió en dotar la flexibilidad necesaria a esos entornos CAD para hacerlos extensibles, capaces de incorporar nuevas herramientas, y efectuar la gestión de los diferentes flujos de diseño posibles. Aún así, estos entornos CAD abiertos y flexibles resultaron a la postre insuficientes ante las demandas del intercambio de información entre herramientas. Se llega así al estadio en la evolución de las herramientas CAD en el cual se definen estándares para el intercambio de información, con lo cual herramientas independientes y entornos CAD se aseguran la capacidad de transferencia de información, mitigando así el posible impacto provocado por la obsolescencia de las herramientas, facilitando su evolución, y permitiendo al diseñador escoger las herramientas más adecuadas a cada caso. No obstante, este estadio de las herramientas CAD657 no garantiza más que el intercambio de datos ‘estático’: los estándares 655 Y considerada por algunos como una ‘profecía autocumplida’; la tendencia, observada por Moore hasta la fecha de su anuncio, fue posteriormente adoptada como ‘hoja de ruta’ por la industria de semiconductores. 656 Las que, dado sus impulsores, fueron inicialmente en su mayoría de tipo ascendente (‘bottom - up’). 657 Se recuerda que se trata del estadio de su estructura de intercambio mutuo de información. Ingeniería Electrónica – Universidad Católica del Uruguay 236 - [ 4 ] Evolución Histórica de la Electrónica sólo aseguran la capacidad de intercambiar los datos de entrada y/o salida, más no la interoperabilidad de las herramientas, es decir, la capacidad de operar en forma concurrente e intercambiar datos durante sus procesos de ejecución. Esa capacidad de operar en forma concurrente es imprescindible, por ejemplo, en el caso de simulaciones de sistemas programables en las que se busca que la ejecución de los programas sea efectuada sobre modelos ejecutables de los dispositivos que conformarán al sistema a desarrollar (lo cual requiere que programas descritos en algún lenguaje como C o Java ‘interactúen’ con modelos de procesadores realizados en VHDL o SystemC durante la simulación)658. En esencia, la necesidad de generalización del diseño electrónico responde, al igual que le sucede a la ciencia contemporánea659, a problemas inherentes a sistemas. Y en este contexto, emerge como una de las principales dificultades el manejo de la complejidad asociada a los sistemas, dadas nuestras limitaciones cognitivas660. Así, el aspecto crítico para el desarrollo actual de sistemas electrónicos consiste en la administración de la complejidad del diseño. Una herramienta importante para lidiar con la complejidad es la abstracción661. Y pese al detrimento en el desempeño o eficiencia en los que pueda incurrirse como consecuencia de efectuar los diseños a un nivel de abstracción elevado, tal penalización resulta perfectamente aceptable si se estima que el diseño efectuado a niveles de abstracción demasiado bajos probablemente resulte pobre, tardío, o directamente erróneo por no poder ser conceptualizado correctamente. No obstante, la abstracción per se es, en casos, insuficiente. Por ejemplo; en electrónica, lo que usualmente se designa ‘hardware’ y ‘software’ son cuestiones esencialmente equivalentes cuando se les considera desde ciertos niveles de abstracción. De hecho, ‘hardware’ y ‘software’ se han fusionado completamente desde el punto de vista sintáctico: el diseño de sistemas digitales es mayormente una tarea de programación, y al nivel práctico, el diseño de ‘hardware’ digital - en el sentido moderno de emplear herramientas de diseño asistidas por computador, y lenguajes de descripción de ‘hardware’ - requiere un conjunto de habilidades de programación notablemente similar al diseño de ‘software’. Recíprocamente, el diseño de ‘software’ está incorporando cada vez más conceptos y metodologías de diseño al estilo ‘hardware’, como ‘reutilización’ de ‘componentes’, ‘concurrencia’, y ‘comunicación’ dentro de un sistema de ‘software’. Por tanto, la crecientemente inextricable relación entre lo que habitualmente se designa ‘hardware’ y ‘software’ exige refinar tanto los conceptos subyacentes a esa designación662 como la aplicación de esos conceptos en cada instancia de diseño. Así, la abstracción por sí sola no es suficiente para lidiar eficientemente con la complejidad, sino que es preciso determinar y aplicar las abstracciones adecuadas a cada caso. Al elevar el nivel de abstracción en el diseño, se puede mantener la fortaleza tradicional de la ingeniería eléctrica, que es su encare formal para el modelado de sistemas. La clave consiste en permitir a los diseñadores trabajar en los niveles de abstracción superiores, mientras que los expertos técnicos pueden continuar en los niveles de abstracción inferiores 663. La cuestión es entonces establecer los métodos mediante los cuales es factible elevar adecuada y disciplinadamente el nivel de abstracción. Y, en este aspecto, el papel de las herramientas informáticas de diseño resulta crucial, puesto que constituyen un vehículo indispensable para 658 La simulación concurrente o cosimulación del ‘software’ y ‘hardware’ de un sistema, así como los conceptos de codiseño y codepuración se abordan en la sección 5.6. 659 Ver capítulo 1, particularmente la sección 1.3.2. 660 Ver capítulo 1, particularmente la sección 1.4. 661 Ver capítulo 1, particularmente la sección 1.1.1. 662 Puede verse que la designación ‘hardware’ o ‘software’ responde, en esencia, al grado de concurrencia o secuencialidad en una aplicación. 663 En esencia, esto resulta en una combinación de los encares ascendente y descendente de un proceso de diseño (ver sección 2.2.1). Diseño de Sistemas Electrónicos Complejos [ 4.5 ] Resumen - 237 transitar entre diferentes niveles de abstracción (dado el volumen de datos implícito) y son idóneas para la implementación efectiva de métodos formales664. No obstante, el empleo eficiente de herramientas informáticas para asistir al diseño requiere conocimientos adecuados, no solamente de las metodologías y flujos de diseño aplicables a los procesos de diseño que buscan asistir, sino además de las propias abstracciones y formalismos sobre las cuales se implementa el funcionamiento de las herramientas 665. Con los HDL, por ejemplo, afloran cuestiones como ‘concurrencia’ y ‘eventos discretos’, asociados a ‘control de código fuente’ y ‘compilación’, motivo por el cual estos conceptos - y otros de similar índole devienen fundamentales para el diseñador. Consecuentemente, no sólo se requieren determinar las abstracciones adecuadas para cada diseño (por ejemplo, que conviene tratar como ‘software’, que como ‘hardware’, y éste si es eléctrico, mecánico, etc.) sino que además debe tenerse en cuenta como realizar las referidas abstracciones empleando las herramientas de diseño adecuadas, en forma adecuada (cuales herramientas son necesarias, como se comunican o interoperan, como se asegura que no incorporan errores al proceso por mala utilización, etc). Así, la inextricable conexión entre ‘software’ y ‘hardware’ no sólo se refiere a las partes que conformarán el producto de diseño, sino que además alcanza a las propias herramientas que se emplean (el ‘software’ que asiste al desarrollo del sistema). Un factor adicional a la complejidad del diseño electrónico de actualidad lo constituye la heterogeneidad, característica que no sólo es inherente a los SoC o MEMS (sistemas ‘a escala microscópica’) sino también a los sistemas designados sistemas embebidos (sistemas ‘a escala macroscópica’). Los sistemas embebidos son sistemas electrónicos con capacidad de cómputo, pero que por estar ‘embebidos’ en otros sistemas a los cuales controlan o aportan funcionalidades, no son percibidos como un computador. Son, sin embargo, omnipresentes en la vida moderna 666: se les halla en los actuales equipos de audio, fotografía, y video; equipos de telefonía celular y fija; asistentes digitales personales667; electrodomésticos programables; equipamiento médico, industrial, científico y militar; equipamiento de automóviles, trenes, barcos, aviones y vehículos aeroespaciales; etc. La función esencial de los sistemas embebidos es la interacción con el medio ambiente y sus procesos físicos que se desarrollan en el tiempo. Así, a diferencia de los sistemas de cómputo convencionales, los sistemas embebidos necesariamente han de tener una noción de las variables físicas, particularmente el tiempo físico. En virtud de sus aplicaciones, los sistemas embebidos son limitados en su tamaño físico, consumo de potencia, y capacidad de memoria, y por tanto presentan una arquitectura especializada para cada aplicación. Su arquitectura ‘hardware’ debe ser conformada por dispositivos de índole diversa para adaptarles a la aplicación, por ejemplo: SoC, MEMS, ASIC y/o ASIP 668 para funciones críticas y/o específicas; FPGA y/o DSP para procesamiento de señales; microcontroladores para control del sistema e interfases de usuario; conversores AD/DA, y un conjunto de entradas y salidas digitales para interactuar con el mundo físico; etc. La correspondiente 664 Si bien el autómata de Turing es una entelequia ideal, aún su realización - el computador - es un intérprete de formalismos limitados (ver sección 3.3.6.1) que - a tiempo infinito - . 665 Cualquier programa informático debe ser descrito en términos formales, aunque no necesariamente su comportamiento constituye o implementa un formalismo (su dominio de implementación y su dominio de aplicación difieren; ver sección 3.2.2). Ejemplos de tales programas en el ámbito de las herramientas de diseño electrónico lo constituyen los modelos ejecutables destinados a simulación para producir ‘evidencia computacional’ o trazas de comportamientos (ver sección 3.4). 666 La vida moderna en sociedades de consumo tecnificadas. Vergonzosamente, a la fecha la mayor parte de la población mundial aún desconoce el teléfono, no dispone de energía eléctrica, ni agua potable por cañería. 667 Las modernas agendas electrónicas PDA, ‘Personal Digital Assistants’. 668 ‘Application - Specific Instruction Processors’: procesadores integrados específicos a la aplicación. Constituyen un caso particular de ASIC, donde el circuito integrado diseñado específicamente para la aplicación es un un procesador que interpreta y ejecuta instrucciones también específicas a la aplicación: un ‘intérprete de silicio’ específico a la aplicación. Ingeniería Electrónica – Universidad Católica del Uruguay 238 - [ 4 ] Evolución Histórica de la Electrónica arquitectura ‘software’ resulta una mezcla de programación orientada al control, programación orientada al flujo de datos, y programación para interfaz y comando de dispositivos periféricos para administrar los diferentes dispositivos y tareas del sistema. La heterogeneidad característica de los sistemas embebidos actuales no sólo se manifiesta por la mezcla de dispositivos electrónicos físicos con la programación que compete a los de tipo programables (es decir, integración de ‘hardware’ y ‘software’ en el sistema) sino también por la heterogeneidad de los propios componentes ‘hardware’ del sistema (como IC analógicos, digitales, o mixtos, y sus sub-variedades, más la diversidad de dispositivos programables) así como por la heterogeneidad de estilos de programación requerida para los componentes ‘software’ (como orientación a control, procesamiento de señales, interfases de usuario, etc.) ([CKL95], pp. 1-2). Una evidencia de esta situación es la diversidad de modelos y lenguajes empleados para la descripción de los sistemas embebidos. En el contexto de sistemas embebidos, el diseño analógico no ha sido referido específicamente. Prima facie, esto obedece a que el diseño analógico es fundamentalmente orientado a componentes, y no a sistemas. Sin embargo, los SoC y MEMS son sistemas diseñados a nivel físico, dominio del diseño analógico por excelencia. Y de todas maneras, en cuanto componentes, los dispositivos analógicos forman parte de los sistemas (particularmente, los embebidos) por lo cual es necesaria su consideración desde esta perspectiva. No obstante, los problemas de SoC y MEMS a nivel de sistema son, precisamente, problemas de sistemas, por lo cual se aplican todas las observaciones concernientes a sistemas por más que estas sean efectuadas en el contexto de sistemas mayormente digitales y macroscópicos. Asimismo, las particularidades del nivel físico (como posibles efectos cuánticos y limitaciones atómicas de la materia, conforme se reducen las dimensiones de los IC) tienden a ser incorporadas a las herramientas de diseño analógico, al igual que actualmente sucede con los efectos topográficos y elementos parásitos en un IC. Son así las herramientas de diseño analógico las que presentan el desafío de diseño. En este contexto, el problema subyacente - aunque quizás el más significativo - en el diseño de sistemas embebidos consiste en la integración de metodologías, flujos y herramientas de diseño tan heterogéneos como los subsistemas que componen al sistema, incluyendo a los subsistemas o componentes analógicos. Aún así, la fuente de complejidad más agobiante e intratable para el diseño de sistemas electrónicos es la dependencia social en la tecnología electrónica (al menos, la que hoy evidencian las sociedades de los países que se proclaman avanzados). Como consecuencia de la voracidad mercantilista occidental actual, esta fuente de complejidad669 es - además de inevitable - la probablemente responsable de la comisión de gran parte de los errores de diseño electrónico actual. 669 Fuente de complejidad cuya manifestación, eufemista, es el problema del tiempo de comercialización (‘Time - to - market’) incansablemente reiterado en la literatura, y no sólo la referente al diseño electrónico. Diseño de Sistemas Electrónicos Complejos [5] DISEÑO DE SISTEMAS ELECTRÓNICOS COMPLEJOS [ 5.1 ] INTRODUCCIÓN Como se infiere de su título, en este capítulo se aborda el tema central del presente documento: el diseño de sistemas electrónicos complejos de actualidad. Aquí, los contenidos de los capítulos 1, 2, y 3, son revisados en términos más específicos correspondientes a los procesos de diseño en ingeniería electrónica. Esta revisión se efectúa en el contexto establecido en el capítulo 4, el cual confiere una sinopsis del desarrollo electrónico desde la consecución del IC hasta fines del siglo XX. Así, el presente capítulo examina los procesos de diseño electrónico desde fines del siglo XX a la fecha, desde un punto de vista filosófico centrado en los sistemas y la complejidad asociada a estos. Siguiendo con el propósito de presentar a nivel de grado en ingeniería eléctrica el panorama de diseño electrónico actual, al inicio de este capítulo se propone un esquema (Fig. 5.3) que permite comprender la estructura de los diferentes encares que actualmente se emplean para el diseño de sistemas electrónicos complejos. Este esquema elabora sobre las ideas presentadas en la sección 2.1.1.4 - la ‘celda de diseño’ (Fig. 2.4) y su ‘expansión fractálica’ en el proceso de diseño completo (Fig. 2.5) - y en consecuencia presenta los niveles de abstracción más importantes por los que transita un proceso de diseño electrónico completo de actualidad 670. A este esquema inicial - que continua ostentando un carácter general y abstracto, pese a su restricción al diseño electrónico - siguen posteriores precisiones que buscan conectarle con las metodologías y flujos de diseño de diseño específicos que se aplican tanto en academia como en industria (particularmente, las secciones 5.3 y 5.6). Naturalmente, en virtud del carácter abierto del tema en cuestión, aún se debe mantener en estas presentaciones un nivel de abstracción tal que permite sintetizar el panorama de diseño (en el sentido de resumir) y esto, en sintonía con el carácter de guía al tema que se pretende confeccionar con el presente documento. Consecuentemente, debe tenerse presente que la visión del diseño electrónico de actualidad que se confiere en esta sección difiere - en algunos casos, significativamente - de ciertos encares o propuestas que se hallan en la literatura dedicada al tema. No obstante, las eventuales diferencias son más de carácter operativo que metodológico o filosófico, con lo cual no se ve afectado el carácter de este documento, que es el de constituir una introducción al diseño de sistemas electrónicos de actualidad. 670 Nótese la insistencia respecto a que los procesos de diseño referidos son ‘de actualidad’: no se pretende haber logrado una visión pasible de aplicación a los procesos de diseño futuros - aunque se confía en que la idea de la ‘celda de diseño’ efectivamente constituirá una herramienta expresiva aplicable en casos por venir. Gonzalo Sánchez - Ingeniería Electrónica – Universidad Católica del Uruguay 240 - [ 5 ] Diseño de Sistemas Electrónicos Complejos La palabra clave aquí es adaptabilidad: la idea es proveer un marco conceptual al cual poder referirse, para comprender y/o evaluar alternativas de metodologías, flujos y herramientas de diseño, en casos concretos de diseño. En virtud de su origen (la ‘celda de diseño’ de la Fig. 2.4) y al igual que el esquema metametodológico del proceso de diseño general referido en la Fig. 2.5, el esquema representativo del proceso de diseño electrónico que se representa en la Fig. 5.3 es orientado a las descripciones en cada nivel de abstracción, y no a las tareas que permiten el tránsito entre los diferentes niveles de abstracción671. Este hecho refleja un esfuerzo consciente en favor de una consistencia que no se encuentra en general en la literatura, donde se puede constatar - salvo excepciones un uso ad hoc en la esquematización de los procesos de diseño, que no sólo desaprovecha el método del esquema para conferir la información, sino que tampoco facilita las comparaciones entre metodologías y flujos de diseño representadas al no favorecer la inferencia e intuición por parte del lector. En este capítulo se presentan, además del esquema orientado a los niveles de abstracción, algunos esquemas orientados a las tareas de tránsito entre los diferentes niveles de abstracción que componen al proceso de diseño electrónico genérico referido en el párrafo precedente. La priorización de una visión centrada en descripciones en cada nivel de abstracción, frente a una visión centrada en las tareas que componen al proceso de diseño y que permiten transitar entre los diferentes niveles de abstracción, es acorde al propósito de enfatizar la importancia de la abstracción adecuada en el diseño: se considera en este documento que es más productivo comprender y extender adecuadamente la jerarquía de abstracciones - lo que facilita la definición e implementación de tareas o procedimientos para transitarla - que centrarse en la proposición y elaboración de tareas para acceder a niveles de abstracción, los que pueden no estar definidos adecuadamente y por tanto no resultar útiles para el proceso de diseño. En el desarrollo de la presentación de los esquemas precedentemente aludidos, se incurrirá en la presentación y discusión de metodologías frecuentemente referidas en la literatura, como diseño en base a actores, diseño en base a modelos, diseño en base a plataformas, codiseño ‘software’-’hardware’, diseño para reutilización de IP (propiedad intelectual) siempre contra el marco de referencia propuesto para facilitar su ubicación y propósito en un proceso de diseño de sistemas electrónicos. En este contexto, los niveles de abstracción aludidos en el capítulo 4 (particularmente en la sección 4.1) quedan claramente establecidos en relación al nivel que aquí se designa ‘nivel de sistema’672. Conceptos como modos o modelos de cómputo, exploración del espacio de diseño, síntesis de ‘hardware’, compilación de ‘software’, reutilización de diseños y componentes, etc. también son estudiados en el marco de referencia propuesto. En varias secciones de diferentes capítulos de este documento se menciona la equivalencia entre entidades ‘hardware’ y ‘software’, y en el presente capítulo esto se revisa desde la perspectiva de los procesos de diseño de sistemas electrónicos de actualidad, donde esa equivalencia es directamente explotada para optimar los diseños. Sin embargo, un diseño a nivel de sistema (en sentido amplio) requiere la consideración de elementos mecánicos y/o químicos y/o biológicos673, los cuales prima facie no son equivalentes ni entre sí, ni con entidades ‘software’ o entidades ‘hardware’ típicas, y por tanto no son pasibles de explotarse con los objetivos de optimación de la forma que puede hacerse con entidades ‘hardware’ y ‘software’. Aún así, en este capítulo se discute la forma de considerar entidades mecánicas, químicas y 671 Se prefiere para esta introducción el empleo del término ‘tareas’ en lugar de ‘procesos’ para evitar confusiones con los ‘procesos de diseño’ vistos en su totalidad. No obstante, y acorde a la idea de ‘proceso de diseño’ como un ‘fractal de celdas de diseño’, resulta evidente que ‘tareas’ es equivalente a ‘procesos’. 672 Se es consciente que, al igual que ha sucedido con el nivel designado ‘funcional’ o ‘comportamental’ en el contexto de los HDL, con el tiempo este nivel de ‘sistema’ será desplazado por niveles de abstracción adicionales. 673 Elementos que en caso de SoC pueden ser intrínsecos al sistema, y en otros casos formar parte del entorno del sistema. Diseño de Sistemas Electrónicos Complejos [ 5.1 ] Introducción - 241 biológicas junto a las entidades ‘hardware’ y ‘software’ tradicionales en sistemas electrónicos, a partir del concepto de ‘prototipo virtual’ del sistema. No obstante, por motivos de eficiencia, este capítulo se centra en el diseño de sistemas electrónicos constituidos por ‘hardware’ y ‘software’ solamente674, y se asume que el lector puede inferir cuando las metodologías, técnicas y herramientas pueden extenderse a otro tipo de componentes ‘exóticos’. La evidencia de éxito en el cometido previsto para este documento - y este capítulo en particular - sería que al finalizar la lectura del presente capítulo el lector pudiere acceder a las principales referencias aquí citadas, sin experimentar una sensación similar a la de estar caminando en una caverna oscura con una luz potente aunque de haz compacto que sólo ilumina hacia donde se le apunta, sino que la caverna se halla tenue pero uniformemente iluminada, de forma tal que permite percibir una buena extensión alrededor del caminante, y discernir los obstáculos y vías principales. [ 5.2 ] ESTRUCTURA ABSTRACTA DEL PROCESO DE DISEÑO DE SISTEMAS ELECTRÓNICOS En línea con lo que se establece en la sección 2.1 del presente documento (dedicada al proceso y producto de diseño en ingeniería) en esta sección se propone un esquema para el proceso de diseño en ingeniería electrónica. No obstante, ese esquema (Fig. 5.3) aún presenta un alto nivel de abstracción, que hace factible su aplicación en áreas allende la ingeniería electrónica. Su inclusión aquí en lugar de la sección 2.1.1.4 responde al compromiso entre generalidad alcanzable, y aseguramiento del objetivo propuesto, del cual prima la última consideración eligiéndose en consecuencia la presente ubicación. Por conveniencia, en la Fig. 5.1 se reitera la ‘celda de diseño’ de la Fig. 2.4, la cual constituye el origen conceptual del esquema de la Fig. 5.3. especificación análisis síntesis implementación Fig. 5.1: ‘Celda de Diseño’ (ver sección 2.1.1.4, Fig. 2.4) 674 Sistemas que incorporan elementos programables o configurables (como μP, μC, DSP,ASIP, o FPGA, CPLD, ASIP, ASIC respectivamente) con su correspondiente programación, pero no incluyen entidades mecánicas, químicas o biológicas intrínsecas. Nótese que la ‘programación’ comprende a la configuración de dispositivos como FPGA o CPLD, y los diseños de ASIP y ASIC, dado que estos se desarrollan mediante HDL, son descripciones de carácter inmaterial conferidas como archivos de computador, y su complejidad equivale (o supera) la de la programación de dispositivos ‘intérpretes de instrucciones’. Ingeniería Electrónica – Universidad Católica del Uruguay 242 - [ 5 ] Diseño de Sistemas Electrónicos Complejos Asimismo, en la Fig. 5.2 se presenta la ‘expansión fractálica’ de la ‘celda de diseño’ de la Fig. 2.5, con algunas modificaciones tendientes a resaltar la capacidad de la ‘celda de diseño’ para expresar la recurrencia inherente a todo proceso de diseño. proceso de diseño especificación especificación ' celda de diseño' descripción(n) descripción (n) A A S descripción (n-1) implementación S descripción(n-1) implementación Fig. 5.2: Expansión ‘fractálica’ del proceso de diseño en términos de la ‘celda de diseño’ de la Fig. 5.1 (ver sección 2.1.1.4, Fig. 2.5). Nótese a la ‘celda de diseño’ representando tanto al proceso de diseño ‘completo’ como a cualquier etapa intermedia, y a su vez, la consideración de esa etapa cualquiera como un proceso de diseño ‘completo’. Conviene reiterar aquí lo que se establece en la sección 2.1.1.3, considerando la ‘celda de diseño’ de la Fig. 5.1 en términos relativos a un proceso de diseño completo, como el representado en el esquema de la Fig. 5.2675: • especificación e implementación son descripciones relacionadas, cuyo objeto es la representación del diseño en dos diferentes niveles de abstracción del proceso. La descripción más abstracta (la especificación) prescribe qué ha de implementarse, mientras que la descripción más concreta (la implementación) indica cómo ha de implementarse 676. • síntesis es un proceso de refinamiento del diseño entre dos niveles de abstracción; transforma la representación más abstracta en una más concreta y detallada. Los niveles de abstración son representados por un par especificación - implementación de descripciones, cuya relación define los refinamientos válidos. • análisis es el proceso de validación del proceso de síntesis; su cometido es verificar la coherencia y compatibilidad de la implementación respecto a la especificación de la cual ha sido sintetizada, conforme a la relación dada entre las descripciones. En base a los precedentes esquemas, se propone un esquema meta-metodológico para el proceso de diseño de sistemas electrónicos (Fig. 5.3). Este esquema constituye la referencia inicial y de mayor abstracción para el resto del presente capítulo. 675 Adaptado de [ELLS97], p. 56-57. 676 Las nociones de ‘descripción más abstracta’ y ‘descripción más concreta’ son relativas, puesto que una descripción ‘más concreta’ es la ‘más abstracta’ para un eventual siguiente refinamiento del diseño. En consecuencia, el como resulta un que desde la perspectiva del nivel de abstración inferior. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 243 especificaciones del sistema: propósito, comportamiento, funciones, propiedades, requerimientos / restricciones de desempeño especificación verificación: - formal - simulación a2,1 s1,2 modelo del sistema verificación: - formal - simulación a3,2 s2,3 partición 'software' / 'hardware': mapeo función - arquitectura modelos de módulos 'hardware'y 'software' (ejecutables / no ejecutables; formales / informales): prototipo virtual diferenciado síntesis de módulos 'hardware' a4,3 s3,4 síntesis de módulos 'software' síntesis de interfases / sistemas operativos módulos ' hardware' y 'software' verificación: - ensayo modelo del sistema (ejecutable /no ejecutable; formal / informal): prototipo virtual exploración del espacio de diseño modelos de módulos ' hardware' y 'software' verificación: - simulación - emulación captura de especificaciones del sistema a5,4 s4,5 implementación módulos 'hardware' y 'software' del sistema: prototipo real / realizable · traducción (formatos) de descripciones · manufactura; realización · procesos de configuración / programación realización e implantación del sistema: instancia del sistema + documentación Fig. 5.3: Esquema abstracto del proceso de diseño electrónico actual, en términos de la ‘celda de diseño’ de la Fig. 2.5 y su ‘expansión fractálica’ de la Fig. 5.2 (o las respectivas figuras 2.4 y 2.5 en la sección 2.1.1.4). Adviértase que la terminología que figura en el esquema es empleada por diferentes culturas y grupos de diseño con significados que no necesariamente se corresponden entre sí, ni con el que les asigna el presente documento. El diseño de sistemas electrónicos comienza por la especificación de su propósito, comportamiento y funcionalidad deseados, las propiedades que debe honrar, y las restricciones que debe cumplir. Para ello se emplea una variedad de modelos conceptuales a diferentes niveles de abstracción, siendo el más abstracto el designado prototipo virtual del sistema, y el de menor abstracción prototipo real/realizable del sistema, a partir del cual está garantizada la implementación del sistema. En las siguientes secciones (5.2.1 a 5.2.10) se describe cada nivel de abstracción, cada tarea de síntesis, y cada tarea de análisis que figura en el esquema de la Fig. 5.3. Ingeniería Electrónica – Universidad Católica del Uruguay 244 - [ 5 ] Diseño de Sistemas Electrónicos Complejos [ 5.2.1 ] ESPECIFICACIÓN DEL SISTEMA En sintonía con la descripción de los procesos de diseño en ingeniería que se efectúa en la sección 2.1.1, el esquema para el proceso de diseño en ingeniería electrónica que se propone en la Fig. 5.3 comienza con la especificación del sistema. Esto implica la declaración del propósito del sistema, su comportamiento esperado, las funciones que debe desempeñar, las propiedades que ha de cumplir, los requerimientos que se le exigen, y las restricciones a las que deberá someterse. El propósito del sistema se relaciona con su aplicación. Aunque pueda darse por sobrentendido el propósito del sistema y tildar de perogrullada la inclusión en las consideraciones iniciales del diseño, igualmente conviene siempre establecerlo claramente. La razón es que lo aparentemente obvio al momento del diseño puede no serlo tiempo después, cuando el diseño se aborde con otro propósito (por ejemplo, para su uso como componente para otro sistema, o para su propio mantenimiento y mejora) y particularmente cuando ello sea efectuado por agentes ajenos a los que participaron en el diseño del sistema. El propósito del sistema es una idea esencial que no debe omitirse en la especificación: por obvio que pueda parecer al momento del diseño, es invaluable contar con esta información tiempo después, por ejemplo, para su mantenimiento, para revisiones del sistema, o para su reutilización como componente en otro sistema. La inclusión del propósito en las especificaciones contribuye a evitar la ‘Bourbakización’677 del diseño. El comportamiento pretendido del sistema y/o las funciones que ha de desempeñar el sistema constituyen una especificación comportamental y/o funcional del sistema. Esta especificación no sólo debe ser compatible sino además coherente con el propósito y aplicación del sistema. No es una descripción completa o siquiera detallada del sistema, sino un conjunto de indicaciones acerca del comportamiento y funciones pretendidos del sistema, suficiente para caracterizar la operación deseada de este. Es el punto de partida para el proceso de diseño, que se encarga de completar los detalles hasta la implementación de un sistema que satisface las especificaciones. La especificación comportamental y/o funcional del sistema es una declaración del comportamiento pretendido y/o funciones a desempeñar por el sistema, compatible y coherente con su propósito y aplicación, y que caracteriza su operación sin llegar a describirla en forma detallada o completa. Las propiedades que debe cumplir el sistema constituyen un conjunto de afirmaciones acerca de su comportamiento o funcionalidad. En lugar de una especificación del comportamiento o funciones del sistema (en eso consiste la especificación comportamental/funcional) las propiedades son abstracciones del comportamiento o funcionalidad en alguna dimensión particular. Por ejemplo, establecer que determinados módulos de la programación de un sistema sean reentrantes678 no define ni la función de esos módulos ni su comportamiento, sino sólo una 677 Nicolas Bourbaki es el seudónimo colectivo adoptado en 1939 por un grupo de matemáticos (mayoritariamente franceses) que propugnan la sistematización de la matemática. Según Chaitin ([Cha04], c. II) la continua revisión de sus monografías hasta obtener ‘la perfección’ (único estándar aceptable para el grupo) lo que logra es erradicar el lenguaje común de los trabajos, y con ello, todo rastro de las ideas, y el origen de las mismas, que hay detrás de cada demostración, dejando solamente un resultado expresado formalmente, que dificulta la introspección. 678 Un módulo se designa reentrante cuando siendo invocado múltiples veces y estando alguna instancia en en ejecución simultáneamente con otra u otras, el estado interno del módulo respecto de una invocación es independiente del estado interno respecto de otra invocación; es decir, por cada invocación, el resultado que devuelve depende sólo de los parámetros que se le pasan en la invocación, y la historia de esa invocación particular, pero no de las restantes. Una función reentrante es una función que puede ser usada por más de una tarea sin miedo a la corrupción de datos, admitiendo ser interrumpida en cualquier momento para luego proseguir sin perder información. Las funciones reentrantes emplean variables locales (registros del procesador, o variables en la pila del sistema) o protegen sus datos cuando se usan variables globales (por ejemplo, trabajando con copias >> p. 245 Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 245 propiedad que deben cumplir. Naturalmente, en el caso de un sistema diseñado adecuadamente, la descripción funcional y/o comportamental necesariamente satisface las propiedades, por lo cual el conjunto de estas sería información redundante. Sin embargo, las propiedades son más sencillas, más abstractas, y más incompletas comparadas con las especificaciones funcionales y/o comportamentales, por lo cual tales aserciones suelen ser más fácilmente verificables, y por tanto su definición permite controlar el cumplimiento de aspectos claves de la especificación del sistema ([ELLS97], p. 5). Las propiedades son un conjunto de aserciones, de carácter fundamentalmente cualitativo, sobre aspectos clave del comportamiento y/o las funciones del sistema. Son más sencillas, abstractas, e incompletas que la descripción comportamental o funcional del sistema - son una abstracción del comportamiento o la funcionalidad en alguna dimensión particular - y por tanto más fáciles de verificar. En tanto que las propiedades del sistema son generalmente de carácter cualitativo, los requerimientos del sistema son fundamentalmente de carácter cuantitativo, y se asocian a índices de desempeño para evaluar al diseño, por ejemplo, en términos de costo, confiabilidad, velocidad, consumo, tamaño, etc. ([ELLS97], p. 4). Si bien hay restricciones implícitas por las propias especificaciones, o por la realidad y circunstancia particulares al momento del diseño (ver sección 2.1.1.1) las restricciones que se mencionan en el esquema se refieren a limitaciones explícitas a los índices de desempeño referidos precedentemente. Los requerimientos son fundamentalmente asociados a índices de desempeño del sistema, y por tanto de carácter cuantitativo. Amén de las restricciones implícitas por el conjunto de especificaciones o la circunstancia de diseño, pueden además limitarse en forma explícita los precedentes requerimientos. Cabe recordar que una especificación ‘por exceso’ - restricciones allende lo necesario - puede limitar en forma ficticia el espacio de diseño, con un impacto negativo sobre la posible solución de diseño (ver sección 2.4). Así, es usual - y hasta conveniente - que las especificaciones sean parcialmente incompletas679. [ 5.2.2 ] PROCESOS DE SÍNTESIS S1,2 [ 5.2.2.1 ] CAPTURA DE ESPECIFICACIONES Por lo general, las especificaciones para el diseño (sección 5.2.1) son conferidas en maneras heterogéneas y en carácter informal. Heterogéneas, en el sentido de su medio de expresión; básicamente se refiere al lenguaje en el cual se efectúa la comunicación de los contenidos, el cual puede ser natural (textual o incluso verbal, en al menos un idioma) gráfico, matemático, en términos de programas de computadores, etc. y cualquiera de las posibles combinaciones de estas formas. La heterogeneidad en las formas de comunicar los contenidos de la especificación suele corresponderse con la heterogeneidad de la aplicación a la que está destinada el diseño, y constituye una fuente concreta de complejidad para el proceso de diseño. << p. 244 locales de las variables globales). Recíprocamente, una función no reentrante no puede ser compartida por más de una tarea a menos que se asegure la exclusión mutua a esa función, ya sea mediante semáforos, o bien deshabilitando las interrupciones durante la ejecución de las secciones críticas del código de la función. 679 Parcialmente busca sugerir que las especificaciones son lo menos completas posible, con objeto de no establecer restricciones ficticias al espacio de diseño; obviamente, las especificaciones no pueden ser ‘demasiado’ incompletas, vagas, o inexistentes. La expresión ‘partially incomplete specifications’ es frecuente en la literatura de diseño electrónico, mas no se explicita su significado. Ingeniería Electrónica – Universidad Católica del Uruguay 246 - [ 5 ] Diseño de Sistemas Electrónicos Complejos Informal se refiere a la forma de expresión, en este caso, que no sigue el formalismo matemático680. Las posibles consecuencias de las especificaciones informales son la carencia de relaciones precisas entre ellas - eventualmente, falta de relación lógica o incluso de coherencia y la impronta cultural681 que heredan (esto último ligado íntimamente a la heterogeneidad de los medios de expresión). Así, el paso de síntesis etiquetado s1,2 en la Fig. 5.3, la captura de las especificaciones, consiste en la recolección de esas especificaciones usualmente heterogéneas e informales, y la traducción de este conjunto a un formato adecuado para el proceso de diseño. Por adecuado no se implica común u homogéneo; esto dependerá de la metodología adoptada para cada proceso de diseño. La captura de especificaciones es esencialmente su ‘mapeo técnico’: consiste en la recolección y traducción del conjunto de especificaciones - las que son usualmente descripciones heterogéneas (diversidad de medios textuales y audiovisuales) e informales (carentes de relaciones precisas, o incluso coherentes) a un formato adecuado para las etapas posteriores del proceso de diseño. En el marco del esquema de la Fig. 5.3, un ‘mapeo técnico’ exitoso resulta en la consecución del modelo del sistema. Actualmente, cualquier descripción audiovisual (textual, verbal, gráfica estática o animada) que componga las especificaciones tiende a ser digitalizada para que sea factible introducirle en un computador. Por lo general, más allá de la mera intención de operar con las especificaciones como con cualquier conjunto de archivos en un computador (poder guardarles, copiarles, transmitirles, etc.) se intenta que además sea posible su tratamiento mediante el computador, es decir, su manipulación a nivel del contenido y su significado. Ello requiere el empleo de programas estándar para captura y manipulación de texto y datos 682, o la elaboración de programas específicos para esos propósitos683, o la elaboración de modelos ejecutables684. En este contexto, y particularmente en caso de sistemas donde la seguridad es una consideración primordial, se tiende a la formalización de las especificaciones, lo cual casi asegura685 la posibilidad de su tratamiento mediante el computador. La tendencia es hacia la manipulación de las especificaciones mediante el computador incluso a nivel de sus contenidos y significado, lo cual significa que la traducción es orientada al empleo de programas estándar para manipulación de texto y datos, o a la elaboración de programas específicos (entre estos, los modelos ejecutables; ver sección 3.4). En casos donde la seguridad es primordial, además se tiende a la formalización de estas especificaciones. 680 El formalismo en el sentido de Hilbert se presenta en la sección 3.3.3.2.2, y se define en términos más ‘modernos’ en la sección 3.3.4; previamente, la sección 3.2 discute los temas de modelado informal, formal y matemático. 681 Cultural, más en el sentido de costumbres personales, grupales o institucionales que de de costumbres y conocimiento sociales; en este último sentido, hasta la propia matemática y el formalismo matemático son discutibles como consecuencia de fenómenos culturales (ver sección 2.1.2.2). 682 En una primera instancia, se emplean sistemas de gestión de documentos y bases de datos relacionales. Las aplicaciones de hojas de cálculo, aunque limitadas en sus capacidades de manejo de datos respecto a la anteriores, permiten cálculos simples, de listas, iterativos, y pueden generar gráficos y analizar condiciones, con lo cual son extremadamente útiles para la rápida evaluación de los compromisos de diseño iniciales. Desafortunadamente, este tipo de herramientas generalmente no provee mecanismos de enlace con las restantes herramientas del proceso de diseño. 683 Esto es útil en caso que un programa de hojas de cálculo tradicional no resulte adecuado o eficiente. 684 Los modelos ejecutables son programas orientados a la simulación de sistemas. Ver sección 3.4. 685 No lo asegura completamente, en virtud de los fenómenos de incompletitud, incomputabilidad y aleatoriedad algorítmica que sufren los formalismos matemáticos à la Hilbert (ver secciones 3.3.5 y 3.3.6) y por la imposibilidad de representar el continuo en forma digital con memoria y tiempo de ejecución finitos. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 247 En el contexto de diseño electrónico de actualidad, el ‘formato adecuado’ es un modelo ejecutable del sistema, eventualmente formal - un prototipo virtual del sistema. [ 5.2.3 ] MODELO DEL SISTEMA: EL PROTOTIPO VIRTUAL El modelo del sistema es una descripción comportamental o funcional abstracta del sistema, para cuya consecución se ha introducido, seleccionado, o modificado la información contenida en las especificaciones del sistema, hasta eliminar eventuales redundancias o incoherencias en la formulación. Una descripción funcional (‘functional description’) es un modelo del sistema en términos de un diagrama de bloques funcionales686. Esto implica que la descripción del sistema puede efectuarse satisfactoriamente en término de funciones. En consecuencia, una descripción funcional es generalmente asociada al desarrollo y validación de algoritmos que resuelven las diferentes funciones del sistema. Una descripción comportamental (‘behavioral description’) expresa el comportamiento deseado del sistema, para lo cual no necesariamente es más adecuado - o siquiera factible - emplear bloques exclusivamente funcionales o algorítmicos. Una descripción comportamental es esencialmente más abstracta - y, por tanto, más flexible - que una descripción funcional, y resulta más adecuada para modelar sistemas embebidos (sección 4.4.3) donde la evolución temporal del estado del sistema importa tanto como las funciones que este realiza en diferentes momentos. En el encare de diseño electrónico tradicional, se parte de una descripción funcional del sistema, donde las funciones son asignadas a priori a componentes ‘hardware’ y ‘software’. Esta partición primigenia, que usualmente es decidida exclusivamente en base a la experiencia previa y preferencias del equipo de diseño, induce a bifurcar el proceso de diseño en dos procesos débilmente acoplados - diseño del ‘hardware’ por un lado, y del ‘software’ por otro hasta la fase de integración. Ello frecuentemente ocasiona lo que se designa como problema de continuidad de modelos: ante el surgimiento de incompatibilidades al momento de la integración, los ajustes necesarios se intentan realizar en los componentes ‘software’ por razones de costo, pero no puede descartarse la posibilidad de que los ajustes requieran un rediseño del ‘hardware’ (y, de existir, una eventual refabricación de prototipos) a un costo significativamente superior. En el precedente contexto, aunque tanto el ‘software’ como el ‘hardware’ sean diseñados en forma jerárquico - modular, una partición inicial inadecuada puede igualmente tener un impacto nefasto en la jerarquía y modularidad del sistema687, en virtud de la fijación a priori de la interfaz ‘hardware’ - ‘software’ sin opciones de reconfiguración luego de la referida partición inicial. Consecuentemente, en el marco del esquema de diseño electrónico que se presenta en la Fig. 5.3, el encare tradicional de diseño de sistemas electrónicos se saltea el nivel correspondiente al modelo del sistema, pasando directamente del nivel de especificación al nivel de modelos de módulos ‘hardware’ y ‘software’ del sistema. Así, las tareas que en el referido diagrama se indican como s2,3 (“exploración del espacio de diseño”, y “partición ‘hardware’ - ‘software’: mapeo función → arquitectura”) no se ejecutan como parte del proceso de diseño, sino que la 686 Véase, por ejemplo, el esquema del proceso de diseño propuesto en [Ras00] que se representa en la Fig. 2.2 del presente documento. 687 Los conceptos de jerarquía y modularidad de sistemas se discuten en la sección 1.5, referidos al fenómeno de la complejidad asociada a los sistemas. Ingeniería Electrónica – Universidad Católica del Uruguay 248 - [ 5 ] Diseño de Sistemas Electrónicos Complejos arquitectura del sistema688 es precisamente establecida a priori en base a las preferencias y experiencia previa del equipo de diseño. En los procesos de diseño electrónico tradicionales se concibe al sistema diferenciado ab initio en componentes ‘hardware’ y ‘software’. Tal división ad hoc induce una bifurcación del proceso de diseño en dos procesos débilmente acoplados, ‘hardware’ por un lado, y ‘software’ por otro. Esta fijación a priori de la interfaz ‘hardware’ - ‘software’, carente de opciones de reconfiguración luego de la partición inicial, ocasiona un “problema de continuidad de modelos” que frecuentemente eclosiona en la fase de integración del sistema. Además, una partición ‘hardware’ - ‘software’ inicial inadecuada puede tener un impacto nefasto en la jerarquía y modularidad del sistema, aunque las partes se diseñen separadamente en forma jerárquica y modular. En referencia al diagrama de la Fig. 5.3, los procesos de diseño electrónico tradicional se saltean al nivel del modelo del sistema, para pasar directamente de la especificación a los modelos de módulos del sistema. Las tareas de exploración del espacio de diseño y partición ‘software’ - ‘hardware’: mapeo función → arquitectura (identificadas como s2,3 en el referido diagrama) no son ejecutadas, sino que el resultado - la arquitectura del sistema - es establecida a priori, en base a las preferencias y experiencia previa del equipo de diseño. Prima facie, al ser abstracta, una especificación comportamental y/o funcional no implica ni induce partición alguna del sistema en componentes ‘hardware’ y ‘software’. Así, resulta natural que el modelo del sistema mantenga esa abstracción, y tampoco induzca tal partición. Con esta filosofía, el encare de diseño electrónico de actualidad concibe al sistema como una jerarquía de subsistemas y/o procesos en interacción, pero a diferencia del encare tradicional, no asigna o relaciona inicialmente esos subsistemas o procesos a componentes ‘hardware’ o ‘software’. Así, el modelo en base a subsistemas y/o procesos en interacción carece de una orientación arquitectural implícita, lo que adicionalmente evita una posible orientación prematura hacia la tecnología de implementación implícita por cada combinación particular posible de ‘hardware’ y ‘software’. Esta indiferenciación inicial elimina restricciones ficticias y por tanto amplía el espacio de diseño689, habilitando un diseño jerárquico y modular a nivel de sistema, a diferencia del encare tradicional que se ve limitado al diseño jerárquico - modular del ‘hardware’ y ‘software’ por separado, con su interfaz fijada de antemano. Consecuentemente, en el marco del esquema de la Fig. 5.3, el encare actual de diseño electrónico plantea la efectiva consecución de un modelo del sistema, derivado de la especificación comportamental o funcional. En principio, este modelo no incorpora en forma explícita ni el propósito, ni las propiedades, restricciones o requerimientos de la especificación; sólo modela comportamiento y/o funcionalidad, siendo el objeto del proceso de diseño refinar690 adecuadamente este modelo inicial de forma de lograr una implementación, y que esta cumpla con la totalidad de las especificaciones. El diseño electrónico de actualidad concibe efectivamente un modelo del sistema, en términos de una jerarquía de subsistemas y/o procesos en 688 Arquitectura del sistema: en la literatura, se refiere al conjunto de componentes ‘hardware’ o ‘software’ que implementa la funcionalidad del sistema. En este documento, se prefiere designar arquitectura al conjunto de componentes físicos y/o de programación, cada uno de los cuales implementa parte de la especificación funcional del sistema; el motivo es que ‘componentes físicos’ puede referirse tanto a dispositivos electrónicos como mecánicos, o incluso de otro tipo, mientras que el término inglés ‘hardware’ se interpreta usualmente como ‘dispositivos físicos electrónicos’, excluyendo los de otro tipo. 689 Ver sección 2.4. 690 Ver sección 2.1.1.4. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 249 interacción, coherentes con la especificación comportamental y/o funcional del sistema, y compatible con el resto de las especificaciones. Este modelo no tiene correspondencia directa con el ‘hardware’ o ‘software’ subyacente - es ‘arquitecturalmente agnóstico’, indiferente - y por ende, tampoco se orienta a ninguna tecnología particular de implementación. Esta indiferencia inicial elimina restricciones ficticias y amplía el espacio de diseño, habilitando un diseño jerárquico y modular a nivel de sistema. Esto constituye una diferencia esencial con el encare tradicional, que se ve limitado al diseño jerárquico - modular del ‘hardware’ y ‘software’ por separado, con una interfaz fijada de antemano. Naturalmente, debe efectivamente verificarse que la especificación comportamental y/o funcional ha sido respetada en el modelo del sistema, y además, que este no es incompatible ab initio con las restantes especificaciones, aunque ello sea dirimido en etapas posteriores del proceso de diseño. Es decir, debe verificarse que el modelo del sistema cumple con la especificación comportamental y/o funcional, y que no viola a priori las propiedades, requerimientos y restricciones que componen al resto de la especificación. Pero, recíprocamente, el modelo del sistema constituye una oportunidad para verificar las especificaciones, es decir, su coherencia interna y compatibilidad691. Una sinopsis de este tipo de aspectos relativos a la los procesos de análisis que posibilitan la validación o verificación, se pospone a la sección 5.2.10. El modelo del sistema debe ser validado coherente y compatible con las especificaciones, pero recíprocamente, puede ser empleado para verificar la coherencia y compatibilidad de las propias especificaciones, vía iteraciones en el ciclo de diseño: especificaciónA → s1,2 → modelo del sistema → a2,1 → especificaciónB. En el contexto de diseño electrónico de actualidad, se tiende a que el modelo del sistema sea ejecutable 692, y de allí que aquí se le designe como prototipo virtual. Así, esencialmente, el prototipo virtual es el modelo ejecutable de la especificación comportamental/funcional del sistema, eventualmente de carácter formal. Naturalmente, es posible la consecución de modelos ejecutables para las partes ‘software’ y ‘hardware’ de un encare tradicional693. No obstante, como se establece al inicio de la presente sección, esto corresponde a la descripción del nivel de modelos de módulos del sistema; es así que la designación de prototipo virtual se reserva para designar al modelo ejecutable de la especificación comportamental/funcional, diferenciándole de otros modelos ejecutables que pudieren emplearse en los restantes niveles de abstracción del proceso de diseño. Por prototipo virtual se designa a un modelo ejecutable, eventualmente formal, de la especificación comportamental/funcional del sistema. 691 No es este un aspecto menor: “Actualmente, la mayor fuente de errores en la integración procede habitualmente de defectos en la especificación del ASIC, que podrían haberse evitado mediante la utilización de un lenguaje formal, apto para su simulación y posterior síntesis, capaz de incorporar ficheros tecnológicos y criterios de integración necesarios para eliminar las ambigüedades existentes en la misma; esto obliga a una sólida coherencia en la fase de especificación.” ([TTOV98], p. xvii). En la cita, debe asumirse que lo que aquí se designa modelo del sistema se halla integrado a lo que allí designan especificación; no por ello se invalida la relevancia de una especificación y modelo del sistema coherentes para el proceso de diseño. 692 El concepto de modelo ejecutable se presenta en la sección 3.4. 693 El ‘software’ puede directamente describirse mediante un HLL, y el ‘hardware’ puede describirse mediante un HDL; ambos pueden ser simulados - o co - simulados (ver sección 5.6) - en una estación de trabajo, previo a una implementación del ‘hardware’ del sistema objetivo que ejecute su propia programación (‘software’). Ingeniería Electrónica – Universidad Católica del Uruguay 250 - [ 5 ] Diseño de Sistemas Electrónicos Complejos Aunque resulte inmediata la posibilidad de elaborar modelos ejecutables de las partes ‘hardware’ y ‘software’ de un sistema (por ejemplo, en un proceso de diseño electrónico tradicional) estos modelos corresponden al nivel de modelos de módulos ‘hardware’ - ‘software’ indicado en la Fig. 5.3, y no al modelo a nivel del sistema. Así, se reserva la designación de prototipo virtual para el caso específico señalado, con objeto de diferenciarlo de otros modelos ejecutables que pudieren emplearse en los restantes niveles de abstracción del proceso de diseño. En cuanto modelo ejecutable, el prototipo virtual permite la simulación del sistema, lo que habilita la exploración del espacio de diseño, a nivel de sistema, con asistencia de herramientas informáticas. Cuando además de posible694 es pertinente (como en el caso de sistemas con requerimientos de seguridad críticos695) este prototipo virtual se construye tal que admita análisis formal. Así, el prototipo virtual puede comprender incluso aquellas partes mecánicas, químicas, biológicas, etc. que en caso de un SoC son intrínsecas al sistema, y que en el caso más general de un sistema embebido corresponden al sistema que integran, o su entorno. Inicialmente, en concordancia con el principio de no sobre - especificación del sistema, el prototipo virtual no modela el detalle del comportamiento y/o funcionalidad del sistema, sino sólo lo necesario para asistir a la toma de decisiones de diseño críticas. Posteriormente, el prototipo virtual puede puede ser ajustado mediante retroanotación desde etapas ulteriores del proceso de diseño. Por ejemplo, se puede ir incorporando progresivamente información referente a tiempos de ejecución de procesos o retardos en la propagación de señales, que se extrae a partir de estimaciones, simulaciones, o mediciones conforme se va accediendo a los niveles de abstracción inferiores del diseño. De esta forma, se mantiene al prototipo virtual como modelo de referencia durante la totalidad del proceso de diseño, con la ventaja adicional que es el modelo ejecutable de mayor eficiencia en simulación (o eventual análisis formal) por ser el de máximo nivel de abstracción. Con el prototipo virtual se mitiga el problema de continuidad del modelo, puesto que desde el inicio se dispone de un modelo integral del sistema, contra el cual referirse. Además, en caso de ser factible la refinación progresiva del prototipo virtual hasta la implementación del sistema696, el modelo dado por el prototipo virtual es disponible para la totalidad del proceso de diseño, con lo cual el problema de continuidad desaparece por completo. Desafortunadamente, por sencilla que parezca esta posibilidad, no lo es su realización: “Es un corto paso conceptual desde el modelo arquitectural a la implementación del sistema; después de todo, el modelo es ejecutable, el sistema objetivo también es ejecutable, de forma que es simplemente una cuestión de transformar uno en otro. El lío, por supuesto, está en los detalles.”697 ([SP02], p. 2). En cuanto modelo ejecutable, el prototipo virtual permite la simulación del sistema - eventualmente, su análisis formal - y habilita a la exploración del espacio de diseño, a nivel de sistema, con la asistencia de herramientas informáticas. En las metodologías de diseño de actualidad se modela con el prototipo virtual a las partes ‘hardware’ y ‘software’ del sistema (en forma 694 Ténganse presente los fenómenos ‘Gödelianos’ (Gödel, Turing, Chaitin; secciones 3.3.5 y 3.3.6); en un contexto ‘computacional’, la incomputabilidad, el Problema de Finalización, y la aleatoriedad algorítmica. 695 Por ejemplo, equipamiento de uso aeronáutico, naval, de ferrocarril, médico, industrial, etc. 696 La facilidad para refinar progresivamente el modelo del sistema, desde el prototipo virtual hasta la implementación, es fuertemente dependiente de la realización concreta del prototipo virtual (estructura, lenguaje de descripción, etc.) así como del conjunto de herramientas de diseño que da soporte al flujo específico que se adopte para el diseño. En ciertos casos, no resulta factible un refinamiento paulatino del modelo, sino que se requiere prácticamente una refacción o reconstrucción del modelo conforme se pretende acceder a un nivel de abstracción inferior; de aquí que no se asuma a la ligera la factibilidad de un refinamiento ‘continuo’. 697 Texto traducido del original, en inglés. Ver nota 54, p. 39. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 251 indiferenciada) así como también eventuales partes mecánicas, químicas, biológicas, etc. que constituyen al propio sistema (por ejemplo, un MEMS) o a su entorno (por ejemplo, la planta industrial). Con el prototipo virtual no se captura un comportamiento o funcionalidad detallados del sistema, sino sólo lo necesario para asistir a la toma de decisiones de diseño críticas. El prototipo virtual puede ser ajustado progresivamente por retroanotación de detalles desde niveles de abstracción inferiores, manteniéndose así como modelo de referencia para todo el proceso de diseño, con la máxima eficiencia en simulación o eventual análisis formal por su nivel de abstracción. Al ser un modelo integral del sistema se mitiga el problema de continuidad; de ser posible su refinación progresiva hasta la efectiva implementación del sistema, el problema de hecho se elimina. “El beneficio principal de una metodología descendente698 es que las decisiones de diseño pueden ser tomadas en el momento apropiado, es decir, con la mínima cantidad de esfuerzo desperdiciado. Cada vez que se toma una decisión, esta puede ser probada en el contexto del modelo general del sistema para ver sus efectos. Este es el propósito de emplear modelos de sistema ante todo.”699 ([SP02], p. 3). El prototipo virtual puede emplearse para ensayar el impacto de las decisiones de diseño a nivel global. La carencia de un prototipo virtual es un claro indicador de un diseño no realizado a nivel de sistema. No obstante, la utilidad del prototipo virtual está supeditada a las capacidades de interoperabilidad de las herramientas informáticas de diseño que dan soporte al flujo700 de diseño, en particular, las que permiten trabajar en forma coordinada con diferentes partes del modelo a diferentes niveles de abstracción (idealmente, las que permiten simulación mixta multi - nivel) y síntesis comportamental701. A su vez, las capacidades de interoperabilidad de las herramientas están supeditadas a la capacidad expresiva de los los lenguajes de programación con que estan implementadas (o que ellas implementan) y los modos de cómputo que estos soportan702. La utilidad del prototipo virtual está supeditada a las capacidades de interoperabilidad de las herramientas informáticas que dan soporte al flujo de diseño (sección 5.6) y estas, a la capacidad expresiva de los los lenguajes de programación que las implementan (o que ellas implementan) y los modos de cómputo que los respectivos lenguajes soportan (sección 5.5). Consecuentemente, el lenguaje de descripción del prototipo virtual es un aspecto crítico del diseño. Como se aduce en diversos pasajes del presente documento703, el lenguaje de descripción de cualquier modelo ejecutable constituye un problema crítico, que se manifiesta 698 Ver sección 2.2.1. 699 Texto traducido del original, en inglés. Ver nota 54, p. 39. 700 Ver sección 2.2. 701 En la sección 4.3.4 se introducen algunos aspectos básicos acerca de la interoperabilidad de herramientas CAD. Refiérase a la sección 5.2.6.1.2 para una discusión acerca de la síntesis comportamental. En la sección 5.6 se hacen referencias a la co - simulación multi - nivel. 702 El concepto de modos o modelos de cómputo y su relación con los lenguajes de programación se presenta en la sección 5.5. 703 El problema del lenguaje es un problema subyacente a toda descripción, y por tanto, general. En particular, la sección 2.1.2.2 discute preocupaciones de tipo epistemológico al respecto de los lenguajes. Ingeniería Electrónica – Universidad Católica del Uruguay 252 - [ 5 ] Diseño de Sistemas Electrónicos Complejos particularmente al momento de intentar la composición de modelos, independientemente de su nivel de abstracción. El tema de los lenguajes de descripción del prototipo virtual constituye un álgido punto de debate. Como puede inferirse de [EDAC01] y [GR00], una corriente significativa a nivel mundial es la que impulsa a la extensión de los lenguajes de programación general (HLL) y su empleo para modelar al sistema704 (véase, por ejemplo, [GL97], [SP02], [Swa01], [CJ02], [OSCI02a], [OSCI02b], [YMSTHN98], y [SGXX]). Sin embargo, otras culturas consideran que el diseño a nivel de sistema requiere capacidades descriptivas tales que no resulta conveniente o eficiente incorporarles por modificación a los HLL estándares. Entre estas, las iniciativas más directas buscan métodos para combinar descripciones HLL y HDL (estándares) para modelar al sistema; por ejemplo, se usa C para describir algoritmos, y VHDL para describir los circuitos y dispositivos digitales (y aún otros lenguajes según los diferentes encares). No obstante, una simulación en este encare multilenguaje requiere la implementación de mecanismos de comunicación entre la simulación VHDL y la ejecución del código C compilado705 (y también con los eventuales restantes modelos ejecutables descritos en otros lenguajes). Usualmente se emplea un “‘bus’ de cosimulación”, que puede ser realizado mediante comunicación interprocesos, ‘pipes’, o ‘sockets’ en sistemas Unix, o el propio ‘bus’ físico PCI del computador anfitrión, dependiendo de si hay simulación o emulación del ‘hardware’ objetivo (algunos esquemas de estos casos se representan sintéticamente en [Mah04], pp. 2-13). Una presentación de la descripción multilenguaje se tiene en [JRLHCVMDZXX], y un ejemplo concreto es comentado en [LVHJACXX]. En esta línea, se requieren elaborar metodologías y/o entornos de diseño de sistemas, que frecuentemente implican el desarrollo de interfases para el programador (API, ‘Application Programmers Interface’) en algún HLL estándar. Esas API orientan el empleo de los HLL para la construcción de modelos ejecutables adecuados al propósito del entorno o metodología, y a sus eventuales simuladores específicos (los que son desarrollados conjuntamente con la API). Ocasionalmente, se desarrollan también lenguajes específicos para descripción de sistemas para acceder a niveles de abstracción superiores a los que los HLL y HDL estándares permiten describir. Algunos ejemplos de los casos referidos son [LWDV99], [VVBD99], [RS97], y [Tan01]. Por otro lado, a diferencia de quienes abordan al problema de interoperabilidad de herramientas y modelos desde la perspectiva de interfaz entre lenguajes (véase, por ejemplo, [MG03] y [CKOGXX]) otros se preocupan de la interoperabilidad al nivel de los modos de cómputo subyacentes a los lenguajes (fundamentalmente, los impulsores del proyecto Ptolemy [PtP01], y otros como Polis [Pol99], o Metropolis [MetXX]). Las precedentes cuestiones son objeto de discusión en las secciones 5.5 y 5.6. [ 5.2.4 ] PROCESOS DE SÍNTESIS S2,3 Los procesos de síntesis identificados s2,3 en la Fig. 5.3 son los que llevan del prototipo virtual indiferenciado al prototipo virtual diferenciado, es decir, del modelo funcional del sistema al modelo arquitectural del sistema. Usualmente se habla de dos tareas componentes de esta fase de síntesis, la exploración del espacio de diseño y la partición ‘hardware’ - ‘software’, tareas que - al nivel que se indica en la Fig. 5.3 706 - están íntimamente relacionadas. No obstante, su consideración por separado obedece a que la referida relación no es bilateral: puede efectuarse 704 En general, el argumento principal para impulsar la extensión de los HLL hasta cubrir los aspectos ‘hardware’ y de sistema, es el de poder así emplear un único lenguaje para la totalidad del proceso de diseño, lo que elimina el problema de continuidad del modelo (ver sección 5.2.3). 705 El código C puede compilarse para su ejecución en el computador anfitrión, o un emulador ‘hardware’ del sistema, o un intérprete ‘software’ (un intérprete del código de máquina del procesador objetivo, que es ejecutado por el computador anfitrión; son típicamente designados simuladores del conjunto de instrucciones, ISS ‘Instruction-Set Simulator’; ver sección 5.2.6.2.1.2). Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 253 un particionamiento del sistema sin la correspondiente exploración del espacio de diseño, pero no se registra una exploración del espacio de diseño a nivel del sistema que no se traduzca en un posterior particionamiento del sistema. [ 5.2.4.1 ] EXPLORACIÓN DEL ESPACIO DE DISEÑO La actividad de exploración del espacio de diseño se describe, para un proceso de diseño genérico, en la sección 2.4.1; la presente sección presenta los objetivos concretos para el caso del diseño electrónico de actualidad, en el marco del esquema abstracto de la Fig. 5.3. En el encare del diseño electrónico de actualidad, el objeto de la exploración del espacio de diseño es asistir a la determinación de la partición (óptima) del sistema en componentes ‘hardware’ - ‘software’, es decir, asistir a la determinación de una arquitectura del sistema707, óptima según ciertos criterios. El prototipo virtual es el vehículo idóneo para la exploración del espacio de diseño, en virtud de su calidad ejecutable - lo que efectivamente permite una alteración sistemática y automatizada de los parámetros de diseño, particularmente por retroanotación - y por carecer de orientación arquitectural, lo que permite su refinamiento hacia diversas arquitecturas candidato, y el estudio del impacto de esas diferentes particiones ‘hardware’ - ‘software’ sobre el desempeño del sistema. En línea con lo que se establece en la sección 2.4.1, la exploración del espacio de diseño en un proceso de diseño electrónico de actualidad, al nivel de abstracción indicado en la Fig. 5.3, tiene como objeto asistir a la determinación de la arquitectura óptima del sistema. En este contexto, el prototipo virtual es un vehículo idóneo de exploración del espacio de diseño, al permitir su refinamiento hacia diversas arquitecturas candidato, y estudiar su impacto en el desempeño del sistema. Al tenerse una arquitectura preestablecida, en un encare de diseño tradicional no se efectúa la exploración del espacio de diseño (a nivel de sistema). [ 5.2.4.2 ] PARTICIÓN EN MODELOS DE MÓDULOS ‘HARDWARE’ Y ‘ SOFTWARE’ - MAPEO FUNCIÓN → ARQUITECTURA “La correcta realización de las fases de alto nivel es probablemente la tarea más importante en el diseño de un circuito. Las decisiones de arquitectura son las que tienen un mayor impacto en todos los parámetros de los circuitos: complejidad, velocidad y consumo. Aunque en fases posteriores se tienen que realizar siempre importantes contribuciones al diseño, es difícil que optimizaciones realizadas en dichas fases puedan compensar una mala selección de la arquitectura de un circuito.” ([TTOV98], p. xviii). La partición del sistema en componentes ‘hardware’ y/o ‘software’ es una decisión crítica de diseño, puesto que define la arquitectura del sistema. Esencialmente, la partición ‘hardware’ - ‘software’ - también llamada partición funcional - es el proceso de decidir, para cada subsistema del prototipo virtual, si resulta más conveniente implementar su función mediante un dispositivo electrónico específico, mediante uno programable y su programación asociada, o mediante las combinaciones más pertinentes de estos casos708, entre las que se incluyen la posibilidad de emplear dispositivos estándar o 706 Nótese que, por definición, es factible una ‘exploración del espacio de diseño’ dentro de cada ‘subespacio’ asociado a otros niveles de abstracción de un proceso de diseño, aunque tales niveles no sean el ‘de sistema’ que se indica en la Fig. 5.3. 707 Ver nota 688, p. 248. 708 No todas las culturas de diseño admiten esta tercera posibilidad: “La partición de objetos funcionales entre componentes del sistema es efectuada como sigue: (1) La funcionalidad del sistema es descrita >> p. 254 Ingeniería Electrónica – Universidad Católica del Uruguay 254 - [ 5 ] Diseño de Sistemas Electrónicos Complejos específicos a la aplicación (ya sean programables o no) y programación estándar o específica (programas ya desarrollados en otros proyectos, eventualmente por otros equipos o terceras partes, o programación específica al caso). La partición ‘software’ - ‘hardware’ puede verse en forma abstracta como un mapeo función→arquitectura: define cuales componentes ‘hardware’ y ‘software’ se han de implementar, y asigna las funciones a las unidades arquitecturales definidas. En el encare de diseño actual, esta tarea está íntimamente ligada a la exploración del espacio de diseño, vía el prototipo virtual. “En términos genéricos, el problema de mapeo toma como entrada una especificación funcional y produce como salida una arquitectura y una asignación de funciones a las unidades arquitecturales.”709 ([ELLS97], p. 42). “La función de costo optimada por el proceso de mapeo incluye una mezcla de tiempo, área, costo, y consumo de potencia, donde la importancia relativa depende fuertemente en el tipo de aplicación. (...) Los componentes de la función de costo pueden tomar la forma de restricción estricta o de cantidad a ser minimizada.”710 ([ELLS97], p. 43). La arquitectura que surge de la partición ‘hardware’ - ‘software’ debe estar incluida en el ‘conjunto solución’ del espacio de diseño711, es decir, debe ser compatible con la especificación. Dado el conjunto de especificaciones funcionales (idealmente, en términos del prototipo virtual del sistema) y un conjunto de componentes (arquitecturas candidato) un algoritmo de particionamiento analiza los posibles mapeos función→arquitectura buscando minimizar una función de costo predeterminada, es decir, busca la partición óptima para un criterio dado (adaptado de [RAASPXX], p. 64). Este es un problema de optimación multivariable de complejidad no polinomial ([RAASPXX], p. 45). Una exploración eficiente del espacio de diseño (sección 5.2.4.1) es esencial para evitar mínimos locales de la función de costo. EL ‘ESQUEMA Y’ DE EVALUACIÓN ARQUITECTURAL Un procedimiento empleado en la literatura para implementar los procesos de síntesis s2,3 es basado en el ‘esquema Y’712. Este esquema fue originalmente propuesto para evaluar arquitecturas orientadas a flujos de datos (por ejemplo, para procesamiento de señales [LWDV99]). El objetivo original es el estudio del desempeño de una arquitectura programable en diferentes aplicaciones. No obstante, puede también ser empleado para evaluar diferentes arquitecturas para una aplicación ([LSS98], pp. 2-3; [WVBXX]). El ‘esquema Y’ se representa en la Fig. 5.4, adaptado para mantener la coherencia con el esquema abstracto del proceso de diseño de la Fig. 5.3: Las arquitecturas son evaluadas cuantitativamente por medio de análisis de desempeño. Los resultados numéricos obtenidos pueden sugerir mejoras en la arquitectura, reestructuras o << p. 253 como una colección de objetos funcionales indivisibles; (2) La función de cada componente del sistema es implementada en ‘hardware’ o ‘software’” ([RAASPXX], p. 48; texto traducido del original, en inglés; ver nota 54, p. 39. El texto en negritas no figuran en el original). 709 Texto traducido del original, en inglés. Ver nota 54, p. 39. 710 Texto traducido del original, en inglés. Ver nota 54, p. 39. 711 Ver sección 2.4. 712 Originalmente propuesto por: B. Kienhuis, E. Deprettere, K. A. Vissers, P. Van Der Wolf, “An Approach for Quantitative Analysis of Application-specific Dataflow Architectures”, Proc. Of International Conference on Application-specific Systems, Architectures and Processors (ASAP 97), pp. 338-349, 1997. No debe confundirse con el esquema homónimo propuesto por Gajski para ilustrar las tres dimensiones en el diseño de circuitos integrados: D. Gajski, “Silicon Compilers”, Addison-Wesley, 1987. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 255 prototipo virtual (modelo funcional) arquitectura1 mapeo función - arquitectura ajuste del prototipo virtual prototipo virtual diferenciado (modelo arquitectural) modificación de la estrategia de mapeo modificación de arquitectura, o selección de otra arquitectura candidato evaluación de desempeño Fig. 5.4: ‘Esquema Y’ de evaluación de arquitecturas programables para diferentes aplicaciones, adaptado a la evaluación de arquitecturas para el prototipo virtual (Adaptado de [LSS98], p. 3; [LWDV99], p. 182, y otros). ajustes en la descripción funcional, o la modificación de la estrategia de asignación de las funciones a los elementos arquitecturales. Aún así, subsiste la cuestión de cómo proponer arquitecturas razonables, o cómo derivarlas del prototipo virtual en forma automática, o al menos, asistida por herramientas de diseño. [ 5.2.5 ] MODELOS DE MÓDULOS ‘HARDWARE’ Y ‘SOFTWARE’: EL PROTOTIPO VIRTUAL DIFERENCIADO “El particionamiento determina que partes de la especificación serán implementadas sobre esos componentes713, mientras que su implementación efectiva será creada por síntesis de ‘software’ y ‘hardware’.”714 ([ELLS97], p. 43). El resultado de la partición funcional es un conjunto de modelos de módulos ‘hardware’ y ‘software’ del sistema, a partir de los cuales los respectivos procesos de síntesis se encargan de llenar los detalles de las unidades arquitecturales e interfases hasta su implementación. A diferencia del ‘arquitecturalmente agnóstico’ prototipo virtual (sección 5.2.3) el modelo del sistema en este nivel es diferenciado en componentes ‘hardware’ y ‘software’, por lo cual puede designarse prototipo virtual diferenciado. Aquí puede presentarse un conflicto crítico, dado que el lenguaje de descripción del prototipo virtual no necesariamente es el adecuado para la descripción de los modelos de módulos ‘hardware’ y ‘software’ del prototipo virtual diferenciado. El empleo de lenguajes 713 Componentes ‘hardware’ (p. ej. microprocesadores, microcontroladores, memorias, dispositivos de E/S, ASIC, FPGA); componentes ‘software’ (p. ej. un sistema operativo, administradores de dispositivos o ‘drivers’, procedimientos, programas concurrentes); y canales de interconexión (p. ej. canales abstractos, memorias compartidas, ‘buses’ de comunicación) ([ELLS97], p. 43). 714 Texto traducido del original, en inglés. Ver nota 54, p. 39. Ingeniería Electrónica – Universidad Católica del Uruguay 256 - [ 5 ] Diseño de Sistemas Electrónicos Complejos diferentes para el prototipo virtual y el prototipo virtual diferenciado - una discontinuidad del lenguaje - puede contribuir al problema de continuidad del modelo referido en la sección 5.2.3, y es una razón por la cual el lenguaje de descripción del prototipo virtual es señalado en dicha sección como un aspecto crítico en el proceso de diseño. Así, el problema consiste en cómo efectuar una eventual traducción entre los lenguajes de descripción del prototipo virtual indiferenciado y el diferenciado en caso de tratarse de descripciones en lenguajes diferentes. La consecuencia más significativa de una eventual discontinuidad del lenguaje de descripción entre el prototipo virtual y el prototipo virtual diferenciado, es que eventuales modificaciones al primero requieren un nuevo esfuerzo de traducción para reflejar los cambios en el segundo715 (Adaptado de [SP02], p. 2). El problema crítico radica en la viabilidad de tal traducción ante una eventual discontinuidad de lenguajes, dado que no es sólo un problema de interfaz entre lenguajes (sección 5.5). La precedente es una de las razones que impulsa a la consecución y empleo de un un único lenguaje para la especificación, modelado, simulación y síntesis del diseño. Esta visión, y la de sus detractores, así como de alternativas que combinan descripciones en diferentes lenguajes, se trata en la sección 5.5. Como se indica en la sección 5.2.3, los procesos de diseño tradicional establecen su primer modelo a este nivel, con lo cual evitan el problema de la discontinuidad del lenguaje. No obstante, lo hacen a costa de no explorar el desempeño de arquitecturas alternativas, e incluso, sin validar la correspondencia con las especificaciones, es decir, lo hacen a costa de la continuidad del modelo. El prototipo virtual diferenciado modela el comportamiento de los módulos en términos de operaciones, sentencias de asignación, y construcciones de control (Adaptado de [Lin97], p.3). Es natural que los modelos de los módulos ‘software’ sean descritos en un HLL, mientras que los modelos de los módulos ‘hardware’ son generalmente descritos mediante un HDL. “Los lenguajes de descripción de ‘hardware’ (HDL) son lenguajes de alto nivel, similares a los de programación (C, Pascal, Ada,...) con una sintaxis y semántica definidas para facilitar el modelado y descripción de circuitos electrónicos, desde las celdas de base de un ASIC hasta sistemas completos, pudiéndose realizar estas descripciones a distintos niveles de abstracción, precisión, y estilos de modelado... (...) Mientras en ‘software’ se recurre a los lenguajes de alto nivel para implementar los algoritmos de forma independiente716 del procesador que los va a ejecutar, en el caso del ‘hardware’ son los HDL, quienes permiten descripciones de los circuitos a alto nivel de abstracción e independientes de la implementación tecnológica final.” ([TTOV98], p. 13-14). Recientemente, se registran esfuerzos - y disputas - relativos a popularizar las descripciones de ‘hardware’ mediante lenguajes HLL, a los cuales se les ha dotado de capacidad para expresar la concurrencia y noción del tiempo que son inherentes al ‘hardware’, pero ajenos al ‘software’ típico717 ([GL97], [GR00], [EDAC01], [SP02]); un ejemplo son las clases SystemC para el lenguaje C ([Swa01], [CJ02], [OSCI02a], [OSCI02b]). Nótese que tal extensión permite usar un único HLL para el prototipo virtual diferenciado - y eventualmente para el prototipo virtual - con lo cual se eliminaría tanto la discontinuidad del lenguaje como la del modelo. 715 Se asume que la discontinuidad del lenguaje impide una traducción automática entre estos. 716 Téngase presente que esta ‘independencia’ requiere de compiladores, ensambladores, enlazadores, cargadores, etc. (en la literatura de habla inglesa, las herramientas CLAS) específicos a cada procesador objetivo. 717 Amén de ignorar la concurrencia y temporización, el desarrollo de ‘software’ usual tampoco requiere que los lenguajes de programación brinden recursos para modelar propiedades típicas de señales eléctricas, como alta impedancia, indeterminado, o no importa; tampoco requiere recursos específicos para modelar cálculos en punto fijo, ni tamaños de palabra arbitrarios, etc. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 257 Una situación usual es que los modelos de los componentes ‘hardware’ se hallen descritos a nivel comportamental en términos de un HDL, mientras que los modelos correspondientes a los componentes ‘software’ se hallen descritos mediante algún HLL, o - más abstractamente - en un lenguaje de comandos. Otra situación posible es que todos los modelos se hallen descritos en términos de un único lenguaje; típicamente un HLL que ha sido dotado con noción de tiempo y capacidad de expresar concurrencia (características inherentes al ‘hardware’). Esto permite usar un único HLL para el prototipo virtual diferenciado - y, eventualmente, para el prototipo virtual - con lo cual se eliminaría tanto la discontinuidad del lenguaje como la del modelo. Idealmente, en el prototipo virtual diferenciado, los modelos de los módulos arquitecturales son aún indiferentes a la tecnología final de implementación. Sin embargo, normalmente resulta imposible mantener un grado de independencia tal, y por tanto, existe indefectiblemente cierta orientación tecnológica en estos modelos. No obstante, el objetivo es mantenerla al mínimo de forma de poder efectuar, dentro de cada ámbito ‘hardware’ y ‘software’, una exploración del (sub)espacio de diseño tendiente a optimar decisiones, ya no a nivel de la arquitectura global como en la sección 5.2.4.1, sino a nivel de los detalles de los módulos arquitecturales y sus interfases. “Las técnicas y herramientas de síntesis tradicionales, que son aplicadas a niveles de abstracción inferiores del diseño, se concentran bien en ‘hardware’ o ‘software’. El particionamiento a estos niveles de abstracción inferiores se ocupa más de la asignación de recursos y optimación del flujo de datos. Al nivel arquitectural, el particionamiento es significativo e implica la identificación de los componentes ‘hardware’ y ‘software’ dado que son inicialmente indistinguibles.” ([Tan01], p. 6). Así, dependiendo de las herramientas concretas que se dispongan, la síntesis de ‘hardware’ a partir de cada descripción HDL admitirá una cierta tecnología de implementación, y la disponibilidad de herramientas CLAS 718 para cada HLL limitará las alternativas de procesadores de silicio estándares para el ‘software’. [ 5.2.6 ] PROCESOS DE SÍNTESIS S3,4 En la presente sección se da un primer nivel de detalle acerca de los procesos de síntesis que llevan del prototipo virtual diferenciado al prototipo realizable. En virtud de fijar a priori la interfaz ‘hardware’ - ‘software’ y no considerar la posibilidad de reconfiguraciones posteriores, los procesos de síntesis de ‘hardware’ y de ‘software’ en un encare tradicional se realizan en forma prácticamente independiente. Por el contrario, los encares de actualidad - además de elaborar un prototipo virtual con el cual validar la especificación, y determinar el mapeo función → arquitectura óptimo - buscan continuar con un proceso de diseño integral, por refinación del prototipo virtual a los modelos de módulos, y de estos, a los módulos propiamente. En un encare de diseño tradicional, los procesos de síntesis que llevan del prototipo virtual diferenciado al nivel de módulos ‘hardware’ y ‘software’ son prácticamente independientes; de hecho, son usualmente ejecutados siguiendo culturas específicas de diseño de ‘hardware’ y ‘software’. La cosíntesis - el desarrollo concurrente de la síntesis de ‘hardware’ y ‘software’ - es una meta de las actuales metodologías de codiseño ‘software’ - ‘hardware’ (sección 5.6) que buscan mantener un proceso de diseño integrado. Cabe notar que es posible efectuar un desarrollo concurrente de los procesos de síntesis de ‘hardware’ y ‘software’ independientemente de la existencia de un prototipo virtual. Tales casos quedan 718 Compiladores, ensambladores, enlazadores, cargadores, etc. Ingeniería Electrónica – Universidad Católica del Uruguay 258 - [ 5 ] Diseño de Sistemas Electrónicos Complejos comprendidos en la sección 5.6, pero aún así, en este documento no se les considera estrictamente procesos de diseño a nivel de sistema, precisamente por carecer de prototipo virtual (indiferenciado). El motivo es que - pese a que en algunos casos de co - diseño el prototipo virtual diferenciado pudiere sufrir modificaciones arquitecturales significativas - su nivel de abstracción es igualmente el de un modelo de módulos ‘hardware’ y ‘software’, con lo cual presenta dos desventajas respecto a un eventual prototipo virtual para el mismo sistema: 1. el menor nivel de abstracción del prototipo virtual diferenciado respecto al prototipo virtual reduce la eficacia y posibilidades de simulación y/o análisis formal, inhibiendo sus potenciales como modelo de referencia para el resto del proceso de diseño; 2. el menor nivel de abstracción del prototipo virtual diferenciado respecto al prototipo virtual complica la verificación de la correspondencia entre el modelo y las especificaciones, ya al inicio del proceso de diseño. La posibilidad de cosíntesis ‘hardware’ - ‘software’ depende de la capacidad de interoperabilidad de las herramientas de diseño. En general, los métodos de codiseño (sección 5.6) requieren un entorno de modelado, ejecución, y verificación (usualmente, simulación) integral o interoperable, desde el prototipo virtual al realizable, sustrato que no siempre es fácil o factible de instrumentar. La presentación de los procesos de síntesis designados s3,4 en el esquema de la Fig. 5.3 y sus correspondientes procesos de análisis a4,3 (secciones 5.2.6.1, 5.2.6.2, y 5.2.6.3) pretenden ilustrar cada proceso de diseño ‘hardware’ y ‘software’ por separado, posponiendo a la sección 5.6 su consideración en un entorno de diseño integral. [ 5.2.6.1 ] SÍNTESIS DE MÓDULOS ‘HARDWARE’ El proceso de síntesis de módulos ‘hardware’ se esquematiza en la Fig. 5.5. Al igual que el esquema abstracto del proceso de diseño electrónico de la Fig. 5.3, el esquema de la Fig. 5.5 es orientado a los niveles de abstracción. En este último esquema, los niveles de abstracción designados “descripción comportamental y/o funcional”, “descripción RT”, “descripción lógica”, “descripción física”, y los procesos etiquetados s3,4 A ... s3,4 C, y a4,3 A ... a4,3 C (que se hallan enmarcados en la zona rectangular al centro del esquema) constituyen un refinamiento entre los niveles 3 (modelos de módulos) y 4 (módulos) del esquema de la Fig. 5.3 (como sugieren los subíndices en la designación de los procesos referidos) mientras que el nivel designado “implementación física” se corresponde719 con el nivel “implementación” de la Fig. 5.3 (y los procesos asociados, con sus homónimos en esta última figura). El motivo de esta superposición entre los niveles de menor abstracción de los esquemas de las figuras 5.3 y 5.5 responde simplemente a la intención de presentar el proceso de síntesis de ‘hardware’ en forma ‘autocontenida’. 719 Corresponde y no equivale, puesto que el nivel de implementación del esquema de la Fig. 5.3 eventualmente involucra a los componentes ‘software’ del sistema. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 259 verificación: - chequeos de consistencia - simulación (lógica) retroanotación: - temporización · estimaciones · retardos de puertas o retardos de conexiones (niveles inferiores) verificación: - chequeos de consistencia - simulación (lógica / analógica) retroanotación: - temporización · retardos de puertas · retardos de conexiones (nivel inferior) verificación: - chequeos de consistencia y/o reglas (LVS; DRC; ERC) - simulación (analógica) retroanotación: - temporización · retardos de conexiones (distribución topológica; incidencia de parásitos) - elementos / efectos parásitos verificación: - ensayo (BIST; ATE) descripción comportamental y/o funcional a4,3 A s3,4 A descripción RT a4,3 B s3,4 B modelos comportamentales y/o funcionales de los módulos 'hardware': descripción HDL comportamental / funcional síntesis comportamental - RT: mapeo de función en arquitectura RT objetivo (celdas de biblioteca) · agendamiento de operaciones · asignación de recursos 'hardware' arquitectura de transferencia de registros de los módulos 'hardware': descripción HDL de arquitectura RT (unidad de datos y unidad de control) síntesis RT - lógica (celdas de biblioteca) descripción lógica a4,3 C s3,4 C descripción física (geometría/topología) a5,4 s4,5 implementación física circuitos de puertas lógicas de los módulos 'hardware': descripción HDL de arquitectura de puertas lógicas síntesis lógica: optimación lógica, planificación topográfica (posicionamiento) e interconexión descripción física de los módulos 'hardware': · descripción geométrica de las capas físicas de los IC (ASIC) · 'bitstreams' de configuración de IC reconfigurables (FPGA) · procesos de manufactura (tecnología específica) · procesos de configuración dispositivos físicos (IC) de los módulos 'hardware' Fig. 5.5: Esquema del proceso de síntesis de ‘hardware’. Los niveles de abstracción designados “descripción comportamental y/o funcional”, “descripción RT”, “descripción lógica”, “descripción física”, y los procesos etiquetados s3,4 A ... s3,4 C y a4,3 A ... a4,3 C (enmarcados en la zona rectangular al centro del esquema) constituyen un refinamiento entre los niveles 3 (“modelos de módulos”, o “prototipo virtual diferenciado”) y 4 (“módulos”, o “prototipo realizable”) del esquema de la Fig. 5.3. A diferencia de estos, el nivel designado “implementación física” se corresponde con el nivel 5 (“implementación”) de la Fig. 5.3, y los procesos asociados s4,5 y a5,4, con sus homónimos en la referida figura. Este esquema representa el proceso de implementación de un circuito integrado (IC). El proceso de implementación de una plataforma ‘hardware’ sobre una placa de circuito impreso (PCB) se limita al nivel de “descripción física”, donde lo que se describe es el PCB del sistema sobre el cual se integran los dispositivos y componentes físicos. El esquema de la Fig. 5.5 representa al proceso de implementación de un circuito integrado a partir de su modelo comportamental o funcional. Estos IC - típicamente: procesadores ISA de tipo COTS (GPP, MCU, o DSP) o ASIP; ASIC (analógicos, digitales, o mixtos); SoC; MEMS son posteriormente interconectados en un PCB, junto con dispositivos discretos y más elementales, para conformar plataformas ‘hardware’. Desde la perspectiva de los niveles de abstracción del esquema de la Fig. 5.5, el proceso de implementación de la plataforma ‘hardware’ se halla al nivel de “descripción física”, donde la Ingeniería Electrónica – Universidad Católica del Uruguay 260 - [ 5 ] Diseño de Sistemas Electrónicos Complejos descripción corresponde a la topografía del PCB que soporta e interconecta a los dispositivos y componentes físicos que constituyen la plataforma. Así, la presente sección 5.2.6.1 se dedica fundamentalmente a describir el proceso de diseño de un IC, refiriéndose al diseño de plataformas ‘hardware’ sobre PCB cuando resulte pertinente efectuar algún comentario. El esquema de síntesis de ‘hardware’ representado en la Fig. 5.5 se refiere al proceso de implementación de un circuito integrado (IC) de complejidad significativa, partiendo de su modelo comportamental/funcional. Los IC VLSI así implementados720 son posteriormente interconectados en un PCB para conformar plataformas ‘hardware’. [ 5.2.6.1.1 ] DESCRIPCIÓN COMPORTAMENTAL/FUNCIONAL DE MÓDULOS ‘HARDWARE’ Como se indica en la sección 5.2.5, es usual que los modelos de los componentes ‘hardware’ del prototipo virtual diferenciado se hallen descritos en un HDL (o, equivalentemente, un HLL aumentado con nociones de concurrencia y temporización). Así, el proceso de síntesis de los módulos ‘hardware’ parte de los modelos comportamentales/funcionales. A modo de ejemplo, en la Fig. 5.13 se presenta la descripción VHDL funcional de una puerta OR (líneas 11 a 17) que también cabe considerar como descripción comportamental, puesto que establece el comportamiento de la entidad, independientemente que esta ejecute una función en el sentido tradicional. Aunque maximalmente elemental, el ejemplo tiene la virtud de ilustrar el nivel de abstracción comportamental/funcional por comparación con otras descripciones; por ejemplo, una descripción estructural (la descripción de la interfaz de la entidad ‘puerta_or’ en las líneas 6 a 9 de la Fig. 5.13, equivalente al símbolo esquemático de una puerta OR, constituye parte de una descripción estructural) o una descripción en términos de funciones booleanas (en este caso elemental, sencillamente Z = A + B) o de la descripción geométrica orientada a la implementación en silicio (ver figuras 5.10, 5.11, y 5.12721). El ejemplo muestra, además, la capacidad del HDL para expresar concurrencia722 y su noción del tiempo723. En lo que respecta a los componentes ‘hardware’ del prototipo virtual diferenciado, a partir de este nivel de abstracción el problema de discontinuidad de lenguajes puede ser completamente evitado, aunque ello no significa que se obtenga la máxima eficiencia de modelado. 720 Típicamente: procesadores ISA de tipo COTS (GPP, MCU, o DSP) o ASIP; ASIC (analógicos, digitales, o mixtos); SoC; MEMS. Componentes elementales como lógica discreta, o componentes no integrados como resistores, capacitores, inductores, diodos, transistores, etc. no son diseñados e implementados siguiendo el proceso representado en la Fig. 5.5. 721 Estas figuras corresponden a dispositivos más complejos que una simple puerta OR. 722 La sentencia process (A, B) en la línea 13 implica que la entidad es sensible al cambio - eventualmente simultáneo - de cualquiera de las señales A o B. 723 La declaración after 10 ns en la línea 15 asocia explícitamente un retardo a la asignación Z ← A or B. Nótese que esta temporización puede implicar que la descripción se orienta a una tecnología de implementación particular, para la cual el retardo es compatible. Lo usual, sin embargo, es que el retardo constituya un refinamiento del modelo funcional efectuado por retroanotación desde etapas posteriores del proceso de diseño, donde no sólo se tiene en cuenta la tecnología de implementación, sino además los efectos parásitos de la topografía particular del diseño en cuestión. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 261 Fig. 5.6: Descripción VHDL funcional de una puerta OR (líneas 11 a 17). Nótese en la linea 13 la concurrencia explícita entre las señales A y B, y en la línea 15 la temporización explícita de la señal Z, típicas construcciones de un lenguaje orientado a la descripción de ‘hardware’. Esta descripción puede también considerarse comportamental, puesto que establece el comportamiento de la entidad, independientemente que esta ejecute una función en el sentido tradicional. En principio, cualquier modelo HDL de un módulo ‘hardware’ es sintetizable desde el momento en el que es simulable. “Al fin y al cabo, un simulador en tiempo real (un emulador) sería una implementación ‘hardware’ del código. En consecuencia, el problema no es tanto la posibilidad de sintetizar una determinada construcción sino las prestaciones (coste, velocidad, consumo, etc.) de la implementación correspondiente” ([TTOV98], p. 193). Consecuentemente, las herramientas de síntesis imponen ciertas restricciones a la descripción HDL para poder asegurar una eficacia mínima en el proceso de síntesis, es decir, para poder identificar un ‘hardware’ que implemente eficientemente la descripción HDL. Esto se traduce en que las descripciones no pueden hacer uso de la totalidad de los recursos expresivos de los HDL, sino que han de limitarse a determinados subconjuntos (designados por ello sintetizables) de cada HDL para garantizar la posibilidad de síntesis eficiente. Y el inconveniente al respecto es que se carece de un subconjunto sintáctico estándar para cada HDL que sea aceptado por todas las herramientas, con lo cual la síntesis es altamente dependiente de las herramientas de diseño y el flujo de diseño adoptados en cada caso. Para poder garantizar una síntesis eficiente las herramientas de síntesis imponen restricciones sintácticas y semánticas a las descripciones de los módulos ‘hardware’, que les impiden hacer uso de la totalidad de los recursos expresivos de los HDL, y les limitan a determinados subconjuntos (designados sintetizables). La carencia de subconjuntos sintácticos estándar hace que las tareas sean fuertemente dependientes de las herramientas concretas que se adopten en cada caso y cada flujo de diseño, y por tanto, dificulta la reutilización de descripciones. Además, aunque los HDL permitan evitar la discontinuidad del lenguaje, subsiste el problema de la continuidad del modelo en cualquier proceso de diseño que carezca de un sustrato de modelado integral o interoperable (sección 5.6) que permita integrar a los modelos de módulos ‘hardware’ con sus pares ‘software’, y - a un nivel de abstracción superior - al prototipo virtual. Ingeniería Electrónica – Universidad Católica del Uruguay 262 - [ 5 ] Diseño de Sistemas Electrónicos Complejos [ 5.2.6.1.2 ] SÍNTESIS COMPORTAMENTAL S3,4 A La primer tarea del proceso de síntesis de ‘hardware’ (fase identificada s3,4 A en la Fig. 5.5) es la síntesis comportamental - también llamada síntesis de alto nivel o HLS 724 - que de la descripción funcional de los módulos ‘hardware’ produce una arquitectura de lógica de transferencia de registros o arquitectura RT725 (sección 5.2.6.1.3). Es frecuente hallar en la literatura que por ‘síntesis comportamental’ se comprenda al proceso de síntesis completo, que toma la descripción funcional y devuelve la descripción física. En este documento, sin embargo, se prefiere limitar el alcance del término, con objeto de poder presentar en forma natural los niveles de descripción RT y lógico726. Del proceso de síntesis ‘hardware’, la síntesis comportamental es - a la fecha - la fase que dispone de menor asistencia informática, habiendo pocas herramientas comerciales o académicas, y siendo estas relativamente inmaduras respecto a herramientas de síntesis correspondientes a los niveles RT e inferiores. La salida de una herramienta de síntesis comportamental debe estar constituida por las dos partes básicas ([Lin97], p.4; [SP02], p.3; [ZivXX], p.5; [CCGLPSV99], p. 187) que conforman una arquitectura RT (sección 5.2.6.1.3; ver Fig. 5.7): • la estructura RT de la unidad de procesamiento de datos, y • la especificación de una máquina de estados finita (FSM 727) de la unidad de control. En parte debido a la inmadurez de su desarrollo, y en parte por motivos de eficiencia, las herramientas HLS existentes están orientadas al dominio de aplicación del sistema o de los dispositivos a sintetizar. Orientaciones frecuentes de herramientas HLS son a los dominios de sistemas dominados por flujos de datos - por ejemplo, procesamiento de señales - o sistemas dominados por flujo de control - por ejemplo, sistemas reactivos, máquinas de estado, o cualquier sistema que requiera toma de decisiones - (Adaptado de [CCGLPSV99], p. 191). Otra posible orientación para sistemas HLS es el diseño de procesadores con arquitectura de conjunto de instrucciones728 ([Lin97], p. 15). Además de esta orientación al dominio de aplicación, las herramientas HLS se especializan en la síntesis de circuitos de bajo consumo, o de alta confiabilidad (cuando la seguridad es una propiedad primordial) u orientados a facilitar su verificación729. Así, cada herramienta HLS asume un esquema arquitectural para la síntesis, lo que implica ciertas restricciones en la arquitectura RT que pueden generar 730. Esto atenta contra las posibilidades de reutilización de modelos ya sintetizados. Independientemente del patrón arquitectural adoptado por el diseñador o la herramienta HLS, la arquitectura RT objetivo debe estar compuesta por recursos ‘hardware’ predefinidos ([CCGLPSV99], pp. 192-193). Es decir, se requieren bibliotecas de componentes RT para sintetizar la arquitectura RT correspondiente a una descripción funcional. Estas bibliotecas pueden ser 724 HLS, acrónimo de la voz inglesa ‘High-Level Synthesis’. 725 RT, por ‘Register Transfer’; también se habla de arquitectura RTL, ‘Register-Transfer Level’. 726 En este aspecto, hay similaridades con el concepto de compilación del ‘software’, donde es usual asumir que el término se refiere al proceso de generación de código de máquina a partir del programa descrito en un HLL, aunque es instructivo considerar etapas intermedias de generación de un programa en lenguaje ensamblador, y posteriormente fases de ensamblado y enlazado hasta el código de máquina. 727 FSM, por ‘Finite-State Machine’. 728 Procesadores ISA, acrónimo de ‘Instruction-Set Architecture processors’. Si bien estos son usualmente denominados ‘microprocesadores’, y asociados exclusivamente a los procesadores de instrucciones ‘estándar’ presentes en los computadores convencionales, estrictamente el concepto de procesador ISA incluye a los microcontroladores (μC) procesadores de señales digitales (DSP) y también a los procesadores de instrucciones de aplicación específica (ASIP). 729 En la literatura, DFT, ‘Design For Testability’: diseño orientado a la verificación. 730 Refiérase a la sección 5.2.6.1.3 para una sinopsis del significado de ‘esquemas arquitecturales RT’ (estructuras de interconexión de componentes arquitecturales RT); un ejemplo se representa en la Fig. 5.8. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 263 dependientes de la tecnología de implementación, y por tanto, pueden diferir según la síntesis se oriente a ASIC, FPGA, o soluciones intermedias731. Los componentes o celdas de una biblioteca RT pueden ser clasificados en dos categorías generales ([CCGLPSV99], p. 194): • celdas primitivas: celdas que implementan las típicas operaciones aritméticas, relacionales, lógicas, etc.732 • celdas de aplicación específica: funciones personalizadas para el proyecto específico733 Desde el punto de ([CCGLPSV99], p. 195): vista de su implementación, estas celdas pueden ser • celdas fijas (‘hard-cells’): son celdas que ya definen un esquema lógico y topográfico según criterios de optimación (velocidad, área, consumo, etc.) no siendo por tanto modificables; por ejemplo, las celdas estándar (‘standard cells’) • celdas configurables (‘soft-cells’): son celdas descritas como una red (‘netlist’) de celdas de una biblioteca (por ejemplo, celdas fijas, primitivas o de aplicación específica) cuya topografía no es fija, requiriendo posteriores fases de posicionamiento e interconexión (‘placement’ y ‘routing’; ver sección 5.2.6.1.6) • celdas regulares: semejantes a las celdas configurables, las celdas regulares son compuestas de celdas de una biblioteca, orientadas a circuitos que presentan una gran regularidad estructural • celdas lógicas: celdas descritas en un HDL en términos funcionales (los circuitos combinatorios son descritos en términos de funciones booleanas, y los secuenciales en términos de ecuaciones de estado y salida, o diagramas de transiciones de estados) que requieren posteriores procesos de síntesis RT - lógica (sección 5.2.6.1.4) para obtener un esquema lógico (sección 5.2.6.1.5) y de posicionamiento e interconexión (sección 5.2.6.1.6) para obtener la descripción física (sección 5.2.6.1.7); este tipo de celdas es particularmente apropiado para el diseño de funciones personalizadas En [Tew96] se presentan las principales modalidades de ASIC, en particular, los diseños en base a diferentes tipos de celdas. Nótese que, dependiendo de la implementación de las celdas en la biblioteca disponible para el diseño, las fronteras entre los niveles RT, lógico y físico, y entre los correspondientes procesos de síntesis, se torna difusa. Similarmente a como sucede en la traducción de un programa descrito en un HLL a lenguaje ensamblador, el primer paso de una herramienta HLS consiste en capturar la descripción comportamental (dada por el código fuente en HDL) a un formato intermedio, usualmente un grafo734 donde los nodos representan operaciones, los arcos indican la dependencia de las operaciones, y las propiedades asociadas a los arcos constituyen las restricciones del proceso735. Este grafo puede estar orientado al flujo de datos (DFG, ‘data flow graph’) al flujo de control (CFG, ‘control flow graph’) o al flujo de datos y control (CDFG, ‘control-data flow graph’) 731 732 Ver sección 4.1.2. Sumadores, multiplicadores, desplazadores, contadores, comparadores, puertas NAND, NOR, XOR, OR, AND, NOT, etc. multiplexores, demultiplexores, 733 De ser posible y conveniente, cabe la reutilización de celdas específicas desarrolladas en proyectos previos. 734 Similarmente a un proceso de generación o interpretación de un programa, esto requiere fases de análisis léxico del código fuente (reconocimiento e identificación de símbolos) análisis sintáctico (determinación de la estructura descrita, y generación del grafo representativo) y un análisis semántico (identificación de las operaciones representadas en el grafo). Ver sección 5.2.6.2.3. 735 La captura de la información de entrada en un formato intermedio, típicamente algún grafo adecuado al caso, es un recurso casi universal en las herramientas CAD, tanto de desarrollo de ‘software’ como ‘hardware’ (ver Fig. 5.15). Muchas de las tareas de optimación que ejecutan las herramientas se efectúan por transformaciones del grafo. Ingeniería Electrónica – Universidad Católica del Uruguay 264 - [ 5 ] Diseño de Sistemas Electrónicos Complejos correspondientemente a la [CCGLPSV99], pp. 197-203) orientación de la herramienta HLS 736 ([Lin97], p.4; La transformación de la descripción funcional capturada en el grafo en la arquitectura RT objetivo consta de tres fases interdependientes ([Lin97], p.4; [CCGLPSV99], pp. 203-221; [ZivXX], p. 5): • agendamiento (‘scheduling’): definición del orden de ejecución de las operaciones indicadas en la descripción comportamental (capturadas en los nodos del grafo) asociándole a cada una un intervalo de tiempo (‘control step’) el necesario para su ejecución737 • asignación (‘allocation’): selección del tipo738 y cantidad739 de componentes RT de la biblioteca para conformar la unidad de procesamiento de datos (UF, elementos de almacenamiento y de interconexión740) • asociación (‘binding’): asociación entre los recursos asignados y las operaciones agendadas (operaciones a las UF, variables a los elementos de almacenamiento, y transferencias de datos a interconexiones tal que los datos son transferidos acordes al agendamiento). Es usual que las tareas de asignación y asociación sean hechas en forma simultánea. La arquitectura RT sintetizada por un proceso HLS será óptima dependiendo de la adecuada exploración del espacio de diseño correspondiente 741. De hecho, similarmente al mapeo función → arquitectura que se efectua en el nivel de abstracción superior sobre varias arquitecturas candidato para determinar la óptima (sección 5.2.4) la síntesis comportamental generalmente produce varias arquitecturas RT candidatas, y busca la minimización de la función de costo aplicable al caso. Dado que los sistemas HLS tradicionales efectúan la síntesis en base a estimaciones muy burdas (el área se estima como la suma del área de las celdas empleadas para el diseño; se asume que el retardo de interconexión es insignificante 742) la interacción entre estas herramientas y las correspondientes al nivel físico (planificación topográfica o posicionamiento, e interconexión743) requiere una interoperabilidad mucho mayor que la existente ([Lin97]p. 12). 736 Y al propósito del sistema a sintetizar, asumiendo que la herramienta se ha elegido adecuadamente. 737 A nivel RT, esto requiere cinco etapas: (1) lectura de datos, desde elementos de almacenamiento o puertos externos, (2) transferencia de datos a una UF, (3) ejecución de la operación, (4) transferencia de datos hacia elementos de almacenamiento o puertos externos, (5) escritura de datos en el elemento de almacenamiento. 738 En caso que exista más de un elemento en la biblioteca de componentes RT capaz de ejecutar la misma operación. 739 En caso de existir dos o más operaciones pasibles de ejecución por diferentes UF, cabe compartir un recurso entre varias operaciones o ejecutarlas en paralelo, y consecuentemente, debe definirse también la cantidad de elementos de almacenamiento e interconexión necesarios (y revisar el correspondiente agendamiento). 740 Ver sección 5.2.6.1.3. 741 Éste es el determinado por los modelos de los módulos ‘hardware’. 742 Hipótesis adecuada sólo para diseños en base a tecnologías ‘viejas’: la progresiva reducción de las dimensiones de los transistores debida a los avances en las tecnologías de fabricación de semiconductores (sección 4.2) hace que el área y los retardos introducidos por las interconexiones pasan a ser los dominantes frente a los inherentes a los transistores y puertas lógicas que estos conforman. Nótese además que se implica que las celdas incluyen algún tipo de información de su implementación física; en caso de celdas fijas, esta información se dispone directamente, pero en otros casos debe estimarse o retroanotarse desde fases posteriores del proceso de síntesis. 743 Respectivamente, herramientas de ‘floorplanning’ o ‘placement’, y ‘routing’; genéricamente, las herramientas de ‘layout’. Sólo considerando las diferencias entre los ASIC y las FPGA, resulta evidente que las herramientas de ‘layout’ están generalmente asociadas a cada posible implementación, de forma similar a como un ensamblador se halla asociado a un procesador (o una familia) ISA particular. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 265 No obstante, con el advenimiento de dispositivos reconfigurables744 como FPGA, que no requieren de lentas y costosas etapas de fabricación 745, se posibilita la consecución rápida y económica de prototipos físicos para simulación y verificación. Concomitantemente, el cuello de botella se traslada en estos casos a las etapas de mayor abstracción del diseño, y allí las herramientas HLS constituyen un aporte significativo para abreviar los tiempos de diseño. [ 5.2.6.1.3 ] DESCRIPCIÓN RT La descripción en términos de lógica de transferencias de registros, o descripción RT, es bien el producto de una herramienta HLS (sección 5.2.6.1.2) o bien una descripción efectuada en forma directa por el diseñador, ad hoc, o por refinamiento manual de un modelo comportamental del ‘hardware’. En forma abstracta, la arquitectura RT de un circuito digital 746 de complejidad significativa747 puede ser dividida en cuatro módulos: unidad de procesamiento de datos748, unidad de control, elementos de memoria, y elementos de entrada/salida ([CCGLPSV99], p. 186). Asociando los elementos de memoria y entrada/salida locales a la unidad de procesamiento de datos749, una descripción RT se compone básicamente de dos partes: • la estructura RT de la unidad de procesamiento de datos, y • la especificación de una máquina de estados finita (FSM) de la unidad de control750. Esta descripción RT abstracta se representa en la Fig. 5.7. La unidad de procesamiento de datos tiene como cometido la manipulación y transformación de datos (el cómputo) que debe efectuar el circuito. Usualmente, es conformada en base a tres tipos de componentes, provenientes de alguna biblioteca de componentes RT751. 744 Se presume aquí más adecuado el término reconfigurable que el término programable (pese a ser este último el derivado de la designación y, por tanto, el más usual); ‘hardware’ reconfigurable describe con mayor exactitud la naturaleza de dispositivos como las FPGA que ‘hardware’ programable , el cual además puede ser asociado fácilmente a procesadores ISA. 745 Ver sección 4.1.2. 746 Cabe recordar que, en este documento, la síntesis de circuitos analógicos - bastante más recalcitrante a la automación que su contraparte digital - se supone es efectuada mayormente en forma manual, por lo cual se considerará que los flujos y herramientas de síntesis aplicables al diseño analógico estarán razonablemente comprendidos por los de síntesis automática o manual de ‘hardware’ digital. 747 Aunque puede hacerse una descripción RT de cualquier circuito elemental, el objetivo por excelencia de la síntesis de ‘hardware’ son los circuitos complejos, como un procesador digital (un ASIC, o ASIP; dentro de este último tipo figuran los microprocesadores o microcontroladores ‘típicos’, además de los específicos a una aplicación). 748 ‘Datapath’, en la literatura angloparlante; literalmente: vía de datos. Una designación alternativa usual es unidad aritmético-lógica o ALU (del inglés ‘Arithmetic-Logic Unit’). La designación más ilustrativa, combinación de las anteriores, sería unidad de procesamiento aritmético-lógico de datos. No obstante, por razones de brevedad, aquí se prefiere unidad de procesamiento de datos, o más lacónicamente, unidad de datos. 749 “Los módulos de memoria RAM y ROM son considerados como externos a la descripción RT por la mayoría de las herramientas de síntesis.” ([TTOV98], p. 197, nota 4) 750 En ocasiones referida como máquina ASM, ‘Algorithmic State Machine’. 751 Esta biblioteca es la que se le especifica a la herramienta HLS en caso de un proceso de síntesis comportamental (5.2.6.1.2) para que esta pueda sintetizar la descripción RT a partir de la descripción HDL funcional. Ingeniería Electrónica – Universidad Católica del Uruguay 266 - [ 5 ] Diseño de Sistemas Electrónicos Complejos secuenciación entradas de control UNIDAD DE CONTROL señales de estado entradas de datos salidas de control señales de control UNIDAD DE DATOS salidas de datos cómputo Fig. 5.7: Modelo abstracto de la arquitectura RT de un procesador digital (adaptado de [TTOV98], p. 198) que no explicita la señal de reloj suministrada a ambas unidades. • unidades funcionales (UF): unidades capaces de efectuar operaciones sobre datos, como unidades aritmético-lógicas (sumadores, multiplicadores, desplazadores, contadores, etc.) y unidades de funciones específicas, como unidades de direccionamiento de memoria, etc. • unidades de almacenamiento: flip-flops individuales, registros, y eventualmente memorias • unidades de interconexión: conexiones punto a punto (un origen, un destino) ‘buses’ (diversos orígenes a diversos destinos) multiplexores (diversos orígenes a un destino) demultiplexores (un origen, diversos destinos) La unidad de control es responsable de ordenar la ejecución de operaciones en la unidad de datos (la secuenciación del cómputo). Para ello, un nivel activo en una de las señales de control en la Fig. 5.7 origina alguna acción sobre los componentes de la unidad de datos, por ejemplo: transferencia de datos entre registros, incrementos de un contador, selección de multiplexores, accionamiento de llaves, etc. La función de la unidad de control es que las señales de control se emitan en la secuencia adecuada y en el momento adecuado. Así, la FSM que describe a la unidad de control debe especificar cada secuencia de operaciones que la unidad de datos debe ejecutar en cada paso (‘control step’)752 ([Lin97], p.4). Las unidades de control son esencialmente circuitos secuenciales, y como tales, pueden ser de tipo fijas (‘hardwired’) o microprogramadas. En el último caso, por lo general se requieren herramientas específicas, que asistan a generar la unidad de direccionamiento de memoria, definir la capacidad de memoria de programa, generar la programación y cargarla en la memoria de programa, etc. ([CCGLPSV99], pp. 221-222). Dependiendo del tipo de sistema objetivo (si es dominado por flujo de datos, por flujo de control, o mixto) será más adecuada cierta forma de interconexión de las UF, cierta forma de compartir esas conexiones, etc. De hecho, como se menciona en la sección 5.2.6.1.2, las herramientas HLS se diseñan para la síntesis en base a un esquema arquitectural específico. Por ejemplo, si el sistema es orientado a flujo de datos, un esquema arquitectural posiblemente adecuado será el de segmentación (‘pipeline’). Características usuales que diferencias los diferentes patrones arquitecturales son: unidad de control centralizada o descentralizada; unidades funcionales sencillas o complejas; interconexiones en términos de ‘buses’ (segmentados por llaves, o no) o multiplexores, etc. Un ejemplo se representa en la Fig. 5.8. 752 Usualmente, cada ciclo de reloj, aunque dependiendo del caso y el esquema arquitectural RT, ciertas operaciones pueden agendarse sobre varios ciclos de reloj (se asume aquí que se trata de sistemas síncronos). Ver nota 737, p. 264. Diseño de Sistemas Electrónicos Complejos [ 5.2 ] Estructura abstracta del proceso de diseño de sistemas electrónicos - 267 ' bus' de control ' bus' de datos unidad de control multiplexor multiplexor multiplexor multiplexor registro registro registro registro UF UF Fig. 5.8: Esquema arquitectural RT (arquitectura RT objetivo) de la herramienta HLS ‘HYPER’, de Berkeley (adaptado de [CCGLPSV99], Figura 5.23, p. 227). En resumen: una arquitectura RT es un conjunto de unidades funcionales, de almacenamiento, y de interconexión, que conforman una unidad de procesamiento de datos, y una lógica de control que agenda adecuadamente las operaciones de la unidad de procesamiento de datos, de forma tal que se respeten las restricciones de área (básicamente, dada por la cantidad de UF) velocidad (los ciclos de reloj necesarios para ejecutar las operaciones) etc. correspondientes al caso (Adaptado de [SP02], p. 3). Los posibles patrones de interconexión de componentes RT serán adecuados o no en función del tipo de sistema a sintetizar (por ejemplo, si es gobernado por flujo de datos, de control, o mixto); diferentes herramientas HLS están orientadas a la síntesis de descripciones RT conformes a un patrón o esquema arquitectural particular. El empleo de bibliotecas de componentes RT puede implicar una orientación tecnológica particular (de hecho, lo impone si las celdas de biblioteca son fijas y poseen una descripción física correspondiente a una tecnología de fabricación específica 753); la incidencia tecnológica depende entonces de la biblioteca y su tipo de celdas. Consecuentemente, el nivel RT es el más bajo que puede mantenerse razonablemente independiente de la tecnología de implementación. 753 Celdas como las correspondientes a FPGA, mar de puertas, etc. podrán estar limitadas en mayor o menor medida a una familia de dispositivos o tecnologías de implementación. Sin embargo, celdas correspondientes a una tecnología específica de fabricación de ASIC no pueden ser empleadas ‘tal cual’ para tecnologías de fabricación cuya dimensión mínima sea mayor (aunque puede ser posible su empleo para tecnologías que admiten menores dimensiones, siempre que se respeten las reglas de diseño aplicables a la ‘nueva’ tecnología). Una excepción son, por ejemplo, las tecnologías CMOS escalables de MOSIS (SCMOS) cuya ‘escalabilidad’ apunta precisamente a que una descripción física sea compatible con varias tecnologías y no sólo con una (lo que, naturalmente, puede resultar en que la descripción física no aproveche al máximo las posibilidades de la tecnología, con una penalización en términos de área). MOSIS (‘MOS Implementation Service’) es un servicio estandarizado para fabricación de VLSI IC, que permite el prototipado rápido de IC (y también de PCB). La función del servicio MOSIS es la de un agente intermediario entre el diseñador y los fabricantes (las ‘foundries’) de forma tal que la consideración del d