
Sometimes the allocation engine will not be able to allocate every job the needed decisions are then deferred to the human team which supervises the work of the engine.Ĭosts covers a variety of different aspects of the decision taking problem. Also, there are jobs which have more priority than others, so the gain should reflect this, so as to encourage the solver to allocate for them in priority. Ideally, each job should be completed as scheduled postponement should be undertaken only as the very last resort. Gains are based on the value associated to the completion of each job. Objective function & Constraintsįor our optimization, we decided that it should be a minimization problem, so the objective function is defined as ‘total costs – total gains”. Here, a decision is basically “Assign this agent A to work on this job J on this given day D”, and the engine's job is to find the best set of decisions for specific jobs and agents to cover the jobs to be performed on a given day. Within that frame, we are representing the decisions to be taken as variables which can take specific values, we are defining the objective function F to be optimized based on those variables, and we are translating the operational constraints into mathematical constraints for those variables. Since we are takling about which set of decisions to take in order to reach the best outcome possible, while accounting for constraints, this task naturally lends itself to being modeled as an optimization problem. Modeling the problem & impact of the chosen solver The use of Baidu’s API to automatically fetch info about possible travels between different locations in China.The existence of DropSolve / WatsonIBM, and the ecosystem of other optimization problems solver solutions in general.The possibility to somehow work around a salesman-like problem's combinational explosion issue, by modeling geographical zones as cliques of the graph of locations.The known tricks to use in order to represent a non-linear optimization problem as a linear one.Here is the gist of what we have learnt while working on this project, or which can be useful to retain from this article: Illustration of an allocation problem accounting for ressources & jobs locations This is an operational task that we have to deal with at QIMA, and in this article we will explain how we went about it, by modeling and solving the task as a Mixed Integer Linear Programming problem. A problem to be solved is then to decide who to send to which job respecting, among other things, skills constraints making sure that as many jobs as possible are covered all while minimizing the costs associated to allocating an employee to a job (notably the duration and cost associated to travels).

The company has employees located over this territory as well, with different combinations of skills and level of skills to tackle those jobs. Let’s say that there is a list of jobs to perform every day, each one with their own skill requirements, and located at different places over a given territory.


One of the tasks that a company may have to perform is deciding where and in which circumstances to send the appropriate workforce to tackle a planned job.

#LINEAR PROGRAMMING SOLVER HOW TO#
Whether considering what to sell to whom and at which price, or in which order to visit different cities, scaling-up decision making processes can become quite complex, as the number of possibilities suffers from combinational explosion, and there may be no clear way a priori regarding how to go about it.
