4. Выполняем шаг отражения, используя коэффициент растяжения α = 1. Отраженная точка, отмеченная номером 2 на рис. 2.7.4, имеет координаты 24 и 105. Поскольку значение целевой функции в отраженной точке лучше, чем во всех точках начального симплекса, переходим к шагу растяжения.
5. Вычисляем «точку растяжения», используя коэффициент растяжения σ = 2. Она находится путем удвоения расстояния между центром тяжести симплекса и второй точкой. Полученный узел (отмечен номером 3 на рис. 2.7.4) имеет более высокое значение целевой функции по сравнению с узлом номер 2 и поэтому заменяет последний, становясь новой вершиной симплекса.
6. Выполняем очередной шаг отражения. Отраженная точка отмечена номером 4 на рис. 2.7.4. Поскольку значение целевой функции в отраженной точке ниже, чем во второй худшей точке предыдущего симплекса, переходим к шагу сжатия.
7. Вычисляем «точку сжатия», используя коэффициент сжатия γ = 0,5. Получаем узел под номером 5. Поскольку этот узел лучше худшего в предыдущем симплексе, но не самый лучший, переходим к шагу отражения.
8. Выполняя шаг отражения, получаем узел номер 6. Поскольку значение целевой функции в этом узле ниже, чем во всех точках предыдущего симплекса, переходим к шагу сжатия.
9. Вычислив «точку сжатия», получаем точку номер 7. Поскольку данная точка попадает между двумя узлами, дальнейшее выполнение стандартного алгоритма Нелдера Мида для данного оптимизационного пространства невозможно. Для выбора окончательного оптимального решения можно пойти несколькими путями. Можно вычислить целевую функцию точки 7 путем интерполяции как среднее арифметическое целевых функций узлов с координатами 32 и 100, 34 и 100. После чего можно продолжить исполнение стандартного алгоритма, вычисляя таким же образом все точки, не попадающие на узлы оптимизационного пространства. Другой, более простой, путь состоит в выборе оптимального решения среди одной из вершин последнего симплекса (той, которая имеет наибольшее значение целевой функции).
Этот алгоритм показал себя достаточно эффективным в решении задач разного рода и при этом достаточно прост в реализации. Осиновым его недостатком является большое количество параметров-коэффициентов, от выбора которых может сильно зависеть эффективность оптимизации. Как будет показано в следующем разделе, для эффективного использования метода Нелдера Мида необходима тонкая настройка параметров и предварительная информация о свойствах оптимизационного пространства.
2.7.2. Сравнение эффективности основных методов целенаправленного поиска
В предыдущем разделе мы описали четыре основных метода целенаправленного поиска оптимального решения. Каждый из них имеет свои особенности, достоинства и недостатки. Первый из рассмотренных методов (покоординатный подъем) является самым базовым и простым. Все прочие более сложны, причем каждый последующий является более сложным и, по идее, более совершенным, чем предыдущие (имеется в виду очередность их рассмотрения в разделе 2.7.1). Однако опыт показывает, что более сложные методы не всегда являются более эффективными. В общем виде можно утверждать, что эффективность того или иного метода зависит от формы оптимизационного пространства, на котором он применяется. Определенный метод может показать высокую эффективность на одном типе оптимизационного пространства, но оказаться непригодным для пространства, имеющего другую структуру.
В этом разделе мы исследуем эффективность четырех описанных ранее методов и протестируем зависимость их эффективности от формы оптимизационного пространства. Для этого мы применили каждый из методов поиска оптимального решения к двум разным по форме оптимизационным пространствам базовой дельта нейтральной стратегии. Одно из пространств имеет единственную оптимальную область относительно большого размера (оно формируется целевой функцией «прибыль», левый верхний график рис. 2.3.1), второе пространство имеет совершенно другую форму множество небольших оптимальных областей (целевая функция «процент прибыльных сделок» левый нижний график рис. 2.3.1).
Чтобы получить статистически достоверные результаты, для каждой из двух целевых функций и для каждого метода было проведено по 300 полных оптимизационных циклов. Все циклы отличались друг от друга только стартовой точкой, с которой начинался поиск оптимального решения. Сравнительный анализ эффективности разных методов оптимизации базируется на следующих пяти показателях (в каждом случае они рассчитываются на основе 300 данных):
Чтобы получить статистически достоверные результаты, для каждой из двух целевых функций и для каждого метода было проведено по 300 полных оптимизационных циклов. Все циклы отличались друг от друга только стартовой точкой, с которой начинался поиск оптимального решения. Сравнительный анализ эффективности разных методов оптимизации базируется на следующих пяти показателях (в каждом случае они рассчитываются на основе 300 данных):
1. Процент оптимальных решений, совпадающих с глобальным максимумом (когда оптимизационный алгоритм остановился на узле с наибольшим значением целевой функции).
2. Процент оптимальных решений, расположенных в оптимальной области. Значения целевой функции этих решений не должны быть ниже определенного порогового значения.
3. Процент неудовлетворительных оптимальных решений. Целевые функции этих решений имеют значения, не превышающие определенную пороговую величину.
4. Среднее значение целевой функции всех оптимальных решений, рассчитанное на основе 300 полных оптимизационных циклов.
5. Среднее количество вычислений, необходимых для выполнения полного оптимизационного цикла.
В таблице 2.7.1 показаны значения всех пяти показателей эффективности для четырех методов целенаправленного поиска. Когда в качестве целевой функции использовалась прибыль, метод ХукаДживса оказался наиболее эффективным. В 69 % случаев в качестве оптимального решения был выбран узел, соответствующий глобальному максимуму (соответственно, в 31 % случаев алгоритм поиска остановился, не найдя узел с самым высоким значением целевой функции). По проценту попаданий в оптимальную область (72 % от всех случаев) и по среднему значению целевой функции, рассчитанному для всех решений (6.43), данный метод также значительно превзошел все другие методы. Единственный показатель, по которому метод ХукаДживса оказался несколько хуже (совсем ненамного) метода покоординатного подъема это процент неудовлетворительных оптимальных решений (15 %). Однако существенным недостатком этого метода оказалась его затратность по времени. Для завершения одного полного оптимизационного цикла пришлось произвести в среднем 1279 вычислений. Это значительно больше, чем количество вычислений, требуемых для других методов.
На втором месте по эффективности оптимизации унимодальной целевой функции (прибыль) находится метод покоординатного подъема. Хотя он несколько уступает по всем показателям (кроме процента неудовлетворительных оптимальных решений) методу ХукаДживса, его несомненным достоинством является относительно небольшое количество требуемых вычислений (в среднем 319, что в четыре раза меньше, чем требуется при использовании метода ХукаДживса).
Метод Розенброка существенно уступает по эффективности двум предыдущим методикам. Лишь в 11 % случаев с помощью этого метода удалось обнаружить узел глобального максимума, а в 41 % случаев алгоритм остановился на ячейках, относящихся к областям с низкими значениями целевой функции. Кроме того, количество вычислений, требуемых для нахождения оптимальных решений, по методу Розенброка оказалось достаточно большим (в среднем 835), находясь на втором месте после метода ХукаДживса.
Наихудшие результаты были получены для метода Нелдера Мида. Хотя количество вычислений для этого метода оказалось наименьшим по сравнению с другими методами, все показатели его эффективности находятся на очень низком уровне. Всего в 7 % случаев решение совпало с глобальным максимумом и лишь в 15 % случаев оптимальное решение находилось в оптимальной области. В 60 % случаев решения оказались неудовлетворительными.
Для другого оптимизационного пространства, построенного на основе целевой функции «процент прибыльных сделок», эффективность методов покоординатного подъема ХукаДживса и Розенброка оказалась приблизительно одинаковой (если не считать того, что последний метод был несколько хуже по показателю «процент попаданий в оптимальную область»). Метод Нелдера Мида вновь показал наихудшие результаты. Такая низкая эффективность данного метода весьма удивительна. Возможно, она объясняется тем, что для успешного применения этого метода необходимо тщательно подбирать стартовые условия (размер симплекса), а также значения его многочисленных параметров (коэффициенты отражения, сжатия, редукции, расширения). Мы же выбрали размер симплекса произвольно, а для коэффициентов приняли обычно используемые значения. Вероятно, для получения удовлетворительных результатов необходима более тонкая настройка параметров и некоторые априорные предположения о свойствах оптимизационного пространства.
Для оптимизационного пространства, соответствующего целевой функции «процент прибыльных сделок», эффективность всех четырех методов оптимизации оказалась значительно ниже по сравнению с их эффективностью на пространстве функции «прибыль». Это подтверждает наше предположение о том, что форма оптимизационного пространства оказывает значительное влияние на эффективность оптимизации. По всей видимости, унимодальные пространства с относительно широкой оптимальной зоной легче поддаются оптимизации методами целенаправленного поиска, чем полимодальные пространства с большим количеством раздробленных оптимальных областей.
2.7.3. Случайный поиск
До сих пор мы рассматривали два подхода к оптимизации полный перебор, требующий вычисления целевой функции во всех узлах оптимизационного пространства, и целенаправленный поиск. Возможен еще один подход, состоящий в вычислении целевой функции в случайно выбранных узлах оптимизационного пространства. Безусловно, случайный поиск представляет собой самый простой способ оптимизации. Для его реализации достаточно выбрать случайным образом заданное количество узлов и рассчитать значения целевой функции для каждого из них. После этого узел с наибольшим значением выбирается в качестве оптимального решения. Этот метод настолько примитивен, что зачастую вообще не рассматривается в качестве приемлемой методики. Тем не менее во многих случаях (и по многим показателям) случайный поиск может дать достаточно эффективные результаты, не уступающие методам целенаправленного поиска.