УМК (1013374), страница 31
Текст из файла (страница 31)
Найти условный минимум в задачеf ( x) = x12 + x 22 → min,g1 ( x) = x1 + x 2 − 2 = 0. 1. В поставленной задаче m = 1 , ограничения-неравенства отсутствуют. Решим ее аналитически.2. Составим вспомогательную функцию:()F x, r k = x12 + x 22 +(rk(x1 + x 2 − 2)2 .23. Найдем безусловный минимум F x , r kдостаточных условий:()())по х с помощью необходимых и∂ F x, r k= 2 x1 + r k (x1 + x 2 − 2) = 0 ,∂ x1∂ F x, r k= 2 x 2 + r k (x1 + x 2 − 2 ) = 0 .∂ x2Вычитая из первого уравнения второе, получаем x1 = x 2 иx1∗ (r k ) = x 2∗ (r k ) =rk.1+ r kВ табл. 2 приведены результаты расчетов при r k = 1, 2, 10, 100, 1000, ∞ , а на рис. 2дана графическая иллюстрация процесса поиска решения.(Таблица 2krkx1∗ (r k ) = x 2∗ (r k )F x ∗ (r k ), r k011122103100410005∞122310111001011000100111,3331,811,981,9982185)x22Ax 2∗x ∗ (10)=1x∗x ∗ ( 2)x1(1 )2x1∗ = 1g1 ( x) = x1 + x 2 − 2 = 0Рис. 2(∗kТак как матрица Гессе H x (r ), rk)⎛2+ rk=⎜⎜ rk⎝(таточные условия безусловного минимума F x , r kимеемrklimrk →∞ 1+ r)rk ⎞⎟ > 0 при r k > 0 , то досk⎟2+r ⎠удовлетворяются.
При r k → ∞= 1 = x1∗ = x 2∗ ; f ( x ∗ ) = 2 . kПример 3. Найти условный минимум в задачеf ( x) = x12 + x 22 → min,g1 ( x) = x1 − 1 = 0,g 2 ( x) = x1 + x 2 − 2 ≤ 0. 1. В задаче m = 1, p = 2 . Решим ее аналитически.2. Составим вспомогательную функцию:()F x, r k = x12 + x 22 +rk2{[x1}− 1]2 + [ max { 0, (x1 + x 2 − 2 ) } ]2 .()3. Найдем безусловный минимум F x , r k по х с помощью необходимых и достаточных условий:()()⎧⎪ 2 x1 + r k (x1 − 1) + r k (x1 + x 2 − 2 ) , x1 + x 2 − 2 > 0,∂ F x, r k=0=⎨∂ x1⎪⎩ 2 x1 + r k (x1 − 1) , x1 + x 2 − 2 ≤ 0,⎧⎪ 2 x 2 + r k (x1 + x 2 − 2) , x1 + x 2 − 2 > 0,∂ F x, r k=0=⎨∂ x2⎪⎩ 2 x 2 , x1 + x 2 − 2 ≤ 0 .Рассмотрим два случая.1861. Пусть x1 + x 2 − 2 > 0 . Вычитая из первого уравнения второе, получаемx 2 = x1 +rk(x1 − 1) .2После подстановки в первое уравнение имеемx1∗ (r k ) =( r k ) 2 + 6r k( r k ) 2 + 6r k + 4x 2∗ (r k ),=( r k ) 2 + 4r k( r k ) 2 + 6r k + 4Однако при всех r k > 0 имеем x1∗ (r k ) + x 2∗ ( r k ) − 2 =−2r k − 8( r k ) 2 + 6r k + 4воречит условию x1 + x 2 − 2 > 0 для рассматриваемого случая.2.
Пусть x1 + x 2 − 2 ≤ 0 . Тогда x 2∗ = 0 , а x1∗ (r k ) =rk.< 0 , что проти-. В табл. 3 приведены2+rkрезультаты расчетов, а на рис. 3 дана графическая иллюстрация процесса поиска решения.⎛ 2 + r k 0⎞kТак как матрица Гессе H x ∗ (r k ), r k = ⎜⎟⎟ > 0 при всех r > 0 , то⎜ 02⎠⎝достаточные условия минимума F x , r k удовлетворяются. При r k → ∞ имеем()(x1∗ = limrkrk → ∞ 2 + rk= 1,x 2∗ = 0,)f ( x ∗ ) = 1. (Таблица 3krkx1∗ ( r k )x 2∗ ( r k )F x ∗ (r k ), r k010122103100410005∞131256505150050115934353626002601251000251001100000187)x2g1 ( x) = x1 − 1 = 021x ∗ (1)x ∗ ( 2)2x∗1x ∗ (10)x1x1 + x 2 − 2 = 0Рис.
3Б. МЕТОД БАРЬЕРНЫХ ФУНКЦИЙПостановка задачиДаны дважды непрерывно дифференцируемые целевая функцияf ( x) = f ( x1,…, xn ) и функции ограничений-неравенств g j ( x) ≤ 0 , j = 1, … , m , определяющие множество допустимых решений Х.Требуется найти локальный минимум целевой функции на множестве Х, т.е.такую точку x ∗ ∈ X , чтоf ( x ∗ ) = min f ( x) ,где X ={x}x∈Xg j ( x) ≤ 0, j = 1,… , m .АлгоритмШаг 1. Задать начальную точку x 0 внутри области Х, начальное значение параметра штрафа r k ≥ 0 , число C > 1 для уменьшения параметра штрафа, малое числоε > 0 для остановки алгоритма. Положить k = 0 .Шаг 2. Составить вспомогательную функцию:(F x, rk) = f ( x) − rkm∑j =1m1kkили F x, r = f ( x) − r ∑ ln ⎡⎣ − g j ( x) ⎤⎦ .g j ( x)j =1()(Шаг 3.
Найти точку x ∗ ( r k ) минимума функции F x , r k) с помощьюкакого-либо метода (нулевого, первого или второго порядка) поиска безусловного минимумас проверкой принадлежности текущей точки внутренности множества Х. При этом задать все требуемые выбранным методом параметры. В качестве начальной точки взятьx k . Вычислить:188()m1j =1g j x ∗ (r k )P x ∗ (r k ), r k = − r k ∑()(m)()или P x ∗ (r k ), r k = − r k ∑ ln ⎡⎢ − g j x ∗ (r k ) ⎤⎥ .⎣⎦j =1Шаг 4. Проверить выполнение условия окончания:() ≤ ε , процесс поиска закончить:x ∗ = x ∗ (r k ) ,f ( x ∗ ) = f ( x ∗ (r k ) ) ;rP ( x ∗ ( r k ), r k ) > ε , положить r=; x k +1 = x ∗ (r k ) , k = k + 1Cа) если P x ∗ ( r k ), r kб) еслиkk +1иперейти к шагу 2.З а м е ч а н и я.1.
Обычно выбирается r 0 = 1,10,100 , a параметр C = 10;12;16 .2. При r k → +0 обеспечивается сходимость, однако с уменьшением r k функ-(ция F x , r k) становится все более «овражной». Поэтому полагать rkмалым числомсразу нецелесообразно.Пример 4. Найти условный минимум в задачеf ( x) = x → min,g1 ( x) = 2 − x ≤ 0. 1. Найдем решение аналитически с применением обратной штрафной функ-ции.()2.
Составим вспомогательную функцию: F x, r k = x − r k(1.2−xP ( x,r k ))3. Найдем безусловный минимум F x , r k с помощью необходимых и достаточных условий:()∂ F x, r krk=1−= 0 . Так как внутри множества допустимых∂x(2 − x )2решений 2 − x < 0 , то x = 2 ± r k , а x ∗ (r k ) = 2 + r k (результаты приведены втабл.4). Достаточные условия минимума выполняются:(∂ 2 F x ∗ (r k ), r k∂ x2)=−rk∗⎡ 2 − x (r ) ⎤⎣⎦k3> 0.(krkx ∗ (r k )F x ∗ (r k ), r k0123410,10,010,001032,312,12,03242,632,22,0632189)(Таблица 4P x ∗ (r k ), r k10,320,10,033-)Занятие 6.
ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ.РЕШЕНИЕ КАНОНИЧЕСКОЙ ЗАДАЧИА. СИМПЛЕКС-МЕТОД ДАНЦИГАА1. Решение канонической задачиПостановка задачиНайти максимум функцииnf ( x) = ∑ c j x jj =1при ограниченияхn∑ ai j x jj =1= bi , i = 1,… , m; m < n ,x j ≥ 0 , j = 1, … , n .Задача называется канонической, а искомое решение x ∗ = ( x1∗ ,..., x n∗ )T – оптимальным.Будем считать, что в ограничениях все числа bi ≥ 0 , i = 1, … , m . Этого можно добиться,умножая ограничения, где bi < 0 , на « − 1 ».Алгоритм решения канонической задачиШаг 1.
Найти начальное базисное решение.а) записать исходную каноническую задачу одним из двух способов:• в форме, где для m переменных коэффициенты в уравнениях образуют единичную матрицу, используя преобразования Гаусса–Жордана;• в расширенной форме с помощью перехода к M -задаче;б) выделить базисные переменные (их можно подчеркнуть), входящие тольков одно из уравнений системы с коэффициентами 1, а во все остальные с коэффициентами, равными нулю;в) выделить свободные переменные (все остальные, кроме базисных);г) найти начальное базисное решение, полагая свободные переменные равныминулю.Шаг 2.
Заполнить табл.1:а) столбец базисных переменных (БП);б) столбец базисного решения (БР);в) строку c j и столбец c iB коэффициентов функции. В столбец c iB записываютсякоэффициенты, соответствующие базисным переменным;г) совокупность коэффициентов a i j систем (над элементами поставлена черта дляунификации обозначений, так как система преобразуется одним из двух способов).190Шаг 3. Вычислить относительные оценкиmΔ j = c j − ∑ c i B a ij = c j − z j ,i =1mz j = ∑ c i B a ij ,j = 1,..., m + n ,i =1и записать их в таблицу.
Заметим, что для базисных переменных оценки равны нулю.Этот факт можно использовать как для проверки правильности заполнения таблицы, таки для сокращения вычислений.Шаг 4. Проанализировать относительные оценки:а) если все оценки Δ j неположительны, т.е.Δ j ≤ 0,j = 1,..., m + n ,то расчет закончен и следует найти полученное базисное решение. Значения базисных переменных содержатся в столбце БР, а остальные переменные полагаются равными нулю, как свободные.Проанализировать полученное базисное решение:• если число нулевых оценок Δ j = 0 равно числу базисных переменных, задача имеет единственное решение.
Если число нулевых оценок Δ j = 0 превышает число базисных переменных, то задача имеет бесконечное множестворешений;• если все Δ j неположительны, но базисное решение содержит хотя бы однуискусственную переменную, не равную нулю, то ограничения задачи несовместны;б) если среди оценок есть положительные, то следует найти среди них максимальную:Δ r = max Δ j ,j∈JHгде J H – множество индексов небазисных переменных, и проанализировать коэффициенты столбца таблицы, которому соответствует максимальная положительная оценка (если таких оценок несколько, принято выбирать оценку с наименьшим номером). Если этот столбец содержит хотя бы один положительныйкоэффициент, то номер столбца обозначается через r и переменная, соответствующая ему, должна быть введена в число базисных. Если среди коэффициентов этого столбца нет ни одного положительного коэффициента, то это означает, что множество допустимых решений задачи не ограничено, функция f (x )не ограничена сверху и задача решения не имеет.Столбец, соответствующий выбранной оценке, помечается ⊗ .
Он называетсяразрешающим.Шаг 5. Поделить элементы столбца базисных решений (БР) на соответствующиеэлементы разрешающего столбца и среди полученных частных выбрать наименьшее.Строка, соответствующая выбранному отношению, помечается ⊗.
Она называется разрешающей.191Таким образом, новая переменная x r вводится на место переменной x sB , удаляемой из числа базисных, номер которой s B , а также номер s соответствующей строкитаблицы, определяются из условия⎡ ximin ⎢ B1≤ i ≤ m ⎢ a ir⎣⎤ xs⎥= B ,⎥⎦ a srгде x iB – значение координаты текущего базисного решения, соответствующей i -й строке; a ir – коэффициент при координате x r в i -й строке.
Если таких переменных окажетсябольше одной, то из базиса выводится та переменная, которая имеет больший номер. Заметим, что рассматриваются только неотрицательные отношения, т.е. если коэффициентa ir отрицателен или равен нулю, то отношение не подсчитывается и на его месте в приведенных далее таблицах ставится знак «--». Элемент a sr , расположенный на пересечении разрешающей строки и разрешающего столбца, называется разрешающим и выделяется в таблице прямоугольником.Удобно использовать следующее правило: из числа базисных выводится переменная, соответствующая разрешающей строке, а на ее место вводится переменная, соответствующая разрешающему столбцу.Шаг 6.
Вычислить новое базисное решение, осуществив пересчет таблицы:а) вместо координаты x sB в состав базисных ввести координату xr , значение которой находится по формулеxr =xsBa sr,и пересчитать s-ю строку, в которой произошли изменения по базису:a sja sj =, j = 1, … , m + n .a srТаким образом, каждый элемент строки, отмеченной ⊗, делится на разрешающий элемент a sr ;б) вычислить все остальные коэффициенты:a ij = a ij − a sj a ir = a ij −a sja sra ir , i = 1, … , m ; i ≠ s ; j = 1, … , m + n .Новое базисное решение определить на основании текущего базисного решенияпо формуламx i B = x i B − a ir x r , ∀i B : i B ≠ s B .Для упрощения вычислений по приведенным формулам используется «правилопрямоугольника».Пусть подсчитывается значение a ij .