Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Языки алгебраического моделирования ( AML ) - это языки компьютерного программирования высокого уровня для описания и решения проблем высокой сложности для крупномасштабных математических вычислений (то есть задач крупномасштабного типа оптимизации ). [1] Одно особое преимущество некоторых языков алгебраического моделирования, таких как AIMMS , [1] AMPL , [2] GAMS , [1] MathProg , Mosel , [1] [3] и OPL.это схожесть их синтаксиса с математической записью задач оптимизации. Это позволяет дать очень краткое и удобочитаемое определение проблем в области оптимизации, которое поддерживается определенными языковыми элементами, такими как наборы, индексы, алгебраические выражения, мощный разреженный индекс и переменные обработки данных, ограничения с произвольными именами. Алгебраическая формулировка модели не содержит подсказок, как ее обрабатывать.

AML не решает эти проблемы напрямую; вместо этого он вызывает соответствующие внешние алгоритмы для получения решения. Эти алгоритмы называются решателями и могут решать определенные математические задачи, такие как:

Core elements[edit]

The core elements of an AML are:

  • a modeling language interpreter (the AML itself)
  • solver links
  • user interfaces (UI)
  • data exchange facilities

Design principles[edit]

Most AML follow certain design principles:

  • a balanced mix of declarative and procedural elements
  • open architecture and interfaces to other systems
  • different layers with separation of:
    • model and data
    • model and solution methods
    • model and operating system
    • model and interface

Data driven model generation[edit]

Большинство языков моделирования используют сходство между структурированными моделями и реляционными базами данных [4] , предоставляя уровень доступа к базе данных, который позволяет системе моделирования напрямую обращаться к данным из внешних источников данных (например, этих [5] обработчиков таблиц для AMPL). По мере совершенствования аналитических технологий, применяемых к бизнес-процессам, модели оптимизации становятся неотъемлемой частью систем поддержки принятия решений; Модели оптимизации могут быть структурированы и разбиты на слои для представления и поддержки сложных бизнес-процессов. В таких приложениях многомерная структура данных, типичная для систем OLAP, может быть напрямую отображена на модели оптимизации, а типичные операции MDDB могут быть преобразованы в операции агрегирования и дезагрегации в базовой модели [6]

History[edit]

Algebraic modelling languages find their roots in matrix-generator and report-writer programs (MGRW), developed in the late seventies. Some of these are MAGEN, MGRW (IBM), GAMMA.3, DATAFORM and MGG/RWG. These systems simplified the communication of problem instances to the solution algorithms and the generation of a readable report of the results.

An early matrix-generator for LP was developed around 1969 at the Mathematisch Centrum (now CWI), Amsterdam.[7]Its syntax was very close to the usual mathematical notation, using subscripts en sigmas. Input for the generator consisted of separate sections for the model and the data. It found users at universities and in industry. The main industrial user was the steel maker Hoogovens (now Tata Steel) where it was used for nearly 25 years.

A big step towards the modern modelling languages is found in UIMP[8], where the structure of the mathematical programming models taken from real life is analysed for the first time, to highlight the natural grouping of variables and constraints arising from such models. This led to data-structure features, which supported structured modelling; in this paradigm, all the input and output tables, together with the decision variables, are defined in terms of these structures, in a way comparable to the use of subscripts and sets. This is probably the single most notable feature common to all modern AMLs and enabled, in time, a separation between the model structure and its data, and a correspondence between the entities in an MP model and data in relational databases. So, a model could be finally instantiated and solved over different datasets, just by modifying its datasets.

The correspondence between modelling entities and relational data models,[4] made then possible to seamlessly generate model instances by fetching data from corporate databases. This feature accounts now for a lot of the usability of optimisation in real life applications, and is supported by most well-known modelling languages.

References[edit]

  1. ^ a b c d Kallrath, Joseph (2004). Modeling Languages in Mathematical Optimization. Kluwer Academic Publishing. ISBN 978-1-4020-7547-6.
  2. ^ Robert Fourer; David M. Gay; Brian W. Kernighan (1990). "A Modeling Language for Mathematical Programming". Management Science. 36 (5): 519–554–83. doi:10.1287/mnsc.36.5.519.
  3. ^ Gueret, Christelle; Prins, Christian; Sevaux, Marc (2002). Applications of Optimization with Xpress-MP. Dash Optimization Limited. ISBN 0-9543503-0-8.
  4. ^ a b Gautam Mitra; Cormac Lucas; Shirley Moody; Bjarni Kristjansson (1995). "Sets and indices in linear programming modelling and their integration with relational data models". Computational Optimization and Applications. 4 (3): 262–283.
  5. ^ [1] Database and spreadsheet table handlers for AMPL
  6. ^ Koutsoukis, N.; Mitra, G.; Lucas, C. (1999). "Adapting on-line analytical processing for decision modelling: the interaction of information and decision technologies". Decision Support Systems. 26 (1): 1–30. doi:10.1016/S0167-9236(99)00021-4. Retrieved November 22, 2017. CS1 maint: discouraged parameter (link)
  7. ^ Jac. M. Anthonisse, An input system for linear programming problems, Statistica Neerlandica 24 (1970), 143-153.
  8. ^ Francis D Ellison; Gautam Mitra (1982). "UIMP: user interface for mathematical programming" (PDF). ACM Transactions on Mathematical Software. 8 (3): 229–255. doi:10.1145/356004.356005. Archived from the original (PDF) on 2014-01-18. Retrieved 2014-01-16.