ЛАБОРАТОРНАЯ РАБОТА №4 ИЗУЧЕНИЕ МЕТОДОВ УСЛОВНОЙ ОПТИМИЗАЦИИ
Автор: student | Категория: Технические науки / Автоматизация | Просмотров: 2553 | Комментирии: 0 | 05-01-2014 11:24
СКАЧАТЬ: laboratornaya-rabota_4.zip [33,99 Kb] (cкачиваний: 51)



ЛАБОРАТОРНАЯ РАБОТА №4
ИЗУЧЕНИЕ МЕТОДОВ УСЛОВНОЙ ОПТИМИЗАЦИИ

1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1.1 Метод штрафных функций
Чтобы воспользоваться этим методом, необходимо иметь следующие исходные данные:
а) формулу целевой функции f(X1,X2, ... , Xn),
б) Е - точность нахождения значений независимых переменных, при которых функция достигает минимума,
в) начальные приближения X10,X20 ... , Xn0,
г) формулы функций - ограничений в виде равенств g(X1,X2, ... , Xn)=0,
д) формулы функций - ограничений типа неравенств h(X1,X2, ... , Xn)>=0.
Здесь важно, что ограничения записаны в канонической форме, т.е. они или равны, или больше или равны нулю.
Сущность метода состоит в том, что задачу условной оптимизации при наличии ограничений мы заменяем на задачу безусловной оптимизации: поиска минимума некоторой другой - расширенной целевой функции без каких-либо ограничений
R(X1,X2, ... , Xn)= f (X1,X2, ... , Xn)+ Bs(X1,X2, ... , Xn),
где s - штрафная функция, В - коэффициент штрафа.
Штрафная функция должна учитывать заданные ограничения, а именно:
1) она должна равняться нулю для всех значений Х-ов, удовлетворяющих заданным ограничениям, т.е. когда все Х лежат в разрешенной области,
2) она должна быть очень большой, стремиться к бесконечности для тех точек, которые лежат в запрещенной области там, где ограничения не выполняются.
Таким образом, при выполнении ограничений в разрешенной области функции f (X1,X2, ... , Xn) и R(X1,X2, ... , Xn) имеют один и тот же минимум. Если хотя бы одно из ограничений нарушится, значение штрафной функции сильно возрастает и значение функции R(X1,X2, ... , Xn) значительно удаляется от минимума функции f(X1,X2, ... , Xn). Другими словами, при несоблюдении ограничений на целевую функцию налагается "штраф”.
Пусть есть только по одному ограничению типа равенства и неравенства. Тогда шрафную функцию можно записать в виде
s(X1,X2, ... , Xn)= g2(X1,X2, ... , Xn)+ h2(X1,X2, ... , Xn) {1 - sign[h(X1,X2, ... , Xn)]},
где sign[Z] -знаковая функция, равная 1 при Z>0 и равная -1 при Z= 0, j = 1,2,…, s,
которые выделяют в особую группу.
Для решения задачи линейного программирования разработан специальный метод, названный симплекс – методом. Этот метод реализован в EXCEL в подпрограмме Поиск решения. В случае правильного решения задачи EXCEL печатает сообщение "Решение найдено. Все ограничения и условия оптимальности выполнены”. Если коэффициенты системы ограничений таковы, что эта система несовместна, то появится сообщение "Поиск не может найти подходящего решения”. Если же система ограничений такова, что область допустимых решений не ограничена сверху при поиске максимума ( или снизу при поиске минимума), то будет напечатано "Значения целевой ячейки не сходятся”.
Задача линейного программирования является достаточно распространенной задачей условной оптимизации, особенно в экономике. Решение этой задачи рассмотрим на примере задачи распределения ресурсов.

2 ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Подпрограмма EXCEL "Поиск решения”
Подпрограмма Поиск решения имеет модификацию методов сопряженных градиентов и Ньютона для решения задач условной оптимизации. Следует отметить, что эта модификация работает успешно лишь для некоторых видов целевой функции - линейной и квадратичной и лишь для некоторых видов ограничений, например, типа шара, координатного параллелепипеда, гиперплоскости или полиэдра. После вызова подпрограммы командой меню Сервис- Поиск решения появляется диалог, в котором кроме уже знакомых Вам полей Установить целевую ячейку и Изменяя ячейки, следует обратить внимание на поле Ограничения и кнопки управления ограничениями Добавить, Изменить и Удалить. Например, чтобы задать новое ограничение следует щелкнуть по кнопке Добавить. В открывшемся новом диалоге Добавить ограничение нужно внести адрес одной или блока ячеек в поле Ссылка на ячейку, а затем указать тип ограничения и его условия. После этого нужно щелкнуть по кнопке ОК. Работа с другими кнопками управления не вызывает затруднений.
Выбор параметров подпрограммы вызывается щелчком по кнопке Параметры. Продемонстрируем работу подпрограммы решением задачи примера 1.
Выделим ячейку А35 под переменную Х1, ячейку В35 - под Х2, в ячейку С35 запишем формулу целевой функции в обозначениях EXCEL
=(B35-A35^2)^2+(1- A35)^2, в ячейку D35 запишем формулу ограничений

=0,68 - (A35^2+B35^2). Сделаем ячейку С35 текущей и дадим команду меню Сервис- Поиск решения. В открывшемся диалоге в поле Установить целевую ячейку занесем адрес С35, в поле Изменяя ячейки - адрес блока А35:В35. Теперь щелкнем по кнопке Добавить и в открывшемся новом диалоге в поле Ссылка на ячейку занесем адрес D35, выберем вид ограничения >= и правую часть ограничения - 0 (ноль). Щелкнув по кнопке ОК, вернемся к первоначальному диалогу.

Далее щелкнем по кнопке Параметры и выберем следующие переключатели: оценка - квадратичная, производные - прямые, метод - сопряженных градиентов. Щелкнув по кнопке Выполнить получим новый диалог Результаты поиска решения, в котором щелкнем по кнопке ОК. Результаты расчетов представлены в таблице. Особый интерес вызывает числовое значение в ячейке D35. Оно очень близко к нулю, но все же отрицательно, т.е. независимые переменные находятся в запрещенной области.


2.2 Решение задач

Пример 1. Решим задачу примера 5.1 методом штрафных функций. Как известно, координаты точки минимума есть (1;1). Введем ограничение типа неравенства (Х12+Х22)= 0 .
Вернемся к рабочему листу EXCEL, на котором проведено решение примера 5.1 методом покоординатного спуска. Там столбцы А и В отведены под независимые переменные, столбец С - под функцию f, столбец D - под значения погрешности D. Проведем подготовительный этап для метода штрафных функций. Для этого выделим блок А5:D17 и уничтожим его содержимое, нажав на клавиатуре клавишу "Delete”. В ячейку D3 занесем формулу = 0,64-(A3^2+B3^2), в ячейку Е3 - формулу =D3^2*(1- ЗНАК(D3)), где функция ЗНАК соответствует знаковой функции sign. Если теперь в ячейку F3 занести 1, то в ячейке G3 можно сформировать формулу расширенной целевой функции =C3+F3*G3. На этом подготовительный этап заканчивается.
1 итерация. Скопируем формулы блока С3:G3 в блок С4: G30. Следует заметить, что заранее неизвестно, сколько итераций потребуется для получения решения. Поэтому может случиться, что формулы из 3 строки придется скопировать и ниже 30 строки. Сделаем ячейку А4 пустой, а в ячейку В4 занесем 0,5. Теперь определим ячейку G4 текущей и проведем первый шаг метода покоординатного спуска так, как это описано в примере 6.1. Продолжим шаги метода покоординатного спуска до тех пор, пока модуль чисел в столбце Е не уменьшится на порядок по сравнению с числом в ячейке Е3.
2 итерация. Изменим значение величины коэффициента штрафа, занеся число 100 в соответствующую ячейку столбца F, и вновь продолжим покоординатный спуск до тех пор, пока модуль чисел в столбце Е снова не уменьшится еще на порядок.
После этого следует опять увеличить В на два порядка и так до тех пор, пока какое-нибудь число в строке Е не станет меньше по модулю заданного значения Е. Числа в соответствующей строке в столбцах А и В и есть координаты точки минимума.

Пример 2. Пусть некоторое предприятие может изготавливать изделия 4 типов. Для изготовления изделий требуются ресурсы 3 видов: трудовые ресурсы, сырье и финансы. Количество ресурса каждого вида, необходимое для выпуска одной единицы изделия каждого типа, называется нормой расхода. Пусть все нормы расхода известны и приведены в таблице
ресурсы изделие1 изделие2 изделие3 изделие4
трудовые 1 1 1 1
сырье 6 6 4 3
финансы 4 5 10 13
Пусть известна также прибыль, получаемая от реализации каждого типа изделия
изделие1 изделие2 изделие3 изделие4
прибыль 60 70 120 130
и располагаемое количество ресурсов
ресурсы наличие
трудовые 16
сырье 110
финансы 100
Необходимо найти такие количества изделий каждого типа, чтобы прибыль предприятия была максимальной.
Введем некоторые обозначения.
Пусть
аj - прибыль, получаемая от реализации единицы изделия j-го типа,
bi - располагаемое количество i-го ресурса,
сij - норма расхода i-го ресурса для изготовления единицы j-го изделия,
xj - неизвестное количество изделий j-го типа.
Целевую функцию - суммарную величину прибыли предприятия - можно записать так
u = а1x1+а2x2+а3x3+а4x4  max.
Зная нормы расхода и располагаемое количество каждого ресурса, можно составить систему ограничений:

c11x1+c12x2+c13x3+c14x4 =0, x4>=0.
Для нашего примера
критерий оптимизации (целевая функция):
u = 60 x1+70 x2+120 x3+130 x4  max
ограничения
x1+ x2+ x3+ x4=0, x4>=0.

Откроем новый рабочий лист и подготовим его к решению задачи. Внесем исходные данные так, как это показано на рисунке.

Теперь надо подготовить таблицы, связанные с решением задачи, ячейки для целевой функции и ограничений









Далее внесем необходимые формулы для расчета:
ячейка формула
D19 =CУММПРОИЗВ(В18:Е18;В10:Е10)
A22 =CУММПРОИЗВ(В18:Е18;В5:Е5)
A23 =CУММПРОИЗВ(В18:Е18;В6:Е6)
A24 =CУММПРОИЗВ(В18:Е18;В7:Е7)
A25 =B18
A26 =C18
A27 =D18
A28 =E18
После этого вызовем подпрограмму Сервис - Поиск решения. В появившемся диалоге внесем в окно Установить целевую ячейку адрес D19, в окно Изменяя ячейки адреса блока В18:Е18. Если в окне Ограничения оставлены какие-либо формулы от решения предыдущей задачи, их следует удалить по одному, выделяя каждое мышью и нажимая мышью кнопку Удалить. Затем следует внести нужные нам ограничения по одному, нажимая мышью кнопку Добавить. Каждый раз будет появляться новое диалоговое окно. Для первого ограничения в окно Ссылка на ячейку следует внести адрес А22, знак ограничения выбрать мышью из ниспадающего списка, а в правое окно занести адрес С22. Затем щелкнуть по кнопке Добавить и продолжить внесение ограничений.. Закончив ввод ограничений, щелкнем по кнопке ОК и снова попадем в окно Поиск решения.
Теперь щелкнем по кнопке Параметры. В открывшемся диалоге надо включить параметр Линейная модель. Щелкнув по кнопке ОК, возвратимся в окно Поиск решения.
Проверим, что переключатель указывает на поиск максимального значения и щелкнем по кнопке Выполнить. Появится новое диалоговое окно Результаты поиска решения. Если все формулы и ограничения были внесены правильно, то в этом окне будет написано "Решение найдено, Все ограничения и условия оптимальности выполнены”. Щелкнем по кнопке ОК и перейдем к анализу решения. Если же появится надпись "Поиск не может найти подходящего решения”, то щелкнем по кнопке Отмена и проверим правильность внесения исходных данных.
Результаты решения задачи примера приведены в таблице
изделие1 изделие2 изделие3 изделие4
кол-во 10 0 6 0
Значение целевой функции = 1320.
Анализ задачи линейного программирования на устойчивость и по пределам, который обычно проводят после получения решения, выходит за рамки данного пособия.

3 СОДЕРЖАНИЕ ОТЧЕТА
Отчет должен содержать:
1. титульный лист;
2. постановку задачи (согласно варианту);
3. краткое описание методов расчета нелинейных уравнений;
4. программную реализацию данных методов;
5. выводы о проделанной работе.

4 КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ
1. Какие методы условной оптимизации вы знаете?
2. Какой из методов условной оптимизации, в вашем случае, оказался наиболее быстрым и медленным?


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Бурляев В.В. Численные методы в примерах на EXCEL. Методическое пособие по дисциплине "Применение информационных технологий в химии и химической технологии”, 2 изд., испр. и доп., МИТХТ, 1999, с.63.
2. Антонов А.В. Системный анализ: учебник. – М.: Высш. шк., 2008. – 454 с.
3. Рапопорт Э.Я. Оптимальное управление системами с распределенными параметрами: учебное пособие. – М.: Высш. Шк., 2009. – 677 с.