如何解决路线优化的最佳交叉
我正在检查用于路线优化的交叉技术,并且已经经历了下面提到的一些 thgem
1 - single point crossover
2 - two point crossover
3 - uniform crossover
在单点交叉中,我们通常从每个父节点交换一个变量并得到子节点。与两点交叉相同,我们交换来自两个父母的两个变量。
在我的问题中,父母的长度不一样,例如 p1: ['a','b','c'] and p2:['v','n','m','h','k']
。由于我们父母的长度不一样,所以我可以使用基于偶数和奇数技术的单点交叉。
现在我想使用带遮罩的均匀交叉,发现它很难用于不同的长度。 有什么建议吗?
解决方法
后代的长度是多少,如果它们与父母的长度相同,那么您可以按照正常的统一顺序进行。例如
IWebDriver driver;
string chromeDriverPath;
void SetChromeDriverPath()
{
OperatingSystem os = Environment.OSVersion;
string osName = os.Platform.ToString().ToLower();
if (osName == "win32nt")
chromeDriverPath = Environment.CurrentDirectory.ToString() + "\\tools\\selenium\\chrome\\windows\\";
if (osName == "unix")
chromeDriverPath = Environment.CurrentDirectory.ToString() + "\\tools\\selenium\\chrome\\linux\\";
if (osName == "macosx")
chromeDriverPath = Environment.CurrentDirectory.ToString() + "\\tools\\selenium\\chrome\\mac\\";
}
public IWebDriver GetChromeDriver()
{
ChromeOptions options = new ChromeOptions();
options.AddArgument("use-fake-ui-for-media-stream");
options.AddArgument("--start-maximized");
SetChromeDriverPath();
driver = new ChromeDriver(options);
return driver;
}
您甚至可以随机放置较小的位置,例如:
[a,b,c] = p1
[v,n,m,h,k] = p2
[0,1,1] = mask (this should be random)
[v,c] = o1
[a,k] = o2
所以后代会
[-,-,v,c]
[a,k]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。