## google's or-tools
### tl; dr * the goal of optimization is to find the best solution to a problem out of a large set of possible solutions (or any feasible solution). * all optimization problems have the following elements: * the **objective**: the quantity you want to optimize. an optimal solution is one for which the value of the objective function is the best, i.e. max or min. * the **constraints**: restrictions on the set of possible solutions, based on the specific requirements of the problem. a feasible solution is one that satisfies all the given constraints for the problem, without necessarily being optimal. * [google's or-tools](https://developers.google.com/optimization/introduction) is an open-source software for combinatorial optimization, which seeks to find the best solution to a problem out of a very large set of possible solutions.