Исследование операций (работа 6)
Министерство общего и профессионального образования РФ
Кафедра «Системы управления»
КУРСОВАЯ РАБОТА
ПО ИССЛЕДОВАНИЮ ОПЕРАЦИЙ
Вариант 14
Челябинск, 2004
Содержание
1. Задача 1
2. Задача 2
3. Задача 3
4. Задача 4
Приложение
1. Задача 1
Условие:
Нефтеперерабатывающий завод получает 4 полуфабриката: x1 тыс. л. алкилата, x2 тыс. л. крекинг-бензина, x3 тыс. л. бензина прямой перегонки и x4 тыс. л. изопентана. В результате смешивания этих четырех компонентов в разных пропорциях образуется три сорта авиационного бензина: бензин А (а1:а2:а3:а4), бензин В (b1:b2:b3:b4) и бензин С (с1:с2:с3:с4).
Стоимость 1 тыс. л. бензина каждого сорта равна y1 руб., y2 руб. и y3 руб.
Определить соотношение компонентов, при котором будет достигнута максимальная стоимость всей продукции.
№ вар. |
x1 |
x2 |
x3 |
x4 |
y1 |
y2 |
y3 |
а1 |
а2 |
а3 |
а4 |
b1 |
b2 |
1 |
400 |
250 |
350 |
100 |
120 |
100 |
150 |
2 |
3 |
5 |
2 |
3 |
1 |
№ вар. |
b1 |
b2 |
c1 |
c2 |
c3 |
c4 |
1 |
2 |
1 |
2 |
2 |
1 |
3 |
Решение:
Составим математическую модель задачи.
Обозначим через t1 количество бензина А;
через t2 количество бензина В;
через t3 количество бензина С.
Тогда, целевая функция будет
L=y1t1+ y2t2+ y3t3=120t1+100t2+150t3 →max
Система ограничений:
Приведем систему ограничений к виду основной задачи линейного программирования (введем новые переменные t4 , t5 ,t6 ,t7, которые входят в целевую функцию с нулевыми коэффициентами):
Выберем t1 , t2 ,t3 свободными переменными, а t4 , t5 ,t6 ,t7 – базисными и приведем к стандартному виду для решения с помощью симплекс-таблицы:
L=0-(-120t1-100t2-150t3)
Составим симплекс-таблицу.
Это решение опорное, т.к. все свободные члены положительны.
Т. к. все коэффициенты в целевой функции отрицательные, то можно взять любой столбец разрешающим (пусть t1). Выберем в качестве разрешающего элемента тот, для которого отношение к нему свободного члена будет минимально (это t7)
|
b |
t1 |
t2 |
t3 |
|
||||
L |
0 |
|
-120 |
|
-100 |
|
-150 |
|
|
|
6000 |
|
60 |
|
60 |
|
180 |
||
t4 |
400 |
|
2 |
|
3 |
|
2 |
|
400/2=200 |
|
-100 |
|
-1 |
|
-1 |
|
-3 |
||
t5 |
250 |
|
3 |
|
1 |
|
2 |
|
250/3=83,3 |
|
-150 |
|
-1,5 |
|
-1,5 |
|
-4,5 |
||
t6 |
350 |
|
5 |
|
2 |
|
1 |
|
350/5=70 |
|
-250 |
|
-2,5 |
-2,5 |
|
-7,5 |
|||
t7 |
100 |
|
2 |
1 |
|
3 |
|
100/2=50 |
|
|
50 |
|
0,5 |
|
0,5 |
|
1,5 |
Далее меняем t2 и t1 .
|
b |
t7 |
t2 |
t3 |
|||||
L |
6000 |
|
60 |
|
-40 |
|
30 |
|
|
|
4000 |
|
40 |
|
80 |
|
120 |
||
t4 |
300 |
|
-1 |
|
2 |
|
-1 |
|
300/2=150 |
|
-200 |
|
-2 |
|
-4 |
|
-6 |
||
t5 |
100 |
|
-1,5 |
|
-0,5 |
|
-2,5 |
|
|
|
50 |
|
0,5 |
|
1 |
|
-4,5 |
||
t6 |
50 |
|
-2,5 |
|
-0,5 |
|
-6,5 |
|
|
|
50 |
|
0,5 |
|
1 |
-7,5 |
|||
t1 |
50 |
|
0,5 |
|
0,5 |
1,5 |
|
50/0,5=100 |
|
|
100 |
|
1 |
|
2 |
|
1,5 |
|
b |
t7 |
t1 |
t3 |
||||
L |
10000 |
|
100 |
|
80 |
|
150 |
|
|
|
|
|
|
|
|
|
|
t4 |
100 |
|
-3 |
|
-4 |
|
-7 |
|
|
|
|
|
|
|
|
|
|
t5 |
150 |
|
-1 |
|
1 |
|
-1 |
|
|
|
|
|
|
|
|
|
|
t6 |
100 |
|
-2 |
|
1 |
|
-5 |
|
|
|
|
|
|
|
|
|
|
t2 |
100 |
|
1 |
|
2 |
|
3 |
|
|
|
|
|
|
|
|
|
Т.к. коэффициенты при переменных в целевой функции положительны, следовательно, это оптимальное решение.
Таким образом, t1 = t3 =0; t2=100; L=10000.
Т.е. для получения максимальной прибыли следует производить только бензин В (100 тыс. л.), при этом выручка составит 10000 руб.
ОТВЕТ: для получения максимальной прибыли следует производить только бензин В (100 тыс. л.), при этом выручка составит 10000 руб.
2. Задача 2
Условие:
С помощью симплекс–таблиц найти решение задачи линейного программирования: определить экстремальное значение целевой функции Q=CTx при условии Ax B,
где CT = [ c1 c2 . . . c6 ]T , ВT = [ b1 b2 . . . b6 ]T ,
XT = [ x1 x2 . . . x6]T , А= [aij] (i=1,6; j=1,3).
№ вар. |
с1 |
с2 |
с3 |
с4 |
с5 |
с6 |
b1 |
b2 |
b3 |
Знаки ограничений |
a11 |
a12 |
a13 |
a14 |
||
1 |
2 |
3 |
||||||||||||||
34 |
3 |
3 |
1 |
1 |
0 |
0 |
4 |
4 |
15 |
= |
= |
= |
2 |
0 |
3 |
1 |
№ вар. |
a15 |
a16 |
a21 |
a22 |
a23 |
a24 |
a25 |
a26 |
a31 |
a32 |
a33 |
a34 |
a35 |
a36 |
Тип экстрем. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
0 |
0 |
1 |
0 |
–1 |
2 |
3 |
0 |
3 |
3 |
6 |
3 |
6 |
0 |
max |
Решение:
Исходная система:
Целевая функция Q= x1+3x2+x3+3x5.
Пусть х3, х4 – свободные переменные, х1, х2, х5 – базисные.
Приведем систему и целевую функцию к стандартному виду, для построения симплекс-таблицы:
Q=9 - (9/2x3-1/2x4)
Составим симплекс-таблицу:
|
b |
x3 |
x4 |
||||
Q |
9 |
|
9/2 |
|
-1/2 |
|
|
|
2/3 |
|
-5/6 |
|
1 |
||
x1 |
2 |
|
3/2 |
|
1/2 |
|
2/0,5=4 |
|
-2/3 |
|
5/6 |
|
-1 |
||
x2 |
7/3 |
|
4/3 |
|
0 |
|
|
|
0 |
|
0 |
0 |
|||
x5 |
2/3 |
|
-5/6 |
|
1/2 |
|
2/3 : 1/2=4/3 |
|
4/3 |
|
-5/3 |
|
2 |
Это опорное решение, т.к. свободные члены положительны.
Т.к. коэффициент при х4 отрицательный, то это и будет разрешающий столбец. В качестве разрешающего элемента тот, для которого отношение к нему свободного члена будет минимально (это х5).
|
b |
x3 |
x5 |
|||
Q |
29/3 |
|
11/3 |
|
1 |
|
|
|
|
|
|
|
|
x1 |
4/3 |
|
2/3 |
|
-1 |
|
|
|
|
|
|
|
|
x2 |
7/3 |
|
4/3 |
|
0 |
|
|
|
|
|
|
|
|
x4 |
4/3 |
|
-5/3 |
|
2 |
|
|
|
|
|
|
|
Т.к. коэффициенты при переменных в целевой функции положительны, следовательно, это оптимальное решение.
Т. о. Q=29/3
x3=x5=0; x1=4/3; x2=7/3; x4=4/3.
ОТВЕТ: Q=29/3ж
x3=x5=0; x1=4/3; x2=7/3; x4=4/3.
3. Задача 3
Условие:
Решение транспортной задачи:
1. Записать условия задачи в матричной форме.
2. Определить опорный план задачи.
3. Определить оптимальный план задачи.
4. Проверить решение задачи методом потенциалов.
№вар. |
а1 |
а2 |
а3 |
b1 |
b2 |
b3 |
b4 |
b5 |
с11 |
с12 |
с13 |
14 |
90 |
50 |
30 |
15 |
45 |
45 |
50 |
15 |
45 |
60 |
40 |
с14 |
с15 |
с21 |
с22 |
с23 |
с24 |
с25 |
с31 |
с32 |
с33 |
с34 |
с35 |
60 |
95 |
35 |
30 |
55 |
30 |
40 |
50 |
40 |
35 |
30 |
100 |
Решение:
Составим таблицу транспортной задачи и заполним ее методом северо-западного угла:
|
B1 |
B2 |
B3 |
B4 |
B5 |
a |
|||||
A1 |
|
45 |
|
60 |
|
40 |
|
60 |
95 |
90 |
|
15 |
|
45 |
|
30 |
|
|
|
||||
A2 |
|
35 |
|
30 |
|
55 |
|
30 |
|
40 |
50 |
|
|
|
|
15 |
|
35 |
|
|
|
||
A3 |
|
50 |
|
40 |
|
35 |
|
30 |
100 |
30 |
|
|
|
|
|
|
|
15 |
|
15 |
|||
b |
15 |
45 |
45 |
50 |
15 |
170 |
Это будет опорный план.
Количество заполненных ячеек r=m+n-1=6.
Рассмотрим цикл (1,2)-(1,3)-(2,3)-(3,2):
с1,2+с2,3>c1.3+c3.2 (60+55>30+40)
Количество единиц товара, перемещаемых по циклу: min (с1,2 ; с2,3)=15
Рассмотрим цикл (2,4)-(2,5)-(3,5)-(3,4):
c2,4+с3,5>c2.5+c3.4 (30+40>30+100)
Количество единиц товара, перемещаемых по циклу: min (с2,4 ; с3,5)=15
В результате получится следующий план:
|
B1 |
B2 |
B3 |
B4 |
B5 |
a |
|||||
A1 |
|
45 |
|
60 |
|
40 |
|
60 |
95 |
90 |
|
15 |
|
30 |
|
45 |
|
|
|
||||
A2 |
|
35 |
|
30 |
|
55 |
|
30 |
|
40 |
50 |
|
|
15 |
|
|
|
20 |
|
15 |
|
||
A3 |
|
50 |
|
40 |
|
35 |
|
30 |
100 |
30 |
|
|
|
|
|
|
|
30 |
|
||||
b |
15 |
45 |
45 |
50 |
15 |
170 |
Больше циклов с «отрицательной ценой» нет, значит, это оптимальное решение.
Проверим методом потенциалов:
Примем α1=0, тогда βj = cij – αi (для заполненных клеток).
Если решение верное, то во всех пустых клетках таблицы Δij = cij – (αi+ βj) ≥ 0
Очевидно, что Δij =0 для заполненных клеток.
В результате получим следующую таблицу:
|
β1=45 |
β2=60 |
β3=40 |
β4=60 |
β5=70 |
|
|||||
α1=0 |
|
45 |
|
60 |
|
40 |
|
60 |
95 |
90 |
|
15 |
|
30 |
|
45 |
|
0 |
|
+ |
|||
α2= -30 |
|
35 |
|
30 |
|
55 |
|
30 |
|
40 |
50 |
+ |
|
15 |
|
+ |
|
20 |
|
15 |
|
||
α3= -30 |
|
50 |
|
40 |
|
35 |
|
30 |
100 |
30 |
|
+ |
|
+ |
|
+ |
|
30 |
|
+ |
|||
|
15 |
45 |
45 |
50 |
15 |
170 |
Δ1,4=0 показывает, что существует еще один цикл с такой же ценой (1,2)-(1,4)-(2,4)-(2,2). Но так как при этом общая стоимость не изменится, то нет смысла менять перевозки.
Таким образом, решение верное, т.к. Δij ≥0.
ОТВЕТ:
|
B1 |
B2 |
B3 |
B4 |
B5 |
a |
|||||
A1 |
|
45 |
|
60 |
|
40 |
|
60 |
95 |
90 |
|
15 |
|
30 |
|
45 |
|
|
|
||||
A2 |
|
35 |
|
30 |
|
55 |
|
30 |
|
40 |
50 |
|
|
15 |
|
|
|
20 |
|
15 |
|
||
A3 |
|
50 |
|
40 |
|
35 |
|
30 |
100 |
30 |
|
|
|
|
|
|
|
30 |
|
||||
b |
15 |
45 |
45 |
50 |
15 |
170 |
4. Задача 4
Условие:
Определить экстремум целевой функции вида
F = c11x12+c22x22+c12x1x2+b1x1+b2x2
при условиях
a11x1+a12x2<=>p1
a21x1+a22x2<=>p2 .
Найти стационарную точку целевой функции и исследовать ее (функцию) на выпуклость (вогнутость) в окрестностях стационарной точки.
Составить функцию Лагранжа.
Получить систему неравенств в соответствии с теоремой Куна-Таккера.
Используя метод искусственных переменных составить симплекс-таблицу и найти решение полученной задачи линейного программирования.
Дать ответ с учетом условий дополняющей нежесткости.
№ |
b1 |
b2 |
c11 |
c12 |
c22 |
extr |
a11 |
a12 |
a21 |
a22 |
p1 |
p2 |
Знаки огр.1 2 |
|
59 |
4.5 |
1.5 |
–5 |
–2 |
–1 |
max |
2 |
–3 |
5 |
4 |
9 |
13 |
|
|
Решение:
Целевая функция: F=-5x12-x22-2x1x2+4.5x1+1.5x2
Ограничения g1(x) и g2(x): →
определим относительный максимум функции, для этого определим стационарную точку (х10, х20):
→ →
Исследуем стационарную точку на максимум, для чего определяем выпуклость или вогнутость функции
F11 (х10, х20) = -10 < 0
F12 (х10, х20) = -2
F21 (х10, х20) = -2
F22 (х10, х20) = -2
Т.к. условие выполняется, то целевая функция является строго вогнутой в окрестности стационарной точки
3) Составляем функцию Лагранжа:
L(x,u)=F(x)+u1g1(x)+u2g2(x)=
=-5x12-x22-2x1x2+4.5x1+1.5x2+u1(2x1-3x2-9)+u2(5x1+4x2-13)
Получим уравнения седловой точки, применяя теорему Куна-Таккера:
i=1;2
Объединим неравенства в систему А, а равенства в систему В:
Система А:
Система В:
Перепишем систему А:
4)Введем новые переменные
V={v1,v2}≥0; W={w1,w2}≥0
в систему А для того, чтобы неравенства превратить в равенства:
Тогда
.
Следовательно, система В примет вид:
- это условия дополняющей нежесткости.
5) Решим систему А с помощью метода искусственных переменных.
Введем переменные Y={y1; y2} в 1 и 2 уравнения системы
и создадим псевдоцелевую функцию Y=My1+My2→min
Y’=-Y= -My1-My2→max.
В качестве свободных выберем х1, х2, v1, v2, u1, u2; а в качестве базисных y1, y2, w1, w2.
Приведем систему и целевую функцию к стандартному виду, для построения симплекс-таблицы:
Решим с помощью симплекс-таблицы. Найдем опорное решение:
Примечание: вычисления производились программно, см Приложение
|
b |
x1 |
x2 |
u1 |
u2 |
v1 |
v2 |
|||||||
Y' |
-6M |
|
-12M |
|
-4M |
|
-M |
|
9M |
|
M |
|
M |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y1 |
4,5 |
|
10 |
|
2 |
|
-2 |
|
-5 |
|
-1 |
|
0 |
|
|
|
|
|
|
|
|
|
|||||||
y2 |
1,5 |
2 |
|
2 |
3 |
|
-4 |
0 |
|
-1 |
|
|||
|
|
|
|
|
|
|
|
|||||||
w1 |
-9 |
|
-2 |
3 |
|
0 |
0 |
|
0 |
0 |
|
|||
|
|
|
|
|
|
|
|
|||||||
w2 |
-13 |
-5 |
|
4 |
0 |
|
0 |
0 |
|
0 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b |
w1 |
x2 |
u1 |
u2 |
v1 |
v2 |
|||||||
Y' |
48M |
|
-6M |
|
-22M |
|
-1M |
|
9M |
|
1M |
|
1M |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y1 |
-40,5 |
|
5 |
|
17 |
|
-2 |
|
-5 |
|
-1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
y2 |
-7,5 |
|
1 |
|
5 |
|
3 |
|
-4 |
|
0 |
|
-1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
4,5 |
|
-0,5 |
|
-1,5 |
|
0 |
|
0 |
|
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
w2 |
9,5 |
|
-2,5 |
|
-3,5 |
|
0 |
|
0 |
|
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b |
w1 |
x2 |
y1 |
u2 |
v1 |
v2 |
|||||||
Y' |
68,25M |
-8,5M |
|
-30,5M |
-0,5M |
|
11,5M |
1,5M |
|
1M |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u1 |
20,25 |
|
-2,5 |
|
-8,5 |
|
-0,5 |
|
2,5 |
|
0,5 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
y2 |
-68,25 |
|
8,5 |
|
30,5 |
|
1,5 |
|
-11,5 |
-1,5 |
|
-1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
4,5 |
|
-0,5 |
|
-1,5 |
|
0 |
|
0 |
|
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
w2 |
9,58 |
|
-2,5 |
|
-3,5 |
|
0 |
|
0 |
|
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b |
w1 |
x2 |
y1 |
y2 |
v1 |
v2 |
|||||||
Y' |
0 |
|
0 |
|
0 |
|
M |
|
M |
|
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u1 |
5,413043 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
u2 |
5,934783 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
x1 |
4,5 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
w2 |
9,5 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Т. о, w1=x2=y1=y2=v1=v2=0; u1=5,413043; u2=5,934783; x1=4.5; w2=9.5.
б) Условия дополняющей нежесткости не выполняются (u2w2≠0), значит, решения исходной задачи квадратичного программирования не существует.
ОТВЕТ: не существует.
Приложение
#include <math.h>
#include <stdio.h>
main()
{
int i,j,k,m;
double h,n,a[5][7],b[5][7];
clrscr();
printf ("Введите числа матрицы А ");
for (i=0; i<5; i++){for(j=0; j<7; j++) {scanf ("%lf",&n); a[i][j]=n;}}
printf ("Введите координаты разрешающего элемента\n");
scanf("%d",&k) ;
scanf ("%d",&m);
printf (" матрицa A \n");
for (i=0; i<5; i++)
{for(j=0; j<7; j++) printf (" %lf",a[i][j]);printf ("\n");}
printf (" координаты \n ");
printf("%d %d",k,m) ;
h=1/a[k][m];
b[k][m]=h;
printf ("\n h=%lf",h);
for (i=0; i<7; i++)
{ if (i!=m) b[k][i]=a[k][i]*b[k][m]; }
for (i=0;i<5; i++)
{ if (i!=k) b[i][m]=-a[i][m]*b[k][m];}
for (i=0;i<5;i++)
{
for (j=0;j<7;j++)
if ((i!=k)&&(j!=m)) b[i][j]=a[i][j]+a[k][j]*b[i][m];
}
printf ("\n результат ");
printf (" матрицa B \n");
for (i=0; i<5; i++)
{for(j=0; j<7; j++) printf (" %lf",b[i][j]);printf ("\n");}
getch();
}