论文部分内容阅读
摘要:在实际工作中经常会遇到分组分配的问题,本文就该问题进行研究,首先给出传统的解决算法,并在此基础上提出一种动态调度模型进行解决,实现高效、动态、均衡分组分配的目的。
关键词:分组分配;均衡;高效;调度模型
中图分类号:F293.3 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02
目前,在保障性住房的实际分配工作中,很多保障性住房分配管理机构都使用电脑摇号的形式,将保障性住房房源按照一定的分配规则分配至符合申请条件的申请家庭手中,在很大程度上提高了分配工作的效率,使得分配更公平、公开,减少了人为操作的可能,但同时也会遇到房源和申请家庭数量较大,申请家庭属地范围广,由于工作时间和摇号分配场地空间有限等客观因素的制约,给分配工作的组织、管理和实施带来极大的不便,本文将就计算机如何实现对保障性住房公平、合理地分组分配进行讨论,以解决这一矛盾。
1 保障性住房分组分批分配的具体流程和要求
这里以某市住房保障管理中心的摇号分配系统为例,具体流程和要求如下:房源和申请家庭的准入。在分组之前应根据相关政策、法规的规定,对待分配的房源和申请家庭进行评估和审核,确定房源是否符合建筑质量标准,是否满足分配和入住条件,确定申请家庭的实际人口数、实际家庭收入、劳动力状况等,是否满足法定的申请条件。只有符合相应条件的房源和申请家庭才可以参加分组和分配摇号。[1]
2 保障性住房分配中分组的传统计算方法
2.1 分组数据准备。保障性住房分配涉及的数据主要有房源信息和申请家庭信息两种,这两种信息的采集一定要全面、完整,能充分表达分组所需的有关属性,如申请家庭有关信息:户籍所在地、家庭人口数、成员中是否有残疾及残疾类别和等级等;房源有关信息:小区编码、小区名称、楼号、单元号、楼层、室号、面积大小等。同时对两种信息还要分别增加分组信息,以便分组过程中暂存和分组后保存分组结果使用,本文中对两种信息分别增加2个分组信息字段:group1和group2,group1保存按家庭人口数和房源面积对应关系分组结果,group2保存按照申请家庭户籍所在地分组及划拨相应房源的结果。[2]
2.2 按家庭人口数和房源面积对应关系分组。按照法律、法规和规章的具体规定,按家庭人口数的多少先将申请家庭分为M组,本文中分组为2组:2人以下(含2人)组、3人以上(含3人)组;然后按房源面积大小将房源也分为M组,本文中分组为2组:40平方米以下(不含40)组、40平方米以上(含40)组。房源信息和申请家庭信息中group1字段根据所属的组分别赋值为:1或2。分别统计每组的房源总数、申请家庭和楼层照顾家庭数量,得到count_gk_rooms,count_gk_families,count_gk_care_families(其中1≤k≤2,1≤n≤7)。
2.3 分别对(二)中得到的各对应组按照申请家庭户籍所在地(所属街道或社区)对该组的申请家庭和房源再进行分组。具体过程如下:
2.3.1 将申请家庭按户籍所在地分组,户籍所在地相同的家庭分到同一组,本文分为10组,将申请家庭信息中group2字段根据所属的组赋值为:1至10之间的某个数。统计每组申请家庭数和楼层照顾家庭数,得到count_gi_gj_families,count_gi_gj_care_families(其中1≤i≤2,1≤j≤10)。
2.3.2 统计每个房源小区中每层房源的数量、每层房源剩余数量和所有小区每层房源的总数,本文共5个房源小区,楼层最高为7层,得到count_qm_fn_rooms,count_qm_fn_RR,count_fn_rooms(其中1≤m≤5,1≤n≤7),初始时count_qm_fn_RR=count_qm_fn_rooms。针对每个房源小区依次进行如下的房源分组划拨:
(1)计算属照顾楼层房源的分组划拨总数,如果count_f1_rooms≥count_gk_care_families(其中1≤k≤2),则该小区属照顾楼层房源为全部一层,分组划拨总数:
Count_f1_tm_care_rooms =count_qm_f1_rooms / count_f1_rooms × count_gk_care_families
Count_f2_tm_care_rooms =0
如果count_f1_rooms < count_gk_care_families 且 count_f1_rooms + count_f2_rooms ≥ count_gk_care_families(其中1≤k≤2),则该小区属照顾楼层房源中一层不足的部分由二层补足,分组划拨总数:
Count_f1_tm_care_rooms = count_qm_f1_rooms
Count_f2_tm_care_rooms = count_qm_f2_rooms / count_f2_rooms ×(count_gk_care_families-count_qm_f1_rooms)
如果count_f1_rooms < count_gk_care_families 且 count_f1_rooms + count_f2_rooms < count_gk_care_families(其中1≤k≤2),则该小区属照顾楼层房源由一、二层组成,不存在补足,分组划拨总数:
Count_f1_tm_care_rooms = count_qm_f1_rooms
Count_f2_tm_care_rooms = count_qm_f2_rooms
这里所有结果应保留小数部分,以便下面分组划拨减小误差。 (2)对应每个申请家庭分组计算小区中属照顾楼层房源的划拨数(包括一、二层):
Count_gi_gj _f1_tm_CR= Count_f1_tm_care_rooms × count_gi_gj_care_families /
count_gi_care_families
Count_gi_gj _f2_tm_CR= Count_f2_tm_care_rooms × count_gi_gj_care_families /
count_gi_care_families
计算小区划拨属照顾楼层房源后一、二层剩余数:
count_qm_f1_rooms= count_qm_f1_rooms -Count_gi_gj _f1_tm_CR
count_qm_f2_rooms= count_qm_f2_rooms -Count_gi_gj _f2_tm_CR
这里所有结果应保留小数部分,以便下面分组划拨减小误差。
(3)属照顾楼层房源的分组划拨后,对应每个申请家庭分组计算小区内每楼层剩余房
源的划拨数(包括一至七层):
Count_gi_gj _fn_tm_R= count_qm_fn_rooms×(count_gi_gj_families-count_gi_gj_care_families)/ (count_gi_families-count_gi_care_families)
这里所有结果应保留小数部分,以便下面计算减小误差。对应每个申请家庭分组计算小区中一、二层实际划拨数:
Count_gi_gj _f1_tm_R= Count_gi_gj _f1_tm_R+Count_gi_gj _f1_tm_CR
Count_gi_gj _f2_tm_R= Count_gi_gj _f2_tm_R+Count_gi_gj _f2_tm_CR
这里结果舍弃小数部分,因为房源的实际分配和使用中,不存在小数。然后计算该小区
对应关系分组的每层房源剩余数:
count_qm_ fn_RR= count_qm_ fn_RR-sum(Count_gi_gj _fn_tm_R,1≤j≤10)
其中sum(Count_gi_gj _fn_tm_R,1≤j≤10)为求和函数,代表j分别取值为1至10时,Count_gi_gj _fn_tm_R值的和。
参考文献:
[1]吴延卯.基于Web的住房保障管理信息系统设计与开发[J].软件导刊,2012(7):65-67.
[2]谭立元,刘婷婷,巩腾.我国保障性住房动态分配管理模式研究[J].中国市场,2012(28):48-49.
关键词:分组分配;均衡;高效;调度模型
中图分类号:F293.3 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02
目前,在保障性住房的实际分配工作中,很多保障性住房分配管理机构都使用电脑摇号的形式,将保障性住房房源按照一定的分配规则分配至符合申请条件的申请家庭手中,在很大程度上提高了分配工作的效率,使得分配更公平、公开,减少了人为操作的可能,但同时也会遇到房源和申请家庭数量较大,申请家庭属地范围广,由于工作时间和摇号分配场地空间有限等客观因素的制约,给分配工作的组织、管理和实施带来极大的不便,本文将就计算机如何实现对保障性住房公平、合理地分组分配进行讨论,以解决这一矛盾。
1 保障性住房分组分批分配的具体流程和要求
这里以某市住房保障管理中心的摇号分配系统为例,具体流程和要求如下:房源和申请家庭的准入。在分组之前应根据相关政策、法规的规定,对待分配的房源和申请家庭进行评估和审核,确定房源是否符合建筑质量标准,是否满足分配和入住条件,确定申请家庭的实际人口数、实际家庭收入、劳动力状况等,是否满足法定的申请条件。只有符合相应条件的房源和申请家庭才可以参加分组和分配摇号。[1]
2 保障性住房分配中分组的传统计算方法
2.1 分组数据准备。保障性住房分配涉及的数据主要有房源信息和申请家庭信息两种,这两种信息的采集一定要全面、完整,能充分表达分组所需的有关属性,如申请家庭有关信息:户籍所在地、家庭人口数、成员中是否有残疾及残疾类别和等级等;房源有关信息:小区编码、小区名称、楼号、单元号、楼层、室号、面积大小等。同时对两种信息还要分别增加分组信息,以便分组过程中暂存和分组后保存分组结果使用,本文中对两种信息分别增加2个分组信息字段:group1和group2,group1保存按家庭人口数和房源面积对应关系分组结果,group2保存按照申请家庭户籍所在地分组及划拨相应房源的结果。[2]
2.2 按家庭人口数和房源面积对应关系分组。按照法律、法规和规章的具体规定,按家庭人口数的多少先将申请家庭分为M组,本文中分组为2组:2人以下(含2人)组、3人以上(含3人)组;然后按房源面积大小将房源也分为M组,本文中分组为2组:40平方米以下(不含40)组、40平方米以上(含40)组。房源信息和申请家庭信息中group1字段根据所属的组分别赋值为:1或2。分别统计每组的房源总数、申请家庭和楼层照顾家庭数量,得到count_gk_rooms,count_gk_families,count_gk_care_families(其中1≤k≤2,1≤n≤7)。
2.3 分别对(二)中得到的各对应组按照申请家庭户籍所在地(所属街道或社区)对该组的申请家庭和房源再进行分组。具体过程如下:
2.3.1 将申请家庭按户籍所在地分组,户籍所在地相同的家庭分到同一组,本文分为10组,将申请家庭信息中group2字段根据所属的组赋值为:1至10之间的某个数。统计每组申请家庭数和楼层照顾家庭数,得到count_gi_gj_families,count_gi_gj_care_families(其中1≤i≤2,1≤j≤10)。
2.3.2 统计每个房源小区中每层房源的数量、每层房源剩余数量和所有小区每层房源的总数,本文共5个房源小区,楼层最高为7层,得到count_qm_fn_rooms,count_qm_fn_RR,count_fn_rooms(其中1≤m≤5,1≤n≤7),初始时count_qm_fn_RR=count_qm_fn_rooms。针对每个房源小区依次进行如下的房源分组划拨:
(1)计算属照顾楼层房源的分组划拨总数,如果count_f1_rooms≥count_gk_care_families(其中1≤k≤2),则该小区属照顾楼层房源为全部一层,分组划拨总数:
Count_f1_tm_care_rooms =count_qm_f1_rooms / count_f1_rooms × count_gk_care_families
Count_f2_tm_care_rooms =0
如果count_f1_rooms < count_gk_care_families 且 count_f1_rooms + count_f2_rooms ≥ count_gk_care_families(其中1≤k≤2),则该小区属照顾楼层房源中一层不足的部分由二层补足,分组划拨总数:
Count_f1_tm_care_rooms = count_qm_f1_rooms
Count_f2_tm_care_rooms = count_qm_f2_rooms / count_f2_rooms ×(count_gk_care_families-count_qm_f1_rooms)
如果count_f1_rooms < count_gk_care_families 且 count_f1_rooms + count_f2_rooms < count_gk_care_families(其中1≤k≤2),则该小区属照顾楼层房源由一、二层组成,不存在补足,分组划拨总数:
Count_f1_tm_care_rooms = count_qm_f1_rooms
Count_f2_tm_care_rooms = count_qm_f2_rooms
这里所有结果应保留小数部分,以便下面分组划拨减小误差。 (2)对应每个申请家庭分组计算小区中属照顾楼层房源的划拨数(包括一、二层):
Count_gi_gj _f1_tm_CR= Count_f1_tm_care_rooms × count_gi_gj_care_families /
count_gi_care_families
Count_gi_gj _f2_tm_CR= Count_f2_tm_care_rooms × count_gi_gj_care_families /
count_gi_care_families
计算小区划拨属照顾楼层房源后一、二层剩余数:
count_qm_f1_rooms= count_qm_f1_rooms -Count_gi_gj _f1_tm_CR
count_qm_f2_rooms= count_qm_f2_rooms -Count_gi_gj _f2_tm_CR
这里所有结果应保留小数部分,以便下面分组划拨减小误差。
(3)属照顾楼层房源的分组划拨后,对应每个申请家庭分组计算小区内每楼层剩余房
源的划拨数(包括一至七层):
Count_gi_gj _fn_tm_R= count_qm_fn_rooms×(count_gi_gj_families-count_gi_gj_care_families)/ (count_gi_families-count_gi_care_families)
这里所有结果应保留小数部分,以便下面计算减小误差。对应每个申请家庭分组计算小区中一、二层实际划拨数:
Count_gi_gj _f1_tm_R= Count_gi_gj _f1_tm_R+Count_gi_gj _f1_tm_CR
Count_gi_gj _f2_tm_R= Count_gi_gj _f2_tm_R+Count_gi_gj _f2_tm_CR
这里结果舍弃小数部分,因为房源的实际分配和使用中,不存在小数。然后计算该小区
对应关系分组的每层房源剩余数:
count_qm_ fn_RR= count_qm_ fn_RR-sum(Count_gi_gj _fn_tm_R,1≤j≤10)
其中sum(Count_gi_gj _fn_tm_R,1≤j≤10)为求和函数,代表j分别取值为1至10时,Count_gi_gj _fn_tm_R值的和。
参考文献:
[1]吴延卯.基于Web的住房保障管理信息系统设计与开发[J].软件导刊,2012(7):65-67.
[2]谭立元,刘婷婷,巩腾.我国保障性住房动态分配管理模式研究[J].中国市场,2012(28):48-49.