Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тело мой курсач2.doc
Скачиваний:
140
Добавлен:
02.06.2015
Размер:
2 Мб
Скачать
☆

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-е ограничение уравнение =. Аналогичное состояние имеется между ограничениями исходной задачи и переменными двойственной задачи.