НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




предыдущая главасодержаниеследующая глава

18-1. Особенности задач целочисленного программирования

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

Пример 18-1. Требуется найти решение следующей задачи целочисленного программирования:


При целочисленности переменных максимум достигается в точке x1опт=3, х2опт=2 в то время как при исключении этого требования zопт = 3 в точке . Округление результата до целых не дает оптимума исходной задачи, как это видно из рис. 18-3. Заметим, что условие целочисленности z при снятии этого требования к переменным х1 и х2 определяет оптимум при других значениях x1 и х2.

Из этого простейшего примера виден комбинаторный характер задач целочисленного программирования, который часто требует прямого перебора. Покажем, как задача дискретного не целочисленного программирования может быть сведена к задаче целочисленного программирования [Л. 97]. Допустим, имеется задача математического программирования в виде

min{F(x)| xj≥0, j = 1, 2, n; ψi(х)<0, i= 1, 2, m>}.

Будем считать что переменная xj0 может принимать только одно из заданного множества значений

xj0∈{k1j0, k2j0,....,kpj0}.

Введем дополнительные булевы переменные y1, y2,...,yp и запишем условие дискретности для хj0 в вид


Последнее соотношение требует, чтобы только одна переменная yv была отлична от нуля. Нетрудно убедиться, что формулы (18-2) обеспечивают дискретность переменной xj0. Таким образом, путем введения булевых переменных yv можно всегда свести не целочисленную дискретную задачу математического программирования к целочисленной. Как видно, соотношения (18-2) представляют собой p-кратную логическую альтернативу:

"xj0 = k10 или xj0 = k20 или ...., или xj0 = kp0".

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


Введем дополнительную булеву переменную yj0, которую не будем включать в функцию цели, а заменим рассмотренные соотношения следующими:


Очевидно, что соотношения (18-2a) и (18-26) эквивалентны. Действительно, когда yj0 = 1, то (18-26) сводится к xj0 ≥ 0 и xj0а; когда yj0 = 0, то к xj0≥b и xj0≤kj0. Таким образом, много связность области допустимых значений легко учитывается введением дополнительных булевых переменных. Этот метод без труда распространяется на случай многих переменных.

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

Пример 18-2. Рассмотрим процедуру сведения задачи не выпуклого программирования к целочисленному программированию. Пусть область допустимых значений задана системой неравенств


Соответствующая область представлена на рис. 18-4. Первая и вторая пара неравенств образуют выпуклые подобласти х1 и х2 с учетом не отрицательности переменных с верхними границами x1макс и x2макс соответственно. Введение булевой переменной y приводит к дополнительным неравенствам

x1-yxмакс ≤ 0,
x2 - (1 - y)хмакс ≤ 0.

Здесь каждое условие относится ко всем неравенствам соответствующей области.

Рис. 18-4. Пример не выпуклой области, состоящей из выпуклых многогранников
Рис. 18-4. Пример не выпуклой области, состоящей из выпуклых многогранников

Нетрудно убедиться, что аналогичный способ применим в случае числа переменных, большего двух.

предыдущая главасодержаниеследующая глава








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь