用寓言来说明APS中的算法
在了解各种算法之前,我们先尝试罗列一下各种算法。
看到上面的算法,很多人是不是感觉到神秘莫测了? 其实APS算法远没有大家想象中的难以理解。先从一个小故事说起,我们小时候会听到老和尚的故事:山上有座庙,庙里有个老和尚很爱跟人家讲故事,故事是这样的:山上有座庙,庙里有个老和尚很爱跟人家讲故事,故事是这样的……”
当时非常疑惑,老和尚为什么总是一直重复自己说的话呢?其实里面就蕴含了递归的思想:调用程序本身的编程方法。递归算法应用很普遍,比如:多级BOM展开就用到了递归算法。
接着说小故事:
为了找出地球上最高的山,一群有志气的兔子们开始想办法。
兔子朝着比现在高的地方跳去。他们找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是爬山法。
在实际建模过程中,经常会使用此类算法,比如设定一个批量值用于拆单/合单。
兔子们知道一个兔子的力量是渺小的。他们互相转告着,哪里的山已经找过,并且找过的每一座山他们都留下一只兔子做记号。他们制定了下一步去哪里寻找的策略。这就是禁忌搜索。
在实际建模过程中,也经常会用到。比如设定关键路径正向排产,其他分支路径逆向排产。
兔子喝醉了。他随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,他渐渐清醒了并朝最高方向跳去。这就是模拟退火。
兔子们吃了失忆药片,发射到太空,并随机落到了地球上的某些地方。他们不知道自己的使命是什么。但是,如果每过一段时间就杀死一部分海拔低的兔子,多产的兔子们自己就会找到珠穆朗玛峰。这就是遗传算法。
模拟退火算法和遗传算法在进行车间作业排序优化的底层运算会用到。因为算法加入了随机性,2次排产结果有可能会有稍许差别。
不同的算法都有其相对适用的领域。
启发式算法是利用类似仿生学的原理,将自然、动物中的一些现象抽象成为算法处理相应问题。在可接受的计算成本内去搜寻最好的解,但不一定能保证是最优解。
拥有多种算法能力,以及将算法整合运用是APS软件中”伪”,”劣” 与 “优”的区分点(“伪”,”劣”,”优”的区分可参见本公众号<如何确保APS实施成功之选型篇>,这里不做展开说明)。
但是我们作为从业者,不应该将算法过于神秘化,不要试图运用高深莫测的语言去震慑客户,而是应该清醒地认识到:“客户需要的不是算法,而是计算结果” 。在具备了优秀的算法,我们还需要有恰当的业务规则(逻辑和参数)来应用合适的算法, 才能计算速度更快、计划结果更优。这需要APS实施顾问和甲方业务专家有很强的洞察力,优秀的业务经验和决策能力,才能对业务实况进行精确分析,提炼并综合设计各种合理的业务规则(逻辑和参数),确保APS软件的计算结果满足客户的排程需求。
本文引自公众号“供应链道场”