- Решение задач линейного программирования
- Переход от задачи минимизации целевой функции к задаче максимизации
- 2. Линейное программирование
- 2.1. Стандартный вид задачи линейного программирования (злп)
- 2.2. Способы приведения задачи линейного программирования к стандартному виду
- 2.3. Графический метод решения задач линейного программирования
Решение задач линейного программирования
Назначение сервиса . Онлайн-калькулятор предназначен для решения задач линейного программирования симплексным методом путем перехода к КЗЛП и СЗЛП . При этом задача на минимум целевой функции сводятся к задаче на поиск максимума через преобразование целевой функции F*(X) = -F(X) . Также имеется возможность составить двойственную задачу.
- Переход к КЗЛП. Любая ЗЛП вида ax ≤ b , ax ≥ b , ax = b ( F(X) → extr ) сводится к виду ax = b , F(X) → max ;
- Переход к СЗЛП. КЗЛП вида ax = b сводится к виду ax ≤ b , F(X) → max ;
- Решение симплексным методом;
- Шаг №1
- Шаг №2
- Видеоинструкция
- Оформление Word
Инструкция . Выберите количество переменных и количество строк (количество ограничений). Полученное решение сохраняется в файле Word .
Переход от задачи минимизации целевой функции к задаче максимизации
Задача минимизации целевой функции F(X) легко может быть сведена к задаче максимизации функции F*(X) при тех же ограничениях путем введения функции: F*(X) = -F(X) . Обе задачи имеют одно и то же решение X*, и при этом min(F(X)) = -max(F*(X)) .
Проиллюстрируем этот факт графически:
F(x) → min | F(x) → max |
Для оптимизации функции цели используем следующие понятия и методы.
Опорный план – план с определёнными через свободные базисными переменными.
Базисный план – опорный план с нулевыми базисными переменными.
Оптимальный план – базисный план, удовлетворяющий оптимальной функции цели (ФЦ).
Ведущий (разрешающий) элемент – коэффициент свободной неизвестной, которая становится базисной, а сам коэффициент преобразуется в единицу.
Направляющая строка – строка ведущего элемента, в которой расположена с единичным коэффициентом базисная неизвестная, исключаемая при преобразовании (строка с минимальным предельным коэффициентом, см. далее).
Направляющий столбец – столбец ведущего элемента, свободная неизвестная которого переводится в базисную (столбец с максимальной выгодой, см. далее).
Переменные x1, …, xm, входящие с единичными коэффициентами только в одно уравнение системы, с нулевыми – в остальные, называются базисными или зависимыми. В канонической системе каждому уравнению соответствует ровно одна базисная переменная. Переход осуществляется с помощью метода Гаусса–Жордана. Основная идея этого метода состоит в сведении системы m уравнений с n неизвестными к каноническому виду при помощи элементарных операций над строками.
Остальные n-m переменных (xm+1,…, xn) называются небазисными или независимыми переменными.
Базисное решение называется допустимым базисным решением, если значения входящих в него базисных переменных xj≥0, что эквивалентно условию неотрицательности bj≥0.
Допустимое базисное решение является угловой точкой допустимого множества S задачи линейного программирования и называется иногда опорным планом.
Если среди неотрицательных чисел bj есть равные нулю, то допустимое базисное решение называется вырожденным (вырожденной угловой точкой) и соответствующая задача линейного программирования называется вырожденной.
Пример №1 . Свести задачу линейного программирования к стандартной ЗЛП.
F(X) = x1 + 2x2 — 2x3 → min при ограничениях:
4x1 + 3x2 — x3≤10
— 2x2 + 5x3≥3
x1 + 2x3=9
Для приведения ЗЛП к канонической форме необходимо:
1. Поменять знак у целевой функции. Сведем задачу F(X) → min к задаче F(X) → max. Для этого умножаем F(X) на (-1). В первом неравенстве смысла (≤) вводим базисную переменную x4; во втором неравенстве смысла (≥) вводим базисную переменную x5 со знаком минус.
4x1 + 3x2-1x3 + 1x4 + 0x5 = 10
0x1-2x2 + 5x3 + 0x4-1x5 = 3
1x1 + 0x2 + 2x3 + 0x4 + 0x5 = 9
F(X) = — x1 — 2x2 + 2x3
Переход к СЗЛП.
Расширенная матрица системы ограничений-равенств данной задачи:
4 | 3 | -1 | 1 | 0 | 10 |
0 | -2 | 5 | 0 | -1 | 3 |
1 | 0 | 2 | 0 | 0 | 9 |
Приведем систему к единичной матрице методом жордановских преобразований.
1. В качестве базовой переменной можно выбрать x4.
2. В качестве базовой переменной выбираем x2.
Разрешающий элемент РЭ=-2. Строка, соответствующая переменной x2, получена в результате деления всех элементов строки x2 на разрешающий элемент РЭ=-2. На месте разрешающего элемента получаем 1. В остальных клетках столбца x2 записываем нули. Все остальные элементы определяются по правилу прямоугольника. Представим расчет каждого элемента в виде таблицы:
4-(0 • 3):-2 | 3-(-2 • 3):-2 | -1-(5 • 3):-2 | 1-(0 • 3):-2 | 0-(-1 • 3):-2 | 10-(3 • 3):-2 |
0 : -2 | -2 : -2 | 5 : -2 | 0 : -2 | -1 : -2 | 3 : -2 |
1-(0 • 0):-2 | 0-(-2 • 0):-2 | 2-(5 • 0):-2 | 0-(0 • 0):-2 | 0-(-1 • 0):-2 | 9-(3 • 0):-2 |
Получаем новую матрицу:
4 | 0 | 6 1 /2 | 1 | -1 1 /2 | 14 1 /2 |
0 | 1 | -2 1 /2 | 0 | 1 /2 | -1 1 /2 |
1 | 0 | 2 | 0 | 0 | 9 |
3. В качестве базовой переменной выбираем x3.
Разрешающий элемент РЭ=2. Строка, соответствующая переменной x3, получена в результате деления всех элементов строки x3 на разрешающий элемент РЭ=2. На месте разрешающего элемента получаем 1. В остальных клетках столбца x3 записываем нули. Все остальные элементы определяются по правилу прямоугольника. Представим расчет каждого элемента в виде таблицы:
4-(1 • 6 1 /2):2 | 0-(0 • 6 1 /2):2 | 6 1 /2-(2 • 6 1 /2):2 | 1-(0 • 6 1 /2):2 | -1 1 /2-(0 • 6 1 /2):2 | 14 1 /2-(9 • 6 1 /2):2 |
0-(1 • -2 1 /2):2 | 1-(0 • -2 1 /2):2 | -2 1 /2-(2 • -2 1 /2):2 | 0-(0 • -2 1 /2):2 | 1 /2-(0 • -2 1 /2):2 | -1 1 /2-(9 • -2 1 /2):2 |
1 : 2 | 0 : 2 | 2 : 2 | 0 : 2 | 0 : 2 | 9 : 2 |
Получаем новую матрицу:
3 /4 | 0 | 0 | 1 | -1 1 /2 | -14 3 /4 |
1 1 /4 | 1 | 0 | 0 | 1 /2 | 9 3 /4 |
1 /2 | 0 | 1 | 0 | 0 | 4 1 /2 |
Поскольку в системе имеется единичная матрица, то в качестве базисных переменных принимаем X = (4,2,3).
Соответствующие уравнения имеют вид:
3 /4x1 + x4 — 1 1 /2x5 = -14 3 /4
1 1 /4x1 + x2 + 1 /2x5 = 9 3 /4
1 /2x1 + x3 = 4 1 /2
Выразим базисные переменные через остальные:
x4 = — 3 /4x1 + 1 1 /2x5-14 3 /4
x2 = — 1 1 /4x1 — 1 /2x5+9 3 /4
x3 = — 1 /2x1+4 1 /2
Подставим их в целевую функцию:
F(X) = — x1 — 2(- 1 1 /4x1 — 1 /2x5+9 3 /4) + 2(- 1 /2x1+4 1 /2)
или
F(X) = 1 /2x1 + x5-10 1 /2 → max
Система неравенств:
— 3 /4x1 + 1 1 /2x5-14 3 /4 ≥ 0
— 1 1 /4x1 — 1 /2x5+9 3 /4 ≥ 0
— 1 /2x1+4 1 /2 ≥ 0
Приводим систему неравенств к следующему виду:
3 /4x1 — 1 1 /2x5 ≤ -14 3 /4
1 1 /4x1 + 1 /2x5 ≤ 9 3 /4
1 /2x1 ≤ 4 1 /2
F(X) = 1 /2x1 + x5-10 1 /2 → max
Упростим систему.
3 /4x1 — 1 1 /2x2 ≤ -14 3 /4
1 1 /4x1 + 1 /2x2 ≤ 9 3 /4
1 /2x1 ≤ 4 1 /2
F(X) = 1 /2x1 + x2-10 1 /2 → max
2. Линейное программирование
К задачам линейного программирования относятся такие оптимизационные задачи, в которых и целевая функция и ограничения – линейный многочлен.
2.1. Стандартный вид задачи линейного программирования (злп)
В стандартном виде ЗЛП целевая функция минимизируется, ограничения имеют вид равенств:
(2.1)
Здесь aij, bi, pi – постоянные коэффициенты.
В этих задачах количество переменных больше или равно количеству ограничений-равенств: n≥m.
Если n m, то область допустимых решений – точка;
если n m, то область допустимых решений – многогранник;
если n m, то (m – n) ограничений линейно зависимы и их можно исключить.
2.2. Способы приведения задачи линейного программирования к стандартному виду
Случай 1. Исходные условия задачи: целевая функция минимизируется, ограничения представляют систему неравенств вида «меньше или равно».
Для приведения задачи к стандартному виду вводят искусственные переменные . Эти искусственные переменные прибавляют к левым частям ограничений:
(2.2)
Полученная задача тождественна исходной. Действительно, убрав искусственные переменные, получим левые части ограничений bi.
Случай 2. Исходные условия задачи: целевая функция минимизируется, ограничения имеют вид неравенств типа «больше или равно»:
Аналогично предыдущему случаю вводятся искусственные переменные, но эти переменные вычитаются из левых частей ограничений.
Случай 3. Исходные условия задачи: целевая функция максимизируется, ограничения имеют вид равенств.
Для приведения задачи к стандартному виду (2.1) сменим целевую функцию на целевую функциюG, все коэффициенты которой помножены на –1: Полученная задача тождественна исходной.
2.3. Графический метод решения задач линейного программирования
Графический метод применяется для решения задач небольшой размерности (количество переменных не превышает 3). Рассмотрим метод на примере решения следующей задачи:
(2.3)
- Ограничения-неравенства заменяются на ограничения-равенства:
- Строятся графики полученных функций:
Рис. 2.1. Графический метод решения ЗЛП
- Находится область допустимых решений (область, где выполняются все ограничения).
- Строится график целевой функции при каком-либо значении правой части:
- График целевой функции перемещается параллельно самому себе в сторону роста (уменьшения при Q min) целевой функции до касания с границей области допустимых решений. Граничная точка (или отрезок прямой) является решением задачи линейного программирования.
- Находится решение: координаты граничной точки (точка А) и значение целевой функции в этой точке:
Выводы: 1. Область допустимых решений задачи линейного программирования представляет собой выпуклый многогранник. 2. Решение задачи линейного программирования находится на границе области допустимых решений. Способ 2. Пункты 1–3 выполняются аналогично Способу 1.
- Подсчитываются значения целевой функции во всех вершинах допустимого многогранника.
, следовательно, точка – решение задачи. Пример 1. Способ 1.
- Ограничения-неравенства заменяются на ограничения-равенства:
- Строятся графики полученных функций:
Рис. 2.2. 3. Находится область допустимых решений (область, где выполняются все ограничения). 4. Строится график целевой функции при каком-либо значении правой части: 5. График целевой функции перемещается параллельно его начальному положению в сторону уменьшения целевой функции до касания с границей области допустимых решений. Отрезок прямой АВ является решением задачи линейного программирования. 6. В ответе записываются функция, граничные точки отрезка и значение целевой функции на этом отрезке: , , Способ 2. 1 – 3 пункты выполняются аналогично Способу 1.
- Подсчитываются значения целевой функции во всех вершинах допустимого многогранника.
–в двух точках, следовательно, отрезок AB, соединяющий эти точки, является решением задачи.