您好,欢迎来到九壹网。
搜索
您的当前位置:首页油库人员优化问题

油库人员优化问题

来源:九壹网
油库人员的优化配置模型

摘要

本题研究的是油库人员的优化配置问题。一个油库管理工作要保证正常的运行,必须要设置计量与质量检测管理、收发油料管理、装备维护与维修管理、安全保障管理、服务保障管理等相关的岗位和人员配制。对各类岗位人员进行合理配置,把提高油库的管理水平和运行效率作为整个模型的目标。为了达到这一目标,在充分阅览资料和适当假设的基础上,我们将整个问题划分为一下几个部分进行解决。

第一部分主要进行数据处理。在整个题中,我们需要对题中的数据进行分类整合,对于平均120次的岗位,不仅考虑了随机性和确定性的影响,还考虑了时间(月份/日期/周)的影响,得到了不仅方便运用而且相对简洁明了的数据处理结果(见附件二、附件三)。

第二部分主要是模型的建立可和求解。在模型一中,我们考虑不同种类的岗位或类之间的兼职、专职情况,利用整数规划建立了模型。为了防止不同岗位或类之间可兼职叠加准确度很低,我们采用粒子群算法,建立基于交叉pso算法的叠加模型,得到准确度很高的数据。粒子群算法的运用不失为本文的一大特色。利用matlab软件,对模型求解,在问题一中,我们得到A类最少配置4人,平均工作量为.5,B类最少配置23人,平均工作量为21.4,C类最少配置29人,平均工作量为67.5,D类最少配置39人,平均工作量为126.2。同样,对二、三问进行了求解,并获得了最优解。

第三部分主要针对模型结果进行分析,提出合理化建议。对于合并的类越多,员工操作面越广,那么员工间的工作时间越接近,不会造成培训时的差别,对于员工的差异就越少。保证各员工的工作时间一致,这样有利于缩短员工的培训学习时间的差距,使得员工间的工作量减小。在此基础上,提出了合理化建议。 最后,在原有模型的基础上,我们还提出了模型推广。此模型具有很大的推广性,不仅可以运用于多阶段的动态规划问题、实际工作安排问题和图论中的网络优化问题,具有很强的实用性。

关键字

整数规划 MATLAB 粒子群算法

一、 问题重述

一个油库管理工作要保证正常的运行,必须要设置计量与质量检测管理、收发油料管理、装备维护与维修管理、安全保障管理、服务保障管理等相关的岗位和人员配制。

某油库现有不同功能、不同规格的大小储油罐80个,储油量达16万立方米以上,年收发油量达7000多立方米。油库有五个岗位,由于油库工作的性质要求,每一大类都包括若干个具体的工作岗位,每个岗位都需要数量不等的人员和工作量,附录一给出了各类工作岗位、所需要的人员数量和全年的工作量。通常油库的所有人员的总工作量不超过175天(每天按8小时计算),除节假日外,其他时间用于业务学习等活动。

需要建立模型,对(A)、(B)、(C)和(D)需要专职人员、(C)、(D)类可以兼职、(A)、(B)、(C)和(D)都可兼职三种情况分别求解,得到各类工作岗位最少需要配置的人员数、平均年工作量和年总工作量,最后得对该油库的岗位和人员的配置、提高油库的管理水平和运行效率等方面有什么合理化建议。

二、 基本假设

1、收油操作同时进行

2、忽略机器故障、天气等客观特殊情况; 3、在工作持续执行期间,员工保持不变;

4、查阅的资料真实可靠,具有科学的严谨和真实性; 5、工作人员都为多技术人员,可以兼职多种工作岗位; 6、员工的工作时间以天为单位,不足一天按一天计算;

7、将同时进行的同类型工作(如收油相关工作)归为同一工作; 8、在工作过程中,不考虑员工生病、请假等特殊情况导致工作终止。

三、 符号说明

mi:第i个工作人员 tij:工

r:一年中的任何一天 nj:岗位上的第j工作项

d:第i个粒子的第d维 Sy:各类工作的年总工作量

s(i):服从均匀分布的岗位总和 Tj:第i项工作结束工作的时刻 ti:第i项工作开始工作的时刻(ti365 )

pjd:pn(t)的第d维是选择下式中取得最大值的分量

四、 数据处理和模型建立

4.1数据处理

我们首先对年份进行划分:A:平年;B:闰年;在对年份划分后,我们先考虑A(平年):

我们直接从r=[1~365]天,从中取定时间变动节点:

ai:每次开始工作的间隔 tij:

ti:第i项工作开始工作的时刻 Tj:第i项工作结束工作的时刻 4.1.1仅限于月份时间

对于仅限于月份时间的,我们直接根据平年的月份长度排列:

我们将ai定义为工作时间间隔,那么

titi1ai (1-1-1)

Tjtitij1 (1-1-2)

对于周期排列的,我们以下取定时间节点:

由于1月1日有可能是星期中的任意一天,那么我们将r定义为1月1日距离工作开始的时间的长度;

1、对于C4工作每周一和周五开始工作,工作周期为7天。

对于周一:

r0,1,2,3,4,5,6 (1-1-3)

tir7n6n1,2,3,4n (1-1-4)

Tititij1 (1-1-5)

对于周五:

由于我们先定的周一,那么对于周五到工作开始的时间距离r和r的对应值如下:

r4,5,6,0,1,2,3 (1-1-6)

tir7n6(n1,2,3,4n) (1-1-7) Tititij1 (1-1-8)

2、对于C7是双周三开始工作,同理可得:

r3,9 (1-1-9)

tr14n13n1,2,3n (1-1-10) Tititij1 (1-1-11)

3.对于D3,D4,我们可由C4中周一得出:

r0,1,2,3,4,5,6 (1-1-12)

tir7n6n1,2,3,4n (1-1-13)

Tititij1 (1-1-14)

4.1.2对于特定时间

对于D5,每两天一次,有以下情况:

1、 假如从一号开始:

r0 (1-2-1)

ti2n11,2,3,4n (1-1-14)

Tititij1 (1-2-2)

2、 从二号开始:

r1 (1-2-3)

ti2n1,2,3,4n (1-2-4)

Tititij1 (1-2-5)

对于D5 ,我们只有根据对应取定的年份,来进行取定:

titi1ai (1-2-6)

Tititij1 (1-2-5)

4.1.3对于平均120次的工作类

由于每年平均120次,刚好是一年中的三分之一,那么 我们就采用以下方法:

产生365个服从[0 1]均匀分布的数h(i) , 如果h(i)在[0,0.33]区间内,则输出g(i)1,反之则g(i)0,S(i)表示g(i)的和,那么,

s(i)的依次值则为开始工作的时间点;即:

ti=s(i) (1-3-1)

Tititij1 (1-3-2)

产生随机数的程序见附件四,随机数见附件五。

根据以上这些数据分析方法,我们将题目中的数据进行了整合与分解,得到数据,见附件二。

同理可知,闰年B可以获得整理后的数据,见附件三 4.2模型一 配置最少人员模型 4.2.1问题分析

该模型是根据油库正常的工作任务需要,模型设计到同类相互兼职,不同类之间的兼职,专职等因素,同时员工在某一类工作中,只要是工作时间不冲突,个人的工作年工作时间T175天内即可相互兼职。配置人员数最少即达到最优。 4.2.2模型的建立:

1、整数规划

要使工作人员的配制达到最优,我们建立如下的整数规划模型。

mi个人被要求去做nj项工作,每一个人如果时间不冲突,可以兼职做其他

工作。已知第mi个人开始工作的时间时刻是ti,结束工作的时刻是Tj,由于完成这些工作所需要的时间是题中已知的,所以只需要求解出完成这些工作的人员最少即是最优。我们将该问题由一个整数规划模型转化为一个人员优化配置模型的问题,其数学模型的标准形式如下:

minfi1nmcj1nij xij (2-2-1)

(2-2-2) s.taijxijbi(i1.2.3......n)

j1xij0(i1.2.3......m,j1.2.3.4.....n)

根据表格中的数据,由类建立人员数量矩阵Y如下:

mitiTjm1m2m YA,B,C,D,E3  (2-2-3)

m4m5m6m7矩阵中的数据处理如下:

每次工作所需要用的时间: tijTjti (i=j=岗位代号) (2-2-4) 工作的时间节点: fititij fjtitij

(2-1-1)(fifj,ij1,2,3,4,5,6,7.....)

工作的时间节点之差: Qijfifj (2-2-5) 其中:

0表示工作的时间有冲突 Qij

0表示可以兼职工作问题求解出各类工作岗位最优配制员工数,为此本文确定了目标函数如下: minMmi(i是取随机值的) (2-2-6)

i1i平均年工作量:

LySyMY 175(S(A,B,C,D,E)) (2-2-7)

其中Sy表示各类工作的年总工作量

2、pso算法 由于问题中有“平均每年120次,每年双周的周三进行”等随机性因素的产生,所以上面的人员配制优化模型不能完全的求解出B,C,D类工作岗位最优配制员工数。基于出现这样的困难,我们采用粒子群优化算法(PSO)先将问题处理,在建立交叉粒子群算法的优化模型。以下介绍粒子群算法的数学模型。

在一个以n维搜索空间SRn和由m个粒子组成的种群中,第i个粒子的位置是用一个n维向量表示的,即xi(xi1,xi2,xin)每个粒子的位置都代表所求问题的一个候选解。这些解得好坏由适应度函数值决定,适应度函数值越好则与之相关联的解就越好。适应度函数与目标函数有关系,一般要根据具体闯题设定。粒子的跳跃速度也是一个n维向量,即vi(vi1,vi2,vin)第i个粒子跳跃过程中所遇到的最好位置是S空间的一个点,可以表示为pi(pi1,pi2,pin)用g表示粒子群在前面跳跃过程中获得的种群最好位置的粒子,pg表示种群最好粒子的位置,t表示此时的循环次数。

粒子群中粒子的初始位置是在搜索区域内随机产生,每个粒子群的初始速度也是随机给定的。在搜索的过程中,粒子群和每个粒子所经历的最好位置及相应的适应度函数值部分别被记忆下来。粒子群算法最基本的概念在于加速每个粒子朝它自己所经历的和种群所经历的最好位置移动,移动过程可以用图2.1来描述:

xi(t1)vi(t)vi(t1)vpgxi(t)vpi 图2.1 pso粒子移动示意图

粒子群中每个粒子跳跃的速度和下一次的位置分别由公式(2-1)和(2-2)决定: vi(t1)vi(t)c1r1(pi(t)xi(t))c2r2(pg(t)xi(t)) (2-2-8) xi(t1)xi(t)vi(t1) (2-2-9) 其中i=1,2,3...…m, c1,c2是正的常量,叫做加速常数。r1,r2是均匀分布在区间[0,1]的随机数,t=1,2,3......是循环次数。

从(2-2-1)式可看出,第f个粒子新速度的计算与粒子前面的速度、粒子当前位置和粒子个体最好位置的距离、种群所经历的最好位置与第i个粒子当前位置的距离有关系。根据(2.2)式,第i个粒子将飞到一个新的位置。一般的,每个粒子的好坏山目标函数的适应度值决定。每个粒子的最好解和整个粒子群的最好解是分别按照下列两式更新的,对i(1,2,3m):

pi(t)如果f(xi(t1))f(pi(t))pi (2-2-10)

xi(t1)如果f(xi(t1)f(pi(t))pgargminf(p1(t)),f(p2(t)),f(pm(t)) (2-2-11)

3、交叉粒子群算法的模型

针对问题二中C,D类的员工可以相互兼职工作,而问题三中A,B,C,D类都不设专职工作者,即相互之间可以兼职工作(只要时间不冲突)。所以我们上面的模型提出的粒子群算法中粒子就会交叉的移动,这时候上面的模型就不适用,而且在算法收敛求解过程中,为了防止过早成熟的收敛,我们进行局部搜索,设置最大的拉伸次数。这样就能建立更加满意的人员配置优化模型。 交叉粒子群的算法:

步骤:定义适应度函数f(x),设置参数w,c1,c2,c3,r1,r2,r3,mc的初始值和最大迭代次数是T。

步骤1:种群规模设为m,随机在可行域里产生初始种群p(O)和初始速度v(O),

令t=O; 步骤2:求p(t)中最好的点pg(t),求p(t)中第i个粒子的最好点pi(t),i=l,2,..m; 步骤3:根据下式交换参数值

(w00.4)(Tt) w(t) (2-2-12)

T0.4t0 c1(t)c1(c1c1)[1] (2-2-13)

Tt0 c2(t)c2(c2c2)[1] (2-2-14)

T步骤4;按照公式(2-2-8)和(2-2-9)更新p(t)每个粒予的速度vi(t)和位置xi(t)

),得到新种群p(t)以及其中的每个粒子i的新速度vji(t)和新位置xji(t),t=1,2⋯m;并依据计算结果更新pi(t)和pg(t);

vji(t)w(t)vi(t)c1(t)r1(pi(t)xi(t))c2(t)r2(pg(t)xj(t)) (2-2-15)

(2-2-16) xji(t)(1mc)xj(t)mcvji(t)

步骤5:求p(t)中的最好点pg(t))中第i个粒子的最好点pi(t),i= l,2,...m; 步骤6:按照公式(2-2-10)和(2-2-11)更新p(t)中每个粒子的速度vji(t)和位置

xji(t),得到新种群p(t+1)和其中的每个粒子i的新速度

vi(t1)和新位置

xi(t1)i=l,2,...m;其中pn(t)由公式(2-2-12)得到。

vi(t1)wvji(t)c1(t)r1(pi(t)xji(t)c2(t)r2(pg(t)xji(t))c3(t)r3(pn(t)xji(t)) (2-2-17)

xi(t1)(1mc)xji(t)mcvi(t1) (2-2-18) 步骤7:满足终止条件t=T,则停;否则,t=t+1,转步骤2。

注:本算法的一些设置

1)参数设置:初始值w00.9,c12,c22和结束时的值w0.2,c11.3,

00r1r2r31,u1010,mc0.3

2)pn(t)的选取:pn(t)的第d维是选择下式中取得最大值的分量pjd,即 maxjFitness(pj)Fitness(xi)1|pidxid|

|pidxid|表示绝对值,d表示第i个粒子的第d维。

五、 模型的求解

5.1问题一

该问题主要是解决(A),(B),(C),(D)类人员都要配专职,并且同类中各工作岗位人员是可以兼职的。只要时间不冲突,同类人员之间是可以相互兼职的。所以根据上面的模型,我们的求解结果为: A类:

Q130由于 QijQ1j(j3)0,

Qij(i1)0由模型一分析得到以下结果:

minMm1m3=2+2=4 LA258.5 4B类:

这类收油操作是同时进行的,但收油操作与零发油操作有0.5天的工作单

1量,所以就有可能上午或者下午工作,而他们工作时间重叠的概率 P1

8t3j1Q3j0Qij(ij1,2)00)由于 QijQij(i4,5,6)(收油操作是同时进行,

2)0Qij(j1,26-)0.2(收油与发油不完全重叠的概率)p(x)1(3分析得到以下结果:

minMm1m2m3166123

LB49221.4 23C类:

C类由于存在星期,那么我们在建立模型的基础上,我们参照B类中平均120次的数据(见附件五),并将星期用数学公式表示出来,在解决问题时,我们利用时间重叠的思想,即:在时间节点间(同一工作时间点)上工作的最多人数作为最少需要的人数,并结合约束条件(每个人最大工作量)不能超过175天。所以我们利用仿真数据模拟(做对比)出如下的图像:

图2

t4j41Q4j0Q5j0QQ07j1j 由于 Qij

,所以不取其值)Q6j0(因为该时间段可以代替Q(i2,3)0ijQij(j2,6)0 分析所得结果为

minMm1m4m5m712123229 LDD类:

t3j1.51Q3j0Qij(ij1,2)0t0.51Q0(消防设施和车辆维护同时进行)4j4jQ5j0Q0由于 Qij6j

SD5LD5M175D5SD6L175D6MD6Q(0iji1,2)195867.5 29分析所得结果为

minMm2m3m4m52m616662021139

4921126.2 39综上所述,得到(A)、(B)、(C)和(D)类人员配制最少如下表: LD 最少人员 平均工作量 A类 4 .5 B类 23 21.4 C类 29 67.5 D类 39 126.2 表一 140120100806040200A类B类C类图三

5.2问题二

该问题提出了除了(A),(B)两大类专业性强的工作专职专人外,(C),(D)两大类在时间允许的情况下可以相互兼职。这样(A),(B)两大类的求解答案与问题一是相同的,由于(C),(D)两大类可以相互兼职,所以上面建立的模型就需要叠加。在叠加的过程中不是简单的把基本模型加,减,而且随机性因素的影响对模型的影响更大,所以我们在处理叠加的过程中利用交叉性粒子群算法(PSO)的模型,求解出最优解。

对(C),(D)两大类可以相互兼职求解过程处理: 建立目标函数:

minMmi(i1,4,5,7)mi(i1,3,4,5,6)

iciiDiii最少人员平均工作量D类

SD5LD5M175D5SD5L175D6MD5s.tt30

c3jtij0.5(i1,2,4)Qij(i3,6,7,12,13)0Q0(j6)3j由于我们选用的初始参数w00.9,c12,c22,迭代次数T=200,所以我们利用上面的交叉粒子算法的模型程序的结果为:(程序见附件七)

00

图四 收敛的最佳适应度

由图中我们可以看出当迭代次数到200次时,适应度值接近0. minM29e024e063

利用时间节点法仿真模拟出数据:(红色29,39,65分别是C类,D类,CD兼职)

表二

图五 C,D类模拟的图像 误差分析:

模拟出(C),(D)类可以相互兼职的人员配置优化模型的最少人员是65人,而利用交叉粒子群算法计算出的结果是63人.这里产生的误差主要是因为“平均每年120次,每年双周的周三进行”等因素的影响。当不同类不可以相互兼职时,这种因素的影响不是很大,不同类兼职时,因素之间就相互叠加,叠加后的因素影响就会增大。所以就会出现上面求解出模拟与交叉粒子群算法的结果不同,这

种误差是不可避免的,经过综合分析,我们取63人为最少需要人员. 而(C)类是27人,(D)类是36人。 A类 B类 C类 D类 CD类 最少人员 4 23 27 36 63 年总工作量 258 492 1838 5041 6879 表三 70006000500040003000200010000A类B类C类D类图六

5.3问题三

该问题告诉了油库的所有人员都经过了专业的培训,每个人都能从事(A),(B),(C),(D)类中的任何一项工作,每一个岗位都不设专职人员。由于题中设计到员工相互兼职后转化为数据的复杂度增大,因为员工的性质,工作与员工之间的相互交错度更复杂,所以我们上面建立的交叉粒子群算法的数学模型就更加实用。

对(A),(B),(C),(D)两大类可以相互兼职求解过程处理: 建立目标函数:

最少人员年总工作量CD类

minMmi(i4,7)mi(i3,4,5,6)mi(i1,3)mi(i2,3)

iciiDiiAiiBiiiiiSD5LD5M175D5SD5L175D6MD5tc3j30t0.5(i1,2,4)ij s.tQ(i3,6,7,12,13)0ijQ3j0(j6)tij(i10,11,12,14,21)0.5t(j4,5,6,7,8,9)0.5ijtij(i23,24)1.5Qij(i5,6,7,8,9,13,20)0由于我们选用的初始参数w00.9,c12,c22,迭代次数T=400,搜索范围[-1000.1000]所以我们利用上面的交叉粒子算法的模型程序的结果为:

(程序见附件八)

00

图七 收敛的最佳适应度

由图中我们可以看出当迭代次数到200次时,适应度值接近0.02。

利用时间节点法,先以A类为基础,将其他类的人员相互抽调,模拟配制各类所需要的人员,并增大模拟次数,最后得到下面的简化函数:

minM4e0.027e0.0225e0.0233e0.0270.393971(简化的)

在对目标函数进行多次叠加模拟,可以得到各类人员的趋近值。

最少人员 年总工作量 A类 4 258 B类 7 444 C类 29 2366 表四 D类 31 4561 ABCD类 71 7629 800070006000500040003000200010000A类C类图八

5.4对于岗位和人员配置的建议:

在保证油库能正常运行和员工的工作时间不超过175天的情况下,人员越少,越节约人力资源,岗位和人员的配置就越合理,通过前三个问题的解答,我们发现,兼职的类面越宽,那么各员工的工作时间越接近,能够保证各类员工具有相等的培训时间。

我们整合以上求得的结果,我们发现,在问题三中,能保证各员工的工作时间一致,这样有利于缩短员工的培训学习时间的差距,使得员工间的工作量减小。这样对于每个员工较为公平;下图是分析结果表:

分组 A B C D A B CD

问题三

ABCD

分组人数

4 23 29 39 4 23 63 71

各组平均工作量

.5 21.4 67.5 126.2 .5 21.4 109.2 107.5

71

107.5

总人数

总平均工作量 平均培训时间

176 219 173 114 176 219 131 133

最少人员年总工作人员ABCD类

问题一 95 80.3

问题二 90 85

对于合并的类越多,员工操作面越广,那么员工间的工作时间越接近,不会造成培训时的差别,对于员工的差异越少

对于油库的管理和运行效率的建议:

我们经过问题分析和资料的查询(【王巍、孙联峰、王利军《石化企业安全管理的思考》】【毛海蜂《现代安全管理理论与实务》】),我们确定以下因素为主要影响油库管理和运行效率:

1.先进的测试仪器以及计量设备

2.建立和落实合理的、适合本油库的规范作业流程 3.油库工作人员的综合素质和技术基础

结合以上三个主要方面和人员配置,我们给出对于油库管理和运行效率以下八点建议:

1、对于提高运行效率,应提高员工的平均学习时间,并且将各个员工的学习时间尽可能达到相近;

2、由于零发油的不确定性,在实际情况下,应该根据其他固定工作的安排情况来确定零发油额时间;

3、对于依赖于设备操作的这一缺陷,应该在人员安排较为紧凑(配置高峰)时,使达到双赢的局面,也可以改良设备;

4、对于可以多人操作的工作,合理利用人员,将时间量(工作时间)缩短,一边用于培训、学习;

5、对于相似工作,进行整合,将人数与时间的配置达到最佳;

6、合理调整人员的工作时间量,管理层进行协调,使工作差量达到最小(均衡度较高);

7、合理调整各项工作的工作安排,避免人员出现高峰紧张和人员闲置较高; 8、使在工作于学习的人员间合理安排,既保证工作正常运行,也保证员工学习和培训。

六、 模型的评价与推广

模型优点:

1、在建立模型之前,我们将题中数据进行了分解和整合,将工作时间进行归类处理,不仅大大减少了工作复杂度,而且为后面解题提供了可操作的数据; 2、在模型一中,我们利用整数规划建立模型,整数规划建立此模型不失为本文的特色之一;

3、由于不同类别岗位之间可兼职存在叠加,我们利用粒子群算法,利用pso算法叠加模型对不同种类的岗位进行叠加。这种算法的运用,大大增强了模型的准确度; 模型缺点:

1、模型没考虑人员的个人特殊情况;

2、该模型没有引入零油这一随机因素的影响,不能很好的解决和零油有关的工作和其他工作的兼职情况; 模型推广:

1、文中同分工作各个阶段工作人数存在差异,每个阶段的人数也在变化,与多阶段的动态规划问题有一定的相似性。故可以将该模型运用于解决多阶段的动态规划问题;

2、由于该模型是整数规划模型,且用于按日程安排人员开展工作的规划,所以,该模型可以推广到很多实际工作安排的例子当中,具有很大的参考价值; 3、本模型可以推广到图论中的网络优化问题。其中人员变动节点可类比为网络中的节点,人员高峰期相当于网络中的堵塞点,各个阶段员工数量相当于网络中的信息流量。

七、 参考文献

[1]徐全智,杨晋浩,数学建模(第二版)。北京:高等教育出版社,2008 [2]赵静,但琦,数学建模与数学试验(第三版)。高等教育出版社,2008 [3]熊斌,葛玉辉,企业人力资源内部流动的优化研究。科技与管理,2011

[4]韩冰清,汪加才,基于粒子群优化算法求解软件可靠性分配问题。计算机应用与软件,2005

[5] 董鑫,孙先定,郑丹阳,张鹏鹏,油库人员的优化配置模型。数学的实践与认识,2011

[6] 王巍、孙联峰、王利军《石化企业安全管理的思考》 [7]毛海蜂《现代安全管理理论与实务》

[8]董银丽,一种新的交叉粒子群算法及其应用。西安电子科技大学,2006

八、 附录

附件一:油库5大类岗位、需要人员及年工作量

工作岗工作岗工作岗位名称 位类别 位代号 A1 (A) 计量与质量检测管理 A2 A3 A4 A5 A6 B1 B2 (B) B3 收发油B4 料管理 B5 B6 C1 C2 (C) C3 设备维C4 护与维C5 修管理 C6 C7 D1 D2 (D) D3 安全保D4 障管理 D5 D6 E1 (E) E2 服务保E3 障管理 E4 月计量检测 半年计量检测 储油质量检验 全面检测 收油计量检测 收油质量检验 收油操作1 收油操作2 收油操作3 零发油操作1 零发油操作2 零发油操作3 收油设备维护值班 常规维护保养 设备日常维护保养 常用设备维护保养 安全设备维护保养 配电设备维护保养 收油消防值班 零发油消防值班 消防设施维护 消防车辆维护 工作岗位的年工作量 12次×2人×2天/次 2次×2人×2天/次 6次×2人×15天/次 2次×2人×2.5天/次 6次×2人×0.5天/次 6次×2人×0.5天/次 6次×16人×0.5天/次 6次×6人×0.5天/次 6次×1人×1天/次 备 注 每月25日开始 每年6、12月1日开始 每单月15日开始 每年1、7月10日开始 每双月10日 每双月10日 每双月10日 每双月10日 每双月10日 120次×5人×0.5天/次 平均每年120次 120次×1人×0.5天/次 平均每年120次 120次×1人×0.5天/次 平均每年120次 6次×2人×1天/次 1次×12人×30天/次 104次×12人×1天/次 12次×3人×4天/次 6次×2人×4天/次 26次×2人×0.5天/次 6次×6人×1天/次 52次×6人×1.5天/次 52次×6人×0.5天/次 每双月10日 每年12月1日开始 每周一、周五进行 每月15日开始 每单月20日开始 每年双周的周三进行 每双月10日 每周一开始 每周一进行 每两天1次 除节假日外每 天1次 全专职 全专职 全专职 全专职 零发油设备维护值班 120次×2人×0.5天/次 平均每年120次 120次×6人×0.5天/次 平均每年120次 日常安全检查与维护 183次×20人×1天/次 油库环境保养与卫生 241次×1人×1天/次 伙食服务保障 医疗服务保障 车辆服务保障 警卫服务保障 员额每15人编制1人 2人/天 4人/天 8人/天

表格说明:

(1)年工作量格式:次×人×天/次,表示该项任务每年要执行×次,“至少需要×人”同时执行,每次×人需要连续工作z天。

(2)有些任务人数越多执行时间越短,即若每次由×人执行,则每次需要执行时间为×天。但与收油和零发油的相关任务依赖于设备操作,这些岗位所需人员数固定不变,也必须同时在岗,而且零发油的时间是不确定的。 附件二:平年岗位数据整理汇总表

A1A2A3A4A5A6B1B2B3B4B5B6C1C2C3C4C5C6C7D1D2D3D4D5D6E1E2E3E412次×2人×2天/次2次×2人×2天/次6次×2人×15天/次2次×2人×2.5天/次6次×2人×0.5天/次6次×2人×0.5天/次6次×16人×0.5天/次6次×6人×0.5天/次6次×1人×1天/次120次×5人×0.5天/次120次×1人×0.5天/次120次×1人×0.5天/次6次×2人×1天/次120次×2人×0.5天/次1次×12人×30天/次104次×12人×1天/次12次×3人×4天/次6次×2人×4天/次26次×2人×0.5天/次6次×6人×1天/次120次×6人×0.5天/次52次×6人×1.5天/次52次×6人×0.5天/次183次×20人×1天/次241次×1人×1天/次员额每15人编制1人2人/天4人/天8人/天每月25日开始每年6、12月1日开始每单月15日开始每年1、7月10日开始每双月10日每双月10日每双月10日每双月10日每双月10日平均每年120次平均每年120次平均每年120次每双月10日平均每年120次每年12月1日开始每周一、周五进行每月15日开始每单月20日开始每年双周的周三进行每双月10日平均每年120次每周一开始每周一进行每两天1次除节假日外每天1次全专职全专职全专职全专职a(i)=25 31 28 31 30 31 30 31 31 30 31 30 ;b(i)=b(i-1)+a(i);c(i)=b(i)+1b1=152;b2=335 ; c(i)=b(i)+1a(i)=15 59 61 61 62 61; b(i)=b(i-1)+a(i);c(i)=b(i)+14b1=10;b2=191;c(i)=b(i)+2a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=k b(i)=s(n)=c(i)a(i)=k b(i)=s(n)=c(i)a(i)=k b(i)=s(n)=c(i)a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=k b(i)=s(n)=c(i)b(i)=335;c(i)=3651<=m<=7; b(i)=m+7n-7=c(i); (5,6,7,1,2,3,4)=m';b(i)=m'+7n-7a(i)=15 31 28 31 30 31 30 31 31 30 31 30;b(i)=b(i-1)+a(i);c(i)=b(i)+3a(i)=20 59 61 61 62 61;b(i)=b(i-1)+a(i);c(i)=b(i)+34<=m<=10,b(i)=m+14n-14=c(i)a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)1<=m<=7; b(i)=m+7n-7 c(i)=b(i)+11<=m<=7; b(i)=m+7n-7 c(i)=b(i)+1m=1 b(i)=2n-1; c(i)=b(i);m=2 b(i)=2n=c(i)b(i)=4; c(i)=365;b(i)=1 ;c(i)=365;b(i)=1 ;c(i)=365;b(i)=1 ;c(i)=365;b(i)=1 ;c(i)=365;附件三、闰年岗位数据整理汇总表

B1B2B3B4B5B6C1C2C3C4C5C6C7D1D2D3D4D5D6E1E2E3E46次×16人×0.5天/次6次×6人×0.5天/次6次×1人×1天/次120次×5人×0.5天/次120次×1人×0.5天/次120次×1人×0.5天/次6次×2人×1天/次120次×2人×0.5天/次1次×12人×30天/次104次×12人×1天/次12次×3人×4天/次6次×2人×4天/次26次×2人×0.5天/次6次×6人×1天/次120次×6人×0.5天/次52次×6人×1.5天/次52次×6人×0.5天/次183次×20人×1天/次241次×1人×1天/次员额每15人编制1人2人/天4人/天8人/天每双月10日每双月10日每双月10日平均每年120次平均每年120次平均每年120次每双月10日平均每年120次每年12月1日开始每周一、周五进行每月15日开始每单月20日开始每年双周的周三进行每双月10日平均每年120次每周一开始每周一进行每两天1次除节假日外每天1次全专职全专职全专职全专职a(i)=41 60 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=41 60 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=41 60 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=k b(i)=s(n)=c(i)a(i)=k b(i)=s(n)=c(i)a(i)=k b(i)=s(n)=c(i)a(i)=41 60 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=k b(i)=s(n)=c(i)b(i)=335;c(i)=3651<=m<=7; b(i)=m+7n-7=c(i); (5,6,7,1,2,3,4)=m';b(i)=m'+7n-7a(i)=15 31 29 31 30 31 30 31 31 30 31 30;b(i)=b(i-1)+a(i);c(i)=b(i)+3a(i)=20 60 61 61 62 61;b(i)=b(i-1)+a(i);c(i)=b(i)+34<=m<=10,b(i)=m+14n-14=c(i)a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)a(i)=41 59 61 61 61 61;b(i)=b(i-1)+a(i);c(i)=b(i)1<=m<=7; b(i)=m+7n-7 c(i)=b(i)+11<=m<=7; b(i)=m+7n-7 c(i)=b(i)+1m=1 b(i)=2n-1; c(i)=b(i);m=2 b(i)=2n=c(i)b(i)=4; c(i)=365;b(i)=1 ;c(i)=365;b(i)=1 ;c(i)=365;b(i)=1 ;c(i)=365;b(i)=1 ;c(i)=365;

附件四

寻找工作时间节点段程序: a=1:1:365;

b=[5 19 33 47 61 75 103 117 131 145 159 173 187 201 215 229 243 257 271 285 299 313 327 341 355]; [c, ia, ib] = intersect(a,b); aa=zeros(size(a));

bb=zeros(size(b)); aa(ia)=1

产生随机数,表述工作点: P=unifrnd(0,1,1,10); A=P

[i,j]=size(A); while

a=find(A>=0.33); A(a)=0;

b=find(A<0.33); A(b)=1; end A

找工作时间节点段: a=[20 59 61 61 62 61]; b(1)=a(1); c(1)=b(1)+3; d(1)=b(1)+2; e(1)=b(1)+1;

for i=2:length(a) b(i)=b(i-1)+a(i); c(i)=b(i)+3; d(i)=b(i)+2; e(i)=b(i)+1; end

b(i)=b(i-1)+a(i) c(i)=b(i)+3 d(i)=b(i)+2 e(i)=b(i)+1

附件五 产生的随机数

附件六 利用随机数模拟程序

A=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 [i,j]=size(A); a=find(A>=1); A(a)=255; b=find(A<1);

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0

0

0

0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0];

A(b)=0; imagesc(A)

附件七 计算适应度程序(问题二) 建立主函数:

function y=fun(x)

y=29*exp(x(1))+34*exp(x(2)); 程序如下:

>> %% 参数初始化

%粒子群算法中的两个参数 c1 = 2; c2 = 2;

maxgen=200; % 迭代次数

sizepop=70; %人员总的优化规模 Vmax=1;%速度 Vmin=-1;

popmax=70;%人员

popmin=-70; %% 产生初始粒子和速度 for i=1:sizepop

%随机产生一个人员

pop(i,:)=5*rands(1,2); %初始人员 V(i,:)=rands(1,2); %初始化速度 %计算适应度

fitness(i)=fun(pop(i,:)); %优化人员的适应度 end

%找最好的人员优化数字

[bestfitness bestindex]=min(fitness); zbest=pop(bestindex,:); %全局最佳 gbest=pop; %个体最佳

fitnessgbest=fitness; %个体最佳适应度值 fitnesszbest=bestfitness; %全局最佳适应度值 %% 迭代寻优 for i=1:maxgen

for j=1:sizepop %速度更新

V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));

V(j,find(V(j,:)>Vmax))=Vmax; V(j,find(V(j,:)pop(j,:)=pop(j,:)+0.5*V(j,:);

pop(j,find(pop(j,:)>popmax))=popmax; pop(j,find(pop(j,:)%自适应变异(避免粒子群算法陷入局部最优) if rand>0.8

k=ceil(2*rand);%ceil朝正无穷大方向取整 pop(j,k)=rand; end

%适应度值

fitness(j)=fun(pop(j,:)); %个体最优更新

if fitness(j) < fitnessgbest(j) gbest(j,:) = pop(j,:);

fitnessgbest(j) = fitness(j); end

%总体人员最优更新

if fitness(j) < fitnesszbest zbest = pop(j,:);

fitnesszbest = fitness(j); end end

yy(i)=fitnesszbest; end

%% 结果分析 plot(yy)

title(['适应度曲线 ' '终止代数=' num2str(maxgen)]); xlabel('进化代数');ylabel('适应度');

附件八:计算适应度程序(问题三)

主函数:

function y=fun(x)

y=4*exp(x(1))+7*exp(x(2))+25*exp(x(3))+33*exp(x(4)); 程序: %% 参数初始化

%粒子群算法中的两个参数 c1 = 2; c2 = 2;

maxgen=200; % 迭代次数 sizepop=80; %人员总的优化规模 Vmax=1;%速度 Vmin=-1;

popmax=1000;%人员 popmin=-1000; %% 产生初始粒子和速度 for i=1:sizepop

%随机产生一个人员

pop(i,:)=5*rands(1,2); %初始人员 V(i,:)=rands(1,2); %初始化速度 %计算适应度

fitness(i)=fun(pop(i,:)); %优化人员的适应度 end

%找最好的人员优化数字

[bestfitness bestindex]=min(fitness); zbest=pop(bestindex,:); %全局最佳 gbest=pop; %个体最佳

fitnessgbest=fitness; %个体最佳适应度值 fitnesszbest=bestfitness; %全局最佳适应度值 %% 迭代寻优 for i=1:maxgen

for j=1:sizepop

%速度更新

V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));

V(j,find(V(j,:)>Vmax))=Vmax; V(j,find(V(j,:)%人员更新

pop(j,:)=pop(j,:)+0.5*V(j,:); pop(j,find(pop(j,:)>popmax))=popmax; pop(j,find(pop(j,:)%自适应变异(避免粒子群算法陷入局部最优) if rand>0.8

k=ceil(2*rand);%ceil朝正无穷大方向取整 pop(j,k)=rand; end

%适应度值

fitness(j)=fun(pop(j,:));

%个体最优更新

if fitness(j) < fitnessgbest(j) gbest(j,:) = pop(j,:); fitnessgbest(j) = fitness(j);

end

%总体人员最优更新

if fitness(j) < fitnesszbest zbest = pop(j,:);

fitnesszbest = fitness(j); end end

yy(i)=fitnesszbest; end %% 结果分析 plot(yy)

title(['适应度曲线 ' '终止代数=' num2str(maxgen)]); xlabel('进化代数');ylabel('适应度');

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务