Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛК06-Тонкости разработки и использования моделе...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
474.11 Кб
Скачать

5) Целочисленное моделирование

Существует ряд моделей, где достаточно простой способ удовлетворения требований целочисленности за счет округления результата не срабатывает Это может быть обусловлено небольшим масштабом рас­сматриваемых переменных решения. Например, если решение задачи ЛП предлагает ком­пании Боинг произвести в будущем квартале 3,6 самолетов типа Boeing 747 и 4,8 типа Boe­ing 777, руководство, вероятно, не согласится с тем, чтобы округлить эти значения и при­нять решение построить четыре самолета Boeing 747 и пять Boeing 777 или просто остановиться на любой другой округленной комбинации. С одной стороны, в данном слу­чае округление может привести к недопустимому решению, поскольку будут нарушены ог­раничения по ресурсам. Однако даже если округленное решение будет допустимым, целе­сообразно определить наилучшее возможное целочисленное решение, поскольку с каждым произведенным самолетом связаны большие объемы материальных и трудовых ресурсов. Широко распространенным примером таких моделей являются модели логистических процессов (складирования и доставки грузов).

Примерами другого рода являются модели, в которых целочисленные переменные используются в качестве индикаторов логических решений. Например, рассмотрим мо­дель, в которой переменная А равна 1, если следует построить склад в городе N, и 0 — в противном случае. Предположим, что в результате решения некой задачи ЛП для дан­ной ситуации получается нецелое значение (скажем, А=0,38). Очевидно, что такое значение не дает никакой полезной информации о решении реальной задачи, поскольку невозможно построить 0,38 склада. Можно построить склады различных размеров, но все равно необходимо решить, будет склад в городе N или нет Может показаться, что в подобных случаях округление до ближайшего целого (в данном случае это 0) позво­лит решить проблему. К сожалению, такой подход не гарантирует получения хорошего решения (не говоря об оптимальном). Как будет показано далее, округление в подобных случаях не всегда ведет даже к получению допустимого решения.

Существует очень много управленческих моделей, которые можно считать линейны­ми за исключением требования целочисленности переменных решения, и в которых не­возможно найти хорошее решение, используя обычные методы линейной оптимизации, заложенные в средстве Поиск решения, а затем округляя оптимальные значения пере­менных решения. Эти модели необходимо создавать с помощью методов, специально разработанных для решения крупных задач целочисленного программирования.

Сравнение моделей ЛП и ЦЛП

Несмотря на то что в настоящее время существует набор методов оптимизации моде­лей целочисленного программирования, арсенал этих средств все еще заметно отличает­ся от того, которым пользуются при решении задач, в которых переменные решения не обязаны быть целыми. Многие модели, которые легко оптимизировать в виде задачи ли­нейного программирования, практически невозможно решить, если потребовать, чтобы переменные решения принимали целые значения (время и затраты, необходимые для на­хождения оптимального решения, могут быть слишком велики). Это кажется неестест­венным, поскольку добавление ограничений целочисленности уменьшает количество допустимых вариантов, которые необходимо проанализировать, а уменьшение множест­ва допустимых вариантов должно облегчить поиск оптимального решения. Однако на практике для оптимизации моделей целочисленного программирования требуется, как правило, в десятки, а зачастую в сотни и тысячи раз больше времени, чем для оптимиза­ции аналогичных моделей без ограничений целочисленности. Хотя, для современных компьютеров это уже не проблема, но еще 10 лет тому назад это приходилось учитывать.

Типы целочисленных оптимизационных моделей

Общий термин целочисленное программирование применяется к созданию оптимизацион­ных моделей с условиями целочисленности (условия, требующие, чтобы некоторые или все пе­ременные решения принимали целые значения) Как уже отмечалось, модели целочисленного линейного программирования (ЦЛП) — это модели линейного программирования, содержа­щие дополнительное требование, чтобы некоторые или все переменные решения принимали только целые значения. Существует несколько классов моделей данной категории.

Модель полностью целочисленного линейного программирования, как следует из назва­ния, это модель, в которой все переменные решения должны принимать только целые значения. Например, модель:

минимизировать 6х1 + 5х2 + 4х3 при ограничениях

108х1 + 92х2 + 58х3>576,

1+ 18х2+22х3>83,

х1х23> 0 и целые

является полностью целочисленной. Без дополнительных условий, оговаривающих, что х1 х2 и х3 должны быть целыми числами (т.е. без условий целочисленности), данная мо­дель является обычной моделью линейного программирования.

Модель, в которой некоторые переменные должны принимать только целые значе­ния, а остальные переменные могут быть любыми, называется моделью частично-целочисленного линейного программирования.

В некоторых моделях целочисленные переменные могут принимать только значения О или 1. Их называют моделями двоичного целочисленного линейного программирования Эти модели особенно важны, поскольку двоичные переменные можно использовать для представления дихотомических решений (решений типа «да-нет»). Разнообразные моде­ли назначений, размещения заводов, производственного планирования и управления инвестиционными портфелями являются примерами моделей двоичного ЦЛП.

Часто также рассматриваются модели линейного программирования, которые полу­чаются из исходных моделей ЦЛП в результате отказа от ограничений целочисленности. Такие модели ЛП называются упрощением модели ЦЛП.

Применение двоичных переменных

Двоичные переменные (принимающие значения 0 или 1) играют исключительно важную роль в прикладных моделях ЦЛП. Эти переменные позволяют включать в оптимизационные модели решения, описываемые в Excel с помощью функции ЕСЛИ, которые иногда еще на­зывают дихотомическими решениями. Умелое применение двоичных переменных позволяет включать в оптимизационную модель проверку различных логических условий, тем самым заменяя функцию ЕСЛИ в форму­лах Excel, использовать которую в моделях линейного программирования нельзя.

Зависимые решения

С помощью двоичных переменных можно описать зависимость между двумя или не­сколькими переменными решения. Например, руководство компании AutoPower не хо­чет принимать вариант к, если не будет принят вариант т. Это условие можно предста­вить с помощью ограничения

Для понимания отличия ЦЛП от ЛП, необходимо рассмотреть графическую интерпретацию (рис. 6)

Рис. 6 - Графическое представление решения целочисленной модели

Для оптимизации моделей ЦЛП средством Поиск решения используется другой алгоритм - ветвей и границ, который является в на­стоящее время наиболее эффективным универсальным методом. Основная идея метода состоит в разбиении множества всех допустимых решений данной задачи ЦЛП на непересекающиеся подмножества меньшего размера. После этого вычисляются границы значения наилучшего решения для каждого подмножества реше­ний. Алгоритм позволяет исключить из рассмотрения определенные подмножества ре­шений, тем самым производится частичный перебор всех допустимых решений (в отличие от полного перебора).