Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системный анализ / 20. Лэнд и Дойг (штрафы).DOC
Скачиваний:
38
Добавлен:
10.05.2014
Размер:
221.18 Кб
Скачать

7

Лэнд и Дойг-штрафы.doc

Штрафы и их использование в методе Лэнд и Дойг Выбор переменной для ветвления в методе Лэнд и Дойг

Допустим, решена некоторая задача из списка задач и получено нецелочисленное решение этой задачи.

Оптимальная симплекс-таблица имеет вид:

Баз.

Cбаз

А0

ср

сj

Ар

Aj

Ар

ср

xp0

1

xpj

Z0

0

j0

Пусть xp0 - значение некоторой базисной переменной xp в оптимальном решении, не удовлетворяющее требованию целочисленности. Для определенности примем, что p{1,2,...,m}; а xj , где {m+1,m+2,...,n}  -  небазисные переменные.

В   p-той  строке последней симплекс-таблицы записано следующее уравнение:

xp0= xp+

или

xp= xp0  - (*)

Что означает ветвление по переменной xp ?

Это означает, что необходимо сформировать две новые задачи, в систему ограничений одной из которых должно войти ограничение     xp   [xp] + 1.

В систему ограничений другой задачи должно войти ограничение xp   [xp] .

Случай a) :    Переменная xp  должна принять значение, не меньшее, чем    [xp] + 1. Следовательно, эта переменная должна быть увеличена, по крайней мере, на величину:

1 - { xp0}.

Как "поведут себя" свободные переменные?

xp= xp0  -

По крайней мере, одна из этих переменных (пусть это будет xj), для которой xpj<0, должна увеличиться на некоторую величину , которую можно найти из уравнения (*):

xp+(1 - { xp0})= xp0  - xpj(0 + ).

Здесь "0" - старое значение xj ; "" - новое значение.

Ввиду того, что  xp= xp0  ,  имеет место:

1 - { xp0}=   - xpj . 

Отсюда определяется :

=.

Известно, что оценки свободных переменных - это взятые с обратным знаком коэффициенты, с которыми свободные переменные входят в целевую функцию, если базисные переменные выразить через свободные. То есть, справедливо следующее выражение:

Z = Z0   - .

Пусть теперь переменная   xj   увеличивается на величину =. Пусть, при этом, остальные свободные переменные не изменяют своих значений - остаются нулевыми. Следовательно, целевая функция должна уменьшиться на величину j (помним, что xpj < 0; кр. того ).

Теперь можно сделать вывод о том, что минимальная величина, на которую должно уменьшиться (ухудшиться) значение целевой функции в результате наложения ограничения xp  [xp] + 1, определяется следующим образом:

.

Эту величину принято называть "ШТРАФОМ СВЕРХУ".

Следует подчеркнуть важное обстоятельство: для определения этого штрафа задачу можно не решать.

Всегда ли можно вычислить штраф сверху? Нет, не всегда. Действительно, может оказаться, что p-тая строка симплекс-таблицы не имеет ни одной отрицательной координаты xpj < 0.

Вернемся к выражению   xp= xp0  -. Ограничение xp  [xp] + 1 эквивалентно следующему ограничению:

xp0  -  [xp] + 1. Отсюда следует:

  -1+ xp - [xp] . Но   xp - [xp] = { xp0}, то есть:

  -1+ { xp0}.

Для того, чтобы работать по симплекс-методу, это ограничение нужно привести к виду уравнения путем введения дополнительной переменной yp  0. Соответствующая строка симплекс-таблицы будет иметь вид:

-1+ { xp0} =  + yp .

Левая часть этого уравнения - отрицательное число. Оценки остались неотрицательными. То есть, теперь в симплекс-таблице записан псевдоплан: нужно работать по двойственному симплекс-методу. В столбце A0 есть единственный отрицательный элемент (-1+ { xp0} ), но в соответствующей этому элементу строке нет ни одной отрицательной координаты.

Это ‑ тот случай, когда в двойственном симплекс-методе срабатывает признак недопустимости задачи!

Таким образом, если штраф сверху не удается найти, соответствующую задачу можно не решать - она недопустима.

Случай   b) :    Переменная xp  должна принять значение, не большее, чем    [xp] . Следовательно, эта переменная должна быть уменьшена, по крайней мере, на величину  { xp0}.

Как "поведут себя" свободные переменные?

xp= xp0  -

Эти переменные могут только увеличиваться. По крайней мере, одна из этих переменных (пусть это будет xj ) , для которой   xpj 0 ,  должна увеличиться на некоторую величину . Эту величину можно найти из уравнения (*):

xp - { xp0}= xp0  - xpj(0 + ).

Здесь "0" - старое значение xj ; "" - новое значение.

Ввиду того, что  xp= xp0  ,  имеет место:

 - { xp0}=   - xpj . 

Отсюда определяется :

=.

Как было показано ранее:

Z = Z0   - .

Пусть переменная   xj   увеличивается на величину   =. Пусть, при этом, остальные свободные переменные не изменяют своих значений - остаются нулевыми. Следовательно, целевая функция должна уменьшиться на величину j (помним, что xpj > 0).

Теперь можно сделать вывод о том, что минимальная величина, на которую должно уменьшиться (ухудшиться) значение целевой функции в результате наложения ограничения xp   [xp]  определяется следующим образом:

.

Эту величину принято называть "ШТРАФОМ СНИЗУ".

Здесь, как и в предыдущем случае, для определения штрафа снизу задачу можно не решать.

Всегда ли можно вычислить штраф снизу? Нет, не всегда. Действительно, может оказаться, что p-тая строка симплекс-таблицы не имеет ни одной положительной координаты xpj > 0.

Вернемся к выражению   xp= xp0  -. Ограничение xp   [xp]  эквивалентно следующему ограничению:

xp0  - [xp]. Отсюда следует: xp - [xp] . Но   xp - [xp] = { xp0}, то есть:

 { xp0}  .

Для того, чтобы работать по симплекс-методу, это ограничение нужно привести к виду уравнения путем введения дополнительной переменной yp 0. Соответствующая строка симплекс-таблицы будет иметь вид:

- { xp0} = - + yp .

Левая часть этого уравнения - отрицательное число. Оценки остались неотрицательными. То есть, теперь в симплекс-таблице записан псевдоплан: нужно работать по двойственному симплекс-методу. В столбце A0 есть единственный отрицательный элемент (- { xp0} ), но в соответствующей этому элементу строке нет ни одной отрицательной координаты (т. к. все xpj  0).

В двойственном симплекс-методе срабатывает признак недопустимости задачи!

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