我试图用C#中的遗传算法来解决旅行推销员问题。但在我的应用中,最好的价值观变化太慢了。我尝试过不同的跨越方法,如经典,贪婪和pmx,但我从来没有得到我想要的。在遗传算法中,导致缓慢逼近局部极小的最有效原因是什么?这不是交叉方法吗?
我认为我的CO方法是正确的,不是吗?我的代码:
Tour ClassicCrossingOver(Tour mother, Tour father)
{
int pos = N / 2;
City[] gens = new City[N];
for (int i
我正在尝试制作一个遗传算法,它可以找到控制台输入中给出的单词。但我不知道我是否成功地完成了一个完整的遗传算法。代码如下:
main.py:
from population import Population
target = input()
maxPop = 10
mutation = 100
print("\n\n\n")
pop = Population(target, maxPop, mutation)
population.py:
import random
from ADN import genetic
class Population:
def __
大家好,如果有人帮我解决这个云计算任务调度的编码(C++,Python)问题,通过启发式(贪婪)和遗传算法,我不知道如何编写我在Google上搜索到的代码,以找到一种能激励我解决问题的代码:
问题是:
问题:云计算中的任务调度假设您有N个任务和M个虚拟机(VM)。每个任务都有指定的大小(单位:百万条指令)和截止日期(单位:秒)。每个VM还有一个主要的特性,即处理速度(单位:每秒百万条指令)。任务调度问题可以定义为:将任务映射到VM,使最后一个任务的完成时间(即Makespan )在任务的截止日期之前得到优化。如果任务的截止日期未达到,则必须拒绝该任务。通过以下几种算法来解决和实现这一问题: A
这是我的遗传算法,一步一步:
随机生成两个初始种群,并从两者中选择最适合的旅行。
执行一个有序的交叉,它选择第一次适合巡演的随机部分,并按顺序填充第二次中的其余部分。
如果这个旅游仅仅是最初人口中前10%的旅游的1.3倍(我只是通过归纳,挑出了制作的糟糕的旅游)--我很想改变这一点,但我想不出更好的方法了。
- The mutation is selected from a population of several mutations.
返回所产生的巡演。
然而,变异几乎总是更糟,如果不是相同的交叉。
我非常感谢你的帮助。谢谢!
让我从我正在实现的遗传算法的版本开始。对于我在这里犯的任何术语错误,我事先表示歉意。请随时纠正我。
我问题的染色体是二维的。三排三十二列。从本质上讲,等位基因(值)是这个染色体所包含的指标。
索引是如何制定的
染色体的每一行和每一列(合在一起)都是指一个基因。每个基因包含一个整数值(0-30)。因此,单个列(我认为称为gnome)指的是一个包含用户数据的四维数组的索引,适应度函数就是在该索引上运行的。
This is how a chromosome would look like
11 22 33 14 27 15 16 ...
3 29 1 7 18 24 22 ...
29 9