CN115997205A - 使用运输系统内地点和地方之间的行程搜索或比较地点的方法 - Google Patents
使用运输系统内地点和地方之间的行程搜索或比较地点的方法 Download PDFInfo
- Publication number
- CN115997205A CN115997205A CN202180047369.6A CN202180047369A CN115997205A CN 115997205 A CN115997205 A CN 115997205A CN 202180047369 A CN202180047369 A CN 202180047369A CN 115997205 A CN115997205 A CN 115997205A
- Authority
- CN
- China
- Prior art keywords
- travel
- cluster
- path
- house
- shortest
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 276
- 230000036961 partial effect Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 abstract description 28
- 230000008569 process Effects 0.000 abstract description 9
- 239000013598 vector Substances 0.000 description 69
- 238000004422 calculation algorithm Methods 0.000 description 48
- 238000009499 grossing Methods 0.000 description 48
- 230000006870 function Effects 0.000 description 27
- 238000004364 calculation method Methods 0.000 description 17
- 238000003032 molecular docking Methods 0.000 description 17
- 238000003860 storage Methods 0.000 description 16
- 238000013459 approach Methods 0.000 description 15
- 238000012546 transfer Methods 0.000 description 13
- 238000012986 modification Methods 0.000 description 12
- 230000004048 modification Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 10
- 238000005457 optimization Methods 0.000 description 9
- 230000000670 limiting effect Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000012216 screening Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000011835 investigation Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000003442 weekly effect Effects 0.000 description 4
- 238000010420 art technique Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000011478 gradient descent method Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- CDBYLPFSWZWCQE-UHFFFAOYSA-L Sodium Carbonate Chemical compound [Na+].[Na+].[O-]C([O-])=O CDBYLPFSWZWCQE-UHFFFAOYSA-L 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000008433 psychological processes and functions Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 238000013316 zoning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3605—Destination input or retrieval
- G01C21/3617—Destination input or retrieval using user history, behaviour, conditions or preferences, e.g. predicted or inferred from previous use or current movement
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3423—Multimodal routing, i.e. combining two or more modes of transportation, where the modes can be any of, e.g. driving, walking, cycling, public transport
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3492—Special cost functions, i.e. other than distance or default speed limit of road segments employing speed data or traffic data, e.g. real-time or historical
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3863—Structures of map data
- G01C21/387—Organisation of map data, e.g. version management or database structures
- G01C21/3874—Structures specially adapted for data searching and retrieval
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/14—Travel agencies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/16—Real estate
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Tourism & Hospitality (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Databases & Information Systems (AREA)
- Primary Health Care (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Social Psychology (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了使用运输系统内地点和地方之间的行程搜索或比较地点的方法,包括接收包含在运输系统中的至少一名代表;接收包含源位置和目标位置的请求;和使用旅行描述获得的信息响应请求;本发明搜索或比较站点,基于通勤时间的房地产搜索或比较方法,该方法有效地处理公共交通和房地产数据,以计算房地产和车辆停靠点之间的行进时间,这些时间被存储,引入一个请求框架,其允许表达广泛的搜获或比较请求,在请求处理期间,该方法识别依赖于任何房地产的通勤路径的部分,由于这些部分的时间被提前计算并存储,所以该方法可以以可扩展的方式确定到达每个房地产的通勤时间,结果就是,该方法快速响应了当今最大的大都市区之一的房地产市场内的需求。
Description
相关申请的交叉引用
本专利申请是以下专利申请的部分继续申请:
国家 申请号 申请日
美国 16/274,242 2019年2月13日
美国 16/864,157 2020年5月1日
美国 16/894,761 2020年6月6日
美国 16/940,418 2020年7月28日
将其通过引用并入本文,如同完全阐述一样。当前申请的其余部分包含额外的内容,这些内容可能已被申请公开,也可能未被公开。本发明公开内容中引用的任何现有技术均被认为是本领域的普通知识;本领域的任何普通技术人员都具有该知识。
背景技术
本发明涉及搜索或(searching)比较(comparing)地点。传统的搜索目标是从一系列可能的替代方案中找到一个实现优化目标的地点(site),例如在给定特定行程要求以及所查找的地点的期望特征的情况下,最小的路线长度(route length)。例如,在给定所需的通勤目的地(destinations of commutes)和房地产(real estate property)特征的情况下搜索房地产时,一个目标可能是枚举具有匹配特征且通勤时间最短的房地产。另外的目标可能是使用通勤时间比较任意的房地产。
发明内容
实施例包括用于搜索或比较地点的方法(method),实现并执行该方法的计算机系统,以及接收(receives)来自用户的搜索或比较请求并以地点和路线信息(information)做出响应(responds)的计算机服务。
根据本发明的实施例,提供了一种使用路线或路线长度进行搜索或比较地点的方法。该方法使用大量的预处理来预先计算(precompute)并在数据库中存储每个地点与交通系统内的代表(representatives)之间的路线或路线长度。该方法引入了地点的搜索或比较框架(framework)。收到包含路线说明的请求后,将从数据库中检索预先计算的数据,以快速计算每个地点的路线或路线长度。可以使用路线或路线长度搜索或比较地点。
根据本发明的实施例,提供了一种使用路线或路线长度进行搜索或比较地点的计算机系统。该系统是硬件和软件的组合。它从一个或多个数据提供者(data providers)获得交通系统和地点的数据。该系统构建的图表(graphs)可对交通系统内的地点和代表之间的行程进行模拟。该系统计算图表路径(graph paths),并且存储图表路径或图表路径长度。这样可以在收到请求时,快速计算每个地点的路线或路线长度,并且使用路线或路线长度搜索或比较地点。
根据本发明实施例,提供了一种使用路线或路线长度进行搜索或比较地点的计算机服务。该服务允许用户通过设备(例如智能手机)上的用户界面指定搜索或比较请求。该请求包括路线说明和筛选条件(filtering condition)。作为响应,该服务将显示与筛选条件相匹配的地点以及匹配地点的路线或路线长度,或者该服务使用路线或路线长度比较地点。
从根本上来说,必须快速计算每个地点的路线长度。我们概述一个数学证明。考虑任何搜索或比较方法M。我们可以设计一个对抗请求(adversarial request),该请求将强制M以任何给定的地点排序列表进行响应。对手(adversary)有两种机制可供使用:(1)提供具有路线说明的请求,其指定相对于路线长度的地点顺序(该顺序由对手选择),以及(2)向与对手选择的地点子集相匹配的地点提供一个带有筛选条件的请求。因此,M必须在请求时提供由对手任意选择的站点的有序列表。证明概述的细节不在本专利申请的范围之内。
所述方法,计算机系统,以及计算机服务各自共同执行的任务不是简单的通用的,也不是现有技术所能很好理解的。现有技术包括:US 8,417,409B2;延续案US 8,738,286B2;分案US 8,756,014B2;KR 10-1692501B1;延续案PCT/KR2016/01083;WO 2017/065431A1;US2018/0232824A1以及KR 10-1905593B1。
这里呈现的本发明的实施例是为了说明的目的;它们不是穷举的。对本领域普通技术人员来说,在不脱离实施例范围和精神的情况下,许多修改和变形将是显而易见的。
在本说明书中,所述术语“第一”,“第二”,“所述”,以及类似术语,不以任何限制意义使用,而是用于区分的目的,除非从上下文中可以清楚地看出。单数形式的表达包含复数,除非上下文另有明确表达。所述术语“具有”,“包括”,“包含”,以及类似术语,表示组件或特征的存在,并不排除其他组件或特征的存在或添加。
附图说明
包括在本发明公开中的附图示例了本发明实施例的各种特征和优点:
·图1:描绘了根据本发明实施例之一的通勤路径的行程时间的彩色渲染图示例,图例:“具有两条通勤路径的房地产的通勤路径的行程时间的彩色渲染示例:房地产→geo.0.0→geo.0.1→房地产,以及房地产→geo.1.0→房地产。我们使用了Google的地图图块引擎,也可以使用其他引擎。”;
·图2:描绘了根据本发明实施例之一的数据的预处理和存储的示例处理流程,图例:“数据的预处理和存储的示例处理流程”;
·图3:描绘了根据本发明实施例之一使用预处理的存储数据对请求作出响应的示例处理流程,图例:“使用预处理存储数据对请求作出响应的示例处理流程”;
·图4:描绘了根据本发明实施例之一的通勤路径的示例,图例:“示例通勤路径”;
·图5:描绘了根据本发明实施例之一的用于预先计算最短图表路径的公共交通系统图的扩展的示例,图例:“用于鱼线计算最短图表路径的公共交通系统图的扩展示例”;
·图6:描绘了根据本发明实施例之一预先计算的最短的行程时间的表/向量存储(vector storage)示例,图例:“预先计算的最短的行程时间的表/向量存储示例”;
·图7:描绘了根据本发明实施例之一的通勤路径分解的示例,图例:“示例通勤路径H→W1→W2→W3→W4→H被分解为(decomposed)房屋相关部分(绿色)以及独立于房屋的部分(黑色),显示在三个房屋H1,H2,和H3”;
·图8:描绘了根据本发明实施例之一的在通勤路径的起点处计算最短行程时间的示例,图例:“在通勤路径的起点处计算最短行程时间的示例”;
·图9:描绘了根据本发明实施例之一在通勤路径的终点处计算最短行程时间的示例,图例:“在通勤路径终点处计算最短行程时间的示例”;
·图10:描绘了根据本发明实施例之一用于在通勤路径起点处计算最短行程时间的伪代码(pseudocode)的示例,图例:“用于计算PathFromHomeDurations(→W)的伪代码的示例”;
·图11:描绘了根据本发明实施例之一的计算机系统的示例流程图,图例:“计算机系统的示例流程图,用于:预先计算并在数据库中存储数据,并使用从数据库检索的数据处理请求”;
·图12:描绘了根据本发明实施例之一的在用户智能手机上的用户请求以及计算机服务的响应的示例,图例:“用户智能手机上的用户请求和计算机服务的响应的示例”;
·图13:描绘了在行进开始附近进行平滑的示例;
·图14:描绘了在行程结束附近进行平滑的示例;
·图15:描绘了在行进开始附近和行进结束附近进行平滑的示例;
·图16:描述了在每个旅行端点附近至少有一个停站集群的平滑示例;
·图17:描绘了三个旅行路线的平滑的示例;和
·图18:描述了平滑的例子。
这些附图仅用于说明目的。本领域普通技术人员将容易认识到,其他附图可以例示本发明而不背离本发明的原理。
具体实施方式
4详细说明
本发明涉及使用任意优化目标来搜索或比较任意地点的一般情况,该任意优化目标使用到任意地方的路线或路线长度(routes or route lengths)。然而,为了便于说明,我们首先通过特定的地点(sites)-房地产,特定的地方(places)-工作地方,以及特定的优化目标-最小化房地产和工作地方之间最的通勤行程时间。该说明不是限制性的。在后面的部分中,我们将解释该方法在一般情况下的工作原理。
4.1房地产和通勤路线
寻找住宅是一项复杂的工作。人们花费大量的时间和金钱在搜索上。然而,技术已经开始有所帮助。存在几种在线可用的服务,其汇总房地产清单,并允许人们使用浏览器或智能手机方便地搜索具有特定特征的房地产,例如,价格,地理位置,卧室的数量等等。该搜索产生一个候选名单,然后人们通常会对其进行检查。
位置(location)可以说是任何房地产中最重要的特征,房地产经纪人的“位置,位置,位置”口号证明了这一点。我们的发明涉及该特征。
居民需要通勤去工作,学校或其他地方。这些通勤的行程时间会影响为特定的居民量身定制的房地产的价值。此外,就可以分配给生产活动更多时间,不需要花费精力来使人们四处走动等方面来看,减少大都市区所有居民的行程时间具有很大的全球经济价值。我们的发明有助于实现这些个人和全球价值。
举一个简单的例子,考虑居住在韩国首都的一个两口之家。一人是市政厅的政府职员,另一人是首尔国立大学主图书馆的图书管理员。他们目前居住在面积为69平方米的具有两间卧室和一个卫生间的公寓,需要支付押金350,000,000韩元。该公寓在经纬度(37.5333,127.0746)附近。他们的每日往返通勤时间总计为1小时41分(单程平均需要25分钟)。但是,事实证明,在他们搬到具有相同特征,但位于(37.5041,126.8888)附近的公寓后,他们可以将行进时时间缩短到1小时16分钟(节省25分钟)。所有公寓中的最短行进时间为50分钟。但是该公约具有其他的价格和尺寸(截止2018年2月19日的插图)。
为什么很难为所有人提供这些改进?一种初级的办法是考虑市场上所有具有家庭所需的尺寸和其他特征的房地产,并在给定工作地方的情况下,通过查询任何现有的在线路由引擎来计算行程时间。然而,这种方法无法扩展。一个问题是在现代大都市区市场中可获得的房地产数量众多。另外的问题是可能希望寻求改进的家庭/用户数量众多。即使我们假设我们可以廉价地查询路由引擎,但是问题的二次性质仍然使查询总体上昂贵。
我们如何才能为所有人提供这些改进?我们的发明给出了解释。其包括以下部分:
1.本发明定义了通勤路径(commute path)的模型。该模型具有通用性,可以覆盖现实中出现的各种通勤路径,例如上学,然后到钢琴班,再然后回家。我们能够快速找到使行程时间最短的房地产,从而提高了模型的实用性。
2.本发明提供了一种快速计算行程时间的优化方法。本发明确定依靠任何房地产的任何通勤路径的部分。这些部分的行程时间已被提前计算并存储。结果就是,当需要找到通勤路径的行程时间时,本发明能够快速组合(assemble)各个时间部分,以产生每个房地产的行程时间。
3.本发明的一个实施例是真是的计算机服务。该服务使得首尔市区的2500万居民能够使用出行时长搜索或比较房地产。
4.2方法概述
我们在广义上使用术语行程(travel),其包括移动的对象或数据。对行程的描述(description of travel)可以是本领域普通技术人员会命名的任何事物。以下是一些关于出行的描述的示例:(1)“嗨,哥们,你需要向北走一个街区,然后稍微左转”,以及(2)“5美元”。当我们表示对行程的描述时,我们可以使用术语行程路径(travel path)。行程的长度(length of travel)是本领域普通技术人员可以与行程相关联的任何数值(numericvalue),例如距离,货币成本等。作为其他示例,当我们表示代表时间的行程长度时,我们可以使用术语行程时间(travel duration)。行程长度本身就是对行程的描述。行程的描述:可能不包括任何行程长度,可能仅包括行程长度,或者还可能包括一些其他数据。
我们说明了该方法的一些功能并介绍了随后使用的术语。该方法可以计算每个房地产的通勤路径的行程时间。图1对此进行了说明。大都市区域用正方形着色。颜色代表使用公共交通工具从每个特定区域的房地产中通勤所需的时间:绿色表示通勤时间短,黄色长一些,红色最长。通勤路径从房产property开始,然后访问特定地方geo,...,最后返回到房产property。从某种意义上说,房产property是一个自由变量(free variable),而geo,...则是固定的。在图1中,有两条通勤路径:一条“抵达一处再从另一处出发”的通勤路径property房产→geo.0.0→geo.0.1→property房产,每周两次,以及一条“往返”通勤路径property房产→geo.1.0→property房产,每周三次。我们可以发现,鉴于这两条通勤路径及其频率,最短旅行时间的加权总和较小的房地产会形成不规则的斑块(深绿色),鉴于错综复杂的公共交通路线,这并不奇怪。
概括地说,该方法由两部分组成。第一部分计算房地产和代表(representatives)交通系统(transportation system)的站点之间的行程时间。这些行程时间存储(stored)在数据库(database)中,以便在收到请求(request)时可以方便地检索它们。如图2所示。第二部分处理请求。请求包括通勤路径以及房地产的期望的特征(features)。接收到(received)请求后,将从数据库中检索适当的行程时间,并将其与其他数据一起,为具有所需特征的每个房地产生成通勤路径的行程时间。如图3所示。此概述的详细信息及变形将在后续部分中描述。
4.3通勤路径
我们的方法可以处理人们在大都市区内进行的各种通勤。通勤始于我们称为房屋(home)的地点H。H是任意位置。它可以是任何房地产,例如公寓,出租房,带花园的房屋,牧场,酒店等。它还可以是人们工作的场所,餐厅,商店等。然而,作为命名约定,我们在本公开的大部分中,使用短语“房屋”;该约定不是限制性的。在一个实施例中,通勤者前往各个地方,然后返回地点H。
在一个实施例中,通勤时间在一天之内,例如通勤者早上离开H,然后在当天的晚上返回H。在其他实施例中,通勤时间超过一天,例如,某人上夜班,或者上班时间为25个小时。在一个实施例中,任何旅行都可以在具体时间开始,或者在具体时间结束,例如早上8:12。在其他实施例中,任何旅行可以在一定范围时间内开始或结束,例如“在早上”。
以最简单的形式,通勤者从H到地方W,我们可以称之为工作(work)。W是任意位置。它包括学校,祖父母的家,周末高尔夫球场,最喜爱的餐厅,医生的办公室,礼拜地方等。它还可以是某人居住的地方。然而,作为命名约定,我们在大多数公开内容中使用短语“工作”;该约定不是限制性的。然后通勤者从W返回H。我们将这两个行程称为往返通勤路径。如图4A所示。
抵达一处再从另一处出发的通勤路径是更复杂的通勤的一个示例。如图4B所示。此时通勤者从H到地方W1,然后通勤者从地方W1到其他地方W2。最后,通勤者从地方W2返回位置H。一个示例是,某人去学校,然后去钢琴班。
通常,我们的方法适用于任何旅行。在图4C中,我们看到一个通勤路径的示例,其具有从W4到W2的缺失行程,以及从W2到W3的重复行程。在图4D中,我们看到“开放”通勤路径的示例:从H离开,但是不返回H的通勤路径;以及返回H,但是之前并非从H离开的通勤路径。在图4E中,我们看到“断开的”通勤路径的示例。通勤路径可以从一个房屋开始,但可以在另一个房屋结束。我们的方法如下定义了通勤路径。
定义1通勤路径是发生在任意时刻的行程W2→W3,W4→W5,...,Wk-2→Wk-1,以及Hfirst→W1或Wk→Hlast的集合,其中k≥2,且k为偶数(因此通勤路径总是包括至少一个房屋和至少一个工作)。
通勤路径可以看做交通系统内路线的说明(specification)。在定义1中的各种W和H指明了通勤者希望前往的地方。
在一个实施例中,我们考虑一个更简单的通勤路径H→W1→W2→...→Wk→H,对于任意的k≥1,在行程之间具有共享的端点,并且起点和终点均是同一房屋。我们在本公开的大部分内容中都使用这个更简单的形式,因为它在实践中很常见,并且简化了我们的演示。但是,对于本领域普通技术人员来说,很明显,我们的方法适用于我们对于通勤路径的(一般)定义。
我们的方法找到沿任何通勤路径的最短的行程时间。各种现有技术本身已经解决了这一问题。但是,我们的方法可以在大大减少的时间内找到所有房屋的行程时间。
4.4交通系统预处理
该方法预处理有关公共交通系统的数据,以便预先计算(precompute)并存储所有房屋的最短出行。
4.4.1最短行程的计算
我们描述了一种方法用于有效计算所有的房屋和所有的公共交通站点位置之间的最短出行。在大多数的公开内容中,我们称站点为停靠站(stopstations),并且其包括公共汽车站,地图站台,或者两者都有。
该方法开始于对公共交通系统(public transportation system)建模的任意公共交通系统图(graph)GT,该图可从现有技术中获得。该图可以包含代表公共汽车站,地铁站台或两者的顶点(vertexes)。图表中还可以存在其他顶点,例如,代表车辆的停靠点或转弯处,或者步行的停顿点或转弯处。对应于车辆停靠点的顶点在图中用
STOPSTATION_s
表示,通过s索引。存在有方向的加权边(directed weighted edges),每个加权边代表沿着从边的源顶点到边的目标顶点的一段的行进时间。图中可能存在其他边。一条边可以表示从一辆车换乘到另一辆车。该图可以包含关于各种公共交通工具的出发时间或到达时间的数据。Dijkstra’s的最短图表路径(shortest graph paths)算法,或A*(A星号)搜索算法,通常用于计算具有最短图表路径长度(权重之和)的图表路径,代表最短行程时间,从
STOPSTATION_s’
到其他的STOPSTATION_s”,
对于任何的s’和s”,还包括行程是在具体时间开始,或者在具体时间结束。
我们的方法扩展了公共交通系统图GT。如图5所示。
第一个扩充引入了停靠站集群(clusters of stopstations)。该方法使用任意集群算法对停靠站进行集群;在一个实施例中,当两个停靠站之间的地理距离至多为阈值(threshold),例如5米,或者当两个停靠站之间的行程时间至多为临界值时,该方法将两个停靠站放到一个集群中。当我们指集群内的地理位置时,我们可以指集群的位置,例如集群的中心。对于每个停靠站集群c,该方法添加两个顶点
STOPSTATION_CLUSTER_SOURCE_c
以及
STOPSTATION_CLUSTER_TARGET_c
以及将集群与GT的停靠站连接的边
STOPSTATION_CLUSTER_SOURCE_c→STOPSTATION_s’
标记为FirstWaitGetOn,和
STOPSTATION_s’→STOPSTATION_CLUSTER_TARGET_c
标记为Zero,对于任意的s’,只要s’在集群c中。边的权重为零。结果图由GC表示,具有顶点VC和边EC。所有c的顶点的子集
STOPSTATION_CLUSTER_SOURCE_c
用VS表示。
第二个扩充引入了房屋集群。该方法使用任意集群算法对房屋集群;在一个实施例中,该方法使用与集群停靠站时相同的算法。类似的,我们可能会引用房屋集群的位置。对于每个房屋集群,该方法增加顶点
HOME_CLUSTER_SOURCE_s
以及顶点
HOME_CLUSTER_TARGET_s.
该方法使用步行将每个房屋集群连接到停靠站集群。具体的,如果对于任意的s和c,存在从房屋集群s的位置到停靠站集群c的位置的步行,且边的权重设置为步行的时间,该方法添加边
HOME_CLUSTER_SOURCE_s→STOPSTATION_CLUSTER_SOURCE_c
标记为Walk;以及当对于任意的c和t,存在反方向的从停靠站集群c的位置到房屋集群t的位置的步行,且边的权重设置为步行的时间,一个“反向的”边
STOPSTATION_CLUSTER_TARGET_c→HOME_CLUSTER_TARGET_t
标记为Walk。在一个实施例中,该方法将步行限制为以特定速度(例如4km/h)执行的最短步行,最多持续一个阈值(例如1小时)。结果图用G表示。我们用VH表示所有s的顶点
HOME_CLUSTER_SOURCE_s的集合;并且用EH表示所有的s和c的边
HOME_CLUSTER_SOURCE_s→STOPSTAT I ON_CLUSTER_SOURCE_c
的集合。
我们感兴趣的是计算从每个停靠站集群到每个房屋集群的最短图表路径,以及反过来从每个房屋集群到每个停靠站集群的最短图表路径。
我们注意到,我们的方法通过“统一”相对于最短图表路径本质上相同的位置,来显著提高最短图表路径计算的性能。例如,在一栋高层公寓大楼中,可能有数百个房屋,我们的方法将把它们“统一”到一个房屋集群中。因此,最短图形路径算法仅需要为一个房屋群集而不是数百个组成房屋计算最短图形路径。
然而,狄克斯特拉算法的标准应用仍会产生较差的性能。该应用程序从每个G中的STOPSTATION_CLUSTER_SOURCE_c
运算算法,没有任何
HOME_CLUSTER_SOURCE_s
顶点,然后从G中的每个
HOME_CLUSTER_SOURCE_s
运行算法,没有任何
HOME_CLUSTER_TARGE_t
顶点。组合的渐近时间复杂度(asymptotic time complexity)为
O(|VS|·(|EC|+|EH+(VC|+|VH|)log(|VC|+|VH|)))+
O(|VH|·(|EC|+|EH|+(|VC|+|VH|)log(|VC|+|VH|))).
我们的方法在此标准应用上有所改进。我们观察到,在给定相同的集群阈值的情况下,在大都市区中,通常情况下,房屋集群的数量明显大于停靠站集群的数量|VH|>>|VS|。利用这种观察,我们的方法使用了一种不同的算法用于计算从房屋集群的最短图表路径:该方法反转(reverses)G的边,并针对反转图中的每个
STOPSTATION_CLUSTER_TARGET_c,
使用狄克斯特拉算法(到任意顶点
HOME_CLUSTER_TARGET_t
都可以删除),计算到所有顶点
HOME_CLUSTER_SOURCE_s
的最短图表路径。这产生了预期的效果,因为当我们在反转图中,反转从
STOPSTATION_CLUSTER_TARGET_c
到
HOME_CLUSTER_SOURCE_s
的任意最短图表路径的边时,我们获得了原始(非反向)图中从
HOME_CLUSTER_SOURCE_s
到
STOPSTATION_CLUSTER_TARGET_c的最短图表路径。因此,我们方法的渐近时间复杂度只是
O(|VS|·((|EC|+|EH|)+(|VC|+|VH|)log(|VC|+|VH|))).
在实践中,我们的方法可以大大减少首尔市地区图G上的总运行时间。
在相反的情况下,当停靠站集群多于房屋集群|VH|<|VS|时,所述方法使用对称算法。在那种情况下,当计算从停靠站集群到房屋集群的最短图表路径时,该方法将边反向。
在一个实施例中,该方法使用出发时间(departure times)。对于给定的从
STOPSTATION_CLUSTER_SOURCE_c
的出发时间,该方法计算从每个
STOPSTATION_CLUSTER_SOURCE_c
到每个
HOME_CLUSTER_TARGET_t
的最短图表路径。在那种情况下,该方法使用适当的现有技术图表GT,该图表可以详细说明从公共交通工具站点的出发时间;在这种情况下,有时使用与时间和地理位置对应的顶点,以及代表从当时的地理位置开始的行程时间的边表示。类似地,该方法基于在
STOPSTATION_CLUSTER_TARGET_c
处给定的到达时间在反向图表中进行计算。最短图表路径将这些到达时间转换为从每个
HOME_CLUSTER_SOURCE_s
的出发时间。在给定到达期限(arrival deadline)的情况下,类似的图表可以用于计算最短图表路径。可以使用适当构造的图来计算截止日期之前到达的概率。
在一个实施例中,我们不使用任何顶点
STOPSTATION_CLUSTER_SOURCE_c
或者任何的顶点
STOPSTATION_CLUSTER_TARGET_c
来扩展GT。相反,我们直接使用具有任何顶点
STOPSTATION_s’
的Walk edges连接任意的顶点
HOME_CLUSTER_SOURCE_s
以及任意的顶点
HOME_CLUSTER_TARGET_t。
在一个实施例中,我们不使用任何的顶点
HOME_CLUSTER_SOURCE_s
或任何顶点
HOME_CLUSTER_TARGET_t
来扩展GT.相反,我们添加了顶点
HOME_s,
每个顶点代表一处房屋,我们直接通过Walk edges将其连接到任意顶点
STOPSTATION_s’。
在一个实施例中,我们不对房屋进行集群。
在一个实施例中,我们不对停靠站进行集群。
在一个实施例中,在给定到达期限的情况下我们计算最短图表路径:在给定每个房屋集群到达期限的情况下,计算从停靠站集群到达房屋集群的最短图表路径,或者在给定每个停靠站集群的到达期限的情况下,计算从房屋集群到停靠站集群的最短图表路径。
在一个实施例中,我们使用任意的最短图表路径算法而不使用Dijkstra算法,例如,A*(A星号)搜索算法。在一个实施例中,我们使用一个最短图表路径的近似算法(approximation algorithm)。我们可以使用没有任何性能改进的算法。
在一个实施例中,一些图形的边上的权重代表出行的货币成本,而不是行程时间。然后我们的方法基于通勤路径的货币成本搜索或比较房屋。可以使用边的权重的任何其他语义,例如:公共交通工具之间的换乘次数,等待时间,等待的货币成本,或者行程的距离。
在一个实施例中,我们基于一个多维成本(multi-dimensional cost)应用了多目标优化搜索(multi-objective optimization search)。例如,我们搜索一条最短图表路径,其长度表示行程时间,从而表示图形路径的货币成本至多为阈值,或者当货币成本作为一个补偿被添加到图表路径长度时。
在一个实施例中,出行路径用图表路径表示。我们使用最短图表路径计算最短出行路径的各种特征,例如:最短图表路径的第一个(即,登机)或最后一个(即下车)停靠站,最短图表路径的主要的交通停靠站,车辆换乘次数,出行期间花费最多时间的车辆(例如公共汽车1234),在停靠站总的等待时间,总的步行距离,特定的最短图形路径通常在高峰时段是否拥堵,或者沿图形路径的一系列地理位置。在请求处理期间这些特征可以被使用,以筛选特征与请求中指定的条件相匹配的出行路径。
在一个实施例中,我们计算一些图表顶点之间的两条或多条图表路径。例如,从顶点u到顶点v的一条图表路径上最多可以有一辆公共汽车,并且从顶点u到顶点v的其他图表路径上可以没有任何地铁,但是比最短图表路径长不超过10分钟。
在一个实施例中,我们计算符合各种筛选条件(filtering conditions)的图表路径。例如,最多换乘一次的图表路径,或者最多特定的步行时间。
在一个实施例中,我们使用路由引擎(例如现有技术)来计算房屋和公共交通站点之间的最短出行。因此,我们有时可能不使用在目前的当前4.4.1部分描述的图表。
在4.4.1部分描述的方法计算从每个房屋到每个停靠站的最短出行,以及反方向上的最短出行。接下来,我们描述了一种数据结构,用于有效存储和处理我们的方法实用的最短出行数据。
4.4.2最短行程的储存
在一个实施例中,我们的方法以向量形式(vector form)存储(stores)行程时间。该方法以某些顺序(例如随机顺序)将停靠站集群排序为s1,...,sn,并将房屋集群排序为h1,...,hm。在一个实施例中,这些排序是固定的。对于每个si,该方法使用房屋集群序列
υi=(ti,1,ti,2,...,ti,m)
存储一个从si到房屋集群的最短行程时间的向量,从而向量(vector)vi在坐标(coordinate)j处vi[j]的值为ti,j,等于从停靠站集群si到房屋集群hj的最短行程时间。如图6所示。
房屋集群序列简化了到每个房屋集群的最短行程时间的计算。例如,如果通勤者需要从停靠站集群出发,并且还需要从停靠站集群出发,则只需要简单地将向量和坐标相加即可,结果总和便包含从两个停靠站集群到每个房屋集群h1,...,hm的总的行程时间。
在一个实施例中,该方法使用相同的房屋集群序列存储从房屋到停靠站的反向行程的时间。即,该方法存储向量
υ′i=(t′i,1,t′i,2,...,t′i,m),
从而v'i[j]=t'i,j是从房屋集群hj到停靠站集群si的最短行程时间(注意换位;向量v'i用于停靠站集群,尽管行程是反方向的)。
通常,同一停靠站集群si的两个向量是不等的,vi≠v'i,因为到房屋的最小行程时间可能不同于从房屋出发的最小行程时间(行程通常不对称(not symmetric))。然而,在一个实施例中,该方法仅计算并存储两个向量之一,并且使用它代替另一个,这样可以节省时间和空间。在其他实施例中,该方法存储两个向量的坐标加权平均值(weighted average),这样可以减少最坏情况的误差。权重可以设置为0.5,或者可以偏重于从特定房屋集群出发的行程,或者偏重于到达特定房屋集群的行程,例如基于请求频率。
在一个实施例中,该方法使用一个字节的计算机内存来存储四舍五入到最接近的分钟的行程时间,该字节表示为0到254之间的无符号整数,其中255表示未知或太大的行程时间。此存储使用现代计算机硬件支持向量运算(Vector Operations)和饱和运算(Saturation Arithmetic)(例如AVX-512指令集,或GPU内部函数)实现有效的向量加法,同时将误差保持在最多半分钟的可接受水平上,并且覆盖长达超过4小时的普通行程时间。可以使用任何其他舍入方式(rounding),例如以秒计算的时间可以除以120,然后舍入为整数,它将以2分钟的粒度表示持续时间。
在一个实施例中,该方法存储存储的向量不用于集群。例如,s1,...,sn中的一些表示停靠站(不是停靠站集群),或者h1,...,hm中的一些表示表示房屋(不是房屋集群)。
在一个实施例中,该方法实用其他形式的向量存储行程时间。例如,哈希图(hashmap),或者(坐标,值)列表(list)。当存在很多未知的或过长的行程时间时,这些稀疏形式可能是有利的。
在一个实施例中,该方法使用遵循房屋集群序列h1,...,hm的向量存储行程路径,或者实用其他形式的向量,例如哈希图或(坐标,值)列表。这些行程路径可以用于在请求处理期间用于筛选其特征与请求中指定的条件匹配的行程路径。
4.5一条通勤路径的行程时间
我们描述了我们的方法如何有效地计算任何通勤路径的最短行程时间。考虑从房屋集群H离开,经过的k≥1工作,返回到房屋集群的任意通勤路径:H→W1→W2→...→Wk→H。我们想要找到对于每个H的这条通勤路径的最短行程时间。这可能是昂贵的,因为房屋集群的数量可能相当大,例如在集群半径为几米的条件下,房屋集群的数量为500000。但是,我们的方法引入了一种可以大大加快搜索速度的技术:该方法将任何通勤路径分解(decomposes)为独立于房屋的部分和依赖于房屋的部分,如图7所示。
4.5.1中间部分:行程W1→W2→...→Wk
该方法找到不包括家庭集群的行程W1→W2→...→Wk的最短行程时间。对于每个Wi→Wi+1部分,该方法查询路由引擎(例如现有技术),使用交通系统(例如,涉及步行,地铁和公交车,换乘,包括从Wi到Wi+1的直接步行)来计算从Wi到Wi+1的最短行程时间。然后,该方法将通过不同i的最短行程时间相加。结果总和表示为
我们注意到,只需要对路由引擎查询k-1次。该数量与房屋的数量无关。
在一个实施例中,当查询路由引擎时,该方法使用出发时间(departure time),到达期限(arrival deadline),或者请求的其他部分。
接下来,该方法计算通勤路径的抵达一处再从另一处出发部分(open-jaw part)的最短行程时间:包括房屋集群的两个部分H→W1以及Wk→H。这种计算需要特别快,因为每个房屋集群都需要其结果。
4.5.2开始(start)部分:行程H→W1
该方法考虑了从H到W1的两种方式。如图8所示。第一种方式是直接步行。放H和W1在附近(nearby)时,真正最短的行程通常是直接步行。该方法因此查询步行引擎(例如现有技术)来计算最短的步行时间walk(H→W1)。第二种方式使用交通系统。该方法找到在距W1阈值距离内(例如2000米)的停靠站集群(stopstation clusters),用集合A表示。该集合A是所有停靠站集群的集合{s1,...,sn}的子集(在图8中,A={s1,s2,s3})。该方法查询步行引擎,以获取A中每个si的最短步行时间walk(si→W1)。当H和W1不在附近(not nearby)时,真正的最短行程通常通过集合A中的停靠站,然后沿着相应的路线行走。由于我们应用两种方式的方法(two-way approach),因此得出的行程时间通常是最短的行程时间。
该两种方式的方法可以用于每个房屋集群。我们还记得,向量v'i包括从连续的房屋集群到停靠站集群si的最短行程时间。因此,该方法通过从数据库中检索向量v'i并使用以下公式
计算从房屋集群hj的最短行程时间。
在一个实施例中,只有当从房屋集群Hj到W1的距离小于阈值(例如2000米),或者当从房屋集群Hj到W1的行程时间小于阈值时,该方法才计算walk(Hj→W1)。我们用J表示这类的房屋集群的集合。
在一个实施例中,由于v'的向量表示,该方法使用对v'的向量运算(vectoroperations),共同计算每个房屋集群的行程时间,如下所示:
在一个实施例中,所述方法使用数学公式(mathematical formula)
其中,“+”运算(operation)会向向量的每个坐标值上添加一个数,并且“min”运算(operation)计算多个向量在每个坐标处的最小值。[073]行程时间的向量(a1,...,am)用PathFromHomeDurations(→W1)=(a1,...,am)表示。[074]用于计算PathFromHomeDurations的示例伪代码在图10中示出。
在一个实施例中,unit8数字格式用于存储aj,v'i[j],或者w。在一个实施例中,所存储数字的单位是分钟。在一个实施例中,使用从0到临界值(例如255)的饱和度算术对一些j执行求和v'i[j]+w。在一个实施例中,首先将被求和的v'i[j]转换为更大的数字格式,例如转换为fp16格式或者uint16格式,然后才将其添加到w,以避免加法期间发生算数溢出(arithmetic overflow)。在一个实施例中,使用用于向量运算(包括张量运算(tensoroperations))的至少一条指令(例如AVX-512指令或者硬件支持的GPU固有指令)来执行数学公式中包括的一些计算。在一个实施例中,对数学公式中包含的一些计算进行分割(partitioned),并且并行执行分割部分。
在一个实施例中,所述方法在停靠站集群位置处使用临近算法(nearest-neighbor)数据结构(例如KD树),在请求处理期间快速计算集合A。
在一个实施例中,所述方法将集合A限制为最接近W1的一定数量的停靠站集群的最大值,例如最多100。
在一个实施例中,所述方法将集合A限制为距离W1最多在一定长度(例如2000米)的不行范围内的停靠站集群。
在一个实施例中,所述方法预先计算在距离每个房屋集群位置临界距离内的点和房屋集群位置之间的最短步行时间,或者预先计算距离停靠站集群位置临界距离内的点和停靠站集群位置之间的最短步行时间。然后,在请求处理期间,所述方法不查询任何步行引擎,而是使用预先计算的步行时间。
在一个实施例中,使用忽略任何障碍物的测地线来估计最短的步行时间。这可能会以准确性为代价来加快walk(si→W1)的计算。
在一个实施例中,公式1中使用了出行路径。例如,如果用户请求指定了限定车辆换乘次数的条件,我们在公式中过滤si和j:我们将查询存储在出行路径中的换乘次数,并且当次数超过限定条件时,我们忽略公式中特定的si和j。
在一个实施例中,就像我们在v'i中所做的那样,通过停靠站si对行程时间进行分组,可以提高数据访问性能。实际上,尽管集合A取决于事先未知的用户请求,但是对于集合A中的每个si,可预测地需要访问大量的行程时间。
在一个实施例中,对于i的集合,向量v'i随机分布在不同的处理单元中。这可以降低计算向量(a1,...,am)的延迟,因为包括在集合A中的停靠站通常将在处理单元之间平均分配。
在一个实施例中,对于i的集合,向量v'i在处理单元中按地理位置分组。由于减少了对数据传输的需求,这可能提高了计算向量(a1,...,am)的吞吐量,这是因为事实上集合A通常由位于彼此附近的停靠站组成。
4.5.3结束(end)部分:行程Wk→H
计算是类似的,但是实用向量v,而不是v'。如图9所示。所述方法计算距离Wk的临界距离内的停靠站集群的集合B(在图9中,B={s4,s5})。然后,所述方法计算到房屋集群hj的最短行程时间为
与之前类似,在一个实施例中,由于v的向量表示,该方法根据公式2使用对v的向量运算来联合计算到达每个房屋集群的行程时间。在一个实施例中,所述方法使用数学公式
行程时间的向量(b1,...,bm)用PathToHomeDurations(Wk→)=(b1,...,bm)表示。
该方法使用与4.5.2部分类似的实施例。例如,在一个实施例中,该方法使用向量运算来一起计算向量(a1,...,am)的一部分和向量(b1,...,bm)的一部分。
4.5.4组合开始,中间以及结束部分
最后,该方法计算(computes)每个房屋集群的通勤路径的最短行程时间。该方法简单地将两个向量相加,并在坐标处移位值。我们通过
PathDurations(→W1→W2→...→Wk→)=PathFromHomeDurations(→W1)+PathToHomeDurations(Wk→)+PathNonHomeDuration(W1→W2→...→Wk) (公式3)
来表示所得的向量,其中,第一个“+”是向量的坐标方向加法,第二个“+”是向量的每个坐标处的值加一个数字。
在一个实施例中,该方法在给定沿任意通勤路径的任意地理位置处的具体的出发时间或到达期限的情况下,计算行程时间。
在一个实施例中,该方法为特定的通勤路径预先计算PathDurations。例如,该方法为学校中的每个W计算并存储
PathFromHomeDurations(→W)
和
PathToHomeDurations(W→)。
在请求处理期间,该方法从数据库中检索预先计算的向量,而不是使用公式1,公式2和公式3计算它们。
在一个实施例中,PathDurations的值可能会改变。考虑一所具有分区要求的学校W,该要求指定只有某些房屋可以将孩子送入学校。这可以通过以下方式简单地实现:对于学校区域(zone)之外地这些房屋集群,将向量PathFromHomeDurations(→W)坐标处的值设定为无穷大,并且类似地,设定向量PathToHomeDurations(W→)坐标处的值。当W是送货范围有限的餐厅,或者是管辖范围有限的政府办公室时,可以进行类似的更改。因此,更改的值可以被存储,并在请求处理期间被检索。
在一个实施例中,我们的方法将任意“操作”(manipulation)函数应用于向量vi,v'i,或PathDurations坐标处的值。例如,这可以帮助实施政府的政策,该政策降低了在受灾的经济特区中往返于大都市区某些地区的交通费用。可以在请求处理之前(例如全局策略)或在请求处理期间(例如用户个性化策略)执行应用程序。
在一个实施例中,该方法为房屋集群的子集计算PathDurations。例如,子集是根据用户请求指定的房屋特征的条件确定的。在一个实施例中,我们选择房屋集群的序列h1,...,hm,因此这些子集通常驻留在序列的一小段中,从而减少了数据传输。
4.5.5平滑
在一个实施例中,该方法对开始于工作位置的行进进行平滑处理。这在图13中说明了从工作位置Wk到家庭集群H的旅行结束部分Wk→H的情况。
在一个实施例中,该方法预先计算旅行的至少一部分(有时称为“旅行的至少一个部分描述”)并将其存储在数据库中,每个部分包括从车站集群到家庭集群的旅行描述的一部分(有时称为“旅行的第一部分描述”)。我们在广义上使用术语“部分”,与本领域普通技术人员对该术语的解释一致。在本发明公开中,任何实体都被认为是其自身的一部分,因此整个实体是该实体的一部分的实例。旅行的一部分可以更一般地解释为:旅行描述的一部分,从可以到达Wk的任何端点位置开始,到H结束。在一个实施例中,我们预先计算并存储旅行描述的一部分每个车站集群和每个家庭集群。在一个实施例中,我们预先计算并存储最短行程描述的一部分。在一个实施例中,我们预先计算并存储旅行描述(不删除任何部分)。在一个实施例中,我们减少了保持预先计算的旅行描述所需的存储空间,例如通过以减小的粒度存储其部分,例如每至少100米,或每至少10秒。在一个实施例中,我们压缩重叠的旅行路线,例如当两条旅行路线经过同一路段时。在一个实施例中,我们存储旅行描述的前缀,例如从旅行开始的2000米的距离内,或2分钟的旅行持续时间,或简单地存储旅行开始本身。在一个实施例中,我们不存储旅行描述中超出前缀的部分,即,我们不存储旅行的尾部,例如尾部1304。在一个实施例中,我们存储旅行尾部的概要,例如,我们存储旅行尾巴的持续时间。这允许我们的方法计算从工作位置到家庭集群的平滑旅行的持续时间,而无需存储关于旅行尾部的任何其他信息。在一个实施例中,我们结合两种或多种方法来确定旅行描述的一部分。我们使用在本发明公开中描述的涉及预计算和存储的其他实施例。预计算和存储至少一部分行程的许多其他方式对于本领域的普通技术人员来说将是显而易见的。
我们的方法在广义上使用预计算和存储。在一个实施例中,该方法预先计算旅行描述的片段,并将它们存储在数据库中。这可以通过多种方式完成。在一个实施例中,该方法确定粗化图,该粗化图是使用本领域已知的任何图粗化方法从运输图获得的。在一个示例中,粗化图的边是使用Geisberger、Sanders、Schultes和Delling的方法确定的快捷图边:Contraction Hierarchies:Faster and Simpler Hierarchical Routing in RoadNetworks,WEA 2008。在其他示例中,粗化图是使用本领域已知的任何图形汇总方法获得的,例如,在Liu、Safavi、Dighe和Koutra的调查论文中描述:Graph SummarizationMethods and Applications:A Survey,ACM Computing Surveys,Vol.51(3)2018.之后,从数据库中检索预先计算的旅行描述或预先计算的两个端点之间的旅行描述的部分的步骤包括计算粗化图中两个端点之间的路径,并至少组合沿路径旅行描述的一个片段,例如组合两条捷径,或在图形摘要中组合两条边。因此,预计算和存储只是在请求处理之前进行的一项活动,目的是使请求处理更加高效。
在包含工作位置Wk的请求到达后,该方法从数据库中检索至少一个预先计算的旅行部分P(有时称为“旅行的第二部分描述”),每个部分包括旅行描述的一部分s→H从站点集群s(有时称为“第二代表”)到家庭集群H(示例:1302、1303和1304说明从站点集群s到家庭集群H的旅行描述;而1301说明从工作位置Wk到停站集群s的旅行描述。这可以通过多种方式完成。在一个实施例中,检索使用基于预定阈值的约束,例如2000米的距离,或2分钟的行进时间。在一个实施例中,该方法确定在Wk的预定阈值内的站点集群s,并且部分P是站点集群s。在一个实施例中,该方法允许站点集群s任意远离Wk,但是:部分P位于Wk的预定阈值内,或者部分P包括在Wk的预定阈值内的位置。在一个实施例中,该方法检索满足约束的所有部分P。在一个实施例中,检索使用基于预定限制的约束,例如100。在一个实施例中,该方法检索不超过预定限制的部分P。在一个实施例中,检索到的部分P与Wk任意远,例如关于距离或行进持续时间。在一个实施例中,检索到的部分P最接近Wk。在一个实施例中,该方法检索最接近Wk的最大数量的部分P。在一个实施例中,两种约束都被使用。在一个实施例中,基于限制的约束包括基于阈值的约束,例如当站点集群稀疏地位于时。在一个实施例中,该方法使用交通图、近似最短路径、粗化图中的路径或测地线来确定距离或行进持续时间。在一个实施例中,该方法使用最近邻数据结构来确定其距离或行进持续时间在距Wk的阈值内的部分P。检索旅行的至少一个预先计算的部分P的许多其他方式对于本领域的普通技术人员将是显而易见的。
该方法确定部分P中包含的位置x。这可以通过多种方式完成。在一个实施例中,位置x被任意选择为在工作位置Wk的预定阈值内,例如在2000米的距离内,或在2分钟的行进持续时间内。在一个实施例中,位置x是部分P的最近位置,相对于距工作位置Wk的距离或行进持续时间。在其他实施例中,位置x是部分P的最下游(遵循行进序列s→H)位置。确定位置x的许多其他方式对于本领域的普通技术人员而言将是显而易见的艺术。
然后,该方法确定从工作位置Wk到位置x的行程Wk→x的描述(示例:1305,然后是1303)。这可以通过多种方式完成。在一个实施例中,该方法确定属于部件P并且可以从工作位置Wk到达的连接器c。在一个实施例中,连接符c是车站集群s。在其他实施例中,连接符c是位置x。在其他实施例中,我们选择最接近工作位置Wk的连接器c,例如通过从工作位置Wk开始运行最短路径算法(例如Dijkstra算法),并停止最短路径算法算法第一次访问属于部分P的位置。在其他实施例中,我们选择连接器c距离包含在部分P中的Wk位置最远,这样连接器c就不是距Wk比预定阈值更远,例如从Wk到P的距离或行进持续时间加上预定余量,例如1000米的距离或1分钟的行进持续时间。该方法确定从工作位置Wk到连接器c(示例:1305)的行程Wk→c的描述。然后,该方法确定从连接器c到位置x(示例:1303)的行程c→x的描述。在一个实施例中,两种行进描述中的任一种是使用最短路径算法来确定的。在一个实施例中,我们使用交通图、近似最短路径、粗化图中的路径或测地线来确定旅行Wk→x的描述。虽然我们可能会放弃确定真正最短路径的能力,但我们获得了有效确定距离Wk任意远的旅行描述的能力。在一个实施例中,我们预先计算并在数据库中存储至少一个旅行Wk→x的描述,并在请求处理时从数据库中检索预先计算的旅行Wk→x的描述。在一个实施例中,我们使用请求处理时当前的道路拥堵信息来确定行驶Wk→x的描述。确定行程描述Wk→x的许多其他方式对于本领域的普通技术人员来说将是显而易见的。
此外,该方法确定从位置x到家庭集群H的旅行x→H的描述(示例:1304)。这可以通过多种方式完成。在一个实施例中,该方法使用在请求处理时从数据库检索的行程s→H的描述的预计算部分来确定行程x→H的描述。在一个实施例中,行程s→H的描述使用平均道路拥堵信息,例如基于任何工作日内的时间窗期间的测量的平均值。在其他实施例中,该方法通过在请求处理时运行最短路径算法来确定行程x→H的描述。示例有益效果是在运行最短路径算法时可以使用请求处理时当前的道路拥堵信息。在其他实施例中,使用运输图、近似最短路径、粗化图中的路径或测地线来确定行程x→H的描述。一个示例有益效果是更少的空间可以足以在数据库中存储至少一部分行程。确定行程描述x→H的许多其他方式对于本领域的普通技术人员来说将是显而易见的。
然后该方法完成行程的平滑。在一个实施例中,该方法找到包括在至少一个检索到的部分P中的部分P,其最小化“平滑”行进的持续时间Wk→x→H(示例:1305,然后1303,然后1304)。在其他实施例中,该方法不使用最小值,而是使用任何标准来计算本发明公开描述的旅行描述,例如:过滤条件、多维成本、出发时间或到达期限。因此,“平滑”旅行的最终描述可能不会通过作为预先计算的旅行描述的开始的任何站点集群s(参见第4.4.2节)。甚至有可能从工作位置Wk到站点集群s太远(想想:远处的河流和桥梁),在这种情况下1301实际上不存在。
与现有技术方法相比,平滑通常产生具有更自然形状的行程描述。这个好处可以在一个例子中看出,在这个例子中,车站集群在工作位置Wk以北几米处,但从工作位置Wk到家庭集群H的最短行程实际上是从工作位置Wk出发的去南方。
平滑通常不会减少行程的长度。在一个实施例中,我们不执行平滑。当我们只对旅行的长度而不是对旅行的更一般描述感兴趣时,就会出现一个有利影响示例。
我们的平滑方法使用的P部分可以解释为现有技术使用的零维技术特征的一维概括,并可以称为以下任何名称:landmarks、portals、hub、beacons、seeds、transit nodes、中间路径点、粗化图的顶点等,或代表——例如,参见Sommer的调查论文:静态网络中的最短路径查询,ACM计算调查,Vol.46(4)2014。然而,我们的概括具有明显不同的技术特征。在某种意义上,一维部分P允许在空间中传播进入交通系统的良好入口点的好处。因此,两个可能彼此相距很远的工作位置可以使用相同的部分P作为进入交通系统的入口“点”(实际上是一维部分),在通往家庭集群的路上H.在一个实施例中,部分P是以代表为根的最短路径树的一部分;该部分是使用本发明公开中描述的任何实施例来确定的。因此,部分P可以包括最短路径树的分支。如果我们要使用传统的代表人数增加的方法。
上述步骤的顺序不是限制性的。上面,我们介绍了一个序列中的步骤:检索零件P,确定位置x,确定行程Wk→x的描述,以及确定行程x→H的描述。选择此顺序是为了提高演示文稿的清晰度。然而,在其他实施例中,该方法以其他顺序或并行执行一些步骤。例如,在一个实施例中,该方法从Wk开始执行最短路径算法,并且随着位置被访问,该方法检索遇到的部分P。该方法执行最短路径算法直到停止条件,例如:a已取回的部件P的数量达到预定限制,例如100,或已达到预定阈值距离,例如距离2000米,或行进时间2分钟。该方法为每个检索到的部分P选择一个位置x,例如每个部分P内最短路径算法到达的最远位置。最短路径算法构建的最短路径树自动产生行程描述从Wk到每个位置x。然后该方法确定从每个位置x到家庭集群H的旅行的描述。在一个实施例中,预先计算步骤,并且在请求处理期间检索预先计算的结果。例如,我们为至少一个工作位置Wk预先计算至少一个部分P。执行这些步骤的许多其他方式对于本领域的普通技术人员来说将是显而易见的。
在一个实施例中,我们选择要平滑的行程。给定家庭集群H和工作位置Wk,我们确定至少一个部分P。在一个实施例中,我们基于使用预定阈值的预设条件执行选择。例如,我们对位于预定阈值内的部分P进行平滑处理,例如距工作位置Wk 1000米或1分钟。该选择的一个示例有利效果是靠近Wk且未被平滑的部分P更有可能产生具有不自然形状的行程。在一个实施例中,我们基于比较行进距离或持续时间的预设条件来执行选择。例如,我们对P部分进行平滑处理,使行程持续时间Wk→x→Hj最小化;例如,我们通过以下方式实现这一点:根据第4.5.2节确定停站集群s1,...,sn,并通过识别最小化旅行持续时间walk(Wk→si)+vi[j]的停站集群si来选择部分P.选择的一个示例有利效果是我们可以将平滑的努力集中在与任何其他部分P相比更有可能产生最短平滑行程的部分P上。在一个实施例中,我们基于预设条件执行选择使用预定角度。例如,我们确定部分P和从Wk到达的测地线之间的角度,例如沿部分P上游的停站集群s处的角度(由1301和1302之间的角度说明)。当角度充分偏离0度时,例如角度在[-40,40]度的区间之外,然后我们使用部分P执行平滑。在其他示例中,我们运行从Wk开始的最短路径算法,并在最短路径算法首先访问的部分P的顶点处确定最短路径树与部分P之间的角度。在一个实施例中,我们继续运行最短路径算法,直到访问顶点的角度落在区间内。在一个实施例中,我们结合了两种或多种选择方法。选择的一个有利影响示例是我们可以将精力集中在平滑上,这可能会产生具有更自然形状的行程。对于本领域的普通技术人员来说,许多其他选择要平滑的行进的方式将是显而易见的。在一个实施例中,我们通过在以下各项中找到最短行程来完成平滑:至少一个“平滑的”行程,以及至少一个在没有平滑的情况下计算的行程。
在一个实施例中,给定家庭集群H1,...,Hm,我们对家庭集群的任意子集执行平滑。例如,我们选择离工作位置Wk足够近的家庭集群,例如在5公里或5分钟以内。在其他实施例中,我们对所有家庭集群H1,...,Hm执行平滑。
在一个实施例中,我们提高了将至少一次旅行平滑到至少一个家庭集群的效率。我们从工作位置Wk开始运行最短路径算法。我们一直运行最短路径算法,直到出现停止条件。停止条件的一个示例是:已经访问了至少预定数量的部分P,每个部分包括通往家庭集群之一的旅行描述的一部分。在其他实施例中,我们在访问了100个部分P之后停止。在其他实施例中,对于一个或多个家庭集群中的每一个,我们在访问了至少一个部分P之后停止。在其他实施例中,我们基于使用预定阈值的预设条件或使用预定角度的预设条件来停止。在一个实施例中,我们组合两个或多个停止条件。许多其他停止条件对于本领域的普通技术人员来说将是显而易见的。然后,我们确定从工作位置Wk到位置x,以及从位置x到家庭集群的旅行描述。
在一个实施例中,我们使用任何实施例来计算本发明公开中描述的旅行描述,当我们确定:预先计算的旅行部分,从工作位置Wk到位置x的旅行描述,或从位置x到家庭集群H的旅行描述。
使行程结束部分H→W1平滑的情况与上述使行程开始部分平滑的情况对称。图14图示了示例实施例。1404、1403和1402图示了从家庭集群H到站点集群s的行进H→s的描述。1403和1402图示了行程H→s的预计算部分Q。Q部分包括一个位置x。1401说明了从车站集群s到工作位置W1的行进的描述。该方法确定从位置x到工作位置W1的行程x→W1的描述(示例:1403,然后是1405)。此外,我们的方法确定了从家庭集群H到位置x(示例:1404)的旅行H→x的描述。最后,我们的方法产生以下“平滑”行程:H→x→W1。
在一个实施例中,我们的方法通过在工作位置W1处执行一次平滑以及通过在工作位置Wk处执行其他平滑来构建行程描述。
在一个实施例中,该方法在行程W1→W2→...→Wk的中间部分执行平滑。图15说明了对从工作位置Wi到工作位置Wi+1的行程两端进行平滑处理的示例实施例,对于任何1≤i<k。使用较早的实施例,该方法预先计算旅行的至少一部分并将其存储在数据库中,每个旅行包括从停靠站集群s到停靠站集群s'的旅行描述的一部分(有时称为“至少一个部分描述”旅行”)。旅行的一部分可以更一般地解释为:从可以到达s的任何端点位置到可以从s’到达的任何端点位置的旅行的一部分。在包含工作位置Wi和工作位置Wi+1的请求到达后,该方法从数据库中检索至少一个预计算部分P和至少一个预计算部分Q,其中部分P和部分Q包括从站点集群s1到站点集群s2的行程s1→s2的描述的一部分。至少一个预计算部分P是使用前面的实施例确定的,用于平滑行程Wk→H,其Wk被解释为工作位置Wi,并且其H被解释为工作位置的预定阈值内的停靠站集群Wi+1。至少一个预计算部分Q是对称确定的:使用较早的实施例来平滑行进H→W1,其W1被解释为工作位置W,并且其H被解释为预定阈值内的停靠站集群工作位置Wi。例如,1501、1502、1503、1504和1505说明了从站点集群s1到站点集群s2的行程s1→s2的描述。1501和1502说明部分P。1504和1505说明部分Q。使用较早的实施例,该方法确定:包括在部分P中的位置x1(有时称为“位置xP”),位置x2(有时称为“位置xQ”)包含在Q部分中,对行程Wi→x1的描述,以及对行程x2→Wi+1的描述。1511说明了从工作位置Wi到站点集群s1的行进的描述。1512说明了从工作位置Wi到连接器c1的行进的描述。1521说明了从站点集群s2到工作位置Wi+1的行进的描述。1522说明了从连接器c2到工作位置Wi+1的行进的描述。该方法使用用于确定行程x→H的描述或行程H→x的描述的较早实施例来确定行程x1→x2的描述。例如,在一个实施例中,在请求处理时从数据库中检索旅行x1→x2的预先计算的描述。然后该方法完成平滑并响应请求:在一个实施例中,在检索到的部分中,该方法找到使“平滑”行程的持续时间最小化的部分P和部分Q Wi→x1→x2→Wi+1(例如:1512、1502、1503、1504和1522)。对请求的响应在图16中由1601表示。理论上,部分P可能与部分Q重叠。然而,在实践中,工作位置Wi通常与工作位置相距足够远Wi+1,因此可以避免重叠。我们使用几种方法来处理重叠。在一个实施例中,我们选择连接器c1以在从站点集群s1到站点集群s2的行进描述中出现在连接器c2的上游。在其他实施例中,我们使用最短路径算法计算从工作位置Wi到工作位置Wi+1的行进描述,当两个工作位置在预定阈值内时,例如在一定距离内2000米,或在2分钟的行驶时间内。处理重叠的其他方式对于本领域的普通技术人员来说将是显而易见的。在一个实施例中,我们在Wi或Wi+1执行平滑,但不是在两者都执行。对于上述H→W1的平滑和Wk→H的平滑情况,我们使用描述的其他实施例。我们的Wi→Wi+1平滑方法明显改进了US 8,417,409B2的权利要求1中描述的方法。
在一个实施例中,我们的方法确定包括平滑两条旅行路线的旅行描述。图17图示示例实施例。该方法使用一组预定的代表,例如US 2011/0251789A1的中间航路点。使用较早的实施例,该方法预先计算旅行的至少一部分并将其存储在数据库中,每个部分包括代表和交通系统内位置之间的旅行描述的一部分(有时称为“至少一部分旅行描述”)。位置包含在一组任意预设的端点位置中。位置的实施例包括:路口、转弯、车辆停靠点、请求中包含的源位置或目标位置、代表、交通图的顶点的位置、等等。在请求到达后,包括来源源位置和目标目标位置,该方法确定旅行源→w→目标中包含的至少一个代表w。该确定可以例如使用现有技术如US 2011/0251789A1来实现。该方法从数据库中检索至少一个预先计算的旅行部分Q,每个部分包括从代表到目标位置目标的旅行描述的一部分。检索是使用前面的实施例进行的,用于平滑旅行Wk→H,其Wk被解释为代表w,其H被解释为目标位置目标,其停靠站集群被解释为代表的预定集合。以对称方式,该方法从数据库中检索至少一个预先计算的旅行部分P,每个部分包括从源位置源到代表的旅行描述的一部分。利用前面的实施例,该方法确定:部分P中包括的位置xP,和部分Q中包括的位置xQ。接下来,该方法确定:旅行源的描述→xP和旅行的描述xQ→目标,可以理解为较早的确定行程描述H→x和行程描述x→H的实施例。例如,在一个实施例中,通过找到在源的预定阈值内开始并在xP结束的旅行的预先计算的描述来确定旅行源→xP的预先计算的描述。类似地,在一个实施例中,确定旅行xQ→目标的预先计算的描述。然后该方法确定要平滑哪些部分。位置xP和位置xQ可能彼此相距任意远,例如因为部分P和部分Q是为两个不同的代表w确定的。在一个实施例中,当为相同的代表w确定部分P和部分Q时,该方法平滑它们。在一个实施例中,该方法如前所述使用基于预定阈值的约束。例如,假设位置xP和位置xQ在预定阈值内,例如2000米的距离,或2分钟的行驶持续时间,该方法使用较早的实施例用于确定行程Wk→x的描述或行程x→W1的描述。在一个实施例中,该方法如前所述使用基于预定限制的约束。例如,该方法选择最多100对彼此最近的xP和xQ进行平滑。在其他实施例中,该方法使用运输图、近似最短路径、粗化图中的路径或测地线来确定行程xP→xQ的描述。然后该方法完成平滑并响应请求:在一个实施例中,在检索的部分中,该方法找到使“平滑”行进源→xP→xQ→目标的持续时间最小的部分P和部分Q。该实施例在图17中示出:s3表示源位置,s5表示目标位置,s4表示代表w,x4表示位置xP,x5表示位置xQ。我们使用上述的其他实施例。我们的平滑方法比US 2011/0251789A1的权利要求1中描述的方法有显着改进。
在一个实施例中,我们的方法确定包括两条旅行路线的至少一个平滑的旅行描述。在一个实施例中,该方法的特征可以是:(1)确定k≥2条行进路线序列s1→s2,s3→s4,...,s2k-1→s2k;(2)选择至少一对旅行路线;(3)使用较早实施例之一通过平滑行程xP→xQ连接该对。在一个实施例中,该方法计算粗化图,使得粗化图的每条边对应于运输图中的图路径。使用较早的实施例,该方法预先计算旅行的至少一部分并将其存储在数据库中,每个部分包括粗化图的两个顶点之间的交通系统内旅行描述的一部分(有时称为“至少一个部分描述旅行”)。在请求到达后,包括源位置和目标位置,该方法计算最短路径C,在粗化图中,从与源位置的预定阈值内的位置对应的顶点到对应于目标位置的预定阈值内的位置的顶点。粗化图的顶点是端点位置的一个实施例。接下来,该方法通过连接交通系统内对应于最短路径C的两条边的至少一对行进路线来执行平滑,例如通过连接以下行进路线:每对连续的边,两条边彼此之间的预定阈值内,或不超过预定限制的边缘对。为此目的,使用较早的实施例,该方法从数据库中检索旅行的至少一个预先计算的部分。例如,图17示出了对应于粗化图的两个连续边的行进路径s3→s4和行进路径s4→s5;这两条旅行路线通过x4→c4→c5→x5得到平滑。图17还图示了彼此位于预定阈值内的行驶路线s1→s2和行驶路线s3→s4的平滑化。在一个实施例中,该方法在s1执行平滑,以便平滑从源位置的行进。在一个实施例中,该方法在s2k执行平滑,以便平滑到目标位置的行进。然后该方法完成平滑并响应请求:在一个实施例中,该方法在如此计算的平滑行程的描述中找到最短的。在一个实施例中,两对或多对的连接操作是并行执行的。我们使用上述的其他实施例。确定包括两条旅行路线的至少一种平滑的旅行描述的其他实施例对于本领域的普通技术人员将是显而易见的。
在一个实施例中,当前第4.5.5节中描述的平滑被应用于第4.9.2节中描述的更一般的情况。在一个实施例中,我们修改了当前第4.5.5节中描述的方法。我们使用REPRESENTATIVE_SOURCE顶点和REPRESENTATIVE_TARGET顶点,而不是停止站集群,并按照第4.9.2节执行其他修改,这对本领域的普通技术人员来说是显而易见的。
在一个实施例中,我们使用的代表是最短行程中频繁出现的位置;例如,可以使用现有技术获得位置。有许多已知的方法可以为任何运输系统获得一组所需的代表。一些方法出现在专利文献中。CN104240163A提出的一种可以说是最简单的方法是选择等间距的地理网格作为代表。US8,756,014B2提出的另一种方法是选择交通系统的中转站作为代表。另一种方法是选择交通系统中位置的随机子集作为代表。另一种方法也是由US8,756,014B2提出的,首先通过随机采样树的根来计算以顶点为根的最短路径子树的平均权重;然后选择一小组具有最高平均权重的顶点,例如小至顶点数量的百分之一。其他方法出现在非专利文献中。文献描述了以下相关技术特征:(a)在Gupta、Kosowski和Viennot的第3节中讨论了Reach的概念:利用Hopsets:改进的距离Oracles用于恒定公路维度及以上的图形,ICALP2019;(b)Kosowski和Viennot的第3.1节中讨论的Hub Sets的构建:Beyond HighwayDimension:Small Distance Labels Using Tree Skeletons,SODA 2017;(c)在Abraham、Delling、Fiat、Goldberg和Werneck的第5.2节中讨论的访问节点的概念:高速公路维度和可证明有效的最短路径算法,ACM杂志,Vol.63(5)2016;(d)Cohen、Halperin、Kaplan和Zwick的定义3.3中所述的标签内和标签外的概念:通过2跳标签的可达性和距离查询,SIAM计算杂志,Vol.32(5)2012;(e)最短路径覆盖的概念在Abraham、Delling、Goldberg和Werneck的第4.1和5.4节中讨论:一种基于集线器的道路网络最短路径标记算法,Microsoft Research Technical Report/SODA 2010。上述方法提供代表集的例子。这些示例并非旨在详尽无遗。存在许多其他示例。读者可以参考Sommer的调查论文:静态网络中的最短路径查询,ACM计算调查,Vol.46(4)2014,这是获得发明公开技术领域的基础/普通知识的优秀入门读物。在一个实施例中,一组代表可以被表征为:运输系统的子集,使得代表的数量至多是运输系统的大小乘以预定比率,并且使得代表靠近两个端点之间路由的端点。在一个实施例中,运输系统的大小对应于对运输系统建模的图的顶点数。在一个实施例中,代表对应于这种图的顶点。在US8,756,014B2以及Sommer的调查论文中可以找到该表征。预定比率具有至多一的值。有关价值的权衡示例,请参见第4.4节。我们的方法使用任何一组代表,包括在公开本发明时公开未知的任何一组代表。
在一个实施例中,组合了各种实施例。
当前第4.5.5节中描述的步骤是可选的。在一个实施例中,该方法不执行平滑。我们的平滑方法通常可用于计算路线。
我们包括一个出现在权利要求中的选定短语的词汇表,以及对规范的示例引用。这些参考资料并非详尽无遗;存在其他参考资料。引用可能是语义的(不是逐字的)。
短语 | 示例参考 |
信息 | 款[195] |
部分 | 款[096] |
至少一份旅行的部分描述 | 款[096],[113],[114],[115] |
数据库 | 款[123] |
旅行的第一部分描述 | 款[096] |
第二部分旅行描述 | 款[098] |
第二代表 | 款[098] |
位置x | 款[099] |
端点位置 | 款[096],[113],[114],[115] |
部分P | 款[113],[114] |
部分Q | 款[113],[114] |
<![CDATA[位置x<sub>P</sub>]]> | 款[113],[114] |
<![CDATA[位置x<sub>Q</sub>]]> | 款[113],[114] |
本发明的实施例包括以下方法。每个声明的方法都是自动化的。每个要求保护的方法都不包括“心理过程”(任何要求保护的方法的任何步骤都不是在人脑中执行的)。前提基础有时用方框跟踪:索赔中的术语以后可以用作术语。
1.一个方法用于搜索或比较至少一个站点使用至少一个旅行描述在至少一个站点和至少一个地方之间运输系统,方法包括:
(a)接收至少一名代表包含在运输系统中;
(b)接收包含至少一个地点的请求;和
(c)用使用至少一种旅行描述获得的信息回应请求;
方法的特点是:
(d)确定至少一个旅行的部分描述并将其存储在数据库中,其中每个第一部分旅行描述包括交通系统中包含的第一个站点之间的旅行描述的一部分至少一个站点和至少一个代表中包含的第一个代表;和
(e)计算至少一种旅行描述,包括至少一个站点中包含的开始/结束站点之间运输系统内的旅行描述和至少一个地方中包含的开始/结束地点,
其中计算包括:
i.从旅行的至少一个部分描述中检索至少一个旅行的第二部分描述,其中每个旅行的第二部分描述包括旅行描述的一部分开始/结束地点和至少一名代表中包含的第二名代表之间;
ii.确定交通系统内开始/结束地点和旅行的第二部分描述中包含的位置x之间的旅行描述;和
iii.确定交通系统内位置x和起点/终点之间的旅行描述。
2.一种用于确定在运输系统内从源位置到目标位置的旅行描述的方法,方法包括:
(a)接收包含在运输系统中的至少一名代表;
(b)接收包含源位置和目标位置的请求;和
(c)使用旅行描述获得的信息响应请求;
方法的特点是:
(d)确定旅行的至少一个部分描述并将其存储在数据库中,其中旅行的每个第一部分描述包括交通系统内在端点位置之间的旅行描述的一部分包括在运输系统中,并且第一个代表包括在至少一个代表中;和
(e)使用以下步骤计算旅行描述:
i.确定至少一个部分P和至少一个部分Q,其中部分P和部分Q包含在交通系统中,并且其中:
A.部分Q是目标位置,部分P是从旅行的至少一个部分描述中检索的,其中终点位置是来源位置,
B.部分P是源位置,部分Q是从至少一份旅行的部分描述中检索的,其中端点位置是目标位置,或
C.部分P从至少一个旅行的部分描述中检索,其中终点位置是源位置,并且部分Q从检索旅行的至少一个部分描述,其中终点位置是目标位置,
ii.确定从部分P中包含的位置xP到部分Q中包含的位置xQ的旅行描述,
iii.确定从源位置到位置xP的旅行描述,以及
iv.确定从位置xQ到目标位置的旅行描述。
图18中说明了一个实施例:1801说明了源位置,1802说明了目标位置,1803说明了部分P,1804说明了部分Q,1805说明了位置xP,1806说明了位置xQ,1807说明了从位置xP到位置xQ的旅行描述,1808说明了从源位置到部分P的旅行描述,1809说明了从部分Q到目标位置的旅行描述。
我们的方法使用任何形式的存储介质。例如,在一个实施例中,用于存储预先计算的旅行描述的数据库是非暂时性计算机可读存储介质,例如易失性存储器或非易失性存储器。非暂时性计算机可读存储介质的实施例在本领域中是公知的,因此不需要在此描述。在一个实施例中,一种方法使用非暂时性计算机可读存储介质,以存储一个或多个程序以供至少一个处理器执行。处理器的示例包括CPU和GPU。处理器的实施例在本领域中是公知的,因此不需要在此描述。一个或多个程序包括要由至少一个处理器执行的指令,以执行本发明公开中描述的方法的至少一个步骤。在一个实施例中,指令以任何编程语言表达,例如C++、Java或JavaScript。表达指令的实施方式是本领域公知的,因此无需在此描述。
4.6搜索一间房屋
我们的方法讲授如何利用通勤有效地搜索房屋。在介绍对房屋的一般搜索请求之前,我们先介绍一些搜索请求示例。
4.6.1加权总和请求
考虑一个家庭,一个父母每周位于geo1上班五次,同时另一位父母每周在geo2上班三次。该家庭想要寻找一个每周行程时间短的房屋。我们可以为该家庭找到每个房屋集群的每周行程时间,以两个向量的加权和(weighted sum)表示,如下所示:
5*PathDurations(→geo1→)+3*PathDurations(→geo2→)。
4.6.2最低要求
考虑一个在家工作的单身母亲,并且正在送孩子上学。该母亲想要找到一间靠近学区E中的任何学校的房屋。我们可以找到每个房屋集群中孩子的每日行程时间,作为向量的坐标最小值(coordinate-wise minimum),如下所示:
4.6.3房屋的一般搜索
在一个实施例中,我们的方法将请求定义为通勤路径路径1,...,路径q(q为任意值)的任意序列,以及函数导数:Rq→R(deriver),它将q个数字的任何向量映射为一个数字。该方法计算行程时间向量(从头开始,通过检索预先计算的向量,或者两种方式都有)
PathDurations(路径1)=(d1,1,...,d1,m),
PathDurations(路径q)=(dq,1,...,dq,m),
并将函数的导数坐标应用到向量上,以得到向量
RequestDurations(路径1,...,、,路径q,导数)=
(导数(d1,1,...,dq,1),
导数(d1,2,...,dq,2),
导数(d1,m,...,dq,m))
每个房屋集群的“导源”行程时间。
在一个实施例中,该函数导数是数的加权和
导数(x1,...,xq)=w1·x1+...+wq·xq,
对于权重w1,...,wq(weights)。权重可以为正或负。如果将行程时间解释为行程的金钱成本,那么负的权重可以解释为金钱收益,例如预计通勤者将从特定的通勤中收益(例如,包裹递送)。权重可以代表通勤路径的相对重要性,例如,首席执行官的通勤路径可能比一线经理的通勤路径权重更高。
在一个实施例中,所述函数导数是最小数
导数(x1,...,xq)=min1≤i≤qxi.
在一个实施例中,所述函数导数是一个加权和及最小值
导数(x1,...,xr,xr+1,...,xq)=w1·x1+...+wr·xr+minr+1≤i≤qwi·xi。
在一个实施例中,函数的导数是一个条件函数,例如
或任何算法。
4.7比较两个或多个房屋
我们的方法教授如何利用通勤有效地比较多个房屋。在介绍一般的比较请求之前,我们将通过一些示例说明该方法。
4.7.1目前的房屋
考虑目前居住在房屋中的一个家庭。家庭成员都有特定的通往工作地方,学校,或其他地方的通勤路径。该家庭考虑搬到其他房屋,并希望将当前房屋的总行程时间与其他预期房屋的总行程时间进行比较。我们的方法使得这种比较相当简单。
在一个实施例中,该方法计算每个房屋集群的行程时间,包括该家庭目前的房屋S的房屋集群hj
RequestDurations=(q1,...,qm)。
然后该方法以“差”向量(difference)作为响应:该方法从每个坐标处的值减去第j个坐标处的值
(q1-qj,...,qj-1-qj,0,qj+1-qj,...,qm-qj).
“差”向量的坐标处的负值表示,与该坐标相对应的房屋与当前房屋S(home)相比具有较短的行程时间。
在一个实施例中,该方法对当前房屋使用一些通勤路径,而对其他房屋使用其他通勤路径。因此,该方法可以帮助一个家庭评估假设情景:“假设我们要更换工作地方,并搬到其他房屋。新的通勤时间与我们目前的通勤时间相比将如何?”
4.7.2两个或更多房屋的一般比较
考虑一个家庭,其中父母必须继续通勤去相同的工作地方(没有工作变动),但是孩子可以换学校。考虑两个家庭的其它例子:父母和他们的祖父母。他们想要找到两所房子,这两所房子彼此相距约30分钟内,以便以锁房屋靠近任意医院,同时另一所房屋靠近特定的学校和工作地方。我们的方法使得这种房屋与其他房屋的比较相当简单。
在一个实施例中,该方法计算房屋集群的一系列通勤路径的行程时间PathDurations
PathDurations(路径1)=(d1,1,...,d1,m),
PathDurations(路径q)=(dq,1,...,dq,m).
然后该方法应用一个“通用”函数导数,该函数不按4.6.3节中的说明进行协调操作,而是在所有q·m行程时间上共同操作,并生成一个或多个数字的向量。换句话说,所述通用函数为导数:Rq·m→Ry
对于一些y。
4.8搜索或比较
在一个实施例中,所述的函数的导数(deriver)可以是采用任何输入(例如:通勤路径,最短出行路径,最短行程时间,房屋,或用户请求指定的任何条件)的任意算法,例如随机算法,并产生任何输出(例如,包含满足用户条件的房屋的“排行榜”(top list),以及具有最短行程同时也满足用户条件的房屋,按最短行程时间排序)。
4.9变体
在不脱离实施例范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。我们提供一些变体进行说明。
4.9.1延长行程
在一个实施例中,该方法首先计算不完整的最短行程,然后将它们延伸(extends)到所选择的房屋集群。由于向量vi和v'i中的房屋集群较少,因此需要在额外的处理和存储之间进行权衡,以减少存储和处理。
该方法确定房屋连接器(connectors),它们是交通系统的某些要素。在一个实施例中,所述的房屋连接器是房屋的集群或停靠站的集群,其可以与4.4.1部分讨论的集群不同。然后,该方法使用类似于4.4部分中的实施例,预先计算并在数据库中存储停靠站集群和房屋连接器之间的最短行程。
当收到请求时,该方法计算请求中包含的工作W和选定的房屋集群之间的最短行程。为此,该方法确定工作W附近的停靠站集群,并检索预先计算的附近的停靠站集群和房屋连接器之间的最短行程,以计算工作W和房屋连接器之间的最短行程,类似于4.5部分。在一个实施例中,这种计算使用类似于4.5.2部分和4.5.3部分的向量运算。然后,将这些最短行程延伸到房屋连接器之外,以构成工作W和选定的房屋集群之间的最短行程。这可以通过简单地为每个房屋集群找到一个最小的延伸行程(可能不只是步行)来实现,该最小延伸行程穿过房屋集群附近(例如2000米以内)的任何房屋连接器,有时还可以找到工作W和房屋群集之间的直接的最短行程(类似于4.5.2和4.5.3部分)。在一个实施例中,在重叠区域中,该方法使用房屋连接器以及向量vi和v'i。
延伸行程的性能与房屋连接器的总数成正比,并且与任意选定的房屋集群附近的房屋连机器的数量成正比。在一个实施例中,延伸用于大都市区的稀疏部分,在那里两个量可能很低。在一个实施例中,该方法使用性能成本函数来:(1)确定房屋连接器;(2)选择房屋集群,以及(3)确定每个选择的房屋集群附近的房屋连接器的子集。
4.9.2利用汽车通勤
在一个实施例中,我们通过汽车而不是通过公共交通工具来计算通勤路径的行程时间。这可以通过对前面的部分进行简单的修改来实现。
当对房屋的运输系统预处理时,参考第4.4节,我们将GT作为汽车行驶系统图,而不是作为公共佳通系统图。该汽车行驶图可以获得(例如从现有技术获得)。该图可以有表示道路地理位置的顶点,以及表示驾驶汽车或转向汽车的边;边可能包含有关一天中不同时间(例如在高峰时段)行驶持续时间的数据。
我们扩展GT。对于每个房屋集群s,我们添加顶点
HOME_CLUSTER_SOURCE_s
和
HOME_CLUSTER_TARGET_s.
对于至少一个r,我们通过添加顶点
CONNECTOR_r
将每个房屋集群与一些在阈值距离(例如100米)内的道路连接起来。在一个实施例中,顶点表示家庭聚类位置在阈值距离内的道路上的最短距离投影(shortest-distanceprojection);该道路可以在分配给家庭集群的停车场内。顶点通过标记为Zero0并且权重为0的边连接到两个房屋集群顶点。该顶点还连接到代表路段端点的顶点。不添加停靠站集群,我们在此不需要,因为现在的GT不对任何地铁站或公交车站建模,我们为s’和t’的集合添加顶点
REPRESENTATIVE_SOURCE_s'
和
REPRESENTATIVE_TARGET_t',
这些顶点代表(represent)最短行程中经常出现(frequently occur)的位置;这些位置可以获得(例如从现有技术获得)。这些顶点可以代表集群。这些顶点使用边与其他顶点适当连接。
我们可能使用与4.4.1部分所述的类似的实施例,使用扩展的GT计算从每个
REPRESENTATIVE_SOURCE_s'
到每个
HOME_CLUSTER_TARGET_s
的图表路径的最短持续时间,以及从每个
HOME_CLUSTER_SOURCE_s
到每个
REPRESENTATIVE_TARGET_t’
的图表路径的最短持续时间。这些行程时间将以向量形式vi和v'i存储,如4.4.2部分所述。
当计算通勤路径的行程时间,我们使用汽车出行,而不是使用4.5部分的步行。
对于行程的开始部分,我们对4.5.2部分进行了以下修改。代替walk(Hj→W1),我们用从房屋集群Hj到W1的汽车行驶时间,例如从现有技术获得的时间。在一个实施例中,当Hj和W1之间的距离超过阈值时,我们将该持续时间设置为无穷大。集合A是距离W1阈值距离内的顶点
REPRESENTATIVE_TARGET_t’
的集合。对于每个si∈A,我们计算(例如使用现有技术)从si到W1的汽车行驶时间。然后,我们将这些修改应用于公式1。
对于行程的结束部分,我们做类似的修改,但是是针对4.5.3部分。代替walk(Wk→Hj),我们使用从Wk到房屋集群Hj的汽车行驶时间(例如从现有技术获得);在一个实施例中,当Wk和Hj之间的距离高于阈值时,我们将该持续时间设为无穷大。集合B是距离Wk阈值距离内的顶点
REPRESENTATIVE_SOURCE_s’
的集合。对于每个si∈B,我们计算从Wk到si的汽车行驶时间(例如使用现有技术)。然后我们将这些修改应用于公式2。
我们使用4.5部分描述的其他实施例。例如,我们可以使用测地线估算汽车行驶的持续时间。
可以简单扩展4.6部分的搜索框架,以限制每条通勤路径应该使用哪种车辆。结果,例如,我们可以确定一个家庭的每个房屋的通勤路径的行程时间,其中一位父母每周乘车5次到位于geo1处上班,同时另一位父母每周乘公共交通工具3次到geo2上班。
4.7部分的比较框架可以类似地扩展。结果,例如,我们可以搜索一处新的房屋,某人将从该处乘汽车通勤,并且与目前乘公共交通工具的行程时间比较。我们的方法的结果可能被用作鼓励因搬家而购买汽车的动机。
4.9.3通过其他方式通勤
在一个实施例中,该方法通过其他方式使用通勤路径,例如:仅步行;仅自行车;仅快车和步行;仅地铁和步行;仅高速巴士,地铁和步行道;仅可共享面包车和步行;船;飞机等等。我们仅使用与第4.9.2节中描述的修改类似的修改。在一个实施例中,该方法识别其他房屋和其他旅行方式,并将其推荐给用户,并解释与当前房屋和当前旅行方式相比的收益。
可以在不知道图的各个顶点的地理位置的情况下计算给定图中的最短图路径。因此,在一个实施例中,该方法使用其各种要素(elements)缺少地理位置的交通系统。
交通系统无需物理移动物体。该方法仅需要能够确定交通系统的要素之间的路线或路线长度。因此,移动数据的计算机网络是交通系统的一个示例,包括以下交通元素:电线/线路(类似于道路),以及集线器/开关(类似于车站/转弯)。交通系统的许多其他示例对于本领域普通技术人员将是显而易见的。
4.9.4行程路径的条件
我们可以简单地实现行程路径上的各种筛选条件(filtering conditions)。例如,我们可以构建图表G,该图G在任何的地铁路线之间都没有换乘,只在房屋集群和车站集群之间可以步行。采用类似于4.9.2部分描述的修改,然后,该方法将在上下班途中通勤者可能一直坐着时搜索或比较房屋(房屋和工作都需要在一条地铁线的地铁站的步行距离之内)。类似地,我们可以构建一个G并修改最短图形路径算法,以将图形路径限制为至多一次换乘,或者一次地铁-公交换乘,或者公交-地铁换乘,或在时间窗口内发生的换乘,或者通勤者常用的一种行程路径。如本领域普通技术人员将显而易见的,用于筛选行程路径的其他变型落入我们的方法的范围内。
4.9.5房屋条件
在一个实施例中,所述方法接收关于房屋的各种特征的过滤条件,并且搜索或比较其特征与该条件相匹配的房屋。这些特征可能是:类型(例如,独立式住宅或高层公寓),交易类型(例如,出售或出租),价格,房地产经纪人佣金,税金,最高银行贷款金额,卧室或洗手间数量,房屋的面积/尺寸,窗户的朝向,房屋的楼层,建筑物的楼层,或典型的每月管理费。简单地,该方法为每个房屋提供一个特征列表,并在给定条件的情况下确定其特征与该提交相匹配的房屋。这些相匹配的房屋的行程时间可以从房屋集群的行程时间处获得。用于过滤房屋的其他变型落在我们方法的范围内,这对本领域内任何普通技术人员将是显而易见的。
4.9.6元搜索或比较
在一个实施例中,该方法使用先前的搜索或比较请求和响应的集合来搜索或比较房屋。可以将其视为元方法(meta method)(一种使用自身的方法)。例如,它对于估算拟议的新房地产开发的价值很有用。
我们描述了元方法的一个实施例。我们收到通勤路径path1,...,pathu的一些数字u。在一个实施例中,所述通勤路径来自用于搜索或比较房屋的计算机服务的使用日志,每条通勤路径可以由该服务的不同用户提供。对于每条通勤路径pathk,我们根据4.5部分计算所有房屋集群的行程时间PathDurations(pathk)。然后,我们使用聚合器(aggregator)来处理行程时间。在一个实施例中,对于每条通勤路径pathk,我们收到一个权重向量wk。在一个实施例中,每个权重是用户单击相应房屋集群中的房屋的概率,这可能会受到房地产条件或用户请求中指定的行程路径的影响。然后我们按照坐标计算聚合,如下式所示
第j个聚合是房屋集群Hj的平均加权行程时间。在一个实施例中,第j个聚合表示房屋集群对整个大都市区总的行程时间的归一化贡献;在某种意义上,它表示大都市区内房屋集群的向心性(centrality)。由于我们的方法可以快速计算PathDurations(pathk),因此可以快速计算聚合。这使得能够快速计算相对于通勤,每个房地产的可取性。
元方法的许多其他实施例对于本领域普通技术人员将是显而易见的。在其他实施例中,通勤路径是根据房屋和工作的地理位置生成的。在其他实施例中,对于某些具有最短行程时间的房屋集群,权重设置为非零,其他设置为零。在其他实施例中,数据科学家评估假设情景;由于我们方法的优势,可以快速评估这些情况。在其他是实力中,所述聚合器为任意算法,例如一种计算方差,分位数,累积分布函数或超过阈值的概率的算法。
4.9.7涉及两个或更多房屋的通勤路径
在一个实施例中,一条通勤路径涉及(involves)两个或更多房屋。例如,这在两个或多个家庭共同搜索或比较房屋时很有用。
在一个实施例中,H1和H2是两个房屋集群。我们可以计算任意通勤路径H1→path→H2的行程时间,其从H1开始,但是在不同于H1的H2处结束。我们在公式1中使用与H1对应的j,在公式2中使用与H2对应的j。
在一个实施例中,我们预先计算两个向量(a1,...,am)和(b1,...,bm),然后我们通过简单地将对应于Hi的向量(a1,...,am)坐标处的值加到对应于Hj的向量(b1,...,bm)的坐标处的值上,再加上path(独立于Hi和Hj)的中间部分的行程时间,即可找到任意两个房屋集群Hi和Hj之间的行程时间。我们注意到,可以仅使用线性O(m)空间,在常数O(1)时间中找到m2对中,任意一对房屋集群之间的行程时间。这是由于行程时间的累加结构(additivestructure)以及路径path充当任何两个房屋集群之间的分隔符的事实。
在一个实施例中,用于H1的房屋集群的集合可以不同于用于H2的房屋集群的集合。例如,用户的条件可以限制H1在城市的东部,同时限制H2在城市的西部。在这种情况下,我们可以使用不同于m的长度m’的向量(b1,...,bm')。
更一般而言,该方法计算对于k≥2的任意房屋集群序列H1→path1→H2→path2→...→pathk-1→Hk的行程时间。使用预计算,可以在O(k)时间和O(m·k)空间内完成此操作。
在一个实施例中,通勤路径包括房屋集群之间的直接行程Hx→Hy,如该示例中的通勤路径:H1→path1→Hx→Hy→path2→H2。在该示例中,我们的方法将计算分为三个部分:(1)计算H1→path1→Hx的行程时间,(2)计算Hx→Hy的行程时间,以及(3)计算Hy→path2→H2的行程时间。可以使用前面在4.9.7部分描述的方法执行(1)和(3)部分。可以类似地执行部分(2),概念上将Hx或Hy视为工作。例如,使用在与Hx对应的坐标处的向量v'i,我们得到从房屋集群Hx到每个停靠站集群的行程时间;这些可以作为预计算向量v'i,1≤i≤n的一列检索。然后我们从每个停靠站集群开始,在距离Hy阈值距离内,延伸形成到Hy的完整行程,类似于4.5.2部分,参见图5和公式1。由于我们的方法进行了预计算,因此可以在与阈值距离内的停靠站的数量成比例的时间内执行(3)。在其他实施例中,因为预先知道了房屋集群,我们预计算每对房屋集群之间的行程时间,然后简答地以恒定时间O(1)检索行程时间。自然,类似的分区适用于包含房屋群集之间的一个或多个直接行程的任何通勤路径。
4.9.8空间探索
我们的方法引入了高性能的空间探索算法(exploration algorithms)。考虑通勤者沿着具有特定成本的特定的通勤路径H1→path→H2行进的情况;成本函数(costfunction)取决于两个房屋H1和H2。通勤者寻找使成本最小的H1和H2。这很有用,例如,当一个家庭愿意同时更改两个父母的工作地点(H1和H2)时,同时又将从该家庭当前房屋位置(内部路径)的总行程时间减至最少,也就是两体问题。
空间探索的一个实施例是梯度下降法(gradient descent algorithm)。成本函数可以是任意可微函数(differentiable function);例如,给定固定的path,该函数将两个房屋H1和H2作为输入,并返回两个房屋H1和H2之间的距离乘以通勤路径H1→path→H2的行程时间作为输出(该函数可以适当地扩展到房屋对的离散域(discrete domain)之外,例如通过房屋的地理位置和外推法)。在梯度下降法的给定步骤中,该算法计算给定的房屋对的成本函数的梯度,然后沿梯度方向(direction of the gradient)选取一对房屋,以进行算法的下一步。可以使用成本函数的值计算梯度,例如使用需要两个值的两点式(two-pointformula)。在一个实施例中,梯度下降法的输出是一对房屋,其中梯度的范数(norm)足够小。
在一个实施例中,我们预计算消耗线性O(m)空间的向量(a1,...,am)和(b1,...,bm),并且在每一步,我们的方法都以常数O(1)的时间计算梯度。因此,梯度下降法往往能取得较快的进展。
在一个实施例中,我们不预计算(a1,...,am)和(b1,...,bm),而是根据公式1和公式2产生需要的值。当房屋的数量非常大以至于无法预计算(a1,...,am)或(b1,...,bm)时,可以使用这种方法。
在一个实施例中,空间探索算法可能对房屋有约束。例如,如果我们到某个房屋的往返通勤,约束将是H1=H2。我们可能会限制H1或H2允许的地理范围。
在一个实施例中,空间探索算法使用仅涉及一处房屋的通勤路径:H1→path或path→H1。在其他实施例中,空间探索算法使用涉及两个或多个房屋的通勤路径,如4.9.7部分。
在一个实施例中,成本函数取决于房屋和工作。例如,当人们试图使花费的时间和金钱的混合最小化时,可以使用这种成本函数。在一个实施例中,成本函数为:H和W之间的行程时间,加上租用H的货币成本,减去W支付的工资,可能带有权重来表示要素的相对重要性。在一个实施例中,由于我们的方法的优势,在这种成本函数中,可以有效地利用梯度下降来搜索房屋和工作。
4.10一般情况
在一个实施例中,词语“房屋”和“工作”具有任何意义。例如,考虑某人正在寻找位于其当前房屋附近的工作的情况。此人不想搬去另一所房子,只是想找一个离现在的房屋近一点的工作。这种情况下,我们的方法可以简单地运用。给出了人们在整个大都市区工作的一系列地点(例如各种办公室,工厂等),该方法将计算每个工作场所集群与每个停靠站集群之间的行程时间。因此,该方法可以被看做一种“使用通勤的工作搜索或比较”方法。在一个实施例中,该方法基于用户指定的工作类型,或工资范围,同时基于距离用户当前房屋的行程时间,来搜索或比较工作场所。再举一个例子,考虑一家公司想要将其总部迁至新的地点。我们的方法可以用于计算整个大都市区总部每个新地点的总的“公司行程时间”。因此,公司可以确定每个新位置如何影响员工的通勤。例如,可以选择一个新的位置,以便:(1)最坏情况下的通勤时间受到限制;以及(2)平均通勤时间较短;从而满足个人和社会的目标。
到目前为止,我们的描述主要是将出行时长作为搜索或比较目标。然而,该方法可用于任何其他目标,比如:旅行的货币成本;距离的度量;旅行路线的特定特征或属性,例如:换乘的次数,或者步行距离;或者房屋的特点,例如:价格,尺寸或类型。在一个实施例中,这可以通过构建图表并适当地设置边缘权重来简单地实现。可以将各种目标组合到基于多维成本(multi-dimensional cost)的多目标优化搜索(multi-objectiveoptimization search)中,例如,寻找使行程时间最短的房屋,也就是,不利于行程的货币成本。
通常,该方法使用任意地点S1,...,Sm(在前面的部分中被称作房屋的地点(site))以及任意地方P1,...,Pk(在前面部分中被称作工作的地方(place)),并且该方法使用起源于或终止于某些地点并访问某些地方的路线或路线长度(这是由涉及这些地点和地方的任意路线说明所指定的(路线说明(route specification)在前文中被称作通勤路径)),搜索或比较地点S1,...,Sm(在前面部分中,路线(route)被称作行程的描述,并且路线长度(route length)被称作行程的长度)。搜索或比较可以使用4.9部分描述的任何变形。因此,该方法可能以路线或路线长度或其代表(representation)作为响应。由该方法的一个实施例计算出的信息可以递归地(recursively)用作该方法的任何实施例的输入。
4.11计算机系统
本发明的实施例之一是利用通勤进行搜索或比较房地产的计算机系统(computersystem)。我们在图11中示出了计算机系统的实施例。
我们在描述中使用术语“模块”(module)。在本领域中已知该术语表示提供一些特定功能的计算机(子)系统。我们将计算机系统划分为特定模块的选择是示例性的,而不是强制性的。本领域普通技术人员将注意到,在不脱离本发明的范围的情况下,可以以其他方式将系统组织成模块。
在一个实施例中,沿着任意通勤路径的每次出行都具有具体的出发时间。
系统的一个模块(1108)从数据源(1102)读取有关交通系统的数据,并构造图G。在构造期间,该模块从房地产数据源(1103)检索房屋数据,并从其他数据源(1104)检索房屋集群和停靠站集群之间以及附近的最短步行路程。该模块输出的图形没有任何的顶点vertexes(1105)
HOME_CLUSTER_SOURCE_s,
并且输出不具有任何的顶点
HOME_CLUSTER_TARGET_s,
但具有反向边(1106)的图形。该模块还构建最近的邻近数据结构(1107),其可以找到距任何给定地理位置的阈值距离以内的停靠站,并且预先计算在房屋集群和停靠站附近的最短的步行路程(1108)。
同时,系统的其他模块(1109)读取两个图表,并且计算最短图表路径。该模块考虑一天中的时间范围,在一个实施例中,每5分钟考虑一次。对于每个出发时间,该模块使用(1105)生产一个具有从停靠站集群到房屋集群的最短行程时间的表(1110),并且使用(1106)生成具有从房屋集群到停靠站集群的最短行程时间的其他表(1111)。在一个实施例中,将四舍五入到最接近的分钟的每个行程时间存储为C++编程语言的uint8_t类型,其中最大值255被保留以表示未知或太大的行程时间。在一个实施例中,表以行优先顺序(row-major order)布局(laid out)在HDD硬盘上。在一个实施例中,该系统使用的缓存层次结构(cache hierarchy)包括HDD硬盘,SSD硬盘和主内存。在一个实施例中,使用任何压缩算法(比如增量压缩(delta compression))来压缩(compressed)表或其一部分。我们观察到,对于包含房屋集群和停靠站集群的任何一对,一段时间内的行程时间通常是相似的。这种相似性通常也存在于该对的附近。在一个实施例中,我们选择房屋集群的序列h1,...,hm,从而在序列中相邻的(adjacent)任意的hi和hi+1通常也是附近的房屋集群,或者选择停靠站集群的序列s1,...,sn,从而在序列中相邻的任意的si和si+1,通常也是附近的停靠站集群。
模块(1101)和(1109)连续运行。结果,该系统会在给定出发时间的情况下,维持有关行程时间的新数据。
同时,路径持续时间模块(1112)计算PathDurations。在给定具有出发时间的通勤路径的情况下,模块查询(1113)已预先计算的任何相关的PathDurations。任何丢失的消息都是从头开始计算:模块查询导航数据源(1114),以计算通勤路径中不涉及任何房屋的部分的PathNonHomeDuration。该模块还通过查询最近的停靠站(1107),步行(1108),以及出发时间的房屋行程时间向量(1110和1111)来计算涉及房屋的行程时间PathFromHomeDurations和PathToHomeDurations。
同时,请求处理模块(1115)搜索或比较房地产。任何请求(1116)都包含通勤路径,包括沿着通勤路径的地理位置和出发时间,以及派生器。当接收到来自用户的请求,该模块从路径持续时间模块(1112)中检索PathDurations,应用Deriver,并用代表Deriver的输出的信息对用户作出响应(1117)。
本发明的各方面可以采取硬件实施例,软件实施例或两者的组合的形式。根据功能或优化的不同,本发明的步骤,例如任何流程图的块,可以不按顺序执行,部分同时执行,或者从高速缓存提供。方面可以采取顺序系统或并行/分布式系统的形式,其中每个组件体现某些方面,可能与其他组件冗余,并且组件可以例如使用任何种类的网络进行通信。没有参考任何特定的编程语言来描述本发明。可以用任何编程语言(例如C++,Java或JavaScript)编写执行针对本发明各方面的操作的计算机程序。任何程序都可以在任意硬件平台(例如中央处理单元(CPU)或图形处理单元(GPU))以及关联的内存或存储设备上执行。程序可以在一个或多个软件平台上执行本发明的各方面,所述软件平台包括但不限于:运行Android或iOS操作系统的智能手机或网络浏览器,例如Firefox,Chrome,InternetExplorer或Safari。
4.12计算机服务
本发明的一个实施例是使用通勤搜索或比较房地产的计算机服务(computerservice)。用户可以通过用户访问设备(例如智能手机应用程序或网页)使用该服务。对本领域普通技术人员来说,显然本发明不限于这些设备。同样显而易见的是,在不脱离本发明范围的情况下,可以修改附图中服务的呈现(通过重新布置,调整大小,改变颜色,形状,添加或移除组件)。
在一个实施例中,通过智能手机应用程序访问所述程序。如图12所示。用户输入请求。在一个实施例中,所述请求包括:
(1)房地产(1201)的所期望的特征,例如“3间卧室,高层建筑,高楼层”;
(2)通勤路径(1202,1203,“陶森德或耶利哥高中的学校”1204),出发时间(1205,1206),以及每条通勤路径的频率(1207,1208);以及
(3)用户当前的房屋(1209)的地理位置。
作为响应,所述服务反馈代表行程时间的信息。例如,所述服务渲染(renders)与用户请求想匹配的房地产的地理位置(1210)。该服务将呈现这些房地产的行程时间与当前房屋的行程时间的比较。该服务将呈现每个匹配放弃产的概要(summary),例如其价格。所述房地产可以堆叠(stacked)在2D地图上,从而具有较短行程时间的房地产出现在这些行程时间较长的房地产之上。当地图上存在杂乱时,该服务可以代替地呈现一个房地产集群,其大小与集群中房地产地数量相关。集群可以显示概要,例如集群中房地产的数量或典型特征。
在一个实施例中,所述服务以最短行程时间来呈现房地产。还呈现了房地产的概要(1211)。所述房地产可以通过行程时间排序。
在一个实施例中,该服务呈现“热图”(heatmap),该“热图”使用颜色来指示从大都市区的每个区域出发的行程时间,例如该区域的最小值,如图1所示。热图可以描绘任何房屋的行程时间和用户当前房屋的行程时间之间的差异。在一个实施例中,热图仅呈现与用于期望的房地产特征想匹配的房地产。
在一个实施例中,所述服务呈现行程时间的柱状图(histogram)(1212)。所述柱状图的一个轴是行程时间,另一个轴是产生该行程时间的房地产部分。在一个实施例中,柱状图仅呈现与用户期望的房地产特征相匹配的房地产。在一个实施例中,用户可以在柱状图中滚动(1213)到柱状图的任何部分,而所述服务将呈现该特定部分的行程时间的结果。在一个实施例中,所述方法使用其他形式的柱状图,例如饼图(pie chart)。
在一个实施例中,用户可以限制出行路径(例如通过使用范围滑块(1214)),例如通过限制总的步行时间,限制换乘次数等等。
在一个实施例中,所述服务呈现房地产的出行路径的概要。
在一个实施例中,所述服务以下列中的至少一项对用户做出响应:
(a)一处地方或地点的地理位置,呈现在地图上;
(b)一处地方或地点的出发时间或到达时间;
(c)一处地点的概要;该概要可以包括:该地点的名称或地址,该地点的价格,或者该地点的尺寸中的至少一个;
(d)组成附近地点集群的地点的概要;
(e)附近地点集群的渲染,渲染的尺寸与附近地点集群中的地点的数量相关;
(f)以路径长度对地点在Z轴上进行堆叠,路径长度越短,堆叠的高度越高,呈现在地图上;
(g)关于路线或路线长度的信息;该信息可以包括以下中的至少一个:(i)路线:长度,持续时间,金钱成本,速度或等待时间;(ii)车辆,车辆道路,人行道,车站,转弯,或公共交通工具的中转站的名称;或者(iii)金钱成本,速度,等待时间,车辆,车辆道路,人行道,车站,转弯,或公共交通车辆的中转站的地理位置;
(h)穿过地点的路线长度的柱状图;或者呈现在地图上的各个地点之间的路线长度的热图;
(i)最小路线长度;通过地点的最小路线长度的柱状图;或者呈现在地图上的各个地点之间的最小路线长度的热图;
(j)加权的路线长度;通过各个地点的加权路线长度的柱状图;或者呈现在地图上的各个地点之间的加权的路线长度的热图;
(k)差路线长度;站点之间路线长度不同的柱状图;或在地图上绘制的各个站点之间的路线长度不同的热图;
(l)推导程序返回的输出的呈现;
(m)一个地点,该地点在旅行的货币成本的限制下,使跨地点的路线长度最小化;
(n)受用户指定条件约束的上述(a)至(m)项之一;或者
(o)符合条件的地点,路线和路线长度中的地点的最高列表,按路线长度排序。
4.13有关权利要求的注意事项
本领域普通技术人员将注意到,在不脱离本发明范围的情况下,可以进行各种修改,并且可以用基本等同的方式进行替换。此外,特定情况下可以适用本发明的指导,而不脱离其范围。因此,尽管事实上已经参考公开实施例描述了本发明,但是本发明并不限于这些实施例。相反,本发明将包括落入所附权利要求的范围内的所有实施例。
4.14术语表
我们包括权利要求中出现的所选短语以及说明书的示例参考的术语表。这些参考并非详尽无遗,还有其他参考存在。
Claims (2)
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/864,157 | 2020-05-01 | ||
US16/864,157 US20200300642A1 (en) | 2019-02-13 | 2020-05-01 | Method and an Apparatus for Searching or Comparing Sites Using Routes or Route Lengths Between Sites and Places Within a Transportation System |
US16/894,761 US20200349660A1 (en) | 2019-02-13 | 2020-06-06 | Method and an Apparatus for Searching or Comparing Sites Using Routes or Route Lengths Between Sites and Places Within a Transportation System |
US16/894,761 | 2020-06-06 | ||
US16/940,418 | 2020-07-28 | ||
US16/940,418 US11346681B2 (en) | 2019-02-13 | 2020-07-28 | Method and an apparatus for searching or comparing sites using routes or route lengths between sites and places within a transportation system |
PCT/US2021/029024 WO2021222046A1 (en) | 2020-05-01 | 2021-04-25 | A method for searching or comparing sites using travel between sites and places within a transportation system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115997205A true CN115997205A (zh) | 2023-04-21 |
Family
ID=76763946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180047369.6A Pending CN115997205A (zh) | 2020-05-01 | 2021-04-25 | 使用运输系统内地点和地方之间的行程搜索或比较地点的方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11346681B2 (zh) |
EP (1) | EP4143700A4 (zh) |
JP (1) | JP7144818B2 (zh) |
KR (1) | KR20230136916A (zh) |
CN (1) | CN115997205A (zh) |
CA (1) | CA3181615A1 (zh) |
GB (1) | GB2608776A (zh) |
TW (1) | TW202201242A (zh) |
WO (1) | WO2021222046A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11361361B2 (en) * | 2018-02-20 | 2022-06-14 | Grzegorz Malewicz | Method and an apparatus for searching or comparing sites using routes or route lengths between sites and places within a transportation system |
US11530928B2 (en) * | 2020-10-29 | 2022-12-20 | Rivian Ip Holdings, Llc | Destination selection incorporating time constraints |
TWI837712B (zh) * | 2022-06-24 | 2024-04-01 | 中華電信股份有限公司 | 應用票證資料分析大眾運輸轉乘縫隙之系統、方法及電腦可讀媒介 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2874397B2 (ja) * | 1991-03-19 | 1999-03-24 | 松下電器産業株式会社 | 経路選出装置 |
US6321158B1 (en) * | 1994-06-24 | 2001-11-20 | Delorme Publishing Company | Integrated routing/mapping information |
US5802492A (en) * | 1994-06-24 | 1998-09-01 | Delorme Publishing Company, Inc. | Computer aided routing and positioning system |
US5559707A (en) * | 1994-06-24 | 1996-09-24 | Delorme Publishing Company | Computer aided routing system |
US5948040A (en) * | 1994-06-24 | 1999-09-07 | Delorme Publishing Co. | Travel reservation information and planning system |
US5931888A (en) * | 1994-09-22 | 1999-08-03 | Aisin Aw Co., Ltd. | Navigation system for vehicles with alternative route searching capabilities |
JP3223782B2 (ja) * | 1996-02-08 | 2001-10-29 | 三菱電機株式会社 | 車両経路算出装置 |
KR100198813B1 (ko) * | 1996-06-12 | 1999-06-15 | 정선종 | 우편경로 시스템 및 그 시스템에 따른 최단 경로 생성방법 |
JP3446930B2 (ja) * | 1996-09-30 | 2003-09-16 | 松下電器産業株式会社 | 経路選出方法および経路選出装置 |
DE60010993T2 (de) * | 1999-08-17 | 2005-06-09 | Toyota Jidosha K.K., Toyota | Routenführungsvorrichtung |
US6480785B1 (en) * | 2000-09-06 | 2002-11-12 | Vindigo, Inc. | System for determining a route and presenting navigational instructions therefor |
US6785608B1 (en) * | 2001-12-19 | 2004-08-31 | Navteq North America, Llc | System and method for calculating an optimized route and calculation thereof |
US7155339B2 (en) * | 2003-06-13 | 2006-12-26 | Alpine Electronics, Inc. | Display method and apparatus for navigation system for searching POI and arranging listing order of POI |
US7463972B2 (en) * | 2003-09-26 | 2008-12-09 | Aisin Aw Co., Ltd. | Navigation apparatus and method |
JP4529604B2 (ja) * | 2004-09-15 | 2010-08-25 | パナソニック株式会社 | 経路誘導装置 |
US20080215237A1 (en) * | 2006-05-17 | 2008-09-04 | International Business Machines Corporation | Design structure for adaptive route planning for gps-based navigation |
US20080167908A1 (en) * | 2007-01-05 | 2008-07-10 | Carl De Marcken | Notification service for presenting travel information |
US8175802B2 (en) * | 2007-06-28 | 2012-05-08 | Apple Inc. | Adaptive route guidance based on preferences |
US20090171980A1 (en) * | 2007-12-24 | 2009-07-02 | Meadow William D | Methods and apparatus for real estate image capture |
JP4906834B2 (ja) * | 2008-11-28 | 2012-03-28 | 株式会社ナビタイムジャパン | 物件検索システム及び物件検索方法 |
US8175793B2 (en) * | 2009-02-17 | 2012-05-08 | Mitac International Corp. | Navigation device |
JP5353291B2 (ja) * | 2009-02-19 | 2013-11-27 | ソニー株式会社 | 案内経路配信装置、案内経路配信方法及び案内経路配信プログラム |
US8532925B2 (en) * | 2009-05-08 | 2013-09-10 | Alpine Electronics, Inc. | Spatial indexing method and apparatus for navigation system for indexing and retrieval of XML map data |
US20100305984A1 (en) * | 2009-06-01 | 2010-12-02 | Scopia, LLC | Intermodal trip planner |
JP2012117876A (ja) | 2010-11-30 | 2012-06-21 | Canvas Mapple Co Ltd | ナビゲーション装置、及びナビゲーションプログラム |
US8364717B2 (en) * | 2011-01-10 | 2013-01-29 | Microsoft Corporation | Hardware accelerated shortest path computation |
US8660789B2 (en) * | 2011-05-03 | 2014-02-25 | University Of Southern California | Hierarchical and exact fastest path computation in time-dependent spatial networks |
US9677892B2 (en) * | 2011-08-16 | 2017-06-13 | Walk Score Management LLC | System and method for assessing quality of transit networks at specified locations |
US9140570B1 (en) * | 2011-09-08 | 2015-09-22 | Amazon Technologies, Inc. | Time-inclusive route and trip planning |
JP5906837B2 (ja) * | 2012-03-12 | 2016-04-20 | 富士通株式会社 | 経路探索方法、経路探索装置、及びプログラム |
US9002567B2 (en) * | 2013-01-07 | 2015-04-07 | Cloudcar, Inc. | Course-based place searching |
JP5928392B2 (ja) * | 2013-03-28 | 2016-06-01 | アイシン・エィ・ダブリュ株式会社 | ルート探索システム、ルート探索方法、及びルート探索プログラム |
US9689680B2 (en) * | 2013-06-04 | 2017-06-27 | Here Global B.V. | Method and apparatus for approaches to provide for combining contexts related to items of interest and navigation |
US9635517B2 (en) * | 2013-06-28 | 2017-04-25 | Globalfoundries Inc. | Identification of location of a target address using position information transmitted by position identifying transmitter in vicinity of target address |
US9785652B2 (en) * | 2015-04-30 | 2017-10-10 | Michael Flynn | Method and system for enhancing search results |
US9488487B2 (en) * | 2013-11-01 | 2016-11-08 | Yahoo! Inc. | Route detection in a trip-oriented message data communications system |
US9891065B2 (en) * | 2015-06-07 | 2018-02-13 | Apple Inc. | Transit incidents |
US10197409B2 (en) * | 2015-06-07 | 2019-02-05 | Apple Inc. | Frequency based transit trip characterizations |
US10845199B2 (en) * | 2016-06-10 | 2020-11-24 | Apple Inc. | In-venue transit navigation |
US10203214B2 (en) * | 2017-02-06 | 2019-02-12 | Here Global B.V. | Method and apparatus for filtering device location points in a sampled trajectory while maintaining path reconstructability |
US11692837B2 (en) * | 2017-10-18 | 2023-07-04 | Here Global B.V. | Automatic discovery of optimal routes for flying cars and drones |
KR101974109B1 (ko) * | 2017-12-21 | 2019-04-30 | 그제고스 말레비치 | 출발지 위치로부터 목적지 위치로의 여정에 대한 루트 또는 루트 소요 시간을 제공하기 위한 방법 및 컴퓨터 시스템 |
US11361361B2 (en) * | 2018-02-20 | 2022-06-14 | Grzegorz Malewicz | Method and an apparatus for searching or comparing sites using routes or route lengths between sites and places within a transportation system |
US20200300642A1 (en) * | 2019-02-13 | 2020-09-24 | Grzegorz Malewicz | Method and an Apparatus for Searching or Comparing Sites Using Routes or Route Lengths Between Sites and Places Within a Transportation System |
US20200349660A1 (en) * | 2019-02-13 | 2020-11-05 | Grzegorz Malewicz | Method and an Apparatus for Searching or Comparing Sites Using Routes or Route Lengths Between Sites and Places Within a Transportation System |
-
2020
- 2020-07-28 US US16/940,418 patent/US11346681B2/en active Active
-
2021
- 2021-04-25 CN CN202180047369.6A patent/CN115997205A/zh active Pending
- 2021-04-25 CA CA3181615A patent/CA3181615A1/en active Pending
- 2021-04-25 KR KR1020227041664A patent/KR20230136916A/ko active Search and Examination
- 2021-04-25 EP EP21795992.3A patent/EP4143700A4/en active Pending
- 2021-04-25 WO PCT/US2021/029024 patent/WO2021222046A1/en unknown
- 2021-04-25 JP JP2021558854A patent/JP7144818B2/ja active Active
- 2021-04-29 TW TW110115655A patent/TW202201242A/zh unknown
-
2022
- 2022-10-24 GB GB2215689.7A patent/GB2608776A/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
GB2608776A (en) | 2023-01-11 |
US11346681B2 (en) | 2022-05-31 |
US20210215500A1 (en) | 2021-07-15 |
GB202215689D0 (en) | 2022-12-07 |
EP4143700A1 (en) | 2023-03-08 |
WO2021222046A1 (en) | 2021-11-04 |
CA3181615A1 (en) | 2021-11-04 |
KR20230136916A (ko) | 2023-10-04 |
JP7144818B2 (ja) | 2022-09-30 |
TW202201242A (zh) | 2022-01-01 |
JP2022526401A (ja) | 2022-05-24 |
EP4143700A4 (en) | 2024-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7264357B2 (ja) | 交通システム内でのサイト及び場所の間のルート又はルート距離を使用してサイトを検索又は比較するための方法及び装置 | |
Hong et al. | Hierarchical community detection and functional area identification with OSM roads and complex graph theory | |
CN115997205A (zh) | 使用运输系统内地点和地方之间的行程搜索或比较地点的方法 | |
Ojagh et al. | A location-based orientation-aware recommender system using IoT smart devices and Social Networks | |
US20200349660A1 (en) | Method and an Apparatus for Searching or Comparing Sites Using Routes or Route Lengths Between Sites and Places Within a Transportation System | |
Wang et al. | A context-based geoprocessing framework for optimizing meetup location of multiple moving objects along road networks | |
US20200300642A1 (en) | Method and an Apparatus for Searching or Comparing Sites Using Routes or Route Lengths Between Sites and Places Within a Transportation System | |
Lu et al. | Particle swarm algorithm and its application in tourism route design and optimization | |
Yao et al. | Fast optimization for large scale logistics in complex urban systems using the hybrid sparrow search algorithm | |
US20240046389A1 (en) | A Method for Presenting Sites Using Their Similarity and Travel Duration | |
US20230175848A1 (en) | A Method and an Apparatus for Searching or Comparing Sites Using Travel Between Sites and Places Within a Transportation System | |
Rai et al. | Top-$ k $ Community Similarity Search Over Large-Scale Road Networks | |
Foti | A behavioral framework for measuring walkability and its impact on home values and residential location choices | |
Chen et al. | An advanced web API for isochrones calculation using OpenStreetMap data | |
EA042786B1 (ru) | Способ и инструмент поиска или сравнения точек с использованием маршрутов или длин маршрутов между точками и местами в транспортной системе | |
TW202018657A (zh) | 一種透過使用地點與交通系統中的地方間的路徑或路徑長度以搜尋或比較地點的方法與裝置 | |
Ramadhan et al. | Graph Modeling for An Interactive Routes Application (Case Study: Trans Jogja) | |
CN114860856A (zh) | 一种室内空间反向k近邻查询方法及其应用 | |
Ribeiro Filho et al. | TerraNetwork: a Urban Street Network Analysis System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |