基于设计结构矩阵的复杂产品开发时间预测及优化方法与流程

文档序号:18902352发布日期:2019-10-18 22:07阅读:264来源:国知局
基于设计结构矩阵的复杂产品开发时间预测及优化方法与流程
本发明涉及一种基于设计结构矩阵的复杂产品开发时间预测及优化方法。
背景技术
:随着市场竞争环境日益激烈,产品生命周期不断缩短,更新换代越来越快,提高新产品开发效率已经成为了现代企业在市场中保持核心竞争力,获得商业成功的重要手段。调研数据表明:对于大部分公司而言,其利润的50%以上来源于最新推出的产品;但是另一方面,大约70%的产品开发项目超出了估算的时间进度,计划交付时间平均超期20%至50%,90%以上的产品开发项目开支超出预算,只有大约60%的产品开发项目最终取得了成功。这是因为现实的产品开发过程可以分为一系列相互耦合的设计活动,设计活动之间大量复杂的信息传递关系,给产品开发项目的过程管理带来了巨大的难度。相当大一部分设计活动需要在输入信息不完备时开始执行,并在输入信息到达或发生变化时返工,这些返工对新产品开发项目的开发周期和成本造成了很大的影响。通过对大量产品研发案例的研究,人们发现由于耦合设计活动之间复杂的信息传递关系导致的活动返工总时间占项目总开发时间的50%以上。因此,确定最优的设计活动执行顺序,以降低返工时间成为了产品开发过程管理中非常重要的问题。传统的基于网络图的活动排序方法,如关键路径法(cpm)、计划评审法(pert),很难处理耦合活动中的信息传递作用。因为他们假设活动之间的所有约束是已知的和固定的,但是在实际的新产品开发项目中这种情况是不存在的。后续发展出来的图形评审法(gert)在pert的基础上将各个活动及其相互之间的影响关系设为随机分布,并通过蒙特卡洛方法进行求解。但是,由于一个复杂产品开发项目往往存在着数百个耦合设计活动,这种情况下生成的gert网络非常复杂,直接对其进行分析是极其困难的。因此,人们提出使用设计结构矩阵(dsm)来安排耦合活动的执行顺序。dsm矩阵是由排列顺序相同的行列元素组成的方阵,所有元素共同组成了产品开发项目中的耦合活动集合,元素的排列顺序代表设计活动的执行顺序,对角线数据(阴影部分)表示对应活动的预计完成时间,非对角线数据表示活动之间信息依赖的方向和大小,上三角的数据表示由后序活动向前序活动的信息流动,称为信息反馈;下三角的数据表示由前序活动向后序活动的信息流动,称为信息前馈。图1展示了一个电动汽车开发项目的dsm矩阵。dsm矩阵对设计活动返工的描述可以分为两种:一是下游活动的执行发现了上游活动的错误或者未完成的部分,导致上游活动需要返工,这种情况被称为一阶返工,一阶返工是由于信息反馈(对角线上方)造成的,如图1中活动3完成引起的活动2返工;二是经过至少一次活动返工后将改进的信息传递到了其他活动,导致其他活动需要返工,这种情况被称为高阶返工,高阶返工的产生可能来自信息反馈也可能来自信息前馈(对角线下方),如图1中活动2返工后引起的活动3的返工是信息前馈的作用,而引起活动1的返工是信息反馈的作用。基于dsm矩阵,人们提出了多种优化算法对设计活动进行排序,以降低产品开发过程中的返工时间。这些算法按照其优化目标函数大致可以分为两类:一类是仅针对产品开发过程中的一阶返工进行优化,优化目标函数包括最小化信息反馈数目、最小化信息反馈和、最小化信息反馈的时间加权和等,例如kusiak和wang提出了一种三角分割算法对设计活动之间的信息依赖关系进行识别并进行排序;ahmadietal.提出了一个模块分解的算法用于设计活动排序;qianetal.通过将多个活动合并为一个活动的思路,提出了一种启发式算法用于解决大规模排序问题;linetal.使用活动交换的思路设计了启发式算法对大规模耦合活动进行排序。一类是将产品开发过程中的高阶反馈纳入考虑,优化目标函数为最小化信息反馈的距离加权和,例如altusetal.提出了一种基于活动置换的遗传算法用于找到总反馈长度最小的活动序列;linetal.提出了一种通过活动插入改进活动序列的局部搜索算法。但是,这些目标函数也存在着一些缺陷,使其不能对产品开发项目中的返工进行完全有效的分析:(1)这些代理目标函数并没有与最终目标(缩短产品开发项目总时间)建立可量化的关系,也就是说,代理目标函数最终得到的取值很难在实际项目中找到对应的管理意义,项目经理很难根据代理目标函数的优化结果来估计产品开发项目的执行时间及优化程度,合理分配人员和资源并安排赶工。(2)现有的代理目标函数并没有充分发掘dsm矩阵中的所有信息,几乎所有的代理目标函数使用的都是dsm矩阵中的反馈信息(对角线上方),对于前馈信息(对角线下方)鲜有研究,但是前馈信息同样也是造成返工迭代的重要原因,尤其是高阶返工,这必然导致了现有算法在准确性上缺乏说服力。(3)现有的代理目标函数对高阶返工的研究不足。只有最小化信息反馈的距离加权和研究了高阶返工中前馈信息个数对开发项目周期的影响,但是对反馈信息导致的高阶返工没有研究,同时也并没有精确地量化这种影响,因此很难对高阶返工进行有效的分析。而其他代理目标函数则只研究了一阶返工,没有涉及高阶返工。也有研究尝试对上述问题进行解决,例如smith和eppinger使用了马尔科夫链模拟返工迭代,建立了顺序迭代模型对项目的总体开发时间进行预测并得到最优的执行顺序。模型虽然涵盖了dsm矩阵中所有的一阶返工和高阶返工,具有很高的精确性,但是模型复杂不便于对实践中大规模的产品开发项目进行优化。banerjeeetal.根据这一模型设计了septr启发式算法,但是这种算法依然不能解决大规模的活动排序问题,其解决9个设计活动的dsm矩阵平均就需要37分钟。总结来说,现有的优化算法对产品开发项目中设计活动间大量复杂的信息依赖关系挖掘不足,对设计迭代中高阶返工的考虑不足,因此难以保证优化结果的准确有效。另外,这些算法得到的优化数值都没有现实管理意义,难以对这些优化数值进行分析和利用。技术实现要素:本发明基于对dsm矩阵的分析建模,目的在于提出一种基于设计结构矩阵的复杂产品开发时间预测及优化方法。为实现上述目的,本发明是通过以下技术方案来实现:基于设计结构矩阵的复杂产品开发时间预测及优化方法,包括以下步骤:1.基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,包括以下步骤:1)对于一个由n个平均完成时间已知、信息依赖关系已知的耦合设计活动构成的复杂产品开发过程,其所有设计活动组成设计活动集n;根据设计活动集n构建产品开发项目所对应的设计结构矩阵,并构建能够预测产品开发项目总时间的优化目标函数:2)根据优化目标函数,求解设计活动数不大于15个的中小规模产品开发项目所对应的设计结构矩阵以及求解设计活动数大于15个的大规模产品开发项目所对应的设计结构矩阵。2.根据权利要求1所述的基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,步骤1)中构建优化目标函数的具体过程如下:设计结构矩阵中对角线元素di表示活动i的平均完成时间;非对角线元素aij表示活动i对活动j的信息依赖程度;按照n个设计活动的首次开始时间进行划分,将整个产品开发过程分为n个阶段;每一个设计阶段所包含的设计活动数等于此时所有已完成的设计活动数;对于n个设计活动组成的复杂产品开发项目,初始执行序列是{1,2,...,n},构建包括n个阶段的马尔科夫链,那么对于第k阶段,第一个要完成的活动是设计活动k,因而第k阶段的第一个设计活动的期望执行时间为:dk×1其中,1≤k≤n,dk表示活动k的平均完成时间;如果设计活动k引起了设计活动i的一阶返工,那么设计活动i一阶返工的期望执行时间为:aik×di其中,1≤i<k,aik表示活动i对活动k的信息依赖程度,di表示活动i的平均完成时间;那么第k阶段所有设计活动一阶返工的期望执行时间为:如果设计活动k在引起了设计活动i的一阶返工后,设计活动i又导致了设计活动j的二阶返工,那么设计活动j二阶返工的期望执行时间为:aik×aji×dj其中,1≤j≤k,j≠i,aik表示活动i对活动k的信息依赖程度;aji表示活动j对活动i的信息依赖程度;dj表示活动j的平均完成时间;那么第k阶段所有设计活动二阶返工的期望执行时间为:则第k阶段的总时间tk为:因此,对于n个设计活动组成的产品开发项目,产品开发项目总时间t为:同理,当设计活动的执行序列发生改变时,对于任意活动执行序列,产品开发项目总时间t变为:其中,zik、zjk分别表示活动i和活动k、活动j和活动k的相对位置;当活动i在活动k前完成时zik=1,否则取0;当活动j在活动k前完成时zjk=1,否则取0。3.根据权利要求2所述的基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,步骤2)中求解设计活动数不大于15个的中小规模设计结构矩阵的具体过程如下:对于n个设计活动组成的设计结构矩阵,其活动执行序列为{1,2,...,n},以参数p为界,将活动执行序列分为ap、bp两个子序列,分别为:ap={1,2,...,p}bp={p+1,p+2,...,n}其中,1≤p≤n;根据优化目标函数,做出如下定义:其中,tap、tbp分别为子序列ap、子序列bp的独立完成时间;此时,产品开发项目总时间t等于设计活动的平均完成时间之和与两个子序列独立完成时间tap与tbp的和,即:当子序列ap前进运动变为ap+1,或子序列bp后退运动变为bp-1时,子序列ap的独立完成时间tap与子序列bp的独立完成时间tbp的变化为:对于子序列ap和子序列bp两个部分的活动执行序列,均有固定的索引值定义如下:那么对完整的设计活动序列,其索引值是一个定值indexdsm:对于一个由n个设计活动组成的产品开发项目,将该产品开发项目所对应的设计结构矩阵分为独立的前进、后退两个部分,并分别对前进部分与后退部分进行优化,得到前进部分优化的结果ap和后退部分优化的结果bp;将前进部分优化的结果ap和后退部分优化的结果bp进行匹配,使得它们的索引值满足从而得到备选的完整最优序列集合,并计算产品开发项目总时间其中,为ap的索引值,为bp的索引值;从备选的完整最优序列集合中选择具有最小产品开发项目总时间t值的序列为最优活动序列。4.根据权利要求3所述的基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,对前进部分与后退部分分别进行优化,得到前进部分优化的结果ap和后退部分优化的结果bp的具体过程如下:前进运动部分优化的具体过程如下:步骤1:找出所有可能的子序列a2序列,并计算ta2以及对应地索引值;步骤2:对子序列a2进行序列匹配,并保留相同索引值中ta2最小的序列;步骤3:假设参数t=2:1:(p-1),执行下列操作,直到循环结束后得到前进部分优化的结果ap:步骤3.1:在子序列at的基础上,前进一步变为子序列at+1,并计算tat+1以及对应地索引值;步骤3.2:对于子序列at+1中的每一个序列,找到与其具有相同索引值的序列,比较各序列独立完成时间tat+1,并保留具有最小独立完成时间tat+1值的序列;后退运动部分优化的具体过程如下:步骤1:找出所有可能的bn-2子序列,并计算独立完成时间tbn-2以及对应地索引值;步骤2:对bn-2进行序列匹配,并保留相同索引值中tbn-2最小的序列;步骤3:假设参数t=(n-2):-1:(p+1),执行下列操作,直到循环结束后得到后退部分优化的结果bp:步骤3.1:在子序列bt的基础上,前进一步变为bt-1,并计算独立完成时间tbt-1以及对应地索引值;步骤3.2:对于bt-1中的每一个序列,找到与其具有相同索引值的序列,比较各序列独立完成时间tbt-1值,并保留具有最小独立完成时间tbt-1值的序列。5.根据权利要求2所述的基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,步骤2)中,求解设计活动数大于15个的大规模设计结构矩阵的具体过程如下:步骤0:假设复杂产品开发项目的初始活动执行顺序为s,并根据优化目标函数计算出其对应地产品开发项目总时间t;并初始化当前活动执行顺序s0=s,对应地产品开发项目总时间t0=t,总时间变化量δt=1;当总时间变化量δt>0时,进行以下操作:步骤1:选取初始活动执行顺序s的第一个设计活动i;步骤2:对于当前活动执行顺序s0,找出活动i对应的位置,将活动i与后续位置的每一个设计活动j计算,得到活动i和活动j的独立完成时间变化量如果那么则交换s0中活动i和活动j的顺序,此时当前产品开发项目总时间为步骤3:选取初始活动执行顺序s中的下一个设计活动,重复步骤2的操作,直到初始活动执行顺序s中的最后一个活动被选取;从而得到改进后的当前活动执行顺序s0;步骤4:设定初始执行顺序s=s0,同时选取此时初始执行顺序s中的第一个设计活动i;步骤5:设定活动块i={i},找到活动块i={i}在当前活动执行顺序s0中对应的位置,将活动块i={i}与后续位置的每一个设计活动j计算,得到活动块i和活动j的独立完成时间变化量如果那么则交换当前活动执行顺序s0中活动块i和活动j的顺序,此时总时间如果所有那么则将序列s0中活动块i的后一个活动k加入到活动块i中,即i=i+{k},随后将更新的i与后续活动进行计算,直至活动块i不存在后续活动;步骤6:选取初始执行顺序s中的下一个活动,重复步骤5的操作,直到s中的最后一个活动被选取;步骤7:更新初始执行顺序s=s0,总时间变化量δt=t-t0,总时间t=t0。6.根据权利要求5所述的基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,步骤2中,将活动i与后续位置的每一个设计活动j计算,得到活动i和活动j的独立完成时间变化量的具体过程为:对于一个由n个设计活动组成的产品开发项目,其活动执行顺序为{1,2,...,i,...,j,...,n};交换活动i与活动j的位置;定义:式中,βij、βji分别为在保持其他活动相对位置不变情况下,活动i在活动j前执行、活动j在活动i前执行时,两个活动的独立完成时间;为变换活动i、j位置时独立完成时间的变化量。7.根据权利要求5所述的基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,步骤5中,将活动块i与后续位置的每一个设计活动j计算,得到活动块i和活动j的独立完成时间变化量的具体过程如下:保持活动执行顺序不变,定义活动块i={i,...,h},同理,定义活动块h={h+1,...,j-1},交换活动块i与活动j的位置;定义:式中,βij为在保持其他活动相对位置不变情况下,活动块i在活动j前执行时,两者的独立完成时间;βji为在保持其他活动相对位置不变情况下,活动j在活动块i前执行时,两者的独立完成时间,为变换活动块i、活动j位置时独立完成时间的变化量。8.根据权利要求2所述的基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,步骤2)中求解设计活动数大于15个的大规模设计结构矩阵的具体过程如下:步骤0:假设某复杂产品开发项目的初始执行顺序为s,并根据优化目标函数计算出其对应地产品开发项目总时间t;并初始化当前活动执行顺序s0=s,对应地产品开发项目总时间t0=t,总时间变化量δt=1;当总时间变化量δt>0时,进行以下操作:步骤1:选取初始执行顺序s中的第一个设计活动i;步骤2:对于当前活动执行顺序s0,找出活动i对应的位置,将活动i对应的位置与每一个设计活动j计算,分别得到独立完成时间的变化量αij;其中,j≠i;如果独立完成时间的变化量αij>0,那么则将活动i插入到活动j的前面,此时当前产品开发项目总时间t0=t-αij;步骤3:选取初始活动执行顺序s中的下一个活动,重复步骤2的操作,直到s中的最后一个活动被选取;从而得到改进后的当前活动执行顺序s0;步骤4:设定初始活动执行顺序s=s0,选取此时s中的第一个设计活动i;步骤5:设定活动块i={i},找到活动块i={i}在当前活动执行顺序s0中对应的位置,将活动块i={i}与每一个设计活动j进行计算,分别得到活动i在活动j的独立完成时间的变化量αji;其中,如果αji>0,那么则将活动块i插入到活动j的前面,此时t0=t-αji;如果所有αji≤0,那么则将序列s0中活动块i的后一个活动k加入到活动块i中,即i=i+{k},随后将更新的i与所有可能的设计活动进行计算,直至活动块i不存在后续活动;步骤6:选取初始活动执行顺序s中的下一个活动,重复步骤5的操作,直到初始活动执行顺序s中的最后一个活动被选取;步骤7:更新初始执行顺序s=s0,总时间变化量δt=t-t0,总时间t=t0。9.根据权利要求8所述的基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,步骤2中,将活动i对应的位置与每一个设计活动j计算,分别得到独立完成时间的变化量αij的具体过程如下:对于一个由n个活动构成的复杂产品开发项目,选取其中的两个设计活动i、j;将活动j插入到活动i之前;如果在当前状态,活动i在活动j之前执行,即活动执行顺序为{1,2,...,i,...,j,...,n},那么定义:如果当前状态的活动i在活动j之后执行,即活动执行顺序为{1,2,...,j,...,i,...,n},那么定义:αij=α′ij-α″ij其中,α′ij、α″ij分别为在保持其他活动相对位置不变情况下,活动i、j在当前位置、将活动j插入活动i前时,两个活动的独立完成时间;αij为活动i和活动j执行插入操作的独立完成时间变化量。10.根据权利要求8所述的基于设计结构矩阵的复杂产品开发时间预测及优化方法,其特征在于,步骤5中,将活动块i与每一个设计活动j进行计算,分别得到活动块i和活动j的独立完成时间的变化量αji的具体过程如下:定义活动块i={i,i+1,...,k},将活动块i插入到活动j之前;如果当前状态下活动j在活动块i之前执行,那么定义:活动块j={j,j+1,...,i-1},αji=α′ji-α″ji如果当前状态下活动j在活动块i之后执行,那么定义:活动块k={k+1,...,j-1},αji=α′ji-α″ji式中,α'ji、α″ji分别为在保持其他活动相对位置不变情况下,活动j、i在当前位置、将活动块i插入活动j前时的独立完成时间,αji为活动j和活动块i执行插入操作的独立完成时间变化量。与现有技术相比,本发明具有的有益效果:本发明以复杂产品开发项目为研究对象,以预测并降低产品开发时间为直接目标,对产品开发项目对应的设计结构矩阵(dsm)进行分析建模,识别产品开发项目中的一阶返工和二阶返工,并通过优化算法得到其涉及的所有设计活动的最优执行顺序,最终实现产品开发项目的总返工时间最小,从而达到降低产品开发总时间,减少产品开发总成本,提高产品开发成功率的最终目的。本发明建立了具有现实管理意义的目标函数。目标函数即为预测的产品开发项目总时间,通过对产品开发项目总时间的合理预测和分析,项目经理可以据此安排耦合设计活动的执行顺序,进行开发资源和设计人员的分配、开发预算的估计以及赶工安排等各种事项,对现实的开发工作更具指导意义。进一步的,本发明对产品开发项目中复杂的信息流动进行了充分挖掘。现有的算法主要针对产品开发中的反馈信息进行优化,认为反馈信息是设计活动返工的主要来源。本发明通过马尔科夫链模拟开发过程,认定前馈信息同样是导致设计活动返工的重要原因,将前馈信息纳入优化过程,因此大大提高了优化结果的准确性,增加了优化结果的说服力。进一步的,本发明对产品开发项目中存在的高阶返工进行了充分研究。现有的算法大多针对一阶返工,对高阶返工缺少定量的研究。本发明通过马尔科夫链模拟开发过程,深入分析了产品开发过程中的高阶返工,定量考虑了一阶和二阶返工对产品开发时间的影响,增加了结果的准确性和说服力。进一步的,本发明深入考虑了产品开发过程的动态性。产品开发过程是螺旋上升的动态过程,随着设计活动逐渐完善、设计人员逐渐成熟,出现三阶甚至更高阶返工的可能性会远远小于使用不变参数计算出的结果。这一方法对产品开发过程进行了合理简化,只考虑一阶和二阶返工的情况,更加贴近现实情况,同时也大大降低了问题的复杂性和计算的困难程度。进一步的,本发明针对产品开发项目的不同规模、不同需求提出了相应的算法。本方法中提出的三种算法都有其适合的应用场景,使用者可以根据具体问题选择最适合的算法进行优化求解:精确算法适用于求解中小规模的dsm矩阵(设计活动数不大于15个),或者在时间、设备允许的情况下求解较大规模的dsm矩阵,其优点是可以找到全局最优解,确保得到的解是最优的。启发式算法适用于求解大规模复杂的dsm矩阵,并取得较好的优化结果,不同的是相比之下基于活动插入的启发式算法优化程度较高,基于活动交换的启发式算法求解速度更快。附图说明图1为某电动汽车开发项目的dsm矩阵。图2为n个设计活动组成的dsm矩阵。图3为三个设计活动组成的dsm矩阵。图4为图3对应的马尔可夫链。图5为活动块i的定义。图6为平衡机产品开发项目的初始dsm矩阵。图7为优化后的平衡机产品开发项目的dsm矩阵。具体实施方式下面结合附图对本发明进行详细说明。基于设计结构矩阵的复杂产品开发时间预测及优化方法,包括以下步骤:1.构建优化目标函数(产品开发项目的总时间):首先,对于一个由n个平均完成时间已知、信息依赖关系已知的设计活动构成的复杂产品开发过程,其所有设计活动组成设计活动集n。设计活动之间具有相当复杂的信息依赖关系,如果得到的信息不完全或得到的信息发生改变,则会有一定的可能性出现返工,根据设计活动集n可以构建出任何产品开发项目所对应的dsm矩阵,如图2所示。其中,dsm矩阵中对角线元素di表示活动i的平均完成时间,即活动i得到了所有的输入信息并独立执行时所需要的时间;非对角线元素aij表示活动i对活动j的信息依赖程度,即由于缺少活动j的输入信息导致活动i返工的可能性,取值范围为[0,1]。其次,现实中产品开发项目的活动执行过程往往是顺序迭代的,即一次只执行一个设计活动,不存在多个设计活动的并行,当同时引起多个活动的返工时,所有返工活动也是依次进行的,因此产品开发项目的总执行时间也就是所有活动首次执行时间和返工迭代时间的和。接下来,引入马尔可夫链对产品开发过程中的返工进行直观简洁的描述。按照n个设计活动的首次开始时间进行划分,将整个产品开发过程分为n个阶段。每一个设计阶段一旦完成就不会再返回这个设计阶段,虽然这个设计阶段中的设计活动可能会再次返工。每一个设计阶段所包含的节点(设计活动)数等于此时所有已完成的设计活动数,即n个设计阶段共有个节点。设计阶段之间、设计阶段内的设计活动之间的转换概率由dsm矩阵中的数据决定。以图3为例的3个设计活动组成的dsm矩阵,构成的马尔可夫链如图4所示。对于大多数产品开发项目来说,返工迭代是影响产品开发周期和资源消耗的一个关键因素。但是大部分的活动返工一般都不会超过二阶,一方面这是因为高阶返工的概率本身就比较小,如表1所示,对于图3描述的3x3dsm矩阵,使用一阶、二阶返工就能够解释这个矩阵中89.775%的情况。对于实际应用中产品开发项目的dsm矩阵,大部分都是稀疏矩阵,一阶、二阶返工也足以解释项目中大部分的情况。另一方面,考虑到产品开发过程中设计活动逐渐完善、设计人员逐渐成熟的情况,产品开发项目出现三阶甚至更高阶返工的可能性会比通过dsm矩阵计算得到的数值更小。表1一阶、二阶返工的总概率因此,考虑对产品开发过程的描述进行合理简化,使之更贴近现实的产品开发项目:当返工迭代进行到了二阶,则在二阶返工执行结束后,强制将其输出至马尔科夫链的下一个阶段,即假定产品开发项目的二阶返工就足以完善设计活动,不需要进行后续返工。由此可以对产品开发项目的执行时间进行预测,并构建能够有效预测产品开发时间的优化目标函数,具体过程如下:对于图2所示的n个设计活动组成的复杂产品开发项目,如果初始执行序列是{1,2,...,n},并对应地构建包括n个阶段的马尔科夫链。那么对于第k(1≤k≤n)阶段,无论返工情况如何,第一个要完成的活动都是设计活动k,因而第k阶段的第一个设计活动的期望执行时间为:dk×1其中,dk表示活动k的平均完成时间;如果设计活动k引起了设计活动i(1≤i<k)的一阶返工,那么设计活动i一阶返工的期望执行时间为:aik×di其中,aik表示活动i对活动k的信息依赖程度,di表示活动i的平均完成时间;那么第k阶段所有设计活动一阶返工的期望执行时间为:如果设计活动k在引起了设计活动i的一阶返工后,设计活动i又导致了设计活动j(1≤j≤k,j≠i)的二阶返工,那么设计活动j二阶返工的期望执行时间为:aik×aji×dj其中,aik表示活动i对活动k的信息依赖程度;aji表示活动j对活动i的信息依赖程度;dj表示活动j的平均完成时间;那么第k阶段所有设计活动二阶返工的期望执行时间为:第k阶段的总时间tk为:因此,对于n个设计活动组成的产品开发项目,其产品开发项目总时间t为:同理,当设计活动的执行序列发生改变时,对于任意活动执行序列,产品开发项目总时间t变为:其中,zik、zjk分别表示活动i和活动k、活动j和活动k的相对位置;当活动i在活动k前完成时zik=1,否则取0;当活动j在活动k前完成时zjk=1,否则取0。上式就是优化目标函数,即产品开发项目总时间。2.采用适用于求解中小规模dsm矩阵(设计活动数不大于15个)的精确算法,求解设计活动数不大于15个的中小规模dsm矩阵的具体过程如下:以图2所示的n个设计活动组成的dsm矩阵为例,其活动执行序列为{1,2,...,n},使用将所有活动分块处理的思想,以参数p(1≤p≤n)为界,将活动执行序列分为ap、bp两个子序列,分别为:ap={1,2,...,p}bp={p+1,p+2,...,n}因为接下来,要对子序列ap和子序列bp进行分别优化。为了保证求解过程中,一个子序列的变化不会影响到另一个子序列的求解,根据优化目标函数,做出如下定义:其中,tap、tbp分别为子序列ap、子序列bp的独立完成时间,因为它们的取值不受子序列外其他活动排序的影响。此时,产品开发项目总时间t等于设计活动的平均完成时间之和与独立完成时间tap、tbp的和。即:其中,各个活动的期望执行时间与活动的执行顺序无关,是一个定值,因此并不会影响两个部分子序列ap和子序列bp的优化结果。当子序列ap前进运动变为ap+1,或子序列bp后退运动变为bp-1时,子序列ap的独立完成时间tap与子序列bp的独立完成时间tbp的变化为:对于子序列ap和子序列bp两个部分的活动执行序列,都有其固定的索引值定义如下:那么对完整的设计活动序列,不管顺序如何,其索引值都是一个定值indexdsm:采用求解中小规模dsm矩阵的精确算法求解中小规模dsm矩阵的具体步骤如下:步骤0:存在一个由n个设计活动组成的产品开发项目,其dsm矩阵已构建好;同时参数p由项目管理者确定。将dsm矩阵分为独立的前进、后退两个部分,并分别对每个部分进行优化,具体如下:前进运动部分优化的具体过程如下:步骤1:找出所有可能的子序列a2序列,并计算ta2以及对应地索引值。步骤2:对子序列a2进行序列匹配,并保留相同索引值中ta2最小的序列。步骤3:假设参数t=2:1:(p-1),执行下列操作,直到循环结束后得到前进部分优化的结果ap:步骤3.1:在子序列at的基础上,前进一步变为子序列at+1,并计算tat+1以及对应地索引值。步骤3.2:对于子序列at+1中的每一个序列,都找到与其具有相同索引值的序列,比较他们的独立完成时间tat+1,并保留具有最小tat+1值的序列。后退运动部分优化的具体过程如下:步骤1:找出所有可能的bn-2子序列,并计算独立完成时间tbn-2以及对应地索引值。步骤2:对bn-2进行序列匹配,并保留相同索引值中tbn-2最小的序列。步骤3:假设参数t=(n-2):-1:(p+1),执行下列操作,直到循环结束后得到后退部分优化的结果bp:步骤3.1:在子序列bt的基础上,前进一步变为bt-1,并计算独立完成时间tbi-1以及对应地索引值。步骤3.2:对于bt-1中的每一个序列,都找到与其具有相同索引值的序列,比较他们的tbt-1值,并保留具有最小tbt-1值的序列。步骤4:将前进部分优化的结果ap和后退部分优化的结果bp进行匹配,使得它们的索引值满足从而得到备选的完整最优序列集合,并计算总时间为ap的索引值,为bp的索引值。步骤5:从备选的完整最优序列集合中选择具有最小总时间t值的序列为最优活动序列。3.采用适用于求解大规模dsm矩阵(设计活动数大于15个)的启发式算法,求解大规模dsm矩阵,具体包括采用基于活动交换的启发式算法或采用基于活动插入的启发式算法求解大规模dsm矩阵。3.1.采用活动交换的启发式算法求解大规模dsm矩阵定理一:存在一个由n个设计活动组成的产品开发项目,如图2所示,其初始活动执行顺序为{1,2,...,i,...,j,...,n}。定义:其中,βij、βji分别为在保持其他活动相对位置不变情况下,活动i在活动j前执行、活动j在活动i前执行时,两个活动的独立完成时间。那么,为变换活动i、j位置时独立完成时间的变化量。如果独立完成时间变化量那么通过交换设计活动i和设计活动j的位置,可以使整个项目的产品开发项目总时间降低此时活动执行顺序为{1,2,...,i-1,j,...,j-1,i,...,n}。定理二:在初始活动执行顺序中,定义从设计活动i到设计活动h为一个活动块i={i,...,h}(如图5所示)。同理,定义从设计活动h+1到设计活动j-1为一个活动块h={h+1,...,j-1}。定义:其中,βij为在保持其他活动相对位置不变情况下,活动块i在活动j前执行时,两者的独立完成时间。βji为在保持其他活动相对位置不变情况下,活动j在活动块i前执行时,两者的独立完成时间。那么,为变换活动块i、活动j位置时独立完成时间的变化量。如果独立完成时间变化量那么通过交换活动块i和设计活动j的位置,可以使整个项目的产品开发项目总时间降低此时活动执行顺序为{1,2,...,i-1,j,h+1...,j-1,i,...,h,j+1...,n}。基于活动交换的启发式算法的具体步骤如下:步骤0:假设某复杂产品开发项目的初始活动执行顺序为s,并根据优化目标函数计算出其对应地产品开发项目总时间t。并初始化当前活动执行顺序s0=s,对应地产品开发项目总时间t0=t,总时间变化量δt=1。当总时间变化量δt>0时,进行以下操作:步骤1:选取初始活动执行顺序s的第一个设计活动i。步骤2:对于当前活动执行顺序s0,找出活动i对应的位置,使用定理一,将其与后续位置的每一个设计活动j计算得到独立完成时间变化量如果那么则交换s0中活动i和活动j的顺序,此时当前产品开发项目总时间步骤3:选取初始活动执行顺序s中的下一个活动,重复步骤2的操作,直到初始活动执行顺序s中的最后一个活动被选取。从而得到改进后的当前活动执行顺序s0。步骤4:设定初始执行顺序s=s0,选取此时初始执行顺序s中的第一个活动i。步骤5:设定活动块i={i},找到其在当前活动执行顺序s0中对应的位置,使用定理二,将其与后续位置的每一个设计活动j计算得到独立完成时间变化量如果那么则交换当前活动执行顺序s0中活动块i和活动j的顺序,此时总时间如果所有那么则将序列s0中活动块i的后一个活动k加入到活动块i中,即i=i+{k},随后将更新的i与后续活动进行计算,直至活动块i不存在后续活动。步骤6:选取初始执行顺序s中的下一个活动,重复步骤5的操作,直到s中的最后一个活动被选取。步骤7:更新初始执行顺序s=s0,总时间变化量δt=t-t0,总时间t=t0。3.2.基于活动插入的启发式算法定理一:对于一个由n个活动构成的复杂产品开发项目,如图2所示,选取其中的两个设计活动i、j。现在考虑将活动j插入到活动i之前。如果在当前状态,活动i在活动j之前执行,即活动执行顺序为{1,2,...,i,...,j,...,n},那么定义:αij=α′ij-α″ij如果当前状态的活动j在活动i之前执行,即活动执行顺序为{1,2,...,j,...,i,...,n},那么定义:αij=α′ij-α″ij其中,αi'j、α″ij分别为在保持其他活动相对位置不变情况下,活动i、j在当前位置、将活动j插入活动i前时,两个活动的独立完成时间,αij为执行插入操作后独立完成时间的变化量。如果αij>0,那么通过将设计活动j插到设计活动i的前面,即活动执行顺序变为{1,2,...,j,i,...,n},可以使得项目的产品开发项目总时间降低αij。定理二:接下来引入活动块概念,定义活动块i={i,i+1,...,k},将活动块i插入到活动j之前。如果当前状态下活动j在活动块i之前执行,那么定义:活动块j={j,j+1,...,i-1},αji=α′ji-α″ji如果当前状态下活动j在活动块i之后执行,那么定义:活动块k={k+1,...,j-1},αji=α′ji-α″ji式中,α'ji、α″ji分别为在保持其他活动相对位置不变情况下,活动j、i在当前位置、将活动块i插入活动j前时的独立完成时间,αji为活动j和活动块i执行插入操作的独立完成时间变化量。如果αji>0,那么通过将活动块i插入到活动j之前,即活动执行顺序变为{1,2,...,i,i+1,...,k,j,...,n},项目的产品开发项目总时间降低了αji。采用活动插入的启发式算法算法,求解大规模dsm矩阵的具体步骤如下:步骤0:假设项目的初始执行顺序为s,并计算出其对应地产品开发项目总时间间t。并初始化当前活动执行顺序s0=s,对应地产品开发项目总时间t0=t,总时间变化量δt=1。当总时间变化量δt>0时,进行以下操作:步骤1:选取初始执行顺序s中的第一个设计活动i。步骤2:对于当前活动执行顺序s0,找出机动活动i对应的位置,使用定理一,将其与每一个设计活动j(j≠i)计算得到αij。如果独立完成时间的变化量αij>0,那么则将活动i插入到活动j的前面,此时当前产品开发项目总时间t0=t-αij。步骤3:选取初始活动执行顺序s中的下一个活动,重复步骤2的操作,直到s中的最后一个活动被选取。从而得到改进后的当前活动执行顺序s0。步骤4:设定初始活动执行顺序s=s0,同时选取此时初始活动执行顺序s中的第一个活动i。步骤5:设定活动块i={i},找到其在当前活动执行顺序s0中对应的位置,使用定理二,将其与每一个设计活动计算得到αji。如果αji>0,那么则将活动块i插入到活动j的前面,此时t0=t-αji;如果所有αji≤0,那么则将序列s0中活动块i的后一个活动k加入到活动块i中,即i=i+{k},随后将更新的i与所有可能的设计活动进行计算,直至活动块i不存在后续活动。步骤6:将初始活动执行顺序s中的下一个活动设为机动活动,重复步骤5的操作,直到s中的最后一个活动被设定为机动活动。即选取初始活动执行顺序s中的下一个活动,重复步骤5的操作,直到s中的最后一个活动被选取;步骤7:更新初始执行顺序s=s0,总时间变化量δt=t-t0,总时间t=t0。下面为一个实施例。以图1某电动汽车开发项目(n=8)为例,并设定参数p=4。首先,通过精确算法将dsm矩阵分为独立的前进、后退两个部分,这两个部分可以分别进行优化而不会相互影响。在前进部分优化中,第一步是要生成所有可能的子序列a2,包括{1,2}、{1,3}、...、{8,7}等56个序列分别计算每一个序列的独立完成时间ta2及索引值。然后第二步进行序列匹配,保留具有相同索引值序列中ta2值最小的一个序列,最终保留{2,1}、{1,3}、...、{7,8}等28个序列接下来在第三步,按照前两步的方法,前进部分继续不断地搜寻。并进行以下步骤:步骤3.1将所有可能的活动添加到at(2≤t≤3)的末尾,生成子序列at+1(2≤t≤3),并计算每一个序列的tat+1值及索引值。在这一步,a3会生成168个序列,a4会生成280个序列。一般来说,对于每一个at,其生成的序列总数为步骤3.2将步骤3.1生成的所有序列按照索引值聚类,只保留其中tat+1最小的序列。在这一步,a3会保留56个序列,a4会保留70个序列。一般来说,在这一步每一个at会保留个序列。类似地,后退部分的优化过程也和前进过程的类似。第一步生成了所有可能的b6序列。第二步进行序列匹配,保留具有相同索引值序列中tb6值最小的一个序列。接下来在第三步,后退部分继续不断地搜寻。并进行以下步骤:步骤3.1,将所有可能的活动添加到bt(5≤t≤6)的开头,生成bt-1(5≤t≤6),并计算每一个序列的tbt-1值及索引值。步骤3.2,将步骤3.1生成的所有序列按照索引值聚类,只保留其中tbt-1最小的序列。在两个部分的优化都完成后,得到了序列集a4和b4,随后就需要进行第二次序列匹配。能够组成完整活动序列的两个子序列,必须满足计算完整序列的产品开发项目总时间最后从完整序列集中找到产品开发项目总时间t值最小的序列就是最优的设计活动序列。表2展示了使用多种优化方法得到的求解结果对比,可以看出前三种方法得到的优化值不具有实际管理意义,同时与马尔科夫链模拟的结果相差较大,准确性和说服力都有较大局限;本发明提出的优化方法得到的优化结果较准确的预测了该产品开发项目的期望执行时间,且与马尔科夫链模拟的结果相似度最高,这也验证了本方法具有很高的准确性,同时本发明以算法的形式对产品开发项目进行优化和求解,相比马尔科夫链模拟具有更高的现实应用价值。从得到的优化结果来看,电动汽车开发项目的初始执行时间为28.94天,优化后的执行时间为25.59天。综合来讲,本发明提出的方法具有较高的有效性和应用价值。表2多种方法对某电动汽车开发项目的优化结果对比接下来验证精确算法的计算效率。测试了由10、11、12、13、14、15个设计活动组成的产品开发项目对应的dsm矩阵,每个活动的执行时间从[1,10]中随机生成,活动之间的信息依赖关系从[0,1]中随机生成。同时用de表示矩阵密度,de的数值等于dsm矩阵中非零的信息依赖(aij≠0)个数s,除以dsm矩阵中所有信息依赖个数(n(n-1)),取值包括0.1、0.2、0.3、0.4、0.5。对于给定活动总数n和矩阵密度de的dsm矩阵,都随机生成10个案例并求解,同时记录下它们的平均求解时间,如下表2所示:表3精确算法的平均求解时间从表3可以看出,精确算法在求解中小规模产品开发项目对应的dsm矩阵上具有较好的效果,可以在较短时间内得到全局最优解。对启发式算法的验证如下:两种启发式算法在求解大规模复杂产品开发项目对应的dsm矩阵问题上都具有较高的效率,能够在较短时间内找到优化程度较高的解。测试了10、15、20、25、30个活动组成的dsm矩阵。每个活动的执行时间从[1,10]中随机生成,活动之间的信息依赖关系从[0,1]中随机生成。同时用de表示矩阵密度,取值包括0.1、0.2、0.3、0.4、0.5。同时令t0为某复杂产品开发项目的初始总时间,tr为优化后的产品开发项目总时间,pr=100(t0-tr)/t0衡量了算法对产品开发项目的优化程度。随后给定活动总数n和矩阵密度de,随机生成10个复杂产品开发项目案例对应的dsm矩阵并求解,同时记录下它们的平均求解时间和平均优化程度,如表4所示。表4启发式算法的平均优化程度和求解时间从表3可以看出,对于大规模复杂的dsm矩阵,两种启发式算法都可以在较短时间内,通过对设计活动执行序列的优化显著降低产品开发项目的总执行时间,优化程度在35%以上,从而产生显著的经济效益。两种算法中,基于活动交换的算法可以降低求解时间,基于活动插入的算法可以提高优化程度。接下来,给出一家跨国公司子公司的平衡机产品开发实施例,这家公司生产的各种型号的平衡诊断机,在海内外均享有盛誉。公司的客户涵盖了几乎所有的主流汽车制造商,包括通用汽车、福特、大众等。这里选择其中一款平衡诊断机的开发过程进行优化分析。这一开发项目包括31个耦合设计活动,如表5所示。构成的dsm矩阵如图6所示。表5组成平衡机产品开发项目的设计活动针对初始dsm矩阵,计算得到:如果不存在返工的情况,所有设计活动只需要123天即可完成,但是在存在一阶和二阶返工的情况下,所有设计活动的总期望执行时间达到了244.15天,也就是说,返工时间占到了平衡机产品开发项目总时间的49.6%。这也进一步说明了通过优化设计活动执行顺序降低返工时间对复杂产品开发项目获得成功的必要性。接下来,应用两种启发式算法算法对初始dsm矩阵进行求解和优化。优化结果如表6所示。表6平衡机开发项目的优化结果算法优化结果(天)优化程度求解时间(s)活动交换153.537.12%276.09活动插入152.8837.38%569.98从表5可以看出,两种启发式算法都在较短的时间内得到了优化结果,且优化程度都在37%以上,其中基于活动交换的启发式算法优化程度较低,但是求解时间较短;基于活动插入的启发式算法优化程度较高,但是耗费的求解时间较长。因此,两种启发式算法分别具备不同的应用环境。以基于活动插入的启发式算法求解结果为例,求解结果如图7所示,优化后产品开发项目总时间降低至152.88天,其中返工时间仅占总时间的19.5%,返工对项目的影响程度大大降低。使用求解后得到的设计活动执行顺序,有利于缩短平衡机产品项目的开发周期,降低开发成本,提高该项目的研发成功率。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1