首页 理论教育 工序进度安排顺序的产生

工序进度安排顺序的产生

时间:2022-11-12 理论教育 版权反馈
【摘要】:工序进度安排顺序的产生是问题求解的关键一步。因为其后各模块的运行均需在这个工序进度安排顺序下进行;另一方面,不同的工序进度安排顺序将产生不同的可行进度计划,并导致产生不同的目标函数。后向工序进度安排顺序产生程序与前向工序进度安排顺序产生程序类似,只是在搜索的顺序和有资格安排进度的工序集合的定义上有区别。

工序进度安排顺序的产生是问题求解的关键一步。因为其后各模块的运行均需在这个工序进度安排顺序下进行;另一方面,不同的工序进度安排顺序将产生不同的可行进度计划,并导致产生不同的目标函数。工序进度安排顺序的产生分为两种情况:前向工序进度安排顺序和后向工序进度安排顺序。前向工序进度安排顺序是指从起始工序开始,按照逻辑关系的顺序依次为一个或多个工序安排进度,任何一个工序只能安排在其紧前工序完成之后开始。后向工序进度安排顺序是指从结束工序开始,按照逻辑关系的逆序依次为一个或多个工序安排进度,任何一个工序只能安排在其紧后工序完成之后开始。

最初的进度产生方案均是前向的。然而,Li和Willis[144]在1992年通过研究发现改变进度安排的方向对所产生的进度计划的性能会产生相当大的影响,于是提出了后向进度安排的思路。后向进度安排相当于将网络计划的所有箭线反向,构造出原网络计划的一个“镜像”,按照“镜像”网络计划的逻辑关系顺序为工序安排进度。任何一个工序只有当其紧后工序都安排进度后才可以安排进度。后向进度安排的主要目的是为了改善所产生的进度计划的性能,同时提高算法的搜索效率。

利用前向和后向的双向进度安排概念已经在以工期为目标函数的资源受限项目进度安排问题得到了广泛的认同和应用,具体可参见文献[47,50,145]。其后,Selle和Zimmermann[146]又将这种双向进度安排概念引入到NPV最大化问题中,他们对大型项目进行了求解,并考虑了资源约束。本书提出的方法中也引入了双向进度安排的概念,其目的是希望利用双向进度安排获得不同性能的可行解。

对于一个包含J个工序的项目,前向工序进度安排顺序产生程序从起始工序1开始,将其开始时间安排在时点0,然后按照逻辑关系的顺序,用J个决策层次确定各工序的进度安排顺序。在每个决策层次g,首先需要确定当前层次有资格安排进度的工序集合EJg。所谓有资格安排进度的工序集合,是指那些所有本身未安排进度,但其所有的紧前工序均已经安排了进度的工序,即EJg={j|j∉SJg-1且Pj⊆SJg-1},其中SJg-1为到第g-1个决策层次为止已经安排进度的工序集合。如果有资格安排进度的工序集合中只有一个元素,那么将其作为当前层次安排进度的工序。然而,在很多情况下有资格安排进度的工序集合中不只一个元素存在,此时就需要通过设置一定的选择方法,对当前时间拟安排进度的工序加以选择。在启发式方法中,利用各种优先权规则进行选择,而在本书提出的方法中,是按照蚁群算法模块提供的搜索概率和搜索方法进行选择,具体的选择方法将在本章后面的内容中详细叙述。

当按照一定的选择方法从有资格安排进度的工序集合中确定了当前安排进度的工序后,接着需要同时更新两个集合:已安排进度的工序集合和有资格安排进度的工序集合。假设当前决策层次选择了工序jg安排进度,则已安排进度的工序集合更新为SJg=SJg-1∪{jg},并更新有资格安排进度的工序集合,即EJg+1=EJg\{jg}∪{j|j∈Sjg且Pj⊆SJg}。重复这些操作直至到达第J个决策层次。前向工序进度安排顺序产生程序如图3.8所示。

alt

图3.8 前向工序进度安排顺序产生程序

后向工序进度安排顺序产生程序与前向工序进度安排顺序产生程序类似,只是在搜索的顺序和有资格安排进度的工序集合的定义上有区别。后向工序进度安排顺序产生程序从结束工序J开始,按照工序逻辑关系的逆序,用J个决策层次确定各工序的进度安排产生顺序。在每个层次g,首先确定当前层次有资格安排进度的工序集合EJg,此时的有资格安排进度的工序集合定义为那些所有本身尚未安排进度,但其所有的紧后工序均已安排进度的工序,即EJg={j|j∉SJg-1且Sj⊆SJg-1}。在每个决策层次,本书都按照蚁群算法模块传递的选择概率和选择方法,从有资格安排进度的工序集合中选择工序jg安排进度。之后,更新已安排进度的工序集合,即SJg=SJg-1∪{jg},并更新有资格安排进度的工序集合,即EJg+1=EJg\{jg}∪{j|j∈Pjg且Sj⊆SJg}。重复这些操作直至到达第J个决策层次。后向工序进度安排顺序产生程序如图3.9所示。

alt

图3.9 后向工序进度安排顺序产生程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈