Метод случайного поиска
Рассмотрим применение метода случайного поиска для оптимизации процесса на примере, приведенном выше. Идея метода основана на многократном (N раз) вычислении целевой функции y для значений x1иx2, выбранных из отрезков [a1, b1]и[a2, b2] случайным образом. Те значения x1иx2, при которых целевая функция минимальна и удовлетворяются ограничения (26.3) и являются решением.
Для определения случайного числа x на отрезке [a, b] можно использовать встроенную функцию Rnd. Тогда x=(b-a)×Rnd(1)+a.
Алгоритм метода случайного поиска
1. Ввод исходных данных: a1, b1, a2, b2, количества опытовNичислаA, заведомо большего, чем значение целевой функции.
2. Вычисление yopt=A , x1opt=a1 , x2opt=a2 .
3. i=1.
4. Вычисление x1=(b1-a1)×Rnd(1)+a1 , x2=(b2-a2)×Rnd(1)+a2.
5. Проверка ограничения: если g(x1,x2)<=0 , то переход к пункту 8, иначе – переход к следующему пункту.
6. Вычисление целевой функции y=f(x1,x2).
7. Если y<yopt , то yopt=y , x1opt=x1 , x2opt=x2 , иначе – переход к следующему пункту.
8. i=i+1
9. Если i<=N, то переход к 4, иначе – переход к 10.
10. Вывод оптимальных значений x1opt, x2opt и минимального значения целевой функции yopt.
Решение задач оптимизации в приложениях Mathcad и Excel
В приложении Mathcad имеются встроенные функции, с помощью которых можно решать задачи оптимизации. Рассмотрим пример.
Пусть требуется определить оптимальные значения x1иx2, которые обеспечивали бы максимум целевой функции
y=1,7+4,56x1-3x2-0,69x1x2-0,44x22
и удовлетворяли ограничениям:
3<=x1<=4, 0,1<=x2<=0,9
В рабочей области приложения Mathcad требуется записать:
f(x1, x2) := 1,7+4,56x1-3x2-0,69x1x2-0,44x22
x1 := 3
x2 :=0.1
Given
4≥ x1 ≥ 3
0.9 ≥ x2 ≥ 0.1
R := maximize(f, x1, x2)
R =
Встроенная функция minimize позволяет решить задачи оптимизации, в которых нужно определить минимум целевой функции.
В приложении Excel имеется специальная команда, с помощью которой можно решать задачи оптимизации. Например, чтобы решить предыдущий пример, можно произвести следующие действия.
– на рабочем листе, например в ячейке А1 записать значение левой границы для первого ограничения (число 3);
– в ячейке В1 записать значение левой границы для второго ограничения (число 0,);
– в ячейке С1 записать целевую функцию:
=1,7+4,56∙А1-3∙В1-0,69∙А1∙В1-0,44∙В1^2
– выполнить Сервис/Поиск решения. В появившемся окне задать имя ячейки с целевой функцией (для данного примера С1), определить, что в задаче целевая функция стремится к максимуму, ввести соответствующие ограничения для содержимого ячеек А1 и В1.
Решение задачи можно посмотреть и проанализировать на отдельном листе.
Рисунок и пр.
Если в пункте меню Сервис команда Поиск решения отсутствует, то её можно добавить, используя Сервис/Настройка.