Основная идея симплекс метода. Симплекс – метод. Идея симплекс – метода. Симплексные преобразования. Было показано, как с помощью конечного перебора базисных решений системы ограничений задачи, найти это оптимальное решение. Однако с ростом размерности n

оптимальный динамическое программирование стратегия

В общем виде проблема ставится следующим образом: определить оптимальную стратегию использования оборудования в период времени длительностью m лет, причем прибыль за каждые I лет, i= от использования оборудования возраста t лет должна быть максимальной.

Известны: r(t) - выручка от реализации продукции, произведенной за год на оборудовании возраста t лет, l(t) - годовые затраты, зависящие от возраста оборудования t, c(t) - остаточная стоимость оборудования возраста t лет, P - стоимость нового оборудования. Под возрастом оборудования понимается период эксплуатации оборудования после последней замены, выраженный в годах.

Для построения математической модели последовательно выполняются этапы, сформулированные ниже.

1. Определение числа шагов. Число шагов равно числу лет, в течение которых эксплуатируется оборудование.

2. Определение состояний системы. Состояние системы характеризуется возрастом оборудования t; t=.

3. Определение управлений. В начале i-го шага, i= может быть выбрано одно из двух управлений: заменять или не заменять оборудование. Каждому варианту управления приписывается число

uс - если оборудование не заменяется;

uз - если оборудование заменяется.

4. Определение функции выигрыша на i-м шаге. Функция выигрыша на на i-м шаге - это прибыль от использования оборудования к концу на i-го года эксплуатации, t=, i=.

u1= uс - если оборудование в начале i-го года не заменяется;

u2= uз - если оборудование заменяется.

Таким образом, если оборудование не продается, то прибыль от его использования - это разность между стоимостью произведенной продукции и эксплуатационными издержками. При замене оборудования прибыль составляет разность между остаточной стоимость оборудования и стоимостью нового оборудования, к которой прибавляе6тся разность между стоимостью продукции и эксплуатационными издержками для нового оборудования, возраст которого в начале i-го шага составляет 0 лет.

5. Определение функции изменения состояния

u1 uс - если Xi=0

u2= uз - если Xi=1

6. Составление функционального уравнения для i=m.

7. Составление основного функционального уравнения

Где Wi(t) - прибыль от использования оборудования возраста t лет с i-го шага (с конца i-го года) до конца периода эксплуатации.

Wi+1(t+1) - прибыль от использования оборудования возраста t+1год с (i+1)-го шага до конца периода эксплуатации;

Таким образом, математическая модель задачи построена.

Алгоритм решения задачи

Введём обозначения:

t- возраст оборудования.

L(t) - производство продукции на оборудовании, возраст которого t лет.

R(t) - расходы на содержание оборудования.

P(t) - остаточная стоимость оборудования.

Р - стоимость нового оборудования

Fn(t)- прибыль от старого оборудования возраст которого t лет.

n-последний год.

на старом оборудовании (1)

Это функциональное уравнение

Форма входного документа

Данные могут быть занесены с помощью таблицы:

Таблица №1 . Данные входной информация.

По формуле

Описание программно-технических средств

Разработка программы производилась на языке программирования Borland

Delphi 7.0 при помощи операционной системы Microsoft Windows XP Professional

При разработке программы, использовались компоненты Delphi:

String Grid - для заполнения справочников и отображения результатов

Edit - для ввода значений

Button - для создания кнопки

Label - создание меток, для удобства использования

Image - изображения

MainMenu - Меню программы

OpenDialog - открыть диалог

При разработки программного обеспечения так же использовались следующие системные утилиты:

Антивирусные программа (Dr.Web 4.44)

Программы архиваторы (WinRar v3.45).

утилиты Microsoft Office (Microsoft Word, Excel).

графические редакторы (PhotoShop v CS3)

При разработке программного обеспечения использовался ПК со следующими характеристиками:

Процессор: Intel Pentium(R) 3.00 GHz

Оперативная память: 1Gb DDR2 PC 533

Видео карта: NVIDIA Gee Force FX 6600 128Mb

Жесткий диск: 200 Gb

Монитор: 17" 1280x1025@75Hz

Отладочный пример

найдём максимальную прибыль при замене оборудования через 2 года:

По формуле

Вывод: Максимальную прибыль в размере 215 единиц мы получим, если поменяем оборудование через 2 года на третий.

Описание программы

Программа «Решение задач о замене оборудования» предназначена для предприятий, занимающихся каким-либо родом деятельности, требующего использования определенного оборудования. В силу ряда причин, оборудование изнашивается физически, т.е. ломается и не подлежит ремонту или возникают такие неисправности, при которых проще купить новое оборудование, чем ремонтировать старое, либо изнашивается морально, т.е. темпы роста экономического развития отрасли производства этого оборудования очень велики. Таким образом, для того, чтобы «производство продукции» на таком оборудовании достигало максимального эффекта, его необходимо периодически менять. Эта программа подсчитывает количество лет, через которое нужно сменить оборудование, чтобы получить максимальную прибыль.

Для разработки программы «Решение задач о замене оборудования» был использован язык программирования Delphi 6. В настоящее время эта среда объектно-ориентированного программирования очень популярна, ее основой является язык Object Pascal. Она позволяет создавать приложения различной степени сложности - от простейших программ до профессиональных, предназначенных для работы с базами данных. Кроме того, помощь по программе оформлена в виде HTML-страниц с помощью программы Arachnophilia.

Вся работа с программой основана на работе с меню, с его описанием можно ознакомиться в пункте меню Помощь/Содержание/Работа с меню.

Данная программа создана при выполнении курсового проекта по предмету «Математические методы», на данную тему.

Известно, что оборудова­ние со временем изнашивается, стареет физически и морально. В процес­се эксплуатации, как правило, падает его производительность и растут эксплуатационные расходы на текущий ремонт. Со временем возникает необходимость замены оборудования, так как его дальнейшая эксплуата­ция обходится дороже, чем ремонт. Отсюда задача о замене может быть сформулирована так. В процессе работы оборудование дает ежегодно прибыль, требует эксплуатационных затрат и имеет остаточную стои­мость. Эти характеристики зависят от возраста оборудования. В любом году оборудование можно сохранить, продать по остаточной цене и при­обрести новое. В случае сохранения оборудования возрастают эксплуата­ционные расходы и снижается производительность. При замене нужны значительные дополнительные капитальные вложения. Задача состоит в определении оптимальной стратегии замен в плановом периоде, с тем чтобы суммарная прибыль за этот период была максимальной.

Для количественной формулировки задачи введем следующие обо­значения: r(t) - стоимость продукции, производимой за год на единице оборудования возраста t лет; u(t) - расходы, связанные с эксплуатацией этого оборудования; s(t) - остаточная стоимость оборудования возраста t лет; р - покупная цена оборудования; Т - продолжительность плано­вого периода; t = 0,1, 2,... , Т - номер текущего года.

Решение. Чтобы решить задачу, применим принцип оптимально­сти Р. Беллмана. Рассмотрим интервалы (годы) планового периода в по­следовательности от конца к началу. Введем функцию условно-опти­мальных значений функции цели Fk(t). Эта функция показывает мак­симальную прибыль, получаемую от оборудования возраста t лет за по­следние к лет планового периода. Здесь возраст оборудования рассмат­ривается в направлении естественного хода времени. Например, t = 0 соответствует использованию совершенно нового оборудования. Временные же шаги процесса нумеруются в обратном порядке. Напри­мер, при к = 1 рассматривается последний год планового периода, при к = 2 - последние два года и т. д., при к = Т - последние Т лет, т. е. весь плановый период. Направления изменения t и к показаны на рисунке.

В этой задаче систему составляет оборудование. Ее состояние ха­рактеризуется возрастом. Вектор управления - это решение в момент t = = 0,1, 2,... , Т о сохранении или замене оборудования. Для нахождения оптимальной политики замен следует проанализировать, согласно прин­ципу оптимальности, процесс от конца к началу. Для этого сделаем пред­положение о состоянии оборудования на начало последнего года (k = 1). Пусть оборудование имеет возраст t лет. В начале Т-го года имеются две возможности: 1) сохранить оборудование на Т-й год, тогда прибыль за последний год составит r(t) - u(t); 2) продать оборудование по остаточ­ной стоимости и купить новое, тогда прибыль за последний год будет равна s(t) - р + г(0) - u(0), где г(0) - стоимость продукции, выпущенной на новом оборудовании за первый год его ввода; u(0) - эксплуатацион­ные расходы в этом году. Здесь целесообразно разворачивать процесс от конца к началу. Для последнего года (к = 1) оптималь­ной политикой с точки зрения всего процесса будет политика, обеспе­чивающая максимальную прибыль только за последний год. Учитывая значение прибыли при различном образе действия (замена - сохране­ние), приходим к выводу, что решение о замене оборудования возраста t лет следует принять в случае, когда прибыль от нового оборудования на последнем периоде больше, чем от старого, т.е. при условии


Итак, для последнего, года оптимальная политика и максимальная прибыль F 1 {t) находятся из условия

Пусть к = 2, т. е. рассмотрим прибыль за два последних года. Де­лаем предположение о возможном состоянии t оборудования на начало предпоследнего года. Если в начале этого года принять решение о сохранении оборудования, то к концу года будет получена прибыль r(t) - u(t). На начало последнего года оборудование перейдет в состояние t + 1, и при оптимальной политике в последнем году оно принесет прибыль, равную F 1 (t + 1). Таким образом, общая прибыль за два года составит r(t) - u(t) + F 1 (t + 1). Если же в начале предпоследнего года будет при­нято решение о замене оборудования, то прибыль за предпоследний год составит s(t)-p+r(0)-u(0). Поскольку приобретено новое оборудование, на начало последнего года оно будет в состоянии t = 1. Следовательно, общая прибыль за последние два года при оптимальной политике в по­следнем году составит

Условно-оптимальной в последние два года будет политика, достав­ляющая максимальную прибыль:

Аналогично находим выражения для условно-оптимальной прибыли за три последних года, четыре и т. д. Общее функциональное уравнение примет вид

Таким образом, разворачивая весь процесс от конца к началу, получаем, что максимальная прибыль за плановый период Т составит F T (t 0). Так как начальное состояние to известно, из выражения для F T (t 0) находим оптимальное решение в начале первого года, потом вытекающее оптимальное решение для второго года и т.д. Обратимся к чи­словому примеру.

Разработать оптимальную политику замены оборудования при усло­виях:

1) стоимость r(t) продукции, производимой с использованием обо­рудования за год, и расходы u(t), связанные с эксплуатацией оборудова­ния, заданы таблицей;

2) ликвидационная стоимость машины не зависит от ее возраста и равна 2;

3) цена нового оборудования со временем не меняется и равна 15;

4) продолжительность планового периода 12 лет.

Итак, s(t) = 2, р = 15, Т = 12.

Запишем функциональные уравнения для F 1 (t) и F к (t) при числовых значениях нашего примера:

Пользуясь выражениями (8.9), (8.10), будем последовательно вычис­лять значения максимальной прибыли F к (t) и записывать их в специаль­ную таблицу (табл. 8.4). Первую строку получим, придавая параметру t в равенстве (8.9) значения 0,1,... ,12 и используя исходные данные табл. 8.3. Например, при t = 0

Заметим, что если прибыль от нового оборудования равна прибыли от старого, то старое лучше сохранить еще на год:


Из табл. 8.3 видно, что r(t) – u(t) с ростом t убывает. Поэтому при t > 9 оптимальной будет политика замены оборудования. Чтобы раз­личать, в результате какой политики получается условно-оптимальное значение прибыли, будем эти значения (до t = 9 включительно опти­мальной является политика сохранения) разграничивать жирной лини­ей. Для заполнения второй строки табл. 8.4 используем формулу (8.10). Для к = 2 получаем

Придадим параметру t значения 0,1,2,... ,12, значения r(t) и u(t) возьмем из табл. 8.3, а значения F 1 (t + 1) - из первой строки табл. 8.4. Для третьей строки расчетную формулу получим из равенства (8.10) при к = 3:

и т. д. Заполнив табл. 8.4, данные ее используем для решения постав­ленной задачи. Эта таблица содержит много ценной информации и позволяет решать все семейство задач, в которое мы погружали исходную задачу.

Пусть, например, в начале планового периода имеем оборудование возраста 6 лет. Разработаем "политику замен" на двенадцатилетний пе­риод, доставляющую максимальную прибыль. Информация для этого имеется в табл. 8.4. Максимальная прибыль, которую можно получить за 12 лет при условии, что вначале имелось оборудование возраста 6 лет, находится в табл. 8.4 на пересечении столбца t = 6 и строки F12(t); она составляет 180 единиц.

Значение максимальной прибыли F12(6) = 180 записано справа от ломаной линии, т.е. в области "политики замены". Это значит, что для достижения в течение 12 лет максимальной прибыли в начале первого года оборудование надо заменить. В течение первого года новое обору­дование постареет на год, т.е., заменив оборудование и проработав на нем 1 год, мы за 11 лет до конца планового периода будем иметь обо­рудование возраста 1 год. Из табл. 8.4 берем F11(l) = 173. Это значе­ние располагается в области "политики сохранения", т. е. во втором году планового периода надо сохранить оборудование возраста 1 год, и, про­работав на нем год, за 10 лет до конца планового периода будем иметь оборудование возраста 2 года.

Выясняем, что значение F10(2) = 153 помещено в области сохра­нения. Работаем на оборудовании еще год. Теперь до конца планового периода осталось 9 лет, а возраст оборудования составляет 3 года. Нахо­дим F9(3) = 136. Это область сохранения. Работаем на оборудовании еще год. Его возраст становится равным 4 годам. До конца планового перио­да остается 8 лет. Определяем F8(4) = 120. Это область замен. Заменяем оборудование на новое. Проработаем на нем в течение четвертого года. Оно постареет на год. До конца планового периода останется 7 лет. На­ходим F7(l) = 113. Это область сохранения. Продолжив подобные рассу­ждения, установим, что F6(2) = 93, F5(3) = 76 расположены в области сохранения, F4(4)=60 - в области замен, F3(l) = 53, F2(2) = 33, F1(3) = 16 - в области сохранения. Разработанную политику изобразим следующей цепочкой:

Таким образом, вместо поиска оптимальной "политики замен" на плановый период в 12 лет мы погрузили исходную задачу в семейство подобных, когда период меняется от 1 до 12. Решение ведется по прин­ципу оптимальности для любого состояния системы, независимо от ее предыстории. Оптимальная "политика замен" является оптимальной на оставшееся число лет. Табл. 8.4 содержит информацию для решения и других задач. Из нее можно найти оптимальную стратегию замены оборудования с лю­бым начальным состоянием от 0 до 12 лет и на любой плановый период, не превосходящий 12 лет. Например, найдем "политику замен" на пла­новый период в 10 лет, если вначале имелось оборудование пятилетнего возраста:

Задачу о замене оборудования мы упростили. На практике же дета­лями не пренебрегают. Легко учесть, например, случай, когда остаточная стоимость оборудования s(t) зависит от времени. Может быть принято решение о замене оборудования не новым, а уже проработавшим некото­рое время. Не составляет также труда учесть возможность капитального ремонта старого оборудования. При этом в понятие "состояние" системы необходимо включить время последнего ремонта оборудования. Функция Fk(ti,t2) выражает прибыль за последние к лет планового периода при условии, что вначале имелось оборудование возраста t1, прошедшее ка­питальный ремонт после t2 лет службы. Характеристики г, s и и также будут функциями двух переменных t1 и t2.

Лекция 3. Симплексные таблицы. Алгоритм симплексного метода.

§ 3 СИМПЛЕКСНЫЙ МЕТОД

3.1. Общая идея симплекс–метода. Геометрическая интерпретация

Графический способ применим к весьма узкому классу задач линейного программирования: эффективно им можно решать задачи, содержащие не более двух переменных. Были рассмотрены основные теоремы линейного программи­рования, из которых следует, что если задача линейного програм­мирования имеет оптимальное решение, то оно соответствует хотя бы одной угловой точке многогранника решений и совпадает, по крайней мере, с одним из допустимых базисных решений систе­мы ограничений. Был указан путь решения любой задачи линейного программирования: перебрать конечное число допустимых базисных решений системы ограни­чений и выбрать среди них то, на котором функция цели прини­мает оптимальное решение. Геометрически это соответствует пе­ребору всех угловых точек многогранника решений. Такой пере­бор в конце концов приведет к оптимальному решению (если оно существует), однако его практическое осуществление связано с огромными трудностями, так как для реальных задач число допус­тимых базисных решений хотя и конечно, но может быть чрезвы­чайно велико.

Число перебираемых допустимых базисных решений можно сократить, если производить перебор не беспорядочно, а с учетом изменений линейной функции, т.е. добиваясь того, чтобы каждое следующее решение было "лучше" (или, по крайней мере, "не хуже"), чем предыдущее, по значениям линейной функции (увеличение ее при отыскании максимума , уменьшение– при отыскании минимума
). Такой перебор позволяет сократить число шагов при отыска­нии оптимума. Поясним это на графическом примере.

Пусть область допустимых решений изображается многоуголь­ником ABCDE . Предположим, что его угловая точка А соответствует исходному допустимому базисному решению. При беспорядочном переборе пришлось бы испытать пять допустимых базисных решений, соответствующих пяти угловым точкам мно­гоугольника. Однако из чертежа видно, что после вершины А выгодно перейти к соседней вершине В, а затем – к оптимальной точке С. Вместо пяти перебрали только три вершины, последовательно улучшая линейную функцию.

Идея последовательного улучшения решения легла в основу универсального метода решения задач линейного программирова­ния – симплексного метода или метода последовательного улучшения плана.

Геометрический смысл симплексного метода состоит в последо­вательном переходе от одной вершины многогранника ограничений (называемой первоначальной) к соседней, в которой линейная функция принимает лучшее (по крайней мере, не худшее) значение по отношению к цели задачи; до тех пор, пока не будет найдено оптимальное решение – вершина, где достигается оптимальное значение функции цели (если задача имеет конечный оптимум).

Впервые симплексный метод был предложен американским ученым Дж. Данцигом в 1949 г., однако еще в 1939 г. идеи метода были разработаны российским ученым Л.В. Канторовичем.

Симплексный метод, позволяющий решить любую задачу ли­нейного программирования, универсален. В настоящее время он используется для компьютерных расчетов, однако несложные при­меры с применением симплексного метода можно решать и вручную.

Для реализации симплексного метода – последовательного улучшения решения – необходимо освоить три основных элемента:

способ определения какого-либо первоначального допустимого базисного решения задачи;

правило перехода к лучшему (точнее, не худшему) решению;

критерий проверки оптимальности найденного решения.

Для использования симплексного метода задача линейного программирования должна быть приведена к каноническому виду, т.е. система ограничений должна быть представлена в виде урав­нений.

В литературе достаточно подробно описываются: нахождение начального опорного плана (первоначального допустимого базисного решения), тоже – методом искусственного базиса, нахождение оптимального опорного плана, решение задач с помощью симплексных таблиц.

3.2. Алгоритм симплекс–метода.

Рассмотрим решение ЗЛП симплекс-ме­тодом и изложим ее применительно к задаче максимизации.

1. По условию задачи составляется ее математическая мо­дель.

2. Составленная модель преобразовывается к канонической форме. При этом может выделиться базис с начальным опорным планом.

3. Каноническая модель задачи записывается в форме симп­лекс-таблицы так, чтобы все свободные члены были неотрицатель­ными. Если начальный опорный план выделен, то переходят к пункту 5.

Симплекс таблица: вписывается система ограничительных уравнений и целевая функция в виде выражений, разрешенных относительно начального базиса. Строку, в которую вписаны коэффициенты целевой функции
, называют
–строкой или строкой целевой функции.

4. Находят начальный опорный план, производя симплексные преобразования с положительными разрешающими элементами, отвечающими минимальным симплексным отношениям, и не при­нимая во внимание знаки элементов
–строки. Если в ходе преоб­разований встретится 0-строка, все элементы которой, кроме сво­бодного члена, нули, то система ограничительных уравнений задачи несовместна. Если же встретится 0-строка, в которой, кроме свободного члена, других положительных элементов нет, то систе­ма ограничительных уравнений не имеет неотрицательных ре­шений.

Приведение системы (2.55), (2.56) к новому базису будем на­зывать симплексным преобразованием . Если симплексное преобра­зование рассматривать как формальную алгебраическую операцию, то можно заметить, что в результате этой операции происходит перераспределение ролей между двумя переменными, входя­щими в некоторую систему линейных функций: одна переменная из зависимых переходит в независимые, а другая наоборот – из независимых в зависимые. Такая операция известна в алгебре под названием шага жорданова исключения.

5. Найденный начальный опорный план исследуется на опти­мальность:

а) если в
–строке нет отрицательных элементов (не считая свободного члена), то план оптимален. Если при этом нет и нуле­вых, то оптимальный план единственный; если же есть хотя бы один нулевой, то оптимальных планов бесконечное множество;

б) если в
–строке есть хотя бы один отрицательный элемент, которому соответствует столбец неположительных элементов, то
;

в) если в
–строке есть хотя бы один отрицательный элемент, а в его столбце есть хотя бы один положительный, то можно пе­рейти к новому опорному плану, более близкому к оптимальному. Для этого указанный столбец надо назначить разрешающим, по минимальному симплексному отношению найти разрешающую строку и выполнить симплексное преобразование. Полученный опорный план вновь исследовать на оптимальность. Описанный процесс повторяется до получения оптимального плана либо до установления неразрешимости задачи.

Столбец коэффициентов при переменной, включаемой в базис, называют разрешаю­щим. Таким образом, выбирая переменную, вводимую в базис (или выбирая разрешающий столбец) по отрицательному эле­менту
–строки, мы обеспечиваем возрастание функции
.

Немного сложней определяется переменная, подлежащая ис­ключению из базиса. Для этого составляют отношения свободных членов к положительным элементам разрешающего столбца (та­кие отношения называют симплексными) и находят среди них наименьшее, которое и определяет строку (разрешающую), содержащую исключаемую переменную. Выбор переменной, ис­ключаемой из базиса (или выбор разрешающей строки), по ми­нимальному симплексному отношению гарантирует, как уже уста­новлено, положительность базисных компонент в новом опорном плане.

В пункте 3 алгоритма предполагается, что все элементы столбца свободных членов неотрицательны. Это требование не обя­зательно, но если оно выполнено, то все последующие симплексные преобразования производятся только с положительными разре­шающими элементами, что удобно при расчетах. Если в столбце свободных членов есть отрицательные числа, то разрешающий элемент выбирают следующим образом:

1) просматривают строку, отвечающую какому-либо отрица­тельному свободному члену, например –строку, и выбирают в ней какой-либо отрицательный элемент, а соответствующий ему стол­бец принимают за разрешающий (предполагаем, что ограничения задачи совместны);

2) составляют отношения элементов столбца свободных чле­нов к соответствующим элементам разрешающего столбца, имею­щим одинаковые знаки (симплексные отношения);

3) из симплексных отношений выбирают наименьшее. Оно и определит разрешающую строку. Пусть ею будет, например, р –строка;

4) на пересечении разрешающих столбца и строки находят разрешающий элемент. Если разрешающим оказался элемент –строки, то после симплексного преобразования свободный член этой строки станет положительным. В противном случае на сле­дующем шаге вновь обращаются к–строке. Если задача разреши­ма, то через некоторое число шагов в столбце свободных членов не останется отрицательных элементов.

Если в форму ЗЛП облечена некоторая реальная производст­венная ситуация, то дополнительные переменные, которые прихо­дится вводить в модель в процессе преобразования ее к каноничес­кой форме, всегда имеют определенный экономический смысл.

Идея симплекс– метода

Симплекс– метод

В предыдущем разделе было показано, что если задача линейного программирования имеет оптимальное решение, то одним из оптимальных решений является допустимое базисное решение ее системы ограничений, которое соответствует некоторой угловой точке многогранника допустимых решений системы. Было показано, как с помощью конечного перебора базисных решений системы ограничений задачи, найти это оптимальное решение. Однако с ростом размерности n системы ограничений задачи объем вычислений решения задачи методом полного перебора базисных решений растет экспоненциально и становится непригодным на практике. Можно организовать перебор только допустимых базисных решений и число перебираемых решений резко сократить, если каждое следующее допустимое базисное решение выбирать так, чтобы соответствующее значение целевой функции улучшалось или хотя бы не ухудшалось. Такой подход позволяет сократить число шагов при отыскании оптимального базисного решения. Эту идею поясним графически.

Пусть многоугольник ABCDEFGH изображает множество допустимых решений ЗЛП с двумя переменными, а вектор градиент целевой функции.

Нужно найти точку этого многоугольника, в которой целевая функция принимает наименьшее значение. Пусть определено начальное допустимое базисное решение задачи, соответствующее угловой точке B. При полном переборе всех допустимых базисных решений придется исследовать восемь таких решений, соответствующих восьми угловым точкам многоугольника. Однако из рисунка видно, что, учитывая направление градиента , выгоднее перейти к соседней вершине C, затем к соседней вершине D, которой соответствует оптимальное базисное решение задачи. Таким образом, вместо восьми решений придется перебрать только три допустимых базисных решения.

Идея последовательного улучшения решения и положена в основу универсального метода решения задач линейного программирования симплекс–метода.

Геометрический смысл симплекс–метода состоит в том, что выполняется последовательный переход от одной вершины многогранника допустимых решений задачи к соседней, в которой целевая функция принимает значение не худшее, чем в предыдущей вершине. Этот переход продолжается до тех пор, пока не будет найдено оптимальное решение или не будет обнаружено, что задача его не имеет.

Впервые симплекс–метод и его название были предложены американским математиком Джоном Данцигом в 1947 году, хотя идеи метода были опубликованы российским математиком Л.В. Канторовичем еще в 1939 году в статье «Математические методы организации и планирования производства».

Симплекс–метод состоит из трех основных элементов.

  • Ранее было показано, что если задача линейного программирования имеет оптимальное решение, то одним из оптимальных решений является допустимое базисное решение ее системы ограничений, которое соответствует некоторой угловой точке многогранника допустимых решений системы.

  • Было показано, как с помощью конечного перебора базисных решений системы ограничений задачи, найти это оптимальное решение. Однако с ростом размерности n системы ограничений задачи объем вычислений решения задачи методом полного перебора базисных решений растет экспоненциально и становится непригодным на практике.

  • Можно организовать перебор только допустимых базисных решений и число перебираемых решений резко сократить, если каждое следующее допустимое базисное решение выбирать так, чтобы соответствующее значение целевой функции улучшалось или хотя бы не ухудшалось. Такой подход позволяет сократить число шагов при отыскании оптимального базисного решения. Эту идею поясним графически.


Пусть многоугольник ABCDEFGH изображает множество допустимых решений ЗЛП с двумя переменными, а вектор N - градиент целевой функции.

  • Нужно найти точку этого многоугольника, в которой целевая функция принимает наименьшее значение.

  • Пусть определено начальное допустимое базисное решение задачи, соответствующее угловой точке B.

  • При полном переборе всех допустимых базисных решений придется исследовать восемь таких решений, соответствующих восьми угловым точкам многоугольника.

  • Однако из рисунка видно, что, учитывая направление градиента N, выгоднее перейти к соседней вершине C, затем к соседней вершине D, которой соответствует оптимальное базисное решение задачи.

  • Таким образом, вместо восьми решений придется перебрать только три допустимых базисных решения.


  • Идея последовательного улучшения решения и положена в основу универсального метода решения задач линейного программирования –симплекс–метода.

  • Геометрический смысл симплекс–метода состоит в том, что выполняется последовательный переход от одной вершины многогранника допустимых решений задачи к соседней, в которой целевая функция принимает значение не худшее, чем в предыдущей вершине. Этот переход продолжается до тех пор, пока не будет найдено оптимальное решение или не будет обнаружено, что задача его не имеет.

  • Впервые симплекс–метод и его название были предложены американским математиком Джоном Данцигом в 1947 году, хотя идеи метода были опубликованы российским математиком Л.В. Канторовичем еще в 1939 году в статье «Математические методы организации и планирования производства».


Симплекс–метод состоит из трех основных элементов:

  • определения некоторого первоначального допустимого базисного решения задачи;

  • правила перехода к следующему не худшему допустимому базисному решению;

  • проверки оптимальности найденного решения.

  • Симплекс–метод применяется к задаче линейного программирования, записанной в канонической форме.


Симплексные преобразования системы линейных уравнений

  • Рассмотрим ЗЛП в канонической форме. Пусть задана система линейных уравнений:

  • Нужно найти неотрицательное решение этой системы, которое минимизирует линейную функцию

  • Обозначим – матрицу системы уравнений (1),

  • – расширенную матрицу этой системы.


Будем рассматривать случай, когда ранги матриц A и B равны: , т.е. когда система (1) имеет бесконечное множество решений. Наша задача заключается в том, чтобы выяснить, есть ли в этом случае оптимальные решения задачи и как их найти.

  • Для определенности предположим, что линейно независимыми являются первые r столбцов матрицы A, тогда систему (1) можно, применяя метод исключения Гаусса, преобразовать к виду:

  • Эта система равносильна системе уравнений (1). Столбцы коэффициентов

  • образуют базис системы столбцов матрицы системы (2) и поэтому переменные являются базисными, а набор – базисным набором.

  • Для краткости базисный набор переменных также будем называть базисом, имея в виду соответствующий базис столбцов коэффициентов. Остальные переменные являются свободными.


Выразим в системе (3) базисные переменные через свободные, получим систему (4):

  • (4)

  • Принято говорить, что (4) – общее решение системы уравнений (1). Придавая свободным переменным нулевые значения, определим значения базисных переменных и построим базисное решение, соответствующее построенному базисному набору переменных.

  • Итак, базисное решение системы (1).

  • В дальнейшем будет показано, что, если система (1) имеет допустимые решения, то ее можно так преобразовать к виду (3), что будет выполняться условие (5)

  • Поэтому мы будем считать, что условие (5) выполняется. Тогда базисное решение является допустимым базисным решением.


Используя равенства (4), можно функцию f выразить через свободные переменные: (6) Теперь можно вычислить значение функции f, соответствующее базисному решению

  • Осуществляя идею симплекс–метода, научимся переходить от одного допустимого базисного решения к другому. Для этого одна из базисных переменных xi удаляется из базиса и заменяется некоторой свободной переменной xj .

  • При этом изменении базиса система уравнений (4) и линейная функция (6) преобразуются. Для этого i-ое уравнений системы (3) нужно разрешить относительно xj.

  • Получится уравнение:

  • Подставив вместо xj его выражение из (7) в остальные уравнения системы (4) и в функцию (6), мы получим новую систему, равносильную системе (1), которая будет разрешена относительно нового базиса


Коэффициент aij, указывающий, что в базисе происходит замена xi на свободную переменную xj, называют разрешающим элементом симплекс-таблицы. Из равенства (7) следует, что

  • Так как новое базисное решение должно быть допустимым (неотрицательным),

  • то должно выполняться условие, а значит, . Иначе говоря, разрешающий элемент aij (xi – свободная переменная) в j–том столбце надо выбирать положительным. Описанное преобразование назовем симплексным, если разрешающий элемент aij выбирается по следующему правилу:

  • 1. Элемент aij выберем из такого j – ого столбца, в котором есть положительные элементы.

  • 2. Если в этом столбце есть несколько положительных элементов, то составим отношения свободных членов bk к коэффициентам akj>0.

  • Из всех отношений выберем наименьшее. Пусть это будет :

  • (8)

  • Знаменатель этой дроби и выберем разрешающим элементом. Если несколько из этих отношений будут минимальными (равными), то выберем любой из этих знаменателей.


Теорема. Если в системе линейных уравнений (4) все свободные члены неотрицательны, то после применения симплексного преобразования они останутся неотрицательными.

  • Доказательство. Обозначим новые свободные члены после симплексного преобразования в (4) через

  • Тогда при

  • Если akj>0, то из (8) следует, что

  • Если akj

  • Если akj =0, то

  • Следствие. С помощью симплексного преобразования можно перейти от одного допустимого базисного решения ЗЛП к другому допустимому базисному решению этой задачи.





Top