Программирование - это просто
Advertisement
Главная arrow Биржевые роботы arrow Генетический алгоритм (экспериментальный проект) arrow Генетический алгоритм. Шаг 1. Постановка задачи
15.06.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Генетический алгоритм. Шаг 1. Постановка задачи Печать E-mail
Автор megabax   
30.01.2011 г.
New Page 1

Генетический алгоритм. Шаг 1. Постановка задачи

Все статьи по данной теме.

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

И так, что же мы хотим получить в итоге? Биржевого робота, который бы получал максимальный профит с минимальным риском (просадкой) и с наибольшей стабильностью графика доходности. "Слижем" идею с живой природы, а именно, применим механизм естественного отбора. Будем "прогонять" наших роботов через всевозможные графики котировок, наиболее приспособленные (максимально отвечающие трем перечисленным критериям: прибыльность, стабильность и безрисковость), выживут, остальные отомрут. Еще они будут размножаться, вновь родившиеся роботы займут место вымерших. .

Размножаться роботы будут спариванием (хоть и звучит пошловато, но это не шутка!). Тут будет применен генетический алгоритм, при скрещивании двух роботов появиться третий, который случайным образом возьмет себе половину алгоритмов и параметров одного робота ("самки") и половину от другого ("самца"). У роботов, как и у всех живых существу будут два основных инстинкта: инстинкт самосохранения и инстинкт продолжения рода. Первый будет заключаться в том, что роботы будут вынуждены постоянно поддерживать такой параметр, как Health (здоровье).  Увеличивают этот параметр заработанный профит. Уменьшают просадки и нестабильность графика доходности. Если Health опуститься до критического уровня, робот умирает. У "самцов" будет такой параметр, как ранговый потенциал. Чем выше этот параметр,  тем больше вероятность, что самка позволит ему спариться с ней. А ранговый потенциал тем больше, чем больше выживаемость данной "особи". Таким образом, потомству будут передаваться преимущественно жизнеспособные алгоритмы. 

Теперь осталось описать объектную модель. И так, в нашей программе будут вот такие объекты:

  • Робот.
  • Контейнер роботов.
  • Источник котировок.

Контейнер роботов будет представлять собой некий массив живущих в системе роботов. Все они будут подключены к источнику котировок. Контейнер на каждой итерации вызывает у объектов "робот" метод, ответственный за принятие решения о сделке. Каждый роботов, при вызове этого метода анализирует котировки из источника, принимает решение и либо совершает какую то сделку, либо отказывается от нее. По истечению заданного количества итераций,  у роботов начинается "брачный период". Контейнер у всех роботов типа "самец" вызывает метод "выбрать партнеров для спаривания". Чем больше у робота Health, тем больше самок он сможет "обслужить".  Если количество "самцов" и "самок" примерно одинаковое, то при такой системе каждая "самка" получит несколько запросов на спаривания. Она проранжирует их по ранговому потенциалу и примет лишь один, запрос, от самого лучшего "самца".  После этого контейнер обрабатывает факты спаривания и рождает новых роботов. 

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

И так, предварительная постановка задачи готова. Наш следующий шаг - математическая модель.

 

Последнее обновление ( 01.08.2011 г. )
 
« След.
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги