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

 
Urain:

....

В целом же нужно понимать что ГА находит не точное, а робастное решение. Т.е. решение которое довольно удачное по сравнению с полем возможных решений.

Тестовые функции "побеждаются". Должны побеждаться.

А так - всё правильно глаголилишь.

 
joo:

Тестовые функции "побеждаются". Должны побеждаться.

А так - всё правильно глаголилишь.

Да да, я не детализировал, на то они и тестовые функции что алгоритм должен их брать, иначе такой алгоритм нельзя считать удачным.

Трудно представить что найдёт алгоритм в поле неизвестности если он даже не прошёл тест.

 

Всем спасибо, все работает.

Надо же так было ступить минус с умножить перепутать . 

 
ivandurak:

Всем спасибо, все работает.

Вы про Ваш алгоритм? Поздравляю!
 

Интересно как правильно прикрутить UGA, если надо при одном значении фитнессфункции минимизации ошибки апроксимации разные переменные оптимизировать? Классическая задача. Пятивходовая двухслойная нейросеть с 4 нейронами, например, требует перебора 22 коэффициентов вместе с bias в диапазоне [-1...1] с точностью 0.0001 и одновременно в одной и той же целевой функции подбор параметров входных индикаторов 5 штук*2параметра= 10 переменных в диапазоне 5...50. Или bias отдельно, но уже с шагом 0.01.

Можно конечно закодировать в диапазон весов значения индикаторов. Но это немного не то.

И еще один вопрос. Можно ли передать UGA условия пропускания генов ? То есть, например гены, отвечающие за индикатор должны соответстовать условию G23< G24 G25<G26 и так далее.

 
miklelv:

Интересно как правильно прикрутить UGA, если надо при одном значении фитнессфункции минимизации ошибки апроксимации разные переменные оптимизировать? Классическая задача. Пятивходовая двухслойная нейросеть с 4 нейронами, например, требует перебора 22 коэффициентов вместе с bias в диапазоне [-1...1] с точностью 0.0001 и одновременно в одной и той же целевой функции подбор параметров входных индикаторов 5 штук*2параметра= 10 переменных в диапазоне 5...50. Или bias отдельно, но уже с шагом 0.01.

Можно конечно закодировать в диапазон весов значения индикаторов. Но это немного не то.

И еще один вопрос. Можно ли передать UGA условия пропускания генов ? То есть, например гены, отвечающие за индикатор должны соответстовать условию G23< G24 G25<G26 и так далее.

То то, самое то,

есть диапазон в котором работает большая часть параметров, остальные просто приводятся по месту сдвигами и масштабированием.

Вы же понимаете что код в статье это не коммерческая разработка вылизанная под каждый чих потребителя.

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


имеете диапазон генов [-1;1] --> (int)NormalizeDouble( ((ген+1)/2)*45+5 ,0) --> [5;50]

хотя согласен что будет много разных генов дающих один результат, тут можно сделать задатчик точности по объединению генов, например с 0 по 1000-ный ген точность до 3-го знака, с 1000 по 1010 точность до 0 знака.

 
miklelv:

И еще один вопрос. Можно ли передать UGA условия пропускания генов ? То есть, например гены, отвечающие за индикатор должны соответстовать условию G23< G24 G25<G26 и так далее.

Можно так сделать: Праметр1=G23  Праметр2=G23+G24.  
 
her.human:
Можно так сделать: Праметр1=G23  Праметр2=G23+G24.  

Лучше всё же при преобразовании диапазона сделать преобразование с логической проверкой, которая будет включать и разрыв.

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

Если же один параметр представить двумя генами то между ними не будет связи.

 
Urain:

Лучше всё же при преобразовании диапазона сделать преобразование с логической проверкой, которая будет включать и разрыв.

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

Если же один параметр представить двумя генами то между ними не будет связи.

Может и лучше.

Я предложил простой вариант. ГА справляется без проблем.

Вообще то гены не всегда заимствуются, могут и новые генериться. 

 
Спасибо за комменты. Закодировать конечно проще. Пытаюсь повторить на mql Prediction Wizard из Neuroshell. Там за 2-3 секунды на истории в 200-2000 баров в одном цикле из 20 индюков с 2-4 параметрами каждый в диапазоне 5...50 формируется предикт гладкого индюка на 2-3 бара из отобранных из этой 20ки лучших индикаторов (например 5шт) . Да и все это на VBbasic  написано. Классный там видимо алгоритм. UGA в самый раз подойдет.
Причина обращения: