Автор: Пользователь скрыл имя, 25 Октября 2013 в 18:25, курсовая работа
Задача оптимизации может быть сформулирована на языке математики, если множество доступных вариантов удается описать с помощью математических соотношений (равенств, неравенств, уравнений), а каждое решение – оценить количественно с помощью некоторого показателя, называемого критерием оптимальности или целевой функцией. Тогда наилучшим решением будет то, которое доставляет целевой функции наибольшее или наименьшее значение, в зависимости от содержательного смысла задачи.
Введение 3
1 Линейное программирование 4
1.1 Задачи линейного программирования 4
1.2 Решение задач линейного программирования симплекс – методом 5
1.3 Решение задач линейного программирования графическим методом 10
2 Реализация методов линейного программирования на практическом применении 11
2.1 Пример решения задачи линейного программирования симплекс-методом 11
2.2 Пример решения задачи линейного программирования графическим способом 14
2.3 Пример решения задачи линейного программирования с помощью MS EXCEL 16
3 Решение задач линейного программирования 20
3.1 Решение задачи линейного программирования графическим методом 20
3.2 Решение задачи линейного программирования симплекс-методом 27
3.3 Решение транспортной задачи 31
Заключение 36
Список использованной литературы 37
Максимальная прибыль для x1=46 и x2=6 находится по формуле:
F max=11*46+6*6=542 единицы.
3 Решение задач линейного программирования
3.1 Решение задачи линейного
программирования графическим
Необходимо найти максимальное значение целевой функции f(x) = x1+2x2 → max, при системе ограничений:
-x1+x2≤3 |
|
x1-x2≤0 |
|
x1+2x2≤12 |
|
4x1-x2≥0 |
|
Построим область допустимых решений, т.е. решим графически систему неравенств. Для этого построим каждую прямую и определим полуплоскости, заданные неравенствами (полуплоскости обозначены штрихом).
x1 |
3 |
1 |
x2 |
6 |
4 |
x1 |
1 |
2 |
x2 |
1 |
2 |
x1 |
0 |
6 |
x2 |
6 |
3 |
x1 |
1 |
2 |
x2 |
4 |
8 |
или
Границы области допустимых решений
Пересечением полуплоскостей
будет являться область, координаты
точек которого удовлетворяют условию
неравенствам системы ограничений
задачи.
Обозначим границы области многоугольника решений.
Рассмотрим целевую функцию задачи F = x1+2x2 → max.
Построим прямую, отвечающую значению функции F = 0: F = x1+2x2 = 0. Будем двигать эту прямую параллельным образом. Поскольку нас интересует максимальное решение, поэтому двигаем прямую до последнего касания обозначенной области. На графике эта прямая обозначена пунктирной линией.
Равный масштаб
Область допустимых решений представляет собой многоугольник.
Прямая F(x) = const пересекает область в точке D. Так как точка D получена в результате пересечения прямых (2) и (3), то ее координаты удовлетворяют уравнениям этих прямых:
x1-x2≤0
x1+2x2≤12
x1-x2=0 |
x1=x2 |
x1=x2 |
x1=4 |
x1+2x2=12 |
x2+2x2=12 |
3x2=12 |
x2=4 |
Решив систему уравнений, получим: x1 = 4, x2 = 4.
Откуда найдем максимальное значение целевой функции:
F(X) = 1*4 + 2*4 = 12
Поскольку функция цели
F(x) параллельна прямой (3), то на отрезке DC функция F(x) будет принимает
одно и тоже максимальное значение.
Для определения координат точки C решим
систему двух линейных уравнений:
-x1+x2≤3
x1+2x2≤12
-x1+x2=3 |
-x1=3-x2 |
x1=3+x2 |
x1=3+x2 |
x1=6 |
x1+2x2=12 |
x1+2x2=12 |
3+x2+2x2=12 |
3x2=9 |
x2=3 |
Решив систему уравнений, получим: x1 = 6, x2 = 3.
Откуда найдем максимальное
значение целевой функции:
F(X) = 1*2 + 2*5 = 12
3.2 Решение задачи линейного программирования симплекс-методом
Определим максимальное значение целевой функции F(X) = - x1 - x2 - 2x3 при следующих условиях-ограничений.
x1 - x2 - x3≥1
- 2x1 + 3x2≥1
- 3x1 + x2 - 2x3<=1
Для построения первого опорного плана систему неравенств приведем к системе уравнений путем введения дополнительных переменных (переход к канонической форме).
1x1-1x2-1x3-1x4 + 0x5
+ 0x6 = 1
-2x1 + 3x2 + 0x3 + 0x4-1x5
+ 0x6 = 1
-3x1 + 1x2-2x3 + 0x4 + 0x5
+ 1x6 = 1
Введем искусственные
1x1-1x2-1x3-1x4 + 0x5
+ 0x6 + 1x7 + 0x8 = 1
-2x1 + 3x2 + 0x3 + 0x4-1x5
+ 0x6 + 0x7 + 1x8 = 1
-3x1 + 1x2-2x3 + 0x4 + 0x5
+ 1x6 + 0x7 + 0x8 = 1
Для постановки задачи на максимум целевую функцию запишем так:
F(X) = -1x1-1x2-2x3 - Mx7 - Mx8
→ max
Из уравнений выражаем искусственные переменные:
x7 = 1-x1+x2+x3+x4
x8 = 1+2x1-3x2+x5
которые подставим в целевую функцию:
F(X) = (-1-M)x1+(-1+2M)x2+(-2-M)x3+(-
Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид:
1 |
-1 |
-1 |
-1 |
0 |
0 |
1 |
0 |
-2 |
3 |
0 |
0 |
-1 |
0 |
0 |
1 |
-3 |
1 |
-2 |
0 |
0 |
1 |
0 |
0 |
Решим систему уравнений
относительно базисных переменных:
x7, x8, x6,
Полагая, что свободные переменные равны 0, получим
первый опорный план:
X1 = (0,0,0,0,0,1,1,1)
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
x7 |
1 |
1 |
-1 |
-1 |
-1 |
0 |
0 |
1 |
0 |
x8 |
1 |
-2 |
3 |
0 |
0 |
-1 |
0 |
0 |
1 |
x6 |
1 |
-3 |
1 |
-2 |
0 |
0 |
1 |
0 |
0 |
F(X0) |
-2M |
1+M |
1-2M |
2+M |
M |
M |
0 |
0 |
0 |
Переходим к основному алгоритму
симплекс-метода.
Итерация №0.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.
В качестве ведущего выберем столбец, соответствующий переменной x2, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления:
bi / ai2
и из них выберем наименьшее:
Следовательно, 2-ая строка является ведущей.
Разрешающий элемент равен (3) и находится на пересечении ведущего столбца и ведущей строки.
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
min |
x7 |
1 |
1 |
-1 |
-1 |
-1 |
0 |
0 |
1 |
0 |
- |
x8 |
1 |
-2 |
3 |
0 |
0 |
-1 |
0 |
0 |
1 |
|
x6 |
1 |
-3 |
1 |
-2 |
0 |
0 |
1 |
0 |
0 |
1 |
F(X1) |
-2M |
1+M |
1-2M |
2+M |
M |
M |
0 |
0 |
0 |
0 |
Получаем новую симплекс-
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
x7 |
11/3 |
1/3 |
0 |
-1 |
-1 |
-1/3 |
0 |
1 |
1/3 |
x2 |
1/3 |
-2/3 |
1 |
0 |
0 |
-1/3 |
0 |
0 |
1/3 |
x6 |
2/3 |
-21/3 |
0 |
-2 |
0 |
1/3 |
1 |
0 |
-1/3 |
F(X1) |
-1/3-11/3M |
12/3-M |
0 |
2+M |
M |
1/3+M |
0 |
0 |
-1/3+2/3M |
Итерация №1.
Текущий опорный план неоптимален, так как в индексной строке находятся отрицательные коэффициенты.
В качестве ведущего выберем столбец, соответствующий переменной x1, так как это наибольший коэффициент по модулю.
Вычислим значения Di по строкам как частное от деления:
bi / ai1
и из них выберем наименьшее:
Следовательно, 1-ая строка является ведущей.
Разрешающий элемент равен (1/3) и находится на пересечении ведущего столбца и ведущей строки.
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
min |
x7 |
11/3 |
0 |
-1 |
-1 |
-1/3 |
0 |
1 |
1/3 |
4 |
|
x2 |
1/3 |
-2/3 |
1 |
0 |
0 |
-1/3 |
0 |
0 |
1/3 |
- |
x6 |
2/3 |
-21/3 |
0 |
-2 |
0 |
1/3 |
1 |
0 |
-1/3 |
- |
F(X2) |
-1/3-11/3M |
12/3-M |
0 |
2+M |
M |
1/3+M |
0 |
0 |
-1/3+2/3M |
0 |
Получаем новую симплекс-
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x8 |
x1 |
4 |
1 |
0 |
-3 |
-3 |
-1 |
0 |
3 |
1 |
x2 |
3 |
0 |
1 |
-2 |
-2 |
-1 |
0 |
2 |
1 |
x6 |
10 |
0 |
0 |
-9 |
-7 |
-2 |
1 |
7 |
2 |
F(X2) |
-7 |
0 |
0 |
7 |
5 |
2 |
0 |
-5+M |
-2+M |