网络建模:约束、结构与创建
1. 网络约束概述
在网络分析中,之前的分析往往仅考虑相对简单的变量,如网络连接性、链路方向、节点和链路状态以及成本。然而,现实生活中的许多场景需要更复杂的选择。例如,在道路网络的路线计算中,需要考虑受限的转弯操作,单行道可以通过有向链路轻松建模,道路网络的动态方面(如因维修而关闭的街道)可以通过活动/非活动状态来建模。但有些限制可能是季节性或时间相关的,比如山区通道仅在夏季开放,渡轮仅在一年中的特定时间运营。其他限制可能是法律规定的,如在繁忙的大道上左转或掉头,这些限制可能仅在特定时间适用。此外,不同类型的车辆可能受到不同的限制,如私人通道不能用于公共交通,但应急车辆始终可以通行;低矮的隧道或脆弱的桥梁会阻止卡车但不阻止汽车通行;在运河网络中,驳船只能在足够宽和深的区域行驶,而小船则可以在任何地方通行。
在其他类型的网络中也存在类似问题,如在电气或电信网络中,节点可能代表复杂的设备,其行为比简单的开/关状态更为复杂。
2. 网络约束的实现
可以使用 NetworkConstraint 接口来实现这些类型的约束,具体通过 isSatisfied() 方法。该方法会传入一个 AnalysisInfo 对象,该对象提供了足够的上下文信息,以便你决定是否接受或拒绝提议的链路。可以使用表 1 中的方法来了解正在计算的解决方案的当前状态。
| 方法 | 含义 |
|---|---|
| < |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



