我对遗传算法很新,想问一个问题。我遇到的遗传算法的所有资源都谈到了使用二进制数或实数来表示基因。我正致力于利用遗传算法的行程生成器。通常,行程由兴趣点组成,但我的行程由二进制字符串表示的城市组成。每个比特位置编码信息,例如城市是否有博物馆,或者是否有汽车租赁服务。例如,如果城市有汽车租赁,则代表汽车租赁服务的比特位置将被设置为1.行程中包含的城市数量由停留时间确定。因此,就遗传算法表示而言,每个行程代表一个染色体,而城市代表基因。在我读过的任何资源中,我都没有看到这种表示(每个基因都是二进制字符串,每个染色体由多个二进制字符串组成。)。所以我想知道我是否走在正确的轨道上。
编辑:因此对于交叉,它位于多个位串之间。对于变异,它基本上用人口中的另一个城市取代现有城市。
答案 0 :(得分:3)
看起来你可以将它表示为一个整数字符串,每个整数都是描述城市的二进制数的整数表示。你很高兴 - 交叉只是你所描述的交叉变异,即将城市(即一个数字)改为另一个城市。
答案 1 :(得分:0)
染色体的表现形式可以是任何东西。将它表示为位串是方便,易于理解,并且如果您有一些可以操作位串的东西,则易于操作。
但它可能是任何东西。通常它是一些数据类型的集合(或几个不同的数据类型)。
您选择的代表将影响它的变异方式以及健身状况的形状。