Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Боровский Г.С..doc
Скачиваний:
3
Добавлен:
14.08.2019
Размер:
14.82 Mб
Скачать

3. Целочисленное программирование.

3.1 Постановка задачи целочисленного программирования (зцп)

ЗЦЛП формируется следующим образом:

Найти такое решение (план) Х=(х1х2… хn), при котором линейная ф-ция:

n

Z=∑cjxj принимает max или min значение, при ограничениях:

j=1

n

∑ aijхj=bi, i=1,2, …m;

j=1

xj≥0, j=1,…n; xj- целые числа.

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

- методы отсечения;

- комбинаторные;

- приближенные;

3.2 Метод отсечения (метод Гомори).

Сначала задача решается без условия целочисленности, если полученный план целочисленный, то задача решена. В противном случае к ограничениям задачи добавляется новое ограничение, обладающее следующими свойствами:

- оно должно быть линейным;

- должно отсекать найденный нецелочисленный план;

- не должно отсекать ни одного целочисленного плана;

Такое дополнительное отсечение называется правильным отсечением.

Алгоритм решения ЗЛЦП, предложенный Гомори, основан на симплексном методе и использует способ построения правильного отсечения.

Неравенство, сформированное по i-тому уравнению системы ограничения оптимального решения, имеет вид:

βi - αim+1 xm+1-…- αm xn≤0 (1),

где {βi}, { αim+1}, { αm} – не целые компоненты коэффициентов.

Ц елой частью числа а называется наибольшее число [α], не превосходящее α; дробной частью числа а является числа α =α-[α]. Например для

α =2⅓; [α]=2, α =2⅓ -2=1/3,для

α = -2⅓; [α]= -3, α = -2⅓-(-3)=2/3

3.3 Алгоритм решения злцп

1.Симплексным методом решить задачу без учета условия целочисленности, если все компоненты оптимального плана целые, то он является оптимальным и для задачи целочисленного программирования.

2.Если среди компонент оптимального решения есть нецелые, то выбрать компоненту с наибольшей целой частью и сформировать правильное отсечение.

3.Неравенство, определяющее правильное отсечение введением дополнительной, неотрицательной целочисленной переменной, преобразовать в равносильное уравнение и включить его в систему ограничений.

4.Полученную расширенную задачу решить симплексным методом, если оптимальный план будет целочисленным, то задача ЛЦП решена, в противном случае вернуться к пункту 2 алгоритма.

Пример: При решении некоторой оптимизационной задачи симплексным методом получено некоторое базисное решение:

х1=21х4 + 4х5

3 3 3

х2=8 – х5

х3=18+х45

Z=25 12x41x5

3 3 3

X=(2; 8; 18; 0; 0) Z=25 1

3 3

Это базисное решение оптимизировано.

Однако решение Х не удовлетворяет условию целочисленности, т.к. по первому уравнению с переменной x1=2/3-1/3x4+4/3x5 , получившей нецелочисленное значение в оптимальном решении(2/3).

С оставляем правильное отсечение, в виде дополнительного ограничения.

2/3 + 1/3 х4– 4/3 х5≤0 (1)

Обращаем внимание на то, что берем дробную часть свободного члена с тем же знаком, который он имеет в уравнении, а дробные части коэффициентов при не основных переменных х4 и х5 – с противоположными знаками.

Так как дробные части:

2 /3 = 0+2/3 =2/3

1 /3 = 0+1/3 =1/3

- 4/3 = -2+2/3 =2/3,

тогда последнее неравенство в соответствии c (1) запишется в виде:

2/3+1/3х4-2/3х5≤0 (2)–правильное отсечение.

Введя дополнительную целочисленную переменную х6 ≥ 0, получим равносильное неравенству (2) ,уравнение:

2/3+1/3х4-2/3х5 6=0

Включаем это уравнение в систему ограничений, после чего повторяем алгоритм решения задачи симплексным методом, применительно к расширенной задаче. Дополнительное уравнение вводится в систему, полученную на последнем шаге решения задачи(без условия целочисленности).