APS走向实践之十二:算法优化

2026-01-06 13:34:49 生活服务 admin

  算法的优劣不是站在算法本身考虑的,而是从对问题解决的相关度上来看。

“在现实生活中,决策者要完全了解和预见做出决策是不可能的,而决策者也存在知识和计算能力方面的局限性即有限理性,决策者所面临的环境因素越来越复杂且急剧的变化。所以决策者需要在缺乏完全信息的情况下进行决策。”  -赫伯特.西蒙

以下是算法应用计划场景(参考):

需求计划DP层:时间序列分析法,因果分析法,贝叶斯推断法,机器学习法,生成式Al法(可解释性差)

S&OP产销协同层: 贝叶斯纳什博弈、模拟推演what lf(场景、策略)或仿真算法

主计划MP层:全局优化的OR运筹规划法

主生产计划MPS层:约束规划法、元启发式

生产排程层:元启发式、贪婪启发式、规则法

一、计划与排程算法的主要种类

运筹学算法:

图片

启发式算法:

图片

AI算法:

包括决策式AI与生成式AI、代理式AI。决策式AI包括元启发式算法(遗传算法、模拟退火法、蚁群算法等)。

1、APS+生成式AI:

图片

2、原生式AI+代理式AI:

图片
图片

二、复杂问题的求解

面对动荡复杂的市场环境,端到端的供应链必须快速响应需求、高效率的成本与可持续性优化,实现多层次渠道、工厂间的预测、计划、仓储、运输、交付的同步化,最大化减少孤岛系统所导致的延迟。

复杂业务问题的优化一般有几个特征:

1、具有可能性的方案数量巨大,无法全部评估。

2、随时间或场景动态改变。

3、会受到极大的约束,以至于无法找到方案。

4、大部分约束变量都是互相依赖的。

5、大部分的目标是互相矛盾的。


复杂问题需要多个方法来解决:

如拿复杂的城市交通堵塞做比喻,汽车比喻为物料。有几个方法可以使用:控制论方法,智能计划排程方法,IE与精益生产方法,约束理论方法。

(1)控制论方法:交通管理部门应该多多设计环岛交通,让汽车自适应的运行。这是运用控制论的思想。控制论鼻祖N.维纳,他认为管理好一个复杂的系统最好能设计出使它自适应的运作。所以,这就像人事管理设计让员工自我的激发工作的热情。在生产管理上,让物料自动流动起来。这就是运用了控制论的思想方法。

(2)智能计划排程方法:根据车流量设计智能的红绿灯时间,或调来一个非常聪明的交警察来现场调度,这个车流就好比物流,让优先级或等待时间最小化的解决交通堵塞问题。这就是运用了APS原理规则优化或智能优化。

(3)IE精益生产方法:根据车流量效率重新优化设计道路的布局,减少汽车停顿的浪费时间,改善道路的状况。并持续地改善影响交通堵塞问题,这就是运用精益生产方法。

(4)约束理论的方法:表面上看,汽车是在这里被堵塞,通过分析,可能是其他相关地方出现瓶颈,引起这里的堵塞。找出系统的真正的瓶颈,这才是堵塞的真正原因。在瓶颈处设置缓冲,来释放瓶颈,这是运用了TOC约束理论的思想。

复杂优化算法的多个特点:

 

(1)启发算法寻找局部最优解,企图以这种方式获得全局最优解。

(2)对于NP完全问题,还没有找到快速解决方案。

(3)面临NP完全问题,最佳的做法是使用近似算法。

(4)贪婪算法易于实现,运行速度快,是不错的近似算法。

(5)运筹算法动态规划与线性规划:在多个约束条件下,寻找最优解。

(6)随机仿真可能有更好的解决方案。

(7)并行算法与分布算法,是速度与反应加快。

(8)应用决策AI与生成AI的智能算法,如遗传算法、机器学习、深度学习(反向传播)使优化度与性能提高。


三、APS的约束算法


企业数字化的进程分为对信息的反映、分析、预测、决策四个层次。其中信息的反映和分析主要是面对过去的,如管理信息系统ERP;预测、决策主要是面对未来的,事实上很多企业已转向数字化决策,而企业计划决策的核心APS已被集成到端到端的供应链数字化平台,并在提高供应链与制造效率上起到了显著的作用。

APS供应链优化不仅可以预先安排资源应对未来变化,尤其在未预料的事件发生后,可以实时的供应链动态重计划、重排程,保证持续优化的可行的计划,保证按事先定义的业务策略与规则,对整个供应链系统进行重计划排程并且使财务得到优化。

现在,大约有国内外几十个APS供应商在这个发展的市场上寻找自己的位置。对于如何理解APS基本方案之间的区别、每一个方案的优势和弱势、以及在特殊的制造环境中哪一个方案运作的最适合尤其重要。

计划和排程的紧密的反馈闭环对于新的APS产品来讲已变得至关重要,而且它的性能也在不断的提高。如果制造商对客户需求的响应越来越强烈,计划和排程的约束算法将面临更大的考验。幸运的是,新的APS系统正在向这个方向发展,并且离这个目标越来越近。

新一代APS系统重点放在寻找更好的算法,不过它们都有一个共同的弱点是数据的实时采集和大数据的处理,如不能及时获得和处理动态的数据,它就违背了供应链及工厂的动态性、实时性,也阻止了APS系统反映真实的世界。更重要的是,它们需要满足快速响应客户新的需求。

基于约束发展出来的新的高级计划与排程。当然,我们不能仅仅考虑一个约束,许多瓶颈约束是动态漂移的。且约束很少是独立的,所有约束之间都是相互关联的。所以解决复杂约束问题是很大的难题,这是我们不得不接受的事实。

约束的研究开发已经引起了世界各个领域的专家的高度注意,因为它是最具有潜力解决现实中困难的问题,不仅仅具有很强的理论研究的潜力,而且也广泛吸引商业的利益。特别是在对变异中建模优化与满意问题上,正好符合企业管理和供应链管理的复杂性。所以,至今CP约束规划(Constraint Programming)仍然是世界上了解最多、运用较多的技术之一。

在人类努力的大多数领域里,约束在不断增加,它们在物理世界形成互相依赖。但是,它们的数学概念却自然清晰。约束是在一些未知或变化里的简单逻辑关系,在给定的领域里,每一个约束取一值,于是就限制了变化带来的可能的值。关注所关心的变化,约束当然也可以是不协调的。约束的重要特点是它们的可以申明的方法及规则,如他们规定必须保持规则如硬约束软约束关系来加强此关系。

约束规划CP的概念是详述问题的约束规则来解决问题,结果是找到让所有的约束都满意的方案。目前约束规划仍还是计算机科学所追寻的圣杯。APS约束规划已经成功应用到许多不同商业领域。如在医院的时间表和工业领域上的排程应用上,实践证明它是能较好地解决现实的问题。

因为,许多应用领域需要约束,分派问题也许是第一个工业应用约束解决的工具。典型例子是机场位置的分配,飞机必须停在可用的位置,出发大厅的柜台分配,港口船停泊的位置的分配,工厂中的许多设备分配,供应链中的多层的库存分配等等。

用甘特图来描述计划与排程,有限约束的计划排程问题可能是最成功的商业应用领域。约束自然表达了现实的限制。基于约束的APS被用于基于事件的计划排程,如多品种、小批量、按需求制造的趋势使得APS的约束规划使用率大大增加。

另外较大的约束应用领域是供应链网络管理与配置,这些问题包括网络的优化配置计划、优化的运输计划、供应链的能力承诺等。实际上,有许多领域已使用约束技术。 

但是,在现实中对约束规划广泛的运用存在一些局限和缺陷。因为当前使用的工具有一定的局限和没有涉及到的领域。因为约束规划欲解决的问题大多是非常难的问题,无论是从理论上还是实际的观点来看。

约束的定义能促使问题可追踪是非常重要的。然而,当大部分的方法都难解决的难题时,约束规划是否有效性仍然是不可预测的,何时、如何使用约束?

由约束系统的使用者陈述大部分的问题来稳定约束模型,在程序里或在数据里的较小的改变都能导致系统性能上戏剧上的变化。不幸的是,在稳定执行多样的大数据的变化性能调整上,目前求解器的技术性能也面临挑战。

有时盲目的快速搜寻,简单按时间顺序倒排正排可能比高级算法技术约束更加有效。在许多约束模型里的特别问题要考虑成本优化,它是对改善起初的方案是非常困难的。因为,可能一个小的改善就会花去很多时间。在实时的方案和最好的方案之间交替出现。

约束规划更加先进的是可以动态增加约束。大部分情况下,约束规划系统产生的计划是可执行的。除了机器故障、延迟的计划。它可以在最坏的情况下,新订单的接受,需要快速的重排计划或提高当前的方案来处理未预料的事件。通常,最优的计划方案和可以处理较少差异的、稳定的、次优化的方案之间交替迭代。

当前的约束满意系统标志着未来发展方向。在它们之间建模看上去是最重要方法之一是已经开始研究使用全局约束。要把主要的约束开发到更有效的APS软件包,需要更有效的建模语言来表示约束问题。目前,大部分约束规划CP软件包要么是程序语言的延伸(CLP),要么是用程序语言库(ILOG Solver,被IBM收购)。约束建模语言和可视建模语言被用来从可视图形产生约束规划(VisOptVML)。

目前,可视化的技术越来越流行,可以定义系统的瓶颈,对可视化的控制研究也是约束规划的重要内容之一。各种约束解决方法的交互研究是最具挑战的问题之一。混合算法结合各种约束技术是这个研究的结果。另外最令人吸引的研究领域就是解决协同和对应的集成理论。

约束满意技术和传统的运筹OR(Operation Research)方法如整数规划也是是另外的挑战。研究平行和并行的约束已作为提高效率的重要方法,在这些研究领域里,多层AI代理技术看上去最有前景。

在众多公司运用供应链高级计划排程时候,发现所能给自己带来的改进收益大大超过成本节约的措施所带来的收益。而且,APS能够在加强整个供应链响应方面发挥更大作用。

人们在从几个月到甚至几年的时间建立约束模型,从而考虑物料和能力等多方面约束问题,设定生产的优先等级。运行在独立的服务器上,并常驻内存进运算。运算使用的也是特殊开发的算法,这样可以考虑在当时状态下的物料、能力和其他的约束条件,产生相应的生产计划、采购计划、运输计划与制造排程。运算的速度既要满足计划的灵活多样性,也要能够让用户模拟计划时的实际情况,计算出可能交付的时间。


APS系统最初运用是在一个企业的范围内进行计划的运算和优化,但它被扩展到供应链的计划,这包括供应商、分销商和出货点的需求。不同的软件供应商选用不同的优化算法搭建自己的高级计划排程系统软件,这对其自身也是挑战。


如APS不是简单应用某一项技术,而是使用多种优化算法(如本文开篇所述),需要根据解决不同的问题来决定采用哪种算法引擎。供应链与制造过程上的现实问题是相当复杂的,即使是今天,如果不运用一定的归并运算,性能再高的计算机也是没法设定相应的运算模型,计算相应的计划结果。另外,如何把不同的系统数据整合在一套高级供应链APS计划排程平台识别的环境下,这也是面临的一项艰巨的任务。


在APS系统中除了包含传统的优化算法方法,比如:线性运算和混合整数运算,还包含了许多种启发式算法。要比较各种算法的孰优孰劣是一件非常难的事,它们难分高下。


APS系统包含的某些算法是把几种存在的算法合并在一起形成新的综合性运算;比方说,解决约束问题的算法可以归类为以下几个方面:


(1)系统搜索法:先运算再测试法,反向跟踪法。

(2)一致性计算法:节点一致性计算法,弧形一致性计算法,路径一致性计算法,约束路径一致性计算法。

(3)约束传播算法:后向算法、后向跳跃算法,后向检查算法,后向标记算法。前向算法,前向检查算法。局部前查算法。

(4)随机算法和推导算法:爬山法,最小冲突算法,随机算法,Tabu搜寻算法,连接算法。

 

然而,如果是求约束条件下的最优解,推荐的算法通常是非常有名的分枝定界算法(Branch & Bound)。约束规划CP(Constraints Programming)以启发约束为基础的计算系统,它的构想是针对问题所描述的约束或需求寻求满足所有约束的解决方法来解决问题。CP约束规划也是解决复合条件问题的方法。


过去十几年来,约束规划已经引起许多不同领域的学者的重视。现在,约束规划具有完整的理论基础,应用于解决复杂问题,提供广泛的商业用途,特别是在异质性最优化问题(Heterogenous Optimization)和满意问题(Satisfaction Problems)的应用。然而,约束规划目前仍是处于深入研究和开发的科技领域之一。

约束(Constraints)是用来代表几个未知数或变数之间的一种逻辑关系,每一个变数具有一组可能的值域(Domain),该约束将会规范这些变数值的可能组合。例如,正方形S内含一个圆形C;X小于Y;三角形內为180度;仓库内的温度必须控制在0~5°C;某某在周三下午2:00之后可以出席演讲会;生产过程中的产能、物料、工装模具、人力约束。等等。

约束规划问题包括:一组变数,每一变数有一组数值,即值域(domain);一组约束式,约束规划的解(Solution)是满足所有约束式的一组完整的变数值。约束规划的形成由:

(1)人工智能(Artificial Intelligence)的影像标示问题(Scene Labelling, Waltz 1975)。

(2)互动图形(Interactive Graphics)的画板(Sketchpad,Sutherland 1963)和题库(ThingLab, Boring1981)。

(3)逻辑规划(Logic Programming),统一(unification)约束解题(constraint solving) (Gallairo1985,Jaffar&Lassez1987)。

(4)运作研究和离散数学的NP-hard优化组合问题。

 

约束规划的求解技术可分为:

 

(1)约束满意问题(Constraint Satisfaction Problems)

(2)约束最优化问题(Constraint Optimization Problems)

(3)超约束问题(Over-Constrained Problems)

(4)约束解题(Constraint Solving)


约束满意问题的解可以由系统化搜寻各种可能的变数值而产生,搜寻方法可分为二大类型:部分数值指派法(Partial Value Assignment);穷举数值指派法(Explore Complete Assignment)。


约束传播(Constraint Propagation)技术


约束传播技术主要是应用回朔方式(Look Back schema),对于已经启动过的变数进行一致性查核。其中后退追踪(BT)是属于此项技术最简单的一种,此外尚有后退跳跃(BJ),后退检核(Back Checking,BC),后退标示(BM)等。


所有回朔方式都有一个缺点,即无法及早诊断出冲突(late detection of the conflict)。因此又提出提前检查(Look Ahead schema)的策略来避免产生以后的冲突。提前检查的策略包含向前检查(Forward Checking,FC),部分提前检查(Partial Look Ahead,PLA),完整提前检查(Full Look Ahead)等。


随机和启发式演算法(Stochastic and Heuristic Algorithm)


贪婪局部搜寻策略(greedy local search)已经成为相当普遍的方法,这些演算法逐次地针对所有变数修正其不一致的指派值,以达到更完整的解,另一方面,为避免陷入局部最小值(local minimum),采用不同的启发式方法随机搜寻功能。


爬坡法(Hill-climbing)是最普遍的一种局部搜寻方法,一开始先随机地产生一組变数标示值,接著在每一迭代步骤中,修正某一变数的值以滿足更多的约束式。如果已经产生一组严格局部最小值,则该演算法再度重新随机地产生另一组初始解进行搜寻,直到全域最小值(global minimum)找到为止。


最小冲突法(min-conflicts,MC)随机地挑选任何冲突的变数,再选择一个数值使不满足的约束式为最少。


禁忌搜寻(Tabu search,TS)是根据一种禁忌清单的想法,选择保留过去搜寻的经验及记忆,以避免重复循环地搜寻作业及陷入局部最小值。


约束最优化问题(Constraint Optimization)


约束最优化问题包含一组标准约束满意问题及一个最优化目标函数,将所有的解标示成一个函数数值。分支界限法(Brand and Bound,B&B)是约束最优化问题中最广为使用的技术,以寻找最优解。


超约束问题(Over Constrainted Problems)


当问题的约束是相当繁多时,有可能无法产生滿足所有约束式的解,此种系统称为超约束(Over-Constrainted),处理超约束系統的方法有部分约束滿意(Partical Constraint Satisfaction)及约束层级法(Constraint Hierarchies)。


部分约束满意法是设法从部分变数中找出一组滿足部分约束式的数值,逐次寻找出最好的一组解。约束层级法将约束式区分为软性、強性、或偏好的约束式,构成一种约束式的层级,接著从最強的层级开始处理约束式,直到最弱层级。


局限及困境(Limitations)】


许多约束规划所解决的问题都属于NP-hard组合优化难题,因此如何判断出问题是否可以解决是相当关键性。此外,求解之速度也是必须要考虑的。约束模式的稳定性是一般约束规划使用者最共同的问题,亦即当规划程序或数据稍作更动,往往会引起演算效率极大的差异。如何选用适合的约束满意技术来解决特定问题也是另一个重要的内容。


四、APS的算法的优劣分析


APS优化算法大概分四代:


第一代:基于约束理论的有限产能算法。

第二代:基于规则的算法、基于启发式规则的算法

第三代:约束规划、线性规划、专家系统、遗传算法、模拟退火算法、蚁群/粒子群算法、神经网络。

第四代:人工智能算法,以多代理智能体Agent协商进行动态编排。


APS的计划和排程所采用的算法往往大不相同,对企业优化目标所造成的影响也大不相同。算法的优劣不是站在算法本身考虑的,而是从对问题解决的相关度上来看。


在计划当中,当时间刻度是以天、周、月等划分的时候,为了实现有限产能、有限物料的统一优化,往往采用是以线性规划或者混合整数规划为主的优化方法。


在排程当中,当时间刻度非常小,或者允许是连续时间的时候,为了实现次序的优化,往往采用以约束规划、经验规则或者启发式算法为主的优化方法。


高级计划AP (Advanced Planning):


主要算法:线性规划、约束规划、遗传算法等。时间跨度为天、周、月等。主要针对问题Lot Sizing (产量),Resource Assignment (资源调配),这里的资源可以是资源组,也可以具体资源。


优点:


(1)可以适应企业多目标优化。

(2)目标可以有优先级。

(3)成熟技术。

(4)适合大规模问题。

(5)可以找到最优值或者较好的次优值。 

 

缺点:


(1)对于次序问题比较困难。

(2)动态重排的频率不能太多。

(3)大规模商用成熟优化器一般比较昂贵。


高级排程AS (Advanced Scheduling) 


主要算法:规则、启发式算法、约束规划。时间跨度为连续时间,或者分、小时等。主要针对问题派工与Sequencing (顺序)。

 

规则算法:

 

优点:


(1)运算速度快。

(2)开发简单。

(3)容易理解。

 

缺点:


(1)往往不能找到最优解,而是一个可行解。

(2)对规则的质量要求很高。

(3)无法实现多目标同时优化。

          

启发式算法:

 

优点:


(1)可以找到较好的解决方案。

(2)运算速度较快。

 

缺点:


(1)算法个性化程度较高,开发难度大。

(2)可处理的变量数量和复杂程度限制较高。

(3)方案的稳定性随着问题的不同而有较大差异。

 

从上面分析我们可以看到,计划的优势可以对企业多目标进行优化,但在时间刻度上做了简化,是一个以企业多目标为导向的优化工具;而排程的优势在于执行层面,但因为算法本身的制约,无法看得更宏观、更系统的优化。


时间刻度越小,为了能够在可以容忍的时间内产生一个较好的方案,问题的范围就越要缩小,排程算法在增加细节操作的可控性的同时,也失去了时间跨度的优势,也就失去了对企业在较长时间范围内目标的可控性。


这就需要可以既能够满足计划的要求,也能够排程的细节。APS需要包含了两种(或者多种)不同的算法,可以按照一定逻辑先后运行,根据不同的时间段和场景的复杂性自动的选择算法来智能决策。


未来趋势


如何建立约束,建模(modeling)仍然扮演相当重要的角色。目前大部分的约束规划套装软件都是以程序语言编写或是程序库(libraries)所组织,如ILOG SOLVER。约束模式语言如能以可视化技术(Visualization Techniques)来进行搜寻过程,将可协助找出系统的瓶颈;这种以可视化来掌握搜寻的技术将是未来的一种选择。鸡尾酒演算法(hybrid algorithm)综合各种解决技术,将会是未来研究的内容。结合传统作业研究技术,如整数规划、组合最优化技术,将是另一个研究的挑战。利用AI多层代理技术(multi-agent technology),以平行及同步约束求解法将可改善其求解速率。


今天,人们已经把优化算法应用到了企业管理、工厂运营及供应链管理的软件之中,各种算法引擎和算法求解器也随之涌现。或许有人会问,是否在运营软件内置开发算法还是集成第三方的优化算法平台?要回答这个问题可以考虑以下的几个方面:


(1)同传统的公司内的计划排程相比,高级供应链计划排程无论是在考虑的组织机构范围还是在算法上都复杂了许多。


(2)现在,人们可以在工厂及供应链管理系统中用图形界面操作优化算法模型。计划员可以较少考虑如何形成计算模型,也不需要具备矩阵方程的细节知识以及掌握计划编程语言和求解方法。人们可以通过设置处罚成本来设置计划中的约束条件。比如:可以设置较高的外部采购成本模拟发包生产的能力。


(3)用户都不期望单独开发MES执行系统同APS优化计划系统间的接口。ERP系统同APS系统、MES系统间概念层和物理层的连接大大地方便了用户操作业务数据和整合后的计划排程数据。ERP和MES的供应商因此可以提供有价值的系统集成服务。这有助于人们接受优化算法和优化模型。


(4)由于计算机硬件性能的不断提升,今天,人们已经可以把大容量的数据常驻在内存里进行计算。这项技术可以极大地缩短系统读取硬盘的时间,因此在过去几年,该技术减少了系统运算高度复杂问题时的时间消耗。当然,如果碰到系统崩溃重新启动,这也会造成数据的不一致性问题。现在,可以用分布式计算技术即云计算和边缘计算来提高计算性能。


(5)管理层在选择软件时常常倾向于基于启发式算法但具有图形界面的软件,而不愿选择能优化解决问题但没有图形界面的软件。图形界面和近来不断推广使用的基于网页的图形界面的使用,使得运算过程和最终解可用图形来展示。图形界面的功能使得工厂及供应链系统在各级管理层都能被较好地接受。


从理论上讲,APS系统采用的算法质量是在决策选择哪一套系统进行实施时最重要的考虑因素之一。人们应该在相当清楚该APS系统的优化计划引擎的功能后,才决定是否投资该APS系统。然而,APS系统包含的算法描述得不甚清楚。人们对各种算法冠以奇异的名字,常常用科学的概念和名称。不同的公司都在提供算法,一个让人们感到混淆不清的现象是,这些多样的算法总是被冠以深奥的名字。大体上讲,系统的供应商在开发软件时都是为他们的优化计划引擎配以相应的算法。不管这种算法是其自身开发的、从其他供应商处购买的还是开放公用的。这就使得在选择优化计划软件时,必须重点关注的要素


另一方面,人们从实施的经验中也认识到算法只是评估APS系统最重要的要素之一。与以前的结果相比,用户在评价软件功能时,除了把优化算法的结果作为了最为重要的属性,同时也更加关注实时的现场细节与动态的计划排程的适应性及快速响应性。


今天,利用边缘计算技术所带来的实时可视化以及AI机器学习驱动的供应链计划与流程的优化能力。通过人工智能机器学习技术根据各种内外部影响因子与消费属性产生未来的需求计划与需求替代、预判供应链中未来的风险与断供、自动判定供应链例外状况优先级、自动提供建议解决方案、考虑各种因子对供应链的影响性自动分类、对产品判定属于哪一种细分类别、自动学习修正供应链计划所需模型参数,如:提前期、标准工时、良品率、优先级等等参数动态优化。


高级计划算法需定义策略或学习训练优化策略:
图片


排程算法需定义规则或学习训练优化规则:


图片

附一:人们眼中的算法


我们先从大数据的运作模式开始说起。如今,人们是如何处理数据的呢?就好比过去人们发明了平均值和图表来研究(当年的)海量信息一样,聪明的人们现在也在通过各种方式处理数万亿字节的信息,而他们发明的技术就是算法。算法决定了你在谷歌上会得到哪些搜索结果,在脸书上会看到哪些帖子、在交友软件中会遇到谁等等。

算法(algoritme)一词出自波斯数学家穆罕默德·本·穆萨·花拉子密,他在9世纪写了一本有关算术的书。

实际上,算法只是人们为了达到某个特定的目标所采取的几个步骤而已。从电脑屏幕上看,它其实枯燥得很,就是一行一行的、由软件开发人员用计算机语言编写的代码,用来指示电脑在何种情况下应采取哪个步骤。例如,"如果-那么”命令就是这样的一种代码,“如果一个人偿还了贷款,那么他的信用分数将提高10分。”

那算法又是如何工作的呢?对此,美国数学家和作家凯西·奥尼尔在她所著的《算法霸权》中用了一个实际的例子来解释这个问题:为她的家下厨。当奥尼尔的家人:(a)吃饱了;

(b)觉得食物好吃;

(c)摄取足够的营养时,她就会感到满意。

通过每天晚上评估这三个因素的状态,她就能了解到当天的饭做得好不好,以及未来将如何改进。

例如,奥尼尔看到孩子们把菠菜剩下了,却把西蓝花全都吃光了,类似这样的观察结果会帮助她调整家人的饮食结构,从而让他们吃得更健康。不过,若她想要达成这个目标,则还需要考虑一些其他的限制条件:

奥尼尔的丈夫不喜欢吃盐,并且她的一个儿子不喜欢吃汉堡(但特别爱吃鸡肉)。同时,她也没有无穷无尽的预算、时间和欲望下厨。

经过多年的实践,奥尼尔对这个流程早已了如指掌。为了给家人提供最好的饮食,不知不觉中,她已经做出了一张越来越严格的计划表,来指导自己每一步该如何做。现在我们假设,她的这项任务将由一台计算机接管。那么,她该怎样把“如何决定菜单”转移到电脑上呢?为此,奥尼尔就必须找到一种能将她的目标标准化的方法。

例如,要确定家人是否吃得饱、美味且健康,她可以查看下面这三种指标:

(a)食物的卡路里含量;(b)对食物的满意度;

(c)每一种营养的每日建议摄入量百分比。

同时,奥尼尔还需要考虑如何将那些限制条件输入电脑中,比如为她的预算设置一个上限,等等。

一旦奥尼尔确定了需要标准化的内容和方式,接下来她就能开始采集数据了。她可以先建一个列表,里面囊括了所有可能用到的食谱,并且为每一份食谱都注明其所需的准备时间。食材的价格以及营养价值。奥尼尔自己可以记录下每顿饭在数量和健康方面的得分,并且还可以让她的家人在1到10之间为每一道菜打分。

有了这些数据,奥尼尔就可以编写一个程序,而这个程序就能算出奥尼尔一家一年之中的每一天应该要吃些什么。不过,她也可以让该程序变成一个会自主学习的程序。只都是用数字来表示,那么计算机自己就可以分析出奥尼尔的目标和菜肴之间的联系。最终,这种算法甚至还能根据奥尼尔之前所设定的目标创造出新的菜式。又或许,这种算法还可能注意到一些她此前从未注意到的模式,比如,同样吃的是小卷心菜,倘若孩子们昨天吃的是荷兰煎饼,那么第二天他们吃的小卷心菜就会稍微多一些。通过这种方式,她的计算机使用了一种叫作“机器学习”的人工智能模式,去学习一项每一步都并未被人类提前编好的任务。

令人兴奋的是,这种自主学习能力还会让算法变得更复杂,有时甚至连程序员都无法知晓软件的下一步将会采取什么步骤。

简言之,奥尼尔把她的烹饪任务标准化,采集数据并且让软件分析数据。

附二:趣谈算法与规则

一、趣谈算法

退火算法看上去就是在一座山上,一群人靠着随机行走,不断地往谷底走去,最后走到了谷底。而遗传算法,是一群人,不断通过随机行走、乾坤大挪移以及和朝着别的人的瞬间移动,就像基因交换来走向谷底。

图片

但是,如果存在一个全局最低点,还存在很多局部最低点的话,随机行走很容易走近某个局部最低点,然后就走不出来了,因为它的行为逻辑就是随机行走,然后保留走向势能低的那些点,从而如果一个局部最低点距离全局最低点以及该点所影响的开始下落的坡区足够远,那么通过局部的随机行走是很难走出的。

当然,退火算法中点变异的范围可以不是“邻域”,这在一定程度上缓解了这个问题,但这导致的副作用是当足够靠近最低点的时候,往往会由于步子迈得太大而错过。

所以退火才有一个降温函数,来逐渐缩小变异或者说燃烧范围,最后凝结到最优点。这种前期高温后期降温的方法,就是希望前期广撒网,将点散布到所有局部最优点的坡区,然后通过降温来冻结在每个局部最优点上,从而通过比较来找出全局最优点。不得不说这个想法很好,但降温函数或者说熄火函数需要选择得好,不然还没找到所有局部最优点的坡区就降温的话,那就可能漏掉全局最低点。

而遗传算法由于不单单是随机行走,还存在别的方法来“绕出”局部谷底,所以相对退火算法来说就有了更多的离开局部最优解陷阱的途径,所以遗传算法不需要退火。

可以看到,退火算法的高温期的作用就是为了避免局部谷陷阱,低温期的作用是凝结到谷底。而遗传算法点变异的作用是为了凝结到谷底,交换、反序和基因交换的作用是为了避免局部谷陷阱,特别是基因交换,只要初始基因足够多样性,那么最后就可能行为包围全局最优点的局面,然后通过基因交换来寻找中间区域,便有可能找到全局最优点。

难题是:1、时间、空间问题;2、存在多个局部最优解,从而存在局部谷陷阱;3、有可能难以精确找到谷底。

所有遗传算法这样的高级算法都是通过各种方式来绕开上述问题。事实上,这些启发算法的诞生本身就是因为第一个问题,否则就可以使用暴力穷举了。面对第二和第三个问题,归根到底,其实可以总结为两点:如何更好地评价一个解“有多接近最优解”,另一个就是“如何从一个解生成另一个解”。

第一个问题是高级算法的使命,否则就暴力穷举了。为了解决第二与第三个问题,退火算法采用的是高温燃烧与退火凝结,分别应对这两个问题。而遗传算法的手段是利用点变异来解决第三个问题,而通过基因段的反序、基因内交换以及基因间交换这些手段来解决第二个问题。

但除了上述这些内容,有一个很有趣的特色,那就是每次都保留一组基因,而不是只选择唯一的最优基因,无论是遗传算法的基因池还是退火算法的燃点集。这个基本特点为什么一定要存在?对于遗传算法,必须要有超过一个基因才能实施基因间片段交换。

让我们构思一个充满局部谷陷阱的问题的时空,如果我们每次只保留一个最优点,如果我们一开始就不在局部最优解所在的坡区,那么下一步通过随机行走可以走到最优解所在坡区的概率,就需要考虑最优解坡区中所在位置低的区域与随机步行范围的交集。而如果已经在最优解的坡区,那么下一次通过随机行走离开的概率就要考虑局部非全局最优解坡区与当前点位置交集。

因此,遗传算法之所以不只保留一个最优点,而是保留一批较优点,其根本原因就是为了避免一个点落入坑里爬不出来的情况发生。也就是说,所有那些非最优的备选方案的存在,就是为了保证寻找全局最优解的较大的概率。

如果将最优点视为“正确”的,那么这种保留一堆非最优的“错误”点的容错手段,也可以看作是将未来的希望寄托在不够完美的“错误”之中。我们可以发现,修正错误从某种程度上来说也可以看作是扼杀未来。多线程并行与试错这两点非但在遗传算法之类的高级算法中很重要,这在自然进化论与人类组织优化的相关的问题时,也很重要。

二、趣谈规则

一提到排程优化,我们就想到很复杂,总是觉得有点高深莫测,现举一个大家都熟悉的有趣的案例:有一个军人聚会和出租车公司,假设有一个“士兵”、“军士”、“上尉”和“将军”参加一个大型聚会。他们都必须在晚上 11:00 准时离开回到基地。

(1)走向大门口顺序

11:00 四个人都走向门口。在向门口走时,他们都彼此看到了对方。他们知道第一个出门的人将是第一个坐上出租车的人,另一辆出租车可能要 30 分钟后才能来。

四个人同时到达门口。谁第一个出门?当然是“将军”,后面依次是“上尉”、“军士”,最后是“士兵”。

当两个军人到达门口时,军衔最高的一个首先出门。如果有一辆出租车等在那里,“将军”上车而其他三位等待。这是军事礼节的规则。

(2)队列排序

但是如果没有出租车等在门口呢?等待出租车的队列形式为:“将军”在前面,然后是“上尉”,其次是“军士”,“士兵”在最后。

当出租车驶来时,司机不会注意排在队里的人是谁。他只搭载队伍最前面的一位,而这个人正巧是一位将军。先到先享受服务是排队的一个规则。

如果士兵恰好在 10:59 而不是 11:00 离开,他就能早于其他三位进入队列,但是他没有这样做,所以他必须在后面等待。

现在如果军人们在不同的时间离开集会情况会怎么样呢?士兵第一个离开,然后是军士、上尉,最后是将军。

他们可能按照“先进先出”组成队列,也可能按照军衔排队。因此“军士”插队到“士兵”的前面,“上尉”在“军士”的前面,“将军”在“上尉”的前面。

“先进先出”和军衔都是队列排序的方法。并且出租车司机也表示他只能搭载队伍中的第一位。

(3)精明出租车司机的选择

现在让我们假设他们已经按照“先进先出”的规则排序,“将军”在队伍最后。但是出租车司机知道军衔越高的军人给的小费也会更高。

出租车到达后,他选择了排在队列后面的“将军”。

出租车司机使用了从队列中选择顾客的规则。他并不关心排队的规则是什么。他想选择给小费最高的顾客。

(4)出租车公司

还有一个点需要考虑。假设出租车公司有20辆出租车。出租车公司如何确定将哪些出租车按什么顺序派到聚会?他们是否为该集会保留五辆出租车并且让这五辆车循环载人?他们是从20辆出租车中随机指派吗?或者他们是不是指派夜间空载最长的出租车?

离散行业就是使用这四种类型的规则确定负荷在车间中的处理方法。

图片

(1) 生产订单下达规则:解决哪个订单先下达,如按交货期,优先级等

(2) 顺序规则:当资源不够用时, 生产订单和负荷在排队,解决排队的顺序,如最小加工时间,最小工序数等。

(3) 资源选择规则:也就是对顺序规则重新选择时,如最小准备时间规则等。

(4) 资源组成员分配规则:当须选择多个资源,替代资源时,如最小资源利用率资源等。

图片

用“满意”取代“最优”,最优化的概念只在纯数学和抽象的概念中存在,在现实生活中是不存在的。它在满足各种约束条件下,“满意”的概念显然比“最优化”的概念更为合理。它可以极大的减少算法搜寻技术成本、计算成本、简化决策程序。因此,约束满意是绝大多数的决策者所遵循的标准。-赫伯特.西蒙

打赢一场战争,需要的是全局优化运筹帷幄,而打赢一次战斗,靠的却是战斗部队的实力和局部优化随机快速应变。通过算法优化战略运筹未来,极限能力预案,底线成本谋划,使得供应链柔性、韧性、反脆弱性,获得可盈利的持续增长。

图片

APS系统的成功不仅取决于数学算法优化能力,还需要快速的决策安排可执行的计划与任务并可以准确捕捉行业特征属性及许多微妙的隐含考量。好的系统允许灵活调整各类约束的权重,并能从过去的计划排程决策中学习改进—这正是人工智能可以发挥作用的地方。可以分两步:先规则后智能:

图片

算法优化固然重要,更是一个严格的数据治理、深刻的组织变革、聚焦业务创新过程。成功的APS系统必须超越形式化规则与约束,捕捉供应链与生产过程中的隐含知识和实际运作模式。真正的创新来自于理论与实践的持续对话,甲乙方双向奔赴,专家提供模型假设,而实践者提供现实约束解读。这种交互合作模式是APS实践成功的重要因素。

APS即是科学又是艺术,并不在于找到完美解决方案。在复杂动态约束下决策最优化往往是不可能的。真正的成功在于创造一个既算法上合理又实践上适用的平衡,既符合组织需求又尊重管理者偏好的方案。是高交互、高展现、高技术的应用体验,是理性算法与人性洞察的结合。既要尊重经验又要避免经验主义。即要尊重理性又要避免理性自负。  


您想看的:

发表评论: