Network Analyst 求解程序

ArcGIS Network Analyst 扩展模块 支持 6 种类型的求解程序,用于对交通网络执行分析,例如在整个城市范围内查找最佳路线、查找最近的急救车辆或设施点、识别某一地点周围的服务区,或使用一支车队来交付一批货物。 以下部分将介绍每个求解程序以及可执行的网络分析类型。

了解有关使用求解程序的详细信息

路径

路径求解程序可用于查找从一个位置到达另一个位置或访问多个位置的最佳路线。 最佳路径可以是考虑一天中某个给定时间段所对应的交通状况而得出的该时间段的最快路径,也可以是最小化行驶距离的最短路径。 路径求解程序还可以找到在您指定的允许的时间窗内访问各个停靠点的最佳路径。 如果要访问两个以上的停靠点,可以按照您指定的固定位置顺序确定最佳路径。 这类路径称为简单路径。 路径求解程序也可以确定访问位置的最佳顺序(旅行商问题)。 这类路径称为优化路径。

输入和输出

求解程序具有以下输入和输出参数:

  • 停靠点(输入)- 输入一条或多条路径将访问的位置
  • 路径(输出)- 通过分析生成的一条或多条路径

路径求解程序可以在解决方案中生成每个路径的转弯说明。

有关输入和输出的详细信息,请参阅路径分析图层

要使用 arcpy.nax 模块进行路径分析,请参参阅路径输入数据类型路径输出数据类型

最近设施点

最近设施点求解程序可测量事件点和设施点间的行程成本,然后确定最近的行程。 查找最近设施点时,您可以指定查找数量和行驶方向(驶向设施点或驶离设施点)。 最近设施点求解程序将显示事件点与设施点间的最佳路径,报告它们的行程成本并返回驾车指示。

在查找最近设施点时,可以指定约束条件,例如中断成本,求解程序不会搜索超出该中断成本的设施点。 例如,您可以建立最近设施点问题来搜索距离事故地点 15 分钟车程以内的医院。 查找结果中将不会包含任何行程时间超过 15 分钟的医院。 在本例中,医院为设施点,事故地点为事件点。 您还可以同时执行多个最近设施点分析。 这意味着允许存在多个事件点,并可以为每个事件点查找最近设施点。

提示:

最近设施点求解程序和 OD 成本矩阵求解程序所执行的分析非常相似;但两者的主要区别在于输出和计算速度不同。OD 成本矩阵可以更快地生成分析结果,但无法返回路径的实际形状或其驾车指示。OD 成本矩阵用于快速解决大型 M x N 问题,因此,矩阵内部不包含生成路径形状和驾车指示所需的信息。而最近设施点求解程序则能够返回路径和指示,但在分析速度方面却比 OD 成本矩阵求解程序要慢。如果需要路径的驾车指示或实际形状,请使用最近设施点求解程序;否则,请使用 OD 成本矩阵,以便减少计算时间。

输入和输出

求解程序具有以下输入和输出参数:

  • 设施点(输入)- 在最近设施点分析中用作起点和终点的输入位置
  • 事件点(输入)- 在最近设施点分析中用作起点和终点的输入位置
  • 路径(输出)- 通过分析生成的一条或多条路径

最近设施点求解程序可以在解决方案中生成每个路径的转弯说明。

有关输入和输出的详细信息,请参阅最近设施点分析图层

要使用 arcpy.nax 模板进行最近设施点分析,请参阅 ClosestFacility 输入数据类型ClosestFacility 输出数据类型

服务区

服务区求解程序可帮助您回答以下类型的问题:

  • 5 分钟内我能行驶到距这里多远的距离?
  • 哪些区域在商店的 3 英里行驶距离内?
  • 哪些区域距离消防站的车程小于 4 分钟?

创建服务区与缓冲点操作相似。 缓冲点时,您指定的是直线距离,而创建的是一个圆,该圆显示该距离范围内的区域。 围绕某点创建服务区时,您指定的也是距离,但是与缓冲区不同的是,该距离表示可沿网络(例如公路网)行驶的最大距离。 所得到的结果是一个服务区,该服务区涵盖在您指定的距离范围内可到达的道路。

例如,下图对 5 英里缓冲区(深色圆圈)和 5 英里服务区(缓冲区内浅色的不规则形状)进行了比较:

服务区与缓冲区
5 英里缓冲区(圆圈)与 5 英里服务区(圆圈中的不规则形状)。

服务区对沿网络移动的人或物进行建模。 缓冲区假定任意方向均畅通无阻。

例如,要了解某急救设施点 5 英里驾驶范围内的人数,最好使用服务区沿公路测量距离,以对潜在病人的移动进行建模。 使用直线缓冲区统计人员数量将会高估实际可在 5 英里行程距离范围内抵达设施点的人数。

要自定义服务区,需要设置服务区分析图层上的属性,以及设置构成分析图层的要素类的字段值。

输入和输出

求解程序具有以下输入和输出参数:

  • 设施点(输入)- 在其周围创建输出服务区面的输入设施点
  • 面(输出)- 生成的服务区面,该服务区面覆盖能够在给定时间、距离或其他行程成本中断内到达的网络区域。
  • 线(输出)- 作为线性要素的生成的服务区,该服务区覆盖能够在给定时间、距离或其他行程成本中断内到达的街道或网络边。

有关输入和输出的详细信息,请参阅服务区分析图层

使用 arcpy.nax 模块进行服务区分析,请参阅 ServiceArea 输入数据类型ServiceArea 输出数据类型

位置分配

位置通常被视为私营机构或公共组织获得成功的最重要因素。 私营机构可因便利的位置而受益匪浅,不管是面向当地客源的小型咖啡店,还是拥有配送中心及遍布全球的零售出货商业链的跨国性工厂网络都是如此。 良好的位置有助于保证经营成本固定且低廉,并维持较高的访问度。 公共机构(例如学校、医院、图书馆、消防站和应急服务 (ERS) 中心)如果选择一个便利的位置,就可以以较低的成本为社区提供高质量的服务。

选择最佳的消防站设施点

在可提供货物与服务的设施点以及消费这些货物及服务的请求点已经给定的情况下,位置分配求解程序的目标就是以合适的方式定位设施点,从而保证最高效地满足请求点的需求。 顾名思义,位置分配就是定位设施点的同时将请求点分配到设施点的双重问题。

乍看起来,所有位置分配分析似乎是解决相同的问题,但对于不同类型的设施点而言,最佳位置并不相同。 例如,ERS 中心的最佳位置就不同于制造工厂的最佳位置。 下面两个示例说明了当要定位的设施点类型不同时,位置分配问题的目标是如何变化的。

示例 1:为 ERS 中心选址

当某人呼叫救护车时,他们希望能够立刻得到帮助,而紧急响应的时间很大程度上取决于救护车与病人之间的距离。 通常,ERS 中心选址的目标就是要使救护车在规定的时间内可以到达尽可能多的人员所在的位置。 具体问题可能为:要使救护车四分钟内可达范围覆盖到尽可能多的社区人员,三个 ERS 设施点应设置在何处?

示例 2:为制造工厂选址

许多零售商店从制造工厂接收货物。 不论是生产汽车、设备,还是生产包装食品,制造工厂都可能将很大一部分的预算花费在运输上。 位置分配求解程序可回答如下问题:为使总运输成本降至最低,制造工厂应位于何处?

位置分配问题类型

位置分配分析图层包含 7 种问题类型以回答特定类型的问题,这些问题类型与以上两个示例中陈述的问题类似。 七种问题类型如下所示:

  • 最小化加权阻抗(P 中位数)
  • 最大化覆盖范围
  • 最大化覆盖范围和最小化设施点数
  • 最大化人流量
  • 最大化市场份额
  • 目标市场份额
  • 最大化有容量限制的覆盖范围

输入和输出

求解程序具有以下输入和输出参数:

  • 设施点(输入)- 输入位置用作候选设施点、必选设施点或竞争设施点,在位置分配分析中,将从这些设施点中选择实际位置
  • 请求点(输入)- 表示对设施点提供的货物和服务有需求的人员或物品的位置
  • 线(输出)- 将请求点连接到其所分配到的设施点的线要素

有关输入和输出的详细信息,请参阅位置分配分析图层

要使用 arcpy.nax 模块进行位置分配分析,请参阅 LocationAllocation 输入数据类型LocationAllocation 输出数据类型

起点-目的地成本矩阵

起点-目的地 (OD) 成本矩阵求解程序用于在网络中查找和测量从多个起始点到多个目的地的最小成本路径。 配置 OD 成本矩阵分析时,可以指定要查找的目的地数目和搜索的最大距离。

尽管 OD 成本矩阵求解程序不输出沿网络的线,但是存储在“线”属性表中的值却反映了网络距离,而不是直线距离。 OD 成本矩阵分析的结果通常会成为其他空间分析的输入,在这些空间分析中,网络成本比直线成本更适合分析。 例如,预测建筑环境中的人员流动更适合采用网络成本模型,因为人们一般在道路和人行道上行走。

提示:

如果查找直线距离更符合实际需要,请考虑使用生成近邻表地理处理工具。

提示:

最近设施点求解程序和 OD 成本矩阵求解程序所执行的分析非常相似;但两者的主要区别在于输出和计算速度不同。OD 成本矩阵可以更快地生成分析结果,但无法返回路径的实际形状或其驾车指示。OD 成本矩阵用于快速解决大型 M x N 问题,因此,矩阵内部不包含生成路径形状和驾车指示所需的信息。而最近设施点求解程序则能够返回路径和指示,但在分析速度方面却比 OD 成本矩阵求解程序要慢。如果需要路径的驾车指示或实际形状,请使用最近设施点求解程序;否则,请使用 OD 成本矩阵,以便减少计算时间。

输入和输出

求解程序具有以下输入和输出参数:

  • 起点 - 在生成指向目的地的路径时,用作起点的输入位置
  • 目的地 - 在生成从起点开始的路径时,用作终点的输入位置
  • 线 - 表示起点和目的地之间的连接以及其之间的行驶时间或距离的线

有关输入和输出的详细信息,请参阅 OD 成本矩阵分析图层

要使用 arcpy.nax 模块进行 OD 成本矩阵分析,请参阅 OriginDestinationCost Matrix 输入数据类型OriginDestinationCost Matrix 输出数据类型

车辆配送 (VRP)

各类组织都可能调配一支车队来为多个停靠点提供服务。 例如,大型家具商场可能会调配多辆货车将家具配送到各家各户。 某专业油脂回收公司可能需要从一个设施点配送卡车,以从各个饭店收集使用过的油脂。 卫生部门可能会为每位卫生监督员制定一个日常监督访问计划。

车辆配送 (VRP) 分析

上述各示例所要解决的共同问题就是车辆配送 (VRP)。 每个组织都需要确定各条路径(货车或监督员)所应服务的停靠点(住所、饭店或监督地点)以及其对各停靠点的访问顺序。 决策制定的主要目标是为各停靠点提供最佳服务并使车队的总体运营成本最低。 因此,尽管 Network Analyst 路径求解程序可为单个车辆访问多个停靠点找出一条最佳路径,但是,VRP 求解程序则可针对一支车队为多个停靠点提供服务的情况查找最佳路径。 此外,基于 VRP 求解程序可设置的多个选项,它还可用于解决更多具体的问题,例如,将车辆载重与停靠点的配送量相匹配、指定驾驶员的中途休息时间,以及配对停靠点使其能够由同一路径提供服务。

输入和输出

求解程序具有以下输入和输出参数:

  • 停靠点(输入/输出)- VRP 分析将访问的路径的一个或多个位置。 停靠点可以是为客户配送、从客户处接收或其他类型的工作。
  • 站点(输入/输出)- 车辆在工作时间开始时离开并在工作时间结束后返回的位置。
  • 路径(输入/输出)- 指定车辆和驾驶员的特征的一条或多条路径,还表示站点和停靠点之间的遍历。
  • 休息点(输入/输出)- VRP 中路径的休息时段或休息点。
  • 路径区(输入)- 给定路径的工作区域。
  • 站点访问(输出)- 如果路径在某个站点处开始、更新(卸货或重新装货)或终止,则会创建站点访问。 站点访问对象提供与路径访问站点的原因以及在站点发生的事情有关的信息。
  • “停靠点特殊要求”和“路径特殊要求”(输入)- 列出停靠点需要的和路径支持的特殊要求的表。 仅当路径支持某停靠点所需的所有特殊要求时,该路径才能为此停靠点提供服务。
  • 停靠点对(输入)- 用于为配送停靠点和接收停靠点进行配对,以使它们能够由同一路径提供服务的记录表。
  • 货物补给点(输入)- VRP 分析的路径要重新装载和卸载正在配送或接收的项目而可访问的中间站点。

VRP 求解程序可以在解决方案中生成每个路径的转弯说明。

有关输入和输出的详细信息,请参阅 VRP 分析图层

要使用 arcpy.nax 模块进行 VRP 分析,请参阅 VehicleRoutingProblem 输入数据类型VehicleRoutingProblem 输出数据类型

最后一公里配送

“最后一公里配送”求解程序聚焦于涉及将包裹配送至最终用户的一部分车辆配送问题。 “最后一公里配送”问题包含单个配送中心,将从该中心分派配送车辆前往客户位置。 这些位置可能跨城市和农村区域,并且密度可能有所不同。 一条街道上可能有多位用户,但并非每个地址都有用户。 用户也可能拥有时间窗,用于限制访问时间。 配送公司需要了解每条路径(配送车辆和驾驶员)所服务的用户,以及访问用户的顺序。 主要目标是生成在地理上聚集的路径,以便驾驶员能够为许多用户提供服务,同时最大限度地降低车队的总体运营成本。

注:
车辆配送求解程序是一个通用求解程序,可以对许多路径约束和目标进行建模。 然而,一些常见类别的车辆配送分析可以从更加定制的解决方案中受益。 最后一公里配送求解程序经过专门配置,可以对单个站点的包裹配送进行建模。 对于此类特定问题,最后一公里配送求解程序在易用性、生成路径的质量以及求解操作的速度方面对通用车辆配送求解程序进行了改进。

输入和输出

求解程序具有以下输入和输出参数:

  • 停靠点(输入/输出)- 最后一公里配送分析的路径将访问以便向客户进行配送的一个或多个位置。
  • 站点(输入/输出)- 车辆在工作时间开始时离开并在工作时间结束后返回的位置。
  • 路径(输入/输出)- 指定车辆和驾驶员的特征的一条或多条路径,还表示站点和停靠点之间的遍历。
  • 区域(输入)- 给定路径的工作区域。
  • 站点访问(输出)- 如果路径在某个站点处开始、更新(卸货或重新装货)或终止,则会创建站点访问。 站点访问对象提供与路径访问站点的原因以及在站点发生的事情有关的信息。
  • “停靠点特殊要求”和“路径特殊要求”(输入)- 列出停靠点需要的和路径支持的特殊要求的表。 仅当路径支持某停靠点所需的所有特殊要求时,该路径才能为此停靠点提供服务。

有关输入和输出的详细信息,请参阅最后一公里配送分析图层

要针对最后一公里配送分析使用 arcpy.nax 模块,请参阅 LastMileDelivery 输入数据类型LastMileDelivery 输出数据类型

详细了解有关最后一公里配送的功能以及选择它而非车辆配送分析的原因