常见规划问题2

一、Ortools使用

线性规划,默认使用GLOP

整数规划,默认使用CBC(Coin-or branch and cut),还包括SCIP、GLPK、Gurobi等

开源求解器,在计算性能和规模上弱于商业求解器,适用于中小企业及普通问题

ortools: 整数规划求解器,默认使用CBC(Coin-or branch and cut),还包括SCIP、GLPK、Gurobi等

Solver创建 solver = pywraplp.Solver.CreateSolver('SCIP')

变量设置

solver.NumVar:创建普通变量

solver.IntVar:创建整数变量

二、Project A:Santa服务调度

%%time 在jupyter中可以给出cell代码运行一次的时间

np.sort(a),对a按从小到大的顺序排序 np.argsort(a),返回数组从小到大的索引

@njit(fastmath=True) numba是python的即时编译器,当调用python函数时,代码会替换为机器码执行 numba可以加速计算负载比较大的python函数

@njit 表示全部使用加速 fastmath=True,启用函数的快速数学行为

三、旅行商问题(TSP):

Travelling Salesman Problem,一个旅行商想去拜访若干城市,然后回到他的出发地,给定各个城市之间所需的旅行时间后,怎样计划他的路线,使得他能对每个城市恰好进行一次访问,而且总时间最短

from sko.GA import GA_TSP

ga_tsp = GA_TSP(func=compute_distance, n_dim=num_points, size_pop=50, max_iter=500, prob_mut=0.2) 编写compute_distance函数,计算城市的距离

四、多辆车的路径规划 VRP

条件:经过中国33个城市,一共4辆车,每辆车最大行驶10000公里 目标:使得每辆车的行驶里程数更接近 数据预处理:

1)设置 num_vehicles,代表一共多少量车

2)设置 depot,代表所有车的起始出发点一样,都是从节点depot开始

3)添加距离约束,即每辆车的最大行驶距离

需要注意:

1)在VRP问题中,路径上给点赋的index和点实际的index不一样,需要使用IndexToNode方法进行转换才能得到实际的index

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值