Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хеш можно применить к поиску дубликатов внутри колонии, и функцию нахождения хеша можно сделать простую и быструю, т.к. даже 1-2 дубликата погоды не сделают и не испортят результата.
Время выполнения алгоритма ГА несоизмеримо мало, по сравнению с выполнением FF. Поэтому нет особого смысла ломать голову над ещё большим ускорением алгоритма, так же как и нет смысла переносить ГА в dll например.
Нужно стараться сократить количество запусков FF при требуемой точности результата. Для этого алгоритм имеет гибкие настройки. Кроме того, время поиска можно ещё уменьшить за счет совершенствования поисковых качеств ГА вообще и операторов в частности. Рекомендую исследовательский потенциал направить именно в этих направлениях.
Время выполнения алгоритма ГА несоизмеримо мало, по сравнению с выполнением FF. Поэтому нет особого смысла ломать голову над ещё большим ускорением алгоритма, так же как и нет смысла переносить ГА в dll например.
Нужно стараться сократить количество запусков FF при требуемой точности результата. Для этого алгоритм имеет гибкие настройки. Кроме того, время поиска можно ещё уменьшить за счет совершенствования поисковых качеств ГА вообще и операторов в частности. Рекомендую исследовательский потенциал направить именно в этих направлениях.
Вроде dll теперь не будет быстрее mql 5.
Ладно, как напишу библиотеку проведу тесты, потом напишу что вышло))
Важное замечание к статье.
Не используйте параметры алгоритма
FFNormalizeDigits и GeneNormalizeDigits
Не нужно нормализовать значение фитнесс-функции и гены. Нормализация приводит к снижению поисковой способности алгоритма и увеличению количества запусков FF. Причем, чем больше знаков после запятой отбрасывается, тем сильнее проявляется негативное влияние на алгоритм.
Другими словами введение операции нормализации в алгоритм было ошибкой.
Не путать с операцией дискретизации управляемой параметром Precision!
Не используйте параметры алгоритма
FFNormalizeDigits и GeneNormalizeDigits
Не стоит нормализовать значение фитнес-функции и генов. Нормализация приводит к снижению поисковой способности алгоритма и увеличению количества запусков FF. Причем, чем больше знаков после запятой отброшено, тем сильнее проявляется негативное влияние на алгоритм.
Другими словами, введение операции нормализации в алгоритм было ошибкой.
Не путать с операцией оцифровки, управляемой в параметре Precision!
Важное замечание к статье.
Не используйте параметры алгоритма
FFNormalizeDigits и GeneNormalizeDigits
Не нужно нормализовать значение фитнесс-функции и гены. Нормализация приводит к снижению поисковой способности алгоритма и увеличению количества запусков FF. Причем, чем больше знаков после запятой отбрасывается, тем сильнее проявляется негативное влияние на алгоритм.
Другими словами введение операции нормализации в алгоритм было ошибкой.
Не путать с операцией дискретизации управляемой параметром Precision!
Так в сомой библиотеке UGAlib тоже лучше убрать нормализацию или только в FF.
FFNormalizeDigits используется в FF для нормализации значения приспособленности а GeneNormalizeDigits используется в самом алгоритме для нормализации генов. И там и там нормализацию делать не нужно.
Понятно. Я конечно сам подправлю, но если не трудно выложи подправленную версию UGAlib.
Боюсь ошибок наделаю.
Большое спасибо автору за библиотеку!
Добавьте строчку "cnt++;" в цикле функции поиска родителей, а то может в вечный цикл уйти!
//Отбор двух родителей.
void SelectTwoParents
(
int &address_mama,
int &address_papa
)
{
//-----------------------Переменные-------------------------------------
int cnt=1;
address_mama=0;//адрес материнской особи в популяции
address_papa=0;//адрес отцовской особи в популяции
//----------------------------------------------------------------------
//----------------------------Отбор родителей--------------------------
//Десять попыток выбрать разных родителей.
while (cnt<=10)
{
//Для материнской особи
address_mama=NaturalSelection();
//Для отцовской особи
address_papa=NaturalSelection();
if (address_mama!=address_papa)
break;
cnt++;
}
//---------------------------------------------------------------------
}