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

  • 20.04.2019

Для начала работы требуется, чтобы заданная система ограничений выражалась равенствами, причём в этой системе ограничений должны быть выделены базисные неизвестные. Решение задачи симплекс-методом распадается на ряд шагов. На каждом шаге от данного базиса Б переходят к другому, новому базису Б 1 с таим расчётом, чтобы значение функции Z уменьшилось, т.е. . Для перехода к новому базису из старого базиса удаляется одна из переменных и вместо нее вводится другая из числа свободных. После конечного числа шагов находится некоторый базис Б (k) , для которого есть искомый минимум для линейной функцииZ, а соответствующее базисное решение является оптимальным либо выясняется, что задача не имеет решения.

4.1 Алгоритм симплекс-метода.

Рассмотрю систему ограничений и линейную форму вида:

(4.1)

Используя метод Жордана-Гауса, приведём записанную систему к виду, где выделены базисные переменные.

Введём условные обозначения:

–базисные переменные;

–свободные переменные.

(4.4)

По последней системе ограничений построим табл. 4.1.

Таблица 4.1

Симплекс-таблица

Свободные

Базисные

неизвестные

Свободный

Данная таблица называется симплекс-таблицей. Все дальнейшие преобразования связаны с изменением содержания этой таблицы.

Алгоритм симплекс-метода сводится к следующему.

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

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

3. На пересечении разрешающих строки и столбца находится разрешающий элемент.

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

5. После нахождения разрешающего элемента переходят к следующей таблице. Неизвестные переменные, соответствующие разрешающей стоке и столбцу, меняют местами. При этом базисная переменная становится свободной переменной, и наоборот. Симплекс таблица преобразована следующим образом

Таблица 4.2

Симплекс-таблица

Свободные

Базисные

неизвестные

Свободный

6. Элемент табл. 4.2 соответствующий разрешающему элементу табл. 4.1, равен обратной величине разрешающего элемента.

7. Элементы строки табл. 4.2, соответствующие элементам разрешающей стоки табл. 4.1, получаются путём деления соответствующих элементов табл. 4.1 на разрешающий элемент.

8. Элементы столбца табл. 4.2, соответствующие элементам разрешающего столбца табл. 4.1, получаются путём деления соответствующих элементов табл. 4.1 на разрешающий элемент и берутся с противоположным знаком.

9. Остальные элементы вычисляются по правилу прямоугольника: мысленно вычерчиваем прямоугольник в табл.4.2, одна вершина которого совпадает с разрешающим элементом, а другая – с элементом, образ которого мы ищем; остальные две вершины определяются однозначно. Тогда искомый элемент табл. 4.2 будет равен соответствующему элементу табл. 4.1 минус дробь в знаменателе который стоит разрешающий элемент, а в числителе произведение элементов из двух неиспользованных вершин прямоугольника.

10. Как только получится таблица, в которой в последней стоке все элементы отрицательны, считается, что минимум найден. Минимальное значение функции равно свободному члену в строке целевой функции, а оптимальное решение определяется свободными членами при базисных переменных. Все свободные переменные в этом случае равны нулю.

11. Если в разрешающем столбце все элементы отрицательны, то задача не имеет решений (минимум не достигается).

5. Методы нахождения опорного решения задачи линейного программирования.

5.1. Метод искусственного базиса.

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

При этом , тогда, положив свободные неизвестныеравными нулю, получаем опорное решение.

Рассмотрю метод нахождения опорного решения, основанный на введении искусственных переменных. Для этого запишем задачу линейного программирования в общем виде. Будем рассматривать задачу с числом неизвестных иограничениями:

(5.1)

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

(5.2)

Системы (5.1) и (5.2) будут эквивалентны в том случае, если все , длябудут равны 0. Кроме того, считаю, что вседля. В противном случае соответствующие ограничения из системы (5.1) умножим на – 1. Для того чтобыбыли равны 0, мы должны преобразовать задачу таким образом, чтобы все искусственные переменныеперешли в свободные неизвестные.

В этом случае система (5.2) после преобразования примет вид:

(5.3)

От системы (5.2) к системе (5.3) всегда можно перейти шагами симплекс-метода. При таком переходе в качестве линейной формы рассматривают функцию

равную сумме искусственных переменных. Переход заканчивают, когда и все искусственные переменныепереведены в свободные неизвестные.

Анализ вариантов решений

1. Если , а всепереведены в свободные переменные, то задача не имеет положительного решения.

2. Если , а частьосталась в базисе, то для перевода их в свободные необходимо применять специальные приёмы.

В симплекс-таблице, соответствующей системе (5.3), после того как , а все- свободные, вычёркивают строку дляи столбцы дляи решают задачу для исходной линейной формы.

5.2. Второй алгоритм отыскания опорного плана.

Пусть задача линейного программирования записана в каноническом виде:

(5.5)

Построим первую таблицу Жордана-Гаусса для задач (5.5) и (5.6). Для единообразия вычислительной процедуры к исходной таблице приписываем строку целевой функции:

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

Алгоритм метода

1. Запишем задачу в форме (5.7), при этом все элементы столбца свободных членов должны быть неотрицательны,. Уравнения системы (5.5), в которых свободные члены отрицательны, предварительно нужно умножить на – 1.

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

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

4. В процессе преобразований вычёркиваем строки, состоящие из одних нулей.

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

Пояснение. В п.1.1 алгоритма предполагается, что все элементы столбца свободных членов неотрицательны. Это требование необязательно. В случае когда в столбце свободных членов встречаются отрицательные числа, будем пользоваться теоремой.

Теорема. Если разрешающий элемент выбирать по наименьшему положительному симплекс-отношению, то после шага Жордана-Гаусса свободный член в разрешающей строке становится положительным, а остальные члены сохраняют свой знак.

Выбор разрешающего элемента производят иначе, а именно.

1. Просматривают строку, соответствующую какому-либо отрицательному свободному члену. Выбирают в ней какой-либо отрицательный элемент – соответствующий этому элементу столбец будет разрешающим.

2. Выбор разрешающего элемента производится по минимальному положительному симплекс-отношению. Если задача разрешима, то через конечное число шагов получают первое допустимое решение и можно применять симплекс-метод.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Нахождение исходного опорного плана, канонический вид ЗЛП

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

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

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

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

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

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

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

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

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

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

58. Основная теорема симплекс метода.

???????????????????????????????????????????????????????????????????????

59. Альтернативный оптимум в ЗЛП, вырожденность в ЗЛП.

Вырожденность в задачах линейного программирования

Рассматривая симплекс-метод, мы предполагали, что задача линейного программирования является невырожденной, т.е. каждый опорный план содержит ровно m положительных компонент, где m - число ограничений в задаче. В вырожденном опорном плане число положительных компонент оказывается меньше числа ограничений: некоторые базисные переменные, соответствующие данному опорному плану, принимают нулевые значения. Используя геометрическую интерпретацию для простейшего случая, когда n - m = 2 (число небазисных переменных равно 2), легко отличить вырожденную задачу от невырожденной. В вырожденной задаче в одной вершине многогранника условий пересекается более двух прямых, описываемых уравнениями вида xi = 0. Это значит, что одна или несколько сторон многоугольника условий стягиваются в точку. Аналогично при n - m = 3 в вырожденной задаче в одной вершине пересекается более 3-х плоскостей xi = 0. В предположении о невырожденности задачи

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

вырожденной задаче может достигаться на нескольких индексах сразу (для нескольких строк). В этом случае в находимом опорном плане несколько базисных переменных будут нулевыми. Если задача линейного программирования оказывается вырожденной, то при плохом выборе вектора условий, выводимого из базиса, может возникнуть бесконечное движение по базисам одного и того же опорного плана. Это - так называемое явление зацикливания. Хотя в практических задачах линейного программирования зацикливание явлеется довольно редким, возможность его не исключена. Один из приемов борьбы с вырожденностью состоит в преобразовании задачи путем "незначительного" изменения вектора правых частей системы ограничений на величины таким образом, чтобы задача стала невырожденной, и, в то же время, чтобы это изменение не повлияло реально на оптимальный план задачи. Чаще реализуемые алгоритмы включают в себя некоторые простые правила, снижающие вероятность возникновения зацикливания или его преодоления. Пусть переменную xj необходимо сделать базисной. Рассмотрим

множество индексов E0, состоящее из тех i, для которых достигается. Множество индексов i, для которых выполняется данное условие обозначим через E0,. Если E0, состоит из одного элемента, то из базиса исключается вектор условий Ai (переменная xi делается небазисной). Если E0 состоит более чем из одного элемента, то составляется множество E1, которое состоит из , на которых достигается . Если E1 состоит из одного индекса k, то из базиса выводится переменная xk. В противном случае составляется множество E2 и т.д. Практически правилом надо пользоваться, если зацикливание уже обнаружено.

Альтернативный оптимум в ЗЛП???????????????????????????

60. Метод искусственного базиса. М-задача. Теорема о связи между решениями исходной задачи и М-задачи.

Метод искусственного базиса.

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

max{F(x)=∑cixi|∑ajixi=bj, j=1,m; xi≥0}.

В ограничения и в функцию цели вводят так называемые «искусственные переменные» Rj следующим образом:

∑ajix+Rj=bj, j=1,m;F(x)=∑cixi-M∑Rj

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

Симплекс-таблица, которая составляется в процессе решения, используя метод искусственного базиса, называется расширенной. Она отличается от обычной тем, что содержит две строки для функции цели: одна – для составляющей F = ∑cixi, а другая – для составляющей M ∑Rj Рассмотрим процедуру решения задачи на конкретном примере.

Пример 1. Найти максимум функции F(x) = -x1 + 2x2 - x3 при ограничениях:

x1≥0, x2≥0, x3≥0 .

Применим метод искусственного базиса. Введем искусственные переменные в ограничения задачи

2x1 + 3x2 + x3 + R1 = 3;

x1 + 3x3 + R2 = 2 ;

Функция цели F(x)-M ∑Rj= -x1 + 2x2 - x3 - M(R1+R2).

Выразим сумму R1 + R2 из системы ограничений: R1 + R2 = 5 - 3x1 - 3x2 - 4x3, тогда F(x) = -x1 + 2x2 - x3 - M(5 - 3x1 - 3x2 - 4x3) .

При составлении первой симплекс-таблицы (табл. 1) будем полагать, что исходные переменные x1, x2 , x3 являются небазисными, а введенные искусственные переменные – базисными. В задачах максимизации знак коэффициентов при небазисных переменных в F- и M-строках изменяется на противоположный. Знак постоянной величины в M-строке не изменяется. Оптимизация проводится сначала по M-строке. Выбор ведущих столбца и строки, все симплексные преобразования при испльзовании метода искусственного базиса осуществляются как в обычном симплекс-методе.

Максимальный по абсолютному значению отрицательный коэффициент (-4) определяет ведущий столбец и переменную x3, которая перейдет в базис. Минимальное симплексное отношение (2/3) соответствует второй строке таблицы, следовательно, переменная R2 должна быть из базиса исключена. Ведущий элемент обведен контуром.

В методе искусственного базиса искусственные переменные, исключенные из базиса, в него больше не возвращаются, поэтому столбцы элементов таких переменных опускаются. Табл. 2. сократилась на 1 столбец. Осуществляя пересчет этой таблицы, переходим к табл. 3., в которой строка M обнулилась, ее можно убрать. После исключения из базиса всех искусственных переменных получаем допустимое базисное решение исходной задачи, которое в рассматриваемом примере является оптимальным:

x1=0; x2=7/9; Fmax=8/9.

Если при устранении M-строки решение не является оптимальным, то процедура оптимизации продолжается и выполняется обычным симплекс-методом. Рассмотрим пример, в котором присутствуют ограничения всех типов:≤,=,≥

Условие задачи

Найти оптимальные величины производства продукции видов А, Б и В. Затраты сырья на единицу продукции: А – 5, Б – 2, В – 4. Объем сырья – 2000 единиц. Затраты оборудования на единицу продукции: А – 4, Б – 5, В – 4. Объем оборудования – 1000 единиц. Прибыль от реализации единицы продукции: А – 10, Б – 8, В – 12. Критерий – максимум прибыли предприятия. Производство продукции А должно быть не менее 100 ед. Производство продукции Б должно быть не менее 50 ед.

Решение задачи симплекс М методом

1) Определение оптимального плана производства

Пусть x1, x2, x3 - количество произведенной продукции вида А, Б, В, соответственно. Тогда математическая модель задачи имеет вид:

F = 10·x1 + 8·x2 + 12·x3 –>max

Вводим дополнительные переменные x4 ≥ 0, x5 ≥ 0, x6 ≥ 0, x7 ≥ 0, чтобы неравенства преобразовать в равенства.

Чтобы выбрать начальный базис, вводим искусственные переменные x8 ≥ 0, x9 ≥ 0 и очень большое число M (M –> ∞). Решаем М методом.

F = 10·x1 + 8·x2 + 12·x3 + 0·x4 + 0·x5 + 0·x6 + 0·x7– M·x8– M·x9 –>max

В качестве базиса возьмем x4 = 2000; x5 = 1000; x8 = 100; x9 = 50.

Данные заносим в симплекс таблицу

Симплекс таблица № 1

Целевая функция:

0 · 2000 + 0 · 1000 + (– M) · 100 + (– M) · 50 = – 150M

Вычисляем оценки по формуле:

Δ1 = 0 · 5 + 0 · 4 + (– M) · 1 + (– M) · 0 – 10 = – M – 10

Δ2 = 0 · 2 + 0 · 5 + (– M) · 0 + (– M) · 1 – 8 = – M – 8

Δ3 = 0 · 4 + 0 · 4 + (– M) · 0 + (– M) · 0 – 12 = – 12

Δ4 = 0 · 1 + 0 · 0 + (– M) · 0 + (– M) · 0 – 0 = 0

Δ5 = 0 · 0 + 0 · 1 + (– M) · 0 + (– M) · 0 – 0 = 0

Δ6 = 0 · 0 + 0 · 0 + (– M) · (–1) + (– M) · 0 – 0 = M

Δ7 = 0 · 0 + 0 · 0 + (– M) · 0 + (– M) · (–1) – 0 = M

Δ2 = 0 · 0 + 12 · 0 + 10 · 0 + 8 · 1 – 8 = 0

Δ3 = 0 · 0 + 12 · 1 + 10 · 0 + 8 · 0 – 12 = 0

Δ4 = 0 · 1 + 12 · 0 + 10 · 0 + 8 · 0 – 0 = 0

Δ5 = 0 · (–1) + 12 · 1/4 + 10 · 0 + 8 · 0 – 0 = 3

Δ6 = 0 · 1 + 12 · 1 + 10 · (–1) + 8 · 0 – 0 = 2

Δ7 = 0 · (–3) + 12 · 5/4 + 10 · 0 + 8 · (–1) – 0 = 7

Поскольку отрицательных оценок нет, то план оптимален.

Решение задачи: x1 = 100; x2 = 50; x3 = 175/2 = 87.5; x4 = 1050; x5 = 0; x6 = 0; x7 = 0; Fmax = 2450

Ответ: x1 = 100; x2 = 50; x3 = 175/2 = 87.5; x4 = 1050; x5 = 0; x6 = 0; x7 = 0; Fmax = 2450То есть необходимо произвести x1 = 100 единиц продукции вида А, x2 = 50 единиц продукции вида Б и x3 = 87,5 единиц продукции вида В. Максимальная прибыль при этом составит Fmax = 2450 единиц.

Теорема о связи между решениями исходной задачи и М-задачи.

???????????????????????

Для разрешения выполнения апплета на вашем компьютере надо сделать следующее - нажать кнопку Пуск>Панельуправления>Программы>Java. В окне Java Control Panel выбираем вкладку Security (Безопастность) нажимаем кнопку Edit Site List, кнопку add и вставляем в свободное поле путь к этой страницы из адресной строки браузера. Далее нажимаем кнопки ОК, после этого перезагружаем компьютер.

Для запуска апплета нажмите на кнопку "Simplex". Если над этой строкой не видна кнопка "Simplex", то на компьютере не установлена Java.

    После нажатия на кнопку « Simplex » выводится первое окно для ввода числа переменных и числа ограничений задачи на симплекс-метод.

    После нажатия на кнопку « ok » выводится окно для ввода остальных данных задачи на симплекс-метод: режима отображения (десятичные дроби или обыкновенные), тип критерия задачи min или max , ввод коэффициентов целевой функции и коэффициентов системы ограничений со знаками « ≤ », « ≥ » или « = », ограничения вида х i ≥ 0 вводить не надо, их учитывает в своем алгоритме.

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

Замеченные ошибки и комментарии по работе апплета присылайте на [email protected] или звоните 8 962 700 77 06, за что мы будем Вам очень благодарны.

Программа М-метод

Программа для решения транспортной задачи

Здесь приведено ручное (не апплетом) решение двух задач симплекс-методом (аналогичным решению апплетом) с подробными объяснениями для того, чтобы понять алгоритм решения задач. Первая задача содержит знаки неравенства только " ≤ " (задача с начальным базисом), вторая может содержить знаки " ≥ ", " ≤ " или " = " (задача с искусственным базисом), они решаются по разному.

Симплекс-метод, решение задачи с начальным базисом

1)Симплекс-метод для задачи с начальным базисом (все знаки неравенств-ограничений " ≤ ").

Запишем задачу в канонической форме, т.е. ограничения-неравенства перепишем в виде равенств, добавляя балансовые переменные:

Эта система является системой с базисом (базис s 1 , s 2 , s 3 , каждая из них входит только в одно уравнение системы с коэффициентом 1), x 1 и x 2 - свободные переменные. Задачи, при решении которых применяется симплекс-метод, должны обладать следующими двумя свойствами:
-система ограничений должна быть системой уравнений с базисом;
-свободные члены всех уравнений в системе должны быть неотрицательны.

Полученная система - система с базисом и ее свободные члены неотрицательны, поэтому можно применить симплекс-метод. Составим первую симплекс-таблицу (Итерация 0), т.е. таблицу коэффициентов целевой функции и системы уравнений при соответствующих переменных. Здесь "БП" означает столбец базисных переменных, «Решение» - столбец правых частей уравнений системы. Решение не является оптимальным, т.к. в z – строке есть отрицательные коэффициенты.

итерация 0

БП

Решение Отношение

Для улучшения решения перейдем к следующей итерации, получим следующую симплекс-таблицу. Для этого надо выбрать разрешающий столбец , т.е. переменную, которая войдет в базис на следующей итерации. Он выбирается по наибольшему по модулю отрицательному коэффициенту в z-строке (в задаче на максимум) – в начальной итерации это столбец x 2 (коэффициент -6).

Затем выбирается разрешающая строка , т.е. переменная, которая выйдет из базиса на следующей итерации. Она выбирается по наименьшему отношению столбца "Решение" к соответствующим положительным элементам разрешающего столбца (столбец «Отношение») – в начальной итерации это строка s 3 (коэффициент 20).

Разрешающий элемент находится на пересечении разрешающего столбца и разрешающей строки, его ячейка выделена цветом, он равен 1. Следовательно, на следующей итерации переменная x 2 заменит в базисе s 3 . Заметим, что в z-строке отношение не ищется, там ставится прочерк " - ". В случае если есть одинаковые минимальные отношения, то выбирается любое из них. Если в разрешающем столбце все коэффициенты меньше или равны 0, то решение задачи бесконечно.

Заполним следующую таблицу «Итерация 1». Её мы получим из таблицы «Итерация 0». Цель дальнейших преобразований - превратить разрешающий столбец х 2 в единичный (с единицей вместо разрешающего элемента и нулями вместо остальных элементов).

1)Вычисление строки х 2 таблицы "Итерация 1". Сначала делим все члены разрешающей строки s 3 таблицы "Итерация 0" на разрешающий элемент (он равен 1 в данном случае) этой таблицы, получим строку x 2 в таблице «Итерации 1». Т.к. разрешающий элемент в данном случае равен 1, то строка s 3 таблицы "Итерация 0" будет совпадать со строкой х 2 таблицы "Итерация 1". Строку x 2 таблицы "Итерации 1" мы получили 0 1 0 0 1 20, остальные строки таблицы "Итерация 1" будут получены из этой строки и строк таблицы "Итерация 0" следующим образом:

2) Вычисление z-строки таблицы "Итерация 1". На месте -6 в первой строке (z-строке) в столбце х 2 таблицы "Итерация 0" должен быть 0 в первой строке таблицы "Итерация 1". Для этого все элементы строки х 2 таблицы "Итерация 1" 0 1 0 0 1 20 умножим на 6, получим 0 6 0 0 6 120 и сложим эту строку с первой строкой (z - строкой) таблицы "Итерация 0" -4 -6 0 0 0 0, получим -4 0 0 0 6 120. В столбце x 2 появился ноль 0 , цель достигнута. Элементы разрешающего столбца х 2 выделены красным цветом.

3) Вычисление строки s 1 таблицы "Итерация 1". На месте 1 в s 1 строке таблицы "Итерация 0" должен быть 0 в таблице "Итерация 1". Для этого все элементы строки х 2 таблицы "Итерация 1" 0 1 0 0 1 20 умножим на -1, получим 0 -1 0 0 -1 -20 и сложим эту строку с s 1 - строкой таблицы "Итерация 0" 2 1 1 0 0 64, получим строку 2 0 1 0 -1 44. В столбце х 2 получен необходимый 0.

4) Вычисление строки s 2 таблицы "Итерация 1". На месте 3 в s 2 строке таблицы "Итерация 0" должен быть 0 в таблице "Итерация 1". Для этого все элементы строки х 2 таблицы "Итерация 1" 0 1 0 0 1 20 умножим на -3, получим 0 -3 0 0 -3 -60 и сложим эту строку с s 2 - строкой таблицы "Итерация 0" 1 3 0 1 0 72, получим строку 1 0 0 1 -3 12. В столбце х 2 получен нужный 0. Столбец х 2 в таблице "Итерация 1" стал единичным, он содержит одну 1 и остальные 0.

Строки таблицы «Итерация 1» получаем по следующему правилу:

Новая строка = Старая строка – (Коэффициент разрешающего столбца старой строки)*(Новая разрешающая строка).

Например для z -строки имеем:

Старая z-строка (-4 -6 0 0 0 0)
-(-6)*Новая разрешающая строка -(0
-6 0 0 -6 -120)
=Новая z-строка
(-4 0 0 0 6 120) .

Для следующих таблиц пересчет элементов таблицы делается аналогично, поэтому мы его опускаем.

итерация 1

Решение Отношение

Разрешающий столбец х 1 , разрешающая строка s 2 , s 2 выходит из базиса, х 1 входит в базис. Совершенно аналогично получим остальные симплекс-таблицы, пока не будет получена таблица со всеми положительными коэффициентами в z-строке. Это признак оптимальной таблицы.

Итерация 2

Решение Отношение

Разрешающий столбец s 3 , разрешающая строка s 1 , s 1 выходит из базиса, s 3 входит в базис.

Итерация 3

Решение Отношение

В z-строке все коэффициенты неотрицательны, следовательно, получено оптимальное решение x 1 = 24, x 2 = 16, z max = 192.

Симплекс-метод, решение задачи с искусственным базисом

2) Решим задачу с искусственным базисом (хотя бы один знак неравенств-ограничений " ≥ " или " = ").

Запишем задачу в канонической форме (в виде системы уравнений, что требует симплекс-метод), для этого введем две переменные х 3 ≥ 0 и х 4 ≥ 0 получим:

Система ограничений предлагает только одну допустимую базисную переменную x 4 , только она входит только в одно уравнение в третье с коэффициентом 1, поэтому в первое и второе уравнения добавляем искусственные переменные R 1 ≥ 0 и R 2 ≥ 0 Чтобы можно было примененить симплекс-метод система уравнений-ограничений должна быть системой с базисом, т.е. в каждом уравнении должна быть переменная с коэффициентом 1, которая входит только в одно уравнение системы, в нашем случае это R 1 , R 2 и x 4 . Получили, так называемую, М-задачу:

Данная система является системой с базисом, в которой R 1 , R 2 и x 4 базисные переменные, а x 1 , x 2 и x 3 свободные переменные, свободние члены всех уравнений неотрицательны. Следовательно, для решения задачи можно применить симплекс-метод. Запишем начальную симплекс-таблицу:

итерация 0

Решение Отношение
-16

В таблицу для задач с искусственным базисом добавлена строка «Оценка». Она получается суммированием соответствующих коэффициентов строк с искусственными переменными (R) с обратным знаком. Она будет присутствовать в таблице до тех пор, пока хотя бы одна из искусственных переменных есть в базисе. По наибольшему по модулю отрицательному коэффициенту строки "Оценка" определяется разрешающий столбец пока она есть в таблице. Когда строка "Оценка" выйдет из таблицы (в базисе нет искусственных переменных) разрешающий столбец будет определяться по z-строке, как и в задаче с начальным базисом. В данной таблице разрешающий столбец х 2 , он выбран по наибольшей по модулю отрицательной оценке (-7). Разрешающая строка R 2 выбрана по наименьшему отношению столбца "Решение" к соответствующим положительным элементам разрешающего столбца, как и в задаче без искусственных переменных. Это значит, что на следующей итерации переменная х 2 из свободной перейдет в базисную, а переменная R 2 из базисной – в свободную. Запишем следующую симплекс-таблицу:

Разрешающий столбец х 1 , разрешающая строка R 1 , R 1 выходит из базиса, x 1 входит в базис. После этого в базисе не остается искусственных переменных, поэтому строки «Оценка» в следующей таблице нет:

итерация 2

Решение Отношение

Далее разрешающий столбец выбирается по z-строке. В z-строке все коэффициенты неотрицательны кроме коэффициента при искусственной переменной R 1 , который не влияет на оптимальность, когда искусственные переменные вышли из базиса. Следовательно, получено оптимальное решение x 1 = 6/5; x 2 = 3/5; z max = 72/5.

Особые случаи применения симплекс-метода

1) Когда прямая (если рассматривается двухмерная задача линейного программирования, а в общем случае гиперплоскость), представляющая целевую функцию параллельна прямой (гиперплоскости), соответствующей одному из неравенств-ограничений (которое в точке оптимума выполняется, как точное равенство) целевая функция принимает одно и тоже оптимальное значение на некотором множестве точек границы области допустимых решений. Эти решения называются альтернативными оптимальными решениями . Наличие альтернативных решений можно определить по оптимальной симплекс-таблице. Если в z-строке оптимальной таблицы есть нулевые коэффициенты небазисных переменных, то есть альтернативные решения.

2) Если в разрешающем столбце симплекс-таблицы все коэффициенты меньше или равны нуль, то нельзя выбрать разрешающую строку, в этом случае решение неограничено.

3) Если ограничения задачи линейного программирования несовместны (т.е. они не могут выполняться одновременно), то задача не имеет допустимых решений. Такая ситуация не может возникнуть, если все неравенства, составляющие систему ограничений, имеют тип " ≤ " с неотрицательными правыми частями, т.к. в этом случае дополнительные переменные могут составить допустимое решение. Для других типов ограничений использются искусственные переменные. Если задача имеет решение, то в оптимальной таблице в базисе нет искусственных переменных (R i). Если они там есть, то задача не имеет решений.

Метод Гаусса-Жордана предназначен для решения систем линейных алгебраических уравнений (СЛАУ). Он является модификацией метода Гаусса . Если метод Гаусса осуществляется в два этапа (прямой ход и обратный) то метод Гаусса-Жордана позволяет решить систему в один этап. Подробности и непосредственная схема применения метода Гаусса-Жордана описаны в примерах.

Во всех примерах $A$ обозначает матрицу системы, $\widetilde{A}$ - расширенную матрицу системы. О матричной форме записи СЛАУ можно прочесть .

Пример №1

Решить СЛАУ $ \left\{ \begin{aligned} & 4x_1-7x_2+8x_3=-23;\\ & 2x_1-4x_2+5x_3=-13;\\ & -3x_1+11x_2+x_3=16. \end{aligned} \right.$ методом Гаусса-Жордана.

Давайте перейдём от последней полученной нами матрице к системе:

$$ \left\{ \begin{aligned} & 0\cdot x_1+1\cdot x_2+0\cdot x_3=1;\\ & 1\cdot x_1+0\cdot x_2+0\cdot x_3=-2;\\ & 0\cdot x_1+0\cdot x_2+1\cdot x_3=-1. \end{aligned} \right. $$

Упрощая полученную систему, имеем:

$$ \left\{ \begin{aligned} & x_2=1;\\ & x_1=-2;\\ & x_3=-1. \end{aligned} \right. $$

Полное решение без пояснений выглядит так:

Хоть этот способ выбора разрешающих элементов вполне допустим, но предпочтительнее выбирать в качестве разрешающих элементов диагональные элементы матрицы системы. Мы рассмотрим этот способ ниже.

Выбор разрешающих элементов на главной диагонали матрицы системы.

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

Первый шаг

В первом столбце выбираем элемент первой строки, т.е. в качестве разрешающего имеем элемент 4. Понимаю, что выбор числа 2 кажется более предпочтительным, так как это число всё-таки меньше, нежели 4. Для того, чтобы число 2 в первом столбце переместилось на первое место, поменяем местами первую и вторую строки:

$$ \left(\begin{array} {ccc|c} 4 & -7 & 8 & -23\\ 2 & -4& 5 & -13 \\ -3 & 11 & 1 & 16 \end{array} \right)\rightarrow \left(\begin{array} {ccc|c} 2 & -4& 5 & -13\\ 4 & -7 & 8 & -23 \\ -3 & 11 & 1 & 16 \end{array} \right) $$

Итак, разрешающий элемент представлен числом 2. Точно так же, как и ранее, разделим первую строку на 2, а затем обнулим элементы первого столбца:

$$ \left(\begin{array} {ccc|c} 2 & -4& 5 & -13\\ 4 & -7 & 8 & -23 \\ -3 & 11 & 1 & 16 \end{array} \right) \begin{array} {l} I:2 \\\phantom{0} \\ \phantom{0} \end{array} \rightarrow \left(\begin{array} {ccc|c} 1 & -2& 5/2 & -13/2 \\4 & -7 & 8 & -23\\ -3 & 11 & 1 & 16 \end{array} \right) \begin{array} {l} \phantom{0} \\ II-4\cdot I\\ III+3\cdot I \end{array} \rightarrow \left(\begin{array} {ccc|c} 1 & -2& 5/2 & -13/2\\0 & 1 & -2 & 3\\ 0 & 5 & 17/2 & -7/2 \end{array} \right). $$

Второй шаг

На втором шаге требуется обнулить элементы второго столбца. В качестве разрешающего элемента выбираем элемент второй строки, т.е. 1. Разрешающий элемент уже равен единице, поэтому никаких строк менять местами не будем. Кстати сказать, если бы мы захотели поменять местами строки, то первую строку трогать не стали бы, так как она уже была использована на первом шаге. А вот вторую и третью строки запросто можно менять местами. Однако, повторюсь, в данной ситуации менять местами строки не нужно, ибо разрешающий элемент уже оптимален - он равен единице.

$$ \left(\begin{array} {ccc|c} 1 & -2& 5/2 & -13/2\\0 & 1 & -2 & 3\\ 0 & 5 & 17/2 & -7/2 \end{array} \right) \begin{array} {l} I+2\cdot II \\ \phantom{0}\\ III-5\cdot II \end{array} \rightarrow \left(\begin{array} {ccc|c} 1 & 0 & -3/2 & -1/2 \\ 0 & 1 & -2 & 3\\ 0 & 0 & 37/2 & -37/2 \end{array} \right). $$

Второй шаг окончен. Переходим к третьему шагу.

Третий шаг

На третьем шаге требуется обнулить элементы третьего столбца. В качестве разрешающего элемента выбираем элемент третьей строки, т.е. 37/2. Разделим элементы третьей строки на 37/2 (чтобы разрешающий элемент стал равен 1), а затем обнулим соответствующие элементы третьего столбца:

$$ \left(\begin{array} {ccc|c} 1 & 0 & -3/2 & -1/2 \\ 0 & 1 & -2 & 3\\ 0 & 0 & 37/2 & -37/2 \end{array} \right) \begin{array} {l} \phantom{0}\\ \phantom{0}\\ III:\frac{37}{2} \end{array} \rightarrow \left(\begin{array} {ccc|c} 1 & 0 & -3/2 & -1/2 \\ 0 & 1 & -2 & 3\\ 0 & 0 & 1 & -1 \end{array} \right) \begin{array} {l} I+2\cdot III\\II+3/2\cdot III\\ \phantom{0} \end{array} \rightarrow \left(\begin{array} {ccc|c} 1 & 0 & 0 & -2 \\ 0 & 1 & 0 & 1\\ 0 & 0 & 1 & -1 \end{array} \right). $$

Ответ получен: $x_1=-2$, $x_2=1$, $x_3=-1$. Полное решение без пояснений выглядит так:

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

Ответ : $x_1=-2$, $x_2=1$, $x_3=-1$.

Пример №2

Решить СЛАУ $ \left\{ \begin{aligned} & 3x_1+x_2+2x_3+5x_4=-6;\\ & 3x_1+x_2+2x_4=-10;\\ & 6x_1+4x_2+11x_3+11x_4=-27;\\ & -3x_1-2x_2-2x_3-10x_4=1. \end{aligned} \right.$ методом Гаусса-Жордана.

Запишем расширенную матрицу данной системы : $\widetilde{A}=\left(\begin{array} {cccc|c} 3 & 1 & 2 & 5 & -6\\ 3 & 1& 0 & 2 & -10 \\ 6 & 4 & 11 & 11 & -27 \\ -3 & -2 & -2 & -10 & 1 \end{array} \right)$.

В качестве разрешающих элементов станем выбирать диагональные элементы матрицы системы: на первом шаге возьмём элемент первой строки, на втором шаге элемент второй строки и так далее.

Первый шаг

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

$$ \left(\begin{array}{cccc|c} 3 & 1 & 2 & 5 & -6\\ 3 & 1 & 0 & 2 & -10\\ 6 & 4 & 11 & 11 & -27\\ -3 & -2 & -2 & -10 & 1\end{array}\right) \begin{array} {l} I:3\\ \phantom{0}\\\phantom{0}\\\phantom{0}\end{array} \rightarrow \left(\begin{array}{cccc|c} 1 & 1/3 & 2/3 & 5/3 & -2\\ 3 & 1 & 0 & 2 & -10\\ 6 & 4 & 11 & 11 & -27\\ -3 & -2 & -2 & -10 & 1\end{array}\right) \begin{array} {l} \phantom{0}\\ II-3\cdot I\\III-6\cdot I\\IV+3\cdot I\end{array} \rightarrow\\ \rightarrow\left(\begin{array}{cccc|c} 1 & 1/3 & 2/3 & 5/3 & -2\\ 0 & 0 & -2 & -3 & -4\\ 0 & 2 & 7 & 1 & -15\\ 0 & -1 & 0 & -5 & -5\end{array}\right). $$

Второй шаг

Переходим к обнулению соответствующих элементов второго столбца. В качестве разрешающего элемента мы уславливались взять элемент второй строки, но сделать этого мы не в силах, так как нужный элемент равен нулю. Вывод: будем менять местами строки. Первую строку трогать нельзя, так как она уже использовалась на первом шаге. Выбор небогат: или меняем местами вторую и третью строки, или же меняем местами четвёртую и вторую. Так как в четвёртой строке наличествует (-1), то пусть в "обмене" поучавствует именно четвёртая строка. Итак, меняем местами вторую и четвёртую строки:

$$ \left(\begin{array}{cccc|c} 1 & 1/3 & 2/3 & 5/3 & -2\\ 0 & 0 & -2 & -3 & -4\\ 0 & 2 & 7 & 1 & -15\\ 0 & -1 & 0 & -5 & -5\end{array}\right)\rightarrow \left(\begin{array}{cccc|c} 1 & 1/3 & 2/3 & 5/3 & -2\\ 0 & -1 & 0 & -5 & -5\\ 0 & 2 & 7 & 1 & -15\\ 0 & 0 & -2 & -3 & -4\end{array}\right) $$

Вот теперь всё в норме: разрешающий элемент равен (-1). Бывает, кстати, что смена мест строк невозможна, но это обговорим в следующем примере №3. А пока что делим вторую строку на (-1), а затем обнуляем элементы второго столбца. Обратите внимание, что во втором столбце элемент, расположенный в четвёртой строке, уже равен нулю, поэтому четвёртую строку трогать не будем.

$$ \left(\begin{array}{cccc|c} 1 & 1/3 & 2/3 & 5/3 & -2\\ 0 & -1 & 0 & -5 & -5\\ 0 & 2 & 7 & 1 & -15\\ 0 & 0 & -2 & -3 & -4\end{array}\right) \begin{array} {l} \phantom{0}\\II:(-1) \\\phantom{0}\\\phantom{0}\end{array} \rightarrow \left(\begin{array}{cccc|c} 1 & 1/3 & 2/3 & 5/3 & -2\\ 0 & 1 & 0 & 5 & 5\\ 0 & 2 & 7 & 1 & -15\\ 0 & 0 & -2 & -3 & -4\end{array}\right) \begin{array} {l} I-1/3\cdot II\\ \phantom{0} \\III-2\cdot II\\\phantom{0}\end{array} \rightarrow\\ \rightarrow\left(\begin{array}{cccc|c} 1 & 0 & 2/3 & 0 & -11/3\\ 0 & 1 & 0 & 5 & 5\\ 0 & 0 & 7 & -9 & -25\\ 0 & 0 & -2 & -3 & -4\end{array}\right). $$

Третий шаг

Приступаем к обработке третьего столбца. В качестве разрешающего элемента мы условились брать диагональные элементы матрицы системы. Для третьего шага это означает выбор элемента, расположенного в третьей строке. Однако если мы просто возьмём элемент 7 в качестве разрешающего, то всю третью строку придётся делить на 7. Мне кажется, что разделить на (-2) попроще. Поэтому поменяем местами третью и четвёртую строки, и тогда разрешающим элементом станет (-2):

$$ \left(\begin{array}{cccc|c} 1 & 0 & 2/3 & 0 & -11/3\\ 0 & 1 & 0 & 5 & 5\\ 0 & 0 & 7 & -9 & -25\\ 0 & 0 & -2 & -3 & -4\end{array}\right) \rightarrow \left(\begin{array}{cccc|c} 1 & 0 & 2/3 & 0 & -11/3\\ 0 & 1 & 0 & 5 & 5\\ 0 & 0 & -2 & -3 & -4\\ 0 & 0 & 7 & -9 & -25\end{array}\right) $$

Разрешающий элемент - (-2). Делим третью строку на (-2) и обнуляем соответствующие элементы третьего столбца:

$$ \left(\begin{array}{cccc|c} 1 & 0 & 2/3 & 0 & -11/3\\ 0 & 1 & 0 & 5 & 5\\ 0 & 0 & -2 & -3 & -4\\ 0 & 0 & 7 & -9 & -25\end{array}\right) \begin{array} {l} \phantom{0}\\ \phantom{0} \\III:(-2)\\\phantom{0}\end{array}\rightarrow \left(\begin{array}{cccc|c} 1 & 0 & 2/3 & 0 & -11/3\\ 0 & 1 & 0 & 5 & 5\\ 0 & 0 & 1 & 3/2 & 2\\ 0 & 0 & 7 & -9 & -25\end{array}\right) \begin{array} {l} I-2/3\cdot III\\ \phantom{0} \\ \phantom{0}\\IV-7\cdot III\end{array}\rightarrow\\ \rightarrow\left(\begin{array}{cccc|c} 1 & 0 & 0 & -1 & -5\\ 0 & 1 & 0 & 5 & 5\\ 0 & 0 & 1 & 3/2 & 2\\ 0 & 0 & 0 & -39/2 & -39\end{array}\right). $$

Четвёртый шаг

Переходим к обнулению четвёртого столбца. Разрешающий элемент расположен в четвёртой строке и равен числу $-\frac{39}{2}$.

$$ \left(\begin{array}{cccc|c} 1 & 0 & 0 & -1 & -5\\ 0 & 1 & 0 & 5 & 5\\ 0 & 0 & 1 & 3/2 & 2\\ 0 & 0 & 0 & -39/2 & -39\end{array}\right) \begin{array} {l} \phantom{0}\\ \phantom{0} \\ \phantom{0}\\IV:\left(-\frac{39}{2}\right) \end{array}\rightarrow \left(\begin{array}{cccc|c} 1 & 0 & 0 & -1 & -5\\ 0 & 1 & 0 & 5 & 5\\ 0 & 0 & 1 & 3/2 & 2\\ 0 & 0 & 0 & 1 & 2\end{array}\right) \begin{array} {l} I+IV\\ II-5\cdot IV \\ III-3/2\cdot IV \\ \phantom{0} \end{array}\rightarrow\\ \rightarrow\left(\begin{array}{cccc|c} 1 & 0 & 0 & 0 & -3\\ 0 & 1 & 0 & 0 & -5\\ 0 & 0 & 1 & 0 & -1\\ 0 & 0 & 0 & 1 & 2\end{array}\right). $$

Решение окончено. Ответ таков: $x_1=-3$, $x_2=-5$, $x_3=-1$, $x_4=2$. Полное решение без пояснений:

Ответ : $x_1=-3$, $x_2=-5$, $x_3=-1$, $x_4=2$.

Пример №3

Решить СЛАУ $\left\{\begin{aligned} & x_1-2x_2+3x_3+4x_5=-5;\\ & 2x_1+x_2+5x_3+2x_4+9x_5=-3;\\ & 3x_1+4x_2+7x_3+4x_4+14x_5=-1;\\ & 2x_1-4x_2+6x_3+11x_5=2;\\ & -2x_1+14x_2-8x_3+4x_4-7x_5=20;\\ & -4x_1-7x_2-9x_3-6x_4-21x_5=-9. \end{aligned}\right.$ методом Гаусса-Жордана. Если система является неопределённой, указать базисное решение.

Подобные примеры разбираются в теме "Общее и базисное решения СЛАУ" . Во второй части упомянутой темы данный пример решён с помощью метод Гаусса . Мы же решим его с помощью метода Гаусса-Жордана. Пошагово разбивать решение не станем, так как это уже было сделано в предыдущих примерах.

$$ \left(\begin{array}{ccccc|c} 1 & -2 & 3 & 0 & 4 & -5\\ 2 & 1 & 5 & 2 & 9 & -3\\ 3 & 4 & 7 & 4 & 14 & -1\\ 2 & -4 & 6 & 0 & 11 & 2\\ -2 & 14 & -8 & 4 & -7 & 20\\ -4 & -7 & -9 & -6 & -21 & -9 \end{array}\right) \begin{array} {l} \phantom{0} \\ II-2\cdot I\\ III-3\cdot I\\ IV-2\cdot I\\ V+2\cdot I\\VI+4\cdot I \end{array} \rightarrow \left(\begin{array}{ccccc|c} 1 & -2 & 3 & 0 & 4 & -5\\ 0 & 5 & -1 & 2 & 1 & 7\\ 0 & 10 & -2 & 4 & 2 & 14\\ 0 & 0 & 0 & 0 & 3 & 12\\ 0 & 10 & -2 & 4 & 1 & 10\\ 0 & -15 & 3 & -6 & -5 & -29 \end{array}\right) \begin{array} {l} \phantom{0} \\ II:5 \\ \phantom{0}\\ \phantom{0}\\ \phantom{0} \\ \phantom{0}\end{array} \rightarrow \\ \left(\begin{array}{ccccc|c} 1 & -2 & 3 & 0 & 4 & -5\\ 0 & 1 & -1/5 & 2/5 & 1/5 & 7/5\\ 0 & 10 & -2 & 4 & 2 & 14\\ 0 & 0 & 0 & 0 & 3 & 12\\ 0 & 10 & -2 & 4 & 1 & 10\\ 0 & -15 & 3 & -6 & -5 & -29 \end{array}\right) \begin{array} {l} I+2\cdot II \\ \phantom{0}\\ III-10\cdot II\\ IV:3\\ V-10\cdot II\\VI+15\cdot II \end{array} \rightarrow \left(\begin{array}{ccccc|c} 1 & 0 & 13/5 & 4/5 & 22/5 & -11/5\\ 0 & 1 & -1/5 & 2/5 & 1/5 & 7/5\\ 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 & -1 & -4\\ 0 & 0 & 0 & 0 & -2 & -8 \end{array}\right). $$

Полагаю, что одно из сделанных преобразований всё-таки требует пояснения: $IV:3$. Все элементы четвёртой строки нацело делились на три, поэтому сугубо из соображений упрощения мы разделили все элементы этой строки на три. Третья строка в преобразованной матрице стала нулевой. Вычеркнем нулевую строку:

$$ \left(\begin{array}{ccccc|c} 1 & 0 & 13/5 & 4/5 & 22/5 & -11/5\\ 0 & 1 & -1/5 & 2/5 & 1/5 & 7/5\\ 0 & 0 & 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 & -1 & -4\\ 0 & 0 & 0 & 0 & -2 & -8 \end{array}\right) $$

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

В этой ситуации проблема решается крайне незамысловато. Мы не можем обработать третий столбец? Хорошо, перейдём к четвёртому. Может, в четвёртом столбце элемент третьей строки будет не равен нулю. Однако четвёртый столбец "болеет" той же проблемой, что и третий. Элемент третьей строки в четвёртом столбце равен нулю. И смена мест строк опять-таки ничего не даст. Четвёртый столбец тоже не можем обработать? Ладно, перейдём к пятому. А вот в пятом столбце элемент третьей строки очень даже не равен нулю. Он равен единице, что довольно-таки хорошо. Итак, разрешающий элемент в пятом столбце равен 1. Разрешающий элемент выбран, поэтому осуществим дальшейшие преобразования метода Гаусса-Жордана:

$$ \left(\begin{array}{ccccc|c} 1 & 0 & 13/5 & 4/5 & 22/5 & -11/5\\ 0 & 1 & -1/5 & 2/5 & 1/5 & 7/5\\ 0 & 0 & 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 & -1 & -4\\ 0 & 0 & 0 & 0 & -2 & -8 \end{array}\right) \begin{array} {l} I-22/5\cdot III \\ II-1/5\cdot III \\ \phantom{0}\\ IV+III\\ V+2\cdot III \end{array} \rightarrow \left(\begin{array}{ccccc|c} 1 & 0 & 13/5 & 4/5 & 0 & -99/5\\ 0 & 1 & -1/5 & 2/5 & 0 & 3/5\\ 0 & 0 & 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 \end{array}\right) \rightarrow \\ \rightarrow\left|\text{Удаляем нулевые строки}\right|\rightarrow \left(\begin{array}{ccccc|c} 1 & 0 & 13/5 & 4/5 & 0 & -99/5\\ 0 & 1 & -1/5 & 2/5 & 0 & 3/5\\ 0 & 0 & 0 & 0 & 1 & 4 \end{array}\right)$$

Мы привели матрицу системы и расширенную матрицу системы к ступенчатому виду. Ранги обеих матриц равны $r=3$, т.е. надо выбрать 3 базисных переменных. Количество неизвестных $n=5$, поэтому нужно выбрать $n-r=2$ свободных переменных. Так как $r < n$, то согласно следствию из теоремы Кронекера-Капелли данная система является неопределённой (т.е. имеет бесконечное количество решений). Для нахождения решений системы составим "ступеньки":

На "ступеньках" стоят элементы из столбцов №1, №2, №5. Следовательно, базисными будут переменные $x_1$, $x_2$, $x_5$. Свободными переменными, соответственно, будут $x_3$, $x_4$. Столбцы №3 и №4, соответствующие свободным переменным, перенесём за черту, при этом, конечно, не забыв сменить им знаки.

$$ \left(\begin{array}{ccccc|c} 1 & 0 & 13/5 & 4/5 & 0 & -99/5\\ 0 & 1 & -1/5 & 2/5 & 0 & 3/5\\ 0 & 0 & 0 & 0 & 1 & 4 \end{array}\right)\rightarrow \left(\begin{array}{ccc|ccc} 1 & 0 & 0 & -99/5 & -13/5 & -4/5\\ 0 & 1 & 0 & 3/5 & 1/5 & -2/5\\ 0 & 0 & 1 & 4 & 0 & 0\end{array}\right). $$

Из последней матрицы получим общее решение: $\left\{\begin{aligned} & x_1=-\frac{99}{5}-\frac{13}{5}x_3-\frac{4}{5}x_4;\\ & x_2=\frac{3}{5}+\frac{1}{5}x_3-\frac{2}{5}x_4;\\ & x_3 \in R;\\ & x_4\in R;\\ & x_5=4. \end{aligned}\right.$. Базисное решение найдём, приняв свободные переменные равными нулю, т.е. $x_3=0$, $x_4=0$:

$$ \left\{\begin{aligned} & x_1=-\frac{99}{5};\\ & x_2=\frac{3}{5};\\ & x_3=0;\\ & x_4=0;\\ & x_5=4. \end{aligned}\right. $$

Задача решена, осталось лишь записать ответ.

Ответ : Общее решение: $\left\{\begin{aligned} & x_1=-\frac{99}{5}-\frac{13}{5}x_3-\frac{4}{5}x_4;\\ & x_2=\frac{3}{5}+\frac{1}{5}x_3-\frac{2}{5}x_4;\\ & x_3 \in R;\\ & x_4\in R;\\ & x_5=4. \end{aligned}\right.$, базисное решение: $\left\{\begin{aligned} & x_1=-\frac{99}{5};\\ & x_2=\frac{3}{5};\\ & x_3=0;\\ & x_4=0;\\ & x_5=4. \end{aligned}\right.$.

Читайте также:
  1. V2: ДЕ 57 - Фундаментальная система решений линейного однородного дифференциального уравнения
  2. Б1 2. Линейный оператор в конечномероном пространстве, его матрица. Характеристический многочлен линейного оператора. Собственные числа и собств векторы.
  3. Базовые управляющие структуры структурного программирования
  4. Билет 13 Угол между 2 мя прямыми, условия параллельности и перпендикулярности. Преобразование линейного оператора при переходе к новому базису
  5. Билет 13. Линейные операторы. Матрица линейного оператора.
  6. Билет 26. Корневые подпространства. Расщепление линейного пространства в прямую сумму корневых подпространств.
  7. Билет 27. Жорданов базис и жорданова матрица линейного оператора в комплексном пространстве.
  8. Билет 35. Эрмитовы операторы и эрмитовы матрицы. Эрмитого разложение линейного оператора.
  9. Билет 7 Скалярное произведение векторов, проекция одного вектора на другой. Понятие линейного пространства и подпространства, критерии подпространства

Теорема (о выборе разрешающего элемента)

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

Доказательство:

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

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

Пример: линейное программирование:

Найдем максимум функции

при ограничениях

Решение: составим жорданову таблицу.

Поскольку в ней свободные члены положительны, план является опорным. Однако он не оптимален, так как коэффициенты z-строки отрицательны. Выбираем из них тот, у которого наибольшее произведение абсолютной величины и наименьшее симплексное отношение. Третий столбец считаем разрешающим, так как он имеет наибольшую абсолютную величину 8 и симплексные отношения: соответственно ( , поэтому элемент 1 в третьим столбце будет разрешающим). Делаем шаг модифицированных жордановых исключений и приходим к следующей таблице.

Судя по коэффициентам z-строки, в полученной таблице оптимальное решение не достигнуто. Берём второй столбец с отрицательным коэффициентом в z-строке за разрешающий (разрешающей строкой может быть только первая). С найденным элементом 5 делаем следующий шаг.

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

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


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

В задаче дробно-линейного программирования экстремум целевой функции достигается в вершине многогранника решений. Это сходство с линейным программированием позволяет решать дробно-линейные задачи методом Штифеля.

Вычисления оформляются в виде жордановых таблиц. При этом для функционала отводятся две нижние строки: в первую из них записываем коэффициенты числителя, а во вторую – знаменателя. Исходной задаче соответствует таблица 1:

x 1 x 2 x j x n
y 1 a 11 a 12 a 1 j a 1 n a 1
………………………………………
y i a i 1 a i 2 a ij a in a i
………………………………………
y m a m 1 a m 2 a mj a mn a m
z 1 p 1 p 2 p j p n
z 2 q 1 q 2 q j q n

Через y i обозначаются разности между правыми и левыми частями системы ограничений:

y i = a i a i 1 x 1 – a i 2 x 2 – a i 3 x 3 – … – a in x n ³ 0.

Свободными переменными мы будем называть переменные, расположенные в верхней заглавной строке жордановой таблицы. Придавая свободным переменным нулевые значения, мы получим исходное базисное решение: . Данный вектор не может являться опорным планом, т.к. знаменатель целевого функционала на нем равен нулю (z 2 = 0). Поэтому среди свободных членов системы ограничений a 1 ,…, a m обязательно есть отрицательные числа (иначе базисное решение было бы опорным планом).

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

y 1 x j x n
x 1 b 11 b 1 j b 1 n b 1
.… ………………………………………
y i b i 1 b ij b in b i
…. …………………………………….
y m b m 1 b mj b mn b m
z 1 f 1 f j f n F
z 2 g 1 g j g n G

В таблице 2 все свободные члены b i неотрицательны, что обеспечивает неотрицательность базисных переменных x 1 ,…, y m . Кроме того (в силу положительности знаменателя целевой функции z 2 на множестве опорных планов). Первоначальным опорным планом является вектор с координатами . Значение целевой функции на первоначальном опорном плане равно .

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

Проследим за тем, как меняется целевая функция при переходе от одного опорного плана задачи к другому. Оказывается, знак разности между новым и старым значениями функции совпадает со знаком определителя . Если. Т.к. многогранник решений содержит лишь конечное число опорных планов, то за конечное число шагов мы придем к оптимальному опорному плану.

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

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

Т.к. после нахождения первоначального опорного плана все правые части b i стали неотрицательными, то разрешающим элементом j -го столбца может быть один из его положительных элементов (). Если на каждом шаге этапа поиска оптимального опорного плана в выбранном разрешающем столбце присутствует (хотя бы один) положительный элемент , то такая задача имеет максимум (возможно, что не один).

Однако, если на одном из шагов некоторая оценка меньше нуля, и при этом все элементы j -го столбца . Тогда в данном столбце, руководствуясь принципом минимального симплексного отношения, разрешающий элемент выбирать нельзя. Увеличивая значения свободной переменной x j от 0 и до (см. Табл. 2), мы все время остаемся в области планов. Это связано с тем, что увеличение переменной x j не вызывает изменения знака на минус ни у одной из базисных переменных.

Обозначим через М предел, к которому, монотонно возрастая, стремится целевая функция при : . Это число является асимптотическим максимумом.


| 2 |