Линейные модели являются одним из наиболее активно используемых классов мат. моделей. Они сравнительно просты и хорошо разработаны и достаточно эффективны в целом ряде стандартных ситуаций.
Программирование в данном термине имеет смысл планирования, а линейное означает, что ищется экстремум линейной целевой функции при линейных ограничениях.
Наиболее часто и эффективно ЛП применяется при решении следующих типов задач:
Построение математической модели включает 3 этапа:
1. определение переменных
2. выбор целевой функции
3. наложение ограничений
Переменными называются величины х1, х2, …,хn, кот. полностью характеризуют экономический процесс. Их можно записать в виде вектора х = (х1, х2, …,хn).
Целевой функцией называется функция переменных задачи, кот. характеризуют качество выполняемой задачи и экстремум, кот. необходимо найти. Для ЗЛП целевая функция линейна и в общем виде выглядит так:
Z (x)=c1×1+c2×2+…+cnxn -> max (min)
Система ограничений включает в себя систему уравнений и неравенств, кот. удовлетворяют переменным задачи и кот. следуют из ограниченности ресурсов или других экономических и физических условий. В общем виде выглядит как:
a11x1 + a12x2 + a13x3 + … + a1nxn <= b1
a21x1 + a22x2 + a23x3 + … + a2nxn <= b2
……………………………………………..
am1x1 + am2x2 + am3x3 + … + amnxn <= bm
xi>0, i =1,n
Линейность предполагает наличие
Для того, чтобы решить задачу, необходимо привести ее к стандартному либо каноническому виду.
Стандартный вид ЗЛП — задача на максимум при ограничении типа ≤ (на минимум при ≥), на все переменные наложены условия неотрицательности. Если в задаче есть уравнения, то чтобы их привести к виду ≤, необходимо из левой части вычесть переменную xn+1, если ограничение ≥, то умножить на -1. Если не на все переменные наложено условие неотрицательности, необходимо заменить переменную разностью 2х неотрицательных переменных xt = xn+2 — xn+3
Графическая интерпретация.
Пример:
Вывод:
Z = 4×1 — 3×2 ->ecstr
-x1 + 2×2<=14
2×1 + x2<=17
3×1 — x2<=8
X1 + x2 =>4
X1>0
X2>0
Ответ: F (a)min = -21, F (b)max = 9
- если оптимальный план существует, то он находится не внутри, а на границе многоугольника решений.
- если оптимальный план единственный, то он совпадает с одной из угловых точек многоугольника решений.
- если оптимальных планов множество, то они совпадают с одной из сторон многоугольника решений.
- если оптимальный план не существует, то система неравенств противоречива или определена неограниченным прямоугольником вершины.
Разработан в 1947 г. Американским ученым Данцингом. В настоящее время симплекс метод является универсальным методом линейного программирования.
При графическом способе решения ЗЛП решению всегда соответствует одна из угловых точек пространства решения. Именно этот результат положен в основу решения симплекс методом. В его вычислительной схеме реализуется упорядоченный процесс, при кот., начиная с некоторой исходной угловой точки (обычно (0,0)), осуществляют последовательные переходы от одной экстремальной точки к другой до тех пор, пока не будет найдена точка, соответствующая оптимальному решению.
Решение, найденное в точке (0,0) называется начальным решением. От этой точки происходит переход к некоторой смежной угловой точке. Выбор точки зависит от коэффициентов ЦФ. Выбор последующей точки определяется двумя правилами:
1) каждая последующая угловая точка должна быть смежной с предыдущей.
2) обратный переход, предшествующий экстремуму точки производиться не может.
Будем считать, что линейная модель канонической формы содержит m уравнений и n неизвестных, где m≤n, тогда все допустимые экстремальные точки определяются как все однозначные неотрицательные решения системы m уравнений, в которой
Если базисное решение удовлетворяет требованию неотрицательности правых частей, то оно называется допустимым базисным решением. Переменные, имеющие
Реализация вычислений процедур симплекс методом существенно упрощается тем, что для каждую последующую экстремальную точку можно найти путем взаимной замены по одной переменной в составе базисных и небаз.
Включаемой переменной называется небазисная в данный момент переменная, кот. будет включена в множество базисных переменных на следующей итерации.
Исключаемая переменная — это та базисная переменная, кот. на следующей итерации подлежит исключению из множества базисных переменных.
Алгоритм
Шаг 0. Используя линейную модель канонической формы определяют начальной допустимое базисное решение путем приравнивая к 0
Шаг 1. из числа текущих небазисных, приведенных к 0 переменных, выбирается включаемая в новый базис переменная, увеличение которой обеспечивает улучшение значений ЦФ. Если такое переменной нет, то вычисления прекращаются,
Шаг2. Из числа переменных текущего базиса выбирается исключаемая переменная, кот. должна принять нулевое значение при введении в состав базиса новой переем.
Шаг 3. Находится новое базисное решение, соответствующее новому составу базисных и небазисных
Существуют два условия, используемые в симплекс методе:
Строку соответствующую исключаемой переменной называют ведущей, или разрешающей.
Элемент, находящийся на пересечении ведущих столбца и строки, называется ведущим элементом.
ast -ведущий столбец текущей таблицы
a’st – рассчитываемы элемент новой симплекc-таблицы
a’st=(alp*ast- alt* asp)/ ast
Пример
Для изготовления 4 видов продукции требуется 3 вида сырья. Запасы и нормы представлены в таблице.
a | b | c | d | запасы | |
1 | 1 | 2 | 1 | 0 | 18 |
2 | 1 | 1 | 2 | 1 | 30 |
3 | 1 | 3 | 3 | 2 | 40 |
цена | 12 | 7 | 18 | 10 |
Найти max общей стоимости выпускаемой продукции.
Z = 12×1 + 7×2 + 18×3 + 10×4 -> max
x1 + 2×2 + x3 <=18
x1 + x2 + 2×3 + x4 <= 30
x1 + 3×2 + 3×3 + 2×4 <=40
xi => 0, i = 1,4
x1 + 2×2 + x3 + x5 <=18
x1 + x2 + 2×3 + x4 + x6 <= 30
x1 + 3×2 + 3×3 + 2×4 + x7<=40
xi => 0, i = 1,7
Z = 12×1 + 7×2 + 18×3 + 10×4 + x5 + x6 + x7 -> max
x5 = 18 — (x1 + 2×2 + x3)
x6 = 30 — (x1 + x2 + 2×3 + x4)
x7 = 40 — (x1 + 3×2 + 3×3 + 2×4)
x1 = x2 = x3 = x4 = 0
x5 = 18
x6 = 30
x7 = 40
Z = 0
x1 | x2 | x3 | x4 | x5 | x6 | x7 | P | ||
x5 | 1 | 2 | 1 | 0 | 1 | 0 | 0 | 18 | 18 |
x6 | 1 | 1 | 2 | 1 | 0 | 1 | 0 | 30 | 15 |
x7 | 1 | 3 | 3 | 2 | 0 | 0 | 1 | 40 | 40/3 |
Z | -12 | -7 | -18 | -10 | 0 | 0 | 0 | 0 |
Если в ведущей строке есть 0, то столбцы, переносятся в следующую таблицу без изменений и, наоборот, если в столбце есть 0, то строки переносятся.
Остальные элементы считаются по правилу прямоугольника.
Напрмер:
A51 = (1 * 3 — 1 * 1) / 3 = 2/3
A52 = (2 * 3 — 1 * 3) / 3 = 1
x1 | x2 | x3 | x4 | x5 | x6 | x7 | P | ||
x5 | 2/3 | 1 | 0 | -2/3 | 1 | 0 | -1/3 | 14/3 | 7 |
x6 | 1/3 | 0 | 0 | 1 | 10/3 | 10 | |||
x3 | 1/3 | 1 | 1 | 2/3 | 0 | 0 | 1/3 | 40/3 | 40 |
Z | -6 | 11 | 0 | 2 | 0 | 0 | 6 | 240 |
Вычисления продолжаются до тех пор, пока в строке Z все элементы не будут положительными.