本文主要是介绍动态规划之 装配线调度问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从之前提到的最长公共子序列的问题中已经可以看到动态规划的应用之处,但是对于这种算法,或者说是一种思想,该在什么地方使用,哪些问题的解决可以使用动态规划,可能并不清晰。下文所讲述的内容就是可用动态规划解决问题的两个要素:最优子结构和重叠子问题。
在分析这两个要素之前,先以两个例子引入:
装配线调度
假设一个汽车底盘加工有两个装配线,如下如所示,每个装配线都有n个配件站,用于给底盘安装不同的零件,配件站用S表示,如S(2,3)表示第二条装配线的第三个配件站。两条装配线同一个配件站的工作相同,但是时间不同,用a表示所花费的时间,如a(2,3)表示装配站2的第三个配件站完成工作的时间。底盘进入装配线的时间用e表示,离开装配线的时间用x表示。
一般情况下,一个汽车底盘的装配过程就是进入一条装配线然后依次通过配件展,一条装配线内从一个配件站到另一个的时间可以忽略。但是某些时候可能会需要一些加急的订单,对这些订单仍旧需要经过所有的配件站,但不能在一条装配线上一直运行,这样的最短时间就无法保证。解决方法就是从一条装配线的配件站转移到另一条装配线的配件站,但转移的过程需要时间,记为t如上图,问题就是要寻找需要在哪些配件站进行转移达到时间的最小化。在下图中所示例子可以得到一种最优转移方案:
这篇关于动态规划之 装配线调度问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!