Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
линейного программирования
v 1.2, 02.03.2015 1
Задача линейного программирования
2
Геометрическая интерпретация задачи
линейного программирования
• Целевая функция - уравнение вида: F(x1,x2) = c1x1 + c2x2
задает плоскость в 3х-мерном пространстве
• Ограничение-равенство вида: a1x1+a2x2 = b1
задает прямую в плоскости OXY
• Ограничение-неравенство вида: a1x1+a2x2 ≤ b1
задает одну из полуплоскостей
плоскости OXY
3
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
3
Пример задачи планирования производства
• Маркетинговые ограничения:
– невозможно продать более 2 т краски B работ в день
– Производство краски B не должно превышать производство краски A
более чем на 1 т
4
Математическая постановка задачи
Ресурс на тонну А на тонну B Доступно
Связующее 6 4 24
Пигмент 1 2 6
Доход /т 5 4 → max
• Маркетинговые ограничения:
– невозможно продать более 2 т краски B работ в день
– Производство краски B не должно превышать производство краски A более чем на 1 т
• Необходимо составить план производства, обеспечивающий
наибольшую прибыль
• Математическая постановка задачи:
c1 : 6 x1 + 4 x2 ≤ 24
F ( x1 , x2 ) = 5 x1 + 4 x2 → max c : 1x + 2 x ≤ 6
2 1 2
c3 : x2 ≤ 2
при условии:
c : x − x ≤ 1
4 2 1
c5 : x1 ≥ 0, c6 : x2 ≥ 0
5
Графическое решение
A, B, C, D, E, F –
угловые точки
Примечание: в GeoGebra
приходится использовать
переменные x, y вместо x1 и x2
связывающие
ограничения
оптимальное
решение
не связывающие
ограничения
• Оптимальное решение достигается в точке C – пересечение ограничений c1 и c2
• Координаты можно найти, решив систему, составленную из уравнений прямых,
соответствующих этим ограничениям:
c1 : 6 x1 + 4 x2 =
24 x1 = 3
c2 : 1x1 + 2 x2 =6 x2 = 1.5
• Значение целевой функции получается подстановкой координат в уравнение для
целевой функции:
F ( x1 , x2 ) = 5 x1 + 4 x2 = 5 ⋅ 3 + 4 ⋅1.5 = 21
6
Изменение целевых коэффициентов
𝑐𝑐1 𝐹𝐹
𝐹𝐹 = 𝑐𝑐1 𝑥𝑥1 + 𝑐𝑐2 𝑥𝑥2 → 𝑥𝑥2 = − 𝑥𝑥1 +
𝑐𝑐2 𝑐𝑐2
𝑎𝑎1 𝑏𝑏
𝑎𝑎1 𝑥𝑥1 + 𝑎𝑎2 𝑥𝑥2 = 𝑏𝑏 → 𝑥𝑥2 = − 𝑥𝑥1 +
𝑎𝑎2 𝑎𝑎2
1 𝑐𝑐1 3
≤ ≤
2 𝑐𝑐2 2
при 𝑐𝑐2 = 4: 2 ≤ 𝑐𝑐1 ≤ 6
10
при 𝑐𝑐1 = 5: ≤ 𝑐𝑐2 ≤ 10
3
7
Изменение правых частей ограничений
𝑎𝑎1 𝑏𝑏
𝑎𝑎1 𝑥𝑥1 + 𝑎𝑎2 𝑥𝑥2 = 𝑏𝑏 → 𝑥𝑥2 = − 𝑥𝑥1 +
𝑎𝑎2 𝑎𝑎2
Граничные
точки при
изменении b2
Граничные
точки при
изменении b1
8
Теневая цена
• Оптимальное решение остается
в точке C при изменении
правой части c1 в пределах:
– 20 ≤ 𝑏𝑏1 ≤ 36
• При этом оптимальному
решению будут соответствовать
точки:
– 𝐶𝐶 ≡ 𝐷𝐷 2,2 → 𝐹𝐹 = 18
– 𝐶𝐶 ≡ 𝐺𝐺 6,0 → 𝐹𝐹 = 30
• Теневая цена ресурса 𝑖𝑖:
𝜕𝜕𝜕𝜕 Δ𝐹𝐹
𝑦𝑦𝑖𝑖 = = lim
𝜕𝜕𝑏𝑏𝑖𝑖 Δ𝑏𝑏𝑖𝑖→0 Δb𝑖𝑖
• При изменении правой части в допустимых пределах (не меняющих оптимальную
угловую точку), теневая цена постоянна и может быть вычислена так:
Δ𝐹𝐹
𝑦𝑦𝑖𝑖 =
Δbi
• Теневая цена ресурса 1:
30 − 18 12 3
𝑦𝑦1 = = = = 0,75
36 − 20 16 4
9
Модель в GLPK
var x1 >= 0; #производство краски А и ограничение неотрицательности c5
var x2 >= 0; #производство краски B и ограничение неотрицательности c6
subject to C4_Ratio:
#c4 - маркетинговое ограничение на соотношение объемов выпуска
x2 <= x1 + 1;
maximize Profit:
5 * x1 + 4 * x2;
solve;
end; 10
Отчет по устойчивости GLPK
Остаток или Область устойчивости теневой
теневая цена цены (при изменении правой части)
ограничения
Правая часть
Левая часть
ограничения Новое
ограничения в Величина
(ограничения связывающее
оптимальном целевой функции
могут быть ограничение
решении при граничных
двухсторонними)
значениях
правой части
11
Отчет по устойчивости GLPK
14