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

Учебное пособие 800384

.pdf
Скачиваний:
6
Добавлен:
01.05.2022
Размер:
2.09 Mб
Скачать

Д: =

ln

 

 

=

 

(

/ )

 

 

( / )

,

 

 

 

 

 

 

 

 

<

тогда и только тогда, когда

< ln

 

 

 

 

 

 

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

Обратимся к двойственной задаче:

minmax Ф( , )

Эту задачу можно переписать также в виде:

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

 

 

Ф( ,

) →

(3.76)

 

,

) =Ф( , ).

 

 

 

max,

Ф(

 

 

Тогда пара

^ ,

)

называется допустимой для двойст-

венной задачи, если(

 

,

), ≥ 0,

≥ 0

 

maxФ( ,

) = Ф(

 

Справедливо следующее утверждение: если допустима для прямой задачи, а ( , ) допустима для двойственной задачи, то:

( ) ≤ Ф( , ).

Действительно,

81

(

) =

 

Ф(

,

) ≤ maxminФ( , ) ≤

 

 

≤ minmaxФ( ,

) ≤ maxФ.( ,

 

) =

 

 

 

 

 

 

 

 

= Ф(

,

)

 

 

 

 

 

 

Пусть

выбрана

некоторая

сетка

(набор точек)

цию, ,...,

≥ 0.

Тогда получим следующую аппроксима-

задачи:

 

min

 

 

 

Ф(

,

)

,

 

 

 

 

 

 

 

 

 

 

 

 

(3.77)

что эквивалентна задаче=: 0,...,

− 1

 

 

 

 

 

 

Ф(

 

 

(−

 

)

1

 

 

 

(3.78)

 

 

, ) ≤

,

= 0,...,

.

 

 

 

 

Переходя к записи с

помощью блочных матриц, имеем:

≥ 0 (−

≤ 0)

(

)

 

 

 

−1

 

(

(

)

 

 

.

 

(3.79)

−1

 

 

)

 

 

...

 

 

 

0

 

[−1]

 

 

 

(

)

 

 

 

Пусть двойственные переменные

 

0

 

 

,

.Тогда

двойственная задача имеет вид:

 

(

 

,...,

 

 

(

) →

 

 

= 1

) →

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

82

( − ( )) − = 0 (

≥ 0

 

 

 

≥ 0,

= 0,...,

−1,

≥ 0

 

(3.80)

= ∑

что в силу строгости вогнутости

(

)

точка

 

 

 

 

 

Заметим,удовлетворяет неравенству:

 

 

 

(

) ≥ ∑

( ) =

,

 

 

 

где (

- оптимальная точка для (3.78).

 

 

 

Кроме ,того), - допустимая точка для прямой задачи,

так как:

( ) = (

) ≤

( ) ≤

 

 

 

 

 

 

 

Пусть - решение прямой задачи. Тогда:

 

 

(

 

(

 

 

 

.

 

Теперь вычислим

при

оптимальном для (3.78),

которое максимизирует:

) ≥

- ) ≥

( )) → max.

Ф( ,

) =

( )+∑

 

(

Тогда (

) - допустима

 

 

 

 

 

 

выполняются соотношения,

:

для двойственной задачи и

 

(

) ≤ Ф(

,

).

 

μ = (x ) =

Ф(x ,y )и -решение

 

μк = Ф(x ,y )

,

то

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

 

 

 

 

 

задачи.

83

Если же μк < Ф x ,y расширимсеткуx0, xk-1, xk и повторим прежние рассуждения. Таким образом, вводится точка xk, для которойнарушеноограничениевдвойственнойзадаче(3.2.3).

Рассмотрим градиентные процедуры поиска экстремума. Длярешениязадачи:

 

( ) >

 

(3.81)

(то есть ограниченияна выбор

отсутствуют) часто исполь-

зуютсяитеративныепроцессывида:

+α e ,

 

x

= x

(3.82)

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

Учитывая свойство градиента функции, естественно обратитьсякпроцессамвида:

 

 

 

 

 

 

 

=

 

(

),α > 0

 

(3.83)

 

 

 

 

 

 

 

 

 

 

= 0,1,... .

 

 

α

 

 

Такиепроцессыназываютсяградиентными.Здесь

можно

выбиратьследующимобразом.

 

 

 

 

 

 

 

 

Выбирается некотороепроизвольноезначение и определя-

α ( ) и

 

=

 

+α ( ).

 

вычисляется

 

( +

ется

точка

 

 

 

 

 

 

Затем

 

 

 

 

 

 

 

 

 

 

 

α

 

 

 

 

 

производитсяпроверканеравенства:

 

 

 

 

 

 

 

 

( ) ≥

(

 

) + α ‖

( )‖ ,

 

(3.84)

 

где

 

 

 

 

- произвольно выбранная константа. Если не-

равенство

выполняется, то

 

 

 

. В противном случае произво-

0 <

< 1

 

умножения

на

произвольное

число

дится дробление

путем

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

84

 

 

 

 

 

 

< 1

дотехпор,поканеравенствонеокажетсясправедливым.

 

Если исходить

из

следующей

аппроксимации функции

( ):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

+ ) ≈

(

)+[ (

)] +

 

(

) ,

(3.85)

 

 

где

 

 

- матрицавторыхпроизводныхфункций

( )

,

товектор h можно(

выбирать)

изусловия:

 

 

 

 

 

 

 

(

) + [

(

)] +

 

 

(

) >

.

(3.86)

 

 

 

Пользуясьнеобходимымусловиемэкстремума:

 

 

 

 

 

 

 

(

)+

(

 

) = 0 ,

 

 

(3.87)

 

получим,чтовкачестве

можновыбрать:

 

 

 

x

Процесстипа:

= −[

(

)]

 

(

).

 

(3.88)

= x

− α [ ψ(x )]

ψ(x ),α >0,k = 0,1,...

(3.89)

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

ний ,близкимкнаправлениям,получаемымвметодеНьютонано, используя при этом лишь первые производные целевой функции

( ).

 

Пусть имеется набор точек

 

, ... ,

Об ограничениях

навыборэтихточекбудетсказанониже.Всилуформулы.

Тейлора:

(

) −

(

)=

+

( ,

), (3.90)

 

где|| (

,

− )||=85

(||

|| ),

=

,..., .

Это соотношениепозволяет надеяться, чтовычисляя

(, и)

в произвольных, но близких, друг к другу точках , ... ,

уравнений:

 

А (n × n)

с помощью

векторной системы

определив

матрицу

 

=

, i = 1,… ,n,(3.91)

матрицаАокажетсяблизкой кматрицевторыхпроизводных вычисленной в любой из точек . В блочном виде последняя системаможетбытьпереписанаввиде:

 

 

= [ (

 

=

)]

(3.92)

 

 

) −

(

)... (

) (

 

Заметим так

же,

что

сходящаяся к точке максиму-

ма

последовательность {

обладает нужным свойством, а

именно( )

в достаточной

малой

}окрестности максимума

точки

,

,...,

близкидругкдругу.Тогдаимеем:

] =

 

 

[

 

 

(3.93)

 

 

= [

(

) − (

)].

 

 

Итак,AkRk =Fk.

Отсюда:

А Fk=Rk.

(3.94)

Откуда,всвоюочередь:

А =

Rk.

(3.95)

Каждаяизматриц Fk , k=0,1...отличаетсяотсоседнихслева и справа только одним столбцом. Поэтому при обращении матриц Fk можновоспользоватьсярекуррентнойпроцедурой.

86

Для определения направления движения

еk запишем соот-

ношениеА =

Rk

ввиде:

)

,

 

 

 

 

=

 

 

 

 

 

 

=

(α )

 

 

 

(3.96)

 

 

 

(α )

)

 

 

 

= −

 

(

)

 

(

) =

 

α

= − ∑

[ α

( )]

)

(3.97)

=

− α ∑

α

 

(

, (3.98)

 

α

> 0

 

Дляорганизацииначалапроцесса(тоестьприk=0,1,...,n-2) можноположитьA = , = , = .

Рассмотрим процедуру учета ограничений в задачах нелинейного программирования. Изучениепрямойи двойственной задач позволяет сделать вывод о возможности построения алгоритмов решения задач выпуклого программирования, основанных на отыскании седловых точек соответствующей функции Лагранжа. Принимая во внимание, что отыскание седловых точек связано с операциями максимизации по xи минимизации по y функции Лагранжа, можно предложить следующий градиентный алгоритм решения задачи

( ) >

(3.99)

( ) ≤ , = 1,…, .

Здесь ограничение ≥ 0 (если оно есть) включено в указанныеограничения.

87

= +

Φ( ,

),

(3.100)

= max [0,

− Φ(

, )],

(3.101)

где скалярные величины

выбираются из условий схо-

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

Например, если исходить из условий регулярности в форме условий Слейтера (то есть существование внутренних точек у до-

пустимого множества:

, то для создания

расширить допустимое множество,

«запаса регулярности» можно( ) <

, = 1,…, )

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

Рассмотримдвойственнуюзадачу

 

 

 

minmax Ф( , )

 

Пусть

в

(

 

,

реализуется

операция

min max Ф( ,

), то есть:

 

)

 

 

 

 

88

 

 

minmax Ф(

,

 

) = maxФ(

 

,

) = Ф(

, )

Допустим, что

(

 

)

 

 

max

Ф(

,

 

 

 

достигается в един-

Тогда:

=

 

 

 

 

 

 

 

)

 

Ф( ( ), ).

ственной точке

 

 

 

 

 

 

 

 

 

 

,т.Фе.( ,

)

 

= 0

 

=

 

 

 

( ), ),

 

min

 

 

 

max

 

Ф(

,

) = minФ(

 

 

иусловиеоптимальностиимеетвид:

 

 

 

 

 

 

 

 

 

Ф

Ф

+

Ф

≥ 0,

 

 

 

Ф

Ф

+

Ф

= 0,

новточках(

 

 

 

)

 

 

Ф(

,

 

) =

 

Ф(

 

,

 

)

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

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 0 в точке (

 

,

 

 

 

).

 

 

 

 

 

Такимобразом,

 

 

 

 

 

 

 

 

 

 

 

Ф

= 0,

 

 

 

Ф

≥ 0,

 

 

 

 

Ф

= 0

 

в точках(

 

 

, то есть(

 

 

 

- седловаяточка, а, следова-

тельно, - решение,

прямой)

задачи,. Отсюда)

 

следует, что для регу-

ляризации исходной задачи можно добиваться такой модификации

функции Лагранжа, чтобы задача

 

 

 

имела

единственное решение (например,

добавляя к целевой функ-

 

Ф( , ) ≥ 0

 

ции некоторую известную функцию

 

, такую, что в ре-

зультате получится строго вогнутая

функция).

 

 

Ψ( )

 

 

89

4. ПОСТАНОВКИ И МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ

4.1. Метод отсечения для решения задач целочисленного линейного программирования

Рассмотрим класс задач линейного программирования (задач ЛП), в которых снято условие делимости управляемых переменных , = 1, , т.е. некоторые или все переменные xj в оптимальном решении должны принимать только целочисленные значения (быть целыми числами):

max

,

= 1,

;

(4.1)

;

(4.2)

 

≥ 0,

= 1,

;

(4.3)

Экстремальные задачи, =типа1,

— целые числа.

(4.4)

(4.1) - (4.2) называются за-

дачами целочисленного линейного программирования (задачами ЦЛП). Если все управляемые переменные должны быть целыми числами (p = n), то задача (4.1) - (4.4) называется полностью целочисленной задачей ЛП. В противном случае (при р<n) задача (4.1) - (4.4) называется частично целочисленной задачей ЛП.

Предположим, что область допустимых решений D задачи ЛП (4.1) - (4.3) представляет собой выпуклое ограниченное множество. Тогда область допустимых решений Dц задачи ЦЛП (4.1) - (4.4) будет представлять собой дискретное множество точек хц с целочисленными координатами, которые принадлежат области D ( ц ).

90