geatpy-dev / geatpy

Evolutionary algorithm toolbox and framework with high performance for Python
http://www.geatpy.com
GNU Lesser General Public License v3.0
2k stars 726 forks source link

混合编码 #29

Closed qinhuai0607010 closed 5 years ago

qinhuai0607010 commented 5 years ago

不知能否增加一个混合编码的demo

1061655504 commented 5 years ago

不知能否增加一个混合编码的demo

近期准备又有新版发布了。将内置实数整数的混合编码以及二进制、格雷码的混合编码。不过其他混合编码还是需要用到多种群。您需要的是哪些编码的混合呢?

qinhuai0607010 commented 5 years ago

不知能否增加一个混合编码的demo

近期准备又有新版发布了。将内置实数整数的混合编码以及二进制、格雷码的混合编码。不过其他混合编码还是需要用到多种群。您需要的是哪些编码的混合呢?

我用的整数与实数混合编码解决VRPTW问题,自己用python编写的,但是对于复杂情况计算结果不收敛,所以想试试geatpy,不知道geatpy对于VRPTW问题里面的路径规划是如何进行交叉,还是自己自定义?

1061655504 commented 5 years ago

不知能否增加一个混合编码的demo

近期准备又有新版发布了。将内置实数整数的混合编码以及二进制、格雷码的混合编码。不过其他混合编码还是需要用到多种群。您需要的是哪些编码的混合呢?

我用的整数与实数混合编码解决VRPTW问题,自己用python编写的,但是对于复杂情况计算结果不收敛,所以想试试geatpy,不知道geatpy对于VRPTW问题里面的路径规划是如何进行交叉,还是自己自定义?

在地点访问顺序方面应该是可以用一个排列编码的种群完成,只是在目标函数的编码上有些复杂,需要根据时间窗限制在计算目标函数时在地点访问顺序中间插入出发点。您说还用到了实数编码,那么需要另外建一个实数编码的种群。最后两个种群一起进化。

qinhuai0607010 commented 5 years ago

不知能否增加一个混合编码的demo

近期准备又有新版发布了。将内置实数整数的混合编码以及二进制、格雷码的混合编码。不过其他混合编码还是需要用到多种群。您需要的是哪些编码的混合呢?

我用的整数与实数混合编码解决VRPTW问题,自己用python编写的,但是对于复杂情况计算结果不收敛,所以想试试geatpy,不知道geatpy对于VRPTW问题里面的路径规划是如何进行交叉,还是自己自定义?

在地点访问顺序方面应该是可以用一个排列编码的种群完成,只是在目标函数的编码上有些复杂,需要根据时间窗限制在计算目标函数时在地点访问顺序中间插入出发点。您说还用到了实数编码,那么需要另外建一个实数编码的种群。最后两个种群一起进化。

我整数编码用来路径规划,实数编码用来计算每辆车的出发时间的,因为出发时间对时间窗会有很大影响。所以当安排的车辆稍微多一点,整个解的搜索空间指数级增大了,不一定能找到较优解了。

1061655504 commented 5 years ago

不知能否增加一个混合编码的demo

近期准备又有新版发布了。将内置实数整数的混合编码以及二进制、格雷码的混合编码。不过其他混合编码还是需要用到多种群。您需要的是哪些编码的混合呢?

我用的整数与实数混合编码解决VRPTW问题,自己用python编写的,但是对于复杂情况计算结果不收敛,所以想试试geatpy,不知道geatpy对于VRPTW问题里面的路径规划是如何进行交叉,还是自己自定义?

在地点访问顺序方面应该是可以用一个排列编码的种群完成,只是在目标函数的编码上有些复杂,需要根据时间窗限制在计算目标函数时在地点访问顺序中间插入出发点。您说还用到了实数编码,那么需要另外建一个实数编码的种群。最后两个种群一起进化。

我整数编码用来路径规划,实数编码用来计算每辆车的出发时间的,因为出发时间对时间窗会有很大影响。所以当安排的车辆稍微多一点,整个解的搜索空间指数级增大了,不一定能找到较优解了。

噢噢。如果路径要求节点不重复的话,建议用排列编码,然后用工具箱里面的部分匹配交叉以及排列编码的变异,这样会使可行解大大增多。如果需要途中回到出发点的话,可以像我刚刚说的那样先不考虑回到出发点,从而剩余的节点访问顺序构成一个排列,从而使用排列编码。届时在书写目标函数的时候根据时间窗把出发点插入到节点序列中即可。