Optimization route

overview, tools and code

Classical optimization problems(Constraint programming, Linear and Mixed-Integer Programming etc) include a variety of areas and technical difficulties(modelling, coding, processing etc).

For today's decentralized, dynamic/real-time, fast growing and high demand analytical workloads, companies could easily take advantage of both worlds by mixing modern optimization libraries with cloud infrastructure solutions. 

Below follows some tools and libraries that once required can make a difference. 

Let's go!

Summary

Optimization(or combinatorial optimization) aims to find the best solution to a problem out of a very large set of possible solutions(system of linear equations and inequalities). As search them all isn't(yet) optimal, one must narrow down the search set. As examples:

Tools & libraries

And the list goes on and on...

General Workflow

Problem

Let's do a classic combinatorial optimization problem, "Resource Constrained Project Scheduling(RCPS)", a more practical example:  

Find a feasible scheduling for a set of n jobs subject to resource and precedence constraints.

Each job has a processing time, a set of successors jobs and a required amount of different resources. Resources may be scarce but are renewable at each time period

Precedence constraints between jobs mean that no jobs may start before all its predecessors are completed. The jobs must be scheduled non-preemptively, i.e., once started, their processing cannot be interrupted.


J jobs set

R renewable resources set

S set of precedences between jobs (i,j)∈J×J

T planning horizon: set of possible processing times for jobs

pj processing time of job j

u(j,r) amount of resource r required for processing job j

cr capacity of renewable resource r