Мова алгебраїчного моделювання
Мова алгебраїчного моделювання, МАМ (англ. Algebraic Modeling Languages, AML) — високорівнева комп'ютерна мова програмування для опису та розв'язання задач високої складності для великомасштабних математичних обчислень (наприклад, великомасштабних задач оптимізаційного типу).[1]
Однією особливою перевагою деяких алгебраїчних мов моделювання, таких як AIMMS[1], AMPL[2] або GAMS[1] є подібність їхнього синтаксису до математичного запису задач оптимізації. Це забезпечує дуже коротке і легке для читання визначення задач в галузі оптимізації, яке підтримують певні елементи мови, такі як множини, індекси, алгебраїчні вирази, потужна індексація розріджених матриць й змінні обробки даних, обмеження з довільними іменами. Алгебраїчне формулювання моделі не містить жодних вказівок, як її обробляти.
МАМ не розв'язує ці задачі безпосередньо, замість цього вона викликає відповідні зовнішні алгоритми для одержання рішення. Ці алгоритми називаються розв'язувачами і можуть працювати з певного роду математичними задачами, такими, як:
- лінійні задачі
- цілочисельні задачі
- (змішані цілочисельні) квадратичні задачі
- змішані задачі взаємодоповнюваності
- математичні програми з обмеженнями балансу
- нелінійні системи з обмеженнями
- загальні нелінійні задачі
- нелінійні програми з розривними похідними
- нелінійні цілочисельні задачі
- задачі глобальної оптимізації
- задачі стохастичної оптимізації
Основні елементи МАМ такі:
- інтерпретатор мови моделювання (самої МАМ)
- розв'язувач посилань
- інтерфейси користувача
- послуги обміну даними
Більшість МАМ дотримуються певних принципів проектування:
- збалансоване поєднання декларативних і процедурних елементів
- відкрита архітектура та інтерфейси до інших систем
- різні шари з виділенням:
- моделі і даних
- моделі і методів розв'язання
- моделі та операційної системи
- моделі та інтерфейсу
- AIMMS
- AMPL — популярна мова моделювання для великомасштабної лінійної, змішано-цілочисельної і нелінійної оптимізації
- Мова моделювання
- APMonitor
- ASCEND
- GAMS
- OptimJ — Java-орієнтована мова моделювання
- ↑ а б в Kallrath, Joseph (2004). Modeling Languages in Mathematical Optimization. Kluwer Academic Publishing. ISBN 9781402075476.
- ↑ A Modeling Language for Mathematical Programming. Management Science. 36: 519–554–83. 1990.
- “Алгебраїчне моделювання та його застосування” [Архівовано 17 травня 2021 у Wayback Machine.]// Сайт НАН України, 29.3.2021