картинка с фрипика

Тема, которая, когда вы слышите, заставляет вас думать: «Как вы можете совместить генетику и алгоритм?». Да, я точно так же думал. Когда я был в первом классе программирования, учитель начал спрашивать о биологии. Я подумал: «Мы на уроке биологии?». Он спросил типа «Ребенка можно сделать с 2+ родителями, не так ли?». Что, как? Вы думаете, что это невозможно. Но вот грёбаный компьютерный мир. Все может быть возможно. Он задал несколько странных вопросов, а затем показал наш итоговый экзамен в формате PDF. В PDF генетический алгоритм объясняется, как он работает.

Пример:

Давайте подумаем, что ребенок существует только с 4 качествами. Это цвет волос, цвет глаз, рост и пол. Мы должны определить квалификацию ребенка, которого мы хотим. И каждое поколение может иметь максимум 5 детей. У каждого ребенка есть фитнес-оценка. Что такое оценка фитнеса? Допустим, у нас есть ребенок с каштановыми волосами, черными глазами, высокий и женский. Ребенок, которого мы хотим, должен иметь каштановые волосы, голубые глаза, высокий и мужского пола. Какие квалификации совпадают? Цвет волос и рост. Таким образом, показатель физической подготовки ребенка с каштановыми волосами, черными глазами, высокого роста и женского пола равен 2. Для разведения в каждом поколении будут выбраны только случайные бинарные комбинации из 3 человек, у которых больше всего показателей физической подготовки (здоровых). Ребенок может взять ген от матери с вероятностью 45% и от отца с вероятностью 45%. Они произведут 5 детей, то есть они произведут поколение, и больше не смогут размножаться. Мы делаем это, потому что будем ближе к ребенку, которого хотим. Только подумайте, если вы хотите, чтобы у ребенка были каштановые волосы, вы должны выбирать родителей с каштановыми волосами, верно? Кстати, есть фактор мутации. Потому что мутации происходят в жизни, верно? Допустим, вероятность фактора мутации составляет 10%. Когда у вас есть родители, у которых оба каштановые, у вас может быть ребенок с розовыми волосами. В первом поколении может быть 2 родителя с определенными генами или вы можете сделать 5 случайных детей из генофонда. Это зависит от вас.

Все готово! Итак, начнем.

Генофонд цвета = {a,b,c,d,e,f,g} (каждое слово представляет цвет)

Половой генофонд={F,M} (F=женщина, M=мужчина)

Генофонд роста = {S, M, T} (S = низкий, M = средний, T = высокий)

Определение хромосомы:

а в С Ф | Это пример человека (хромосома)

Первый ген представляет цвет волос. Второй ген представляет цвет глаз. Третий ген представляет рост. 4-й ген представляет пол.

Каждый ген может взять ген только из собственного генофонда. Первый и второй ген не могут быть F, M, S, M, T.

Я выберу конкретных маму и папу.

Мать = d f S F

Отец = a d T M

У них 5 детей.

Второе поколение = { a f S M , d f T M , c a MF , a d M F , g bS F } (Мутации выделены жирным шрифтом.)

Тогда 2 человека с наибольшим количеством очков физической подготовки произведут 5 детей, и они составят третье поколение. Это будет продолжаться снова и снова, пока мы не найдем ребенка, которого хотим.

Когда мы найдем ребенка, которого хотим, все остановится. Мы Достигли!

Я закодировал генетический алгоритм на языке программирования Си. Но вы также можете кодировать на разных языках.

Я надеюсь, что это будет полезно для вас :)