MATLAB算法实战应用案例精讲-【工具篇】运筹优化工具OR-TOOLS(附实现代码)

前言

ortools是google的开源优化算法包,支持线性规划、整数规划,可以方便的求解Routing、Bin packing、Network flows、Assignment、Scheduling等问题。算法包支持java、c++、c#、python

OR-Tools的特点

1. 它具有跨平台性。OR-Tools的核心算法是用C++进行编写的,这使其具有跨平台性。此外,它同样可以用于Python、Java或C#编译过程。

2. 它是面向不同问题的优化工具套件。OR-Tools集合了各种先进的优化算法,它所包含的求解器主要分为约束规划、线性和整数规划、车辆路径规划以及图论算法这四个基本求解器,能够按照优化问题的类型,提供相对应的不同类和接口。例如:对于最简单的线性规划问题,可以使用Linear Solver来解决。

3. 它是开源且开放的。OR-Tools可以免费使用并且公开源代码。此外,OR-Tools还支持第三方求解器,可接入CPLEX等商用求解器以及SCIP等开源求解器。

Ortools使用方法

(1)Ortools求解器

1.线性规划与整数规划(Linear Optimization&Integer Optimization)

熟悉运筹学的小伙伴都知道,线性规划是指寻求以一组线性关系为模型的问题的最佳解决方案。混合整数规划则是指某些变量为整数的线性规划问题,这些变量可以是用于表示物品数量的整数变量或者表示决策的布尔型变量(例如是否将某个任务分配给某个工人)。

Google提供了两种解决线性规划问题的方法:

1. MPSolver:MPSolver是OR-Tools所提供的一个包装器,其中

你可能感兴趣的:(matlab,算法,开发语言)