- •Тема I. Линейное программирование …………………………….5
- •Тема II. Дискретное линейное программирование …………….27
- •Тема III. Теория транспортных задач линейного
- •Тема IV. Нелинейное программирование……………………….61
- •Введение
- •Тема I. Линейное программирование лабораторная работа № 1
- •Алгоритм нахождения базисных решений методом Жордана
- •1.4. Содержание отчета.
- •Лабораторная работа № 2
- •Нахождение оптимального плана или установление неразрешимости задачи симплексным методом.
- •2.4. Содержание отчета.
- •2.5. Вопросы для самопроверки.
- •Лабораторная работа № 3 Тема: Решение основной задачи линейного программирования двойственным симплексным методом.
- •3.2. Краткие теоретические сведения.
- •Алгоритм двойственного симплексного метода.
- •3.4. Содержание отчета.
- •3.5. Вопросы для самопроверки.
- •Тема II. Дискретное линейное программирование
- •Условия прекращения роста ветвей.
- •4.3. Варианты заданий.
- •4.5. Вопросы для самопроверки
- •5.1. Цель и задачи работы.
- •5.2. Краткие теоретические сведения.
- •Алгоритм нахождения оптимального плана основной целочисленной (частично целочисленной) задачи линейного программирования методом Гомори.
- •5.3. Варианты заданий.
- •5.4. Cодержание отчета.
- •4.5. Вопросы для самопроверки
- •Тема III. Транспортная задача линейного программирования
- •Планов транспортной задачи
- •6.1. Цель и задачи работы.
- •6.2. Краткие теоретические сведения.
- •6.3. Варианты заданий:
- •6.4. Содержание отчета
- •Алгоритм сдвига по циклу пересчета.
- •Алгоритм метода потенциалов.
- •Алгоритм распределительного метода.
- •Лабораторная работа № 8
- •8.1. Цель работы и задачи работы.
- •8.2. Краткие теоретические сведения.
- •8.3. Варианты заданий.
- •Алгоритм решения задачи дробно-линейного программирования
- •9.4. Содержание отчета.
- •10.4. Содержание отчета.
- •10.5. Вопросы для самопроверки
1.4. Содержание отчета.
Преобразование общей задачи линейного программирования в основную задачу линейного программирования.
Описание метода Жордана и алгоритма его реализации.
Текст программы.
Таблицы результатов, включающие в себя
все базисные решения, полученные методом Жордана;
все опорные планы;
оптимальный план.
Графическая интерпретация полученного решения.
Сравнение с решением, полученным при помощи таблиц EXCEL.
Вопросы для самопроверки
Сколько ненулевых компонент имеет невырожденный опорный план?
Сколько вершин может иметь многогранник решений основной задачи линейного программирования?
Может ли опорный план не быть базисным решением?
Может ли оптимальный план не быть опорным планом?
В каких случаях задача линейного программирования не имеет решения?
Лабораторная работа № 2
Тема: Решение планов основной задачи линейного программирования симплексным методом.
Цель и задачи работы.
Цель работы – Изучение метода последовательного улучшения плана (симплексного метода) и нахождение оптимального плана основной задачи линейного программирования. Экспериментальная проверка (на основе вычислительного эксперимента) теоретических положений.
Задачи работы:
Построение основной задачи линейного программирования.
Нахождение первого опорного плана.
Нахождение оптимального плана или установление неразрешимости задачи симплексным методом.
Краткие теоретические сведения.
Рассмотрим опорный план основной задачи линейного программирования X=(x1, x2, x3 ,…, xm,,0,…,0). Этот план (поскольку по определению он является базисным решением) соответствует системе вектор-столбцов, образующих базис m-мерного пространства. Каждый из вектор-столбцов матрицы ограничений может быть представлен в виде линейной комбинации векторов-столбцов базиса A1, A2,…,Am
Aj =xij Ai .
Если векторы Ai – имеют канонический вид (0,0,…,1,…0), то xij = aij .
Определение 2.1. Оценками опорного плана X называются величины j =(xij ci )– cj .
Условия оптимальности и разрешимости.
Условие 1. Если все оценки опорного плана X основной задачи линейного программирования на максимум неотрицательны, т.е., j 0 (j=1,..,n), то план X – оптимален.
Условие 2. Если k : k <0, 1 k n и aik 0 i, i=1,...,m, то целевая функция основной задачи линейного программирования не ограничена сверху на множестве планов.
Условие 3. Если опорный план X основной задачи линейного программирования на максимум не вырожден и k,i : k 0, то X* : F(X*) > F(X), т.е. план X не оптимален.
Симплексная таблица.
i |
Базис |
Cб |
B |
c1 |
c2 |
… |
cm |
cm+1 |
… |
cn |
|
|
|
|
A1 |
A2 |
… |
Am |
Am+1 |
… |
An |
1 |
A1 |
c1 |
b1 |
1 |
0 |
… |
0 |
a1 m+1 |
… |
a1 n |
2 |
A2 |
c2 |
b2 |
0 |
1 |
… |
0 |
a2 m+1 |
… |
a2 n |
. |
. |
. |
. |
. |
. |
… |
. |
|
… |
|
. |
. |
. |
. |
. |
. |
… |
. |
|
… |
|
. |
. |
. |
. |
. |
. |
… |
. |
|
… |
|
r |
Ar |
cr |
br |
0 |
0 |
… |
0 |
ar m+1 |
… |
ar n |
. |
. |
. |
. |
. |
. |
… |
. |
|
… |
|
. |
. |
. |
. |
. |
. |
… |
. |
|
… |
|
. |
. |
. |
. |
. |
. |
… |
. |
|
… |
|
m |
Am |
cm |
bm |
. |
. |
… |
1 |
an m+1 |
… |
an n |
m+1 |
|
|
F |
0 |
0 |
… |
0 |
m+1 |
… |
n |
Алгоритм симплексного метода.
Нахождение начального опорного плана методом Жордана.
Составление симплексной таблицы.
Проверка опорного плана на оптимальность в соответствии с условием 1; если условие выполнено, то конец работы алгоритма.
Проверка задачи на разрешимость в соответствии с условием 2; если условие выполнено, то конец работы алгоритма.
Переход к новому опорному плану:
Определение разрешающего столбца (столбца симплексной таблицы с максимальной по абсолютной величине отрицательной оценкой);
Определение разрешающей строки (строки с минимальным из отношений компонент столбца правых частей B к положительным компонентам направляющего столбца);
Переход к новому базису, заключающийся в выведении из прежнего базиса вектора, расположенного в разрешающей строке и введении вектора, расположенного в разрешающем столбце. При этом производится преобразование симплексной таблицы методом Жордана.
Переход к п.3.
Варианты заданий.
№ варианта |
Целевая функция |
Ограничения |
1 |
F=x1 –2x2 max |
- x1 + 2x2 5 2x1 +4x2 =7 x1 +5x 2 -2 x1 , x2 0
|
2 |
F= -3x1 +4 x2 min |
-3x1 8 2x1 - 2x2 =5 -8x1 +6x2- -2 x2 0
|
3 |
F= -10x1 - 2x2 max |
2x1+5x2 =11 -3 x1 + 2x2 7 -5x2 +4x3 10 x1 0
|
4 |
F=11x1 - 4 x2 min |
3x1+8x2 15 -5x1 + 15x2 = 1 8x1 +3x2 11 x2 0
|
5 |
F=15x1 - 4x2 max |
8x1 -3x2 -1 -3x1+2x2 4 5x1 +x2 =12 x1 , x2 0
|
6 |
F=5x1 min |
-5x1+3x2 =10 10x1 -7x2 5 -3x1+2x2 4 -4x1 +x2 -2 x1 , x2 0
|
7 |
F=10x1 + 7x2 max |
5x1–7x2 0 x1 +6x2 - 3 x2 +x3 - 4 x1 , x2 0
|
8 |
F=5x1 -4 x2 min |
x1–6x2 =7 2x1 - 4x2 5 x2 - 2x3 -1 x1 , x2 0
|
9 |
F=2x1 + x2 max |
2x1+7x2 -8 2x2 -4x3 10 -6 x 1 +2x2 =8 x1 , x2 0
|
10 |
F=6x1 - 7x2 min |
6x2 +9x3 -1 -5x1 + 12x2 -7x3 6 x1 0
|
11 |
F=9x1 +14 x2 max |
3x1 +7x2 8 -8x1 +6x2 -2 x2 0
|
12 |
F= 10x1 - 2x3 + min |
12x1 - 2x2 =7 12x1-5x2 8
|
13
|
F=5x1 +4 x2 max |
2x1-7x2 =5 9x1-2x2 7 -3x1 +5x2 -4 x1 , x2 0
|
14 |
F= 10x1 - 2x3 min |
12x1 - 2x2 =7 12x1-5x2 8 -3x1+2x2 6 x1 , x2 0
|
15
|
F=4x1 –3 x2 max |
5x1–7x2 10 x1 +6x2 - 3 x2 +x3 - 4 9x1-2x2 7 x1 , x2 0
|