|
Материалы
 замечания к примерам
1. Источники примеров
Большинство примеров взяты из хороших книг по методам оптимизации
деятельности и по исследованию операций. Использованы также некоторые
другие источники. Часть примеров разработана самостоятельно. Для всех
заимствованных примеров указаны их источники.
Многие примеры кажутся простыми. Так происходит потому, что с помощью
GEM решать задачи проще, чем с помощью тех средств, что предлагают
источники. Однако, примеры показывают, как решать типовые задачи, в том
числе и задачи со сложной формулировкой. Сложность решения переносится из
технической области использования математических методов в область
понимания задачи.
2. Использование примеров
Для удобства выбора и использования, к примерам даны:
- Перечень, сгруппированный по источникам. Название примера начинается
с указания на место в источнике, где его можно найти. Далее следует
название примера в источнике.
- Постановки задач из источников. Они помогут ознакомиться с
содержанием примера и выбрать интересующие Вас примеры.
Вы можете по перечню примеров:
посмотреть постановку задачи;
скачать группу примеров, относящуюся к
источнику;
- скачать отдельный пример.
Примеры упакованы в zip-файлы.
В комплект каждого примера входит:
- постановка и решение задачи в html-виде;
- одна или несколько GEM-моделей, построенных для решения;
- MDL-модели, дублирующие GEM-модели. Они помогут восстановить модель
в случае утраты GEM-модели и перенести модель в другую версию GEM.
3. Изменение примеров
Не изменяйте модели примеров! Если вы хотите сохранить внесенные при
работе с примером изменения, сохраните модель под другим именем.
Если все-таки модель примера была изменена, и надо вернуться к
начальному варианту, можно воспользоваться MDL-версией примера.
Используйте MDL-модель только для того, чтобы получить GEM-версию! -
откройте MDL-модель и сохраните ее как GEM-модель. Не делайте с
MDL-моделью никаких других действий.
4. Подход к решению
Используемые имена
Используемые имена сущностей - имена объектов, материалов, ресурсов,
продуктов и прочего - должны быть удобны и понятны. Поэтому, если модель
простая, имена могут быть простыми, короткими, условными. Например, С1,
Ф1. Когда имен мало, не возникнет путаницы и останется понятным назначение
того, что поименовано. Чем сложнее модель, тем длиннее и выразительнее
должно быть имя, и тем точнее должно оно выражать назначение именованной
сущности.
Т.к. при разработке модели, по мере ее усложнения, назначение часто
меняется, приходится следить за изменением и исправлять имена, когда это
требуется.
Непрерывное и целочисленное решение
Как правило, ищется непрерывное решение, т.е. решение в действительных
числах. Когда требуется целочисленное решение, целочисленность нужных
переменных надо задавать. Для целочисленного выполнения процессов,
например, надо задать в таблице процессов поля Ед./блок = 1 и Мах(ед)=
ограничение на количество процессов. Аналогично задается целочисленность и
в других типах объектов.
Ограничение на целочисленность существенно увеличивает сложность
поиска решения и время поиска. Кроме того, целочисленность резко сужает
возможности анализа модели. Избегайте задавать такие ограничения без
нужды.
Вместе с тем, надо помнить, что округленное непрерывное решение может
сильно отличаться от целочисленного решения.
При необходимости целочисленных решений лучше большую часть времени
работать с непрерывной моделью, - изменять, анализировать, искать
варианты, - время от времени переходя к целочисленной модели, чтобы
посмотреть результаты.
Специальные условияОбычным подходом к заданию
специальных условий является следующий:
- проводят математический и логический анализ, чтобы не вводить
излишних либо несовместимых условий; условия преобразуют в удобный для
их задания вид;
- вводят контрольные переменные-флажки. Эти флажки используются либо
на входе в объект, чтобы учитывать, сколько чего-то входит, либо
на выходе, чтобы учитывать, сколько чего-то выходит. Часто флажки
вводятся как ресурсы или исходящие материалы (продукты) процессов;
- с флажками выполняют любые нужные действия, чтобы обеспечить
выполнение условий без изменения других сущностей, используемых в
модели. Для выполнения действий над флажками используют объекты любых
типов;
- обеспечение условий отделяют от основной схемы модели в отдельную
схему-ветвь, и делают метагруппой. Такой подход может несколько снизить
эффективность решения модели, но заметно повышает наглядность модели и
эффективность изменения модели. Выбор подхода зависит от того, что
дороже: мучиться над пониманием и изменением модели или терять несколько
секунд при каждом ее решении.
Многие специальные условия задаются в свойствах объектов - как
значения переменных объекта или как значения полей в таблице.
|