Конспект лекций по методам оптимизации. Виктор Павлович Пирог Оформление в электронном виде: Алексеева Елена Содержание: 1. Тема 1. Введение........................................................................................................................2 1.1. Классификация методов оптимизации............................................................................. 2 Задачи оптимизации........................................................................................................... 2 1.2. Выпуклые множества......................................................................................................... 3 1.3. Выпуклые функции............................................................................................................ 8 1.4. Постановка задачи оптимизации.....................................................................................12 Постановка задачи............................................................................................................ 12 Классы оптимизационных задач..................................................................................... 13 2. Тема 2. Линейное программирование. Введение................................................................. 18 2.1. Постановка общей задачи линейного программирования........................................... 18 2.2. Геометрическая интерпретация задач линейного программирования........................19 2.3. Свойства решений задачи линейного программирования........................................... 20 2.4. Двойственные задачи линейного программирования...................................................23 3. Тема 3. Методы решения общей задачи ЛП......................................................................... 27 3.1. Идея метода последовательного улучшения плана, признак оптимальности............27 3.2. Алгебраическое обоснование метода последовательного улучшения плана................. (По выданному В.П. конспекту на 34-х страницах для самостоятельного изучения – АЕ) Учебно-методическое обеспечение дисциплины Основная литература 1. Мустафин Н.Г., Пирог В.П., Родионов В.Д. Задачник по курсу "Методы оптимизации": Учеб. пособие.-Л.: РИО ЛЭТИ, 1978.519\М-91 2. Мустафин Н.Г., Пирог В.П., Родионов В.Д. Задачник по курсу "Исследование операций": Учеб. пособие.-Л.: РИО ЛЭТИ, 1979. 519\М-91 3. Волков Н.В., Мустафин Н.Г., Пирог В.П. Методы и алгоритмы решения линейных оптимизационных задач: Учеб. пособие.-Л.: РИО ЛЭТИ, 1983. 518.6\В-67 4. Методы и алгоритмы решения нелинейных оптимизационных задач : Учеб.пособие/ Н.Г.Мустафин, В.П.Пирог,Л.И.Яшин. ЛЭТИ им.В.И.Ульянова(Ленина). -Л.: ЛЭТИ, 1990. В-18\М-91 5. Решение линейных оптимизационных задач средствами ППП микроЛП: учеб.пособие / Н.Е.Матевицкая,Н.Г.Мустафин, В.ПЛирог, А.И.Яшин; СПбГЭТУ (ЛЭТИ). - СПб. : Изд-воСПбГЭТУ "ЛЭТИ", 1998 В-18\Р-46 6. Решение линейных оптимизационных задач средствами ППП QSВ+ : Метод, указ./ Сост.: Н.Е.Матевицкая, Н.Г.Мустафин, В.П.Пирог; СПбГЭТУ "ЛЭТИ". -СПб.: Изд-во СПбГЭТУ "ЛЭТИ", 2000. 32с В-18\Р34 Дополнительная литература 1. Аттетков А.В., Галкин СВ., Зарубин В.С. Методы оптимизации: Учеб. для вузов.-М.: Изд-во МГТУ им Н.Э. Баумана, 2001. (Сер. Математика в техническом университете; Вып. XIV). В-18\А-92 (18.09.2011). Отредактировано - 06.09.2014 и 09.02.2015. (--2--) Тема 1. Введение Классификация методов оптимизации Задачи оптимизации 1. Нахождение экстремумов функций min f ( x ), x X 1.1. Нахождение локального экстремума 1.1.1. Поиск безусловного экстремума 1. Методы одномерного поиска Без использования производных С использованием производных 2. Методы многомерного поиска Без использования производных С использованием производных Методы сопряженных направлений 3. Методы случайного поиска 1.1.2. Поиск условного экстремума 1. Методы математического программирования Методы линейного программирования Методы нелинейного программирования Методы дробно-линейного программирования Методы сепарабельного программирования Методы штрафных и барьерных функций Методы возможных направлений и градиентные методы Методы целочисленного программирования Методы стохастического программирования 2. Вариационное исчисление и принцип максимума 3. Динамическое программирование 4. Методы случайного поиска 1.1.3. Поиск экстемумов функций, вычисляемых со случайной ошибкой 1. Метод стохастической аппроксимации 2. Метод планирования экспериментов 1.2. Нахождение глобального экстремума Вариационное исчисление Принцип максимума Динамическое программирование Человеко-машинные методы t1 2. Нахождение экстремумов функционалов I (u ) F ( x(t ), u (t ), t )dt t2 Вариационное исчисление Принцип максимума Динамическое программирование Человеко-машинные методы (--3--) Выпуклые множества (1) ( 2) Рассмотрим набор из произвольных векторов из Еn: x , x ,..., x линейную комбинацию векторов с весами i, i=1,2,…,r: r x i x При этом, если i 0 и i (i ) (r ) и составим (1) i 1 1 , i=1,2,…,r, то выражение (1) называется i выпуклой линейной комбинацией. n В свою очередь, множество G E (содержащееся) называется выпуклым, если (1) вместе с любыми своими двум точками x , x линейную комбинацию вида: x x ( 2) ( 2) оно содержит и любую выпуклую (1) (1 ) x ,0 1 (2) Другими словами, множество выпукло, если вместе с любыми двумя своими точками оно содержит и соединяющий их отрезок. Примеры выпуклых множеств: Множества, для которых условие (2) не выполняется, являются невыпуклыми: Из определения выпуклого множества следует, что, если оно содержит более одного элемента, то оно содержит бесконечное число элементов (отрезок состоит из бесконечного числа точек). Важное свойство выпуклого множества: Любая выпуклая линейная комбинация произвольного числа точек выпуклого множества также принадлежит этому множеству. Докажем это: (1) ( 2) (r ) Пусть x , x ,..., x - векторы выпуклого множества G. Образуем из них выпуклую линейную комбинацию: r x i x (i ) i 1 , при i 0 и Преобразуем это выражение: x ( 1 2 )( i i 1 r (1) ( 2) (i ) 1 2 x x ) i x 1 2 1 2 i 3 (--4--) Но выражение в скобках есть не что иное, как выпуклая линейная комбинация двух векторов, принадлежащих ( ) G, и, следовательно, также принадлежит G. Обозначив его через y (1, 2 ) , получим x ( 1 2 ) y (1, 2 ) r i x (i ) , то есть число векторов в этой i 3 (1, 2 ) ( 3) линейной комбинации сократилось на единицу. Объединив вектор y с вектором x , сокращаем число учитываемых в дальнейшем векторов ещё на единицу. Продолжая таким образом, придём к выражению: r 1 x ( i ) y векторов y i 1 (1, r 1) (1, r 1) и x (r ) r x (r ) , но поскольку x является линейной комбинацией , принадлежащих множеству G, то и сам вектор x принадлежит этому множеству G, то есть x G , ч.т.д. Можно показать, что общая часть (пересечение) произвольного числа выпуклых множеств есть выпуклое множество. Для доказательства целесообразно рассмотреть чертёж множества G, являющегося пересечением двух выпуклых множеств G1 и G2. G1 A B G2 G Точки А и В принадлежат одновременно обоим выпуклым множествам G1 и G2, значит и весь отрезок АВ принадлежит G1 и G2 одновременно, следовательно, и их общей части также принадлежит. Следовательно, доказано, что множество G – выпукло. Множество точек x , удовлетворяющих неравенству x A , называется ε- окрестностью точки A. Если же множество G содержит не только данную (какую-либо) точку, но и её ε- окрестность, то такую точку называют внутренней точкой множества G. Если точка x принадлежит G и в её ε- окрестности есть точки, принадлежащие G и не принадлежащие ему, то такая точка называется граничной. (--5--) Множество, содержащее все свои граничные точки, называется замкнутым, а множество, не содержащее ни одной своей граничной точки, называется открытым (например, ε- окрестность какой-либо точки, внутренность любого тела без учёта поверхности). Множество будет обладать свойством связности, если любая его точка имеет ε- окрестность. Пример несвязного множества – множество точек, координаты которых являются целыми числами. Множество G называется ограниченным, если для всех его точек x найдётся такое число С, не зависящее от x , что x C (длина, норма, метрика) Для евклидова пространства размерности n справедлива теорема Больцано- Вейрштрасса: Из любой ограниченной бесконечной последовательности точек En может быть выделена сходящаяся последовательность. (--6--) n Точка x G E ( - принадлежит, - содержащееся в Rn, т.е. подмножество) называется крайней точкой множества, если не существует двух различных точек (1) x ,x ( 2) G , таких, чтобы для x G выполнялось x x (1) ( 2) (1) (1 ) x ,0 1 , т.е. в ( 2) любом взятом отрезке [ x , x ] G точка x либо не содержится, либо является одним из его концов. Примеры выпуклых множеств с конечным и бесконечным числом крайних точек: B C А M D E A, B, C, D, E являются крайними, М не является крайней. Бесконечное множество крайних точек На прямой и плоскости не существует крайних точек. Теорема о крайней точке Всякое замкнутое выпуклое ограниченное множество G содержит хотя бы одну крайнюю точку. (--7--) Множество точек G En , удовлетворяющих линейному уравнению вида n (, x) j x j C , называется гиперплоскостью..( (, x) - скалярное произведение) j1 По обе стороны от гиперплоскости лежат два множества, называемые полупространствами: (, x) C и (, x) C Гиперплоскость строго разделяет два множества G1 и G2, если имеют место строгие неравенства: (, x) C для xG1 (, x) C для xG2 Если подобные строгие неравенства не соблюдаются, то множества G1 и G2 считаются просто (нестрого) разделимыми. Теорема о разделяющей гиперплоскости (фундаментальная теорема) Пусть G1 и G2 – произвольные выпуклые замкнутые множества без общих точек, из которых хотя бы одно ограничено. Тогда существует гиперплоскость, строго разделяющая множества G1 и G2. Теорема не верна, если хоть одно из предположений относительно G1 и G2 не соблюдается: G1 G2 G1 асимптота G2 G2 G1 G1 G2 G1 - невыпуклое G1 G2 G1 – (1) незамкнутое (2) нет строгого разделения G1 и G2 неограниченны (в бесконечности получится нестрогое разделение) (--8--) Гиперплоскость 1. (, x) C называется опорной к множеству G в точке A0 , если: (, A0 ) C , то есть гиперплоскость содержит точку A0 , 2. (, x) C или (, x) C при xG, то есть множество G лежит в одном из полупространств, порождаемых гиперплоскостью. Например, если A0 - граничная точка выпуклого замкнутого множества G, то существует опорная гиперплоскость к этому множеству в точке Выпуклой оболочкой множества точек вида N i 1 i x (i ) G En называется множество [G], состоящее из (то есть выпуклая линейная комбинация конечного числа точек множества G, которое может быть и невыпуклым), где N i 1 x (i ) A0 . i 1 , i 0 , i=1,2,…,N, G . Выпуклая оболочка является наименьшим из выпуклых множеств, включающих в себя множество G; например: G G [G] [G] Укажем некоторые свойства выпуклых оболочек: 1. Выпуклая оболочка произвольного множества есть выпуклое множество. 2. В выпуклую оболочку множества G входит само множество G. 3. Выпуклая оболочка [G] выпуклого множества G совпадает с множеством G, то есть [G]=G. Если G – выпуклое замкнутое ограниченное множество, а G1 – множество его крайних точек, то G является выпуклой оболочкой множества G1. (--9--) Выпуклые функции Функция f ( x) f ( x1 , x 2 ,..., x n ) , заданная на выпуклом множестве (1) называется выпуклой, если для любых двух точек x , x справедливо неравенство ( 2) (1) ( 2) (1) ( 2) ( 2) X En X и любого [0,1] (1) (1) f [ x (1 ) x ] f ( x ) (1 ) f ( x ) (в правой части линейная функция, интерполирующая реальную функцию) Если при тех де условиях удовлетворяется неравенство: f [ x ( 2) (1 ) x ] f ( x (1) ) (1 ) f ( x ) (2) ( 2) (в x именно больший индекс) то такая функция называется вогнутой. Если неравенства превращаются в строгие неравенства, то говорят, что функция строго выпукла (строго вогнута). y y f(x2) f3 f1 f(x1) f2 x 0 x1 x2 x 0 x3 x1 x3 Строго вогнута Выпукла строго Просто выпукла То есть гиперповерхность выпукла, если отрезок, соединяющий любые две её точки, лежит на поверхности или выше её. Присутствие условия: множество x выпукло обязательно, т.к. ( 2) (1) точка x (1 ) x принадлежит множеству тому же только в случае выпуклости его, разумеется при [0,1] . n Линейная функция n переменных f ( x) c j x j или f ( x) c x , где T j 1 c (c1 , c 2 ,..., c n ) , x ( x1 , x2 ,..., xn ) , называется линейной формой. Рассмотрим некоторые важные свойства выпуклых функций. Теорема 1. T Линейная форма f ( x) c x является выпуклой (и вогнутой одновременно) на всём En. Доказательство (1) Для любых двух точек x , x T c [ x ( 2) (1) T (1 ) x ] c x ( 2) ( 2) выполняется равенство T (1) (1 )c x , [0,1] , что и указывает, согласно (1) и (2), на принадлежность f (x ) классу выпуклых (вогнутых) функций, но не классу строго выпуклых (вогнутых) функций. (--10--) Теорема 2 Если функции f j (x) , j=1,2,…,m являются выпуклыми на некотором выпуклом m X En , то функция f ( x) f j ( x) также является выпуклой. множестве j 1 Доказательство: (1) для любых двух точек x , x f [ x ( 2) ( 2) m (1) X и любого [0,1] выполняется: (1 ) x ] f j [ x ( 2) j 1 m f j (x ( 2) j 1 m m (1) (1 ) x ] f j ( x ( 2) j 1 (1) ) (1 ) f j ( x ) f ( x ( 2) (1) ) (1 ) f j ( x ) (1) ) (1 ) f ( x ) j 1 (Неравенство справедливо, т.к. выполняется для любой выпуклой функции) ч.т.д. То есть, сумма выпуклых функций есть выпуклая функция. Теорема 3 Если f (x ) выпуклая дифференцируемая функция, то справедливо неравенство: f (x ( 2) (1) (1) ) f ( x ) f ( x )( x ( 2) (1) (1) x ) , где f ( x ) - вектор-градиент функции f (x ) (1) в точке ( x ) . A A x2 x1 ( 2) x1 x2 (1) A= f ( x ) f ( x ) Для справки: Если f(x) – действительная функция, имеющая в интервале a x b n-ую производную f(n)(x), тогда f ( x) f (a) f [a ( x a)] ( x a) Rn ( x) , где 0 1 . Доказательство Из формулы (1) следует, что при всех [0,1] f [x (1) (x ( 2) (1) (1) x )] f ( x ) f (x ( 2) (1) ) f (x ) Если разложить числитель этой дроби по формуле Тейлора без учёта остаточных членов выше первого порядка малости, получим: (1) ( 2) (1) (1) (1) ( 2) (1) ( 2) (1) f [ x ( x x )] f ( x ) f [ x ( x x )] ( x x ) , где 0 1 , и переходя к пределу при 0 , окончательно получим: (1) ( 2) (1) ( 2) (1) (1) f ( x )( x x ) f ( x ) f ( x ) , где x - любая внутренняя точка из множества Х, и x ч.т.д. ( 2) X (--11--) Требование дифференцируемости в теореме нужно, т.к. выпуклая или вогнутая функция не всегда обязательно дифференцируема, например, в точке x1 функция f(x) не имеет производной. у x1 x Теорема 4 Если g i (x) - выпуклые функции и R - множество точек, удовлетворяющих условиям (*) g i ( x ) bi , x 0 , i=1,2,…,m тогда R - выпуклое множество. Доказательство: R . Рассмотрим точку ~ x , представляющую собой линейную (1) ( 2) ( 2) (1) x x (1 ) x , [0,1] . Теорема будет доказана в выпуклую комбинацию x , x : ~ том случае, если удастся показать, что ~ x R , а в этом случае R выпукло, так как вместе с (1) Пусть x , x ( 2) любыми двумя своими точками содержит и выпуклую линейную комбинацию этих точек. x ) bi , а это видно из выпуклости Очевидно, что ~ x 0 . Осталось показать, что g i ( ~ g i (x) . Действительно: ( 2) (1) ( 2) (1) gi (~ x ) g i [ x (1 ) x ] g i ( x ) (1 ) g i ( x ) . Из условий (*) следует, что при [0,1] справедливы условия ( 2) (1) g i ( x ) bi , (1 ) g i ( x ) (1 )bi Следовательно: ( 2) (1) x ) bi , то есть ~ g i ( x ) (1 ) g i ( x ) bi (1 )bi bi , то есть g i ( ~ x R и R выпуклое множество. ч.т.д. (--12--) Теорема 5 Если f (x ) - выпуклая функция, заданная на замкнутом выпуклом множестве X En , тогда любой относительный (локальный, местный) минимум f (x) на Х является абсолютным (глобальным) минимумом f (x ) на Х. Доказательство ведём методом от противного. Предположим, что наряду с относительным минимумом в точке x (0) * * (0) X функция f (x ) имеет абсолютный минимум в точке x , такой, что f ( x ) f ( x ) Из условия выпуклости функции следует, что для любого [0,1] выполняется неравенство: * (0) * (0) f [ x (1 ) x ] f ( x ) (1 ) f ( x ) . (0) * Если учесть, что f ( x ) f ( x ) , то можно записать: * (0) (0) (0) (0) f [ x (1 ) x ] f ( x ) (1 ) f ( x ) f ( x ) Рассмотрим любую ε- окрестность точки x что 0 * x x (0) * (0) , то точка x x (1 ) x (0) (0) * с x x (0) . Если взять λ такое, лежит в ε- окрестности точки x (0) и (0) f ( x) f ( x ) . Но это невозможно, так как f (x ) достигает в точке x относительного минимума. Таким, образом, любой относительный минимум является одновременно глобальным минимумом для функции f (x ) . Если же f (x ) строго выпукла, то абсолютный минимум её на выпуклом множестве x достигается в единственной точке (на середине отрезка, на концах которого f (x ) имеет равные значения, функция имеет меньшее значение). (--13--) Постановка задачи оптимизации Постановка задачи заданы множество Х и функция f (x ) , определённая на Х. Требуется найти точки минимума или максимума функции f (x ) на Х. Будем записывать задачу на минимум в виде: f ( x) min , x X . f (x ) называется целевой функцией (или критерием качества, критериальной функцией). Х называется допустимым множеством (или решением, планом). Любой x X называется допустимой точкой задачи. Считается, что * X En , то есть задача является конечномерной. Точка x X называется точкой глобального минимума функции f (x ) на * множестве Х (или глобальным решением задачи), если f ( x ) f ( x) при всех x X . * Точка x X называется точкой локального минимума функции f (x ) на множестве Х (или локальным решением задачи), если существует число ε>0 такое, что * * f ( x ) f ( x) при всех x X U ( x ) , * * * где U ( x ) {x E n | x x } - шар радиуса ε>0 с центром в x . * * Если указанные выше неравенства строгие при x x , то x называется точкой строгого минимума, то есть строгим решением в глобальном или локальном смысле. * Итак, понятно, что f ( x ) min f ( x) , x X * x arg min f ( x) , x X * * то есть точка x реализует величину f ( x ) f * min f ( x ) . x X Множество всех точек глобального минимума f (x ) на X обозначается через * * Arg min f ( x) {x X | f ( x ) f * } x X то есть arg min f ( x) Arg min f ( x) . x X x X Аналогично для задачи максимизации записываем f ( x ) max , x X . Ясно, что такая задача эквивалентна задаче f ( x) min , x X в случае совпадения множеств глобальных и локальных решений этих задач. (--14--) Для задач оптимизации вопрос о существовании решения решает теорема Вейерштрасса (из математического анализа): Пусть Х – замкнутое ограниченное множество в Еn. f (x ) - непрерывная функция на Х. Тогда точка глобального минимума функции f (x ) на Х существует. Выделим наиболее важные для теории и приложений объекты оптимизации: реальные, модельные и математические. 1) реальные: Объект оптимизации представляет собой реальный объект, на котором решается задача оптимизации. Необходимо, однако, чтобы характеристики объекта изменялись значительно медленнее, чем происходит процесс оптимизации, иначе это будет экстремальное регулирование. Например: отладка технического процесса, отработка конструкции. 2) модельные: обычно в процессе оптимального проектирования объекта задачу оптимизации решают на какой-нибудь физической модели объекта, например, на электронной модели, на цифровой модели на ЭВМ. Критерий качества и состояния ограничений объекта определяются на этой модели. 3) математические математические объекты, для которых критериальная функция и множество Х заданы математическими выражениями. Весь процесс оптимального проектирования проходит все три стадии: в), б), а). В нашем курсе мы подробно остановимся на стадии в). Сначала выделим наиболее важные классы оптимизационных задач. (--15--) Классы оптимизационных задач 1. Задача безусловной оптимизации f ( x) min , x E n , то есть здесь X E n 2. Задача условной оптимизации f ( x) min , x X , X E n , то есть Х – собственное подмножество пространства En. 3. Классическая задача на условный экстремум f ( x) min , x X , где, X {x E n | g~i ( x ) 0, i 1,2,..., m} , или в другой записи: f ( x) min , g~i ( x ) 0, i 1, m . Здесь явно указывается не само допустимое множество, а система, его определяющая. 4. Выпуклая задача оптимизации. f ( x) min , x X , где f (x ) - выпуклая функция, заданная на выпуклом множестве Х. 5. Задача математического программирования. (то есть это новейший класс задач на условный экстремум). f ( x) min , x X , где, X {x P | g~i ( x) 0, i 1, k ; g~i ( x) 0, i k 1, m; } , P En , или в другой записи: f ( x) min ~ g i ( x) 0, i 1, k ; (функциональные ограничения) ~ g i ( x) 0, i k 1, m; x j 0; j 1, s; s n . (Прямые ограничения) x ( x1 , x 2 ,..., x n ) T Обычно в качестве Р рассматривается множество «простой» структуры, например, координатный параллелепипед. P {x E n | ai x j b j ( x) 0; j 1, n} Если в такой задаче f (x ) , g~ ( x) , Х – выпуклы, то это задача выпуклого i программирования. (--16--) Любой вектор x , удовлетворяющий системе ограничений, будем называть планом задачи, а компоненты вектора – компонентами плана. * * * * План x ( x1 , x 2 ,..., x n ) , которому соответствует максимальное (минимальное) значение целевой функции, называется оптимальным. Этим случаям соответствуют следующие выражения: * в случае max: F ( x ) F ( x ) , * в случае min: F ( x ) F ( x ) , где x - любой план задачи, принадлежащий области En. Видно, что математическое программирование занимается обобщением задач об условном экстремуме, которые рассматриваются в общем курсе математического анализа, поскольку наряду с условиями связи в виде уравнений допускаются условия связи в виде неравенств. Классификация задач и методов математического программирования приводится по ряду признаков, в числе которых основными являются следующие: 1. характер изменения переменных величин 2. степень учёта случайных факторов 3. вид целевой функции ограничений 4. допустимая область существования целевой функции. По этим признакам задачи математического программирования подразделяются: - По характеру изменения переменной величины на статические (решением является точка в евклидовом пространстве En) и динамические (решением является точка в пространстве функций определённого класса). - По степени учёта случайных факторов на детерминированные (учёт случайных параметров отсутствует) и стохастические. - По виду целевой функции на линейного (в которых целевая функция и функцииограничения линейны) и нелинейного программирования. - По допустимой области существования целевой функции на задачи непрерывного (функция F (x ) непрерывно зависит от x ) и дискретного (целочисленные задачи) программирования. С целью выработки более общего подхода к задачам математического программирования необходимо вспомнить некоторые положения из области выпуклых множеств и выпуклых функций. (--17--) 6. Задачи линейного программирования. f ( x) (c, x) min , c1 x1 b1 c2 x2 b c x b 2 ... ... ... c x b n n m A x b , x 0 , где , , a11 a1n , A a m1 a mn Здесь Х – полиэдр, то есть X {x P | A x b} , P E n , или в развёрнутом виде: n c j 1 j x j min ; ij x j b j , i 1, m ; n a j 1 x j 0; j 1, n Существуют и другие формы записи задач линейного программирования. 7. Задачи квадратичного программирования f ( x) (c, x) ( D x, x) min ; A x b , x 0 Здесь Х – полиэдр, то есть множество, задаваемое линейными условиями. Здесь D – симметричная неотрицательно определённая матрица размером n*n,то есть: d 11 d 12 d 1n d 21 d 22 d 2 n D d n1 d n 2 dnn , вектор c E n Задачи классов 6 и 7 в настоящее время наиболее хорошо изучены. (--18--) 8. Задачи дискретной оптимизации (дискретного программирования) f ( x) min , x X , где, X {x D | g i ( x) 0, i 1, k ; g i ( x) 0, i k 1, m; } , где D D1 D2 ... Dn (декартово произведение), причём D j {1,2,...}, j J (1) ; D j R, j J ( 2 ) , Здесь J (1) - некоторое подмножество множества {1,2,…,n}, J J (1) J ( 2) Если J (1) ={1,2,…,n}, то имеем задачу целочисленного программирования. 9. Задачи оптимального уравнения Постановка этих задач сложнее постановки рассмотренных выше задач. Поэтому сначала рассмотрим содержательный пример: Задача о строительстве дороги Надо проложить дорогу на неровной местности между двумя пунктами. Затраты на строительство пропорциональны количеству завезённого и вывезенного с трассы грунта. Пусть Т –длина дороги, с(t) – известная высота местности в точке на расстоянии t [0, T ] от начального пункта трассы. Определить функцию x(t), описывающую высоту дороги в каждой её точке t [0, T ] , при которой затраты не её строительство минимальны. При этом наклон (уклон) дороги в любой точке трассы не должен быть больше b1, т.е. x (t ) b1 для t [0, T ] . Скорость изменения наклона дороги не должна превышать константы b2, то есть x(t ) b2 для t [0, T ] . Уровень дороги в начальном и конечном пунктах определяется выражением x(0)=a, x(T)=b. Тогда математическая формулировка задачи такова: минимизировать t x(t ) c(t ) dt 0 при условиях x (t ) b1 t [0, T ] ; x(t ) b2 t [0, T ] ; x(0)=a, x(T)=b. Параметром управления здесь является объем грунта, вывезенный или завезённый в точку трассы на расстоянии t от начального пункта, то есть величина, пропорциональная x (t ) c (t ) . Перейдём теперь к общей постановке задачи оптимального управления: Движение управляемого объекта описывается системой дифференциальных уравнений dx f ( x , u , t ) , где x ( x1 , x 2 ,..., x n ) T (где x1 (t ),.., x n (t ) ) – n-мерный x f ( x , u , t ) , ( dt вектор координат состояния объекта, или фазовые координаты. u (t ) (u1 (t ), u 2 (t ),..., u (t )) T η-мерный вектор управления t – время f ( f 1 , f 2 ,..., f n ) T - n-мерный вектор функций. (--19--) Движение объекта подчинено начальным условиям x(t 0 ) s 0 (t 0 ) , конечным условиям x(T ) s(T ) и ограничениям на фазовые координаты (фазовым ограничениям) x(t ) X (t ) , t [t 0 , T ] ( t (t 0 , T ) ) кроме того, заданы ограничения на управление: u (t ) U (t ) ; t [t 0 , T ] ( t (t 0 , T ) ) Здесь [t 0 , T ] - отрезок времени, на котором происходит управление системой. s0(t0), s(T), X(t), U(t) при каждом t – заданные множества из пространств соответствующих размерностей. Итак, в этих задачах в качестве элементов, по которым ведётся минимизация, выступают функции. Эти задачи относятся к классу задач оптимизации в бесконечных функциональных пространствах. Итак, общая модель такова: T I (u ) f 0 ( x (t ), u (t ), t )dt ( x(T ), T ) min , t0 x f ( x , u , t ) x(t 0 ) s 0 (t 0 ) x(T ) s(T ) x(t ) X (t ) , t [t 0 , T ] u (t ) U (t ) ; t [t 0 , T ] (Здесь функционал – это аналог функции цели в конечномерных задачах) (--20--) Тема 2. Линейное программирование. Введение Постановка общей задачи линейного программирования (Лекция ) Геометрическая интерпретация задач линейного программирования (Лекция ) Свойства решений задачи линейного программирования Рассмотрим задачу линейного программирования со смешанными ограничениями: (i ) n ( A , x ) aij x j bi , i 1,2,..., k ; (1) j 1 (i ) n ( A , x ) aij x j bi , i (k 1), (k 2),..., m ; (2) j 1 кроме того, все переменные должны удовлетворять условиям неотрицательности, то есть: x j 0 , i 1,2,..., n ; (3) Пусть множество этих ограничений непротиворечиво, то есть R≠. Тогда справедлива следующая теорема: Теорема 1. Об области определения ЗЛП Множество R, определяемое совокупностью ограничений (1), (2), является выпуклым замкнутым множеством. Доказательство 1) Выпуклость множества R следует из теоремы №4 раздела «Выпуклые функции», (i ) поскольку множество R удовлетворяет условиям-ограничениям ( A , x ) g ( x ) , а эти ограничения сами являются выпуклыми функциями. 2) Покажем замкнутость множества R. Рассмотрим произвольную последовательность точек x (1) , x ( 2) ,..., сходящуюся к x - какой-либо точке множества R, то есть lim x ( r ) x , причем все эти точки принадлежат r множеству R. Тогда для системы ограничений (1), (2) справедливы выражения для любого r; так как точки x ( r ) R (i ) ( A , x ( r ) ) bi , i 1,2,..., k ; (i ) ( A , x ( r ) ) bi , i (k 1), (k 2),..., m ; Согласно свойству непрерывности скалярного произведения векторов, можно записать: (i ) (r ) (i ) lim ( A , x ) ( A , x ) , (4) r Если с учетом (4) перейти в этих выражениях к пределу, то получим предельные зависимости: (--21--) (i ) ( A , x ) bi , i 1,2,..., k ; (i ) ( A , x ) bi , i (k 1), (k 2),..., m ; Но в качестве точки x может быть выбрана и любая граничная точка R , так как никаких ограничений на последовательность x (r ) мы не накладывали. Но множество, содержащее все свои граничные точки, является замкнутым. Поэтому, множество R замкнуто. (i ) (i ) Поскольку выражение ( A , x ) bi задаёт полупространство, а ( A , x ) bi гиперплоскость, постольку множество планов задачи ЛП, определяемой системой выражений (1),(2) является пересечением, то есть общей частью конечного числа гиперплоскостей и полупространств, которое называется выпуклым многогранным множеством. Если оно ограничено, то такое выпуклое многогранное множество называется выпуклым многогранником. Понятие выпуклого многогранника сходно с понятием выпуклой оболочки, то есть N выпуклый многогранник представляет собой множество точек вида x i x ( i ) , где i 1 i 0 , N i 1 i 1 , i 1,2,..., N , где x (i ) - крайние точки многогранника. Крайняя точка выпуклого многогранного множества называется вершиной (опорным планом). Такая крайняя точка называется вершиной в том случае, если среди условий (1), (2), (3) найдётся n условий (линейно-независимых), которые для данной точки выполняются как строгие равенства. Но так как вектор x должен удовлетворять условию неотрицательности, то среди n равенств, соответствующих условиям-ограничениям (1), (2), (3), содержащих m штук линейных зависимостей, может быть взято (n-m) равенств вида x j 0 . Такие значения переменных относятся к общему случаю. Но могут встречаться так называемые случаи вырожденности, когда в нуль обращаются больше, чем (n-m) компонентов. (--22--) Вершина выпуклого многогранника называется вырожденной в случае, когда число ограничений, которым она удовлетворяет, как точным равенствам, больше n. Иллюстрацией сказанного может служить рисунок, соответствующий решению задачи ЛП на плоскости, когда оптимальному решению соответствует точка А. X2 A (1) (2) (3) X1 0 Разъяснение: это действительно так, потому что, например, уравнение (1) имеет вид: xi ai1 x1 ai 2 x 2 bi 0 , то есть компоненты xi 0 ; то же справедливо в общем случае и для прямых (2), (3). Поскольку число вершин многогранника конечно, то и количество опорных планов конечно, причем любой план может быть получен как выпуклая линейная комбинация крайних точек многогранника, то есть опорных планов: N x i x (i ) , i 0 , i 1 N i 1 i 1 , i 1,2,..., N , (5) Иначе говоря, опорные планы представляют собой основу (опорные точки), дающие возможность построить любой допустимый план задачи, поэтому эти точки и названы опорными. Из теоремы о крайней точке следует, что если область существования решений представляет собой не пустое множество (то есть выпуклое замкнутое ограниченное множество), то существует, по крайней мере, один опорный план. Теорема 2. Об оптимальности Линейная форма F ( x ) (c x ) , определённая на выпуклом многограннике A x b , x 0 , достигает своего экстремума в вершине этого многогранника. Доказательство Пусть x (1) , x ( 2) ,..., x ( N ) - все вершины многогранника Х, на котором линейная форма определена, и x * - точка многогранника, в которой линейная форма достигает своего минимума, то есть F ( x * ) min f ( x ) . x X N Согласно (5) можно записать: x * i x ( i ) , i 0 , i 1 (--23--) N i 1 i 1 , i 1,2,..., N , и F ( x * ) 1 F ( x (1) ) 2 F ( x ( 2 ) ) ... N F ( x ( N ) ) . (так, как линейная форма является выпуклой и вогнутой одновременно) Выберем наименьшее из F ( x (i ) ) . Тогда пусть это x (k ) . F ( x * ) i Fmin ( x ( i ) ) Fmin ( x ( k ) ) . i Но поскольку F ( x (k ) ) есть наименьшее значение линейной формы, то f ( x * ) должно совпадать с f ( x (k ) ) , то есть x * может быть в том числе вершиной выпуклого многогранника. Вопрос о существовании оптимального плана решается с помощью Теоремы 3.О разрешимости. Для того, чтобы задача ЛП была разрешимой, то есть существовал оптимальный план, необходимо и достаточно выполнения двух условий: А. множество планов задачи непусто. Б. линейная форма ограничена на этом множестве сверху (для задачи максимизации) или снизу (для задачи минимизации). (--24--) В заключение рассмотрения общих свойств задач ЛП можно сделать следующие выводы: 1) непустое множество планов задачи имеет конечное число опорных планов, 2) любая разрешимая задача имеет оптимальное решение среди опорных планов и может быть найдено за конечное число шагов, 3) множество точек, в которых линейная форма имеет постоянное значение, есть гиперплоскость, и гиперплоскости, соответствующие разным значениям линейной формы, параллельны между собой, 4) локальный экстремум является одновременно и глобальным экстремумом линейной формы на множестве планов задачи. Двойственные задачи линейного программирования Каждой задаче ЛП можно поставить в соответствие другую задачу ЛП, которую называют двойственной по отношению к первой задаче. Целью данного параграфа является изложение вопросов, характеризующих неотъемлемую связь этих задач (прямой и двойственной). Пусть прямая задача записана в общем виде: n F ( x ) c j x j max ; (1) j 1 n a j 1 ij x j bi , i 1,2,..., k ; ij x j bi , i (k 1), (k 2),..., m ; n a j 1 (2) (3) x j 0 , j 1,2,..., t , t n . (4) (--25--) Двойственная задача, или задача, сопряжённая с данной, тогда должна записываться так: m ~ (5) F ( y ) bi y i min ; i 1 m a ij y i c j , j 1,2,..., t ; t n a ij y i c j , j (t 1), (t 2),..., n ; i 1 m i 1 (6) (7) yi 0 , i 1,2,..., k , k m (8) Другими словами, двойственная задача образуется по следующим правилам: 1) вид экстремума меняется на противоположный, 2) векторы b и c меняются местами (вектор линейной формы прямой задачи становится вектором ограничений двойственной задачи, а вектор ограничений прямой задачи становится вектором линейной формы двойственной задачи), ~ 3) матрица условий A двойственной задачи образуется транспонированием ~ матрицы А прямой задачи, то есть A AT , 4) j-ое условие двойственной задачи будет неравенством, если на j-ую переменную прямой задачи наложено требование неотрицательности, в противоположном случае j-ое условие будет равенством, 5) на i-ую переменную двойственной задачи должно быть наложено условие неотрицательности, если i-ое условие прямой задачи является неравенством. Для канонической формы записи прямой задачи двойственная по отношению к ней задача записывается следующим образом: ~ F ( x ) (c , x ) max , F ( y ) (b , y ) min , Ax b , AT y c x0 Прямая задача (9) Двойственная задача (10) (--26--) Пример прямой и двойственной к ней задачи: Пусть прямая задача формулируется в виде: Изготовление изделий двух видов И1 и И2 требует затрат четырёх видов сырья р1, р2, р3, р4, запасы которых соответственно ограничены значениями b1, b2, b3, b4 единиц. Количество единиц сырья, необходимое для выпуска каждого из изделий, задано таблицей 1 (там же в нижней строке приведены величины дохода, получаемого выпускающим предприятием, при реализации каждого из изделий). Математическая модель этой задачи такова: р bi И1 И2 F ( x ) c1 x1 c 2 x 2 max р1 b1 а11 а12 a11 x1 a12 x 2 b1 р2 b2 а21 а22 a 21 x1 a 22 x 2 b2 р3 b3 а31 а32 a31 x1 a32 x2 b3 р4 b4 а41 а42 a 41 x1 a 42 x 2 b4 с1 с2 x1 , x 2 0 Формулировка двойственной задачи ЛП Пусть при тех же условиях существуют дополнительные: другую организацию интересует, за какую общую минимальную цену можно купить всё сырье у организации, выпускающей изделия И1 и И2; ясно, что выпускающая организация не продаст сырье, если покупатель заплатит за единицу каждого сырья цену, меньшую, чем та, которую выпускающая организация получит, изготовив изделия из этого же сырья. Пусть у1, у2, у3, у4 – цена единицы сырья р1, р2, р3, р4, тогда математическая модель двойственной задачи будет иметь вид: ~ F ( y ) b1 y1 b2 y 2 b3 y 3 b4 y 4 min a11 y1 a 21 y 2 a31 y3 a 41 y 4 c1 a12 y1 a 22 y 2 a32 y3 a 42 y 4 c2 y1 , y 2 , y3 , y 4 0 Переменные уi называют оценками или учётными (неявными) ценами. (--27--) Связь между прямой и двойственной к ней задачами (то есть между задачами двойственной пары) является не только внешней, но и глубоко внутренней, о чем позволяет сделать заключение следующий ряд лемм и теорем. Лемма 1 Если x ( x1 , x2 ,..., xn ) и y ( y1 , y 2 ,..., y m ) являются произвольными допустимыми планами задач (9), (10), то функции цели этих задач связаны неравенством ~ F (x) F ( y) Доказательство Из выражения (10) следует, что n n m m j 1 j 1 i 1 i 1 m a i 1 n ij y i c j , j 1,2,..., n , следовательно: c j x j x j aij yi yi aij x j Но по условию (9) выражение j 1 n a j 1 ij x j равно соответствующему ему bi . Значит: n m c x y b j 1 j j i 1 i i ч.т.д. Лемма 2 Если для некоторых планов x * и y * задач (9) и (10) имеет место равенство значений функций цели, то есть ~ (11) F (x * ) F ( y* ) то планы x * и y * являются оптимальными. Доказательство ~ По лемме 1 можно записать F ( x ) F ( y * ) для любых планов x и y ~ Но по условию леммы 2: F ( x * ) F ( y * ) , подставляя это выражение в правую часть предыдущего неравенства, получим доказательство оптимальности плана x * , т.к. будет: ~ F ( x ) F ( x * ) , ч.т.д. ~ По лемме 1 можно записать F ( x * ) F ( y ) . ~ ~ ~ Подставляя в это неравенство F ( y * ) вместо F ( x * ) , получим: F ( y * ) F ( y ) , ч.т.д., так как доказывает оптимальность плана y * (--28--) Лемма 3 ~ Если линейная форма F ( y ) двойственной задачи (10) не ограничена снизу на множестве своих планов, то прямая задача (9) не имеет ни одного плана. Доказательство Из условия системы следует, что существует такая последовательность планов (r ) { y } двойственной задачи (10), что ~ lim F ( y (r ) ) r Предположим, что прямая задача (9) имеет некоторый план x . ~ Тогда по лемме 1: F ( x ) F ( y (r ) ) , т.е. переходим к пределу: F (x ) , то есть мы пришли к противоречию, так как при любом плане x (с конечными составляющими) это равенство невозможно. Следовательно, в этом случае множество планов прямой задачи пусто, ч.т.д. Основные свойства задач двойственной пары можно сформулировать в виде двух теорем: Теорема1 (первая теорема двойственности) Если одна из задач двойственной пары имеет оптимальное решение, то другая задача также разрешима. При этом для любых оптимальных планов x * и y * имеет место равенство: ~ F (x * ) F ( y* ) (--29--) Следствие 1 Для разрешимости одной из задач двойственной пары необходимо и достаточно, чтобы каждая из задач имела хотя бы один план. Следствие 2 Для того, чтобы одна из задач двойственной пары имела планы, а множество планов другой задачи было пусто, необходима и достаточна неограниченность функции цели первой задачи на множестве её планов. Следствие 3 Для оптимальных планов x * и y * задач двойственной пары необходимо и ~ достаточно выполнение равенства F ( x * ) F ( y * ) Теорема 2 (вторая теорема двойственности) Пусть обе задачи двойственной пары разрешимы (1)-(4) и (5)-(8). Если оптимальный план одной из задач обращает i-ое ограничение этой задачи в строгое неравенство, то i-ая компонента оптимального плана другой задачи равна нулю. Если же i-а компонента оптимального плана одной задачи положительна, то оптимальный план двойственной задачи обращает i-ое ограничено в строгое равенство. То есть выполняются условия дополняющей нежёсткости: n (bi aij x j ) yi 0 , i 1, k * * j 1 m ( aij y i c j ) x j 0 , j 1, t i 1 * * Тема 3. Методы решения общей задачи ЛП Идея метода последовательного улучшения плана, признак оптимальности (--30--) Метод последовательного улучшения плана (симплекс-метод) За рубежом этот метод называется симплексным, но, принимая во внимание, что такое название не отражает сущности метода, название, принятое в отечественной литературе, является более удачным. Симплекс – это многогранник в n-мерном пространстве, заданный следующими уравнениями: n x j 1 j 1 , x j 0 , j 1,2,..., n Идея метода последовательного улучшения плана В подавляющем большинстве случаев в задачах линейного программирования число ограничений меньше числа неизвестных, то есть m<n. Но даже в этих случаях мы не можем быть уверены, что существует решение, которое удовлетворяет всем условиям неотрицательности переменных. Прежде чем приступать к непосредственному рассмотрению метода последовательного улучшения плана, сформулируем несколько понятий: Решением задачи ЛП назовём такой набор значений переменных x j , который удовлетворяет всем ограничениям задачи, за исключением, быть может, ограничений, накладываемых на знак самих переменных. Допустимым решением назовём решение с неотрицательными значениями переменных x j . Базисом называется набор из m переменных, (по числу ограничений задачи ЛП), которые выражены через остальные переменные. Эти m переменных называются базисными переменными, а остальные переменные – небазисными переменными. (--31--) Базисное решение – такое решение, в котором всем небазисным переменным присваиваются нулевые значения, а значения базисных переменных вычисляются. Допустимым базисным решением называется такое базисное решение, которое одновременно является и допустимым. Опираясь на эти определения, можно кратко охарактеризовать идею метода последовательного улучшения плана. Сначала находим допустимое базисное решение, которое совпадает с вершиной выпуклого многогранного множества (по определению вершины); определяем, является ли это решение оптимальным или нет. Если нет, то выводим (вычеркиваем) из базиса один вектор и заменяем его другим вектором, получая таким образом новый базис. Его так же исследуем на оптимальность. Поскольку количество вершин многогранного множества конечно, то и подобный процесс конечен, и в результате его либо находится экстремум, либо доказывается несовместность ограничений (противоречивость их), либо доказывается неограниченность функции цели снизу (если решается задача минимизации) или сверху (если решается задача максимизации). Пусть задача линейного программирования задана в каноническом виде: n A x j 1 j j b , где (1) x j 0 , j 1,2,..., n (2) n F ( x ) c j x j min (3) j 1 где A j (a1 j , a 2 j ,..., a mj ) T - вектор, состоящий из элементов j-го столбца матрицы А. (--32--) В общем случае будем предполагать, что ранг матрицы А равен m, то есть r=m. Рангом матрицы называется наибольший из порядков отличных от нуля миноров, сформированных из элементов матрицы А с сохранением их взаимного расположения. Предположим, что нам известно допустимое базисное решение (опорный план) (r ) (r ) (r ) (r ) задачи, то есть задан набор базисных переменных: x r ( x1 , x 2 ,..., x m ) , где индекс r просто указывает на принадлежность данного параметра базису. Соответственно, задан и (r ) (r ) (r ) базисный набор векторов A ( r ) jr , составляющих базис векторов: A ( r ) { A1 , A2 ,..., Am } . В этом случае произвольный вектор условий A j может быть разложен по базису A (r ) : m A j Ak q kj , j 1,2,..., n , (r ) k 1 где q kj - составляющая разложения векторов A j по векторам базиса при векторе Ak (r ) , находящемся в k-ой позиции базиса. Подобной же операции можно подвергнуть и вектор b , то есть: m b Ak q k 0 A0 , где индекс 0 показывает, что эти составляющие расположены (r ) k 1 в столбце, соответствующем вектору ограничений. То есть можно записать общую формулу: m A j Ak q kj , j 1,2,..., n (r ) (4) k 1 Кроме того, при подобном разложении всех векторов функция цели приобретет вид: n F ( x ) j x j , j 1,2,..., n , где j 1 j z j c j , j 1,2,..., n m z j c rk( r ) q kj , j 1,2,..., n , k 1 (5) (6) где индекс rk коэффициента с указывает, что это коэффициент с при базисной переменной x k (r ) . (--33--) Все эти параметры однозначным образом определяются при выборе того или иного базиса. Используя параметры j , можно сформулировать признак оптимальности допустимого базисного решения в виде теоремы: Теорема (признак оптимальности) Допустимое базисное решение x ( x1 , x2 ,..., xn ) является оптимальным, если j 0 для всех j 1,2,..., n . Доказательство Обозначим символом x * ( x1* , x 2 * ,..., x n * ) опорный план, для которого выполняется: j z j c j 0 , то есть z j c j (7) * А символом x обозначим произвольный опорный план, не совпадающий с планом x . Будем исследовать произвольный опорный план. Для него должны выполняться условия (1), (2); причём условие (1) запишем в несколько другой форме, воспользовавшись выражением (4) для разложения векторов A j по векторам базиса опорного плана x * . В этом случае получим: n m x ( q j 1 n j k 1 j 1 Ak ) b , или в другом виде: kj )Ak m ( x q j k 1 (r ) kj (r ) b (8) Но план x * также удовлетворяет условиям (1), поэтому можно записать: m b x k Ak * (r ) (9) k 1 (Поскольку это допустимое базисное решение, то есть все небазисные решения =0) Сравниваем (8) и (9), делаем вывод, что: n x q j 1 j kj * x k (10) Используя выражения (6), (7), (10), можно записать применительно к плану x * : z j c j (по условию теоремы) при j 1,2,..., n . Помножим обе части неравенства на x j , j 1,2,..., n и сложим по всем j 1,2,..., n , тогда слева получим f (x ) для произвольного плана ЗЛП (какой-либо), а справа произведём перегруппировку слагаемых. n F ( x ) c j x j 1 j 1 n z j x j 2 j 1 n m m n ( ck qkj ) x j ( x j qkj )ck j 1 k 1 (r ) k 1 j 1 (r ) 3 m c k 1 k (r ) * xk F ( x * ) неравенство 1) следует из выражения (7), равенство 2) – из выражения (6) и равенство 3) – из выражения (10). Следовательно, план x * , при котором выполняются условия (7), является оптимальным, так как при любом другом плане x выполняется неравенство F ( x ) F ( x * ) .