Научная статья на тему 'Метод сокращения отрицательных индексных элементов при поиске начального базисного псевдооптимального решения задачи линейного программирования'

Метод сокращения отрицательных индексных элементов при поиске начального базисного псевдооптимального решения задачи линейного программирования Текст научной статьи по специальности «Математика»

CC BY
174
39
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Journal of new economy
ВАК
Область наук
Ключевые слова
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ / СИМПЛЕКС-МЕТОД / НАЧАЛЬНОЕ БАЗИСНОЕ РЕШЕНИЕ / НАЧАЛЬНОЕ ПСЕВДООПТИМАЛЬНОЕ БАЗИСНОЕ РЕШЕНИЕ

Аннотация научной статьи по математике, автор научной работы — Истомин Леонид Александрович

Опираясь на произвольное базисное решение системы уравнений задачи линейного программирования канонического вида, автор продолжает рассматривать (см.: Известия УрГЭУ. 2009. № 2(24)) метод получения для задачи начального псевдооптимального базисного решения.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Метод сокращения отрицательных индексных элементов при поиске начального базисного псевдооптимального решения задачи линейного программирования»

ИСТОМИН Леонид Александрович

Кандидат физико-математических наук, доцент кафедры математического обеспечения и администрирования информационных систем

Уральский государственный экономический университет

620144, РФ, г. Екатеринбург, ул. 8 Марта/Народной воли, 62/45 Контактный телефон: (343) 221-27-37 e-mail: KBM3@yandex.ru

Метод сокращения отрицательных индексных элементов при поиске начального базисного псевдооптимального решения задачи линейного программирования

Ключевые слова: линейное программирование; симплекс-метод; начальное базисное решение; начальное псевдооптимальное базисное решение.

Аннотация. Опираясь на произвольное базисное решение системы уравнений задачи линейного программирования канонического вида, автор продолжает рассматривать (см.: Известия УрГЭУ. 2009. № 2(24)) метод получения для задачи начального псевдооптимального базисного решения.

В предыдущей работе [1] обсуждалась ситуация, когда первоначальное базисное решение задачи линейного программирования (ЛП) канонического вида не является ни допустимым (т. е. не выполняется условие х > 0), ни псевдооптимальным (т. е. не выполняется условие Аг. > 0). В той же работе был рассмотрен метод сокращения отрицательных компонент, позволяющий найти начальное допустимое базисное решение задачи с дальнейшим доведением его до оптимального с помощью прямого симплекс-метода. Однако иногда удобнее использовать двойственный симплекс-метод [2], работающий с псевдооптимальным базисным решением задачи ЛП. Но для этого надо иметь некоторое начальное псевдооптимальное базисное решение. Данная работа посвящена рассмотрению именно этого вопроса.

Пусть исходная задача линейного программирования Ь0 имеет канонический вид и ее система уравнений разрешена относительно первых базисных переменных, т. е. задача имеет вид:

тах {сБгхБ + сТ х: БхБ + Ах = Ь, хБ > 0, х > 0 },

тогда двойственной ей задачей Ь0 будет:

тт{Ьгу: V > сБ, АтV > с }.

Здесь хт = (х1, х2, ..., хя) - вектор решений задачи Ь0; хБ = (х1, х2,..., хт) совокупность

базисных переменных; х = (хт+1, хт+2,..., хп) - совокупность небазисных (свободных) переменных; Е - единичная матрица порядка т; А - матрица размерности (т х (п - т)); ЬТ = (Ь1, Ь2, ..., т) - вектор правых частей уравнений задачи Ь0 (предполагаем Ь ^ 0); сБ = = (с1, с2, ..., ст) и с = (ст+1, ст+2,..., сп) - соответственно векторы коэффициентов линейной целевой функции задачи Ь , относящиеся к базисным и небазисным переменным;

V7' = ^^, V , ..., Vm) - вектор решений двойственной задачи

Задачу Ь0 решаем, используя симплекс-таблицу, которая в агрегированной блочной форме имеет следующий вид:

© Истомин Л. А., 2009

Симплекс-таблица задачи Ь 0

тах с Ст Б -т С1 -т С2

Б СБ т ХБ —т Хі —т Х2 ь \

ХБ СБ Е Ап А!2 Ь > 0

а2, А22 Ь2 < 0

Аг > 0 0 1 1 А Аг. > 0 } Аг. < 0 } г

Введем обозначения:

I = {г =1, 2, т} - совокупность индексов всех строк;

71 = {г Е I : Ь. > 0} - индексы строк, для которых Ь. > 0;

12 = {г Е I: Ь. < 0} -индексы строк, для которых Ь. < 0;

] = {у = 1, 2, ..., п} - индексы всех столбцов переменных;

]Б = {/ Е ] : у = 1, 2, ..., т} - индексы столбцов базисных переменных;

] = {у е ]: у г ]Б} - индексы столбцов небазисных переменных;

] 1 = {у е ]: у г ]Б, Дгу > 0} - индексы столбцов небазисных переменных, для которых условие оптимальности выполняется, т. е. Аг. > 0;

]2 = {у е ]: у г ]Б, Дгу < 0} - индексы столбцов небазисных переменных, для которых условие оптимальности не выполняется, т. е. Аг. < 0.

В основе предлагаемого метода сокращения отрицательных индексных элементов лежит следующее

Утверждение: если для некоторого подмножества ]0 с ]2 для всех г Е I выполняется условие

X ач - 0

уе] 0

то двойственная задача Ь0 не имеет допустимых решений.

Действительно, множество допустимых решений уТ = (у1, v, ..., vm) задачи Ь0 задается неравенствами V > сБ, ЛТу > с.

Принимая во внимание симплекс-таблицу задачи Ь0, возьмем V = сБ. Пусть Аv - приращение к решению V = сБ, такое, что V = v + Дv = сБ +Дv будет допустимым решением задачи Ь0, т. е. для него выполняется

сБ + Аv > сБ, ЛТ (сб +Дv) > су (у е ]).

Отсюда следует, что Аv должно удовлетворять неравенствам

Дv > 0, ЛТДv >-(лТсБ -су )= -Дгу(у е]).

Складывая левые и правые части неравенств, относящиеся к индексам /0 с ^ ,

получим соотношение

Х(Л[Д)=Х Д Х X агу >-ХДгу.

//

Учитывая Аv. > 0 (г Е I), X ау - 0 (г Е I) нетрудно видеть, что

X Ау> х Xс

< 0.

V Мо

Тогда как из Аг. < 0 для J0 с J2 следует

-ZAZ; > 0.

М 0

Таким образом, указанное соотношение не может выполняться ни для каких допустимых Av; последнее означает, что задача L0 не имеет допустимых решений, а исходная задача L0 не имеет оптимального решения или даже допустимого.

Схема метода

Шаг 1. Возьмем J0 с J2 и сложим по всем строкам элементы а.., относящиеся к столбцам j є J2.

Если для всех строк будет

Xа. -0

./Є 2

то в силу Утверждения задача L0 не имеет допустимых решений, а задача L0 является неразрешимой.

Если для некоторой строки 0 будет

Xа 0 j > 0

■ єJ 2

то переходим к шагу 2.

Шаг 2. Выбор разрешающей строки. В качестве разрешающей строки выбираем строку г'0, для которой X аіо. > 0 и является наибольшей по абсолютной величине, т. е.

М 2

выбор строки осуществляется в соответствии с правилом

f Л

Za. = max X a..: i = 1,2,..., m

_ i0j ¿-ШІ ij

■ є J2 V.ЄJ2 У

Выбрав разрешающую строку і0, переходим к шагу 3.

Шаг 3. Выбор разрешающего столбца. Этот выбор осуществляется в соответствии с правилом

Аг. Г Аг- ]

—— = max\—-: для Аг. > 0, ai ■ < 0 идля Аг. < 0, ai ■ > 0к (1)

ai0 А I аі0 j j 0 j j 0 j J

Аг

отметим, что —— - 0.

аі0 j0

Наличие такого столбца гарантируется выполнением условия

X ач j > 0

^J 2

из которого следует существование a > 0 для некоторого Аг. < 0.

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

Сначала определяем

Аг. Г Аг. 1

—— = max<! —-: для Аг. > 0, at . < 0 >,

ai0 ji І ai0 j 0 J

затем

Аг^ (Аг- Аг■ Аг

a

j2 = min< —-: для Аг. < 0, a^ > 0 и —- > —— f.

'0 ji

Тогда разрешающий столбец к0 определяется правилом

Агк [Аг Аг 1

—— = тах <——;—— >. (2)

а0ко [ а0к % к

Выбрав разрешающий столбец к0 и вместе с этим разрешающий элемент таблицы а, , переходим к шагу 4.

Шаг 4. Преобразование симплекс-таблицы по методу Жордана-Гаусса относительно разрешающего элемента а :

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1) элементы любой строки (в том числе индексной), не являющейся разрешающей, в новой таблице получаются сложением элементов этой строки старой таблицы с элементами разрешающей строки ¡0 старой таблицы, предварительно умноженными на

число

г .4 л

а, і

V 'о .о у

2) элементы разрешающей строки 'о новой таблицы получаются делением элементов строки 'о старой таблицы на а;

3) старая базисная переменная х. и коэффициент с,, стоящие в столбцах Б и сБ, меняются на новые х. и с .

ко ко

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

Покажем, что в результате такой процедуры с использованием правила (1) выбора разрешающего столбца і неотрицательные индексные элементы таблицы Аг. > о остаются снова неотрицательными, а число отрицательных Аг. < о возможно уменьшится, или, по крайней мере, увеличится величина

5 = ІАі,

М 2

обеспечивая этим регулярность метода.

Действительно, для Аг. > о и а > о будет

Аг' = Аг к + аі.

( Аг . ^ _____________к_

а, к

V 'о.о У

> Аг. > о.

Для Аг. > о и а.. < о из —-<—— следует Аг. > ак . ——, Аг. - ак . —— >0

Аг. Аг. Аг. Аг;

——, Аг. -ак .—

. а, , а, .

Аг 'о. 'о .о 'о .о 'о .о

и Аг' = Аг. - а, . —— > о. Таким образом, если было Аг. > о, то и новые Аг' > о.

>>'■>> а.. ^ 1 1

'о .о

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

Сначала убедимся, что если Аг. < о, то для новых значений будет Аг' < о.

Аг

Если Аг. < о и а.. < о, то Аг' =Аг -а. —— < Аг < о.

. 'о' . . V а 1

'о Л

Аг Аг

Если Аг. < о и а.. > о, то из —. < —1 следует

. '° а, : а, :

'о. 'о.

Аг. Аг. Аг.

Аг. < а{ ■ ——, Аг. - а{ . —— < о и Аг' = Аг. - а' . —— < о.

. о1 а,. . . а, . . . а_. .

'о}о 'о .о 'о}о

Таким образом, если было Аг. < о, то для новых значений индексных элементов будет Аг' < о, и, следовательно, Аг' = о для . є 72 /72. Принимая во внимание данное заме-

^ Аг.

чание и неравенства X ак . > о, —— < о, получаем

ієЄ 2 °

Аг ■ - ак.

Аг,

Аг

= ХАг. Xa'оl >ХАг. =5,т.е.5'>5

5' = ХАг; =ХАг^=Х _ _ _

М2 и и V а>оЛ У и а10л и М2

Итак, если разрешающий столбец _/0 выбирается по правилу (1), то 5' >8, а в предпо-

0 Аг

ложении отсутствия зацикливания при----- < 0 будет 5 >5.

Аналогично предыдущему исследуется вариант выбора разрешающего столбца по правилу (2). В этом случае либо получим увеличение числа неотрицательных индексных элементов Аг. более чем на одно, либо получим 5 >8.

Так как число базисных решений задачи Ь0 конечно, то через некоторое конечное число итераций либо придем к 5 = 0 и, следовательно, получим псевдооптимальное базисное решение задачи Ь0, либо придем к ситуации, указывающей на отсутствие допустимых решений задачи Ь0, т. е. указывающей на неразрешимость задачи Ь .

В заключение рассмотрим пример из [1].

Найти

тах (3х1 - х2)

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

3х, + 2х2 > 18,

-2х

+ 5х2 > 36, + 5х2 > 1, - х2 < 31,

1 + 5х2 < 55, х1 > 0, х2 > 0.

Вводя дополнительные переменные х3, х4, х5, х6, х7, приведем исходную задачу к каноническому виду:

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

тах (3х, - х. + ох + ох, + ох + ох + ох)

'12 3 4 5 6 7

3х, + 2х„

-2х

■ х3 = 18,

+ 5х2 - х4 = 36,

+ 5х„

. ■ х5 = 1,

- х2 + хб = 31,

+ 5х2 + х7 = 55,

х. > о, х > о, х > о, х. > о, х > о, х > о, х > о.

1 2 3 4 5 6 7

Используем дополнительные переменные для формирования начального базисного решения системы уравнений задачи. Для этого систему уравнений запишем в виде

-3х, - 2х2 + х3 = -18,

-3х

- 5х2 + х4 = -36,

- 5х2 + х5 = -1,

- х2 + х6 = 31,

+ 5х2 + х7 = 55,

для которой базисным решением будет

х. = 0, х = 0, х = -18, х. = -36, х = -1, х = 31, х = 55.

1 2 3 4 5 6 7

Далее задаче линейного программирования и ее базисному решению поставим в соответствие начальную симплекс-таблицу.

Симплекс-таблица 1

тах с 3 -1 о о о о о

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

баз. Сбаз х1 х2 х3 х4 х5 х6 х7 Ь

х3 о -3 -2 1 о о о о -18

х4 о -3 -5 о 1 о о о -36

х5 о 2 -5 о о 1 о о -1

х6 о 3 -1 о о о 1 о 31

х7 о -1 5 о о о о 1 55

Аг > о -3 1 о о о о о о

Как видим, исходное базисное решение не является ни допустимым (так как Ь ^ о), ни псевдооптимальным (так как Аг ^ о).

Займемся поиском псевдооптимального базисного решения.

Шаг 1. Рассмотрим столбцы таблицы, для которых Аг. < о и сложим элементы этих

столбцов по строкам, вычисляя суммы X а.. Если все X а. < о (г = 1,2,..., т), то задача

М2 Іє72

решения не имеет. Если имеется X а. > о, то переходим к следующему шагу. В нашем

случае только для одного столбца, относящегося к х1, Аг1 = -3 < о, и для третьей и четвертой строк элементы 2 > о и 3 > о. Переходим к следующему шагу.

Шаг 2. Выбираем разрешающую строку, отмечая ее справа от таблицы стрелкой. Из третьей и четвертой строки выбираем четвертую, так как 3 > 2.

Шаг 3. Выбор разрешающего столбца. Под индексной строкой записываем элементы вспомогательной строки г, деля Аг. > о на отрицательные элементы четвертой строки, а Аг. < о на положительные элементы этой строки. В качестве разрешающего берем столбец, отвечающий наибольшему элементу строки г. Если таких элементов несколько, то берем один (лучше тот, где Аг. < о). Выбор разрешающего столбца отмечаем снизу стрелкой.

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

Симплекс-таблица 2

тах с 3 -1 о о о о о

баз. Сбаз х1 х2 х3 х4 х5 х6 х7 Ь

х3 о -3 -2 1 о о о о -18

х4 о -3 -5 о 1 о о -36

х5 о 2 -5 о о 1 о -1

х6 о (3) -1 о о о 1 31

х7 о -1 5 о о о о 1 55

Аг > о -3 1 о о о о о о

г -1 -1 - - - - - -

+

Шаг 4. Преобразуем симплекс-таблицу 2 по методу Жордана-Гаусса относительно разрешающего элемента а41 = 3. Получаем новое базисное решение и отвечающую ему новую симплекс-таблицу 3, из которой видим, что новое базисное решение является псевдооптимальным (все Аг. > 0), поэтому дальше действуем в соответствии с двойственным симплекс-методом.

Симплекс-таблица 3

max с 3 -1 0 0 0 0 0

баз. Сбаз *1 *2 *3 *4 *5 *6 *7 b \

*3 0 0 -3 1 0 0 1 0 13

*4 0 0 -6 0 1 0 1 0 -5

*5 0 0 '-13/3' 0 0 1 -2/3 0 -65/3

*1 3 1 -1/3 0 0 0 1/3 0 31/3

*7 0 0 14/3 0 0 0 1/3 1 196/3

Az > 0 0 0 0 0 0 1 0 31

t - 0 - - - -2/3 -

Из второй и третьей строк, для которых Ь2 = -5 < о и Ь3 = -65/3 < о, выбираем третью (так как -65/3 < -5), т. е. 'о = 3.

Рассчитываем элементы вспомогательной строки г, деля Аг. (все Аг. > о) на а < о.

В качестве разрешающего берем столбец х2, так как для него элемент г = о наибольший.

Производим преобразование симплекс-таблицы 3 относительно элемента а32 = -13/3. Получаем симплекс-таблицу 4.

Симплекс-таблица 4

max с 3 -1 0 0 0 0 0

баз. Сбаз *1 *2 *3 *4 *5 *6 *7 b \

*3 0 0 0 1 0 -9/13 19/13 0 28 -

*4 0 0 0 0 1 -18/13 25/13 0 25 -

*2 -1 0 1 0 0 -3/13 2/13 0 5 -

*1 3 1 0 0 0 -1/13 5/13 0 12 -

*7 0 0 0 0 0 14/13 -5/13 1 42 -

Az > 0 0 0 0 0 0 1 0 31

Так как в этой таблице все b > 0, она представляет собой оптимальное базисное решение задачи, а именно: x1 = 12; x2 = 5; x3 = 28; x4 = 25; x5 = 0; x6 = 0; x7 = 42 и ее значение равно г = 31.

1 max

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

Источники

1. Истомин Л. А. Метод сокращения отрицательных компонент при поиске допустимого базисного решения задачи линейного программирования // Известия Урал. гос. экон. ун-та. 2009. № 2 (24).

2. Акулич И. Л. Математическое программирование в примерах и задачах. М. : Высшая школа, 1993.

i Надоели баннеры? Вы всегда можете отключить рекламу.