发布网友 发布时间:2022-05-26 14:29
共2个回答
热心网友 时间:2023-10-22 03:09
遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种符号串。本题中,用无符号二进制整数来表示。因 x1, x2 为 0 ~ 7之间的整数,所以分别用3位无符号二进制整数来表示,将它们连接在一起所组成的6位无符号二进制数就形成了个体的基因型,表示一个可行解。例如,基因型 X=101110 所对应的表现型是:x=[ 5,6 ]。体的表现型x和基因型X之间可通过编码和解码程序相互转换。2) 初始群体的产生遗传算法是对群体进行的进化操作,需要给其淮备一些表示起始搜索点的初始群体数据。本例中,群体规模的大小取为4,即群体由4个个体组成,每个个体可通过随机方法产生。选择运算(或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代。
热心网友 时间:2023-10-22 03:10
有一款非常魔性的小游戏叫《Boxcar 2D》,游戏主要内容是用几何图形和圆形的轮子组成小汽车,不断走过一条有上下波动的“路”,看什么形状的小车可以走的更远。但和大部分游戏不一样的是,不用玩家自己手动拼装小车,整个过程完全由算法自动进行,每次随机生成小车,卡到路上了就重新来过。最后小车会越走越远,整个过程中小车的形状会越来越合适一开始可能只是个“独轮车”,到后期则会很接近我们生活中摩托车的样子。要问有什么案例能简单明晰的体现出“智能”、“自学习”的概念,这款游戏一定是我的首选。而这款游戏中,应用的就是遗传算法。简单来说,遗传算法是一种随机搜索算法,主要目的是用来优化。和自然界的遗传一样,遗传算法秉持的是适者生存、优胜劣汰。通过选择、交叉和变异,不断迭代出更优秀的解法。通过编码,将解空间变成编码空间,从中选择当前较为优秀的解当做“父母”,下一步则是将多种解的特征进行交叉,诞生下一代,最后再经过变异成为“子嗣”。如果“子嗣”还是不能符合要求,那就再进行一次上述步骤,直到满足要求。过程中,较差的基因就会一步步被淘汰。最后再进行解码,就能得到我们想要的结果。总之,这是一个枚举的过程。就像长颈鹿的进化一样,树叶长在高处,每一只鹿都去尝试吃树叶,只有符合“标准”的长颈鹿能够吃到食物、生产下来并诞生后代。但要注意的是,这种算法很多时候不会给出一个“最优解”,而是给出一些较为接近的次优解,从中矮子里面拔将军。