出版社售书

  • 格式:doc
  • 大小:107.77 KB
  • 文档页数:7

课程设计论文
学院: 理学院
专业: 数学与应用数学
课程名称数学建模课程设计
出版社向大学生售书问题
题目
学生姓名学号
指导教师雷英杰杨明
2015年6月
出版社向大学生售书问题
摘要
一家出版社要建立代售点向大学生售书,并且在代售点只能向本区或者相邻的一个区售书,而且代售点为整数,因此我们利用整数线性规划来解决此问题,我们建立0-1模型来求解此问题,求得在5、7区建立代售点最为合适。

关键词:出版社;售书;线性规划; MATLAB
1引言—问题重述与分析
1.1问题的重述
一家出版社准备在某地向七个区大学生供应图书,每个区的大学生数量如图所示(单位:千人),出版社准备在该市设立两个图书代理销售点,每个代理点只能想该地区和一个相邻的地区售书,出版社知道售书覆盖的人群越大,所获得的利润也就大,所以出版社要选择两个恰当的代理销售点使覆盖的人群最大。

现在所要解决的是选在合适的代理销售点。

1.2 问题的分析
书是人们进步的阶梯,售书问题普遍受到人们的关注。

近年来随着科学技术的发展,电子图书、网上书城等的出现,人们阅读的方式越来越多,而书的销售问题也越来越受销售商的关注。

如何选择待销售点才能使卖出的书最多,销售商获得的利益最大,成为问题的关键所在。

在许多候选地区中选择最优的地区,制定最优的规划方案,显然必须建立优化模型,每个地区都选与不选的可能性,这就必须用到0—1规划模型,立两个销售代理点, 在满足以下的条件的情况下,要想得到一个最优计划,出版社就需要设计一个合理有效的投资方案:
1.只能建立两个销售代理点
2.每个销售代理点只能向本区和一个相邻区的大学生售书
在上述要求中,将每两个相邻地区之间连线表示该地区建立售代关系,这种售代关系据有建立与不建立两种选择,显然每个地区只能选择一个销售或者代理,最优方案就是选择权值最大与次大的连线,将上述方案限制转化为约束条件,并使目标函数,约束条件决策标量转化为数学符号,利用MATLAB软件来求最优解。

将大学生数量为34,29,42,21,56,18,71的区分别标号为1、2、3、4、5、6、7区,划出区与区之间的如下相邻关系图:
2模型假设
选择代理销售点时,只考虑该地区总人数以及相邻地区,对人员的迁入迁出,人
员的消费能力,人们的需求不予考虑;
1、只有两个销售代理点,且每个销售代理点只能向该区和他临近的去售书。

2、7个销售区中没有人员的流动
3、书的供应量远远满足学生的需求
4、销售代理点向两个地区的学生销售书的价格相同
5、不考虑邻区因学生买书的路费问题而减少书的购买
6、售书多少与人数多少成正比
7、每个人的消费能力是相等的
3模型的建立
决策变量:设在 1 2 3 4 5 6 7 中的某两地之间代售关系Xi(i=1,2,3…10)Xi=1表示在其建立代售关系。

Xi=0表示没有建立代售关系
目标函数:所能供应的大学生的数量Q千人;则
Q=63*x1+76*x2+85*x3+50*x4+63*x5+92*x6+39*x7+77*x8+74*x9+89*x10+71*x11;
约束条件
综上所述:
将其化为标准形:
4 模型求解
在MATLAB中输入以下代码,见附录1.通过运行MATLAB教学软件,我们可以得到该售书问题的最优解,即建立代售关系的最优方案,其截图为:
[x,fval,exitflag,output]=bintprog(f,a,b,aeq,beq)
Optimization terminated.
x =
1
1
fval =
-177
exitflag =
1
output =
iterations: 4
nodes: 1
time: 0.0312
algorithm: 'LP-based branch-and-bound'
branchStrategy: 'maximum integer infeasibility'
nodeSrchStrategy: 'best node search'
message: 'Optimization terminated.'
6结论
从以上结果中可以看到在 2 和 5 之间建立代售关系即在 2 ( 5 )建立代售点并向5(2 )售书,4 和7 之间建立代售关系即在4 (7 )建立代售点并向7 ( 4 )售书,可是大学生的人数最大,为177千人。

(详细结果见附录2)
但考虑到地区中人数的问题,以及现实中去买书的路费问题,所以销售代理点应建立在人数较多的地区,在 2 、5 地区中 5 区人较多为56千人,在 4 、7 地区中7 区中人数较多为71千人,所以最好把两个销售代理点建在 5 区和7 区。

附录:
f=[34+29 34+42 29+42 29+21 29+56 42+21 21+56 21+18 21+71 56+18 18+71]
f =
63 76 71 50 85 63 77 39 92 74 89
>> a=[1 1 1 1 1 1 1 1 1 1 1;1 1 0 0 0 0 0 0 0 0 0;1 0 1 1 1 0 0 0 0 0 0;0 1 1 0 0 1 0 0 0 0 0;0 0 0 1 0 1 1 1 1 0 0;0 0 0 0 1 0 1 0 0 1 0;0 0 0 0 0 0 0 1 0 1 1;0 0 0 0 0 0 0 0 1 0 1] a =
1 1 1 1 1 1 1 1 1 1 1
1 1 0 0 0 0 0 0 0 0 0
1 0 1 1 1 0 0 0 0 0 0
0 1 1 0 0 1 0 0 0 0 0
0 0 0 1 0 1 1 1 1 0 0
0 0 0 0 1 0 1 0 0 1 0
0 0 0 0 0 0 0 1 0 1 1
0 0 0 0 0 0 0 0 1 0 1
>> b=[2 1 1 1 1 1 1 1]
b =
2 1 1 1 1 1 1 1
>> aeq=[]
aeq =
[]
>>
>> beq=[]
beq =
[]
f=-f
f =
-63 -76 -71 -50 -85 -63 -77 -39 -92 -74 -89
[x,fval,exitflag,output]=bintprog(f,a,b,aeq,beq)
参考文献
[1]蔡锁章主编,数学建模原理与方法[M]. 北京:海军出版社,2000年6月第1版
[2]甘应爱田丰等编,运筹学[M].北京:清华大学出版社,2005年6月第3版。