Generally speaking, optimization is about finding an optimal solution to a problem. At Quintiq, we use optimization techniques to solve planning problems, such as finding routes for truck deliveries, creating rosters for specialized personnel or finding optimal sequences of orders on machines. Typically, these problems have become either so large or so complex (or both), that we have to ask a computer to find a solution for us.
Does that mean – even after trying for an infinite amount of time and perhaps even using proven mathematical techniques – that the outcome of such an optimization run is then the best possible solution one might ever come up with? No, of course not. Optimal could in that sense just as well be suboptimal. We may have found a local optimum, which means that in theory there might be a better solution, but in the particular direction the optimizer was currently looking for a solution this is the best it could come up with.
And there we find the essence of optimization: we (or rather, computers and algorithms) are actively looking for a good solution. Using whichever kind of mathematical technique (and feel free to toss in any buzzword you might like such as branch and bound, local search, simulated annealing, specialized tabu search, hill climbing, linear programming, mixed integer programming, or constraint logic programming), there is a search taking place within the system for a good solution and the system is actively trying to improve this solution all the time, the quality of which is measured against well-defined KPIs.
So where does this put automation then? Automation is of course literally automating stuff in order to reduce human work in the production of goods, services, or in this case, solutions to a planning problem. In that sense, the above description of optimization can also be called automation, as the system is taking over (part of) the planner’s job to find a solution to the planning problem. Yet we do distinguish between the two, and that’s where we might run into some problems with semantics.
Although technically speaking optimization can be seen as some kind of automation (the computer finds a solution while the planner finds a cup of coffee), we consider optimization to be “more clever” than automation.
For me, this brilliant quote by Einstein helps to articulate the automation concept: “Insanity: doing the same thing over and over again and expecting different results.” In Quintiq terminology, the difference between automation and optimization is that optimizers have some built-in intelligence; they actively seek good solutions, whereas automation is simply a matter of applying the same steps every time to get to a certain planning result. For example, automation could be: create a plan that produces all orders in descending order of urgency. This only requires one sorting step (e.g. on the due date), and produces the same result for a given set of orders every time. Automation typically uses heuristics (best guesses or rules of thumb based on experience) that lead to acceptable results (but are not necessarily optimal).
Read Parachuting Ants: Optimization vs. Automation Part II to find out what ants and parachutes have to do with optimization and automation.