一种关于电梯合理收费的算法研究

2013-06-07 07:32王常春罗东升刘衍民
遵义师范学院学报 2013年1期
关键词:每层离家住户

王常春,罗东升,刘衍民

(遵义师范学院 数学系,贵州 遵义 563002)

电梯收费是物业管理中普遍存在的一个问题,电梯收费的办法很多,有的按楼层高度和居住人口收取费用,有的按建筑面积收取费用,但大多没有给出一个合理的解释,没有给出相关的计算方法或计算方法粗糙,引发不少争议。本文给出一种与居住人口、楼层高度及人口分布都有关的计算方法,经认真分析,该算法并不是简单的正比关系,而是一个由两个一次函数构成的分段函数,此计算方法能为物业管理提供方便、合理的电梯收费算法。

1 模型的建立与问题分析

这里结合具体例子给出分析,例如,一幢n层的楼房,每层有m家住户,其居住人口

用a[m][n]表示,第j层第i住户的人口用a[i-1][j-1]表示。随着居住人口的迁入迁出我们只需修改矩阵a[3][16]即可,如1、2、3楼住户不坐电梯可将登记住户中人口记为0,也可以如实登记。

为了便于问题的分析,我先做一些合理的假设:

(1)假定每人乘坐电梯次数基本相等。

(2)用每人回家一次并且离家一次乘坐电梯的耗费与所有人回家一次并且离家一次乘坐电梯的耗费之比作为每人应缴纳费用占总费用之比。

(3)假定每人每乘坐电梯一层的费用相等。

(4)个别人可特殊对待,如不会乘坐电梯的小孩或病人可在人口登记a[m][n]中计数为0,或计0.1、0.2等等。

(5)对于多人同时乘坐电梯的情况,假定这种情况对每个人来说是几率相等的,把它看做是每个人单独乘坐的凸组合,费用分配按单独乘坐相同比例分配。

基于以上假设我们只需考虑每人回家一次并且离家一次乘坐电梯的耗费与所有人回家一次并且离家一次乘坐电梯的耗费之比即可算出每人应缴纳费用。因此需先计算出该楼每层的居住人数(应用函数void perfloornumber()),再计算出该楼居住的总人数(应用函数f l oat sum())。

因为回家时电梯不一定停靠在一楼,离家时电梯也不一定停靠在家门口,因此应该先算出电梯的停靠期望高度,电梯的期望停靠高度与总人数(指乘坐电梯的总人数)和每层居住人口有关。因为所有人离家时,都到达一楼,离家与回家的次数相等,所有人离家的概率为0.5,因此停靠一楼的概率为0.5;所有人回家的概率为0.5,因而停靠在其余各层的概率为该层人数与总人数之比的一半。因此期望高度为hight=0.5*1+0.5*[(b[start]/s)* start + …+(b[n-1]/s)*(n-1)+(b[n]/s)*n],其中b[j]为第j 层居住人数,s为乘坐电梯的总人数(计算停靠期望高度应用函数f l oat hight())。

下面计算每个人离家并回家一次的距离,值得注意的是在此过程中走过的距离并不是楼层高度的2倍。每人回家时应将电梯从期望高度将电梯停靠在一楼然后再回家,第j层住户的人回家所用距离记为dis1[j]=hi-1+j-1,第j层住户的人离家所用距离记为dis2[j]=f[j]+j-1,其中hi 表示期望停靠(层数)高度,f[j]=fabs(hi-j)(应用函数void j_dist()计算第j层回家并离家一次的期望距离)。再算出所有人回家然后离家一次的期望距离之和(应用函数f l oat totle_dist())。

第j层每人回家然后离家一次的期望距离之和(层数)与所有人回家然后离家一次的期望距离之和(层数)之比为p[j]=d[j]/tot le_dist()(应用函数void j_gailv())。

由于我们假定每人乘坐电梯次数基本相等,因而可以把每住户回家然后离家一次的期望付费之比,作为一阶段(一个月或一年)乘坐电梯付费之比。第j层第i住户的付费为charge[i][j]=totle_charge*p[j]*a[i-1][j-1](应用函数void payoff()计算),其中totle_charge为总费用。

2 算法程序设计

为了避免函数单值的局限性,在程序设计中采用空函数,这样可以方便地输出数组,避免把数组输出全部放在主函数,这样程序层次感增强,形式更加灵活、自由,编写方便,可读性好。为了使用方便,在该程序中设置了四个常量符号:每层住户数m,层数n,开始计费层数start,电梯总费用totle_charge及一个住户人口登记矩阵a[m][n],针对不同的楼房,我们只需要修改这五个参数即可应用该算法。

3 结果分析

程序运行结果表1。

表1 每层每人平均付费情况

从算法分析我们可以知道,每层人均付费为

当hi>j时,y=( j+2hi-3)*{ totle_charge /{d[j]/{b[start]*d[start]+…+b[n-1]*d[n-1]+b[n]*d[n]}},

当hi

下面对每层的人均付费作回归分析,MATLAB程序如下:

运行结果如下:

图1 每层每人的平均付费函数图

从该数据分析,可知每层每人的平均付费是由两个一次函数构成的分段函数(见图1)。

当hi

当hi〉j时,y=1.3708x-1.3609,其中x为楼层,y为该层的每层每人的平均付费;

其中hi=5.736,数据拟合与算法设计非常吻合。

如果某层改为营业场所人数剧增,人流量过大的,会改变电梯停靠的期望高度,因为该层的人越多停靠该层的概率就越大,相应的付费结果会跟着发生变化。

例如,若将人口登记矩阵中a[3][15]改变为100,这时我们再来看其他住户的费用有无变化,我们将相应参数变化时,所得结果记录见表2。

下面对每层的人均付费作回归分析,MATLAB程序如下:

运行结果如下:

表2 某层改为营业场后每层每人平均付费情况

图2 某层改为营业场后每层每人的平均付费函数图

从该数据分析,可知每层每人的平均付费是由两个一次函数构成的分段函数(见图2)。

当hi

当hi〉j时,y=1.117x-1.117,其中x为楼层,y为该层的每层每人的平均付费;

其中hi=6.823,两次数据拟合与算法设计都相当吻合。

下面为前后两次每层人均付费:

比较两次实际每层人均付费明显后一次居民付费降低了,但是总平均付费并没有减少。

第一次总人数152人,总付费2000,总体平均人均付费13.1579; 第二次总人数248人,电梯停靠的期望高度由5.736改变为6.823,总付费3263.158,总体平均人均付费13.1579;两次线性回归效果都比较好,说明算法合理,相比之下第二次居民得到了实惠,这种结果可能是由于顶层居住人数增加,更多人可以搭便车;相反,如果第四层人口剧增,每层人均付费会增加。该算法的好处是考虑了人口分布对人均付费的影响,这种结果类似于智猪博弈,也与公共产品的提供类似。比如说,村里住着两户人家,一富,一穷,有一条路年久失修,这时富户修路,穷户只等走路即可。

[1]谭浩强.C程序设计[M].北京:清华大学出版社,2004.

[2]秦娇华,向旭辉.常用算法手册[M].北京:中国铁道出版社,2011.

[3]张维迎.博弈论与信息经济学[M].上海:上海人民出版社,2006.

[4]王晓东.计算机算法设计与分析[M].北京:电子工业出版社,2011..

[5]赵静,但琦.数学实验与数学建模[M].北京:高等教育出版社,2010.

猜你喜欢
每层离家住户
离家的叹号
攀登脚手架
寻找离家最近的THX认证影院
智取钻石
离家的路
顶层住户的无奈——渗漏篇
每层球有多重
简单的高招
青海省人民政府办公厅关于认真做好住户调查样本轮换工作的通知
火警现场