上一篇聊了《网络规划中的重心法--人人能懂的算法》,所谓人人能懂得前提是你没完全忘记初中数学。所幸的是会点开这类标题读的小伙伴,果然都能想起来勾股定理,算是人人能懂了。这篇来聊一下,理论上是依赖经验人人都能做的: 网络规划中的启发式算法。但人人能做不代表结果能做好,启发式算法有高效的地方,也能把人带沟里。
先看定义,启发式算法(heuristic algorithm):一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。
在网络规划中,所谓的最短路径问题有很多种意思, 使用启发式算法指的是一个在一个搜寻树的节点上定义的函数,用于评估从此节点到目标节点最便宜的路径。启发式算法是一种技术,这种技术使得在可接受的计算成本内去搜寻最好的解,但不一定能保证所得的可行解是最优解,甚至在多数情况下,无法阐述所得解同最优解的近似程度。
看到这里还能忍住没关掉这文的小伙伴给自己鼓个掌,坚持着再看点背景内容就更明白些了。物流网络规划是算法的应用,它的抽象表达方式就是数学模型。运筹学的的一个分支是解决离散的优化问题,通过对数学的应用解决离散事件的最优编排、分组、顺序或筛选。应用于信息技术、经济管理、工业工程、交通运输等领域。
通俗的解释就是,人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的 步骤去寻求答案。启发式解决问题的方法是与算法相对立的。算法是把各种可能性都一一进行尝试,最终能找到问题的答案,但它是在很大的问题空间内,花费大量 的时间和精力才能求得答案。启发式方法则是在有限的搜索空间内,大大减少尝试的数量,能迅速地达到问题的解决。但由于这种方法具有尝试错误的特点,所以也 有失败的可能性。科学家的许多重大发现,常常是利用极为简单的启发式规则。
启发式算法的优势是相对简单直观,多数情况下运算快,程序简单易于修改,但它的劣势是表现不稳定,不能保证最优解,算法的好坏依赖于实际问题、经验和设计者的技术,可能无法避免陷入局部最优解。
比如生产制造企业有2个工厂,客户分布在8个区域,规划建立3处配送中心,有5个配送中心备选,分别已知各备选配送中心的固定成本和单位变动成本,各工厂产量和各区域客户需求量,利用启发式算法可以求解。抱歉公式输入太过耗时,书上的直接拍照贴上来又不清晰,就不解释具体算法了。这个简单的案例中,启发式算法可以快速找出不同货量区间下的仓库选点。
算法是程序设计的灵魂,代表着用系统的方法描述解决问题的策略与机制。作为网络规划程序的使用者,即便不需要清楚具体的公式,也需要了解算法背后的底层逻辑,这样才能在实际应用时的比较选择中做出更靠谱的判断。希望这篇对你了解算法有帮助。
网友评论