GAMS案例分享:为什么您的业务需要优化
  • GAMS案例分享:为什么您的业务需要优化

产品描述

许可形式单机和网络版 原产地中国 介质下载 适用平台windows,mac

GAMS用户案例分享知乎

在竞争激烈、客户期望不断变化的现代商业动态中,企业不断优化运营的需求变得至关重要。无论你是一家刚刚起步的初创企业还是一家成熟的企业,接受优化哲学都可能是停滞和可持续增长的区别。


在这篇博文中,我们深入探究了为什么优化你的业务流程和资源不仅仅是奢侈品,更是长期成功的必要条件。从提高效率和较大限度地提高生产力到较小化成本和有效地分配资源,优化的好处是多方面的,影响深远。


首先,让我们深入研究一下在汽车制造中为汽车喷漆的例子。此场景可作为优化决策所涉及复杂性的实际说明,其中效率和准确性至关重要。


二进制喷漆车间问题

在复杂的汽车制造世界中,生产过程中的每一步都在确保效率和质量方面发挥着至关重要的作用。其中一个关键步骤是喷漆,汽车在上路前进行最后的美学处理。想象一个场景,不同类型(A到F)的汽车以特定的顺序到达喷漆厂的传送带上,如下图所示:

                                         1    

每辆车都需要涂一层白色或黑色的底漆。

为了简化这个场景,让我们考虑一个较小的工作示例:

• 每种车型(A至F)按顺序正好到达两次。

• 每种类型的一辆车必须漆成白色,而另一辆车则必须漆成黑色。

• 到达车辆的顺序无法调整。

• 更改颜色会消耗时间和资源。


这里的目标是较大限度地减少颜色变化的次数,同时确保每种车型都涂上白色和黑色油漆。该场景概括了所谓的二进制油漆店问题,这是一个经典的优化问题,说明了企业在满足特定约束的同时尽量减少资源使用时面临的挑战。

 

现在,想象一下自己坐在驾驶座上,负责决定哪辆车涂上了白色,哪辆车漆成了黑色。按照代表每种车型的字母顺序,制定策略,以尽可能少的颜色变化为每个字母上色,确保每种车型都涂上白色和黑色油漆。

2

挑战这个任务的大多数人通常会得出相同的结论:需要4个颜色的变化。下面是他们通常如何给汽车喷漆:

3

现在,您的任务是向同事解释解决方案流程,以指导他们完成挑战。考虑他们需要采取哪些步骤来有效地解决这个问题。


以下是我在这项任务中挑战的大多数人倾向于制定的一种常见方法:

• 首先将第一辆到达的车型涂成白色。

• 尽可能长时间地使用白色油漆,直到第一种车型第二次到达。

• 过渡到黑色油漆,并尽可能长时间地使用它。

• 重复这种交替模式,直到每辆车都喷漆。


算法和启发式

这种方法我们称之为贪心算法( Greedy Algorithm )或贪心启发式算法( Greedy Heuristic )。贪心算法是求解优化问题的一种简单而直观的方法。它在每一步都做出一系列局部较优选择,希望找到全局较优。换言之,在每一步中,它都会选择较佳的可用选项,而不考虑未来的后果。贪婪算法通常快速且易于实现,但它们可能并不总是为复杂问题提供较佳解决方案。许多公司已经使用了类似的方法,尤其是在Excel工作簿或VBA宏中构建任务时,旨在获得快速实用的解决方案。


我们可以通过在Python中实现所描述的贪婪算法来利用它的力量。这使得我们可以有效地应用所定义的规则来对到达的汽车类型进行着色,即使对于较大的序列也是如此。通过将解决问题的策略转化为代码,我们可以自动化流程并加快资源使用的优化。

4


将上面的代码应用于我们的ADEBAFCBDEF序列,我们得到了预期的四种颜色变化。

5

数学优化

启发式求解方法的一种替代方法,如提出的贪婪算法,是数学优化。通过数学优化,我们将视角从规定规则以产生解决方案转变为精确定义和描述我们试图解决的问题。通过数学公式化问题,我们可以以严格的方式阐明目标、约束和决策变量。这种方法使我们能够更系统地探索问题空间,利用数学技术有效地确定较佳解决方案。


下面,您将找到二进制油漆店问题的数学表示,为此我们设计了贪婪算法:

6


要理解数学优化的重要性,特别是与使用启发式方法相比,您不需要阅读甚至理解数学模型的细节,您可以直接跳到结果。但是,如果您对模型公式感兴趣,这里有一个简短的解释。


第一步,我们引入两个不同的集合:I和J。集合I包含我们序列中的所有位置,按顺序编号,而集合J包含每个唯一的车辆类型,由字母A到F表示。


为了定义到达喷漆车间的车辆类型的顺序,我们引入集合(i,j)∈IJ。该集合中的每个元素对应于序列中的特定位置i,指示哪种车辆类型j∈j到达该点。对于我们的ADEBAFCBDEF序列,(1,A):IJ表示到达位置i=1的汽车类型j=A,以及(2,D):IJ*到达位置i=2的汽车类型j=D,依此类推。


在我们的数学符号中,Xi体现了核心决策过程。它代表了在我们的序列中关于位置i∈I所使用的颜色的选择。例如,X3=1表示将位置3处的车辆漆成黑色,而X3=0表示使用白色。控制我们的涂装车间问题的基本规则是,每个车辆类型j∈J必须被精确地涂一次黑色。


因此,对于每个车辆类型j∈J,我们在(i,j)∈IJ上的所有Xi上求和,并强制该和恰好为1,以确保遵守由方程( 2 )表示的规则。


例如,对于序列ADEBAFCBDEF,从该规则导出的方程如下所示:

7

为了确立我们的目标,我们的目标是尽量减少序列中的颜色变化数量。这一目标是通过检查我们序列中的每个位置i∈I并评估其后续位置i+1是否指代不同的颜色来实现的,如方程(1)所示。当Xi−Xi+1等于1或−1时,这意味着颜色的变化,使我们的目标增加1。相反,差值为零表示没有颜色变化。


我们的首要目标是较大限度地减少颜色变化的总数,因此有必要将我们的目标定义为较小化函数。有了问题的精确数学表示,我们可以使用现成的优化求解器来解决我们的油漆车间问题,并在数学上证明了它的较优性,这保证了在我们的问题的约束范围内不存在较优解。


较佳解决方案

在解决优化问题后,我们获得了颜色变化的较佳数量,在我们的例子中得到了值2。此外,我们推导了导致下面有色序列的决策变量Xi的较优值:

8


过渡到现实世界的挑战:多车喷漆车间问题

在我向观众展示二元喷漆车间问题经验时,经常会有精明的人从后面开始给给定的序列着色,较终得出两个颜色变化的较优解。这一观察结果提供了有价值的见解:当以启发式的方式解决问题时,在*了达成解决方案方法的情况下,可能有多种可行的解决方案途径。此外,这些解决方案之间可能存在很大差异。然而,关键问题仍然存在:


我们如何辨别达成解决方案的较有效方法?


需要注意的是,从后面开始只对这个特定的序列有效。此外,重要的是要记住,这里讨论的例子是对现实世界问题的简化。事实上,我们处理的是一个更大的到达汽车类型序列,其中每种类型可能到达任何次数。此外,我们必须满足每种类型的汽车数量的具体要求,哪些汽车需要涂成白色和黑色。


我们可以很容易地调整Greedy算法,以满足特定的颜色需求:

9

对长度为128的到达车辆类型的随机序列运行上述代码,得到31种颜色变化的着色结果。

10

现在,让我们继续调整我们的数学模型,以适应现实情况的复杂性。

11


值得注意的是,我们在自适应的数学模型中保留了相同的目标函数(方程(1)与方程(4)相同)。然而,为了适应颜色需求,我们引入了两个新的约束条件。首先,通过将等式(2)中的等式约束替换为等式(5)中对黑色车型的需求,我们确保djblack车辆被漆成黑色。其次,为了解决对白色汽车的需求,我们使用了与黑色汽车类似的方程式(方程式(6)),但总和超过1−Xi。


在解决我们的适应模型后,我们得出了只需要11种颜色变化的解决方案。

12

通过在我们的例子中使用数学优化,我们观察到关于颜色变化的决策有了显著的改进。这种增强意味着减少了颜色更改所需的时间,提高了资源利用率,并可能在给定的时间范围内降低成本或提高生产力。


转换到其他问题类型

数学优化追赶了二进制喷漆车间问题的范畴,展示了它在各种问题类型中的有效性。虽然我们讨论的问题相对简单,但数学优化使我们能够有效地解决大型复杂的现实问题。它的应用横跨不同的领域,包括农业、物流、调度、能源系统等。

13

北京天演融智软件有限公司(科学软件网)是GAMS软件在中国的授权经销商,为中国的软件用户提供优质的软件销售和培训服务。  



http://www.kxrjsoft.com.cn
产品推荐

Development, design, production and sales in one of the manufacturing enterprises

您是第2946965位访客
版权所有 ©2024-12-27 京ICP备10040123号

北京天演融智软件有限公司 保留所有权利.

技术支持: 八方资源网 免责声明 管理员入口 网站地图