Сколько потомков мы должны произвести в генетическом алгоритме?

Предположим, у меня есть 100 попсовых размеров, я должен сделать 10 потомков? Я хочу, чтобы лучшая комбинация между попсайзом и потомством быстро достигла конвергенции, и, пожалуйста, включите также бумагу.

2 ответа

Решение

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

С учетом сказанного существует множество решений, таких как полная замена, частичная замена и т. Д. Со своими преимуществами и недостатками. Вы должны изучить их и решить, какой из них больше всего подходит для вашей проблемы.

- Предположим, численность населения N для вашего GA.

chrom # 0 = "01010110101" | Fitness = f0
chrom # 1 = "11010010111" | Fitness = f1
chrom # 2 = "01010111011" | Fitness = f2
chrom # 3 = "01111010100" | Fitness = f3
.
.
.
chrom # N = "01011010110" | Fitness = fN

-Вы случайным образом применяете турнир с хромосомами из основной популяции с размером T: (T < N)

Tournament chrom # 0 = "01010110101" | Fitness = f0
Tournament chrom # 1 = "11010010111" | Fitness = f1
Tournament chrom # 2 = "01010111011" | Fitness = f2
Tournament chrom # 3 = "01111010100" | Fitness = f3
.
.
.
Tournament chrom # T = "01011010110" | Fitness = fT

просто получить матовую хромосому:

Mate Chromosome # 1

другой турнир:

Mate Chromosome # 2

Вы применяете кроссовер, чтобы вернуть потомство:

Crossover(Mate Chromosome # 1, Mate Chromosome # 2) => offspring

Технически это означает, что вы получите N потомков для своего нового населения.

Mutation(offspring) => new chromosome for new population

Продолжайте итерацию, пока не достигнете максимального размера целевой хромосомы.

Другие вопросы по тегам