Jump to content

Язык моделирования PROSE

ПРОЗА [1] [2] [3] [4] была математической 4GL виртуальной машиной , которая создала парадигму целостного моделирования, известную как синтетическое исчисление. [5] [6] [7] (также известный как Метаисчисление). Преемник СЛАНГА [8] /КУЭ [9] Язык моделирования и оптимизации, разработанный в TRW Systems, он был представлен в 1974 году на суперкомпьютерах Control Data. Это был первый коммерческий язык [10] [11] [12] [13] использовать автоматическое дифференцирование (AD) , которое было оптимизировано для цикла в стеке команд ЦП CDC 6600 .

Хотя PROSE был процедурным языком с богатой блочной структурой, его основное внимание уделялось объединению математических систем с одновременными переменными, таких как:

системы неявных нелинейных уравнений, системы обыкновенных дифференциальных уравнений и многомерная оптимизация.

Каждый из этих типов системных моделей отличался друг от друга и имел шаблоны операторов для их автоматизации и решения, добавленные к процедурному синтаксису. Эти задачи автоматизированных систем считались «целостными», поскольку их неизвестные были одновременными, и их нельзя было свести к формулировке для кусочного решения или путем алгебраических манипуляций (например, замены), а нужно было решать как единое целое. А целостность также относилась к алгоритмической определенности или математической «замыкаемости», которая делала сходимость решений возможной и надежной в принципе, если не искажать ее численной нестабильностью.

Холархии дифференциального распространения

[ редактировать ]

Поскольку эти целостные модели проблем могут быть независимо автоматизированы и решены благодаря этому замыканию, их можно объединить в более высокие целые, вложив одну в другую наподобие подпрограмм. Пользователи могли рассматривать их как обычные подпрограммы.

Однако семантически это математическое смешение было значительно более сложным, чем механика подпрограмм, поскольку итеративный механизм решения был прикреплен к каждой модели проблемы посредством шаблона вызывающего оператора, расположенного над ней в иерархии программы. В процессе численного решения этот механизм возьмет на себя управление и будет итеративно вызывать подпрограмму модели проблемы, не возвращаясь к вызывающему шаблону, пока его системная проблема не будет решена. Во время некоторых или, возможно, всех итеративных вызовов подпрограмм модели механизм будет вызывать автоматическое дифференцирование формул в холархии модели относительно входных неизвестных моделей (аргументов), определенных в шаблоне вызова. В семантике были реализованы дополнительные механизмы для обеспечения повсеместного вложения этих целостных моделей.

Дифференциация процессов прогнозирования

[ редактировать ]

Если бы вложенное решение представляло собой прогноз (например, численное интегрирование), то алгоритм его решения, помимо формул модели, также автоматически дифференцировался бы. дифференцирование граничных условий по начальным условиям (так называемые производные Фреше Поскольку это дифференцирование распространялось (посредством цепного правила) на протяжении всего интегрирования от начальных условий до граничных условий, будет выполняться ). Это позволило рутинно решать краевые задачи итерационными методами «расстрела» с использованием двигателей метода Ньютона. Конечно, в то же время это распространенное дифференцирование может быть выполнено и по произвольным параметрам дифференциальных уравнений для дальнейшего формирования интегрированных функций. Эти параметры могут быть решены как неизвестные любого гнезда в холархии над процессом интеграции, что значительно упрощает общую формулировку задачи.

Дифференциация поисковых процессов

[ редактировать ]

Если внутренняя вложенная задача представляла собой поиск, а внешняя задача также была поиском (например, оптимизацией), то частные производные, полученные по неизвестным внутреннего поиска, должны были быть преобразованы в частные производные внешнего поиска посредством дифференциального преобразование координат геометрии. Это также был итеративный процесс, включающий дифференцирование более высокого порядка и иногда различные независимые переменные.

Тем не менее, эти расширенные и итеративные дифференциально-арифметические процессы были полностью скрыты от пользователя и едва ли имели большее значение в его задаче моделирования, чем если бы были задействованы только обычные подпрограммы и их вызовы. Тот факт, что они были итеративными, а количество и вид итераций были неопределенными, потому что решалась целая подзадача, которая также была частью более высокой задачи. Было естественно называть каждое гнездо проблем « холоном », поскольку эта динамическая сущность идеально соответствовала теории Артура Кестлера, придумавшего этот термин. В оригинальной документации PROSE этого не было сделано, поскольку в те годы теория Кестлера была новой и несколько противоречивой. Этот термин был позже использован после того, как Кен Уилбер утвердил концепцию холона Кестлера.

Шаблоны операторов автоматизации

[ редактировать ]

Полная парадигма моделирования состояла всего из трех классов холонов, которые отличались шаблонами операторов, представленными ниже.

Оптимизация

[ редактировать ]
   FIND simultaneous-unknowns IN model-subroutine BY solver-engine 
       [HOLDING inequality-constraint-variables]
       [MATCHING equality-constraint-variables]
       TO MAXIMIZE|MINIMIZE objective-variable

Корреляция

[ редактировать ]
   FIND simultaneous-unknowns IN model-subroutine BY solver-engine
       TO MATCH equality-constraint-variables
     

Моделирование

[ редактировать ]
   INITIATE solver-engine FOR model-subroutine EQUATIONS rate-variables/level-variables
       OF independent-variable STEP increment-variable TO limit-variable
  
   INTEGRATE model-subroutine BY solver-engine

Эти три шаблона операторов создавали динамические холоны, инкапсулирующие иерархию подпрограмм модели уравнений, которая могла содержать другие вложенные холоны, поскольку подпрограммы модели могли содержать любой из шаблонов операторов, инкапсулирующих подзадачи. Каждый холон в холархии имел механизм решающего алгоритма, который можно было заменять другими холонами того же класса. Расширенная арифметика автоматического дифференцирования и ее способность динамически дифференцировать числовое интегрирование привели к появлению уникального режима холархического моделирования, показанного на рисунке 1.

Рисунок 1. Приложение вариационного исчисления [14]

Этот пример задачи изначально представлял собой приложение FORTRAN из отчета RAND об алгоритме, используемом для оптимизации приложений краевых задач. Этот отчет, также опубликованный в качестве учебника, [14] описал квазилинеаризацию, альтернативу «динамическому программированию», изобретенную тем же автором Ричардом Беллманом . Программа на FORTRAN из Приложения 2 к учебнику содержит в пять раз больше кода, чем 25-строчная программа PROSE, полностью встроенная в белые прямоугольники (видимый синтаксис) на рисунке 1. Более важным в этом обсуждении моделирования и программирования является то, что Программа FORTRAN содержит 14 циклов DO, тогда как программа PROSE не содержит циклов. Еще один момент, который следует отметить при упрощении программы, заключается в том, что пользователь может воспринимать динамическое управление памятью как нечто само собой разумеющееся. При возвращении из холона в шаблон вызывающего оператора холон уничтожается, а его память освобождается для другого использования.

Это приложение на самом деле тривиально по количеству кода, необходимого для постановки проблемы. Вот почему программа PROSE такая маленькая. Вся методология итеративного решения скрыта в механизмах решателей (эллипсы на рисунке 1). Модели редко нуждаются в петлях. Вот почему в электронных таблицах, которые являются инструментами моделирования, их даже нет.

Этот пример задачи обеспечивает полную инкапсуляцию парадигмы холонов в одном приложении. Используются все три типа холонов: поиск оптимизации на самом высоком уровне холархии, корреляционный поиск (ограниченное подмножество поиска оптимизации) в качестве среднего холона и системной динамики моделирование в качестве самого внутреннего холона. Другая программа PROSE с такой же структурой показана на рисунке 2. Это несколько более широкое применение оптимизации свободнонесущей конструкции крыла для максимизации подъемной силы с учетом ограничений по конструкции и весу. В этом случае существует десять координатных измерений неизвестных оптимизации, которые ищет решатель внешних холонов.

Рисунок 2. Задача оптимизации конструкции крыла. [7] : 8 

Каждый из двух внешних холонов имеет скрытую систему координат неизвестных, которую находит их поисковая система. И эти двигатели требуют частных производных всех последующих переменных, зависящих от этих неизвестных, которые оцениваются с помощью арифметики автоматического дифференцирования. Производные внешней системы координат должны быть вычислены из производных внутренней системы координат после того, как внутренняя поисковая система сошлась (нашла локальное решение). Здесь применяется преобразование координат дифференциальной геометрии. Задача крыла на рисунке 2 имеет дополнительные подпрограммы (не показаны), включая интегральную квадратурную функцию.

Поскольку эти подпрограммы включают численное интегрирование модели динамики системы (дифференциальные уравнения), арифметика автоматического дифференцирования включает дифференцирование алгоритма интегрирования механизма моделирования (и квадратурного решателя), чтобы оценить производные границы (конечная точка интегральные кривые) условия относительно начальных условий. Этот расчет невозможен посредством формального символического дифференцирования. Это также невозможно с помощью конечно-разностной аппроксимации. Возможна только автоматическая дифференциация с точным распространением цепных правил.

Автоматизированная архитектура Холона

[ редактировать ]
Рисунок 3. Обобщенная холонская архитектура [2] : 3–3 

На рисунке 3 показана обобщенная архитектура холона в профиле, демонстрирующая видимый синтаксис моделирования и архитектуру невидимой семантики с характерным пятишаговым итерационным процессом. Холон — это единица решения задач исчисления, математически связанная с системой координат, динамически создаваемой шаблоном операции. Его оператором является решающая машина, либо числовой предсказатель в случае моделирования, либо поисковая система в случае корреляции и оптимизации. Его операндом является модельная процедура (которая сама может быть холархией подчиненных холонов).

По сути, холон — это метафорический контейнер вычислений, подобный электронной таблице, но допускающий процедурный цикл, как в обычном алгебраическом языке. Однако его целью является создание алгебраических формул, представляющих высшую математику (например, дифференциальные уравнения представляют собой алгебраические формулы, в которых некоторые из их переменных являются коэффициентами).

На рисунках 4–7 показано, как различные классы холонов моделирования, корреляции и оптимизации отражают эту архитектуру, отделяя моделирование (научные уравнения) от алгоритмических решающих механизмов искусства численной аппроксимации математики.

Рисунок 4. Моделирование Холона [2] : 3–5 
Рисунок 5. Корреляция Холона [2] : 3–10 
Рисунок 6. Холон без ограничений оптимизации [2] : 3–10 
Рисунок 7. Холон с ограниченной оптимизацией [2] : 3–11 

Холоны - это процессы решения систем формул.

[ редактировать ]

Как упоминалось выше, холон — это вычислительный контейнер, подобный электронной таблице, который инкапсулирует набор входных алгебраических формул. Но в отличие от электронной таблицы эти формулы являются частями несократимого целого, которое можно решить только вместе как единое целое, включая последовательность приближений (итераций). Таким образом, электронную таблицу, которая включает в себя только один проход вычислений по формуле, можно рассматривать как «вырожденный» или «редуцированный» холон, который включает только однопроходные вычисления.

Модель холона поднимает инкапсулированную систему алгебраических формул до более высокого архетипа проблемы, связывающего одновременные неизвестные с определяемым условием решения, отличным от одного прохода через набор формул. Итеративное исчисление «под капотом» необходимо для «сведения» многопроходных приближений к условию решения.

Метафорические архетипы проблем

[ редактировать ]

Каждый холон автоматизирует один из трех архетипов системных проблем, возникших из высшей математики, с отдельным классом методов решения, применимых в качестве взаимозаменяемых операторов. Эти методы оперируют входными формулами и их вычислениями, чтобы направлять последовательные приближения к решению холона. Эти архетипы проблем легко выделяются из наборов формул, которые представляют собой моделирование природных явлений, и могут использоваться в качестве строительных блоков для синтеза целых вычислительных программ в виде холархий последовательных или вложенных холонов. Используемые вместе в качестве алфавита, эти архетипические проблемы становятся топологией высшего математического моделирования в рамках алгебраического языка программирования, содержащего специальные семантические методологии «клея», которые распространяют «влияние» исчисления через коллекции холонов.

По мере того как холоны объединяются в более крупные целые посредством алфавитных комбинаций, такие холархии также имеют тенденцию становиться проблемными архетипами, которые часто выпадают из моделирования природных явлений. Примерами являются краевые задачи, решаемые с помощью комбинации корреляционных и симуляционных холонов.

ПРОЗА Пантеон

[ редактировать ]

PROSE представила пантеон сменных решателей, названных в честь мифических богов, в трех категориях движков:

Оптимизация

[ редактировать ]
  • HERA – расширенная версия градиентного метода Ньютона второго порядка со специальной логикой для распознавания и предотвращения нежелательных экстремумов в процессе поиска;
  • HERCULES – специальный решатель оптимизации с ограничениями для линейных, целочисленных и смешанно-целочисленных задач;
  • JOVE - метод последовательной неограниченной оптимизации, использующий поиск градиента второго порядка Ньютона;
  • ЮПИТЕР - метод штрафной функции движущихся внешних усечений, применяющий поиск с переменной метрикой Дэвидона-Флетчера-Пауэлла (DFP);
  • THOR – «секционно-линеаризованный» метод линейного программирования; и
  • ZEUS – метод последовательной неограниченной оптимизации, использующий поиск с переменной метрикой Дэвидона-Флетчера-Пауэлла (DFP).

Корреляция

[ редактировать ]
  • AJAX – демпфированный псевдообратный корень Ньютона-Рафсона и Ньютона-Гаусса; и
  • MARS – демпфированный псевдообратный искатель корней Ньютона-Рафсона и Ньютона-Хаусхолдера.

Системно-динамическое моделирование

[ редактировать ]
  • АФИНА – многопорядковый Рунге-Кутта с дифференциальным распространением и дополнительным ограничением любых выходных зависимых переменных;
  • GEMINI - самозапускающийся метод экстраполяции рациональных функций по Грэггу, Булиршу и Стеру с дифференциальным распространением или нет в зависимости от контекста;
  • ISIS – Рунге-Кутта-Гилла с дифференциальным распространением;
  • JANISIS – ISIS или JANUS, в зависимости от контекстов дифференциального или недифференцированного распространения;
  • JANUS – предиктор-корректор Адамса-Моултона для контекстов с недифференциальным распространением;
  • MERCURY – Метод жесткой дифференциации скорости/состояния передач и оптимизации размера шага для контекстов недифференцированного распространения;
  • МЕРЛИН – самозапускающийся метод экстраполяции рациональных функций Грэгга, Булирша и Стера с дифференциальным распространением;
  • MINERVA – многопорядковый метод Рунге-Кутты без дифференциального распространения и опционального ограничения любых выходных зависимых переменных;
  • НЕПТУН – самозапускающийся метод экстраполяции рациональных функций по Грэггу, Булиршу и Стеру без дифференциального распространения; и
  • ПЕГАС - специальный метод Рунге-Кутты 5-го порядка, известный как встраивание Сарафьяна, при котором одновременно получается результат 4-го порядка плюс дополнительное ограничение любых выходных зависимых переменных в контекстах недифференцированного распространения.

Вложенность контекстов

[ редактировать ]

Эти решатели применяли различные численные методы в трех категориях механизмов, в зависимости от контекста вложенности, в котором они применялись. Некоторые решатели моделирования (JANUS, MERCURY, MINERVA, MERLIN и PEGASUS) не могли быть вложены в контексты автоматического дифференцирования корреляции и оптимизации, поскольку они не были перегружены для арифметики автоматического дифференцирования. Таким образом, были представлены гибридные версии JANISIS (ISIS или JANUS) и GEMINI (MERLIN или NEPTUNE), которые могли эффективно работать в режиме автоматического дифференцирования или в обычном арифметическом режиме (внутреннее дифференцирование отключено). Это значительно ускорило итеративный поиск таких решателей, как AJAX, MARS, JOVE, ZEUS и JUPITER, которые итеративно вызывали свои модели еще много раз в режиме недифференцирования, когда применялись различные режимы подэтапов непроизводного поиска.

  1. ^ ПРОЗА - Язык высокого уровня общего назначения, Руководство по процедурам, Публикация Control Data Corp. № 840003000 Ред. B (январь 1977 г.)
  2. ^ Перейти обратно: а б с д и ж PROSE - Язык высокого уровня общего назначения, Руководство по исчислению, Control Data Corp. Pub. № 840003200 Ред. Б (январь 1977 г.)
  3. ^ PROSE - Язык высокого уровня общего назначения, Руководство по применению исчисления, Публикация Control Data Corp. № 84000170 Ред. A (январь 1977 г.)
  4. ^ ПРОЗА - Язык высокого уровня общего назначения, Руководство по системе разделения времени, Control Data Corp. Pub. № 84000160 Ред. А (январь 1977 г.)
  5. ^ Дж. М. Темз, Эволюция синтетического исчисления: математическая технология для передовой архитектуры, в Proc. Международного семинара по компьютерной архитектуре языков высокого уровня, Университет Мэриленда, 1982 г.
  6. ^ Б. Крински и Дж. Темз, Структура синтетического исчисления, парадигма программирования математического проектирования, в Proc. Международного семинара по компьютерной архитектуре высокого уровня, Университет Мэриленда, 1984 г.
  7. ^ Перейти обратно: а б Дж. М. Темз, Синтетическое исчисление - парадигма синтеза математических программ, в книге А. Гриванка и Г. Ф. Корлисса, ред., Автоматическая дифференциация алгоритмов: теория, реализации и приложения, SIAM, Филадельфия (1991).
  8. ^ Дж. М. Темз, «СЛАНГ — язык решения проблем непрерывного моделирования и оптимизации моделей», Национальная конференция ACM, Сан-Франциско, 1969.
  9. ^ Дж. Д. Маккалли, «Q-подход к решению проблем», Материалы осенней совместной компьютерной конференции, 1969.
  10. ^ Р. Н. Нильсен и В. Дж. Карплюс, «Языки моделирования непрерывных систем: обзор современного состояния», Анналы Международной ассоциации аналоговых вычислений - № 1, январь 1974 г. , стр. 20
  11. ^ Дж. М. Темз, Вычисления в исчислении, исследования/разработки, (1975), стр. 24–30.
  12. ^ Ф. В. Пфайффер, Некоторые достижения, связанные с нелинейным программированием , Бюллетень ACM Sigmap, выпуск 28, январь 1980 г., стр. 15-21
  13. ^ Ф. В. Пфайффер, Автоматическое дифференцирование в ПРОЗЕ , Информационный бюллетень ACM SIGNUM, 22 (1987), стр. 1–8.
  14. ^ Перейти обратно: а б Р. Е. Беллман и Р. Е. Калаба, Квазилинеаризация и нелинейные краевые задачи, The RAND Corporation, American Elsevier Publishing Co., Нью-Йорк, 1965, с. 125, с. 168
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e163fc980a356450f4f51a87b6d15279__1689193260
URL1:https://arc.ask3.ru/arc/aa/e1/79/e163fc980a356450f4f51a87b6d15279.html
Заголовок, (Title) документа по адресу, URL1:
PROSE modeling language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)