Основные черты языков моделирования

Разработка языков моделирования началась в конце 70-х годов, когда в Мировом банке был создан GAMS (General Algebraic Modeling System)[8].

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

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

Многие системы используют интерфейс ODBC (open database connectivity) для автоматического доступа к данным, а также интерфейс к большинству табличных процессоров (таких, как Excel). Это освобождает пользователя от трудоемкой обязанности поиска соответствующих данных при каждом использовании модели. Вторым преимуществом концепции разделения модели и данных является возможность использования в период разработки модели «игрушечных» моделей с небольшими искусственными массивами данных, а в дальнейшем отлаженная на этих простых примерах модель без каких-либо изменений может быть использована для решения больших производственных задач с реальными объемами информации. Вычисление производных данных может быть автоматизировано с помощью использования автоматического дифференцирования.

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

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

АЯМ позволяют специалисту в области математического моделирования записать модель в математической форме, использующей множества индексов, параметры, переменные и константы. Очень важна возможность АЯМ записывать подобные ограничения в виде множеств, к которым затем можно обращаться, используя соответствующие индексы. Это позволяет компактно записывать модели в виде, близком к естественной математической записи.

2.2. Алгебраический язык моделирования AMPL.