Articulo de referencia

Lenguaje de modelado PROSE

PROSE [ 1 ] [ 2 ] [ 3 ] [ 4 ] fue la máquina virtual matemática 4GL que estableció el paradigma de modelado holístico conocido como Cálculo Sintético [ 5 ] [ 6 ] [ 7 ] (también ...

PROSE [ 1 ] [ 2 ] [ 3 ] [ 4 ] fue la máquina virtual matemática 4GL que estableció el paradigma de modelado holístico conocido como Cálculo Sintético [ 5 ] [ 6 ] [ 7 ] (también conocido como MetaCálculo). Sucesor del lenguaje de simulación y optimización SLANG [ 8 ] /CUE [ 9 ] desarrollado en TRW Systems, se introdujo en 1974 en las supercomputadoras Control Data. Fue el primer lenguaje comercial [ 10 ] [ 11 ] [ 12 ] [ 13 ] en emplear diferenciación automática (AD) , que se optimizó para iterar en la pila de instrucciones de la CPU CDC 6600 .

Aunque PROSE era un lenguaje de programación procedimental con una rica estructura de bloques, su enfoque principal era la combinación de sistemas matemáticos de variables simultáneas, tales como:

sistemas de ecuaciones no lineales implícitas, sistemas de ecuaciones diferenciales ordinarias y optimización multidimensional.

Cada uno de estos modelos de sistema era distinto y contaba con plantillas de operadores para automatizar y resolverlos, añadidas a la sintaxis procedimental. Estos problemas de sistemas automatizados se consideraban "holísticos" porque sus incógnitas eran simultáneas y no podían reducirse en su formulación para resolverse por partes ni mediante manipulación algebraica (por ejemplo, sustitución), sino que debían resolverse en su conjunto. La integridad también se relacionaba con la determinación algorítmica o el "cierre" matemático, lo que hacía posible y segura la convergencia de la solución en principio, siempre que no se viera afectada por inestabilidad numérica.

Holarquías de propagación diferencial

Dado que estos modelos de problemas holísticos podían automatizarse y resolverse de forma independiente gracias a esta capacidad de cierre, podían integrarse en sistemas más complejos anidándolos unos dentro de otros, a modo de subrutinas. Los usuarios podían considerarlos como subrutinas ordinarias.

Sin embargo, desde un punto de vista semántico, esta combinación matemática era considerablemente más compleja que la mecánica de las subrutinas, ya que un motor de solución iterativo se asociaba a cada modelo de problema mediante su plantilla de operador de llamada , situada por encima de él en la jerarquía del programa. En su proceso de solución numérica, este motor tomaba el control y llamaba iterativamente a la subrutina del modelo de problema, sin regresar a la plantilla de llamada hasta que se resolvía el problema del sistema. Durante algunas, o incluso todas, las llamadas iterativas a la subrutina del modelo, el motor invocaba la diferenciación automática de las fórmulas en la jerarquía del modelo con respecto a las incógnitas de entrada (argumentos) del modelo definidas en la plantilla de llamada. Se implementaron mecanismos adicionales en la semántica para acomodar el anidamiento generalizado de estos modelos holísticos.

Diferenciación de los procesos de predicción

Si la solución anidada era una predicción (por ejemplo, integración numérica), su algoritmo de solución, además de las fórmulas del modelo, también se diferenciaría automáticamente. Dado que esta diferenciación se propagaba (mediante la regla de la cadena ) a lo largo de la integración, desde las condiciones iniciales hasta las condiciones de contorno, se realizaba la diferenciación de las condiciones de contorno con respecto a las condiciones iniciales (las llamadas derivadas de Fréchet ). Esto permitía la solución rutinaria de problemas de contorno mediante métodos iterativos de "disparo" utilizando motores del método de Newton. Por supuesto, al mismo tiempo, esta diferenciación propagada también podía realizarse con respecto a parámetros arbitrarios de las ecuaciones diferenciales para dar forma a las funciones integradas. Estos parámetros podían resolverse como incógnitas de cualquier nivel de anidamiento en la jerarquía superior al proceso de integración, lo que suponía una gran ventaja en la formulación general del problema.

Diferenciación de los procesos de búsqueda

Si el problema interno anidado era una búsqueda, y el problema externo también lo era (por ejemplo, optimización), entonces las derivadas parciales obtenidas con respecto a las incógnitas de la búsqueda interna debían convertirse en derivadas parciales de la búsqueda externa mediante una transformación de coordenadas de geometría diferencial. Este era también un proceso iterativo que implicaba diferenciación de orden superior y, en ocasiones, diferentes variables independientes.

Sin embargo, estos procesos aritméticos diferenciales extensos e iterativos estaban completamente ocultos para el usuario y apenas resultaban más relevantes para su tarea de modelado que si solo se utilizaran subrutinas ordinarias y sus llamadas. El hecho de que fueran iterativos y que el número y tipo de iteraciones fueran indefinidos se debía a que se estaba resolviendo un subproblema completo que, a su vez, formaba parte de un problema de mayor envergadura. Era natural denominar a cada conjunto de problemas como un " holón ", ya que esta entidad dinámica encajaba perfectamente con la teoría de Arthur Koestler, quien acuñó dicho término. Esto no se incluyó en la documentación original de PROSE, dado que en aquellos años la teoría de Koestler era novedosa y algo controvertida. Este término se utilizó posteriormente tras la ratificación por parte de Ken Wilber de los conceptos de holón de Koestler.

Plantillas de operador de automatización

El paradigma de modelado completo constaba de solo tres clases de holones, que se distinguen por sus plantillas de operadores que se muestran a continuación.

Mejoramiento

ENCONTRAR incógnitas simultáneas EN la subrutina del modelo POR motor de resolución [ MANTENER variables de restricción de desigualdad ] [ COINCIDENCIA DE LAS VECES DE RESTRICCIÓN DE IGUALDAD ] PARA MAXIMIZAR | MINIMIZAR la variable objetivo

Correlación

ENCONTRAR incógnitas simultáneas EN la subrutina del modelo POR motor de resolución PARA COINCIDIR con las variables de restricción de igualdad

Simulación

INICIO motor de resolución PARA subrutina modelo ECUACIONES variables de tasa/variables de nivel DE variable independiente PASO variable de incremento A variable límiteIntegrar la subrutina del modelo mediante el motor de resolución.

Estas tres plantillas de operadores crearon holones dinámicos que encapsulaban una jerarquía de subrutinas de modelos de ecuaciones, las cuales podían contener otros holones anidados, ya que las subrutinas del modelo podían contener cualquiera de las plantillas de operadores que encapsulaban subproblemas. Cada holón en la holarquía tenía un motor de algoritmo de resolución, que podía intercambiarse con otros de su misma clase. La aritmética extendida de la diferenciación automática y su capacidad para diferenciar dinámicamente la integración numérica dieron lugar al modo único de modelado de holarquía ilustrado en la Figura 1.

Figura 1. Aplicación del cálculo de variaciones [ 14 ]

Este problema de ejemplo era originalmente una aplicación FORTRAN de un informe de RAND sobre un algoritmo utilizado para la optimización de aplicaciones de problemas de valores en la frontera. Este informe, también publicado como libro de texto, [ 14 ] describía la cuasilinealización, una alternativa a la "programación dinámica", inventada por el mismo autor, Richard Bellman . El programa FORTRAN del Apéndice Dos del libro de texto contiene más de cinco veces la cantidad de código que el programa PROSE de 25 líneas, completamente incrustado en los recuadros blancos (sintaxis visible) de la Figura 1. Más significativo en esta discusión sobre modelado versus programación es que el programa FORTRAN contiene 14 bucles DO, mientras que el programa PROSE no contiene ninguno. Otro punto a destacar sobre la simplificación del programa es que la gestión dinámica de la memoria podría darse por sentada por el usuario. Al regresar de un holón a su plantilla de operador de llamada, el holón se destruía y su memoria se liberaba para otro uso.

Esta aplicación es realmente trivial en cuanto a la cantidad de código necesaria para plantear el problema. Por eso el programa PROSE es tan pequeño. Toda su metodología de solución iterativa está integrada en los motores de resolución (elipses en la Figura 1). Los modelos rara vez necesitan bucles. Por eso las hojas de cálculo, que son herramientas de modelado, ni siquiera los incluyen.

Este ejemplo ilustra completamente el paradigma del holón en una sola aplicación. Se emplean sus tres tipos de holón: búsqueda de optimización en el nivel más alto de la jerarquía, búsqueda de correlación (un subconjunto restringido de la búsqueda de optimización) como holón intermedio y simulación de dinámica de sistemas como holón interno. En la Figura 2 se muestra otro programa PROSE con la misma estructura. Se trata de una aplicación algo mayor de la optimización de una estructura de ala en voladizo para maximizar la sustentación, sujeta a restricciones de estructura y peso. En este caso, el solucionador del holón externo busca las incógnitas de optimización en diez dimensiones de coordenadas.

Figura 2. Problema de optimización del diseño del ala [ 7 ] : 8

Cada uno de los dos holones externos posee un sistema de coordenadas oculto con incógnitas que su motor de búsqueda resuelve. Estos motores requieren derivadas parciales de todas las variables dependientes de dichas incógnitas, las cuales se evalúan mediante aritmética de diferenciación automática. Las derivadas del sistema de coordenadas externo deben calcularse a partir de las derivadas del sistema de coordenadas interno, una vez que el motor de búsqueda interno haya convergido (encontrado una solución local). Aquí es donde se aplica una transformación de coordenadas de geometría diferencial. El problema del ala de la Figura 2 incluye más subprogramas, no mostrados, entre ellos una función de cuadratura integral.

Dado que estos subprogramas incluyen la integración numérica del modelo de dinámica del sistema (ecuaciones diferenciales), la aritmética de diferenciación automática incluye la diferenciación del algoritmo de integración del motor de simulación (y del solucionador de cuadratura) para evaluar las derivadas de las condiciones de contorno (puntos finales de las curvas integradas) con respecto a las condiciones iniciales. Este cálculo no es posible mediante diferenciación simbólica formal, ni tampoco es factible con la aproximación de diferencias finitas. Solo la diferenciación automática, con su propagación exacta mediante la regla de la cadena, es factible.

Arquitectura automatizada de holones

Figura 3. Arquitectura de holón generalizada [ 2 ] : 3–3

La Figura 3 muestra la arquitectura generalizada de un holón de perfil, donde se aprecia la sintaxis de modelado visible y la arquitectura semántica invisible con su característico proceso iterativo de 5 pasos. Un holón es una unidad de resolución de problemas de cálculo, asociada matemáticamente a un sistema de coordenadas creado dinámicamente por la plantilla de operación. Su operador es un motor de resolución, ya sea un predictor numérico en el caso de simulación o un motor de búsqueda en el caso de correlación y optimización. Su operando es un procedimiento de modelo (que puede ser, a su vez, una jerarquía de holones subordinados).

En esencia, un holón es un contenedor de computación metafórico, similar a una hoja de cálculo , pero que permite bucles procedimentales como un lenguaje algebraico convencional. Su propósito es enmarcar fórmulas algebraicas que representan matemáticas superiores (por ejemplo, las ecuaciones diferenciales son fórmulas algebraicas, en las que algunas de sus variables son tasas).

Las figuras 4 a 7 muestran cómo las diferentes clases de holones de simulación, correlación y optimización reflejan esta arquitectura, separando el modelado (ecuaciones científicas) de los motores de resolución algorítmica del arte de las matemáticas de aproximación numérica.

Los holones son procesos de solución de sistemas de fórmulas

Como se mencionó anteriormente, un holón es un contenedor de computación, similar a una hoja de cálculo, que encapsula un conjunto de fórmulas algebraicas de entrada . Sin embargo, a diferencia de una hoja de cálculo, estas fórmulas forman parte de un todo irreducible que solo puede resolverse conjuntamente como una unidad, mediante una sucesión de aproximaciones (iteraciones). Por lo tanto, una hoja de cálculo, que solo implica una única pasada de cálculos de fórmulas, puede considerarse un holón "degenerado" o "reducido", es decir, uno que solo requiere cálculos de una sola pasada.

Un modelo de holón eleva un sistema encapsulado de fórmulas algebraicas a un arquetipo de problema superior que relaciona incógnitas simultáneas con una condición de solución definible, distinta de una simple pasada por el conjunto de fórmulas. Se requiere cálculo iterativo "de fondo" para "converger" las aproximaciones de múltiples pasadas a la condición de solución.

Arquetipos de problemas metafóricos

Cada holón automatiza uno de los tres arquetipos de problemas de sistemas que han surgido de las matemáticas superiores con una clase distinta de métodos de solución, aplicables como operadores intercambiables. Estos métodos operan sobre las fórmulas de entrada y sus cálculos para guiar las aproximaciones sucesivas a la solución del holón. Estos arquetipos de problemas surgen fácilmente de las colecciones de fórmulas que representan el modelado de fenómenos naturales y pueden usarse como bloques de construcción para sintetizar programas de computación completos como holarquías de holones secuenciales o anidados. Usados ​​en conjunto como un alfabeto, estos problemas arquetípicos se convierten en una topología de modelado de matemáticas superiores dentro de un lenguaje de programación algebraica que contiene metodologías de "pegamento" semántico especiales que propagan la "influencia" del cálculo a través de las colecciones de holones.

A medida que los holones se combinan para formar totalidades mayores mediante la combinación alfabética, estas holarquías tienden a convertirse en arquetipos de problemas, que a menudo surgen de la modelización de fenómenos naturales. Un ejemplo son los problemas de contorno, que se resuelven mediante la combinación de holones de correlación y simulación.

PROSA Panteón

PROSE introdujo un panteón de solucionadores intercambiables que llevan el nombre de dioses mitológicos en las tres categorías de motores:

Mejoramiento

  • HERA : una versión avanzada del método de gradiente de segundo orden de Newton con una lógica especial para reconocer y evitar extremos no deseados durante su proceso de búsqueda;
  • HERCULES : un solucionador de optimización con restricciones especial para problemas lineales, enteros y mixtos;
  • JOVE : una técnica de optimización secuencial sin restricciones que aplica la búsqueda de gradiente de segundo orden de Newton;
  • JUPITER : un método de función de penalización de truncamientos exteriores móviles que aplica una búsqueda de métrica variable de Davidon-Fletcher-Powell (DFP);
  • THOR una técnica de programación lineal "linealizada por secciones" ; y
  • ZEUS : una técnica de optimización secuencial sin restricciones que aplica una búsqueda de métrica variable de Davidon-Fletcher-Powell (DFP).

Correlación

  • AJAX : un buscador de raíces pseudoinversas de Newton-Raphson y Newton-Gauss amortiguado; y
  • MARS : un algoritmo de búsqueda de raíces pseudoinversas de Newton-Raphson y Newton-Householder con amortiguación.

Simulación de dinámica de sistemas

  • ATHENA : Runge-Kutta de múltiples órdenes con propagación diferencial y limitación opcional de cualquier variable dependiente de la salida;
  • GEMINI : técnica de autoarranque de extrapolación de funciones racionales de Gragg, Bulirsch y Stoer con propagación diferencial o no, según el contexto;
  • ISIS Runge-Kutta-Gill con propagación diferencial;
  • JANISIS ISIS o JANUS, dependiendo de si el contexto de propagación es diferencial o no diferencial;
  • JANUS Predictor-corrector de Adams-Moulton para contextos de propagación no diferencial;
  • MERCURY Método de optimización de rigidez y tamaño de paso para la diferenciación de velocidad/estado de engranajes en contextos de propagación no diferencial;
  • MERLIN : técnica de autoarranque para la extrapolación de funciones racionales a partir de Gragg, Bulirsch y Stoer con propagación diferencial;
  • MINERVA : método de Runge-Kutta de múltiples órdenes sin propagación diferencial y con limitación opcional de cualquier variable dependiente de la salida;
  • NEPTUNO : técnica de autoarranque de extrapolación de funciones racionales de Gragg, Bulirsch y Stoer sin propagación diferencial; y
  • PEGASUS : una técnica especial de Runge-Kutta de quinto orden conocida como incrustación de Sarafyan, en la que se obtiene un resultado de cuarto orden al mismo tiempo, además de la limitación opcional de cualquier variable dependiente de la salida en contextos de propagación no diferenciales.

Contextos de anidamiento

Estos solucionadores aplicaron diferentes métodos numéricos en las tres categorías de motores, dependiendo del contexto de anidamiento en el que se aplicaron. Algunos solucionadores de simulación (JANUS, MERCURY, MINERVA, MERLIN y PEGASUS) no podían anidarse en contextos de diferenciación automática de correlación y optimización porque no estaban sobrecargados para la aritmética de diferenciación automática. Por lo tanto, se introdujeron versiones híbridas, JANISIS (ISIS o JANUS) y GEMINI (MERLIN o NEPTUNE), que funcionarían eficientemente en modo de diferenciación automática o en modo aritmético ordinario (diferenciación desactivada internamente). Esto aceleró enormemente las búsquedas iterativas de solucionadores como AJAX, MARS, JOVE, ZEUS y JUPITER, que llamaban iterativamente a sus modelos muchas más veces en modo sin diferenciación, cuando se aplicaban varios modos de subpasos de búsqueda sin derivadas.

Referencias

  1. PROSA – Un manual de procedimientos en lenguaje de alto nivel de propósito general, Control Data Corp. Pub No. 840003000 Rev. B (enero de 1977)
  2. 1 2 3 4 5 6 PROSA – Un lenguaje de nivel superior de propósito general, Manual de operaciones de cálculo, Control Data Corp. Pub. No 840003200 Rev B (enero de 1977)
  3. PROSA – Un lenguaje de nivel superior de propósito general, Guía de aplicaciones de cálculo, Control Data Corp. Pub No. 84000170 Rev. A (enero de 1977)
  4. PROSA – Un lenguaje de alto nivel de propósito general, Guía del sistema de tiempo compartido, Control Data Corp. Pub. No 84000160 Rev A (enero de 1977)
  5. JM Thames, La evolución del cálculo sintético: una tecnología matemática para la arquitectura avanzada, en Actas del Taller Internacional sobre Arquitectura de Computadoras con Lenguaje de Alto Nivel, Universidad de Maryland, 1982
  6. B. Krinsky y J. Thames, La estructura del cálculo sintético, un paradigma de programación del diseño matemático, en Actas del Taller Internacional sobre Arquitectura de Computadoras de Alto Nivel, Universidad de Maryland, 1984
  7. 1 2 J.M. Thames, Cálculo sintético: un paradigma de síntesis de programas matemáticos, en A. Griewank y GF Corliss, eds., Diferenciación automática de algoritmos: teoría, implementaciones y aplicaciones, SIAM, Filadelfia (1991)
  8. JM Thames, “SLANG: un lenguaje de resolución de problemas para la simulación y optimización de modelos continuos”, Conferencia Nacional de la ACM, San Francisco, 1969.
  9. JD McCully, “El enfoque Q para la resolución de problemas”, Actas de la Conferencia Conjunta de Informática de Otoño, 1969.
  10. ^ RN Nilsen y WJ Karplus, "Lenguajes de simulación de sistemas continuos: estudio del estado del arte" Annales de l'Association Internationale pour le Calcul analogique - No 1, enero de 1974 , p. 20
  11. JM Thames, Computing in calculus, Research/Development, (1975), pp. 24–30
  12. FW Pfeiffer, Algunos avances relacionados con la programación no lineal , Boletín ACM Sigmap, número 28, enero de 1980, págs. 15-21
  13. FW Pfeiffer, Diferenciación automática en PROSE , Boletín informativo ACM SIGNUM, 22 (1987), págs. 1–8
  14. 1 2 R.E. Bellman y RE Kalaba, Quasilinearization and Nonlinear Boundary-Value Problems, The RAND Corporation, American Elsevier Publishing Co., Nueva York, 1965, pág. 125, pág. 168