Лабораторная работа 3 / 2008-04-14-02-24-Наталья-3
.docЦель работы:
-
Постановка задачи линейного программирования и её решение с помощью стандартной программы.
-
Исследование прямой и двойственной задачи.
Краткие общие сведения
Если исходная задача линейного программирования представлена в виде:
найти минимум функции на множестве
, (3.1)
то двойственная задача линейного программирования может быть сформулирована следующим образом:
найти максимум функции на множестве где - матрица, транспонированная к . Двойственная к двойственной задаче есть исходная задача.
Известно, что если существует решение исходной задачи, то существует решение и двойственной задачи, причем значения экстремумов совпадают. При этом координаты экстремальной точки для двойственной задачи являются коэффициентами чувствительности результата в исходной задаче по коэффициентам вектора .
Рассмотрим видоизмененную исходную задачу:
Найти на множестве , где ,
Если исходная задача имеет единственное решение , то при малых и видоизмененная задача имеет решение ; причем если -значение минимума , то существует
Оказывается, что есть i -я координата оптимальной точки для двойственной задачи.
Для проведения лабораторной работы составлена программа, обеспечивающая решение задачи линейного программирования при задании с терминала исходных значений параметров.
Задание:
Вариант 3.
На рынок доставляется картофель из трех колхозов по цене соответственно 12, 10 и 8 тыс. рублей за 1 тонну. На погрузку картофеля в колхозах соответственно затрачивается 1, 6 и 5 минут. Потребности рынка составляют не менее 12 т, на погрузку которого можно затратить не более 60 минут. Из каких колхозов и в каком количестве надо доставлять картофель, чтобы его стоимость была минимальной при условии того, что колхозы могут выделить для продажи соответственно 10, 8 и 6 тонн картофеля.
Порядок проведения лабораторной работы и решение задачи
-
По заданной содержательной постановке задачи поставить задачу формально (т.е. привести к виду (3.1)).
Получим следующую математическую модель:
При этом исходная задача имеет следующие ограничения:
-
Решить поставленную задачу с помощью готовой программы.
С помощью готовой программы мы получаем:
Целевая функция:
C
12 10 8 --> min
Ограничения:
A B
-1 -6 -5 >=-60
1 1 1 >=12
-1 0 0 >=-10
0 -1 0 >=-8
0 0 -1 >=-6
x1= 1.200
x2= 4.800
x3= 6.000
Значение целевой функции f = 110.400
-
Поставить двойственную задачу с помощью готовой программы.
Двойственная задача к исходной задачи имеет вид:
При этом двойственная задача имеет следующие ограничения:
-
Решить двойственную задачу с помощью той же программы.
С помощью готовой программы мы получаем:
Целевая функция:
C
-60 12 -10 -8 -6 --> max
Ограничения:
A B
-1 1 -1 0 0 <=12
-6 1 0 -1 0 <=10
-5 1 0 0 -1 <=8
x1= 0.400
x2=12.400
x3= 0.000
x4= 0.000
x5= 2.400
Значение целевой функции f = 110.400
-
Определить коэффициенты чувствительности исходной задачи по координатам правой части ограничений (вектора ). Для этого :
а) увеличить i - ю координату вектора ограничений правой части на = 10 –3;
б) решить задачу с новым вектором , ответ -;
в) вычислить
г) сравнить полученное число с i -й координатой оптимальной точки двойственной задачи.
При уменьшении коэффициента b1 на 0.01 мы получаем:
x1= 1.198
x2= 4.802
x3= 6.000
Значение целевой функции f = 110.396
Откуда, коэффициент чувствительности:
При уменьшении коэффициента b2 на 0.001 мы получаем:
x1= 1.201
x2= 4.800
x3= 6.000
Значение целевой функции f = 110.412
Откуда, коэффициент чувствительности:
При увеличении коэффициента b3 на 2 мы получаем:
x1= 1.200
x2= 4.800
x3= 6.000
Значение целевой функции f = 110.400
То есть, коэффициент чувствительности равен нулю.
При увеличении коэффициента b4 на 1 мы получаем:
x1= 1.200
x2= 4.800
x3= 6.000
Значение целевой функции f = 110.400
То есть, коэффициент чувствительности равен нулю.
При увеличении коэффициента b5 на 0.001 мы получаем:
x1= 1.200
x2= 4.801
x3= 5.999
Значение целевой функции f = 110.402
Откуда, коэффициент чувствительности:
Запишем полученные результаты в виде вектора:
- решение двойственной задачи.
-
Повторить процедуру , описанную в п.5, но варьировать на этот раз коэффициенты целевой функции – компоненты вектора и сопоставить результаты с координатами вектора-решения исходной задачи .
При уменьшении коэффициента C1 на 0.001 мы получаем:
x1= 1.200
x2= 4.800
x3= 6.000
Значение целевой функции f = 110.399
Откуда, коэффициент чувствительности:
При увеличении коэффициента C2 на 0.001 мы получаем:
x1= 1.200
x2= 4.800
x3= 6.000
Значение целевой функции f = 110.405
Откуда, коэффициент чувствительности:
При увеличении коэффициента C3 на 0.001 мы получаем:
x1= 1.200
x2= 4.800
x3= 6.000
Значение целевой функции f = 110.406
Откуда, коэффициент чувствительности:
Запишем полученные результаты в виде вектора:
- решение прямой задачи.
Вывод:
Выполняя данную лабораторную работу, мы исследовали прямую и двойственную задачи,
опытным путем доказали теорему двойственности, которая гласит, что, если прямая задача регулярна и x* - ее решение, а - множители Лагранжа, то - решение двойственной задачи вида и справедливо .
Убедились, что при не больших изменений векторного коэффициента чувствительности не приводит к изменениям коэффициентов в прямой и двойственной задачах.
Санкт-Петербургский Государственный
Электротехнический Университет
ФКТИ
Кафедра МОЭВМ
Дисциплина: «Методы оптимизации»
Отчет по лабораторной работе № 3
«Решение прямой и двойственной задач»
Выполнила:
Студентка: Китаева Н.А.
Группа 4342
Проверила: Мальцева Н.В.
Санкт-Петербург
2007 г.