Формализация задачи многокритериальной оптимизации выглядит следующим образом. Пусть для каждого узла (альтернативы) a из оптимизационного пространства задан n-мерный вектор значений целевых функций (критериев) x(a) = (x1(a), …, xn(a)). Используя показатели n критериев, необходимо найти альтернативы с максимальными значениями координат векторов (то есть с максимальными показателями целевых функций). Будем считать, что чем больше значение критерия, тем лучше альтернатива. При сравнении двух альтернатив a и b альтернатива a доминирует над альтернативой b, если выполняется следующая совокупность неравенств: xi(a) ≥ xi(b), для всех значений i = 1, …, n, и существует хотя бы один критерий j, для которого выполняется строгое неравенство xj(a) > xj(b). Другими словами, узел a предпочтителен узлу b, если a не уступает b по значениям всех целевых функций и хотя бы по одной из них превосходит b.
Очевидно, что наличие доминирования однозначно определяет, какая из двух сравниваемых альтернатив лучше. Если же отношение доминирования установить невозможно, то вопрос о том, какая из них лучше, остается открытым. В этом случае говорят, что ни одна из альтернатив не обладает однозначным превосходством (не доминирует) над другой.
Используя приведенные рассуждения, задачу многокритериальной оптимизации можно сформулировать следующим образом: среди множества всех альтернатив найти такое подмножество, в которое входят только недоминируемые альтернативы, то есть те, для которых не существует доминирующих их альтернатив. Это подмножество и называется множеством Парето. Каждый элемент такого множества можно считать наилучшим в определенном выше смысле. При этом число альтернатив, составляющих это множество, может быть самым различным. Например, это может быть как одна, доминирующая над всеми остальными, альтернатива, так и несколько «лучших» альтернатив или даже все исходное множество.
В нашем примере оптимизации базовой дельта-нейтральной стратегии мы имеем оптимизационное пространство A = (a1, …, am), состоящее из m узлов-альтернатив (в примере m = 3600), оцененных с помощью n функций-критериев (n = 3) со значениями x(a) = (x1(a1), …, xn(am)). Для построения множества Парето необходимо попарно сравнить все альтернативы, отбрасывая доминируемые, а недоминируемые добавляя в множество Парето. Очередной элемент ak сравнивается со всеми оставшимися. Если встречается элемент al, над которым ak доминирует, то элемент al отбрасывается. Если оказывается, что ak доминируем каким-либо элементом am из оставшихся, то отбрасывается элемент ak. Если ни один из элементов не доминирует над ak, то последний включается во множество Парето. Далее переходим к сравнениям элемента, следующего за ak, со всеми оставшимися элементами. При этом максимальное количество требуемых сравнений составляет порядка 0,5m (m – 1), что вполне приемлемо для большинства случаев. Более быстрые алгоритмы требуются при построении множества Парето для большого числа критериев и альтернатив.
Как было сказано выше, недостатком метода Парето является невозможность повлиять на количество узлов, попадающих в оптимальное множество Парето. Число элементов множества может изменяться от случая к случаю и не зависит от наших пожеланий и предпочтений. Единственное оптимальное решение может быть получено только в том случае, когда оптимизационное пространство имеет узел, для которого показатели всех критериев превосходят соответствующие показатели для других узлов. В большинстве случаев вместо единственного оптимального решения получается множество.
Рассмотрим применение метода Парето на примере базовой дельта-нейтральной стратегии. В качестве критериев будем использовать те же три целевые функций, что использовались в многокритериальной оптимизации методом свертки (прибыль, максимальная просадка и процент прибыльных сделок). В отличие от свертки, метод Парето не позволяет построить полное оптимизационное пространство, аналогичное поверхности, показанной на рис. 2.4.1. Вместо этого мы получаем перечень доминирующих узлов, составляющих оптимальное множество. В результате оптимизационная поверхность превращается в координатную плоскость, обозначающую положение отдельных оптимальных узлов (рис. 2.4.2).