当前位置:文档之家› 学号+姓名-(3)

学号+姓名-(3)

学号+姓名-(3)
河南工程学院《软件综合运用》课程设计题目:智能优化算法
姓名:王朋成
学号:201411003116
学院:理学院
专业班级:数学与应用数学1441班
专业课程:软件综合运用设计
指导教师:刘凯
2017年9月8日
目录
课题1.最小化加权总完工时间和问题的计算 (1)
1.1.设计目的 (1)
1.2.问题介绍 (1)
1.3.最优算法 (2)
1.4.算法原理 (2)
1.5.程序代码 (2)
1.6.运行结果 (4)
课题2:最小化最大延误时间问题的计算 (6)
2.1.设计目的 (6)
2.2.问题介绍 (6)
2.3.最优算法 (6)
2.4.算法原理 (7)
2.5.程序代码 (7)
2.6.运行结果 (9)
心得体会 (12)
实验1.最小化加权总完工时间和问题的计算
1.1.设计目的
通过课程设计,熟练掌握最小化加权完工时间和问题的算法思想、程序设计及结果输出。

对MATLAB 、JAVA 等编程语言与编程环境进行复习和强化,最后进行最优排序和目标函数的输出。

本次设计本质上就是寻求一个组合最优化问题的最优解。

并通过本次的课程设计熟练掌握WSPT 算法的基本思想,以此解决实际问题。

1.2.问题介绍
问题描述:
本次试验所计算问题为1j j
w c ∑,该问题即为:有n 个工件
)
,...1(j n j T =,工件j
T 的加工时间为j
P ,权重为j
W ,工件
j
T 在机器上的完工时间为j
C 。

本问题即确定工件
集),...1(j
n j T =在机器上的加工顺序或加工位置,使得目标函数∑j
j c w 达到最小。

问题背景:
考虑排序问题1||∑,其中n=5 P=(12,4,7,11,6),w=(4,2,5,5,6) 由wspt 规则,可得最优排序为[],加权总完工时间为∑=435
1.3.最优算法
排列 c= (c ( 1) ,c ( 2) ,… ,c (n) ) 是问题 1 ∑ wjCj 的最优排列的充分必要条件是 WSPT 规则成立 ,即成立 ( 1)/ ( 1) ≤ ( 2)/ ( 2) ≤… ≤ (n) / (n) .
1.4.算法原理
排序问题是一类重要的组合优化问题,现在已经成为运筹学研究的一个非常活跃的分支。

单机排序问题的一个重要目标函数式加权评论流时间。

由于极小化加权平均流时间等价于极小化加权完工总时间,因此下面仅以加权总完工时间为目标函数讨论问题。

首先讨论问题 1/p j j
w
其中
j
c 是任务
j
T 的完工时间,
j
w 是赋予任务
j
T 的权,它表示
j
T 的重要程度。

对于该问题,应用加权最短加工时间有限规则可以得到最优排序。

按照这一规则,任务按
/p j j
w 非增的顺序进行排序。

对于
j
w 相等的特殊情况,加权最短加
工时间优先规则化为加工时间优先规则。

1.5.程序代码
function wsptt(P,W,n) %此函数可得出WSPT 规则的排序和加权总完工时间
for i=1:n
T(i)=P(i)/W(i); I(i)=i; end i=n
while i>=2 %使用起泡法对上记数组排序
flag=0; %此变量作为进行元素交换的标志,当无元素交换时,排序结

j=2
while j<=i
if T(j-1)>T(j)
temp=T(j);
T(j)=T(j-1);
T(j-1)=temp;
tempi=I(j);
I(j)=I(j-1);
I(j-1)=tempi;
flag=1; %元素交换,令flag为1 end
j=j+1;
end
if flag==0 break
end
i=i-1;
end
total=0; %此处开始计算加权总完工时间
C(1)=P(I(1));
for i=2:n
C(i)=C(i-1)+P(I(i));
end
for i=1:n
total=total+W(I(i))*C(i);
end
I
T
Total
1.6.运行结果
图1-1
图1-2
实验2:最小化最大延误时间问题的计算
2.1.设计目的
通过课程设计,熟练掌握最小化最大延误问题的算法思想、程序设计及结果输出。

对MATLAB 、JAVA 等编程语言与编程环境进行复习和强化,最后进行最优排序和目标函数的输出。

本次设计本质上就是寻求一个组合最优化问题的最优解。

并通过本次的课程设计熟练掌握EDD 算法的基本思想,以此解决实际问题。

2.2.问题介绍
问题描述: 本次实验所计算的问题为max 1L ,该问题即为:有n 个工件),...,1(j n j T =,工件j T 的加工时间为j P ,工期为j d ,在机器上的完工时间为j C 。

工件j T 的误工时间为j j d -c =j L ,最大误工时间为{}j max max L L =。

本问题即确定),...,1(j n j T =在机器上的加工顺序或加工位置,使得m ax L 达到最小。

考虑排序问题1||,其中n=6
p (3,1,4,1,3,2),d=(2,10,6,4,11,12)
由EDD 规则可以求得最优排序为[],最大延误为
2.3.最优算法
edd 算法,是earlest due date rule 的中文简称.其实,就是派对策略的一种.
排队策略有两种,一种是先到先服务(first come first service,FCFS ),二是
优先级队头服务(head of line, HOL).前者可以充分体现公平性,即谁先到达,谁就先接受服务;后者是考虑前者并不一定会达到总体最优,采取的策略,属于绝对优先策略.
简言之,就是谁的交货期最接近(或者说最短),谁就先接受服务.
2.4.算法原理
任务没有准备时间的最大延误的排序问题1||
比较简单,只需将任务按最早工期优先(简记EDD),就可以得到最优排序。

按照这一规则的排序,均可转化为满足EDD规则的排序而目标函数不增。

2.5.程序代码
function edd(p,d,n)
for i=1:n
T(i)=d(i);
I(i)=i;
end
i=n
while i>=2 %使用起泡法对上记数组排序
flag=0; %此变量作为进行元素交换的标志,当无元素交换时,排序结束
j=2
while j<=i
if T(j-1)>T(j)
temp=T(j);
T(j)=T(j-1);
T(j-1)=temp;
tempi=I(j);
I(j)=I(j-1);
I(j-1)=tempi;
flag=1; %元素交换,令flag为1 end
j=j+1;
end
if flag==0 break
end
i=i-1;
end
te(1)=p(I(1)); %此处开始求L
for i=2:n
te(i)=te(i-1)+p(I(i));
end
for i=1:n
L(i)=te(i)-T(i);
end
Lmax=L(1); %此处开始通过比较得出Lmax
for i=2:n
if L(i)>Lmax
Lmax=L(i);
end
end
I
T
Lmax
2.6.运行结果
图2-1
图2-2
图2-3
心得体会
经过了近一周的上机实训课程,我对软件综合运用设计这门课程有了进一步的了解。

此次实训最大的收获不是我学习到了多少知识而是这几天实训给我的感悟:首先是心态,必须要有一个用心的心态,独立解决问题的意识,培养扎实基础的认识。

透过这次的实训,我了解到,要真真正正的掌握计算机程序还不是一件简单容易的事儿,但真正掌握后,它带给我们的将是无穷的便捷与科技。

我认为,在这次的实训中,不仅仅培养了独立思考、动手操作的潜力,在各种其它潜力上也都有了提高。

我们两人一组,合理分工,提高了我们的团结合作的能力。

更重要的是,在实验课上,我们学会了很多学习的方法。

而这是日后最实用的,真的是受益匪浅。

要应对社会的挑战,只有不断的学习、实践,再学习、再实践。

这对于我们的将来也有很大的帮忙。

最后,感谢学校为我们提供这次学习以及动手实践的机会,同时感谢老师对我们的大力支持和帮助,在今后的学习中,我一定会更加吃苦耐劳,继续努力。

相关主题