算法开始,初始化LX[I]为等点I的最大的边的权值,LY[I]初始为0,在这个时候如果各个定点所对应得最蚂核大权值得边终点刚刚没有重合的话,显然,目前的匹配状况既是最优的。
算法进行的过程中不断的更新顶标(LX[I],LY[I])的值来进行匹配。
每次寻找增广路径备物顷,找仿陆到的话继续寻找下一个点,找不到的话更改目前的顶标值,由于(sigma(lx[i]+ly[i]))是最优匹配的估计值,如果找不到当前节点的匹配的话,说明目前的最优匹配的估计值不能实现,需要调整,而KM算法的核心就是如何实现一个有效同时又正确的调整的方法。
以最小的调整逐渐靠近答案是必须的,其次就是需要知道要调整哪些顶标,首先,调整不能破坏目前的匹配状况(因为匹配是在寻找增广路径中实现的)
可能你的这个需求和你的实际业务有关系,如果仅仅从这个问题来看,我觉得比较好的办法是先“分类整理”箱子,尽可能把所有的箱子都加满同数备类的东西,然后每次取东西的时候都是从该类的手梁第一个箱子拿,箱子被取空后就把箱子拿走,只要还有库存,打开第一个箱子都能毕毕运取到东西。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)