.NET wrapper for the Operations Research Tools project
$ dotnet add package Google.OrToolsThis is the .NET wrapper of OR-Tools.
Google Optimization Tools (a.k.a. OR-Tools) is open source, fast and portable software suite for solving combinatorial optimization problems, which seeks to find the best solution to a problem out of a very large set of possible solutions. Here are some examples of problems that OR-Tools solves:
In most cases, problems like these have a vast number of possible solutions—too many for a computer to search them all. To overcome this, OR-Tools uses state-of-the-art algorithms to narrow down the search set, in order to find an optimal (or close to optimal) solution.
OR-Tools includes solvers for:
A set of techniques for finding feasible solutions to a problem expressed as constraints (e.g., a room can't be used for two events simultaneously, or the distance to the crops must be less than the length of the hose, or no more than five TV shows can be recorded at once).
The Glop linear optimizer finds the optimal value of a linear objective function, given a set of linear inequalities as constraints (e.g., assigning people to jobs, or finding the best allocation of a set of resources while minimizing cost). The mixed-integer programming software SCIP is also available.
A specialized library for identifying best vehicle routes given constraints.
Code for finding shortest paths in graphs, min-cost flows, max flows, and linear sum assignments.
See the open issues for a list of proposed features and known issues.
The CONTRIBUTING.md file contains instructions on how to submit the Contributor License Agreement before sending any pull requests (PRs).
Of course, if you're new to the project, it's usually best to discuss any proposals and reach consensus before sending your first PR.
The OR-Tools software suite is licensed under the terms of the Apache License 2.0.