Обсуждение статьи "Генетические алгоритмы - это просто!" - страница 2

 
joo:

....

В ветке на MQL4 форума "Тестовая многопеременная многоэкстремальная функция"   я выкладывал некоторые интересные тестовые функции, одна из них представлена в статье.

Если есть желание, можете попробовать найти экстремумы предлагаемых функций другими алгоритмами оптимизации отличными от GA и выложить результаты здесь. Милости прошу. Всем будет интересно и мне в первую очередь.

....

Я увидел свой любимый маткад.

 в статье приводяться цифры ...21,7 секунды против 1.6e32 года! пробовали ли вы решить такую же задачу(тестовые задачи) средствами маткада. На сколько он быстрее(медленнее) MQL5 ?

 
Prival :

Я увидел свой любимый маткад.

 в статье приводяться цифры ...21,7 секунды против 1.6e32 года! пробовали ли вы решить такую же задачу(тестовые задачи) средствами маткада. На сколько он быстрее(медленнее) MQL5 ?

Да, картинка из маткада. Она к первой задаче.

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

 

Просто ваша вторая задача (её) решение, необходима для решения вот этой задачи

https://www.mql5.com/ru/forum/123072/page6#254964 (кстати очень интересная ветка)

в свое время я хотел (соединить эти две задачи) и посчитать, посмотреть, подумать, но руки как всегда не дошли (времени как всегда в сутках мало).

Оптимальные значения SL и ТР ордеров для произвольной ТС. - MQL4 форум
  • www.mql5.com
Оптимальные значения SL и ТР ордеров для произвольной ТС. - MQL4 форум
 
Prival :

Просто ваша вторая задача (её) решение, необходима для решения вот этой задачи

https://www.mql5.com/ru/forum/123072/page6#254964 (кстати очень интересная ветка)

в свое время я хотел (соединить эти две задачи) и посчитать, посмотреть, подумать, но руки как всегда не дошли (времени как всегда в сутках мало).

Да. Эвристические алгоритмы - находка, для задач не имеющих аналитического решения, или когда формализация задачи затруднена.

Половину задач, если не больше, например, этой ветки можно решить с помощью UGA. Кстати, очень приятно являться разрушителем одного из самых известных трейдерских мифов, связанного с ZZ (вторая задача в статье).  :)

[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - MQL4 форум
  • www.mql5.com
[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - MQL4 форум
 

Хорошая статья! Спасибо.

Но все же начну сам писать такую же штуку, на ООП.
Лучше практики еще ни чего не придумали))

 

У вас поиск дубликатов организован в открытом виде, тоесть вы храните все уникальные хромосомы, по крайней мере мне так показалось.

Тоесть идет перебор хромосом и в каждой хромосоме сравнивается каждый ген(почти)
Интересно, если применить какой-нибудь алгоритм хеширования хромосомы, то по идее скорость поиска дубликата должна увеличится, особенно на при большом количестве генов.
Только вот осталось придумать или найти способ быстрый и пригодный для алгоритма.

Ушел копаться в mathcad))

 
mrProF:

У вас поиск дубликатов организован в открытом виде, тоесть вы храните все уникальные хромосомы, по крайней мере мне так показалось.

Так и есть, все уникальные хромосомы хранятся в отдельном массиве - до 100000 штук (сто тысяч). Этого более чем достаточно для практических задач.

mrProF:

Тоесть идет перебор хромосом и в каждой хромосоме сравнивается каждый ген(почти)

Осуществляется сравнение далеко не каждого гена хромосомы. Было бы по меньшей мере не практично сверять все гены, а по большей мере - глупо. Критерием уникальности хромосомы является наличие хотя бы одного отличного гена, по сравнению с хромосомами в "архиве". Поэтому, как только будет найден уникальный ген в хромосоме, сравнение прекращается и вся хромосома признается уникальной и заносится в архив на "вечное" хранение.

mrProF:

Интересно, если применить какой-нибудь алгоритм хеширования хромосомы, то по идее скорость поиска дубликата должна увеличится, особенно на при большом количестве генов.
Только вот осталось придумать или найти способ быстрый и пригодный для алгоритма.

Ушел копаться в mathcad))

Не знаю - не знаю... А потом ещё придется сравнивать с хешем? :)

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

 
joo:

Так и есть, все уникальные хромосомы хранятся в отдельном массиве - до 100000 штук (сто тысяч). Этого более чем достаточно для практических задач.

Осуществляется сравнение далеко не каждого гена хромосомы. Было бы по меньшей мере не практично сверять все гены, а по большей мере - глупо. Критерием уникальности хромосомы является наличие хотя бы одного отличного гена, по сравнению с хромосомами в "архиве". Поэтому, как только будет найден уникальный ген в хромосоме, сравнение прекращается и вся хромосома признается уникальной и заносится в архив на "вечное" хранение.

Не знаю - не знаю... А потом ещё придется сравнивать с хешем? :)

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

Ну я это имел в виду под словом "почти"))

Ну сравнить с одним хешем быстрее чем с 100 генов в цикле...

Тут надо считать быстродействие алгоритма прямого перебора генов или с сравнением с хешем.
Если например кол-во генов меньше 20-ти то прямое сравнение, если больше с хешем.
Сейчас буду копаться в способах расчета хеша, может найду что-нибудь достаточно быстрое и при этом достаточную уникальность хеша.
Как я понял по прочтению книг и статей, удаление дубликатов не слишком критично, даже если будет один не уникальный хеш из 100.
Скорее всего мутацией перекроет этот не уникальный ключ, если будет ощутимый прирост скорости.

Правда это еще только теория, я ГА второй день занимаюсь тока))
В голове жуткая каша, и литературы маловато что бы подсмотреть))

 
Я же говорил что в голове каша, вот и залез не в ту степь.
Хеш можно применить к поиску дубликатов внутри колонии, и функцию нахождения хеша можно сделать простую и быструю, т.к. даже 1-2 дубликата погоды не сделают и не испортят результата.
 

Время выполнения алгоритма ГА несоизмеримо мало, по сравнению с выполнением FF. Поэтому нет особого смысла ломать голову над ещё большим ускорением алгоритма, так же как и нет смысла переносить ГА в dll например.

Нужно стараться сократить количество запусков FF при требуемой точности результата. Для этого алгоритм имеет гибкие настройки. Кроме того, время поиска можно ещё уменьшить за счет совершенствования поисковых качеств ГА вообще и операторов в частности. Рекомендую исследовательский потенциал направить именно в этих направлениях.


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