Генетические алгоритмы. Вопросы экспертам.

 

Предлагаю в этой ветке писать о вопросах и достижениях сообщества в указанной области, делиться кодами.

У меня есть вопрос к специалистам. Кто-нибудь реализовал алгоритм дифференциальной эволюции для МТ(в виде универсальной функции)? Алгоритм предназначен для численного поиска минимума или максимума функции, когда сделать аналитически это трудно или нельзя. Алгоритм известен с 90х годов, довольно полезный и не сложный. В кодобазе он мне не встречался. Кто-то может поделиться? Если нет, то выложу свой вариант, когда напишу, но как скоро это будет - не знаю. Интересны и другие реализованные ГА, осуществляющие эту задачу (желательно попроще, без наворотов, чтобы каждый мог разобраться и под себя изменть). Также интересен опыт, насколько хорошо такие алгоритмы справляются с указанной задачей для много-экстремальных функций.

 
А какую функцию вы собираетесь исследовать.
 
Дифференциа́льная эволю́ция (англ. differential evolution) — метод многомерной математической оптимизации, относящийся к классу стохастических алгоритмов оптимизации (то есть работает с использованием случайных чисел) и использующий некоторые идеи генетических алгоритмов.

Это прямой метод оптимизации, то есть он требует только возможности вычислять значения целевой функций, но не её производных. Метод дифференциальной эволюции предназначен для нахождения глобального минимума (или максимума) недифференцируемых, нелинейных, мультимодальных (имеющих, возможно, большое число локальных экстремумов) функций от многих переменных. Метод прост в реализации и использовании (содержит мало управляющих параметров, требующих подбора), легко распараллеливается.

Метод дифференциальной эволюции был разработан Рэйнером Сторном и Кеннетом Прайсом, впервые опубликован ими в 1995 году и разработан в дальнейшем в их более поздних работах.
 
zhuki:
А какую функцию вы собираетесь исследовать.

По описанию, алгоритм может исследовать любую функцию(зависимость). Специалисты, возможно, скажут, что это не так и есть ограничения. В этом его сила, и поэтому он полезен. У меня необходимость исследовать 2-у мерную, неаналитически заданную функцию (обычная y=f(x)). Цель - сократить время счета, чтобы не перебирать все значения.
 
 
Jingo:
Дифференциа́льная эволю́ция (англ. differential evolution) — метод многомерной математической оптимизации, относящийся к классу стохастических алгоритмов оптимизации (то есть работает с использованием случайных чисел) и использующий некоторые идеи генетических алгоритмов.

Это прямой метод оптимизации, то есть он требует только возможности вычислять значения целевой функций, но не её производных. Метод дифференциальной эволюции предназначен для нахождения глобального минимума (или максимума) недифференцируемых, нелинейных, мультимодальных (имеющих, возможно, большое число локальных экстремумов) функций от многих переменных. Метод прост в реализации и использовании (содержит мало управляющих параметров, требующих подбора), легко распараллеливается.

Метод дифференциальной эволюции был разработан Рэйнером Сторном и Кеннетом Прайсом, впервые опубликован ими в 1995 году и разработан в дальнейшем в их более поздних работах.

Содержательно. Так,что обследовать собрались?
 
-Aleksey-:

По описанию, алгоритм может исследовать любую функцию(зависимость). Специалисты, возможно, скажут, что это не так и есть ограничения. В этом его сила, и поэтому он полезен. У меня необходимость исследовать 2-у мерную, неаналитически заданную функцию (обычная y=f(x)). Цель - сократить время счета, чтобы не перебирать все значения.
я не думаю что КПД будет лучше генетики, вы можете ускорить оптимизацию раз в 10 если подключитесь к многоядерной сети. и тем самым переборы оптов будут быстрее.
 
Jingo:
я не думаю что КПД будет лучше генетики.

Хочу начать с чего-то простого, а там видно будет. А генетика, оформленная в виде универсальной MT функции(значения исследуемой функции, условие поиска, параметры алгоритма - чтобы просто взять кусок кода и подставить исследуемые значения значения) вам где-то встречалась - чтобы савнивать можно было с ней?

вы можете ускорить оптимизацию раз в 10 если подключитесь к многоядерной сети. и тем самым переборы оптов будут быстрее.
Эээ... не совсем знаком с предметом. Знаю, что к такой сети тестер МТ5 подключается, а интересно использование алгоритма внутри индикатора - в реал-тайм режиме(независимость, кстати от внешней вычислительной сети, какая-никакая). К сети такой для расчета индикаторов и экспертов можно подключаться как-то? Какие-то платные сети?
 
 
hrenfx:
JQS UGAlib

Спасибо огромное. Это я не углядел :)
 

Скажите пожалуйста, на сколько глубокие знания в математике нужно иметь, перед тем как приступать к изучению ГА?

Спасибо!

Причина обращения: