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

Методы оптимизации сложных систем. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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
imX
( ) 0( 1, 2,..., ).
j
jpX
,,
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)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]