當前位置:
首頁 > 最新 > Google Optimization Tools介紹

Google Optimization Tools介紹

Google Optimization Tools(OR-Tools)是一款專門快速而便攜地解決組合優化問題的套件。它包含了:

約束編程求解器。

簡單而統一的介面,用於多種線性規劃和混合整數規劃求解,包括 CBC、CLP、GLOP、GLPK、Gurobi、CPLEX 和SCIP。

圖演算法 (最短路徑、最小成本、最大流量、線性求和分配)。

經典旅行推銷員問題和車輛路徑問題的演算法。

經典裝箱和背包演算法。

Google使用C++開發了OR-Tools庫,但支持Python,C#,或Java語言調用。


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


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 dotNET跨平台 的精彩文章:

老衣的微服務實踐簡要指引2017版
【ASP.NET Core】處理異常

TAG:dotNET跨平台 |