Математическое моделирование. 5
Задание №1. Построить на плоскости область решения системы линейных неравенств и найти максимальное и минимальное значение линейной функции в этой области.
Необходимо найти минимальное и максимальное значение целевой функции z = 5x1+4x2, при системе ограничений:
-x1+x2≤1 |
(1) |
x1-2x2≤1 |
(2) |
2x1+x2≤22 |
(3) |
x1≥0 |
(4) |
x2≥0 |
(5) |
Решение задачи линейного программирования графическим методом включает следующие этапы:
- На плоскости X10X2 строят прямые, получаемые из системы ограничений.
- Определяются полуплоскости.
- Определяют многоугольник решений;
- Строят вектор N(c1,c2), который указывает направление целевой функции;
- Передвигают прямую целевую функцию c1x2 + c2x2 = 0 в направлении вектора N до крайней точки многоугольника решений для нахождения максимума функции или в направлении противоположном вектору N, для нахождения минимума.
- Вычисляют координаты точки и значение целевой функции в этой точке.
Построим область допустимых решений, т.е. решим графически систему неравенств. Для этого построим каждую прямую и определим полуплоскости, заданные неравенствами (полуплоскости обозначены штрихом).
Пересечением полуплоскостей будет являться область, координаты точек которого удовлетворяют условию неравенствам системы ограничений задачи. Обозначим границы области многоугольника решений.
Рассмотрим целевую функцию задачи z = 5x1+4x2 → min.
Построим вектор N=(5;4).Построим прямую, отвечающую значению функции z = 5x1+4x2 = 0. Будем двигать эту прямую параллельным образом. Поскольку нас интересует минимальное решение, поэтому двигаем прямую до первого касания обозначенной области. На графике эта прямая обозначена пунктирной линией.
Область допустимых решений представляет собой многоугольник.
Прямая z(x) = const пересекает область в точке A. Так как точка A получена в результате пересечения прямых (4) и (5), то ее координаты удовлетворяют уравнениям этих прямых:
x2=0
x1=0
Решив систему уравнений, получим: x1 = 0, x2 = 0
Откуда найдем минимальное значение целевой функции:
z(X) = 5*0 + 4*0 = 0
Рассмотрим целевую функцию задачи z = 5x1+4x2 → max. Будем двигать прямую z = 5x1+4x2 параллельным образом. Поскольку нас интересует максимальное решение, поэтому двигаем прямую до последнего касания обозначенной области. На графике эта прямая обозначена пунктирной линией.
Область допустимых решений представляет собой многоугольник.
Прямая z(x) = const пересекает область в точке D. Так как точка D получена в результате пересечения прямых (1) и (3), то ее координаты удовлетворяют уравнениям этих прямых:
-x1+x2≤1
2x1+x2≤22
Решив систему уравнений, получим: x1 = 7, x2 = 8
Откуда найдем максимальное значение целевой функции:
z(X) = 5*7 + 4*8 = 67
Задание №2.Торговое предприятие при продаже трех групп товаров (j=1,3) использует три вида материально-денежных ресурсов (i=1,3) в количестве единиц. Известны нормы затрат ресурсов на реализацию единицы товарооборота – и доход от реализации единицы товарооборота - . Требуется определить оптимальны план реализации товаров, обеспечивающий торговому предприятию максимальную прибыль симплексным методом.
Исходные данные по каждому варианту приведены в таблице.
а11 |
а12 |
а13 |
а21 |
а22 |
а23 |
а31 |
а32 |
а33 |
b1 |
b2 |
b3 |
c1 |
c2 |
c3 |
|
3 |
4 |
1 |
2 |
3 |
6 |
3 |
4 |
2 |
400 |
500 |
300 |
5 |
3 |
4 |
Решим прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы.
Определим максимальное значение целевой функции F(X) = 5x1+3x2+4x3 при следующих условиях-ограничений.
3x1+4x2+x3≤400
2x1+3x2+6x3≤500
3x1+4x2+2x3≤300
3x1 + 4x2 + 1x3 + 1x4 + 0x5 + 0x6 = 400
2x1 + 3x2 + 6x3 + 0x4 + 1x5 + 0x6 = 500
3x1 + 4x2 + 2x3 + 0x4 + 0x5 + 1x6 = 300
Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид:
Решим систему уравнений относительно базисных переменных:
x4, x5, x6,
Полагая, что свободные переменные равны 0, получим первый опорный план:
X1 = (0,0,0,400,500,300)
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|
x4 |
400 |
3 |
4 |
1 |
1 |
0 |
0 |
x5 |
500 |
2 |
3 |
6 |
0 |
1 |
0 |
x6 |
300 |
3 |
4 |
2 |
0 |
0 |
1 |
F(X0) |
0 |
-5 |
-3 |
-4 |
0 |
0 |
0 |
Переходим к основному алгоритму симплекс-метода.
Итерация №0.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.
В индексной строке F(x) выбираем максимальный по модулю элемент. В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления: bi / ai1 и из них выберем наименьшее:
Следовательно, 3-ая строка является ведущей.
Разрешающий элемент равен (3) и находится на пересечении ведущего столбца и ведущей строки.
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
min |
x4 |
400 |
3 |
4 |
1 |
1 |
0 |
0 |
133.33 |
x5 |
500 |
2 |
3 |
6 |
0 |
1 |
0 |
250 |
x6 |
300 |
3 |
4 |
2 |
0 |
0 |
1 |
100 |
F(X1) |
0 |
-5 |
-3 |
-4 |
0 |
0 |
0 |
0 |
После преобразований получаем новую таблицу:
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|
x4 |
100 |
0 |
0 |
-1 |
1 |
0 |
-1 |
x5 |
300 |
0 |
0.33 |
4.67 |
0 |
1 |
-0.67 |
x1 |
100 |
1 |
1.33 |
0.67 |
0 |
0 |
0.33 |
F(X1) |
500 |
0 |
3.67 |
-0.67 |
0 |
0 |
1.67 |
Итерация №1.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.
В индексной строке F(x) выбираем максимальный по модулю элемент. В качестве ведущего выберем столбец, соответствующий переменной x3, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления: bi / ai3 и из них выберем наименьшее:
Следовательно, 2-ая строка является ведущей.
Разрешающий элемент равен (4.67) и находится на пересечении ведущего столбца и ведущей строки.
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
min |
x4 |
100 |
0 |
0 |
-1 |
1 |
0 |
-1 |
- |
x5 |
300 |
0 |
0.33 |
4.67 |
0 |
1 |
-0.67 |
64.29 |
x1 |
100 |
1 |
1.33 |
0.67 |
0 |
0 |
0.33 |
150 |
F(X2) |
500 |
0 |
3.67 |
-0.67 |
0 |
0 |
1.67 |
0 |
После преобразований получаем новую таблицу:
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|
x4 |
164.29 |
0 |
0.0714 |
0 |
1 |
0.21 |
-1.14 |
x3 |
64.29 |
0 |
0.0714 |
1 |
0 |
0.21 |
-0.14 |
x1 |
57.14 |
1 |
1.29 |
0 |
0 |
-0.14 |
0.43 |
F(X2) |
542.86 |
0 |
3.71 |
0 |
0 |
0.14 |
1.57 |
Конец итераций: индексная строка не содержит отрицательных элементов - найден оптимальный план
Окончательный вариант симплекс-таблицы:
Базис |
В |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|
x4 |
164.29 |
0 |
0.0714 |
0 |
1 |
0.21 |
-1.14 |
x3 |
64.29 |
0 |
0.0714 |
1 |
0 |
0.21 |
-0.14 |
x1 |
57.14 |
1 |
1.29 |
0 |
0 |
-0.14 |
0.43 |
F(X3) |
542.86 |
0 |
3.71 |
0 |
0 |
0.14 |
1.57 |
Оптимальный план можно записать так:
x4 = 164.29
x3 = 64.29
x1 = 57.14
F(X) = 5*57.14 + 4*64.29 = 542.86
Задание 3. К прямой задаче линейного программирования, полученной при выполнении задания 2, составить двойственную задачу. Найти оптимальный план двойственной задачи из решения прямой.
Составим двойственную задачу к прямой задаче.
3y1 + 2y2 + 3y3≥5
4y1 + 3y2 + 4y3≥3
y1 + 6y2 + 2y3≥4
400y1 + 500y2 + 300y3 → min
y1 ≥ 0
y2 ≥ 0
y3 ≥ 0
Решение двойственной задачи дает оптимальную систему оценок ресурсов.
Используя последнюю итерацию прямой задачи, найдем оптимальный план двойственной задачи.
Из теоремы двойственности следует, что Y = C*A-1.
Составим матрицу A из компонентов векторов, входящих в оптимальный базис.
Определив обратную матрицу D = А-1 через алгебраические дополнения, получим:
Как видно из последнего плана симплексной таблицы, обратная матрица A-1 расположена в столбцах дополнительных переменных.
Тогда Y = C*A-1 =
Оптимальный план двойственной задачи равен:
y1 = 0
y2 = 1/7
y3 = 14/7
Z(Y) = 400*0+500*1/7+300*14/7 = 5426/7
Задание 4. Имеется три завода, объем производства которых соответственно равен тонн в сутки. Эти заводы ежедневно удовлетворяют потребности четырех строительных объектов в количествах тонн в сутки соответственно. Стоимость перевозки (тыс.руб.) перевозки единицы продукции с каждого завода на каждый строительный объект задана матрицей тарифов С=(Сij), i=1..4, j=1..3. Найти такой план транспортировки груза, чтобы общие затраты на перевозки грузов были минимальными.
Математическая модель транспортной задачи:
F = ∑∑cijxij, (1)
при условиях:
∑xij = ai, i = 1,2,…, m, (2)
∑xij = bj, j = 1,2,…, n, (3)
Стоимость доставки единицы груза из каждого пункта отправления в соответствующие пункты назначения задана матрицей тарифов
1 |
2 |
3 |
4 |
Запасы | |
1 |
1 |
5 |
4 |
2 |
30 |
2 |
12 |
10 |
16 |
8 |
40 |
3 |
4 |
13 |
14 |
10 |
80 |
Потребности |
20 |
70 |
10 |
50 |
Проверим необходимое
и достаточное условие
∑a = 30 + 40 + 80 = 150
∑b = 20 + 70 + 10 + 50 = 150
Этап I. Поиск первого опорного плана.
- Используя метод наименьшей стоимости, построим первый опорный план транспортной задачи.
1 |
2 |
3 |
4 |
Запасы | |
1 |
1[20] |
5 |
4 |
2[10] |
30 |
2 |
12 |
10 |
16 |
8[40] |
40 |
3 |
4 |
13[70] |
14[10] |
10 |
80 |
Потребности |
20 |
70 |
10 |
50 |
2. Подсчитаем число занятых клеток таблицы, их 5, а должно быть m + n - 1 = 6. Следовательно, опорный план является вырожденным.
Строим новый план.
1 |
2 |
3 |
4 |
Запасы | |
1 |
1 |
5 |
4 |
2[30] |
30 |
2 |
12 |
10[20] |
16 |
8[20] |
40 |
3 |
4[20] |
13[50] |
14[10] |
10 |
80 |
Потребности |
20 |
70 |
10 |
50 |
В результате получен первый
опорный план, который является допустимым,
так как все грузы из баз
вывезены, потребность магазинов
удовлетворена, а план соответствует
системе ограничений
2. Подсчитаем число занятых клеток таблицы, их 6, а должно быть m + n - 1 = 6. Следовательно, опорный план является невырожденным.
Этап II. Улучшение опорного плана.
Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vi. по занятым клеткам таблицы, в которых ui + vi = cij, полагая, что u1 = 0.
v1=-5 |
v2=4 |
v3=5 |
v4=2 | |
u1=0 |
1 |
5 |
4 |
2[30] |
u2=6 |
12 |
10[20] |
16 |
8[20] |
u3=9 |
4[20] |
13[50] |
14[10] |
10 |
Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vi > cij
Выбираем максимальную оценку свободной клетки (1;3): 4
Для этого в перспективную клетку (1;3) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 |
2 |
3 |
4 |
Запасы | |
1 |
1 |
5 |
4[+] |
2[30][-] |
30 |
2 |
12 |
10[20][-] |
16 |
8[20][+] |
40 |
3 |
4[20] |
13[50][+] |
14[10][-] |
10 |
80 |
Потребности |
20 |
70 |
10 |
50 |
Цикл приведен в таблице (1,3; 1,4; 2,4; 2,2; 3,2; 3,3; ).
Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т.е. у = min (3, 3) = 10. Прибавляем 10 к объемам грузов, стоящих в плюсовых клетках и вычитаем 10 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.
1 |
2 |
3 |
4 |
Запасы | |
1 |
1 |
5 |
4[10] |
2[20] |
30 |
2 |
12 |
10[10] |
16 |
8[30] |
40 |
3 |
4[20] |
13[60] |
14 |
10 |
80 |
Потребности |
20 |
70 |
10 |
50 |
Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vi. по занятым клеткам таблицы, в которых ui + vi = cij, полагая, что u1 = 0.
v1=-5 |
v2=4 |
v3=4 |
v4=2 | |
u1=0 |
1 |
5 |
4[10] |
2[20] |
u2=6 |
12 |
10[10] |
16 |
8[30] |
u3=9 |
4[20] |
13[60] |
14 |
10 |
Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых ui + vi > cij
Выбираем максимальную оценку свободной клетки (3;4): 10
Для этого в перспективную клетку (3;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-».
1 |
2 |
3 |
4 |
Запасы | |
1 |
1 |
5 |
4[10] |
2[20] |
30 |
2 |
12 |
10[10][+] |
16 |
8[30][-] |
40 |
3 |
4[20] |
13[60][-] |
14 |
10[+] |
80 |
Потребности |
20 |
70 |
10 |
50 |
Цикл приведен в таблице (3,4; 3,2; 2,2; 2,4; ).
Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т.е. у = min (2, 4) = 30. Прибавляем 30 к объемам грузов, стоящих в плюсовых клетках и вычитаем 30 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.
1 |
2 |
3 |
4 |
Запасы | |
1 |
1 |
5 |
4[10] |
2[20] |
30 |
2 |
12 |
10[40] |
16 |
8 |
40 |
3 |
4[20] |
13[30] |
14 |
10[30] |
80 |
Потребности |
20 |
70 |
10 |
50 |
Проверим оптимальность опорного плана. Найдем предварительные потенциалы ui, vi. по занятым клеткам таблицы, в которых ui + vi = cij, полагая, что u1 = 0.
v1=-4 |
v2=5 |
v3=4 |
v4=2 | |
u1=0 |
1 |
5 |
4[10] |
2[20] |
u2=5 |
12 |
10[40] |
16 |
8 |
u3=8 |
4[20] |
13[30] |
14 |
10[30] |

- Математическое моделирование
- Математическое моделирование в менеджменте
- Математическое моделирование ОиЭС
- Математическое моделирование при принятии управленческих решений
- Математическое моделирование процессов в машиностроении
- Математическое моделирование процессов в машиностроении
- Математическое моделирование процессов и систем
- Математический кружок
- Математического развития дошкольников
- Математическое дисконтирование
- Математическое дисконтирование по сложным процентам
- Математическое моделирование
- Математическое моделирование
- Математическое моделирование