Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Реализация и использование эволюционных алгоритмов для минимизации функций в ROOT Михаил Жабицкий Объединенный институт ядерных исследований, Дубна MPAMCS 2014, 25 августа, 2014, Дубна М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Содержание 1 Минимизация функции вещественных переменных Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей 2 Программная реализация алгоритма Параллельные расчеты Интеграция с ROOT Примеры решаемых задач 3 Результаты М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей Поиск глобального минимума Поиск вектора x ∗ = {xj }|j=0,...D−1 , минимизирующего целевую функцию f (x): f (x ∗ ) 6 f (x), где Ω = R D ∀x ∈ Ω, — область поиска. «Отягчающие» особенности некоторых задач: Ограничения на параметры ϕ(x) < 0 Многопараметрические задачи D = 10 . . . 100 Многомодальные целевые функции Производные целевой функции недоступны Целевые функции, требующие значительных вычислений М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей Дифференциальная эволюция Эволюционный алгоритм (ЭА) — алгоритм, реализующий процессы, аналогичные отбору, мутации и скрещиванию в биологии Дифференциальная эволюция (ДЭ) — эволюционный алгоритм со специфическим оператором мутации Разработан Р. Шторном и К.В. Прайсом в 1995 [K. Price, R. Storn// J. Global of Optimization 11 (1997) 341] Оперирует популяцией векторов размером Np Каждый член популяции — вектор в пространстве параметров Ω = RD [K. Price, R. Storn, J.A. Lampinen "Differential evolution — A Practical Approach to Global Optimization”, Springer, 2005] [S. Das, P.N. Suganthan// IEEE Trans. Evol. Comp. 15 (2011) 4] М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей Асинхронная Дифференциальная эволюция // инициализация популяции {xi }|i =0,...Np −1 , xi = {xi ,j }|j=0,...D−1 do { i = choose_target_vector (); // выбор целевого вектора i // Мутация: vi = xr + F (xp − xq ); // мут. вектор, r 6= p 6= q — сл. индексы // Кроссовер (рекомбинация): for (j = 0; j < D; j = j + 1) ui ,j = vi ,j xi ,j rand(0, 1) < Cr or j = jrand // пробный вектор иначе // Отбор: if (f (ui ) < f (xi )) xi = ui ; } while (пока не выполнен критерий остановки); [E. Zhabitskaya, M. Zhabitsky// LNCS 7125, 328, 2012] М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей Асинхронная ДЭ: классификация алгоритмов мутация: vi = xr + F (xp − xq ) xi — целевой вектор; xr — базовый вектор (xp − xq ) — дифференциальный вектор DE/w/x/y/z в соответствии с операторами Мутации и Кроссовера: w отвечает заменяемому целевому вектору; x отвечает базовому вектору; y — число дифференциальных векторов; z — тип кроссовера (биномиальный или экспоненциальный). rand/rand/1/bin rand/best/1/bin worst/best/bin vrand = xrand + F (xp − xq ) vrand = xbest + F (xp − xq ) vworst = xbest + F (xp − xq ) М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей Равномерное (биномиальное) скрещивание с фиксированным Cr Покоординатная комбинация мутантного вектора v с целевым вектором x для создания пробного вектора u: ui ,j = vi ,j xi ,j rand(0, 1) < Cr или j = jrand в противном случае. Результат итераций Дифференциальной эволюции критически зависит от вероятности скрещивания Cr : Cr = 0 для разделяемых задач Cr = 1 для неразделяемых задач (инвариантность отн. вращений) Cr = 0.9 — типичный начальный выбор М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей АДЭ с адаптивной корреляционной матрицей [E. Zhabitskaya, M. Zhabitsky, GECCO-2013, 455] Популяция ДЭ адаптируется с рельефу минимизируемой функции: [K. Price, R. Storn, J.A. Lampinen, Springer, 2005] Популяцию можно рассматривать как выборку для определения парных корреляций между параметрами: qjk = 1 Np −1 Np −1 P (xij − x̄j )(xik − x̄k ), i =0 sjk = √ qjk qjj qkk , Адаптивная корреляционная матрица: C ′ = (1 − c)C + cS. [A. Auger, N. Hansen, CMA-ES, IEEE CEC (2005) 1769] М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей АДЭ с адаптивной корреляционной матрицей (II) Пример: композитная функция f = fRosenbrock (x0 , x1 ) + fRosenbrock (x2 , x3 ) C00 0.910 C = 0.027 0.038 0.910 C11 0.016 0.015 0.027 0.016 C22 0.945 [E. Zhabitskaya, M. Zhabitsky, GECCO-2013, 455] М. Жабицкий 0.038 0.015 0.945 C33 ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей АДЭ с адаптивной корреляционной матрицей (III) Выбор координаты m и порога cthr : m = [Np rand(0, 1)], cthr = rand(0, 1); {Im } = ∀j : |cmj | > cthr . C00 0.910 C = 0.027 0.038 ui ,j = vi ,j xi ,j 0.910 C11 0.016 0.015 0.027 0.016 C22 0.945 0.038 0.015 0.945 C33 если j ∈ {Im } Скрещивание в выделенном ⇒ подпространстве в противном случае. [E. Zhabitskaya, M. Zhabitsky, GECCO-2013, 455] М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей Адаптация размера популяции Np Вероятность сходимости Скорость сходимости Алгоритм АДЭ с рестартом малый Np − + большой Np + − [Zh & Zh// LNCS 8236 (2013) 555]: Малый размер начальной популяции Np Рестарт с увеличенным Np ← kNp , если диагностирована стагнация сходимости (длительное отсутствие прогресса или вырождение популяции) Адаптация размера популяции в соответствии со сложностью решаемой проблемы! М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей Частично разделяемые задачи Смещенная функция Розенброка f6 (x) = D−1 X 2 + (zj − 1)2 + fbias , 100 zj2 − zj+1 j=1 z = x − o + 1, x ∈ [−100, 100]D Критерии оценки Вероятность сходимости Psucc = Nsucc Ntrials = 25 Кол-во вызовов f (усредненное по сошедшимся попыткам) 1 X (Nfeval )i hNfeval i = Nsucc i М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Поиск глобального минимума Асинхронная дифференциальная эволюция АДЭ с адаптивной корреляционной матрицей Частично разделяемые задачи D = 20 : f (x) = fRos (x0 , x1 ) + fRos (x2 , . . . , x4 )+ fRos (x5 , . . . , x8 ) + fRos (x9 , . . . , x13 ) + fRos (x14 , . . . , x19 ) DE/rand/rand/1 стратегия: bin bin bin acm Cr 0 0.9 JADE — Psucc 0 1 0.44 1 mean — 4.93e+05 1.19e+07 6.82e+04 М. Жабицкий median — 4.14e+05 — 6.57e+04 ЭА в ROOT std.dev — 1.95e+05 1.11e+06 1.74e+04 Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Параллельные расчеты Интеграция с ROOT Примеры решаемых задач Параллельные расчеты на распределенных вычислительных системах (АДЭ) Узел 0 Узел 1 xi ✛ ✛ xi ✲ f (xi ) Мастер оптимизации (MPI) ... xj f (xj ) ✛ Узел Nproc АДЭ ✲ ✲ f (xj ) Master/Slave модель Полная и эффективная! загрузка вычислительных узлов Мастер оптимизации в стандарте MPI (MPICH2) [Е. Жабицкая, М. Жабицкий, Мат. моделирование 24 (2012) 33] М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Параллельные расчеты Интеграция с ROOT Примеры решаемых задач Интеграция с ROOT ROOT (http://root.cern.ch) — основной пакет анализа экспериментальных данных в физике частиц MINUIT — программа минимизации функций вещественных переменных [F. James, CERN, 1972] Migrad — реализация квазиньютоновского алгоритма, основанного на формуле Давидона-Флетчера-Пауэлла В ROOT реализованы 2 варианта: MINUIT — f2c конверсия оригинального FORTRAN MINUIT MINUIT2 — С++ версия MINUIT ROOT::Math::Minimizer — базовый класс для оптимизационных алгоритмов в ROOT М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Параллельные расчеты Интеграция с ROOT Примеры решаемых задач Квазиньютоновский метод vs Эволюционный алгоритм По функциональности: Квазиньютоновский метод Эволюционный алгоритм Построение квадратичной Без производных формы (ряд Тейлора) Целевая функция Дифференцируема ∀, в т.ч. разрывные Искомый минимум Локальный Глобальный С точки зрения пользователя: Квазиньютоновский метод Эволюционный алгоритм Начальная точка Начальная область Начальная оценка шага — Минимизируемая целевая функция Минимум функции М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Параллельные расчеты Интеграция с ROOT Примеры решаемых задач Интеграция Эволюционных алгоритмов в ROOT Minimizer в ROOT инициализируется в скрытом уровне Методы для задания начальной области поиска Интерфейс для задания внутренних параметров минимизатора Plugin для инициализации минимизатора Внешняя библиотека реализации алгоритма git.cern.ch М. Жабицкий ЭА в ROOT Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Параллельные расчеты Интеграция с ROOT Примеры решаемых задач Примеры решаемых задач Приложения в ядерной физике и физике конденсированных сред [Евгения Жабицкая, MPAMCS, 29.08.2014] 60 Анализ спектра без целеуказания: Alg. Npeaks D Psucc median Migrad 2 6 0.43 0.6e+3 ADE 2 6 0.90 1.8e+3 Migrad 5 15 0.32 2.8e+3 ADE 5 15 0.81 4.0e+4 50 40 30 20 10 0 М. Жабицкий ЭА в ROOT 100 200 300 400 500 600 700 800 900 1000 Минимизация функции вещественных переменных Программная реализация алгоритма Результаты Результаты Разработан алгоритм Асинхронной Дифференциальной эволюции с адаптивной корреляционной матрицей Алгоритм эффективен для нахождения минимума частично-разделяемых задач Реализована автоматическая адаптация параметров алгоритма (не требует доп. усилий от пользователя) Интеграция с пакетом ROOT для решения оптимизационных задач М. Жабицкий ЭА в ROOT