Текст
                    /I е гк о Ь
И-Ъ.
Методы оптимизации
ФАКУЛЬТЕТ

УДК 519.72 ББК В 183.4я73 М 54 Рекомендовано Редакционно-издательским советом университета в качестве учебного издания. План 2008 года Рецензент кафедра информационных и сетевых технологий Ярославского государственного университета им. П.Г. Демидова Составитель: Н.В. Легкое Методы оптимизации: метод, указания / сост. Н.В. Лег- кое; Яросл. гос. ун-т. - Ярославль : Яр ГУ, 2008. - 32 с. Приводятся описания методов решения задачи линейно- го программирования. Рассмотрены графический метод и симплекс-метод. Для симплекс-метода приводится метод искусственного базиса нахождения начального решения. Предназначены для студентов, обучающихся по направ- лению 010500 Прикладная математика и информатика и специальностям 010503 Математическое обеспечение и администрирование информационных систем и 010501 Прикладная математика и информатика (дисциплина «Ме- тоды оптимизации», блок ЕН, ОПД), очной формы обуче- ния. УДК 519.72 ББК В 183.4я73 © Ярославский государственный университет, 2008
1. Постановки задач линейного программирования Задача минимизации функции п переменных fix)=f(x}, ...,xj на некотором множестве V<zEni не совпадающем со всем пространст- вом Еп и заданном с помощью ограничений (равенств и нера- венств) на координаты Xj точки х из пространства Ет называется задачей математического программирования. При этом функцию f(x) называют целевой функцией, а множество U - допустимым множеством. Решение задач математического программирования, как пра- вило, связано со значительно большими трудностями, чем реше- ние задач безусловной минимизации. Простейшим частным случаем задачи математического про- граммирования является задача линейного программирования (ЗИП), состоящая в минимизации линейной целевой функции п =Х CjXj на множестве U^En, заданном системой линейных ограничений (равенств и (или) неравенств) на коорди- наты х^ Задача линейного программирования в общей форме форму- лируется следующим образом: Среди точек x=(xi,...,xn)eEn> удовлетворяющих ограничениям п ajjXj—bi, i- 1,2,...,I, (1) 7=1 n S aijXj <bi,i=l+l,...,m; (2) /=• Xj >0, n найти те, в которых функция f(x)=X CjXj принимает минимальное значение, и определить это значение. Отметим, что в условии задачи линейного программирования могут содержаться неравенства и противоположного, чем в (2), 3
знака, однако такие неравенства легко сводятся к виду (2) умно- жением на -1. Если в условии задачи линейного программирования не со- держатся ограничения-неравенства (2), т.е. в (1) 1=т, то она назы- вается задачей линейного программирования в каноническом виде. Вводя дополнительные переменные хп^ >0, i=l+l,...,m, огра- ничения-неравенства (2) можно записать в виде равенств п S aijXj+xn+i=bi, i=l+l,...,m. 7=1 Таким образом, любая задача линейного программирования может быть записана в каноническом виде п f(x)=S CjXj-> min, (3) 7=1 п Е aijXj=bi,i=l,2, (4) 7=1 Xj >0. (5) Часто используется векторная запись задачи (3)-(5)]: f(x)=(c,x)-> min, Ax=b, (6) х >0, где x=(xl,...,xn) - вектор неизвестных, c=fc;,...,cj - вектор коэф- фициентов целевой функции из (3), А=(ау) - прямоугольная мат- рица размера mxn, b-(blf...,b,) - вектор правых частей системы (4), ах >0 - краткая запись условий неотрицательности (5). Третий часто используемый вид постановки задачи линейного программирования - стандартная, или симметричная, форма. В ней отсутствуют ограничения равенства: п Цх)=Е CjXj-*Tmn, (7) /=1 п X aijXj <bj,i=l,2..m; (8) xj >0. (9) Векторная запись задачи (7)-(9)]: f(x)=(c,x)-* min, Ах <b, (10) х >0. 4
Иногда возникает необходимость привести задачу линейного программирования, заданную в общей форме записи, к канониче- ской форме. Рассмотрим на простых примерах несколько методов, позволяющих сделать такое преобразование. Пример 1. Привести к канонической форме записи задачу xi+x2 min Х1-Х2 < 1 2xi+x2=2 X] >0. ◄ Для того чтобы первое ограничение записать в форме ра- венства, введем неотрицательную переменную х3 (х3 > 0). Заме- ним переменную х2, на значение которой не наложено требование неотрицательности, разностью двух неотрицательных перемен- ных: ^=х,-^,Где После этих преобразований исходная задача запишется в ка- нонической форме: +х2 -х2 —>min 2xj +х> -х, jq i >0. ► Пример 2. Привести к канонической форме записи задачу: X] + 2х2 - 2х3 min х[+х2-х,<1, 2xj + ах2 + х3 = 2 ? •^з -0. ◄ Введем дополнительную неотрицательную переменную х3 (х, > 0) и запишем первое ограничение задачи в виде равенства: jq +Х2 -х, +х4 =1. Исключим из системы равенств переменные хх и х2, не свя- занные условием неотрицательности. Для этого рассмотрим сис- тему' 5
Л1+Л2_-Х3+Х4-1, 2Х| +ях2 +х3 =2. Здесь возможны два случая. Случай 1. а *2. Переменные xt и х2 единственным образом выражаются через х3 и х4: *i = — (2 -«-(« + 1)х3 + ах4), 2-« л2 - — (З*3 ~ 2х4) . 2 - а При подстановке этих значений в линейную форму задача примет вид х3 > 0, х4 > 0. Случай 2. а = 2. В этом случае нельзя выразить и х2 через х3 и х4, но можно исключить одну из этих переменных, например X, : Если подставить найденное выражение для в линейную форму и оставшиеся ограничения, то задача примет вид 1 + х2 - х3 - х4 —> min Зх> -2*4=0, х3 > 0,х4 >0. Полученная задача в канонической форме неразрешима, так как х2 входит в линейную форму с ненулевым коэффициентом, но не входит в ограничения. Значит, неразрешима и исходная задача. ► Математические модели многих важных для практики задач оптимизации представляют собой задачи линейного программи- рования. Пример 3. Составить математическое описание следующей задачи об оптимальном составе сплава и представить полученную задачу линейного программирования в каноническом виде. 6
Для приготовления b0 кг сплава с заданными свойствами ис- пользуют вещества Ар В х кг вещества Aj содержится а^х кг химического элемента Bh Содержание элемента Bi в сплаве должно заключаться в пределах от p-t до кг. Стоимость 1 кг вещества Л, составляет с7 руб. Требуется определить такой состав для приготовления сплава, при котором общая стоимость израсходованных веществ мини- мальна. ◄ Обозначим Xj количество кг вещества Aj, используемое для приготовления сплава (очевидно х7 >0, Тогда содер- п жание элемента Д в сплаве составит X кг, а стоимость из- /=> п расходованных веществ будет равна X ОД руб. j=i Поэтому, с учетом ограничений на содержание элементов Д в сплаве, для величин х7- получим следующие неравенства: л ajjXj <bbi=1,2,...,m. j=i Кроме того, количество сплава должно составлять Ь(/ кг, по- п этому X Xj <Ь() Таким образом, математическое описание задачи об опти- мальном составе сплава принимает вид л f(x)=X ОД”* min, 7=1 п X ayXj <bj, (11) 7=1 n X aijXj > £i,(i=l,...,m), (12) 7=1 n X Xj=bo, (13) y=i Xj >0,j=l,...,n. Запишем эту задачу линейного программирования в канони- ческом виде. 7
Среди ограничений (11)—(13) на переменные х7 содержится 2 т неравенств (11), (12). Для преобразования их в ограничения- равенства введем 2т дополнительных неотрицательных перемен- ных xn+i и xnim+b Прибавив переменные xn+i к левым частям соответствующих неравенств (11) и вычтя переменные из левых частей нера- венств (12), получим задачу линейного программирования в кано- ническом виде п f(x)= 2L CjXj-* min, У=« ayXj+Xn+^bi, aijXj+xn+HH-i^j, (i=l,...,m), n S Xj=b0, 7=1 Xj >0, j=l,...,n. Задачи Привести задачи к канонической форме добавлением неотри- цательных переменных и заменой переменных, не связанных ус- ловием неотрицательности, разностью двух неотрицательных пе- ременных. 1.1. f = ~х{ - х2 -> min 2х. + х, > 1 1 Z. < Xj - х2 < О jc15x2 > О f = -Х| + х2 -> min 8
1.3. 1.4. f = -х, - x2 - x3 —> min X, - x3 < 1 < x2 + x3 > 1 x. > 0 f = -Xj +x2 - x3 —> min X, - x2 = 0 •x2 <1 x3 > 0 1.6. f = Xj - x2 - 2x3 - 3x4 -> min f - xt - x2 - x3 +1 Ox4 -> max Xj - x2 + x3 + x4 = 1 -Xj -x4 <5 x2 +x3 >10 Xj + x2 + x3 + x4 = 1 x2 + x3 + x4 = 1 x3 4- X4 =1 Привести задачи к каноническому виду методом исключения переменных. Проанализировать вопрос о разрешимости задач в тех случаях, когда невозможно исключить все переменные, не связанные условием неотрицательности. f = Xj + х3 -> min 3Xj + х2 < 1 2Xj + х2 < 2 1.8. f = Xj + ах2 + х3 —> min х,-Зх2+х3=1 * Xj - Зх2 +х3 = 2 х3 > 0 1.9. f = х, - х2 - х3 -> max х, -2х2 +х3 = 1 < Xj - 4х2 + ах3 < 2 Xj > 0 1.10. f - Xj + х4 -> max Xj + х2 + х3 + х4 = 1 Xj + х2 + Зх3 + 2х4 < 4 - Xj + х2 + 9х3 + 4х4 -16 х, >0 9
2. Графический метод решения задачи линейного программирования Если задача линейного программирования содержит только две переменные и в ее условии нет ограничений-равенств (1), то такую задачу можно исследовать и решить графически. Рассмотрим задачу' f(x)=C|Xl+c2x2-* min (14) ailx1-+-ai2x2 <bb i=l,...,m, (15) X] > 0, х2 >0. (16) На плоскости (xJf х2) любое из неравенств (15) определяет по- луплоскость, лежащую по одну из сторон от прямой ацХ1+ацХ2=Ь1. Для того чтобы определить расположение этой полуплоскости от- носительно граничной прямой, можно подставить координаты ка- кой-либо точки (при Ь, 0 проще всего взять начало координат) в соответствующее неравенство (15) и проверить его выполнение. Таким образом, допустимое множество U задачи (15)-(16) яв- ляется пересечением первого квадранта х{ > 0, х2 > 0 и полуплос- костей, соответствующих неравенствам (11). Поэтому множество U представляет собой либо: а) пустое множество, тогда задача (14)-(16) не имеет решений из-за несовместности ограничений (15), (16); б) многоугольник (рис. 1); в) неограниченное многоугольное множество (рис. 2). Для решения задачи (14)—(16) в случае U 7^0 рассмотрим се- мейство линий уровня функции f(x) из (14) C=const, (17) которые являются параллельными прямыми. Антиградиент - f'(x)=(-c/;-c2)=e перпендикулярен прямым (17) и указывает на- правление убывания f(x), Если перемещать параллельно самой се- бе произвольную прямую (17), проходящую через допустимое множество 17, в направлении е убывания f(x) до тех пор, пока эта прямая будет иметь хотя бы одну общую точку с множеством 1/, то в своем крайнем положении указанная прямая пройдет через 10
точку множества U, в которой целевая функция f(x) принимает минимальное на U значение. Рис. 1 Рис. 2. Рис. 3 И
Пример 2. Используя графический метод, найти решение сле- дующей задачи линейного программирования: f(x)=-3x 1-2х2~* min Xj+2x2 < 7, 2Xi+x2 <8 х2 <3 Xj > 0, х2 > 0. ◄ Изобразим на плоскости (х, х2) допустимое множество U данной задачи (многоугольник ABCDE) и одну из линий уровня - Зх7-2х2=С целевой функции (рис. 3). Направление убывания f(x) указывает вектор е=(3;2). Совершая параллельный перенос линии уровня вдоль направления ё, находим её крайнее положение. В этом положении прямая -Зх7-2х2=С проходит через вершину D (3;2) многоугольника ABCDE. Поэтому целевая функция f(x) при- нимает минимальное значение /* в точке х*=(3;2), причём /* =/3;2>-13. ► Задача линейного программирования (14)-(16) может иметь и бесконечное множество решений. Пример 3. Решить задачу линейного программирования с це- левой функцией f(x)=-xi-2x2 и ограничениями на допустимое мно- жество U, взятыми из примера 2. Рис. 4 ◄ Множество U построено при решении примера 2. На рис. 4 изображена линия уровня -х7-2х2=С целевой функции f(x) В своем крайнем положении при параллельном переносе вдоль направления 12
ё=(1;2) она содержит сторону CD многоугольника ABCDE. Таким образом, все точки отрезка CD являются точками минимума функ- ции fix) на множестве U. Так как концы С и D этого отрезка имеют координаты (1;3) и (3;2) соответственно, то любая точка минимума fix) представима в виде х* = a(l,3)+(l-Q!)(3,2)=(3-2Q;2+a), где ае[0;1]. Минимальное значение целевой функции/* = /(х*)=-7. ► В случае неограниченного допустимого множества U задача линейного программирования (14)—(16) может не иметь решения, так как целевая функция на таком множестве может быть не ограниченной снизу. Пример 4. Решить графическим методом задачу линейного f(x)=-Xi-2x2-> min Xi+X2 >1, 2xrx2 >-l, xr2x2 <0, xj > 0, x2 >0. ◄ Допустимое множество U данной задачи представляет со- бой неограниченное многоугольное множество (рис. 5). Функция fix) убывает в направлении е=(1;2). При параллельном переносе линии уровня -хг2х2=С вдоль направления ё она всегда пересека- ет множество U, а целевая функция fix) неограниченно убывает. Поэтому рассмотренная задача не имеет решений. ► 13
Графический метод используется также для решения задачи линейного программирования в каноническом виде (3)-(5) с про- извольным числом переменных х7, если число свободных перемен- ных системы уравнений (4) не превосходит двух. Пусть ранг г матрицы системы ограничений (4) (т. е. матрицы А из (6)) равен рангу расширенной матрицы (И|/>) этой системы. В противном случае система (4) несовместна и задача линейного программирования (3)-(5) не имеет решения, так как ее допусти- мое множество U пусто. Выберем произвольный базисный минор матрицы А. Для оп- ределенности будем считать, что этот минор порядка г соответст- вует первым г столбцам и строкам матрицы А. Если г<т, то урав- нения (4) с номерами являются следствиями остальных уравнений и их следует опустить. Поэтому будем считать, что г=т. Предположим, что п-т=2 или л-/я=1. Считая переменные х7, базисными, а остальные - свободными, решим систему (4), т.е. выразим базисные переменные через свободные, после че- го исключим базисные переменные из условия задачи (3)-(5). Для этого полученные соотношения для базисных переменных подста- вим в выражение (3) целевой функции и запишем условие неотри- цательности (5) для всех переменных. В результате получим задачу линейного программирования вида (14)—(16'), эквивалентную исходной задаче и содержащую только свободные переменные исходной задачи, а их число не превосходит двух. Для решения полученной задачи можно ис- пользовать графический метод. Пример 5. Используя метод исключения переменных, свести следующую задачу линейного программирования, заданную в ка- ноническом виде, к виду, пригодному для применения графиче- ского метода: -2xi-x2-3x3-X4-^ min, Х]+2х2+5хз-Х4=4, хгх2-х3+2х4=1, Xj >0, i= 1,2,3,4. 4 В данном случае матрица системы ограничений-равенств имеет вид: 14
Г 1 2 5-1 I 4 '' ( 1 -1 -I ‘2 | 1/ Ее ранг г = 2, причем минор, образованный третьим и четвёр- тым столбцами, может быть выбран в качестве базисного. Число свободных переменных п-т=2, поэтому для решения задачи мож- но использовать графический метод. Решим систему ограничений-равенств относительно базисных переменных х3, х4: 1 2 5-1 | 4 Г-1 1 1 (1-1-12 | 1 J ( 1 2 5 Г 1 1 r-l 1 1 -2 | ‘ ” < 6 -3 0 9 | 9 ) | - -1 I 3 3 I -2 | -1 О 1 | 1 В итоге получим: Исключая переменные х3 и х4 из выражения для целевой функции, находим: f(x)=-|x1-|x2-4. С учетом условия неотрицательности х, >0, и только что полученных равенств, получаем следующую задачу: f(x)=-|xr|x2-4-> min, -xr-x2 < 1. з з х3, х4 > 0. 15
Задачи Решить следующие задачи линейного программирования гра фически или убедиться в их неразрешимости. f = -х( - 2х2 —> min Гхг + х2 < 1 <1 2.2. f = -Xj - 2x2 —> min ХрХ2 > 0 2.3. f = + x2 —> max Xj + 2x2 < 1 2xj 4- x2 < 1 < Xj - x2 < 1 х, - 2x2 < 1 2xj - x2 < 1 xI5x2 > 0 2.5. / = х, + 2x2 —> max 3Xj - 2x2 <6 5 - Xj 4- 2x2 < 4 3xj 4-2x2 < 12 Xj,x2 > 0 2.4. f - -Xj 4- x2 —> max Xj 4- x2 < 1 X] - 2x2 < 1 < 2Xj 4- 3x2 <2 3xj 4- 2x2 < 3 Xj 4-x2 > 1/2 Xj,x2 > 0 2.6. f - -2Xj - x2 -» min Xj > 0 2.7. f - 7Xj 4-5x2 min Xj,x2 > 0 2.8. f - -Xj 4- 2x2 —> min 2xj - 3x2 > 0 < x, - x2 <3 2X] - x2 =4 16
Используя метод исключения переменных, свести ЗЛП к ви- ду, пригодному для применения графического метода, и решить их. 2’л3 2.11. f = -х1 + х2 + х4 + Зх5 —> min X] 4- 2х2 - х3 — 5х4 + 2х5 = -5 < + х2 4- х3 - 2х4 4- 5х5 = —2 - 2х} 4- х3 4- Зх4 - Зх5 = 6 ху > 0,у = 1...3 2.10. f = Xj 4- х3 - 7х4 4- х5 —> max X] - х2 4- 6х4 - 2х5 - -1 < х2 - х3 - 4х4 + 6х5 = 24 Х[ 4- х2 - х3 - Зх4 4- 7х5 - 32 ху > 0,j = 1...5 2.12. f = х, 4- х2 4- 2х3 - 9х4 —> max 2х, - х2 4- х3 - 4х4 < 6 X] 4- 2х2 - х3 4- 7х4 = 5 < 5х, 4- х2 - Зх4 = 11 Зх, + 2х2 4- х3 - Зх4 = 7 Xj, >0,у = 1...4 3. Симплекс-метод решения задачи линейного программирования Общим методом решения произвольной задачи линейного программирования является симплекс-метод, рассматриваемый ниже. Пусть ранг г матрицы А-(а-,^ системы ограничений-равенств (4) задачи линейного программирования в каноническом виде совпа- дает с рангом расширенной матрицы (А\Ь). Выберем какой-нибудь базисный минор матрицы А. Для опреде- ленности будем считать, что он соответствует первым г столбцам и строкам этой матрицы. Если г<т, то уравнения с номерами i=r+l,...,m, являющиеся следствиями остальных уравнений систе- мы, отбросим, полагая в дальнейшем г=т. 17
Для решения системы уравнений (4) относительно базисных переменных Xj, с помощью эквивалентных преобразова- ний приведём её к виду Х,+ Х2+ <АданХ<п+1+-„+ О|0,2,пХ„=/3(0 2, (18) Хщ^ И m^n+lXm+l"^* • О: m.nXn-/? т, тогда общее решение системы (4) запишется следующим образом: X|= С/О)ЬПХП, \2~ 2"°^° 2,m-+lXm+]-...- с/°'2!ПХп, (19) т-^ т,т+1Хт+1_.• “ с/ т,пХп, где свободные переменные хт±],...,хп могут принимать произволь- ные значения. Положив их равными нулю, получим частное решение h %2~$ 2у“у $ ту^т+1 Хт+2 ••• %п~@ или х(°ЧЛ Л;...; Л; 0;0;...;0), (20) которое назовем базисным решением системы (4). Каждому выбо- ру базисных переменных соответствует свое базисное решение системы (4). Если все компоненты базисного решения (20) удовлетворяют условию неотрицательности, т. е. если /3^,>0, то такое решение называют допустимым базисным решением системы (4) или угловой точкой допустимого множества U задачи линейного программирования (3)-(5). Если среди неотрицательных чисел в (20) есть равные нулю, то допустимое базисное решение называ- ется вырожденным (вырожденной угловой точкой), а соответст- вующая задача линейного программирования также называется вырожденной. В основе симплекс-метода лежит следующий факт: Если задача линейного программирования (3)-(5) разрешима, то минимум целевой функции f(x) из (3) достигается хотя бы в од- ной из угловых точек допустимого множества U этой задачи. Так как различные базисные решения системы (4) соответст- вуют различным вариантам выбора т базисных из общего числа п переменных х7? то число допустимых базисных решений (угловых 18
точек) не превышает с;. Поэтому задачу линейного программиро- вания можно решать посредством перебора конечного числа угло- вых точек допустимого множества U, сравнивая значения целевой функции в этих точках. Однако при большой размерности п зада- чи линейного программирования этот подход затруднителен. Идея симплекс-метода состоит в направленном переборе угловых точек допустимого множества U с последовательным уменьшением зна- чения целевой функции f(x). Описание симплекс-метода Предположим, что задача линейного программирования (3)- (5) является невырожденной, а базисное решение (20) - допусти- мым. Используя соотношение (19), выразим целевую функцию из (3) через свободные переменныех7? j=m+l п /(х)=р‘”+Ър™х1. (21) где XW=SCX’ , j=m+l,...,n. /=1 г=1 Справедливы следующие утверждения: а) Если в выражении (19) все коэффициенты pjo>, j=m+l,...,n неотрицательны, то в угловой точке (18) достигается минимум целевой функции f(x) из (3) на допустимом множестве U задачи (3)-(5), и этот минимум равен р^. б) Если среди отрицательных коэффициентов p^,j #0 из (19) есть такой (например р™), что в (16) все коэффициенты о$> <0, i=l,...,m, то целевая функция f(x) не ограничена снизу на допус- тимом множестве U и задача (3)—(5) не имеет решений. в) Если хотя бы один из коэффициентов p^,j тЮ в (19) отри- цателен (например, р^}<0) и при этом среди коэффициентов а^в (16) есть хотя бы один положительный, то существует угловая точка х<!) множества U такая, что f(x!))< f(xf0>). В случаях а) и б) процесс решения задачи линейного про- граммирования на этом заканчивается. Рассмотрим подробнее 19
случай в). Пусть в (19) коэффициент pjo)< 0 и в (16) имеются по- ложительные коэффициенты off'. Найдем номер к базисной пере- менной из условия где минимум берется по всем номерам для которых а™>0. Найдем решение системы (4), считая свободными переменные хт+],Xk, xi+1,..., хП9 т.е., поменяв местами свободную пере- менную х- с базисной переменной х^ система уравнений вида (16) в этом случае запишется следующим образом: п /у(0) ЛУ(О) V к - л'°> Xj+ ZL ап (0))xj (0) хк=р^-а^Щ-^ I=l,...,m, 1 #k, j=m+! aki a},1 (23) V + 1 Xi+ L wx/+ wxk=U-, i=k. (24) j=m+lWJW <Xki a<t/> j*l Зависимость целевой функции от новых свободных перемен- ных примет вид: л а(0) п(0) Z,„(0) „(0) */ Pl Q<0) (^/ Pi ^xj + (25) /=ж+1 Ukl tty' /*/ Компоненты нового базисного решения x(h можно найти, при- равняв нулю свободные переменные ху, j=m+l, j и х* и найдя при этом условии значения базисных переменных из (23)-(24). Ба- зисное решение х(1) является допустимым, т.е. угловой точкой множества U, причем f(x(r,)<f(x(0)). По знакам коэффициентов в системе (23) и выражении для целевой функции (25) можно сделать одно из трех приведенных выше заключений, как это было сделано для угловой точки х'0). В случае в) следует совершить переход к очередной угловой точке х(2>, аналогичный переходу от х('°[к х(!>, и т.д. Так как число угловых точек допустимого множества U не превышает С", то случай в) может повторяться конечное число раз, т.е. в результате конечного числа шагов перехода к новой уг- 20
ловой точке будет либо найдено решение задачи, либо сделано за- ключение о том, что она не имеет решений. Реализация описанного выше симплекс-метода значительно упрощается при использовании симплекс-таблиц. Записав коэф- фициенты уравнений (18) и целевой функции (21) соответствую- щим образом (см. таблицу 1), получим симплекс-таблицу задачи (3)-(5) для угловой точки х0) из (20). Рассмотрим переход от симплекс-таблицы, соответствующей уг- ловой точке xlOj, к симплекс-таблице для угловой точки х(>-. 7^ Хщ+1 ... Xi Xn Х1 “1.Л1+1 Д01 Хк а(0) ... «s Хгг. ат , • • • ... c № Pm+l ... ... p™ -p? Таблица 1 Таблица 2 Xm+1 ... Xk • • • Xn Xl ы1л>+1 ... ... «s д<’> ... • •• ... Xl a(1) ... «s ... /Г ... •.. • • • Xm a(,) , ... ... < № »<•) Jr m+l ... p? -p™ Пусть номера к и I определены так, как это сделано выше. Элемент а также строка и столбец таблицы 1, на пересечении которых он стоит, называются разрешающими, или опорными. Из формул (23)-(25) следует, что преобразование исходной сим- плекс-таблицы с опорным элементом ctf (см. таблицу 1) приводит к новой симплекс-таблице (таблица 2), для определения элементов которой необходимо выполнить следующие операции: 1. Поменять местами переменные хк и хь остальные перемен- ные оставить на прежних местах (см. таблицу 2). 2. На место опорного элемента поставить число ак! 3. На остальных местах разрешающей строки записать соот- ветствующие элементы исходной таблицы, деленные на опорный элемент. 21
4. На свободные места разрешающего столбца поставить со знаком минус соответствующие элементы исходной таблицы, делен- ные на опорный элемент. 5. Оставшиеся свободные места в новой симплекс-таблице за- полнить построчно следующим образом: из строки элементов ис- ходной таблицы вычесть произведение ее элемента из разрешаю- щего столбца на уже заполненную разрешающую строку новой таблицы. Например, для строки с i-й базисной переменной имеем (знак * стоит на месте элемента разрешающего столбца, заполнен- ного согласно определению операции 4): (<t,,..-Л.-.,aS,,/?r)- -Л-. Замечание. Если задача линейного программирования (3)-(5) вырождена, то возможны холостые шаги симплекс-метода, т.е. шаги, в результате которых значение целевой функции не изменя- ется. При этом теоретически возможно и зацикливание, т.е. беско- нечное повторение холостых шагов. Для того чтобы избежать за- цикливания, разработаны специальные алгоритмы (антициклины), Однако на практике зацикливание происходит крайне редко, по- этому антициклины мы здесь не рассматриваем. Пример 5» Решить задачу линейного программирования сим- плекс-методом, используя в качестве начальной угловой точки ?0) базисное решение, соответствующее свободным переменным и х2- -2х]-х2-Зхз-Х4-* min х14-2х2+5х3-Х4=4 Х|-Х2-Х3+2Х4=1 Xj >0, i= 1,2,3,4. ◄ Столбцы с номерами 3 и 4 матрицы А системы ограниче- ний-равенств данной задачи образуют базисный минор. С помо- щью эквивалентных преобразований приводим эту систему к виду (18), где базисными являются переменные х3 и х4\ Хз+ jX]+|x2=l (*) Хд+ |хг|х2=1 Полагая в равенствах (26) свободные переменные х} и х2 рав- ными нулю, находим х3-1, х/=1, т.е. базисное решение х(0)=(0,0,1,1). 22
Так как все базисные переменные в х(0) положительны, данное ба- зисное решение является допустимым (т.е. угловой точкой) и не- вырожденным. Исключив с помощью (*) базисные переменные в выражении для целевой функции, получим f(x)=-lxrlx2-4. (**) С помощью равенств (*) и (**) составляем симплекс-таблицу, соответствующую угловой точке х(0)\ х(<” Х1 Х2 Хз 1 3 1 3 1 х4 2 3 3 1 _1 3 "з 4 Среди коэффициентов pjo),y ^0, из (19) есть отрицательные — это элементы -|и в последней строке симплекс-таблицы. Следовательно, угловая точка х(0' не является решением задачи. Для каждого из отрицательных элементов р'°' среди соответ- ствующих коэффициентов а'” из (16) (т.е. элементов симплекс- таблицы, стоящих в том же столбце, что и р'01) есть положитель- ные, значит возможен переход к новой угловой точке х(,) с мень- шим значением f(x). Найдем разрешающий элемент. В качестве опорного можно взять любой из столбцов таблицы, соответствующих свободным переменным х3 и х4. Выберем, например, столбец при свободной переменной х3. Разрешающую строку находим в соответствии с (22): так как = то разрешающей является строка, соответствую- щая базисной переменной х4. Итак, опорный элемент найден, в симплекс-таблице он обведен рамкой. 23
Заполнив новую симплекс-таблицу по правилам, описанным выше, получим: Отметим, что значение f(x) в новой угловой точке уменьши- лось по сравнению со значением в исходной: -| вместо -4 (см. элементы в правых нижних углах симплекс-таблиц). В нижней строке последней таблицы есть отрицательный эле- мент -р стоящий в столбце при свободной переменной х2. Кроме того, в этом столбце имеются положительные элементы, поэтому возможно дальнейшее уменьшение f(x) с помощью очередного шага симплекс-метода. На данном шаге выбор опорного столбца однозначен и опре- деляется отрицательным элементом последней строки. Разре- шающая строка также находится однозначно. Это строка при ба- зисной переменной х3. Опорный элемент в последней таблице об- веден рамкой. Как и на предыдущем шаге, находим очередную симплекс- таблицу по общим правилам: х(2) Хд х3 Х2 -1 2 1 Х1 1 1 2 0 1 5 В этой симплекс-таблице оба коэффициента в последней строке положительны. Поэтому угловая точка, соответствующая 24
свободным переменным х3 и х4, является точкой минимума целе- вой функции f(x): х*=х(2>=(2,1,0,0). Минимальное значение f(x) со знаком минус записано в правом нижнем углу симплекс-таблицы, поэтому/=-5. ► Задачи Решить ЗЛП симплекс-методом, используя х(0)в качестве на- чальной угловой точки. 3.1. f - -Xj + 2х2 -х3 —> min 3.2. f = -X] - х2 - х3 min fxj + 4х2 + х3 = 5 [xj -2х2 -х3 = -1 [- Х| + х2 + х3 =2 [3xj - х2 + х3 = 0 Xj > 0, j ~ 1...3 х(0) = (1;1;0) х7 >о,у = 1...з х(0) = (0;1;1) 3.3. f = -2xj - х2 + Зх3 + х4 —) х, + 2х2 + 5х3 - х4 =4 < х, -х2 -х3 + 2х4 = 1 х.>о,; = 1...4 х(0) = (0;0;1;1) 3.4. ► min f = - 6xj - х2 - 4х3 - 5х4 -» min 3xj + х2 - х3 + х4 =4 5х1 + х2 + х3 - х4 = 4 ху >0,7 = 1...4 х(0) = (1;0;0;1) 3.5. f = -Xj - 2х2 - Зх3 + х4 —з [х] - Зх2 - х3 - 2х4 = -4 [Xj - х2 + х3 = 0 3.6. ► min f = -xt + Зх2 + 5х3 + х4 -> min х, + 4х2 + 4х3 + х4 = 5 |Xj + 7х2 + 8х3 + 2х4 = 9 xj >0,7 = 1...4 х(0> = (0;1;1;0) Xj >0,7 = 1...4 х(0) = (1;0;1;0) 25
3.8. f - -Xj - x2 - x3 - x4 —> min f = -Xj - 2x2 + x3 - x4 —> min I Xj 4- 3x7 + x3 + 2x4 = 5 12Xj - x3 + x4 - 1 xy.>0J = 1...4 xm = (O;l;O;l) ;>0,j = 1...4 xm = (O;O;l;l) 3.9. 3.10. f - -x, - x2 - x3 - x4 - x5 —> min f2x, + 3x2 + 5x3 + 7x4 4- 9x5 =19 [Xj - x2 + x4 + 2x5 = 2 Xj. >0,7 = 1...5 xm = (l;0;l;2;0) f = x, 4- 3x2 + 2x3 + 4x4 - 2x5 —> min - %] + x3 - 2x4 - 2xs = -2 x2 - x3 4- x4 - 2x5 =0 2x, 4- x, 4- 5x4 4- xs =7 х^ > 0,7 = 1...5 x(0) = (3;l;l;0;0) 3.11. 3.12. f = 3x, - 2x2 4- x3 4- 3x4 4- 3x5 —> max f = 2xj -x2 -x34-x4 -4x5 -x6 -> min f2xl -x2 4-x3 +x4 4-x5 = 2 3x{ +x2 4-2х3 4-6x4 4-9xs +3x6 = 15 <{-4xt 4-3x2 -x3 -x4 -3x5 = -4 л + 2л, - x, + 2x„ + Зл5 + x6 = 5 [Зл, + 2л, + +3л, + 5x4 = 3 xj 0, j1...6 xl0) = 1;0;0;0;0;4) xW = (1;0;0;0;0) 4. Метод искусственного базиса Решение задачи линейного программирования симплекс- методом начинается с поиска какой-либо угловой точки хт) допус- тимого множества G этой задачи. Метод искусственного базиса нахождения начальной угловой точки х(0/ состоит в следующем. Пусть в ограничениях задачи ли- 26
нейного программирования (3)-<5) все b-t >0, Если это не так, то умножим соответствующие уравнения (4) на -1. Введем т дополнительных переменных xn+h и рассмотрим вспо- могательную задачу линейного программирования т f(x)=S хп+1-> min, (26) 7=1 п Е aijXj+xn+i=bi,i=l,...,m; (27) ;=1 хк >0, к= 1,...,n+m. (28) Одной из угловых точек допустимого множества G этой зада- чи, очевидно, является точка х(0,=(0;...;0;/?7;...;^). Поэтом}7 для ре- шения задачи (26)-(28) можно использовать симплекс-метод со следующей начальной симплекс-таблицей:_______________________ Х[ *2 хп Хп+1 ап 312 — 31 п bi Хп+2 a2i а22 — а2п ь2 •.. ♦ • • • ♦ • ♦ ♦ • • • • . *« Xn-m ami ащ2 • •• amn Ьт Pl Р2 Рп -Ра щ гп rAepj=-Xav;j=l,...,n;-pO=-E^ ;=i i=i Отметим, что решение задачи (24)-(26) всегда существует, так как ее допустимое множество G непусто (?(С|е(7), а целевая функ- ция (26) ограничена снизу на G (f (л-)>о). Пусть 7*=min /(х). Рассмотрим возможные случаи. G 1. f‘>Q. Тогда допустимое множество G исходной задачи ли- нейного программирования (3)—(5) пусто, т.е. эта задача не имеет решений. 2. 7‘=0 и минимум целевой функции 7U) достигается в угло- вой точке xw =(^,.-,Х,.ля+1,-Л+Л) (29) допустимого множества G вспомогательной задачи. Тогда х(0)=(х„х2,..^) (30) 27
есть угловая точка допустимого множества U исходной задачи (3)-(5) и ее можно использовать в качестве начальной угловой точки при решении этой задачи симплекс-методом. Из (24) видно, что равенство f (х)=/*=0 возможно только то- гда, когда все координаты xn+i, (29) равны нулю. Если задача (26)-(28) невырождена, то это означает, что все переменные хпЧ для угловой точки (29) являются свободными. Опустим столбцы, соответствующие этим переменным в оконча- тельной симплекс-таблице, составленной при решении задачи (26)-(28). Полученная в результате этого таблица будет соответст- вовать системе уравнений (4), разрешенной относительно т пере- менных X/, являющихся базисными для угловой точки (29). По- этому остается заменить в этой таблице последнюю строку на строку коэффициентов целевой функции (3) исходной задачи и продолжить ес решение симплекс-методом из начальной угловой точки (30). Если вспомогательная задача (26)-(28) вырождена, то в угло- вой точке (29) некоторые из переменных xn+i, могут ока- заться базисными. Тогда эти переменные следует перевести в сво- бодные с помощью холостых шагов симплекс-метода, выбирая в качестве разрешающих произвольные элементы симплекс-таблиц, отличные от нуля. После этого исходная задача (3)-(5) решается симплекс-методом так, как описано выше. Пример 6. Методом искусственного базиса найти какую-либо угловую точку допустимого множества задачи линейного про- граммирования, рассмотренной в примере 5, и записать соответст- вующую этой угловой точке симплекс-таблицу. ◄ Введем дополнительные переменные х5, х6 и запишем ус- ловие вспомогательной задачи линейного программирования (26)— (28) для рассматриваемого случая: f {х)=х5+х^ min х1+2х2+5хз-х4+х5=4 Х1-Х2-Хз+2х4-гХ6=1 Xi >0, i=l,...,6. Считая дополнительные переменные х5, х6 базисными, запи- шем симплекс-таблицу этой задачи, соответствующую угловой точке х(°’=(0;0;0;0;4;1). Затем, производя преобразования сим- 28
плекс-метода, получим такую последовательность симплекс- таблиц (рамками обведены разрешающие элементы): ~(0> Х1 х2 Хз х4 х"’ \Хб 1 х2 хз х4 х5 1 2 5 -I 4 х5 Е 6 -3 3 Хб 0 -1 -1 2 1 X) -1 -1 2 1 -2 -1 -4 0 4 /2\ -3 -6 3 3 Столбец симплекс-таблицы, соответствующий вспомогатель- ной переменной xn+h вводимой в свободные на каждом шаге мето- да искусственного базиса, удобнее вычеркивать на данном шаге вместо того, чтобы исключать такие столбцы одновременно в окончательной симплекс-таблице. В нижней строке последней симплекс-таблицы нет отрица- тельных элементов, а в правом нижнем углу стоит нуль. Следова- тельно, минимум /*=0 вспомогательной целевой функции достиг- нут и х<0)=(2,1,0,0) есть угловая точка допустимого множества U исходной задачи линейного программирования из примера 5. Заменив нижнюю строку последней симплекс-таблицы на строку коэффициентов целевой функции исходной задачи, полу- чим симплекс-таблицу этой задачи, соответствующую найденной угловой точке х(0>: jf(2) х3 Хд х2 2 -1 1 Х1 1 1 2 1 0 5 29
В данном случае найденная угловая точка совпала с решением исходной задачи. Другие варианты выбора разрешающих элемен- тов в ходе реализации метода искусственного базиса могли при- вести к другим угловым точкам допустимого множества U исход- ной задачи. Задачи Решить ЗЛП симплекс-методом, находя начальную точку' ме- тодом искусственного базиса. » X • f = -Xj - 4х2 - х3 —> min | Xj - х2 + х3 =3 [2xj - 5х2 - х3 = 0 ху >0,j = 1...3 4.3. f = -Xj - 2х2 - Зх3 4- 4х4 —> [ х, 4- х2 - х3 + х4 - 2 1 + 14х2 4-10х3 -10х4 = 24 х; > 0,/= 1...4 4.5. f = -Xj 4- 5х2 4- х3 - х4 —> Т Xj 4- Зх2 4- Зх3 + х4 = 3 2xj 4-Зх3 -х4 =4 ху >0,/ = 1...4 f = -Xj 4-10х2 - х3 —> min -х, 4- 5х2 + 7х3 = 13 < х, 4-14,5х2 4- 7х3 = 15 Xj >0,у = 1...3 4.4. mm f = -Xj 4-4х2 -Зх3 -10х4 —> min Xj 4- х2 - х3 4- х4 - 0 Xj 4- 14х2 4-10х3 — 10х4 = 11 ху > 0,j = 1...4 4.6. f = -л, - 10х2 4- х3 — 5х4 min nin г _ э - Xj + 2х2 - х3 - х4 = 1 < - X] 4- 2х2 4- Зх3 4- х4 = 2 Xj 4- 5х2 + х3 - х4 = 5 xy>0J = 1...4 30
4.7. f = -2xj + 2x2 + x, + 2x4 - 3x5 -> max - 2x, + x, - x3 - x4 = 1 - X] -x2 + 2x3 + x4 + x5 = 4 - x, + x2 - xs = 4 x; >0,y = 1...5 4.9. 2xt 4- x2 + x3 + x4 - x5 = 3 < x, - x2 + x4 + x5 = 1 - 2x, - x2 - x3 + x4 = ] Xj >O,J = 1...5 f = -5x, - 4x2 - 3x3 - 2x4 + 3x5 min 4.8. f = 5Xj - 2x2 + 2x3 - 4x4 + x5 + 2x6 -> max 2x, - x2 + x3 - 2x4 + x5 + x6 = 1 5 - 3x, + x2 + x4 - x5 + x6 = 2 [- 5X] + x, - 2x3 + x4 - x6 = 3 x?. > 0,7 = 1...6 4.10. f = 2x, + x2 -x3 + 3x4 -2x5 -> min (8X] + 2x, + 3x3 + 9x4 + 9x5 = 30 < 5x, + x2 + 2x3 + 5x4 + 6x5 = 19 [x! +x2+ 3x4 = 3 Xj >0,7=1.. .5 Литература 1. Заславский Ю.Л. Сборник задач по линейному программи- рованию. - М.: Наука, 1969. 2. Сборник задач по математике для втузов. Ч. 4: Методы оп- тимизации. Уравнения в частных производных. Интегральные уравнения : учеб, пособие / под ред. А.В. Ефимова. - М.: Наука, 1990. 31
Оглавление 1. Постановки задач линейного программирования__________з 2. Задачи__._______________________________________________л 3. Графический метод решения задачи линейного программирования----------------------------------------ю 4. Симплекс-метод решения задачи линейного программирования ................................................. 17 5. Метод искусственного базиса......_.......... —....26 Литература________—-------------------------------------з i Учебное издание Методы оптимизации Методические указания Составитель Легкое Николай Васильевич Редактор, корректор И.В. Бунакова Компьютерная верстка Е.Л. Шелеховой Подписано в печать 23.06.2008 г. Формат 60x84/16. Бумага тип. Уел. печ. л. 1,86. Уч.-изд. л. 1,53. Тираж 150 экз. Зака- Оригинал-макет подготовлен в редакционно-издательском отделе ЯрГУ. Отпечатано на ризографе. Ярославский государственный университет. 150000 Ярославль, ул. Советская, 14. 32