Все (пока нет) о Стратегический тестировщик, Оптимизация и Облако - страница 16

 
Yuriy Bykov #:
С преждевременным вырождением популяции параметров генетической оптимизации сталкиваться приходилось

Получается доверять генетической оптимизации нельзя. Запустил один раз: нашел более-менее приличный результат. Потом запустил несколько раз с другими комбинациями параметров, в которые обязательно входил результат первой оптимизации. Все последующие выродились, даже близко не достигнув результат первой. Причем поведение последующих одинаковое: каждый раз на новом поколении запускает проходов не больше количества имеющихся агентов. И каждый раз новые поколения не находят результат выше 0-го. Что не удивительно - при таком ничтожно малом количестве новых проходов.

Первая оптимизация:
2024.07.31 00:06:47.602 Tester  Best result 917.7769495942078 produced at generation 2. Next generation 3

Вторая оптимизация с комбинацией параметров, которую нашла первая:
2024.07.31 08:02:54.541 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 1
2024.07.31 08:03:53.669 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 2
2024.07.31 08:05:07.264 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 3
2024.07.31 08:07:13.690 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 4
2024.07.31 08:07:42.802 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 5
2024.07.31 08:08:58.490 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 6
2024.07.31 08:10:22.149 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 7
2024.07.31 08:11:20.351 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 8
2024.07.31 08:12:34.242 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 9
2024.07.31 08:13:55.450 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 10
2024.07.31 08:14:50.479 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 11
2024.07.31 08:16:15.610 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 12
2024.07.31 08:17:23.609 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 13
2024.07.31 08:18:16.493 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 14
2024.07.31 08:19:15.242 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 15
2024.07.31 08:20:08.332 Tester  Best result 572.0037530596592 produced at generation 0. Next generation 16

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

 
Ivan Titov #:

Получается доверять генетической оптимизации нельзя. Запустил один раз: нашел более-менее приличный результат. Потом запустил несколько раз с другими комбинациями параметров, в которые обязательно входил результат первой оптимизации. Все последующие выродились, даже близко не достигнув результат первой.

Штатный ГА сваливается в локальный экстремум и не может из него выбраться. Поэтому и существуют разные алгоритмы оптимизации.
 
Ivan Titov #:

Получается доверять генетической оптимизации нельзя. Запустил один раз: нашел более-менее приличный результат. Потом запустил несколько раз с другими комбинациями параметров, в которые обязательно входил результат первой оптимизации.

Сколько у вас перед запуском оптимизации показывается возможных комбинаций параметров (в последней строке на вкладке "Параметры"), среди которых генетический алгоритм будет выбирать небольшую часть для первого поколения?

Вы проверяли, влияет ли изменение каждого параметра на результаты одного прохода? Если какие-то параметры или не влияют на результат, или очень слабо влияют, или влияют только в небольшой области значений из указанного им диапазона возможных значений, или влияют только при определённых комбинациях значений других параметров, то это может приводить к вырождению популяции (=застревание в локальном экстремуме)

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

Тут ответ простой: у вас у процессора 4 физических ядра и 8 логических. Грубо говоря, пара логических ядер использует одно физическое. Локальные агенты создаются по количеству логических ядер. Сетевые агенты создаются по умолчанию по количеству физических ядер. Сетевые агенты будут работать примерно в два раза быстрее локальных (если конечно, во время использования сетевых агентов не используются локальные и наоборот). В конечном итоге всё упирается в ресурсы имеющегося процессора. В обоих вариантах он задействуется почти на полную мощность. Кажется, пару лет назад я выбирал, как лучше организовать тестирование на нескольких компьютерах, и какой из них делать главным. Там получалось, что преимуществ использования восьми локальных агентов по сравнению с использованием этого компьютера как поставщика четырёх сетевых агентов не было обнаружено.

Если вы хотите использовать сетевых агентов только самостоятельно, а не продавать их мощности через MQL Cloud Network, то, если я правильно помню, вы можете добавить сколько угодно служб сетевых агентов. Можно сделать и 8, и 12, и 16... Продавать же мощности сетевых агентов можно только если их не больше, чем количество физических ядер процессора.

 
Yuriy Bykov #:

Сколько у вас перед запуском оптимизации показывается возможных комбинаций параметров (в последней строке на вкладке "Параметры"), среди которых генетический алгоритм будет выбирать небольшую часть для первого поколения?

Вы проверяли, влияет ли изменение каждого параметра на результаты одного прохода? Если какие-то параметры или не влияют на результат, или очень слабо влияют, или влияют только в небольшой области значений из указанного им диапазона возможных значений, или влияют только при определённых комбинациях значений других параметров, то это может приводить к вырождению популяции (=застревание в локальном экстремуме)

Нельзя ставить знак равенства между вырождением популяции и застреванию в локале. Вырождение популяции означает отсутствие новых решений и забивание всей популяции решениями с близким значением ФФ - этим генетика особо не страдает, мутация периодически создаёт новые решения, которые встряхивают популяцию.

Другое дело, что проблема с застреванием в локале действительно может быть. Тут может помочь либо искусственное сглаживание ФФ какими нибудь приёмами или вообще переделка формулы ФФ, либо использовать самописные алгоритмы, благо MQL5 позволяет это делать.

 
Лекарством (не панацея) от застревания может быть уменьшение шага параметров - уменьшение дискретности задачи за счёт увеличения пространства поиска (поэтому не бесплатное лекарство).
 
Я понимаю, что такие проблемы есть. Но так и не получил объяснения, почему в нулевом поколении много проходов (у меня около 300), а в последующих - стабильно не более количества имеющихся агентов (в моем случае 7). Разве не правильнее скрестить лучшего из 0-го еще с 300, и т.д.?
 
Ivan Titov #:
Я понимаю, что такие проблемы есть. Но так и не получил объяснения, почему в нулевом поколении много проходов (у меня около 300), а в последующих - стабильно не более количества имеющихся агентов (в моем случае 7). Разве не правильнее скрестить лучшего из 0-го еще с 300, и т.д.?
Yuriy Bykov #:

Сколько у вас перед запуском оптимизации показывается возможных комбинаций параметров (в последней строке на вкладке "Параметры"), среди которых генетический алгоритм будет выбирать небольшую часть для первого поколения?

 
Сколько у вас перед запуском оптимизации показывается возможных комбинаций параметров (в последней строке на вкладке "Параметры"), среди которых генетический алгоритм будет выбирать небольшую часть для первого поколения?

Сотни тысяч.

 
Ivan Titov #:

Сотни тысяч.


тогда непонятно почему так происходит, вариантов параметров предостаточно для раздачи на агенты
 
Ivan Titov #:

Сотни тысяч.

Попробуйте сократить диапазоны перебора параметров или увеличить размеры шага для параметров, чтобы количество комбинаций стало поменьше (~1000), и запустите полный перебор. Будут ли в этом случае все проходы давать разные результаты?

И, кстати, какой критерий оптимизации у вас используется? Ваш кастомный или один из стандартных?