下载地址:
https://download.csdn.net/download/pww71/10442402
彭文伟问题及算法库
这是一个排列组合和参数优化的问题:
选择因子方案(采用动态规划):
从N个因子中,任意选择C~D个因子。其C~D中,有A~B个因子,其参数将在本阶段运算中完全消耗,
剩下的(C~D-A~B)个因子,其参数将在本阶段运算中部分消耗,剩下的进入下一阶段选择。如此
递归到下一阶段,直到N个因子的参数全部消耗完毕。其中 1+(N-C)/A <= 阶段数 <= 1+(N-D)/B。
各阶段参数优化运算方案(采用广度搜素):
首先求全过程平均值,其值MEAN==累加N个因子的(参数值【i】*最大范围【i】)。
如果本阶段选择了C个因子,其中有A个因子是完全消耗,其值SUM1==累加A中各因子的(参数值【i】*最大范围【i】)。
剩下C-A个因子其消耗值要根据算法要求只消耗一部分,其值SUM2==累加(C-A)中各因子的(参数值【i】*部分范围【i】)。
求阶段误差,其值==|SUM1+SUM2-MEAN|。
最后,将各阶段误差累加,总体误差最小值的因子及其参数选择方案将被保存,输出显示。
各阶段运算有各因子的最低消耗限制。
参数优化方案可以自定义算法,在派生类实现。
运算阶段和非完全因子少时,效果好,但是阶段多,非完全因子多。运算量过大而无法得到结果。故参数优化考虑采用粒子群算法