Автор работы: Пользователь скрыл имя, 05 Ноября 2014 в 16:48, курсовая работа
В ходе работы была решена задача линейного программирования, транспортная задача и задача по принятию решений в условиях неопределенности.
Задание № 1 2
Данные для задачи № 1 2
Решение задачи № 1 3
Реализация в программной среде MATLAB задачи № 1 5
Реализация в программной среде MATLAB двойственной задачи 6
Задание № 2 7
Данные для задачи № 2 7
Метод наименьшего элемента в столбце 8
Метод потенциалов 8
Реализация в программной среде MATLAB задачи № 2 9
Задание № 3 11
Данные для задачи № 3 11
Решение для задачи № 3 11
Реализация в программной среде MATLAB задачи № 3 Для игрока А 12
Реализация в программной среде MATLAB задачи № 3 для игрока В 13
Вывод 14
Оглавление
Данные для задачи № 1
Решение задач линейного программирования
Для изготовления четырех видов продукции использкетсятри вида сырья. Запасы сырья, нормы его расхода и цена каждого продукта приведены в таблице.
Тип сырья |
Нормы расхода сырья на одно изделие |
Запасы сырья | |||
А |
Б |
В |
Г | ||
1 |
2 |
1 |
3 |
2 |
200 |
2 |
1 |
2 |
4 |
8 |
160 |
3 |
2 |
4 |
1 |
1 |
170 |
Прибыль от реализации изделия |
5 |
7 |
3 |
6 |
|
Необходимо сформулировать прямую оптимизационную задачу на максимум общей прибыли, найти оптимальный план производства.
Требуется: 1) сформулировать математическую модель задачи линейного программирования;
2) решить задачу линейного
программирования симплекс-
3) решить задачу в программной среде MATLAB;
4) составить двойственную задачу, найти её решение.
Решение задачи № 1
Математическая модель:
Z=5x1 + 7x2+3x3+6x4 à max
2x1 + x2+3x3 + 2x4 ≤ 200
x1 + 2x2 + 4x3 +8x4 ≤ 160
2x1 + 4x2 + x3 + x 4 ≤ 170
Применение симплекс-метода
2x1 + x2+3x3 + 2x4 = 200
x1 + 2x2 + 4x3 +8x4 = 160
2x1 + 4x2 + x3 + x 4 = 170
Z=5x1 + 7x2+3x3+6x4
1 шаг Вводим новые переменные:
Основные переменные – х5, х6, х7.
Неосновные переменные – х1, х2, x3, x4.
Выразить основные переменные через неосновные:
Х5 = 200 – 2х1 -х2-3x3 -2x4
Х6 = 160 –х1 –2 х2 -4x3-8x4
Х7 = 170 –2x1 -4 х2 –x3 –x4
Z=5x1 + 7x2+3x3+6x4
Х1 = (0, 0, 0, 0, 200, 160,170)
Шаг 2: Вводим ограничения для х2:
Х5 = 200 - х2 ≥ 0 х2 ≤ 200
Х6 = 160 – 2х2 ≥ 0 х2 ≤ 80
Х7 = 170 – 4х2 ≥ 0 х2 ≤ 42,5 – min => x7 в неосновной., x2 в основной.
Оcновные переменные – х2, х5, х6.
Неосновные переменные – х1, x3, x4, x7.
Выразим новые основные переменные через неосновные(х2 выражаем из урав-ия х7:
х2 = 85/2-x1/2-x3/4-x 4/4-x7/4
х5 = 315/2 –3/2* х1 - 11/4*х3-7/4*x4-x7/4
х6 = 75 – 7/2*х3 -15/2* х4 +x7/2
Z= 595/2+3/2*x1+ 5/4*x3 + 17/4*x4 +7/4*x7
Х2 = (0, 85/2, 0, 0, 315/2,75,0)
Шаг 3: Вводим ограничения для х4
Х2 = 85/2–1/4*х4 ≥ 0 х4 ≤ 170
Х6 = 75 – 15/2*х4 + х5 ≥ 0 х4 ≤ 10 – min=> x6- неосновная переменная, х4 основная
Х5= 315/2-7/4*х4≥0 х4 ≤ 90
Оcновные переменные – х2, х4, х5.
Неосновные переменные –х1+х3+х6+х7.
Выразим новые основные переменные через неосновные (х4 из х6:
Х4 = 10 – 7/15*х3 -2/15x6 +1/15*x7
Х2 = 40-1/2*x1-2/15*x3-1/30*х6 – 4/15* х7
Х5 = 140 – 3/2*х1 – 29/15*х3+ 7/30*x6+2/15x7
Z= 340+ 3/2*х1 – 11/15*х3+ 1 7/30*x6+22/15x7
Х3 = (0, 40, 0, 10, 140, 0, 0)
Шаг 4: Вводим ограничения х1
Увеличение за счет х5, так как коэффициент положительный.
х2 =40–1/2* х1 ≥ 0 x1 ≤ 80 – min=> x2 в неосновной, х1 в основной
х5 = 140 – 3/2*х1 ≥ 0 x1≤ 280/3
5 шаг
Оcновные переменные – х1, х4, х5.
Неосновные переменные – х2, х3, х6, х7.
Выразим основные переменные через неосновные(х1из х2) :
Х1 = 80-2х2 -4/15*х3 + 1/15*х6-8/15х7
Х5 = 20+-3х2 -23/15*х3 + 2/15*х6-14/15х7
Х4 = 10 -7/15*х3 + 2/15*х6-1/15х7
Z= 460-3x2-17/15*х3 + 7/15*х6-34/15х7
Х4 = (80, 0, 0, 10, 20, 0,0)
X1=80
X2=0
X3=0
Z=5*80+7*0+3*0+6*10=460
Реализация в программной среде MATLAB задачи № 1
Код
clc;
f=[5 7 3 6];
f=-f;
A=[2 1 3 2
1 2 4 8
2 4 1 1];
b=[200;160;170];
lb=[0 0 0 0];
X=linprog(f,A,b,[],[],lb,[]);
disp(X);
fd=-f*X;
disp(fd);
Решение
Optimization terminated.
80.0000
0.0000
0.0000
10.0000
460.000
Результаты идентичны, следовательно, задача решена верно.
Реализация в программной среде MATLAB двойственной задачи
Код
clc;
f=[200 160 170];
A=[2 1 2
1 2 4
3 4 1
2 8 1];
A=-A;
b=[5;7;3;6];
b=-b;
lb=[0 0 0];
X=linprog(f,A,b,[],[],lb,[]);
disp(X);
fd=-f*X;
disp(fd)
Решение
Optimization terminated.
0.0000
0.4667
2.2667
460.0000
Данные для задачи № 2
Сформулировать математическую постановку и решить следующую транспортную задачу. На трех складах поставщиков нефтепродуктов А1, А 2 и А3 находится по 400, 200 и 150 тонн нефтепродуктов соответственно. Перевозка одной тонны продуктов со склада А1 в пункты В1, В2, В3 и В4 потребеителей соответственно стоит с11, с12, с13, с14 у.е., перевозка одной тонны со склада А2 в те же пункты соответствено с21, с22, с23, с24 у.е., а перевозка одной тонны со склада А 3 в те же пункты соответственно с31, с32, с33, с34 (см. таблицу «Стоимость перевозки»). В пункты В1, В2, В3 и В4 надо доставить по 100, 200, 150, 300 тонн нефтепродуктов соответственно.
Таблица «Стоимость перевозки»
С11 |
1 |
С12 |
7 |
С13 |
4 |
С14 |
4 |
С21 |
4 |
С22 |
1 |
С23 |
6 |
С24 |
7 |
С31 |
2 |
С32 |
2 |
С33 |
9 |
С34 |
6 |
Составить такой план перевозки нефтепродуктов, при котором транспортные расходы будут минимальными.
Требуется:
Метод наименьшего элемента в столбце
В1 |
В2 |
В3 |
В4 |
Запасы у поставщиков | |
А1 |
1 100 |
7 |
4 150 |
4 150 |
400 |
А2 |
4 |
1 200 |
6 |
7 |
200 |
А3 |
2 |
2 |
9 |
6 150 |
150 |
Потребности потребителей |
100 |
200 |
150 |
300 |
Z = 100*1 + 200*1 + 150*4 + 150*4 + 150*6= 2400 т/км
Метод потенциалов
u1 + v1 = 1 Предположим, что u1 = 0,
u2 + v2 = 1 тогда v1 = 1
u1 + v3= 4 v3 = 4
u1 + v4 = 4 v4 = 4
u3 + v4 = 6 u3 = 2
u3 + v4 = 2 u2=0
Проверяем:
u1 + v2 ≤ 7 0 + 1 ≤ 7 - верно
u2 + v1 ≤ 4 0 + 1 ≤ 4 - верно
u2 + v3 ≤ 6 0 + 4 ≤ 6 – верно
u2 + v4 ≤ 7 0 + 4 ≤ 7 - верно
u3 + v1 ≤ 2 2 + 1 ≤ 2 - неверно
u3 + v3 ≤ 9 2 + 4 ≤ 9 – верно
-100 +150 0 250
0 -150 100 50
В1 |
В2 |
В3 |
В4 |
Запасы у поставщиков | |
А1 |
1 |
7 |
4 150 |
4 250 |
400 |
А2 |
4 |
1 200 |
6 |
7 |
200 |
А3 |
2 100 |
2 |
9 |
6 50 |
150 |
Потребности потребителей |
100 |
200 |
150 |
300 |
Z= 100*2 +200*1+150*4+250*4+50*6=2300
U1+V3=4 Пусть U1=0, тогда
U1+V4=4 V3=4
U2+V2=1 V4=4
U3+V1=2 V2=0
U3+V4=6 U2=1 U3=2 V1=0.
Проверяем:
U1+V1≤1 0+0≤1 – верно
u1+v2≤7 0+0≤7 – верно
U2 + V1≤ 4 1+0≤4 – верно
U2+V3≤6 1+4≤6 – верно
U2+V4 ≤7 1+4≤7 – верно
U3+V2≤2 2+0≤2 – верно
U3+V3≤9 2+4≤9 – верно
Реализация в программной среде MATLAB задачи № 2
Код
clc;
f=[1 7 4 4 4 1 76 7 2 2 9 6];
Aeq=[1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1
1 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0 0 1 0 0
0 0 1 0 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1];
beq=[400 200 150 100 200 150 300];
lb=[0 0 0 0 0 0 0 0 0 0 0 0];
x=linprog (f,[],[],Aeq,beq,lb,[]);
disp(x);
fopt=f*x;
disp(fopt)
Результаты идентичны, следовательно задача решена верно.
Данные для задачи № 3
В1 |
В2 |
В3 |
В4 |
В5 | |
А1 |
32 |
32 |
37 |
31 |
33 |
А2 |
29 |
40 |
34 |
33 |
34 |
А3 |
21 |
32 |
31 |
30 |
35 |
А4 |
35 |
34 |
25 |
30 |
35 |
А5 |
20 |
28 |
31 |
21 |
36 |
Найти наилучшее решение задачи принятия решений в условиях частичной неопределенности методом теории матричных игр.
Требуется:
Решение для задачи № 3
Матричные игры – игры, где 2 игрока играют в игру с нулевой суммой, имея конечное число чистых стратегий и задан платеж второго игрока первому. Матрица задает выигрыш первого игрока и проигрыш второго.
В1 |
В2 |
В3 |
В4 |
В5 | |
А1 |
32 |
32 |
37 |
31 |
33 |
А2 |
29 |
40 |
34 |
33 |
34 |
А3 |
21 |
32 |
31 |
30 |
35 |
А4 |
35 |
34 |
25 |
30 |
35 |
А5 |
20 |
28 |
31 |
21 |
36 |
Информация о работе Решение задач линейного программирования. Решение транспортной задачи