Artificial Intelligence technologies such as machine learning, mathematical programming, and heuristics are being increasingly used by enterprises of different sizes and industries. The applications are greatly varied: they range from logistics and supply chain (problems such as routing and network design), financial services (risk minimization, fraud detection, credit analysis) to industrial processes (scheduling, raw materials optimization), for example.
This increase in the use of such technologies can be linked to many reasons, like advances in the machines’ computing power, the intensive collection and use of data, and decision-makers relying on decision support systems (and not only on their feelings and experience). This digital transformation is forcing companies to use new technologies and evolve their structures.
However, the decision on which technology to use for addressing an issue is not easy. Each of them has its advantages and disadvantages as they will solve the problem in different ways, so it is important to use the one that best suits the application, observing aspects such as agility to find a solution, adaptability of the application to changes in data, and interpretability of the results, for example. Another aspect is the optimality of the solutions proposed.
A solution here can be defined as the decision proposed by the technology. A feasible solution is a solution that satisfies all existing constraints. An optimal solution is a feasible solution that is assured to be the best one: no other solution can result in a better decision. There's only one AI technology that can ensure the optimality of a solution in some cases: mathematical programming.
Mathematical programming consists of the creation of mathematical models, containing a set of variables and parameters that will be used on equations defining the constraints and the objective function that will be maximized or minimized. The nature of variables and equations will determine the class of the model, whether it is an integer or nonlinear programming, for example. Depending on the model characteristics (such as the functions' convexity and smoothness), it is possible to ensure the optimality of the solutions proposed. This happens because the solvers - software capable of solving such models - are able to prove the optimality of the solution.
Of course, it is not always important to guarantee that the solution proposed is optimal. For instance, there are many cases in which the problem is so complex that it is only necessary to find a feasible or a "good" solution. Nonetheless, in some situations, the decision is so important, or the difference between a "good" solution and an optimal one is so significant (in financial terms, for instance), that it is important to be sure that the decision being made is optimal.
Therefore, when defining which AI technology to use, make sure to clearly identify what are the main aspects for your application: if optimality is important, you must consider mathematical programming as your main option.
Author: Cassiano Lima - Senior Consultant at Cassotis Consulting
Co-author: Emmanuel Marchal - Managing Partner at Cassotis Consulting