Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Оператор FREE

Разработка более сложных моделей в LINGO 221 | Указатель LINGO | Представление модели в What’s Best | Связь с фирмой LINDO Systems | Ввод задачи в LINDO | Nbsp;   2 Команды LINDO | Детальное обсуждение команд для Windows | Output Options | Графическое изображение ненулевых элементов | Принципы моделирования |


Читайте также:
  1. Case. Оператор выбора
  2. if...else оператор
  3. В Алматы обсудили конфликт интересов правообладателей российских ТВ и казоператоров телевещания
  4. Вбудовані оператори
  5. Вложенные операторы If. Логические операции и выражения
  6. Вложенные операторы if. Сложное условие в операторе if. Логические операции
  7. Встроенные операторы и их приоритет

 

Нижней границей для всех переменных по умолчанию принимается 0. Другими словами, если не оговорено что-либо иное, LINDO не позволяет переменной принимать отрицательные значения. Оператор FREE позволяет убрать все ограничения на переменную (освободить ее), так что она может принимать любые вещественные значения, положительные или отрицательные.

Следующий небольшой пример иллюстрирует использование оператора FREE:

 

 

Если мы не объявим в этом примере переменную Y свободной, LINDO не сможет найти оптимальное решение в виде X =0 и Y = – 1. Вместо этого, взяв нижнюю границу для Y по умолчанию равной нулю, LINDO возвратит решение в виде X =7 и Y =0.

 

Оператор GIN

 

По умолчанию LINDO считает все переменные непрерывными. Другими словами, если не оговорено что-либо иное, LINDO предполагает, что переменные могут принимать любые неотрицательные, в том числе и дробные, значения. Во многих приложения дробные значения имеют мало смысла (например, 2.5 работника). В подобных ситуациях вы естественно захотите использовать оператор GIN. Этот оператор с последующим за ним именем переменной ограничивает ее значения только неотрицательными целыми числами (0, 1, 2, ….).

Следующий небольшой пример иллюстрирует применение оператора GIN:

 

Если мы не объявим переменные X и Y целыми, то он не сможет найти оптимальное решение X=6 и Y=0. Вместо этого LINDO будет считать X и Y непрерывными и вернет решение в виде X=5.29 и Y=1.43.

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

В заключение отметим, что оператор GIN может в качестве аргумента принимать и просто целое число вместо имени переменной. Это число соответствуют количеству переменных, которые вы хотите считать целыми в свой задаче. Такие переменные должны появиться первыми в формулировке модели. Так, в последнем простом примере мы можем заменить оба оператора GIN одним: GIN 2.

 

Оператор INT

Использование оператора INT ограничивает значения переменой двумя числами 0 и 1. Подобные переменные часто называют бинарными (binary). Во многих приложениях они могут быть очень полезными при моделировании ситуаций типа «все-или-ничего». Примерами могут служить такие ситуации, как фиксированные платежи, построение нового предприятия, закупка минимального уровня некоторого ресурса для получения оптовой скидки. За более полной информацией относительно полезности применения бинарных переменных вы можете обратиться к книге «Оптимизационные модели в LINDO» компаньона нашей фирмы Лайнуса Шрэйджа.

Следующий простой пример иллюстрирует использование оператора INT.

 

 

Если мы не объявим в этом примере переменную X бинарной, то LINDO вернет значение в виде X=0.4, A=4 и B=7 со значением целевой функции, равным 124. Условно считая X бинарной, вы можете предположить, что оптимальным решением для X будет значение 0, поскольку 0.4 ближе к 0 чем к 1. Если мы таким образом округлим X до нуля, и найдем оптимальные значения для A и B, то мы получим значение целевой функции, равным 84. в действительности же существует значительно лучшее решение при X=1. A=10 и B=1 со значением целевой функции, равным 112.

В общем случае округленное непрерывное решение может и не быть оптимальным, а в худшем случае может оказаться и недопустимым. Исходя из этого, можно предположить, что получение оптимального решения в модели со многими целочисленными переменными может быть сопряжено со значительными временными затратами. В общем случае, так оно и есть, и лучше использовать оператор INT только там, где это действительно необходимо.

В заключение отметим, что оператор INT может в качестве аргумента принимать и просто целое число вместо имени переменной. Это число соответствуют количеству переменных, которые вы хотите считать целыми в свой задаче. Такие переменные должны появиться первыми в формулировке модели.


Дата добавления: 2015-11-16; просмотров: 87 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Синтаксис модели| Операторы SUB и SLB

mybiblioteka.su - 2015-2024 год. (0.007 сек.)