Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы оптимизации сложных систем. Учебное пособие
.pdf
21
Симплекс-метод использует аппарат линейной алгебры, и его подробное
1 1 2 2
... min;
mm
b y b y b y
11 1 21 2 1 1
12 1 22 2 2 2
1 1 2 2
... ;
... ;
......
... ;
mm
mm
n n mn m n
a y a y a y c
a y a y a y c
a y a y a y c
12
, ,...,
m
y y y
1 2 3
1 2 3 4
1 2 3 4
1 2 3
1 2 3 4
3 2 max;
2 2 3 8;
4 2 4;
2 2;
0; 0; 0; 0.
x x x
x x x x
x x x x
x x x
x x x x
изложение потребовало бы многочисленных ссылок на ее результаты, не говоря
уже о пояснении его собственных процедур. С практической точки зрения в та-
ком изложении нет особой необходимости, поскольку вычислительные схемы
симплекс-метода в настоящее время идеально отработаны, обеспечены компьютерными программами и требуют только правильного применения. Более
подробные сведения о нем можно найти в книгах [8], [10].
Симплекс-метод остается основным способом решения задачи ЛП, хотя
после его разработки появились и другие алгоритмы. Среди них – метод после-
довательного уточнения оценок, основанный на понятии двойственной задачи
ЛП. Не касаясь самого метода, рассмотрим это понятие.
§ 1.6. Двойственность в ЛП
Еще в начале исследования задач ЛП обнаружилось, что с каждой из них
связана другая. Связь эта взаимна, и решение одной из задач дает решение другой. Пары таких задач называют взаимно двойственными или взаимно
сопряженными. Пусть дана каноническая задача на максимум (1.15) – (1.17).
Двойственной к ней называется задача
(1.26)
(1.27)
Схема построения двойственной задачи достаточно ясна. Вводятся новые
неизвестные
в количестве, равном числу ограничений-равенств ис-
ходной задачи. Требование максимума заменяется требованием минимума. В
качестве коэффициентов целевой функции берутся правые части равенств. В
качестве условий-ограничений вводятся неравенства типа «
», правые части
которых образуются коэффициентами исходной целевой функции, а в качестве
векторов-строк коэффициентов при неизвестных фигурируют вектор-столбцы
из системы ограничений исходной задачи.
В отличие от исходной задачи условия неотрицательности отсутствуют.
▲ Пример 1.8
Исходная задача имеет вид
(1.28)

22
Согласно приведенным выше правилам для двойственной задачи получим
1 2 3
1 2 3
1 2 3
1 2 3
12
8 4 2 min;
2 2 3;
2 4 2;
2 1;
3 0.
y y y
y y y
y y y
y y y
yy
1
1
max,
( 1, 2,..., ),
0 ( 1, 2,..., ).
n
ii
i
n
ji i j
i
i
cx
a x b j m
x i n
1
1
min,
( 1, 2,... ),
0 ( 1, 2,... ).
m
jj
j
m
ji j i
j
j
by
a y c i n
y j m
1
1
(1.29)
▼
Пусть теперь исходная задача дана в естественной форме.
(1.30)
Двойственной по отношению к ней будет следующая задача:
(1.31)
Главную роль в теории двойственности играет следующая теорема.
Теорема 1.1 (двойственности)
1. Если одна из двойственных задач имеет оптимальное решение, то и
другая имеет оптимальное решение, причем оптимальные значения целевых
функций совпадают.
2. Если целевая функция одной из задач на своем допустимом множестве
неограниченна (исходная − сверху, двойственная – снизу), то другая задача не
имеет допустимых значений.
Двойственных задач более касаться не будем. Отметим только, что их ис-
следование привело к важным теоретическим и практическим результатам.
§ 1.7. Задачи целочисленного ЛП
В ряде задач линейного программирования естественным образом возни-
кают условия целочисленности искомых переменных, несоблюдение которых
приводит к потере смысла решаемой задачи
Рассмотрим пример − задачу об оптимальном раскрое ткани.
меня в ответе два землекопа и две трети».
Вспомним стихотворение С. Маршака про незадачливого ученика: «…и вышло у
.

23
▲ Пример 1.9
i
i
c
i
ji
a
i
x
j
j
b
1
1
min,
( 1, 2,..., ),
0 ( 1, 2,..., )
n
ii
i
n
ji i j
i
i
cx
a x b j m
x i n
i
x
Имеется nраскладок – вариантов расположения деталей кроя m типов на
полотнах ткани прямоугольной формы, как примерно показано на рис. 1.10.
Каждая раскладка с номером
терями (межлекальными выпадами)
при последующем раскрое сопровождается по-
, исчисляемыми в единицах площади.
Рис. 1.10. Раскладка
Из каждой раскладки с номером
получается
деталей кроя типа j.
Каждую раскладку можно повторить
полотен для их одновременного раскроя.
Деталей типа
повторений каждой раскладки, обеспечивающее минимум общих потерь и получение нужного количества деталей. Условия запишутся в виде
и будут сопровождаться требованием:
Это существенное добавление. В некоторых задачах подобного типа
можно рассчитывать на удовлетворительный результат, который получится пу-
тем округления до целых чисел решений, получаемых для задачи ЛП без учета
условий целочисленности. Однако полагаться на это можно лишь при больших
значениях этих предварительно найденных переменных, когда округление ска-
зывается слабо.
Если же найденные значения невелики, округление обычно приводит к
недопустимым погрешностям. Тогда решение требует совершенно иных подхо-
дов, нежели те, что обсуждались выше, а трудности его поиска резко
возрастают. По существу, приходится иметь дело не с задачами линейного про-
граммирования, а с некоторой новой категорией проблем, получивших по мере
их накопления название задач дискретного программирования. Они могут быть
отнесены и к рассматриваемому ниже разделу нелинейного программирования.
раз, в результате чего образуется стопка
требуется не менее
штук. Следует выбрать количество
− целое число. ▼

24
ГЛАВА 2. НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ (НЛП)
()f X
M
T
12
, , ...,
n
x x xX
T * * *
12
, ,...,
*
n
x x xX
M
X
M
.X
()f X
m
1
p
()f X
mi n;
( ) 0 ( 1, 2,..., );
i
imX
( ) 0( 1, 2,..., ).
j
jpX
,,
ij
f
1
x
1
§ 2.1. Постановка и особенности задач НЛП
Вернемся к отложенному ранее (в начале предыдущей главы) определе-
нию понятия математического программирования.
Математическое программирование – это раздел прикладной математики,
разрабатывающий теорию и методы решения многомерных экстремальных задач с
ограничениями. Небольшие уточнения приводят к следующей формулировке.
Задачей математического программирования является определение мини-
мального (возможно, максимального) значения целевой функции
на
заданном множестве
чений этого вектора
значений вектора
, а также самих зна-
, при которых минимум (максимум)
достигается.
Множество
венств или неравенств, хотя возможны и иные признаки принадлежности
(допустимое множество) может определяться системой ра-
к
, например, целочисленность или результаты решения некоторых уравне-
ний относительно
Далее будем иметь в виду только равенства и неравенства.
Такой вариант предполагается и в большинстве литературных источников.
Для определенности будем также рассматривать только условие миниму-
ма, к которому условие максимума всегда можно привести путем умножения
на (−1), как это уже обсуждалось в предыдущей главе. Записывая отдель-
но
неравенств со знаком «
»
и
равенств, придем к следующей форме
задачи
(2.1)
(2.2)
Если все функции
линейного программирования. Если хотя бы одна из них не линейна, то это –
задача НЛП.
Допускаемая нелинейность ограничений часто позволяет заменять равен-
ствами условия логического характера или требования дискретности значений
переменных. Например, наложенное на некоторую переменную
согласно которому возможны только два ее значения – 0 и 1, можно записать в
виде
Переходы от неравенств к равенствам или от равенств к неравенствам, а также из-
менения знака неравенств при желании возможны теми же средствами, что рассматривались
в главе о ЛП.
(2.3)
линейны, то получается уже известная задача
ограничение,

25
11
( 1) 0xx
2
11
0xx
2
1
( ) ( )
p
j
j
XX
( ) 0.X
или
.
Как уже известно, все неравенства легко заменить равенствами, после че-
го их можно объединить выражением
,
которое равно 0 только при обращении в 0 всех слагаемых.
Таким образом, все ограничения можно свести к единственному равен-
ству
Однако эта, заманчивая на первый взгляд, возможность обычно не дает практических преимуществ, поскольку полезные для решения особенности задач
«маскируются» общим равенством.
При всем сходстве постановок задач об экстремумах функций многих переменных в классическом анализе и задач математического программирования
обнаруживаются существенные особенности последних, обусловленные прак-
тическими проблемами.
Во-первых, это нарушение требований дифференцируемости функций,
фигурирующих в классических теоремах об экстремумах. Во многих практических задачах вполне естественно возникают разрывные целевые функции.
Во-вторых, это большое количество переменных (возможно, десятки и
более), порождаемое практическими задачами. Это количественный фактор, но
он быстро приводит к необходимости разработки качественно новых (обычно
численных) методов.
Рассмотрим теперь некоторые возможные существенные отличия задач
нелинейного программирования от линейного.
1. Допустимое множество задач НЛП необязательно выпуклое и даже необязательно связное, как это схематично показано на рис. 2.1, а для двух
переменных.
2. Линии постоянных значений целевой функции необязательно прямые и
могут состоять из нескольких частей (рис. 2.1, б).
Этот и предыдущий пункты можно было бы для наглядности проиллю-
стрировать местностью с оврагами и возвышенностями, на которой
располагаются изгороди разнообразной формы.

26
()f X
*
X
( ) ( )
*
ffXX
X
*
X
X
*
X
f
x* x
f
x* x
М
M
а б
Рис. 2.1. Возможный вид допустимой области (а)
и линий равных значений целевой функции (б)
3. Оптимальное решение может достигаться как на границах допустимого
множества, так и в его внутренних точках (рис. 2.2 иллюстрирует это положе-
ние для одной переменой; штрихами обозначены границы допустимой области,
а звездочкой − значение переменной, обеспечивающее минимум).
а б
Рис. 2.2. Минимум внутри (а) и на границе (б) допустимой области
4. Решение задачи НЛП может быть осложнено существованием локальных минимумов наряду с глобальным.
Функция
кое
> 0, что
где
дит
− точка из допустимой области, расстояние которой от
(
принадлежит
имеет в точке
-окрестности
локальный минимум, если найдется та-
,
не превосхо-
).

27
Функция
()f X
*
X
( ) ( )
*
ffXX
X
x
x
x
x
()fx
()fx
,ab
f
x
x
x
x
имеет в точке
глобальный минимум, если
,
где
Это положение показано на рис. 2.3: в точках
кальные минимумы, а в точке
−любая точка из допустимой области.
еще и глобальный.
,
и
достигаются ло-
Рис. 2.3. Локальные и глобальный минимумы
Глобальный минимум всегда является и локальным, но не наоборот. При
наличии локальных минимумов поиск может завершиться обнаружением одно-
го из них без гарантии того, что достигнута подлинная цель решения −
отыскание глобального минимума.
§ 2.2. Одномерная оптимизация
Под одномерной оптимизацией подразумевается поиск экстремума функ-
ции одной переменной
. Существуют причины, по которым эта тема
заслуживает отдельного рассмотрения.
Во-первых, такая задача часто представляет самостоятельный практиче-
ский интерес, отличаясь при этом простотой решения по сравнению с задачами
для двух и более переменных (многомерных).
Во-вторых, она может выступать в качестве вспомогательной процедуры
при решении многомерных задач.
В-третьих, в случае одномерной оптимизации возможна формулировка
вопросов о наилучших алгоритмах решения, постановка которых для много-
мерных задач оказывается слишком неопределенной.
Итак, пусть требуется найти минимум функции
, заданной на отрезке
. Если эта функция дифференцируема, то в принципе можно достичь же-
лаемого, опираясь на теорему классического математического анализа о
необходимом условии экстремума. Для этого нужно найти точки обращения в

28
нуль производной
()fx
,ab
()fx
()fa
()fb
()fx
,ab
min
x
1 2 1 2 min
1 2 min 1 2
( ) ( ), если ,
( ) ( ), если .
f x f x x x x
f x f x x x x
()fx
min
.x
,ab
N
N
1
на отрезке
, вычислить в этих точках значения
, присоединить к ним
и
, после чего среди полученных значе-
ний найти наименьшее – глобальный минимум. Немногим отличаются от этих и
действия, когда функция задана на неограниченном интервале.
Однако для широкого класса функций эта схема решения оказывается
весьма непростой при практической реализации. Например, для определения
значений
может потребоваться эксперимент, и получение производных
встретит дополнительные трудности. Даже имея возможность вычисления производной, можно столкнуться с проблемой нахождения ее нулей. По этим
причинам становятся предпочтительными приближенные методы поиска мини-
мума, не требующие отыскания производных [3].
Рассмотрим некоторые из этой категории методов. Они обеспечивают по-
лучение результата с определенной точностью, если исследуемая функция
унимодальна. В противном случае применение методов допустимо, но не дает
гарантии нахождения глобального минимума.
Унимодальной будем называть функцию, у которой на отрезке
ществует только один минимум в точке
, слева от которого функция
су-
монотонно убывает, а справа – монотонно возрастает1, т. е.
Отметим, что графики таких функций не могут иметь горизонтальных
участков. В то же время допускаются изломы и скачки, из-за чего
может
не быть дифференцируемой.
Схема использования любого из методов одномерной оптимизации опирается на представление, что значения функции в любой точке промежутка могут
быть найдены без погрешностей независимо от того, получаются они путем вы-
числений или на основе экспериментальных данных. Оба способа получения
будем впредь называть измерением. Однако предполагается возможность неко-
торой допустимой погрешности в определении искомого значения
В связи с последним предположением возникают две возможные формулировки задачи об отыскании наилучшего в некотором смысле метода поиска.
Обе они могут трактоваться как проблемы получения наилучшего результата в
процессе сужения области неопределенности (области, где расположен мини-
мум) от первоначального интервала
до отрезка допустимой длины Δ.
А. Сузить исходную область неопределенности до области заданной дли-
ны Δ в результате минимального числа
В. Сузить исходную область при заданном числе измерений
измерений функции.
до
наименьшего размера Δ.
В литературе встречаются и другие варианты определения унимодальности.

29
Возможности решения этих задач подробно обсуждать не станем, но бу-
1
,ab
2
ab
x
ba
12
,
2 2 2 2
a b a b
xx
1
()fx
2
()fx
11
,ab
12
( ) ( )f x f x
1 1 2
,a a b x
12
( ) ( )f x f x
1 1 1
,a x b b
2
x
1
x
12
( ) ( )f x f x
1 1 1 2
,a x b x
1
l
11
,ab
11
min
2
ab
x
11
,a a b b
1
дем иметь их в виду при анализе алгоритмов одномерной оптимизации,
рассматриваемых ниже.
Простейший из них носит название метода деления отрезка пополам
Ему отвечает следующий порядок действий.
.
1. Отрезок
делят пополам точкой
2. Выбирают малую величину из интервала (точнее о величине
сказано ниже)
0 < <
3. Выбирают две точки (рис. 2.4)
и измеряют
,
.
4. Выбирают новый отрезок
.
.
по правилу:
если
если
, то
, то
;
.
Нетрудно видеть, что это правило непосредственно использует унимо-
дальность функции: в первом случае минимум не может располагаться правее
, а во втором левее
В случае равенства
5. Если длина
.
отрезка
следует выбрать
.
меньше Δ, то останавливают процедуру,
считая
.
В противном случае переходят к действию 2 для нового отрезка, полагая
В литературе можно встретить и другие названия метода: «половинного деления»,
«дихотомии», «бисекции».
.

30
12
( ) ( )f x f x
k
l
k
1
22
k
k
l
l
min
x
/2
k
l
2
k
k
ba
l
k
l
()fx
2Nk
N
/2
2
N
N
ba
f(x)
2
()fx
1
()fx
a
1
x
2
x
b x
δ
1
l
Рис. 2.4. К методу деления отрезка пополам; случай
Действия 2–4 составляют один шаг процедуры. Действие 5 соответствует
постановке задачи А, хотя наименьшее число измерений метод не обеспечивает.
Условием остановки процедуры можно было сделать и выполнение определен-
ного числа измерений, как это предусмотрено задачей В.
Если подсчитывать число шагов процедуры k и ввести обозначение
для длины отрезка неопределенности, получаемого в результате шага
, то
легко обнаруживается, что
т. е. на каждом шаге процедуры длина отрезка, содержащего
вдвое, прирастая затем на
числа шагов
уменьшается по закону
. Нетрудно проверить, что в результате с ростом
,
, уменьшается
. (2.4)
Видно, что
всегда не меньше , а потому этот параметр следует выбирать, по
крайней мере, меньше Δ.
Поскольку на каждом шаге требуется измерение двух значений
число измерений вдвое превышает достигнутое число шагов. В связи с этим для
оценки погрешности метода целесообразно рассмотреть зависимость длины отрезка неопределенности от числа измерений
. Обозначим ее
и,
,
пренебрегая малой величиной
ствие отбрасывания
) зависимость
в (2.4), найдем «оптимистическую» (вслед-
. (2.5)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
