Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
А еще странно выглядит «bool ok=0;». C++ же, можно и true написать.
Восход Эндимиона
При столкновении двух особей, они будут умирать, и в случайных координатах будут появляться их дети (от 1 до 3).
inline Code_bio childcode(Code_bio c1, Code_bio c2) { //СКРЕЩИВАНИЕ Code_bio c; c.maxltime=(c1.maxltime+c2.maxltime)/2; c.minspeed=(c1.minspeed+c2.minspeed)/2; c.maxspeed=(c1.maxspeed+c2.maxspeed)/2; c.maxturn=(c1.maxturn+c2.maxturn)/2; //МУТАЦИЯ c.maxltime+=c.maxltime/100*((rand()%(maxltime_mut*2+1))-maxltime_mut); c.maxspeed+=c.maxspeed/100*((rand()%(maxspeed_mut*2+1))-maxspeed_mut); c.minspeed+=c.minspeed/100*((rand()%(minspeed_mut*2+1))-minspeed_mut); c.maxturn+=c.maxturn/100*(rand()%(maxturn_mut*2+1)-maxturn_mut); return c; }
Откуда такая информация про определение генетических алгоритмов?
Мне всегда казалось, что основной их особенностью является оператор скрещивания, остальное непринципиально.
(заметим, что в реальных организмах скрещивание происходит как раз на уровне генов, а не нуклеотидов)
Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания»
(и вы, видимо, перепутали меня с автором статьи)
Где тут говорится про представление?
«Скрещивание на уровне генов» — в том смысле, что перемещаются как единое целое гены, а не нуклеотиды.
Где тут говорится про представление?
Нигде.
Суть генетических алгоритмов в том, что генетическая информация хранится в родителях в виде битовой строчки. При скрещивании и мутировании тоже используется эта битовая строчка, безо всякого знания о ее внутреннем устройстве.
Genetic algorithms use linear binary representations. The most standard one is an array of bits. Arrays of other types and structures can be used in essentially the same way. The main property that makes these genetic representations convenient is that their parts are easily aligned due to their fixed size. This facilitates simple crossover operation. Variable length representations were also explored in Genetic algorithms, but crossover implementation is more complex in this case.
Почему принципиально скрещивание без знания внутреннего устройства?
(в реальных организмах внутреннее устройство в виде деления на гены «известно»)
И почему случайные изменения параметров — не мутации?
Природный генетический алгоритм или доказательство эволюции живых организмов на C++