微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

路线优化的最佳交叉

如何解决路线优化的最佳交叉

我正在检查用于路线优化的交叉技术,并且已经经历了下面提到的一些 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 举报,一经查实,本站将立刻删除。