Метод случайного поиска

Рассмотрим применение метода случайного поиска для оптимизации процесса на примере, приведенном выше. Идея метода основана на многократном (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.

Решение задачи можно посмотреть и проанализировать на отдельном листе.

Рисунок и пр.

Если в пункте меню Сервис команда Поиск решения отсутствует, то её можно добавить, используя Сервис/Настройка.

Наши рекомендации