We continuously make decisions throughout the day, but some decisions are so complex and important that it is worth having the support of a computer. In most AI solutions, we give the computer historical data and finds patterns in that. This approach works well if your goal is to explain or predict something, but it will not necessarily improve on what you have already done. When it comes to making decisions, however, there is often a better way. By using an optimisation model, you can identify the best possible solution among all available options.
What is an optimisation model?
Each optimisation model contains of three parts: decision variables, constraints, and the objective function. A decision variable represents the choices you need to make: what is the capacity of a battery or warehouse, when does a project start or what employee is doing which task? A solution to an optimisation model is represented by a value for each decision variable.
Not all decisions are allowed, so the constraints impose limitations on the decisions you can make. For example, it is not allowed to exceed a certain budget, a project needs to be finished before a deadline, or an employee can only do one task at a time. Any solution that satisfies all constraints is called a feasible solution.
In most situations, you are not interested in just a feasible solution, but you would like to achieve a goal. That is where the objective function comes into play. The objective evaluates the quality of a solution: the total profit, CO2 or the employee satisfaction. The solution for which the objective is the best is called the optimal solution.
How to create an optimisation model?
Creating an optimisation model is something that you can do using pen and paper. You just need to write down all its aspects using mathematical notation. The computer that eventually will solve the model only uses the information from the model and nothing else. So, it is important that your model contains all the relevant details. For example, if you have missed some constraints in your model, then the solution might not fulfill all requirements. On the other hand, if one of your constraints is too strict, then it could be that the optimal solution is not found.

It is good practice to create an optimisation model in an iterative process. You start with a small model for which you can verify the outcome and then you add gradually more constraints or decision variables to the model and check if the solution changes as expected.
How to solve an optimisation model?
After you have made an optimisation model, you need to provide it using a programming language such as Python or Java to a computer to solve it. A computer uses an algorithm to solve the optimisation model. There are many different types of algorithms to find the optimal solution. A very simple one is to try all possible solutions and see which one has the best objective function. However, that algorithm might very well take years to find the optimal solution, whereas more clever algorithms, based on proven and reliable methods developed over decades, can provide the optimal solution within minutes or even seconds.
Conclusion
An optimisation model is a way to represent the problem you are facing in a way that can be understand by a computer. You provide it the levers it can control, the boundaries that are acceptable and the goal you would like to achieve. A combination of a good optimisation model and a state-of-the-art algorithm will let you harness the power of computers. Please reach out to us if you are interested in how an optimisation model for your business problem would look like.


