ortools路径优化

在这里插入代码片

from ortools.constraint_solver import routing_enums_pb2
from ortools.constraint_solver import pywrapcp
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
os.chdir(‘C:/Users/guoxiaobi/Desktop/高德API/’)

capacity_ratio, time_ratio, distance_ratio = 100, 60*60, 1000
def create_data_model():
“”“Stores the data for the problem.”""
data = {}
data = {}
data_t = pd.read_csv(‘time_matrix.csv’, encoding=‘gbk’)
data[‘time_matrix’] = data_t.iloc[:, 1:].values

data_ = pd.read_excel('getlocation.xlsx')
data['time_windows'] = (data_.loc[:,['start', 'end']].values).astype('int64').tolist()
data['num_vehicles'] = 4
data['vehicles_time'] = [8 * time_ratio, 9.5 * time_ratio, 13 * time_ratio,8 * time_ratio,]
data1 = pd.read_csv('distance_matrix.csv')
data['distance_matrix'] = data1.iloc[:, 1:].values
data['distance_limit'] = [70 * distance_ratio] * data['num_vehicles']
data['demands'] = (data_.loc[:, '实际量'].values) * capacity_ratio
data['clients'] = data_.iloc[:, 1:3].values  # 经纬度
data['vehicle_capacities'] = [8 * capacity_ratio, 8 * capacity_ratio, 8 * capacity_ratio,  8 * capacity_ratio]
data['depot'] = 0
return data

def print_solution(data, manager, routing, solution):
“”“Prints solution on console.”""
time_dimension = routing.GetDimensionOrDie(‘Time’)
total_time = 0
total_distance = 0
total_load = 0
path_list, path_dict = list(), di

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值