1 CVRP求解
基本流程是:
- 首先定义距离矩阵,然后利用距离矩阵构建无向图
- 定义需求字典,并将需求字典转化为节点属性
- 将车场点标记为Source和Sink节点
from networkx import DiGraph, from_numpy_matrix, relabel_nodes, set_node_attributes
import numpy as np
def cvrp():
# 定义距离矩阵
DISTANCES = [
[0, 548, 776, 696, 582, 274, 502, 194, 308, 194, 536, 502, 388, 354, 468, 776, 662, 0], # from Source
[0, 0, 684, 308, 194, 502, 730, 354, 696, 742, 1084, 594, 480, 674, 1016, 868, 1210, 548],
[0, 684, 0, 992, 878, 502, 274, 810, 468, 742, 400, 1278, 1164, 1130, 788, 1552, 754, 776],
[0, 308, 992, 0, 114, 650, 878, 502, 844, 890, 1232, 514, 628, 822, 1164, 560, 1358, 696],
[0, 194, 878, 114, 0, 536, 764, 388, 730, 776, 1118, 400, 514, 708, 1050, 674, 1244, 582],
[0, 502, 502, 650, 536, 0, 228, 308, 194, 240, 582, 776, 662, 628, 514, 1050, 708, 274],
[0, 730, 274, 878, 764, 228, 0, 536, 194, 468,