图书馆购书计划的制定问题
课程名称:数学模型 课程代码: 任课教师: 刘小华
院(系):理学院 专业: 信息与计算科学 年级: 级
学生姓名: 学号:
图书馆购书计划的制定问题
摘要
本文就学校图书馆一次采购图书安排进行了讨论,建立三个模型得到各类图书的综合权重。我们综合考虑经费、图书馆藏书量等因素,又要尽最大可能满足学生希望。首先,确定一个图书馆购书的目的,抽析出所要达到的目标,利用隶属度函数理论和方法进行赋值确定各类图书的优先因子。然后利用隶属度函数理论和方法,以综合权重来确定应有的册数比例,从经济学角度出发,综合考虑各种因素,根据藏书利用与读者满足率的规律,进行最优化的研究,探求~个合理的经费分配策略,以使有限的资金最大限度地发挥其经济效益,给图书馆提供一个合理的采购方案。
对于问题一,利用已知的信息,采用AHP 层次分析法[1]和模糊综合评价法[2],综合考虑各类图书的重点学科建设的需要需求与否、 常用书籍和流行热门书籍程度、重要公共课与否、技能课图书与否、上年的出借册次分布五个指标,确定各指标对各类图书隶属度关系和模糊矩阵,从而得到相对重要程度的权重.
即各类书的相对重要程度的权向量分别为:
0.0415 0.0533 0.0402 0.0432 0.0506 0.0542 0.0389 0.0582 0.0497 0.0468 0.0421 0.0581 0.0436 0.0564 0.0549 0.0354 0.0473 0.0447 0.0585 0.0535 0.0288
对于问题二,采用和问题一类似的方法,对确定了的一年内的相对流通量、图书平均借用时间、图书利用率三个指标进行处理,从而得到书籍在该校的实际使用价值的相应权重.但值得注意的是,在问题二的处理过程中,采用了熵值法对三个指标赋权,减少了主观因素对反映实际使用价值过程的影响.
即各类书的实际使用价值的权向量分别为:
0.0415 0.0533 0.0402 0.0432 0.0506 0.0542 0.0389 0.0582 0.0497 0.0468 0.0421 0.0581 0.0436 0.0564 0.0549 0.0354 0.0473 0.0447 0.0585 0.0535 0.0288
由上数据可知对应的权值越大相应的价值越大.
对于问题三,引进了一种“席位分配[4]”的数学模型,在满足各类图书的最低更新率的基础上,使得结果的相对不公平指标最小,从而得到了最优化的购书分配方法.即A 、B 类书增加270册,C 、N 类书增加520册,D 类书增加164册,E 、R 、S 、U 、V 类书增加218册,X 类书增加1773册,F 类书增加1058册,G 类书增加191册,H3类书增加599册,I 类书增加898册,J 类书增加213册,K 类书增加234册,Q 类书增加247册,P 类书增加1987册,O 类书增加966册,TH 类书增加1068册,TM 、TS 类书增加109册,TN 类书增加143册,TQ 类书增加483册,TP 类书增加693册,TU 、TV 类书增加315册,Z 类书增加965册.
关键词:AHP 层次分析法 熵值法 图书分配 隶属度函数 MATLAB
1
一、问题的提出
现代化图书馆馆藏图书,主要目的不是为了收藏而是为了使用.除了国家图书馆等特大型的图书馆以外,一般图书馆都有特定的服务群体,办馆宗旨就是要尽量好地为这些特定群体服务,提高馆藏资源的利用率、读者文献信息需求的满足率以及对图书馆服务功能的满意率.图书馆每年用于购书的经费是有限的,如何合理分配使用,以便使有限的购书经费最大限度地发挥其特定的经济效益是图书馆工作的重要环节之一.
以某学校图书馆为例,要实现办馆效益,必须做到入藏文献合乎本校教师、学生(有时也兼顾社会)的需求,使图书馆藏书结构(学科结构、文种结构、文献类型结构等)能满足本校教学科研的要求,以求藏书体系与本校专业设置相适应.所购图书要能够真实地反映读者的实际需要,使读者结构和藏书结构尽量吻合,以便减少读者借不到图书的现象,即降低读者拒借的比率、增加满足率.文献只有在流通中才能传播信息,产生效益.文献资料得不到利用,购置文献资料所耗费的资金就体现不出其价值.因此,图书馆在增加藏书规模的同时,要千方百计地把文献提供给读者,以增加图书的出借次数、出借时间以及在借图书的数量等,力求使有限的价值投入获得最大的办馆效益.
该校图书馆每学年都要投入大量资金购置图书,图书覆盖全院各学科专业、具有较完整的中外文文献资源.如何合理分配资金用于各种图书的购置成为一个非常有价值的问题.
二、基本假设
1、假设该校各专业学生比例大致不会变且总人数相对稳定; 2、假设所借的图书没有不归还或丢失; 3、假设每年借书人数相对稳定; 4、假设题目给的数据真实有效.
三、定义符号说明
2
四、模型的分析、模型的建立及求解
4.1 问题一的分析及模型建立: 4.1.1 问题一的提出和分析
已知:①该普通高校的重点学科、重点专业的设置情况;②上一年该普通高校图书馆的馆藏图书的分布及流通情况表.
要求:同时考虑重点实验室和重点学科建设的需求、常用书籍和流行热门书籍、重要公共课、技能课图书(如英语、计算机类)的普通要求等几个方面,以确定各类图书对于该校图书馆的相对重点程度(即相对权重).
分析:根据题目要求,我们以各类图书的重点实验室和重点学科建设的需求与否、常用和热门程度、重要公共课与否、技能课图书与否、上年的出借册次分布这五个指标来衡量各类图书对于该校图书馆的相对重点程度(即相对权重).
首先,通过层次分析法[1]确定个指标之间的权重,利用方根法计算出反映各指标相对权重的权向量,并进行一致性检验;然后,确定各类图书与各指标之间的隶属度关系,最后,利用加权平均型合成算子确定模糊综合评价[2]结果,得到各类图书对于该学校图书馆的相对重要程度(即相对权重). 4.1.2模型一的建立及求解
首先,用层次分析法确定权重, 判断矩阵由A .L .Saaty 的1~9比率标度方法确定, 结果见下关系表如下表1:
3
⎛1 3/4R = 1/2
1/4 1/5⎝
4/311/21/31/4
2211/21/3
43212/3
5⎫⎪4⎪3⎪ ⎪3/2⎪1⎪⎭
用方根法计算得出权向量:
ω={ω1, ω2, ω3, ω4, ω5}=(0.3647λmax -n
n -1
CI RI
0.29410.17950.0946
0.0672)
进行一致性检验:最大特征根λmax =5. 0166,一致性指标
CI =
=0. 0042,平均随机一致性指标RI =1. 12,随机一致性比率
CR=因此该判断矩阵具有满意的一致性.故通过一致性检验. =0. 00375
然后,分别给21类书在5个指标上进行打分
利用MATLAB 软件对其进行归一化处理:
4
确定各指标对各类图书的隶属度,得到模糊矩阵R
⎛0.042253521
0.045455 R =0.068182
0.046512
⎝0.031669
0.042253521 0.0606060.0340910.0465120.096422
0.0704225350.0606060.0340910.0465120.038864
0.042253521⎫
⎪
0.030303⎪
⎪ 0.034091
⎪
0.046512⎪
⎪
0.0206⎭
利用加权平均型合成算子,将权向量ω与模糊关系矩阵R 合成,得到模糊
综合评价结果向量B :
B =ω⋅R =(0.0484 0.0508 0.05210.0357)
5
即各类书的相对重要程度的权向量分别为:
0.0484 0.0508 0.0367 0.0418 0.0405 0.0564 0.0368 0.0621 0.0554 0.0418 0.0375 0.0472 0.0357 0.0556 0.0495 0.0362 0.0414 0.0448 0.0673 0.0521 0.0357
4.2 问题二的分析及模型建立: 4.2.1 问题二的提出及分析
已知:①图书最终的实现价值应取决于图书的被利用率;②上一年该普通高校图书馆的馆藏图书的分布及流通情况表.
要求:评价一本书的真正价值必须考虑到它的流通量大小和借用时间的长短等,并根据该校上一年各类图书的出借情况,提出一种评价图书在该校实际使用价值的方法.
分析:与问题一类似,我们同样先给出用来评价图书在该校的实际使用价值的三个指标:一年内的相对流通量、图书平均借用时间、图书利用率.然后,我们采用熵值法[3]对这三个指标进行赋权处理,从而得到指标的权向量;利用MATLAB 软件对各类图书的三个评价指标数据表中的数据进行归一化,从而得到各指标对各类图书的隶属度模糊矩阵.最后,利用加权平均型合成算子确定模糊综合评价结果,得到各类图书在该学校图书馆的实际使用价值. 4.2.2 模型二的建立及求解
图书最终的实现价值应取决于图书的被利用率.因而评价一本书的真正价值必须考虑到它的流通量大小和借用时间的长短等多方面的指标.
在模型二的评价中,设定了三个指标来评价图书在该校的实际使用价值,三个指标如下:一年内的相对流通量(出借册数/册数)、图书平均借用时间(出借总时间/出借册数)、图书利用率(出借种类数/内容种类数)(数据见下表).
6
采用熵值法对三个指标进行赋权处理:
1.对原始数据进行标准化处理,得到标准矩阵Y =(y ij ) 21⨯3 计算公式为y ij =
x ij M
j
(i =1, 2, , 21; j =1, 2, 3) 其中M
j
为第j 个指标的最大
值.
得到Y 矩阵(见附录1)
2.将各指标同度量化,计算第j 项指标下第i 类书指标值的比重
p ij =
y ij
21
(i ≤i ≤21, 1≤j ≤3)
∑
i =1
y ij
得到p 矩阵(见附录2) 3.计算第j 项指标的熵值
21
ωe j =-k ∑p ij ln p ij
i =1
(1≤j ≤n ) 其中k =
1ln 21
则ωe j =
-1ln 21
21
∑
i =1
p ij ln p ij
(1≤j ≤3) .
得到ωe 矩阵(见附录3)
4.计算第j 项指标的差异性系数g j =1-ωe j (1≤j ≤3) ,其值越大,指标就越重要;
7
5.确定指标权重,第j 项指标的权数ωj ' =得到ω' 的一个指标权重向量
ω' =(0.3297 0.3322 0.3382).
g j
21
(1≤j ≤3) .
j
∑g
j =1
利用MATLAB 软件对模型二中各类图书的三个评价指标数据表中的数据进
R ' ⎛0.0434641
R ' = 0.036754
0.044367⎝
0.06133970.0486470.050098
0.05723880.0497270.053674
0.021782⎫
⎪
0.032412 ⎪0.032131⎪⎭
利用加权平均型合成算子,将权向量ω' 与模糊关系矩阵R ' 合成,得到模糊
综合评价结果向量B ' :
B ' =ω' R ' =(0.04150.0533 0.05350.0288)
8
即各类书的实际使用价值的权向量分别为:
0.0415 0.0533 0.0402 0.0432 0.0506 0.0542 0.0389 0.0582 0.0497 0.0468 0.0421 0.0581 0.0436 0.0564 0.0549 0.0354 0.0473 0.0447 0.0585 0.0535 0.0288
由上数据可知对应的权值越大相应的价值越大.
4.3 问题三的分析及模型建立 4.3.1 问题三的提出及分析
已知:①通过前两问研究,我们得到了各类图书的相对重要程度和其在该校的实际使用价值所对应的权重;②上一年该普通高校图书馆的馆藏图书的分布及流通情况表;③图书馆计划投入100万元用于购置各种图书.
要求:在所确定的购书资金分配方案应尽可能符合学校学科发展的需要和教学科研需要,又应当尽可能提高读者的满意率,与此同时,图书馆自然还应当注意到各类馆藏图书的更新率,以及用于购书的总经费是有限制的这四个条件的约束下,尽可能满足目标函数(所购图书实际效益最大).
分析:在前两问的研究基础之上,我们引进两个新概念———读者满意度((册数/内容种类数)/(出借册数/出借种类数))和实际效益的综合评价值.但由于读者满意度越大,图书所需更新的比率应该相对越小,所以用读者满意度的倒数来作为衡量综合评价值的第三指标.于是,就有了衡量综合评价值的三项指标,即图书相对重要权重、图书实际使用价值权重、读者满意度的倒数.然后,利用熵值法来可以确定综合评价实际效益中三个指标之间的相对权重,继而得到各类图书综合评价值.
在制定购书资金的分配方案时,我们又引进一个称为“席位分配”的数学模型.这个模型从每个席位对应的人数出发,定义了一个相对不公平指标,将有限的代表席位逐个分配到各个小组,结果使得相对不公平指标最小.而不公平程度以各类图书的
c i e i
(每个综合评价值所对应的图书册数)的方差值来衡量,方差
值越小,不公平程度也越小.而在图书更新过程中,还应该注意到各类书的更新率.通过资料查找,我们发现图书馆的各类图书的更新率至少应达到3%.所以,采用在满足最低更新率的基础上,进行“席位分配”的方法,利用MATLAB 软件所编程序,最终得到最优的购书资金分配方案. 4.3.2 模型三的建立及求解
9
应用模型二提到的熵值法,确定该三项指标在综合评价中的权重.(附录) 得到三项指标的权向量:
ω'' =( 0.3314 0.3323 0.3363)
再运用模糊综合评价的方法,求得21类书的综合评价值e 为:
0.0461 0.0548 0.0397 0.0452 0.0497 0.0537 0.0391 0.0585 0.0552 0.0444 0.0430 0.0505 0.0390 0.0537 0.0533 0.0374 0.0456 0.0460 0.0593 0.0528 0.0327
在本模型中,以该类书的综合权重反映书的应有册数比重. 要考虑21类书的购书比例,假设有A 、B 两类书的综合评价值为e 1、e 2,该类书原有的册数为c 1、c 2,模型希望达到的是
c 1e 1
=c 2e 2
,若
c 1e 1
c 2e 2
,则认
为A 书是亏欠的,应补.推广到21类书,为了保证每类书都有一定更新率,在满足各类图书最低分配率的基础上,将剩余的经费分配给其余亏欠的图书,直到达到资金上限(100万).具体步骤如下:
1.先满足每类书3%的更新率,判断剩余的资金M 是否大于零,若M >0,则转步骤2;若M
c i e i
(i =1, 2, 3 21) ,值最小的那类书,所对应的c i +1,即购
一本书,然后c i =c i +1,M =M -p i ,对更新的比值计算方差. 3.再判断M ,若M >0,则转步骤2;若M
4.各类书的购书过程结束,输出每类书所购的册数,及每循环一次所得的方差.选择方差最小的所对应的购书比值(即最符合各类书应有的册数比),剩余的资金再按照册数符合综合权重的原则分配. 5.输出最终各类书的所购的册数以及所花费的资金.
五、结果分析
由综合评价值e 矩阵可知“自动化技术、计算机技术综合权重”最大,“常
用外国语”“文学”“ 经济”“数理科学和化学” “机械仪表工业” “建筑科学、水利工程”也较大,将模型出来的结果与题目给出的数据进行比较,可知权重大的重点类建设对象或是重点学科.而“综合性图书”权重最小,
与题目给的数据也较符合.
根据综合权重的柱状图与原册数的实际比例作对比
综合权重大的原有册数也多,但有存在例外.并且模型得出的权重大小波动较小,而原有册数差距较大.
分析原因:1:图书馆现有图书分布并不合理; 2:模型中设置的权重并不很合理.
六、模型推广
本题不仅可以用于优化图书的采购方案问题,也可以用于各类相似的评价问题中.模型三用到的席位分配模型,可以用以解决生活、工作中可能产生的资源分配公平与否的问题.
与此同时,本文涉及的模型可以用以评价多种属性(指标)的对象.
七、模型的评价与改进
优点:
1、利用多种方法确定权重,一定程度上减少了主观因素对结果的影响. 2、基于层次分析、模糊综合评价模型并进行改进,结果符合实际. 3、模型三的算法逻辑清晰、易懂,运用软件,减少大量计算量. 缺点:
1、模型一中,运用层次分析法确定五个指标的权重,带有主观因素,一定程度上影响结果.多次运用模糊综合评价,算法较单一.
参考文献:
[1]吴祈宗,运筹学与最优化方法,北京:机械工业出版社,2003年;
[2]张秀兰,基于模糊综合评判法的研究及应用,科技信息2008年14期:91—92,2008年;
[3]沈红丽,因子分析法和熵值法在高校科技创新评价中的应用,河北工业大学学报 第38卷 第1期,2009年2月;
[4]靖培栋 刘忠厚,图书馆外文核心期刊购买模型探讨,中国图书馆学报(双月刊)1999年第4期第25卷44-48,1999年;
[5]臧秀平 李萍 张建 丁声铎,改进的模糊综合评判法在评标中的应用,江苏科技大学学报(自然科学版)第21卷 第6期,2007年12月; [6]姜启源 谢金星 叶俊,数学模型. 第四版,高等教育出版社.
附件
问题一MATLAB 代码: %Maxlmta.m
%和法求最大特征根 clc
clear all
disp('please choose the filename you want to
plot'); %查找数据的文件夹
[filename,pathname]= uigetfile(' *.txt', 'choose the file you want to plot'); if
pathname==0 %pathname返回0说明文件打开失败,可能是取消了,或是文件不存在等等原因
return %return用于退出整个程序 end
name =[pathname
filename]; %文件的路径和名字
fid=fopen(name,'r+'); %读取文件
x=fscanf(fid,'%c'); %count得到数据个数,A 是列向量,用于存放所有数据 A=str2num(x);
%下面的A 是一个测试的程序矩阵 %A=[1 1/2 4 3 3; % 2 1 7 5 5; % 1/4 1/7 1 1/2 1/3; % 1/3 1/5 2 1 1; % 1/3 1/5 3 1 1]; %RI--随机一致性指标 %n--A的列长度 %w--权向量
%lmta--最大特征根 %CI--一致性指标 %CR--一致性比率
%RIn--A的一致性指标
%flag--标志变量
%Wij Wi W--临时变量
RI=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49,1.51]; %将A 的每一列向量归一化 Asum=sum(A); n=length(A); for j=1:n for i=1:n
Wij(i,j)=A(i,j)./Asum(1,j); end end
%将Wij 按行求和 Wij=Wij'; Wi=sum(Wij); Wi=Wi';
%将Wi 归一化 W=sum(Wi);
disp('权向量'); w=Wi./W %计算lmta
disp('最大特征根\n'); lmta=sum(1/n*(A*w)./w) %计算CR
disp('A的一致性指标'); RIn=RI(1,n);
disp('一致性指标'); CI=(lmta-n)/(n-1) CR=CI/RIn;
%判断一致性检验 if CR
disp('通过一致性检验') flag=1; else
disp('不能通过一致性检验') flag=0; end
问题二MATLAB 代码: %shuangzhifa.m
%层次分析法中的熵值法 function t
clear all clc
%输入数据
[filename pathname]=uigetfile('*.txt','please choose the file'); name=[pathname filename]; if filename==0 return end
fid=fopen (name,'r+'); x=fscanf (fid,'%c'); x=str2num(x); %对x 标准化得到y xsize=size(x); temp=max(x); for i=1:xsize(1)
y(i,:)=x(i,:)./temp; end
clear temp; %计算p(i,j) temp=y';
temp=sum(temp); for i=1:xsize(1)
for j=1:xsize(2)
p(i,j)=y(i,j)/temp(j); end end
clear temp; %计算e(j)
k=1/log(xsize(1)); for j=1:xsize(2) tempsum=0;
for i=1:xsize(1)
temp=p(i,j)*log(p(i,j)); tempsum=tempsum+temp; end
e(j)=-k*tempsum; end
%求差异性系数g(j) g=1-e;
clear temp;
temp=sum(g);
for j=1:xsize(2)
w(j)=g(j)./temp; end w
return
问题三MATLAB 代码: %shijixiaoyiguihua.m function temp clear all clc
c=[8991 17322 5481 7266 1731 35256 6375 19983 29946 7101 7794 8220 744 2850 2715 3645 4767 2796 23112 10503 1347];
e=[0.0461 0.0548 0.0397 0.0452 0.0497 0.0537 0.0391 0.0585 0.0552 0.0444 0.043 0.0505 0.039 0.0537 0.0533 0.0374 0.0456 0.046 0.0593 0.0528 0.0327];
price=[225674.1 486748.2 121130.1 189916 65951.1 1131718 128137.5 561522.3 7339765 199538.1 304745.4 206322 20162.4 100035 98011.5 102424.5 185913 64587.6 834343.2 305637.3 60749.7]; tmp=c./e; ptmp=tmp; pc=c;
eachprice=price./c; x=zeros(1,21);
ppx=round(c*0.03); x=ppx+x;
pprice=ppx.*eachprice; px=x;
STD=std(ptmp);
while sum(eachprice.*px)
ptemp=std(ptmp); STD=[STD ptemp]; end
n=size(STD,2);
STD=STD(1,[1:n-1]);
[number index]=min(STD); for i=1:index
[pnumber pindex]=min(tmp); x(pindex)=x(pindex)+1; c(pindex)=c(pindex)+1; tmp=c./e; end x
sumprice=sum(x.*eachprice)+sum(pprice) return %计算e(j)
k=1/log(xsize(1)); for j=1:xsize(2) tempsum=0;
for i=1:xsize(1)
temp=p(i,j)*log(p(i,j)); tempsum=tempsum+temp; end
e(j)=-k*tempsum; end
%求差异性系数g(j) g=1-e;
clear temp; temp=sum(g);
for j=1:xsize(2)
w(j)=g(j)./temp; end
xxsum=sum(x2); for i=1:xsize(1) x2=x2./xxsum; end
x2=x2';
w2=w*x2; %得到第二w2数据
w3=(data(1)/data(4))/(data(2)/data(5)); pw=[w1 w2 w3]; ppw=pw;
ppwsum=sum(ppw); n=size(ppw,1); for i=1:n
ppw(i,:)=pw(i,:)./ppwsum;
end
R=ppw';
%对pw 标准化得到y pwsize=size(pw); temp=max(pw); for i=1:pwsize(1)
y(i,:)=pw(i,:)./temp; end
clear temp; %计算p(i,j) temp=y';
temp=sum(temp); for i=1:pwsize(1)
for j=1:pwsize(2)
p(i,j)=y(i,j)/temp(j); end end
clear temp; %计算e(j)
k=1/log(pwsize(1)); for j=1:pwsize(2) tempsum=0;
for i=1:pwsize(1)
temp=p(i,j)*log(p(i,j)); tempsum=tempsum+temp; end
e(j)=-k*tempsum; end
%求差异性系数g(j) g=1-e;
clear temp; temp=sum(g);
for j=1:pwsize(2)
ppw(j)=g(j)./temp; end
pxxsum=sum(ppw); for i=1:xsize(1)
ppw=ppw./pxxsum; end
ppw=ppw';
w=ppw*pw; %得到w 数据 e=w*R;
c=data(1);
disp('请输入一个txt 的图书总价数据的矩阵');
[filename pathname]=uigetfile('*.txt','请择择文件'); name=[pathname filename]; dif=fopen(name,'r');
price=fscanf (dif,'%f');
%c=[8991 17322 5481 7266 1731 35256 6375 19983 29946 7101 7794 8220 744 2850 2715 3645 4767 2796 23112 10503 1347];
%e=[0.0461 0.0548 0.0397 0.0452 0.0497 0.0537 0.0391 0.0585 0.0552 0.0444 0.043 0.0505 0.039 0.0537 0.0533 0.0374 0.0456 0.046 0.0593 0.0528 0.0327];
%price=[225674.1 486748.2 121130.1 189916 65951.1 1131718 128137.5 561522.3 7339765 199538.1 304745.4 206322 20162.4 100035 98011.5 102424.5 185913 64587.6 834343.2 305637.3 60749.7]; tmp=c./e; ptmp=tmp; pc=c;
eachprice=price./c; x=zeros(1,21);
ppx=round(c*0.03); x=ppx+x;
pprice=ppx.*eachprice; sum(pprice) px=x;
STD=std(ptmp);
zongzijin=input('请输入总资金数:(单位\元)'); while sum(eachprice.*px)
ptemp=std(ptmp); STD=[STD ptemp]; end
n=size(STD,2);
STD=STD(1,[1:n-1]);
[number index]=min(STD); for i=1:index
[pnumber pindex]=min(tmp); x(pindex)=x(pindex)+1;
c(pindex)=c(pindex)+1;
tmp=c./e;
end
x
sumprice=sum(x.*eachprice)+sum(pprice) return
20