Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
vb
315
vb  

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Спасибо!

12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий