Google Optimization Tools介绍
2018-04-01 00:00
302 查看
Google Optimization Tools(OR-Tools)是一款专门快速而便携地解决组合优化问题的套件。它包含了:约束编程求解器。
简单而统一的接口,用于多种线性规划和混合整数规划求解,包括 CBC、CLP、GLOP、GLPK、Gurobi、CPLEX 和SCIP。
图算法 (最短路径、最小成本、最大流量、线性求和分配)。
经典旅行推销员问题和车辆路径问题的算法。
经典装箱和背包算法。
Google使用C++开发了OR-Tools库,但支持Python,C#,或Java语言调用。
Java使用jar命令调用lib/com.google.ortools.lib的方式,并且将 ‑Djava.library.path=PATH_TO_or‑tools/lib添加到命令行。
C#添加bin/Google.OrTools.dll到项目依赖,或者使用NuGet搜索Google.OrTools进行安装。
using Google.OrTools.LinearSolver;
public class my_program
{
private static void RunLinearProgrammingExample(String solverType)
{
Solver solver = Solver.CreateSolver("IntegerProgramming", solverType);
Variable x = solver.MakeNumVar(0.0, 1.0, "x");
Variable y = solver.MakeNumVar(0.0, 2.0, "y");
Objective objective = solver.Objective();
objective.SetCoefficient(x, 1);
objective.SetCoefficient(y, 1);
objective.SetMaximization();
solver.Solve();
Console.WriteLine("Solution:");
Console.WriteLine("x = " + x.SolutionValue());
Console.WriteLine("y = " + y.SolutionValue());
}
static void Main()
{
RunLinearProgrammingExample("GLOP_LINEAR_PROGRAMMING");
}
}执行结果如图:
![](https://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_png/gak2lhVxV6Lgg7tMibVAg0BMAPSCniarC8gs5XYFlfZUGL4pIg0CqKkClYOsrrqc9XiccqwPu14wLIsHLKS3tp8RQ/640?wx_fmt=png)
下一篇这个系列的文章,将具体介绍一种约束求解的应用场景。 原文地址:http://www.cnblogs.com/BeanHsiang/p/8663625.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
简单而统一的接口,用于多种线性规划和混合整数规划求解,包括 CBC、CLP、GLOP、GLPK、Gurobi、CPLEX 和SCIP。
图算法 (最短路径、最小成本、最大流量、线性求和分配)。
经典旅行推销员问题和车辆路径问题的算法。
经典装箱和背包算法。
Google使用C++开发了OR-Tools库,但支持Python,C#,或Java语言调用。
安装Google OR-Tools
Google OR-Tools的源码在[Github] google/or-tools。其它开发环境下的安装如下。Linux or Mac下安装
1. 确认使用了Python 2.7+,3.5+版本,以及pip 9.0.1+版本。2. Mac OSX系统需要安装命令行工具Xcode,在Terminal中执行xcode-select --install。 Linux系统需要安装g++,在Terminal中执行sudo apt-get install g++ make。 如果使用C#请确认安装了Mono 4.2.0+的64位版本。3. 在Terminal中执行pip install --upgrade ortools直接安装Python版本的OR-Tools包。C++/Java/C#版本的链接为:Mac, Ubuntu 17.04, Ubuntu 16.04, Ubuntu 14.04, CentOS 7, Debian 9 ,下载到指定目录后执行make all。Windows下安装
Python版本的包的安装和Linux一样,可自行选用合适的开发工具。若是使用C++、C#,推荐使用64位版本的Windows10操作系统,并且使用Microsoft Visual Studio 2015 或者 2017作为开发工具,相应的库文件下载地址为: Visual Studio 2017 the Visual Studio 2015。C++使用lib/ortools.lib, 并且将or‑tools/include添加到项目引用。Java使用jar命令调用lib/com.google.ortools.lib的方式,并且将 ‑Djava.library.path=PATH_TO_or‑tools/lib添加到命令行。
C#添加bin/Google.OrTools.dll到项目依赖,或者使用NuGet搜索Google.OrTools进行安装。
Demo
以下是几种支持语言的demo,运行一下验证是否安装正确。 C# 代码using System;using Google.OrTools.LinearSolver;
public class my_program
{
private static void RunLinearProgrammingExample(String solverType)
{
Solver solver = Solver.CreateSolver("IntegerProgramming", solverType);
Variable x = solver.MakeNumVar(0.0, 1.0, "x");
Variable y = solver.MakeNumVar(0.0, 2.0, "y");
Objective objective = solver.Objective();
objective.SetCoefficient(x, 1);
objective.SetCoefficient(y, 1);
objective.SetMaximization();
solver.Solve();
Console.WriteLine("Solution:");
Console.WriteLine("x = " + x.SolutionValue());
Console.WriteLine("y = " + y.SolutionValue());
}
static void Main()
{
RunLinearProgrammingExample("GLOP_LINEAR_PROGRAMMING");
}
}执行结果如图:
下一篇这个系列的文章,将具体介绍一种约束求解的应用场景。 原文地址:http://www.cnblogs.com/BeanHsiang/p/8663625.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
相关文章推荐
- 使用.Net Core与Google Optimization Tools实现员工排班计划Scheduling
- PHP查询Google PR值接口API介绍
- Google推荐的图片加载库Glide介绍
- Tools介绍:Dependency Walker 介绍
- Google推荐的图片加载库Glide介绍
- Android SDK中 tools 目录下的工具介绍
- google perftools分析程序性能
- (转)Google Fonts 的介绍与使用
- Google Protocol Buffers介绍和总结
- 介绍一下google推荐的Android图片加载框架——Glide
- Google推荐的图片加载库Glide介绍
- Google TensorFlow 机器学习框架介绍和使用
- achartengine(Google给android提供的绘图工具包)的介绍和使用
- Wireless tools for Linux介绍
- 开源介绍:Google Guava、Google Guice、Joda-Time
- Google Spanner和F1介绍
- Google推荐的图片加载库Glide介绍
- Google Perftools简介与使用
- Android SDK中 tools 工具介绍
- Google-Guice入门介绍