Я хочу использовать генетический алгоритм для решения простой системы двух линейных уравнений с двумя переменными. Это в основном помогает мне лучше понять, как они работают.Как я могу представить число как хромосому в генетическом алгоритме?
Все кажется довольно простым, но я не уверен, как кодировать возможные решения в хромосомах для этой проблемы.
У меня будет две переменные, которые я хочу кодировать в хромосоме для представления решения. Если каждая переменная может быть представлена 8-битовым числом, я бы сделал 16-битную двоичную кодированную хромосому (строка из 1 и 0).
Я просто не совсем уверен, как это сработает. Если для разведения выбраны два родителя, как случайный выбор генов из двоичной строки приведет к возможному лучшему решению? Вот почему я не думаю, что бинарная строка будет работать, поэтому любые ответы будут очень благодарны!
Вы не просто случайно выбираете бит из двух родителей. Вы проходите бит в порядке. Если оба родителя имеют 1 в одной и той же позиции бит, ген передается. Если оба родителя имеют нуль в одной и той же позиции бит, ген не передается. Только если один родитель имеет 1, а другой - ноль, случайный выбор вступает в игру. –
Спасибо за ваш ответ, если бы это был ответ, я бы отметил его как правильно! – Zach
Что описывает Гилберт ЛеБланк, называется UniformCrossover. Я бы не рекомендовал использовать его, поскольку он очень разрушительный и не сохраняет более крупные фрагменты одного родителя. Рекомендуется использовать одноточечный кроссовер. Там вы выбираете точку пересечения в своих строках и выбираете первую половину от первого родителя и вторую половину от второго родителя. Точка выбирается случайным образом. – Andreas