Академический Документы
Профессиональный Документы
Культура Документы
линейного программирования
o Формы задачи линейного программирования
o Свойства систем линейных алгебраических
уравнений
o Базисные решения
o Общая характеристика симплекс-метода
o Вычислительная схема симплекс-метода
o Табличный алгоритм симплекс-метода
1
Геометрическая интерпретация задачи
линейного программирования
o Целевая функция - уравнение вида: F(x1,x2) = c1x1 + c2x2
задает плоскость в 3х-мерном пространстве
o Ограничение-равенство вида: a1x1+a2x2 = b1
задает прямую в плоскости OXY
o Ограничение-неравенство вида: a1x1+a2x2 ≤ b1
задает одну из полуплоскостей
плоскости OXY
x1 ≥ 0
2⋅ x1 + 6⋅ x2 ≤ 12
2
x1
( )
c1 x1
x2 ≤ 2 −
3
c1( x1)
x1
1
( )
c1 x1 → 2 −
3
x2 ≥ 0
0
0 2 4 6 8
x1
2
Общая форма задачи
линейного программирования
o Тип ограничений определяет форму задачи линейного
программирования
∑a
j =1
ij ⋅ x j ≤ bi , i =
1 m
x j ≥ 0, j = 1 N
• Система ограничений содержит только неравенства: стандартная форма
• Тип неравенства не имеет значения:
x ≥ 1 → − x ≤ −1
4
Каноническая форма задачи
линейного программирования
Целевая функция:
N
=F ∑C x
j =1
j j → min/ max
∑a
j =1
ij ⋅ x j = bi , i = 1 m
x j ≥ 0, j = 1 N
Каноническая форма задачи линейного программирования:
• все ограничения в задаче – равенства
• все переменные в задаче неотрицательны
5
Приведение к канонической форме
o Любое неравенство можно преобразовать в уравнение, введя
дополнительную переменную:
a1 ⋅ x1 + a 2 ⋅ x 2 ≤ b a1 ⋅ x1 + a 2 ⋅ x 2 + s = b
s≥0
o Дополнительные переменные – остатки (slack), разности правой и
левой частей неравенств системы ограничений для некоторого
решения задачи ЛП:
s = b − a1 ⋅ x1 − a 2 ⋅ x 2
o Если в оптимальном решении остаток равен нулю, то ресурс
расходуется полностью и ограничение является связывающим
6
Приведение к канонической форме
других видов ограничений
o Ограничения вида ≥ также преобразуются в равенства:
a1 ⋅ x1 + a 2 ⋅ x 2 ≥ b a1 ⋅ x1 + a 2 ⋅ x 2 − s = b
s≥0
o Если переменная в задаче ЛП может принимать отрицательные
значения, то ее следует заменить на разность двух
неотрицательных переменных:
x2= s1 − s2
a1 ⋅ x1 + x 2 = b a1 ⋅ x1 + s1 − s2 =
b
x2 ∈ R s1 ≥ 0, s2 ≥ 0
7
Системы линейных
алгебраических уравнений
В результате преобразования система ограничений становится СЛАУ:
8
Число решений СЛАУ
a11 ⋅ x1 + a12 ⋅ x 2 + + a1n ⋅ x n = b1
a ⋅ x + a ⋅ x + + a ⋅ x = b m – число уравнений
21 1 22 2 2n n 2
n – число переменных
a m1 ⋅ x1 + a m 2 ⋅ x 2 + + a mn ⋅ x n = bm
x1 − x2 − 2 x3 + x4 =0
2 x1 + x2 + 2 x3 − x4 = 2
10
Решение примера
o Найти возможные группы базисных переменных в системе:
x1 − x2 − 2 x3 + x4 =0
2 x1 + x2 + 2 x3 − x4 = 2
o Возможные группы:
1 −1 −1 −2
{x1 , x2 } → =1 + 2 =3 {x2 , x3 } → =−2 + 2 =0
2 1 1 2
1 −2 −1 1
{x1 , x3 } → = 2+4 =6 {x2 , x4 } → = 1−1 = 0
2 2 1 −1
1
1 −2 1
{x1 , x4 } → =−1 − 2 =−3 {x3 , x4 } → = 2−2 = 0
2 −1 2 −1
базисные не базисные
11
Число базисных решений
Базисное решение определяется произвольным выбором m
переменных из общего количества n, поэтому общее число базисных
решений – число сочетаний из n по m:
n!
C nm =
m!⋅(n − m )!
Число базисных решений может сократиться из-за линейной
зависимости некоторых уравнений в преобразованной системе
Aбаз ⋅ X баз =
B баз Должно выполняться: (
r Aбаз = m) или: Aбаз ≠ 0
12
Решения неопределенной СЛАУ
Если m < n, то СЛАУ имеет бесконечное множество решений
Чтобы найти эти решения, необходимо выбрать любые m переменных
из n и выразить их через остальные n-m переменных:
a11 ⋅ x1 + a12 ⋅ x 2 + + a1n ⋅ x n = b1
a ⋅ x + a ⋅ x + + a ⋅ x = b
21 1 22 2 2n n 2
a m1 ⋅ x1 + a m 2 ⋅ x 2 + + a mn ⋅ x n = bm
x1 = β 1 − α 1,1 x m +1 − α 1, 2 x m + 2 − − α 1,n − m x n
x = β − α x − α x − − α
2 2 2 ,1 m +1 2, 2 m + 2 2,n − m x n
x m = β m − α m ,1 x m +1 − α m , 2 x m + 2 − − α m ,n − m x n
14
Решение неопределенной СЛАУ: пример
o Решить систему уравнений: x1 − x2 − 2 x3 + x4 =0
2 x1 + x2 + 2 x3 − x4 = 2
o Наборы базисных переменных:
x2 = 2 / 3 − 2 x3 + x4
x2 =x1 − 2 x3 + x4
{x1, x2 }: → 2
2
1 x + ( x1 − 2 x3 + x4 ) + 2 x3 − x4 2
= x1 = 3
1 1 1
x =− x + x4
x
1 = x 2 + 2 x3 − x4 3
3 2
2
2
{x1, x3 }: →
2 x2 + 4 x3 − 2 x4 + x2 + 2 x3 − x4 = 2
x1 =
2
3
2
x
1 3 =
x4 =− x1 + x2 + 2 x3
{x1, x4 }: →
2 x1 + x2 + 2 x3 + x1 − x2 − 2 x3 = 2 2
x4 =− + x2 + 2 x3
3 15
Базисные решения СЛАУ
o Базисным решением системы m линейных уравнений с n
переменными называется решение, в котором все n-m
неосновных решений системы равны нулю
x1 = β 1 − α 1,1 x m +1 − α 1, 2 x m + 2 − − α 1,n − m x n
x = β − α x − α x − − α
2 2 2 ,1 m +1 2, 2 m + 2 2,n − m x n
x m = β m − α m ,1 x m +1 − α m , 2 x m + 2 − − α m ,n − m x n
16
Базисные решения
неопределенной СЛАУ: пример
x1 − x2 − 2 x3 + x4 =0
o Найти базисные решения системы:
2 x1 + x2 + 2 x3 − x4 = 2
o Наборы базисных переменных:
x2 = 2 / 3 − 2 x3 + x4
2 2 - допустимое базисное
{x1, x2 }: 2 → , , 0, 0 решение
x =
1 3 3 3
1 1 1
3 3 2 2 2 x4 2 1
x =− x +
- допустимое базисное
{x1, x3 }: → , 0, , 0 решение
x = 2 3 3
1 3
2
x
1 3= - недопустимое базисное
2 2
{x1, x4 }: → , 0, 0, − решение
x =− 2 + x + 2 x 3 3
4 3
2 3
17
Выпуклые множества точек
o Множество точек называется выпуклым, если оно вместе с
любыми двумя своими точками содержит весь отрезок,
соединяющий эти точки
19
Общая характеристика симплекс-метода
• Позволяет решать любые
6 c4 x1( ) задачи ЛП, представленные в
( )
с1 x1
канонической форме
( )
c1 x1 →
−3
⋅x + 6 • Все переменные в задаче
4 ( )
CF x1 , F 2 1
−1
должны быть неотрицательны
( )
c2 x1 →
2 1
⋅x + 3
• Метод универсален, обладает
E D ( )
c3 x1 c3(x1) → 2 высокой эффективностью, легко
2 C c4(x1) → x1 + 1 алгоритмизируется
F ) F
• Разработчик – Дж. Данциг
c2 x1( )
A0 1 2 3 4 5 6
B
x1
F 5 x1 + 4 x2
=
o С учетом ограничений:
6 x1 + 4 x2 ≤ 24
x + 2x ≤ 6
1 2
x1 ≥ 0, x2 ≥ 0
x2 ≤ 2
− x1 + x2 ≤ 1
o Приведение к канонической форме:
6 x1 + 4 x2 + s1 =24 x1 ≥ 0, x2 ≥ 0,
x + 2x + s = 6 s1 ≥ 0,s 2 ≥ 0,s3 ≥ 0,s 4 ≥ 0
1 2 2
x2 + s3 = 2 (во всех последующих системах предполагается
неотрицательность переменных и это условие
− x1 + x2 + s4 =1 отдельно указываться не будет)
21
Вычислительная схема – шаг 1
Исходная система: Базисные переменные – s1..s4: Базисное решение:
6 x1 + 4 x2 + s1 =24 s1 =24 − 6 x1 − 4 x2 x1 = 0
x + 2x + s = 6 s =6 − x − 2 x x = 0
1 2 2 2 1 2
2
x2 + s3 = 2 s3= 2 − x2 s1 = 24
− x1 + x2 + s4 =1 s4 =1 + x1 − x2
s2 = 6
s3 = 2
s4 = 1
X = {0;0;24;6;2;1}
F = 5 x1 + 4 x2 = 5 ⋅ 0 + 4 ⋅ 0 = 0
22
Вычислительная схема – выбор новой
базисной переменной
o Переменная x1 при переводе в базис даст наибольшее приращение целевой
функции: F=5x1+4x2
o На графической схеме шаг из А по переменной x1 означает переход в B или в
(6;0). Только решение в точке B (ограничение c1) является допустимым:
X = {4;0;0;2;2;5}
1 2
F =5 ⋅ 4 − s1 − x2 + 4 x2 =
6 3
5 2
=20 − s1 + x2
6 3
Решение можно улучшить,
если x2 примет положительное
значение. Необходимо
перевести эту переменную в
базис
24
Вычислительная схема – выбор новой
базисной переменной
o На графической схеме шаг из B по переменной x2 означает переход в точку C,
Только это решение является допустимым:
27
Алгоритм симплекс-метода
o Описание алгоритма симплекс-метода и
пример содержатся в лекции «Решение задач
линейного программирования симплекс-
методом»
o Пример реализации табличного алгоритма в
Excel содержится в файле «Основной
пример: решение задачи о производстве
краски симплекс-методом»
28
Рекомендуемая литература