Математическая экономика / Лабораторная работа №3
.docЛАБОРАТОРНАЯ РАБОТА № 3
РЕШЕНИЕ ОСНОВНОЙ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ДВОЙСТВЕННЫМ СИМПЛЕКСНЫМ МЕТОДОМ.
.
ЦЕЛЬ РАБОТЫ.
Ознакомление с понятием двойственности в задачах линейного программирования. Изучение двойственного симплексного метода нахождения оптимального плана основной задачи линейного программирования.
СОДЕРЖАНИЕ РАБОТЫ.
Разработка и программная реализация алгоритма нахождения оптимального плана основной задачи линейного программирования на основе обобщенного двойственного симплексного метода.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ.
Двойственные задачи линейного программирования |
|
Задача I
|
Задача II
|
F=cj xj max
|
F*=bi yi min
|
aij xj bi (i=1,2,…,k)
|
yi aij cj (j=1,2,…,s)
|
aij xj = bi (i= k +1,..., m)
|
yi aij = cj (j=s+1,…,n)
|
xj 0 (j=1,2,…,s) |
yi 0 (i=1,2,…,k)
|
Определение.
Задача линейного программирования II называется двойственной по отношению к задаче линейного программирования I (исходной).
СВОЙСТВА ДВОЙСТВЕННЫХ ЗАДАЧ.
Утверждение 1. Задача III, двойственная по отношению к задаче II, совпадает с задачей I, т.е. нет смысла в определении, какая из двух задач является исходной, какая – двойственной: можно говорить о паре двойственных задач.
Утверждение 2. Если X –план задачи I., а Y – план задачи II, то F(X) F*(Y).
Утверждение 3. Если задача I (задача II) не имеет решения в силу неограниченности сверху (снизу) целевой функции, то задача II (задача I) не имеет решения в силу отсутствия планов.
Утверждение 4. Если X* –оптимальный план задачи I., а Y*–оптимальный план задачи II, то F(X*) =F*(Y*).
Определение. Базисное решение основной задачи линейного программирования на максимум X называется псевдопланом, если j0, т.е. все оценки неотрицательны.
УСЛОВИЯ ОПТИМАЛЬНОСТИ И РАЗРЕШИМОСТИ.
Условие 1. Если все компоненты псевдоплана X=(x1, x2, x3 ,…, xm,,0,…,0) неотрицательны, т.е. xj 0 , (j=1,..,n), то X – оптимальный план.
Условие 2. Если X=(x1, x2, x3 ,…, xm,,0,…,0) – псевдоплан основной задачи линейного программирования и если k : xk <0, 1 k n и aik 0 i, i=1,...,m,, то основная задача линейного программирования не имеет решений в силу отсутствия планов.
Условие 3. Если X=(x1, x2, x3 ,…, xm,,0,…,0) – псевдоплан основной задачи линейного программирования и если k, i (1 k n, 1 i m) :xk <0, (1 k n, 1 i m) aik 0 i, i=1,...,m, то можно перейти к другому псевдоплану, при котором значение целевой функции не увеличится.
Алгоритм двойственного симплексного метода.
-
Нахождение начального псевдоплана.
-
Составление симплексной таблицы.
-
Проверка псевдоплана на оптимальность в соответствии с условием 1; если условие выполнено, то конец работы алгоритма.
-
Проверка задачи на разрешимость в соответствии с условием 4; если условие выполнено, то конец работы алгоритма.
-
Переход к новому псевдоплану:
-
Определение разрешающей строки (строки симплексной таблицы с минимальным значением компоненты столбца В);
-
Определение разрешающего столбца (столбца симплексной таблицы с наименьшим по абсолютной величине отношением оценок к соответствующим отрицательным компонентам разрешающей строки);
-
Переход к новому базису, заключающийся в выведении из прежнего базиса вектора, расположенного в разрешающей строке, и введении вектора, расположенного в разрешающем столбце. При этом производится преобразование симплексной таблицы методом Жордана.
-
Переход к п.3.
Алгоритм обобщенного двойственного симплексного метода.
-
Нахождение начального базисного решения.
-
Проверка, является ли базисное решение опорным планом. Если является, то дальнейшее решение ищется симплексным методом.
-
Проверка, является ли базисное решение псевдопланом. Если является, то дальнейшее решение ищется двойственным симплексным методом.
-
Жордановский переход от прежнего базисного решения к новому базисному решению. Переход к п.2.
ВАРИАНТЫ ЗАДАНИЙ.
№ варианта |
Целевая функция |
Ограничения |
1 |
F=2x1+3x2 min |
- x1 + 2x2 6 3x1 + 4x2 5 x1, x2 0 |
2 |
F=-x1-5x2 max |
- x1 + x2 2 5x1 + 2x2 10 x1, x2 0 |
3 |
F=-2x1-x2 max |
x1 + 3x2 4 5x1 + 2x2 10 x1,x2 0 |
4 |
F= –5x1-x2 max |
4x1 + x2 1 5x1 + 2x2 10 x1,x2 0 |
5 |
F=3x1+2x2 min |
x1 - x2 3 x1 + x2 4 x1,x2 0 |
6 |
F=–12x1-x2 max |
-x1 +2x2 -4 3x1 + 8x2 24 x1,x2 0 |
7 |
F= x1+x2 min |
x1 - 2x2 = 3 x1 + x2 8 x1,x2 0 |
8 |
F=x1+8x2 min |
x1 + 2x2 -1 5x1 + 2x2 10 x1,x2 0 |
9 |
F=-x1–3x2 max
|
x1 + 2x2 6 3x1 + 5x2 4 x1 - x2 = 5 x1,x2 0 |
10 |
F= –2x1–3x2 max |
2x1 - x2 6 3x1 + 5x2 4 x1,x2 0 |
11 |
F= 5x 1+3x2 min |
6x1 + 7x2 –42 2x1 - 3x2 6 x1,x2 0
|
12
|
F= –x 1–3x2 max |
- x1 + 2x2 –4 5x1 + 2x2 10 x1,x2 0
|
ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ.
-
Какая задача является двойственной по отношению к основной задаче линейного программирования?
-
Как определить, какая из двух задач является исходной, а какая – двойственной?
-
Чем отличается псевдоплан основной задачи линейного программирования от опорного плана?
-
Может ли псевдоплан не быть базисным решением?
-
Может ли оптимальный план не быть псевдопланом?
-
Как влияет погрешность вычислений на решение задачи линейного программирования двойственным симплексным методом?