Объясните с точки зрения трейдерских задач что такое:
1) Размер популяции — размер начальных тычков в небо?
2) Коэф. скрещивания (не понял вообще)?
3) Коэф. мутации — шаг итерации от значения тычка в небо?
4) Кол-во поколений — кол-во темплейтов которые получаем на выходе?
Насколько я понял из рассказа профессора на прошлой неделе:
1) Особь — набор управляющих воздействий (переменных)
2) Скрещивание или crossing-over — вероятность выбрать N-ного родителя (не понял что за бред)
3) Мутация — Вероятность изменения одной из управляющих переменных на какую-либо другую (я так понял противоположную)
Марсель Тазетдинов, полный брутфорс — самое неоптимальное для всех задач решение. генетика одна из самых оптимальных, а при числе параметров 7 и больше может даже единственная реальная система оптимизации «из умных». там где брут форсом нужно несколько млн. прогонов на генетике будет достаточно порядка тысячи.
Смотри как бы под эту генетическуя оптимизацию не попали твои собственные гены. Комп тебе напишет: «Генетически для торговли на рынке Вы не пригодны.» :)))
Марсель, всё очень просто на самом деле. Возьмём простой пример — мы подбираем два параметра системы, пусть они будут однобайтовыми. Начинается всё с того, что мы берём, например, 10 (это размер популяции) пар параметров и присваиваем им всем случайные значения. Дальше мы прогоняем для каждой пары параметров значения фитнесс-функции (эффективность каждой пары параметров, прибыль после прогона системы при этих значениях параметров.) Первая итерация закончена.
Теперь нужно получить новые значения параметров. Для этого используются операторы скрещивания и мутации. Выглядит это так — каждая пара параметров представляется в двоичном виде (или его разновидности — в коде Грэя). При скрещивании параметры обмениваются произвольными небольшими участками нулей и единиц:
было 10010111-00101010
стало 10001111-00100110
(переставили в каждом группу из двух бит)
При мутации участки двоичного кода заменяются новыми случайными последовательностями. После этого процесс повторяется. Самые плохие результаты из популяции удаляются, лучшие остаются. Таким образом, мы быстро выходим на самые лучшие наборы параметров.
В обычном режиме на каждом поколении все пары отличны от предыдущих. Для улучшения процесса можно оставлять пару-тройку самых лучших, элиту — это и называется «стратегия элитизма».
1)Размер популяции это общее количество всевозможных вариантов решений из которых надо выбрать лучшее — ранжировать по приспособленности. Более высокая численность популяции повышает вероятность того, что мы найдем хорошее решение, но при более высокой численности требуется
большее время обработки. Варианты решений закодированы в двоичном виде в виде битовых строк
например десятичное 13 в виде 01101.
Эти значения из двоичного вида преобразуются в десятичный которые используются для задания целевой функции. Это проделывается для всех вариантов решений и значения целевой функции для них сохраняются(Важно: значения целевой функции должно быть неотрицательными)
2)Коэффициент скрещивания(вероятность кроссовера).
Как это работает и зачем это надо? Алгоритм выбирает два случайных числа в интервале от 0 до 1 нужные для определения какими будут, два родителя из популяции которые ранжированы по приспособленности(этот процесс я неописал).
Кроссовер: Последовательно формируется каждый бит ребенка(родители в двоичном коде) — нового варианта решения популяции. Начинают с копирования первого бита первого родителя в первый бит ребенка. Одновременно с этим генерируется случайное число. Если это случайное число оказывается меньше или равно вероятности кроссовера, деленной на длину гена, то переключаемся на копирование битов от другого родителя. Пример: если длина гена равна 36 и используемая нами вероятность кроссовера равна 0.6, то для переключения на копирование кода другого родителя в последующих битах, генеририруемое при каждом бите случайное число должно быть меньше 0.6/36, или 0.01667. Это продолжается до тех пор пока все биты не будут скопированы в коде ребенка. Данную операцию нужно проделать для всех новых членов популяции.Обычно вероятность кроссовера(перекрестной рекомбинации) находится в интервале от 0.6-0.9. Так, вероятность кроссовера 0.9 означает что
шансы возникновения кроссовера у ребенка будут равны 90%, в среднем; то есть 10% шансов будет за то, что ребенок будет точной копией одного из родителей.
3) Коэффициент мутации(вероятность мутации). Попутно с копированием каждого бита родителя в бит ребенка генерируется второе случайное число. Если это случайное число оказывается меньше или равно вероятности мутаций, то данный бит инвертируется. То есть, бит бывший 0 у родителя,
становится 1 у ребенка, и наоборот. Мутация помогает сохранить разнообразие в популяции.
Вероятность мутации обычно должна быть невелика(=0.001), иначе алгоритм вырождается в случайный
поиск. Однако по мере приближения алгоритма к оптимальному варианту, мутация приобретает все
большее значение, ибо кроссовер не может сохранить генетическое разнообразие в столь локализованном объеме (n+1)- мерного пространства
4)Количество поколений- то количество повторяющих вычислений, которое необходимо чтоб наилучшее
значение целевой функции не было превзойдено.
… и задачка для самых продвинутых )))
как быть, если:
— по какой-либо причине выбран в кач. метода генетический, но
— невозможно (не важно по какой причине) формализовать фитнесс-функцию
Такая ситуация была в проге ищущую оптимальную позу,
м.б. у кого-то есть более красивое решение, чем было найдено?
А для чего Вы хотите ее применять? Если для ускорения оптимизации систем с кучей параметров, то лучше «забейте» — с вероятностью 0,999 получите подгонку.
А. Г., именно для ускорения, я решил попробовать взять стратегии на пересении скользящих и прогнать полную оптимизацию и генетическую и сравнить картинку
ГА это поиск локальных экстремумов фитнесс-функции. Главный недостаток, что они локальные)) Т.е. если эксремумов несколько, то он может случайно найти один или несколько локальных. И неточно экстремум, а в окресности. Параметры 1-4 вляют на скорость поиска эктремума и возможно их кол-во.
Главное не оптимизация, а подтверждение робастности найденных параметров. Т.е. чтобы «хорошие» характеристики системы сохранялись в будущем, а нетолько на истории. Это уже неточная наука, а набор экспертных методов. И ГА может тут тоже пригодится при правильном применении.
X5 укрепила лидерство на рынке онлайн-продаж в 2025 году
По итогам 2025 года GMV онлайн-бизнеса Х5 составила 323,7 млрд руб., а доля на рынке e-grocery, по данным INFOLine, достигла 18,6%. Цифровой бизнес стал одним из ключевых драйверов роста группы...
Как я шортил нефтянку и индекс на фоне войны в Иране и сколько на этом потерял: работа над ошибками
💥 Как я шортил нефтянку и индекс на фоне войны в Иране и сколько на этом потерял: работа над ошибками
Бывает, находишь схему, с которой уверенно зарабатываешь на рынке. Но потом...
EURUSD: почему хорошие новости для еврозоны пока не работают
EURUSD отскочил после нескольких дней снижения — свежая статистика по еврозоне и отчет ADP ослабили доллар и поддержали оппонента. Композитный PMI в феврале вырос до 51,9 против 51,3 в январе,...
Хэдхантер. Я не дождался отчета за 25г. и обновил прогноз по прибыли и дивидендам
Хэдхантер послезавтра 6 марта опубликует отчет по МСФО за 2025 год. Модель по компании обновлял здесь , но сегодня решил сделать корректировки и посчитать — сколько в итоге будет чистая...
КУК ты, И имеет свою паству.Логику ты уловил.Был у православного момент-когда он начинал и был слаб.Там Византия стояла за спиной.Императоры решали.Тут уже паствы много.Третье поколение пошло.Мозг ...
Глава горсобрания Курска подал в отставку после замечаний Хинштейна
«Единая Россия»
Владимир Токарев (Фото: «Единая Россия»)
Председатель Курского городского собрания Владимир Токарев пода...
Михаил Гайлит, вопрос не адресу — я не знаю). Я описываю, как вижу ситуацию, «вот был бы тогда я государством»)) — то пропускал бы свою нефть в первую очередь.
Лукойл может заплатить налоги, а го...
Возможно, России стоит прекратить поставки газа в Европу уже сейчас, перенаправив их на другие рынки. Это позволит избежать полного запрета в будущем — Путин Возможно, России стоит прекратить поставки...
Анатолий Селянин, не «и всё тут», а лично вам причём неоднократно, было расписано и про дороговизну и про даже теоретическую (не говоря о практической) невозможность достижения цены 65 руб. Вы же в...
❗️❗️Кого из банков взять в дивидендный портфель на долгосрок
Вообще, если мы говорим про консервативный риск-профиль, то здесь важна не просто надежность, а предсказуемость результата. Поэтому, ...
Итоги аукционов Минфина РФ по размещению ОФЗ 04.03.2026 Минфин РФ 04.03.2026 провел аукционы по размещению ОФЗ-ПД серий: 26246 с погашением 12.03.2036 и серии 26218 с погашением 17.09.2031. Премии ко ...
1) Особь — набор управляющих воздействий (переменных)
2) Скрещивание или crossing-over — вероятность выбрать N-ного родителя (не понял что за бред)
3) Мутация — Вероятность изменения одной из управляющих переменных на какую-либо другую (я так понял противоположную)
Сильно не пинать, я лишь слушал лекцию :)))
У тебя математическое образование?
вот я неграмотная свинья стал..)
Неа не математическое, ya-marsel.livejournal.com/358188.html#comments ответили в жж, почитай заодно сам разберешься :)
Теперь нужно получить новые значения параметров. Для этого используются операторы скрещивания и мутации. Выглядит это так — каждая пара параметров представляется в двоичном виде (или его разновидности — в коде Грэя). При скрещивании параметры обмениваются произвольными небольшими участками нулей и единиц:
было 10010111-00101010
стало 10001111-00100110
(переставили в каждом группу из двух бит)
При мутации участки двоичного кода заменяются новыми случайными последовательностями. После этого процесс повторяется. Самые плохие результаты из популяции удаляются, лучшие остаются. Таким образом, мы быстро выходим на самые лучшие наборы параметров.
В обычном режиме на каждом поколении все пары отличны от предыдущих. Для улучшения процесса можно оставлять пару-тройку самых лучших, элиту — это и называется «стратегия элитизма».
В первом приближении так.
большее время обработки. Варианты решений закодированы в двоичном виде в виде битовых строк
например десятичное 13 в виде 01101.
Эти значения из двоичного вида преобразуются в десятичный которые используются для задания целевой функции. Это проделывается для всех вариантов решений и значения целевой функции для них сохраняются(Важно: значения целевой функции должно быть неотрицательными)
2)Коэффициент скрещивания(вероятность кроссовера).
Как это работает и зачем это надо? Алгоритм выбирает два случайных числа в интервале от 0 до 1 нужные для определения какими будут, два родителя из популяции которые ранжированы по приспособленности(этот процесс я неописал).
Кроссовер: Последовательно формируется каждый бит ребенка(родители в двоичном коде) — нового варианта решения популяции. Начинают с копирования первого бита первого родителя в первый бит ребенка. Одновременно с этим генерируется случайное число. Если это случайное число оказывается меньше или равно вероятности кроссовера, деленной на длину гена, то переключаемся на копирование битов от другого родителя. Пример: если длина гена равна 36 и используемая нами вероятность кроссовера равна 0.6, то для переключения на копирование кода другого родителя в последующих битах, генеририруемое при каждом бите случайное число должно быть меньше 0.6/36, или 0.01667. Это продолжается до тех пор пока все биты не будут скопированы в коде ребенка. Данную операцию нужно проделать для всех новых членов популяции.Обычно вероятность кроссовера(перекрестной рекомбинации) находится в интервале от 0.6-0.9. Так, вероятность кроссовера 0.9 означает что
шансы возникновения кроссовера у ребенка будут равны 90%, в среднем; то есть 10% шансов будет за то, что ребенок будет точной копией одного из родителей.
3) Коэффициент мутации(вероятность мутации). Попутно с копированием каждого бита родителя в бит ребенка генерируется второе случайное число. Если это случайное число оказывается меньше или равно вероятности мутаций, то данный бит инвертируется. То есть, бит бывший 0 у родителя,
становится 1 у ребенка, и наоборот. Мутация помогает сохранить разнообразие в популяции.
Вероятность мутации обычно должна быть невелика(=0.001), иначе алгоритм вырождается в случайный
поиск. Однако по мере приближения алгоритма к оптимальному варианту, мутация приобретает все
большее значение, ибо кроссовер не может сохранить генетическое разнообразие в столь локализованном объеме (n+1)- мерного пространства
4)Количество поколений- то количество повторяющих вычислений, которое необходимо чтоб наилучшее
значение целевой функции не было превзойдено.
как быть, если:
— по какой-либо причине выбран в кач. метода генетический, но
— невозможно (не важно по какой причине) формализовать фитнесс-функцию
Такая ситуация была в проге ищущую оптимальную позу,
м.б. у кого-то есть более красивое решение, чем было найдено?
Главное не оптимизация, а подтверждение робастности найденных параметров. Т.е. чтобы «хорошие» характеристики системы сохранялись в будущем, а нетолько на истории. Это уже неточная наука, а набор экспертных методов. И ГА может тут тоже пригодится при правильном применении.