Эволюционный алгоритм задачи оптимизации Python - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть задание об эволюционном алгоритме, чтобы найти значение x, чтобы максимизировать ?(?) = sin(??/256) за интервал 0 ≤ ? ≤ 255. Шаг 1 в алгоритме состоит в том, чтобы выбрать алфавит для представления решения проблемы. Поскольку подходящие решения являются целыми числами в диапазоне от 0 до 255, мой профессор предложил использовать 8-битные двоичные кодировки для каждого человека. Также он предложил использовать простой массив.

Однако я не уверен, что он имел в виду под 8-битными двоичными кодировками и как их инициализировать. Это просто solution=[]? Заранее спасибо. Кроме того, если у вас есть какие-либо ресурсы, связанные с этой проблемой, пожалуйста, дайте мне знать. Я действительно потерян на этом.

1 Ответ

0 голосов
/ 20 ноября 2018

Любое целое число может быть преобразовано в двоичное представление, например,

0 = 00000000
1 = 00000001
2 = 00000010
...
254 = 11111110
255 = 11111111

Если вам нужна нулевая инициализация, инициализация так же проста, как

solution = [0]*8

Аналогично, если вы хотите инициализировать с 1s:

solution = [1]*8

А если вам нужна случайная инициализация:

import numpy as np
solution = list(np.random.randint(0, 2, size=8))
...