论文手工艺品制作方案Word文档格式.docx
- 文档编号:13301139
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:17
- 大小:92.71KB
论文手工艺品制作方案Word文档格式.docx
《论文手工艺品制作方案Word文档格式.docx》由会员分享,可在线阅读,更多相关《论文手工艺品制作方案Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
10
11
12
13
14
工件
18
24
17
26
20
16
15
19
21
22
23
25
27
此方案完成该种手工艺品制作的时间最短为:
3.0
(2)情形B:
工艺品共有27个部件,由28人合作下共同制作完成,每个人加工每个部件的时间不相同,每个人在同一时刻最多只能加工一个部件,我们使用遗传算法,在二代以内就可以求得最佳制作方案:
23.0
(3)情形C:
工艺品共有42个部件,由28人合作下共同制作完成,每个人加工每个部件的时间不相同,每个人在同一时刻最多能加工部件数不相同(大于等于1),我们使用遗传算法,在同时可以在最少在六代就求得最佳制作方案:
41
34
40
37
28
38
33
31
29
35
30
32
36
39
42
29.6
关键字
遗传算法、基因交换、基因突变、多人多部件合作生产、手工艺制品
符号说明
:
表示第m个人
表示要制作第n个部件
表示制作部件
所需的时间
表示
可以在同一时刻可以制作部件的最大数目
问题重述
手工艺品由多个部件组成,每个部件并且必需由会做该部件的两个人合作才能制作。
每个人会做多个部件。
可以使用图表示这种关系,其中
为顶点,
为边。
边所连接的两个顶点表示会做该部件的两个人,每个人可能可以同时制作多个部件(不影响
)。
对于情形A:
手工艺品有27个部件,28人制作,且对所有的x,y满足
=1,
=1
由于每个部件只能且仅能由某二个制作,因此它是一个无回路的图。
对于情形B:
与情形A相拟,只是每个部件加工的时间不一样。
也是一个无回路图。
对于情形C:
于由不同的人可以加工同一个工件,因此是一个有回路图,同时每个部件加工的时间也不同。
模型假设
(1)假设每个部件的制作都是独立的,即任一个部件的制作都不依赖于另一个部件。
(2)每个人可以同时制作多个部件,且不影响制作部件的时间。
(3)每个部件的制作都是连续的,即不存在正在制作的部件还没完工就停止制作。
实际的制作时间即题目所给的制作部件
(4)部件能够开始制作的条件是:
能够制作该部件的两个个人此时正在制作的部件数小于他们可以同时制作的部件数。
(5)任何一个部件都不重复制作,每一个部件具有同等的重要性。
模型分析
由于情形A,B是C的一种特殊情况,因此,只要解决了情形C,则情形A,B也就解决了。
因此,我们以下主要针对情况C进行解决。
我们对于部件进行编顺序,然后按照此顺序,计算按此顺序加工完所有的部件所要的时间。
计算时间时,我们先求出按顺序判断可不可以加工,如果可以加工则让其立即加工,如果不可加工,则转向第二阶段再加工(事实上没有严格的阶段,这里说的阶段指的是对于每个人的意义上来说的)。
同时,记录相对应的工人要在什么时刻才能完成他分配的部件,并从顺序中删除该部件。
当第一次分配完后,再令所有人都没有工作,并按照剩下的顺序一个一个判断是否,其体计算如下:
1、对所有工件进行编序,如(3,2,1表示第三个工件排第一,第二个排第二,第一个排第三)
2、设一个数组标记工人正在加工的工件数的情况(一维数组,下标与工人数相同),设立一个数组标记当前工人加工完当前的所有工件的时间(一维数组,大小与工人数相同),设立一个数组标记工人在每阶段的完工时间(二维数组,第一维表示阶段数,大小与边数相同(才能保证不会越界),每二维表示工人号,大小与工人数相同),同时设立一个数组标记工人当前的阶段数(一维数组,大小与工人数相同)
3、将所有数组初始化为0
4、将标记工人正在加工的工件数的情况的数组全部改为0(即所有工人都有空)
5、按部件顺序判断部件是否能马上生产,如果可以生产,则修改该部件对应的两个工人的正工加工的工件数(即将其都加1,用于下一次判断某工件能不能加工)。
同时,修改该部件对应的两个工人当前工加工的时间。
(即找到工人从开始本阶段加工时始,还要多久才能加工完所分配的部件),然后再修改工人在什么时刻才能结束加工(即为两个工人在上一阶段完工时刻值比较大者再加上该部件要加工的时间),同时从顺序中删除该部件。
6、重复5步,直接所有未生产的部件都被判断过。
7、如果还有工件未被加工完,则转向4步。
8、找出所有工人中,完工的最大时刻值,即为该顺序对应的完工时间。
对于所有顺序,只要我们找到最小的时间则问题的最优解即为其对应的方案,如果使用完全搜索的话,那么第三问要有42!
次,这是不可能的。
我们使用遗传算法来代替求解。
模型建立
对多个人加工多个部件问题,将一个加工顺序看成是一个个体,将部件加工顺序中的某个位置的值(即顺序号)看成是这个个体的一个遗传密码因子,对于两个不加工作顺序中同一个位置的两个值(i,j)看成是一个基因,约定当对换基因(i,j)时,就必须将两个母亲中的值分别为i,j的位置对换过来,例如,如果要交换母体
的第一个基因(设另一个母体的第一个遗传密码为2,则此基因为(1,2)),则变换基因后会变成新个体为:
按照上面的交换基因的方法,我们对多个人个部件由多个人合作加工问题的遗传算法可以描述如下:
1、选择随机种群,即随机产生加工顺序。
2、对种群进行交换基因,交换基因方法:
(1)、从种群中随机选择A,B两个个体。
(2)、随机产生一个数,a大小为0到JOB-1,代表要交换的遗传密码子位置。
(3)、将A,B中
的基因看成是一对遗传密码子,对换此对基因如下:
将A中
位置改变为B中
位置的遗传密码子,同时,将B中
位置的遗传密码子改就为A中
位置的遗传密码子,然后将A中B位置而形成两个新个体。
如下图所示:
两个体:
对换一对基因方法:
对换一个基因后的两个新个体为:
(4)、产生一个随机数(0到10000),当此数的数什小于基因突变数(测试时使用TUBIAN=900,这样相当于新生个体的基因突变系数为900/10000=9%)则对个体
进行基因突变。
突变方法是,产生二个随机数,用来表示基因对,然后对
进行基因交换。
如对于个体
,若基因对为(3,6),则基因交换后的新个体为:
。
(5)、进行多个基因变换(测试时使用PCOU=4表示每个个体交换四个基因)则将新生的个体作为A和B,重复
(2)到(4)步多步即可。
(6)、将新产生的两个基因作为新生个体中的一个(测试时使用NEXT=1000表示新生个体的总数量)。
如果新生个体还没有取够,则转到
(1)继续,否则将进行新种群选择。
3、选择新种群:
对新生个体求出对应的加工的时间,对此时间按从小到大排序。
在新种群中,按一定比例(本文结果使用70%,但程序中数值可以修改)从排序后的个体中选择前面个体。
然后从未被选中的个体随机抽取出其它。
4、将新种群中的最好的个体与当前保留最优个体相比较,如果新种群中的最优个体都没有当前保留的最优个体中的最差个体好,则标记没有找到更优个体的值加1。
否则将将标记没有找到更优个体的值变为0,并进行下一次遗传,产生新个体。
5、当标记没有找到更优个体的数值达到一定数量后(测试时使用STCOU=20表示),则我们认为当前保留的个体中最优的个体就是我们的加工顺序的选择。
模型求解
我们编出程序(见附件《程序源代码.txt》)
对于情形A,设置参数如下:
doubletim[]={//
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
};
intpeo_cou[PEOPLE]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
//求解1,2问时可以解
PCOU=8//交换基因数
JOB=COU=27//部件数
SE=100//种子数
NEXT=1000//后代个数
FVLU=1//保存最优值个数
STCOU=1//停止条件
FINDCOU=10//运行次数
TUBIAN=9000//万分之一为单位,基因突变系数
PEOPLE=28//工人数
运行后的结果见附件《遗传算法结果1.txt》
从结果中可以发现,我们都是在2个后代内找到相同的值3.0
其中一个加工顺序为:
开始
0.0
0.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 论文 手工艺品 制作 方案