Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы оптимизации, технические приложения

.pdf
Скачиваний:
0
Добавлен:
24.11.2025
Размер:
3.96 Mб
Скачать

171

4.Решаем задачу линейного программирования с дополнительным ограничением, полученным на третьем шаге.

5.Переходим к пункту 2.

Главное в данном методе – правильно выбрать отсекающую гиперплоскость. Она должна быть линейной, отсекать найденное оптимальное нецелочисленное решение задачи линейного программирования (6.4)–(6.6), и не должна затрагивать ни одной целочисленной точки задачи (6.1)–(6.3).

Рассмотрим предложенный Р. Гомари алгоритм выбора отсекающей гиперплоскости. Обозначим Jб – множество индексов, соответствующих базисным переменным; Jнб – множество индексов, соответствующих небазисным переменным. Тогда после каждой итерации система ограничений задачи будет иметь вид

xi i ij x j ,

 

j J нб

 

 

где i , ij

– преобразованные величины bi и aij .

Оптимальное решение, полученное при выполнении условия

cб j c j 0 ,

 

 

имеет вид:

 

 

 

 

x* 0,

j J

нб

;

 

j

 

 

 

xi i ,

i Jб .

 

Если хотя бы одно из значений i ,

i Jб , не целое, то полу-

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

Гиперплоскость, согласно правилу отсечения Гомари, определяется по формуле

i ij x j 0 ,

j J нб

где i и ij – дробная положительная часть чисел i и ij соот-

ветственно.

Например, β = 2,7. Тогда {β} = 0,7. Для β = – 8,3 положительная дробная часть будет равна {– 8,3} = 0,7. Целая часть числа обозначается [βi]. Для β = 2,7 целая часть [2,7] = 2. Для β = – 8,3 целая

часть [β] = –9. Очевидно,

 

[ ] { };

(6.7)

ij [ ij ] { ij } .

Правило Гомари получается путем следующих рассуждений.

172

Пусть в полученном для задачи линейного программирования оптимальном решении некоторое i0 – не целое. Составим условие

оптимальности для строки i0, в которой находится число i0 :

xi

i

 

i j x j .

(6.8)

0

0

 

0

 

 

 

 

j J нб

 

Затем находим целую и дробную части его коэффициентов. Со-

гласно формулам (6.7) имеем:

 

 

 

 

 

 

i

[ i

] { i };

 

 

 

 

 

 

 

 

(6.9)

0

0

 

0

 

 

 

 

 

 

 

 

 

i

j [ i j

] { i j } .

 

 

 

 

 

 

 

0

 

0

0

 

 

 

 

 

 

 

 

 

Так как по предположению

i

 

– не целое и дробная часть числа

 

 

 

 

 

 

 

 

0

 

 

 

положительна, то

 

 

 

 

 

 

 

 

 

0 { i } 1; 0 { i

0

j } 1 .

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

Подставив выражения для i

 

и i j

из формулы (6.9) в формулу

 

 

 

 

 

 

 

0

 

0

 

 

 

(6.8), получим

 

 

 

 

 

 

 

 

 

 

 

[ i

] { i }

 

 

j ](x j ) i

 

 

xi

 

[ i

j (x j ) .

0

0

0

 

0

 

 

 

0

 

 

 

 

 

 

 

 

 

j J нб

 

 

 

 

 

j J нб

 

 

 

 

Объединим целые и дробные части в последнем равенстве:

 

 

 

 

 

 

 

 

 

i

 

xi

[ i ]

[ i

 

j ](x j ) { i }

j (x j ) .

0

 

0

0

 

 

 

0

 

0

 

 

 

j J нб

 

 

 

j J нб

 

 

 

 

 

 

 

 

 

 

 

Первая скобка представляет собой разность целых чисел. Следовательно, она является целой. Тогда для того чтобы xi0 было це-

лым, необходимо, чтобы целым была разность во второй скобке

i i

j (x j ).

 

 

 

 

 

0

0

 

 

 

 

 

 

j J нб

 

 

 

 

i j x j не может быть отрицатель-

Так как

0 { i } 1

и

 

 

0

 

 

0

 

 

ной, то i

 

i

 

 

j J нб

i

j (x j ) i .

 

j (x j ) 0 или

0

 

0

 

 

 

0

0

 

 

j Jнб

 

 

 

j J нб

 

Пример 6.2. Используя метод отсечения, найти максимальное значение целевой функции

f=70x1 + 30x2

при ограничениях:

10х1 + 4х2 40;

6х1 + 4х2 36;

173

х1, х2 0; х1, х2 – целые.

Р е ш е н и е . 1. Вводим базисные переменные х3 и х4:

10х1 + 4х2 + х3 = 40; 6х1 + 4х2 + х4 = 36.

Откуда

х3 = 40 – 10х1 – 4х2; х4 = 36 – 6х1 – 4х2.

2. Составляем исходную симплексную таблицу (табл.1).

Таблица 1

БП

1

СП

 

 

 

х1

х2

х3

40

10

4

х4

36

6

4

f

0

–70

–30

3. Используя табличный симплекс-метод, находим оптимальное решение задачи линейного программирования (табл.2, 3).

Таблица 2

БП

1

 

СП

 

 

 

 

 

 

х3

 

х2

 

х1

4

0,1

0,4

 

х4

12

 

–0,6

1,6

 

 

 

 

 

 

 

 

f

280

7

 

–2

 

Таблица 3

 

 

 

 

 

 

Б.П.

1

 

С.П.

 

 

 

 

 

 

х3

 

х4

 

х1

1

 

10

 

4

 

х2

15/2

 

–3/8

 

5/8

 

f

295

 

25/4

 

5/4

 

Оптимальное решение задачи линейного программирования есть

 

15

 

X * 1,

 

, 0, 0 .

 

 

2

 

4.Так как в полученном плане не все значения базисных переменных целые, то найденный план не является оптимальным для задачи целочисленного программирования.

5.Составляем уравнение отсекающей гиперплоскости для х2:

174

 

 

 

 

 

 

 

x

 

j

0.

 

 

 

 

 

 

 

 

i2

 

 

 

 

 

2 j

 

 

 

 

 

 

 

 

 

 

 

 

 

По полученным данным табл. 3 имеем:

15

 

 

 

 

 

3

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

x

 

 

0

 

 

 

 

 

 

 

3

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

8

 

 

 

 

 

 

 

8

 

 

 

 

 

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

5

 

 

 

 

 

 

5

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

x3

 

 

 

 

 

x4

 

,

 

 

 

 

2

 

 

8

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

т.е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

x3

 

5

x

4

 

 

1

.

 

 

 

 

 

 

 

 

 

 

8

8

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вводим новую базисную переменную х5, обращающую последнее неравенство в равенство:

58 x3 58 x4 x5 21 .

Выражаем базисную переменную х5 через свободные переменные:

x5 21 58 x3 58 x4.

С учетом полученного ограничения составляем новую симплексную таблицу (табл. 4).

Таблица 4

БП

1

СП

 

 

 

х3

х4

х1

1

1/4

–1/4

х2

15/2

–3/8

5/8

х5

–1/2

–5/8

5/8

 

 

 

 

f

295

25/4

5/4

 

 

 

 

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

 

 

1

 

 

 

. Фиксируем первый столбец (–х3). Определяем наименьшее

 

 

 

2

 

симплексное отношение

 

 

 

 

 

 

 

 

175

 

 

 

1

 

1

 

5

 

4

 

 

4

 

min 1:

 

;

 

:

 

 

min 4,

 

 

 

 

 

.

 

 

 

 

 

 

 

4

 

2

 

8

 

5

 

 

5

 

Оно соответствует элементу 53 85 .

С найденным разрешающим элементом делаем шаг симплексных преобразований (табл. 5).

Таблица 5

БП

1

СП

 

 

 

х5

х4

х1

4/5

2/5

–1/2

х2

39/5

–3/5

1

х3

4/5

–8/5

1

f

55

10

5

В полученном плане базисные переменные снова не целые:

x

4

; x

 

 

39

 

; x

 

 

4

.

 

 

 

 

 

 

 

2

 

3

 

 

 

 

 

 

 

1

5

 

5

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

39

 

4

 

Следовательно,

план

X

 

,

 

,

 

, 0, 0 не является оптималь-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

5

 

5

 

ным для задачи целочисленного программирования. Строим новую отсекающую гиперплоскость. В качестве компоненты i, i I6, принимаем i с большей дробной частью i. В нашем случае дробная часть { i} одинакова во всех свободных членах, поэтому выбираем любое i, например, i = 3. Уравнение отсекающей гиперплоскости будет иметь вид

 

 

 

 

a

x

 

 

 

4

 

 

 

8

x

 

 

 

 

 

4

 

2

 

 

 

x

 

 

 

 

 

{1}x

 

 

 

 

x

 

0.

3

j

 

 

5

4

 

 

5

 

3

3 j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j J Н .Б

 

 

 

 

8

 

 

 

5

 

 

 

 

 

5 5

 

 

 

Откуда 52 x5 54 . Вводим новую базисную переменную х6:

52 x5 x6 54 .

Выражаем х6 через свободные переменные:

x6 54 52 x5.

Запишем новую симплексную таблицу (табл. 6).

 

 

176

 

Таблица 6

 

 

 

БП

1

СП

 

 

 

х5

х4

х1

4/5

2/5

–1/2

х2

39/5

–3/5

1

х3

4/5

–8/5

1

х6

–4/5

–2/5

0

 

 

 

 

f

55

10

5

Содержащийся в таблице план не является опорным, так как в столбце свободных членов есть отрицательный элемент.

Строим опорный план.

Фиксируем столбец х5. Он будет разрешающим. Находим минимальное отношение

 

 

4

:

2

 

4

 

2

 

min 2,2 2.

min

 

 

;

 

:

 

 

 

 

 

 

 

 

5

 

5

 

5

 

5

 

 

 

 

 

2

 

В качестве разрешающего берем элемент а65

=

 

. С полу-

 

 

 

 

5

 

ченным разрешающим элементом делаем шаг симплексных преобразований (табл. 7).

Таблица 7

Б.П.

1

С.П.

 

 

 

х6

х4

х1

0

1

–1/2

х2

0

–3/2

1

х3

4

–4

1

х5

2

–5/2

0

f

8

25

5

Получим план X* = (0, 0, 4, 0, 2, 0). Он является оптимальным как для расширенной задачи линейного программирования, так и для задачи целочисленного программирования, так как все элементы хj – целые.

177

Упражнения

1. Решить задачи методом отсечения.

1.1. f x1 4x2 x3 min ; x1 x2 2x3 3;

2x1 x2 1; 2x2 3x3 4;

x j 0, j 1,3; x j целые .

1.2. f 4x1 3x2 max; 8x1 2x2 88;

x1 22; 5x2 90;

 

 

 

 

 

 

 

целые .

 

x j

0,

j 1,2 ; x j

1.3.

f

110x1 90x2 max;

 

3x1 4x2 10;

 

 

2x1 x2

8;

 

 

x2 5;

 

 

 

 

 

 

x j

0,

j 1,2 ; x j

целые .

1.4.

f

3x1 2x2 x3

min;

 

x1 3x2 x3 10;

 

 

2x1 4x2 14;

 

 

2x2 x3 7;

 

 

 

 

 

 

 

целые .

 

x j

0,

j 1,3; x j

1.5.

f

x1 x2 max ;

 

x1 2x2 x3 1;

 

 

x1 3x2 x4 3;

 

 

 

 

 

 

 

целые .

 

x j

0,

j 1,4 ; x j

1.6.

f

2x1 x2 x3 max;

 

x1 2x2

2x3 16;

 

x1 x2 7;

 

178

3x1 2x3 18;

 

 

 

 

x j 0,

j 1,3; x j целые .

1.7. f x4

x5 min;

x1 4x2 2x5 1;

x2 2x4 2;

x3 3x4 x5 3;

 

 

 

 

 

 

 

 

целые .

 

x j

0, j 1,5;

x j

1.8.

f

x1 2x2 3x3

max;

 

6x1 4x2

3x3

25;

5x1 3x2

2x3

15;

 

 

 

 

 

 

 

целые .

 

x j

0, j 1,3;

x j

1.9.

f

70x1 30x2 max;

10x1 4x2 40;

 

 

6x1 4x2

36;

 

 

 

 

 

 

 

 

целые .

 

x j

0, j 1,2 ;

x j

1.10. f 4x1 3x2

max;

 

x1 4x2 6;

 

 

 

4x1 2x2

2;

 

 

 

 

 

 

 

 

 

целые .

 

x j

0, j

1,2 ;

x j

179

ЛИТЕРАТУРА

1.Горлаг Б.А., Шахов В.Г. Математическое моделирование. Построение моделей и численная реализация. М.: Высшая школа. 2018. – 280с.

2.Королев А.В. Экономика – математические методы и моделирование. Учебник и практикум для бакалавриата и магистратуры. М.: Высшая школа. 2018 – 280 с.

3.Лебедева Г.И. Прикладная математика. Математические модели в транспортных системах /Г.И. Лебедева, Н.А. Микулик, Минск: Асар, 2009.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]