Один из подходов к исследованию и сравнению методов многоэкстремальной оптимизации основан на решении с помощью данных методов серии задач, выбранных случайно из некоторого класса.
Геренератор GCGen представялет собой библиотеку на языке C++, позволяющую генерировать задачи многоэкстремальной оптимизации с невыпуклыми ограничениями вида
min{φ(y): y ∈ D, gi (y) ≤ 0, 1 ≤ i ≤ m}
D = {y ∈ RN: aj ≤ yj ≤ bj, 1 ≤ j ≤ N}.
Здесь целевая функция φ(y) (обозначаемая в дальнейшем также g(m+1) (y)) и правые части ограничений gi (y), 1 ≤ i ≤ m, представляют собой N-мерные многоэкстремальные функции.
Генератор GCGen позволяет задавать у формируемой задачи следующие параметры:
- долю допустимой области по отношению ко всей области изменения параметров;
- расположение точки условного глобального минимума: либо внутри, либо на границе допустимой области;
- число активных ограничений в точке условного глобального минимума (при ее расположении на границе допустимой области)
Дополнительно есть возможность изменить целевую функцию так, чтобы ее глобальный минимум без учета ограничений находился бы вне допустимой области.
Для корректной работы генератора предполагается, что все функциии gi (y), 1 ≤ i ≤ m + 1, удовлетворяют условию Липшица с вообще говоря неизвестными константами Li, т.е.
|gi (y1 ) -gi (y2 )| ≤ Li ‖y1 - y2 ‖, 1 ≤ i ≤ m + 1.
Чтобы сформировать задачу условной оптимизации в генераторе GCGen, необходимо предварительно подготовить набор функций gi (y), 1 ≤ i ≤ m + 1, каждая из которых должна быть реализована в виде отдельного класса на языке C++. В качестве целевой функции генератор GCGen может использовать только функцию, для которой известна точка глобального минимума.