- •Введение
- •1. Линейное программирование
- •1.1 Решение задачи 1.1
- •1.2 Решение задачи 1.2
- •1.3 Решение задачи 1.3
- •1.4 Выводы к Главе 1
- •2. Целочисленное программирование
- •2.1 Решение полностью целочисленной задачи
- •2.1.1 Решение задачи методом отсекающих плоскостей (метод Гомори)
- •2.1.2 Решение задачи методом ветвей и границ
- •2.2 Решение частично целочисленной задачи
- •2.1.1 Решение задачи методом отсекающих плоскостей (метод Гомори)
- •2.2.2 Решение задачи методом ветвей и границ
- •2.3 Выводы к Главе 2
- •3. Нелинейное программирование
- •3.1 Определение вида квадратичной формы
- •3.2 Решение задачи методом Била
- •3.3 Преобразование нелинейной модели к сепарабельному виду. Аппроксимация нелинейной сепарабельной функции кусочно-линейной функцией
- •3.4 Решение задачи сепарабельным симплекс-методом
- •3.5 Анализ полученных результатов
- •3.6 Выводы к Главе 3
- •4 Разработка программного модуля
- •4.1 Теория решения двойственных задач
- •4.1.1 Переход от прямой задачи к двойственной
- •4.1.2 Связь между прямой и двойственной задачами
- •4.1.3 Симплекс-метод и двойственный симплекс метод
- •4.2 Реализация программы
- •4.2.2 Ввод исходных данных и вывод решения
- •4.2.3 Системные требования
- •Заключение
4.1.2 Связь между прямой и двойственной задачами
Лемма1
Если х - некоторый план прямой задачи, а y - некоторый произвольный план ДЗ, то значение целевой функции прямой задачи при плане х всегда не превосходит значение целевой функции двойственной задачи при плане у.
Y(x)<=S(y)
Лемма 2
Если Y(x*)<=S(y*), то х*- оптимальный план прямой задачи,
y*- оптимальный план двойственной задачи.
Теорема 1
(1-я теорема двойственности)
Если одна из пары двойственных задач имеет оптимальный план, то и другая имеет оптимальный план, и значения целевой функции задач при их оптимальных планах равны между собой:
Ymax=Smin
Если же целевая функция одной из пары двойственных задач не ограничена, то другая задача вообще не имеет планов.
Теорема 2
(2-я теорема двойственности)
План X*=(x1*…xn*) – исходная задача
План Y*=(y1*…ym*) – двойственная задача
Являются оптимальными планами этих задач тогда и только тогда, когда для любого j=[1,n] выполняется равенство:
(aij*yi*-cj)xj*=0
4.1.3 Симплекс-метод и двойственный симплекс метод
Алгоритм симплекс-метода:
1. Выражение целевой функции через небазисные переменные.
2. Проверка базисного решения на оптимальность. Если в полученном выражении целевой функции все коэффициенты при небазисных переменных неотрицательны, то исходный базис является оптимальным и находится соответствующее базисное решение, оптимизирующее целевую функцию. Для этого всем небазисным переменным присваивается 0, а значение базисных переменных находится из системы ограничений. После чего задача считается завершенной. Если в полученном выражении целевой функции хотя бы один коэффициент при небазисных переменных отрицательный, переходят к следующему этапу.
3. Проверка задачи на наличие решения.
Если при какой-либо небазисной переменной, имеющей отрицательный коэффициент целевой функции окажется, что столбец коэффициентов при этой же переменной в системе ограничений состоит из одних неположительных чисел, то оптимум целевой функции неограничен, задача решения не имеет.
4. Выбор из небазисных переменных той, которая способна при введении ее в базис увеличить значение её целевой функции. Наиболее простой и чаще всего применяемый способ состоит в выборе небазисной переменной, которой соответствует наибольший отрицательный коэффициент в целевой функции.
5. Определение, какая из базисных переменных должна быть выведена из базиса и сделана небазисной. Для всех положительных коэффициентов столбца при вводимой переменной определяют отношение соответствующего свободного члена к соответствующему коэффициенту столбца. Минимальное из полученных отношений указывает строку выводимой из базиса переменной.
6. Выражение вводимой переменной, через переменную, которую выводим из базиса и через другие небазисные переменные.
7. Выражение остальных базисных переменных и целевой функции через новые небазисные переменные.
8. Повторение операций, указанных в пунктах 2-7 до тех пор, пока не будет найдено оптимальное решение.
Двойственный симплекс-метод:
При двойственном симплекс-методе выбирают разрешающую строку с помощью определения наибольшего по абсолютной величине отрицательного столбца вектора b, и разрешающий столбец с помощью нахождения наименьшего по абсолютной величине отношения элементов (m+1)-строки, соответствующей отрицательным элементам неотрицательной строки.