- •Введение
- •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 Системные требования
- •Заключение
3.5 Анализ полученных результатов
Приняв решение задачи 3.1, полученное в пункте 3.2, за эталонное, можно рассчитать погрешность решения этой же задачи, полученного в предыдущем пункте с помощью методов сепарабельного программирования.
Искомая погрешность для целевой функции будет равна:

Если сравнить полученные решения, то можно сделать вывод о том, что мы при выборе точек аппроксимации удачно попали в значения для переменных x1, x2 и x3, полученных при использовании для решения задачи методом Била.
Сравнивая ход решения задачи методом Била и методом сепарабельного программирования, очевидна гораздо большая трудоемкость решения во втором случае. Это объясняется большим количеством переменных и ограничений. Кроме этого, была выполнена достаточно грубая аппроксимация – 10 точек. Увеличение их количества привело бы к еще большему усложнению задачи.
Так или иначе задачи квадратичного программирования разумнее решать более конкретизированными методами, например, используемым выше методом Била.
3.6 Выводы к Главе 3
В данной главе продемонстрированы основные этапы и приемы, используемые для решения нелинейных задач методом Била и сепарабельным симплекс-методом.
Трудоёмкость решения задачи сепарабельным симплекс-методом намного выше трудоёмкости решения методом Била.
Погрешность результатов сепарабельного симплекс-метода всецело зависит от сетки аппроксимации.
Даже в задачах такого уровня уже весомую роль играет анализ решения и эмпирические выкладки. Всё это способно значительно упростить решение.
4 Разработка программного модуля
4.1 Теория решения двойственных задач
4.1.1 Переход от прямой задачи к двойственной
Общая задача линейного программирования формулируется следующим образом максимизировать (минимизировать) целевую функцию Y вида:
Y=
cjxj
→ max
При ограничениях
aijxj(<=,
=, >=)bi
i=[1,m];
j=[1,n];
xj>=0
Прямая задача линейного программирования:
Y=с1*x1+…+сn*xn → max
При ограничениях
a11*x1+…a1n*xn<=b1
a21*x1+…a2n*xn<=b2
....
ak1*x1+…akn*xn<=bk
xi>=0 , i=[1,n]
Двойственная задача:
S=b1*y1+…+bm*ym → min
При ограничениях
a11*y1+…am1*ym>=c1
a12*y1+…am2*ym>=c2
....
a1n*x1+…amn*ym>=cn
yi>=0 , j=[1,m]
Правила образования двойственной задачи:
1. Целевая функция исходной задачи оптимизируется противоположно двойственной.
2. Матрица коэффициентов ограничений двойственной задачи получается путём транспонирования матрицы коэффициентов прямой задачи и наоборот.
3. Число переменных в двойственной задаче равно числу ограничений прямой задачи, а число ограничений двойственной задачи равно числу переменных прямой задачи.
4. Коэффициентами при неизвестных целевой функции двойственной задачи являются свободные члены системы ограничений прямой задачи, а правыми частями системы ограничений двойственной задачи являются коэффициенты целевой функции исходной задачи.
5. Если переменная xj прямой задачи может принимать только положительное значение, то j-е условие в системе ограничений двойственной задачи является неравенством вида >=. Если переменная xj может принимать любое значение, то j-е ограничение уравнение =. Аналогичное состояние имеется между ограничениями исходной задачи и переменными двойственной задачи.
