IntellectSoft
Материалы    замечания к примерам

1. Источники примеров

Большинство примеров взяты из хороших книг по методам оптимизации деятельности и по исследованию операций. Использованы также некоторые другие источники. Часть примеров разработана самостоятельно. Для всех заимствованных примеров указаны их источники.
Многие примеры кажутся простыми. Так происходит потому, что с помощью GEM решать задачи проще, чем с помощью тех средств, что предлагают источники. Однако, примеры показывают, как решать типовые задачи, в том числе и задачи со сложной формулировкой. Сложность решения переносится из технической области использования математических методов в область понимания задачи.

2. Использование примеров

    Для удобства выбора и использования, к примерам даны:
  1. Перечень, сгруппированный по источникам. Название примера начинается с указания на место в источнике, где его можно найти. Далее следует название примера в источнике.
  2. Постановки задач из источников. Они помогут ознакомиться с содержанием примера и выбрать интересующие Вас примеры.
    Вы можете по перечню примеров:
  • постановка посмотреть постановку задачи;
  • скачать скачать группу примеров, относящуюся к источнику;
  • скачать отдельный пример.
Примеры упакованы в zip-файлы.
    В комплект каждого примера входит:
  1. постановка и решение задачи в html-виде;
  2. одна или несколько GEM-моделей, построенных для решения;
  3. MDL-модели, дублирующие GEM-модели. Они помогут восстановить модель в случае утраты GEM-модели и перенести модель в другую версию GEM.

3. Изменение примеров

Не изменяйте модели примеров! Если вы хотите сохранить внесенные при работе с примером изменения, сохраните модель под другим именем.
Если все-таки модель примера была изменена, и надо вернуться к начальному варианту, можно воспользоваться MDL-версией примера. Используйте MDL-модель только для того, чтобы получить GEM-версию! - откройте MDL-модель и сохраните ее как GEM-модель. Не делайте с MDL-моделью никаких других действий.

4. Подход к решению

Используемые имена
Используемые имена сущностей - имена объектов, материалов, ресурсов, продуктов и прочего - должны быть удобны и понятны. Поэтому, если модель простая, имена могут быть простыми, короткими, условными. Например, С1, Ф1. Когда имен мало, не возникнет путаницы и останется понятным назначение того, что поименовано. Чем сложнее модель, тем длиннее и выразительнее должно быть имя, и тем точнее должно оно выражать назначение именованной сущности.
Т.к. при разработке модели, по мере ее усложнения, назначение часто меняется, приходится следить за изменением и исправлять имена, когда это требуется.

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