一种基于分布式技术的停车位分配方法与流程

文档序号:17669222发布日期:2019-05-15 22:56阅读:194来源:国知局
本发明涉及停车位分配方法,更具体说,它涉及一种基于分布式技术的停车位分配方法。
背景技术
::当前,泊车位难寻已成为大型城市通病,因停车问题引发的纠纷屡见不鲜。无论在北京、上海等超大型城市,还是重庆、成都等特大城市,甚至人口只有几万、十几万的县城和乡镇,停车难的问题都给群众生活和政府交通管理带来了诸多烦恼。而且停车问题也带来了多种并发症,例如交通拥堵等问题,停车问题直接影响是增加了泊车巡航时间,增加了车主的交通开销和生活成本,间接影响也有,例如降低人民生活幸福指数,引发车主之间矛盾等等。此外,随着中国城市居民生活水平的不断提高,人们的休闲活动也日趋频繁,如假日旅游、活动购物、观看演出、电影等日常活动,此时大量且集中的家用车出行者根据目的地信息,去选择距离最近的地方停车,这些出行者一致的停车目标导致的结果是都无法实现既定的停车目标,都可能造成区域交通的混乱,带来严重的交通问题。在我国,无法做到城市停车位长远规划和短时间内扩建大型停车场的状况下,设计切实可行且有效的停车机制可以在很大程度上缓解城市交通压力,同时由于汽车拥有量的快速增长,设计停车机制对于未来智能交通系统也是不可或缺的一环。对于现有的交通状况,研究者们已设想了许多可能的交通拥堵情况,在此情景下设计高效且可行的停车机制,有助于直接降低寻泊流量,减少不必要的交通问题状况,与扩建停车场和进行交通管制等方法具有同等的重要性。而停车分配问题的解决方案会随着问题组合和最坏情况下的最优复杂度规模的增长而增长。市面上现有的停车位分配大都采用贪心算法,为车辆分配一个最近的停车位,并没有研究如何分配停车位以优化和解决停车位分配不均及优化社会效益。在建设智慧交通和大数据时代的大背景下,如何利用大数据技术有效改进现有的停车位分配方法是一个值得研究的课题。专利201810235965.7“一种基于大数据的停车位分配系统”提供了一种基于大数据的停车位分配系统,该方法部署了用于停车导航的底层传感器及线上管理的服务器等硬件设施,实现了车位可用性的实时监控与物理导航,实现了对于车位不同功能的管理,有助于停车场内部的管理与使用,有助于减少停车场管理人员的工作量与工作难度,是智能控制与大数据技术结合的巨大突破,是城市交通中停车服务的重要创新。该发明适用于停车场的停车管理、记录与收费工作。专利201810852256.3“车位分配方法与装置”提供了一种车位分配方法及装置,该方法通过获取用户信息、车辆类型、预设位置,为用户分配一个在对应时段内可用的停车位,实现了车位的实时化管理与预测,有助于提高停车位的利用率,能实现车位在不同时段的有序化管理与车位信息的公开,是车位管理与计算机算法技术的良好结合,对传统停车领域于计算机技术融合具有重要意义。这两种方法主要采取基于传感器的停车位感知与基于用户需求与停车位实时可用性的线上分配系统与,实现了对用户停车需求的车位分配。但是这些方法只实现了对于车位可用性的实时分配,并没有线上算法进行整体车位的统筹与分配,不能第一时间为用户规划代价较低的停车路线,更不能通过线上算法优化匹配信息,进而达到优化公共停车资源的目的,因此没有从根本上提高停车位分配效率。技术实现要素:本发明的目的是克服现有技术中的不足,提供一种基于分布式技术的停车位分配方法。这种基于分布式技术的停车位分配方法,包括构造数据库、用户需求采集、数据预处理、运行线上算法、发送分配结果和终端导航;构造数据库:数据库表结构的设计,对于用户信息的存储以及查询有着决定性的影响,进而影响着整个系统能否成功运行;本专利采用基于mysql和hbase数据库的表结构及其数据库进行用户数据的存储。用户需求采集:收集归一化时隙内用户的停车请求,用户使用智能终端,通过搜索和点选的方式选取目的地,然后将目的地坐标信息和用户当前坐标信息通过bd09ii(百度经纬度坐标)的形式返回给服务器,服务器计算用户到目的地附近停车位的代价,并且对用户及停车位进行编号,将每个用户的数据信息存储至用户信息表中。数据预处理:在服务器接受用户需求的阶段,需要在归一化时隙内收集用户需求的各个数据信息并且对用户及涉及到的停车位进行编号,收集的信息包括用户当前坐标数据、用户目的地坐标数据、用户目的地临近停车位坐标数据,并且通过上述数据信息,计算出用户抵达各个停车位的距离代价数值。运行线上算法:在算法运行阶段,系统把归一化时隙内的预处理数据汇总成代价矩阵,输入线上算法,运行得到包含有分配信息的分配矩阵,并且根据分配矩阵及用户信息表中的编号进行解码,得到每个用户的分配结果。发送分配结果:根据算法运行得到的分配结果,将每条分配结果发送至对应用户的智能终端。终端导航:智能终端根据接收到的分配结果,对用户进行实时导航,引导用户到算法分配的停车位。该方法的系统模块化结构如图1所示,具体实现步骤如下:步骤1、构造数据库根据算法需要的数据进行表结构设计,采用包含有用户编号、用户当前坐标数据、用户目的地坐标数据和可达停车位编号的表结构用以存储用户信息,用包含有停车位编号、停车位坐标、停车位可用状况和可达用户编号的表结构用以存储停车位信息,用包含有用户编号、停车位编号、行车距离的表结构用以存储线上算法的中间量。步骤2、用户需求采集在归一化时隙内,系统通过智能终端进行信息采集,用户使用智能终端,通过搜索和点选的方式选取目的地,然后将目的地坐标信息和用户当前坐标信息通过bd09ii的形式返回给服务器,服务器将接收到的用户信息编号并存储至用户信息表中,服务器根据用户目的地信息检索周围可用停车位,并且将停车位信息编号存储至停车位表中。步骤3、数据预处理通过步骤2中用户信息表及停车位信息表,计算每个用户可达的停车位及对应的行车距离,将用户编号、停车位编号与对应的行车距离存储至算法中间量表中。步骤4、运行线上算法步骤4.1、算法原理本专利采用基于遗传算法的改进算法进行线上运算,遗传算法具有良好的可分布性,其算法流程主要可分为个体生成、适应度计算、筛选父代、交叉遗传与输出条件判定。该算法的流程图如图2所示。步骤4.2、算法的分布式实现map阶段:mapping阶段将保存在hdfs中的个体矩阵信息输入到线程中,对节点上的种群进行非支配排序操作,并通过轮盘赌博的筛选方法选出当前父代并将生成的父代进行shuffling混洗操作传入reduce。此阶段输入为分配到该节点的若干个个体信息,输出为<id,(i,des(i),d(i))>,其中作为key值的id为个体的编号除以10之后向下取整的整数值,即将当前的key值设置为reduce阶段节点的编号,如此可以保证reduce阶段每条线程需要处理的个体数不超过十条,value值由个体编号,个体适应度以及个体的矩阵信息组成。reduce阶段:reduce阶段的输入为具有同一id节点编号作为key值的键值对,即<id,(i,des(i),d(i))>,reduce阶段通过相同key值id将对应的个体分配到同一个reduce节点上,reduce阶段中个体的数据是从value值里面获取的个体矩阵信息以及个体适应度。通过判断节点上是否有满足输出条件的个体或种群,如果满足则合并输出,不满足则对节点上的种群进行交叉遗传和变异操作,生成新的个体,新的个体id保留父代id,编号i按照顺序继承父代编号,将生成的子代个体保存进新的个体信息矩阵中,作为下一阶段的map的输入值。步骤5、发送分配结果通过寻找步骤4中算法得到的解集中适应度最大的个体,若有多个最优个体,则任取其一,通过解码找到每个车辆编号i与其对应的停车位编号j。解码过程为遍历匹配矩阵,找到第i行中为1的列数j,则用户编号i被分配的停车位编号为j。将每条匹配结果通过服务器发送至对应的用户智能终端。匹配结果包括用户编号、停车位编号、行车距离与停车位坐标信息。步骤6、终端导航用户智能终端在收到步骤5中发送的匹配结果后,通过行车导航功能,以匹配结果所示的停车位为目的地进行驾驶导航。作为优选:所述步骤4.1包括以下步骤:步骤4.1.1、个体生成用dij表示用户编号i到达停车位编号j的行车距离,由服务器算法中间量表中当前时隙内所有的匹配信息按照编号顺序生成包含所有dij的距离矩阵dij。定义二进制决策变量(xij)i∈nt,j∈mt,来表示分配过后停车位的占用状况,见公式(1):公式(1)中的变量xij构成的矩阵xij满足每行每列最多只有一个值不为0的约束条件,该矩阵中为1的值代表对应的车辆i匹配到了对应的停车位j,其物理意义是:一辆车可以被分配到一个停车位,而一个停车位上最多只能分配一辆车。根据已生成的矩阵dij和xij,以及其约束条件,根据算法的目标得到系统模型,见公式(2):xij∈{0,1},i∈nt,j∈mt遗传算法基因编码常用的类型为十进制与二进制,二进制编码一般来说运算快,符合最小字符集原则,便于用模式定理分析,但是同时也有着汉明距离较大,连续函数离散化时的映射误差,容易陷入局部最优的缺点;十进制编码又称实数编码,实数编码是遗传算法中在解决连续参数优化问题时普遍使用的一种编码方式,具有较高的精度,在表示连续渐变问题方面具有优势,但也存在着变异不稳定等缺点。本专利采用二进制矩阵编码的形式,矩阵内每个位置只有一位二进制数,用1代表对应车辆i分配到停车位j,用0表示车辆未匹配到的车位,生成如下所示的满足约束条件的匹配矩阵:根据算法中间量表中数据,读取归一化时隙内的用户与停车位之间的行车距离信息,生成距离矩阵dij,根据矩阵维数,随机生成包含有不同匹配信息的匹配矩阵,这些匹配矩阵即为个体,并且在之后的迭代运算中,个体的总数量保持不变,个体举例如下:步骤4.1.2、适应度计算适应度计算包括线性标定、动态线性标定、幂律标定、对数标定和指数标定等,各种计算方式对应的数据特征也不同,本算法数据特征具有个体数值大,且个体之间差距较大,更适用于动态线性标定,因此本算法采用动态线性标定。产生个体后,每个个体即为一组储存了车辆与车位的匹配信息的匹配矩阵,将个体的分配矩阵与代价矩阵进行如下的矩阵乘算操作:得到如下所示只包含车辆与对应车位的距离信息的个体代价矩阵:对此个体代价矩阵内所有数值遍历求和则得到了按照该个体进行分配后所需要的代价总和des(i),通过线型规划的方法,将种群中的最大个体代价值减去当前个体代价值,然后加上一个极小数ξ的k次幂,k代表迭代次数,以此结果记作该个体的适应度,见公式(3):f′=fmax-f+ξk(3)步骤4.1.3、筛选父代在求得个体代价与适应度后,按照随机轮盘赌的方式进行父代的个体选择:随机轮盘赌即根据个体当前适应度值,划分每个个体到不同的取值范围,然后再总范围内生成一个随机数,将随机数所在的取值范围内的个体选出,重复操作直至父代个体数达到总容量,举例见表1。表1个体编号12345678910代价总和30604528355055403332适应度300153225105202728表中适应度总和为192,则在1到192之间取随机整数,若取的整数在[1,30]则添加一个1号个体到父代群体中,若取的整数在[31,45]则添加一个3号个体到父代群体中,若取的整数在[46,77]则添加一个4号个体到父代群体中,以此类推。表中2号个体的适应度是0,所以在选择个体时不占区间,即变相淘汰掉最差的个体。使用此方法进行父代选择可以使优秀的个体更容易被选择进入父代,也保证了非优秀个体有机会被选入父代,并且可以降低当前种群中最劣个体的选中几率。步骤4.1.4、交叉遗传在选出父代个体后,进行交叉遗传运算。交叉运算时,如果两个父代个体为同一个体选出,则两两之间不进行交叉运算。选取两个不同个体编号的父代个体,每个个体的每一行以50%的概率选出作为子代的遗传信息,生成子代个体直到子代个体数目达到父代个体数目。当子代个体产生后,如果个体内有不符合分配矩阵约束条件的匹配信息行,则搜索冲突行对应的代价矩阵信息,寻找优于当前匹配信息或增加代价相对较小的匹配信息进行替代。冲突时复本操作,举例如下:当生成的子代个体如上所示时,第一行与第四行产生冲突,不满足匹配矩阵的约束条件时,寻找其对应的代价矩阵行,在不产生新冲突的前提下,搜寻优于当前代价的匹配或者增加代价相对较小的匹配。步骤4.1.5、输出条件判定根据时隙内用户请求,通过贪心算法求得无约束条件下的最小代价和des(min),若当前最优个体达到最小代价des(min)的水平,则输出最优个体作为最优解。当个体的适应度达到预期或无变化时,将适应度最高的个体进行输出,得到pareto占优解集。本发明的有益效果是:本发明提出了一种基于分布式技术的停车位分配方法,该方法能够为车主提供一个可用且与目标点临近的停车位,能在很大程度上减少车主的寻泊时间,减少寻泊成本,并且在优化城市交通大环境与停车效益方面具有一定的益处。针对高峰时段数据实时性与计算量大的问题,本专利创新性地提出了基于遗传算法的改进分布式算法,可以用mapreduce框架进行算法的分布式运算,在很大程度上增加了系统的抗压能力与匹配结果的准确性。同时,这种分布式计算技术也减轻了后台管理者的工作负担,不需要根据道路情况与实时信息进行参数的调整与把控,在一定程度上提高了城市交通管理的效率,加快了智慧城市的建设。附图说明图1为停车分配系统模块化结构图;图2为遗传算法流程图;图3为遗传算法mapreduce框架图;图4为用户信息采集终端图;图5为智能终端导航图。具体实施方式下面结合实施例对本发明做进一步描述。下述实施例的说明只是用于帮助理解本发明。应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。所述的基于分布式技术的停车位分配方法,具体实现步骤如下:步骤一、构造数据库本发明涉及的数据库表中,mysql中设计了三个表结构:users、parkingslot、matchdistance,其中表结构与图2中字段一一对应。其中users表包含的是用户编号、用户当前坐标数据、用户目的地坐标数据和可达停车位编号,parkingslot表中包含的是停车位编号、停车位坐标、停车位可用状况和可达用户编号,matchdistance表中包含的是用户编号、停车位编号、对应行车距离。步骤二、用户需求采集假设有车主需要寻找目的地附近的停车位置,首先通过图4的地图搜索界面寻找目的地,并选择前往,选择目的地后客户端将用户当前的坐标以及目的地坐标以bd09ii数据格式返回给服务器,服务器根据时隙内接收到的请求顺序,为用户编号,将对应编号的用户以及用户信息存储入users表中,并且将用户可达的停车位按照时隙内顺序编号并存入parkingslot表中。步骤三、数据预处理通过步骤二中存入users表和parkingslot表中的可达与坐标信息,通过距离计算接口计算用户到达各个停车位的行车距离,并且将对应的用户编号、停车位编号与行车距离存入matchdistance表中。通过用户编号与停车位编号的总数生成距离矩阵。通过距离矩阵生成包含不同匹配信息的个体矩阵存储至hbase临时表中。步骤四、运行线上算法基于mapreduce的改进遗传算法是在mapreduce分布式计算模型中实现的,关键是map函数、reduce函数以及jobcreate函数的设计。map函数主要负责搜索到hbase子表的个体匹配矩阵。reduce函数主要负责汇总map函数的输出结果并且产生最终的符合输出条件的最优解集。jobcreate()函数用来完成用户关于作业运行的自定义配置并提交到集群中运行。本算法的输入数据是存储在hbase中,因此mapreduce作业的inputformat设置为tableinputformat。由于生成的子代个体还要存入hbase的临时表中,因此mapreduce作业的outputformat设置为tableoutputformat。hadoop将hbase表作为输入时,是根据hbase表的region数据分割split,即每一个region对应一个split,因而也对应一个mapper。通过设置inputformat为tableinputformat,mapper把每个region按照rowkey划分成<key,value>对,key对应该子表的每一个rowkey,value对应该行所包含的数据。matchmapper继承自tablemapper<text,doublewritable>,这样就可以直接处理hbase表中的数据。matchreducer继承自tablereducer<text,doublewritable>,这样就可以把reduce函数的输出结果写入hbase表中。matchdriver负责配置分布式运行集群环境、生成mapreduce作业并提交执行。mapper的主要功能是输入若干个体矩阵并且按照适应度大小排序与父代筛选,然后传送给reducer中处理。实现map函数的关键代码如下:reducer的主要功能是汇总各个mapper的输出结果,并根据适应度大小进行排序后输出。本系统中的reducer通过比较个体的适应度及个体的代价值来判定是否满足输出条件。reduce函数的关键代码如下:在实现了map函数和reduce函数之后,还需要设置mapreduce作业的运行信息以及map与reduce函数的调用。mapper的实现类名、reducer的实现类名、inputformat格式、outputformat格式、以及作业的输入数据和输出数据的位置等,关键代码如下:配置完自定义作业后,就可以进行算法的运行,关键代码如下:jobjob=jobcreate();flag=job.waitforcompletion(true);步骤五、发送分配结果步骤四中,通过运行结果得到的分配矩阵,进行逐行分解,每个用户编号与其对应的停车位编号,存入matchdistance表中,并且将表中对应用户编号的匹配信息,发送给用户的智能终端。步骤六、终端导航用户根据接收到的停车位匹配信息,以及用户的当前位置进行实时导航,导航功能采用百度地图开发者工具中的导航模块为基础进行实现,如图5所示。本发明在实现提出的基于分布式技术的停车位分配方法时建立了信息存储的mysql数据库,与存储算法初始矩阵的hbase数据库。该系统使用了4台pc机,三台型号为delloptiplex7050mt,一台型号dellinspiron7557,intelcorei7-6700cpu,8g内存,gtx960gpu,1thdd,256gssd。其中一台安装window10操纵系统作为开发主机,其余3台安装linuxcentos6.4操作系统作为工作集群。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1