In finding ways to make better decisions in your company, you may be considering an AI/ML solution. We’ve been hearing news about AI/ML penetrating almost all kinds of businesses around the world, so why not apply it to your business problem? Well, before choosing what is the right AI/ML approach for your business problem, we have to be sure that AI/ML is the best solution for the problem. Just because it is trendy or that we can perform AI/ML, does not necessarily mean that it is the best approach for you. Perhaps a software development approach like application modernisation might be a better fit. Or, maybe optimisation can best fit the problem.
How optimisation differs from AI/ML
We’ve suggested optimisation as a possible alternative approach to AI/ML or software development, but how does it differ? We can’t completely separate optimisation from AI/ML as optimisation is a core element in the development of most AI/ML models.
It is generally accepted that Deep Learning is a subcategory within the broader category of Machine Learning, which is a subcategory within the broader category of Artificial Intelligence. For example, rule-based systems like chatbots can fall within AI but are not necessarily ML.
Most ML applications are of the “supervised” kind, in which the model parameters are learned through exposure to training data. This process relies on optimisation to select the most appropriate values for the parameters.
And from those instances, optimisation is a core element to provide better performance. Reinforcement learning is a machine learning approach that follows the idea of rewarding desired behaviours and penalising negative behaviours. A good model would create a policy that maximises the long-term rewards. This maximisation hints towards the use of optimisation.
In Deep Learning, the training phase selects parameters that optimise a function having a big impact on the performance of the Deep Learning model. Finding the minimum of that function is a form of optimisation.
Having said that, there are optimisation methods that can solve business problems, typically in areas involving planning. Let’s have a closer look at what optimisation is and what it can deliver.
What is optimisation?
We can intuitively think of optimisation as making the most of a given resource. We can also think of optimisation as selecting the most suitable option given constraints on a set of possible alternatives.
There are multiple ways of categorising optimisation. Optimisations can also be classified as either constrained or unconstrained. For example, if we’d like a solution to a problem that can only have values from the range of 1 to 5, then that would fall into constrained optimisation. Knowing the classification of some optimisation problems can help us identify techniques that could likely solve the problems.
Another useful classification for optimisation applied to business is to classify the optimisation as either discrete or continuous. Continuous optimisation problems have a solution that must be chosen from continuous values (without rounding, breaks or gaps). There are known methods like those from Calculus to search for a minimum or maximum value.
Discrete optimisation, also known as combinatorial optimisation, can intuitively be defined when at least one variable of the solution belongs to a discrete set (not continuous). For example, if a problem is asking what is the largest number of ping pong balls you can fit in a shoe box, you would expect that the solution is a number drawn from a discrete set, specifically from the set of natural numbers.
Another classification that might be useful, especially in the business setting, relates to the certainty of the information available. Deterministic optimisation assumes that the information is known accurately. In the business sense, this is likely not always the case. For optimisation under uncertainty, known as stochastic optimisation, the uncertainty is fed into the model and can use techniques like knowing certain ranges of the possible solution or the probability distribution of the input data.
Optimisation in different industry verticals
There are various optimisation scenarios that apply in different verticals. In this section we’ll list some simple examples, but variations of these arise in many settings. Although basic, variations of these examples can be found across a range of industries, sometimes with complications that prevent the use of standard approaches and require a custom solution.
There are well-studied optimisation problems with known solution approaches that we can use as starting patterns for some business use cases. However, we have to be careful in simply copying a pattern. We may need to combine multiple patterns, especially if the solution is a differentiator for the business in that field. In addition, some consideration must be given to how the problem is presented because this can have a significant bearing on the feasibility of finding a solution. This is because the problem representation will typically determine the parameter space, which is the range of choices from which a possible solution must be found, and this will typically scale in size exponentially. These patterns can help create bespoke solutions without having to start from scratch. It still takes experience, art and skill to choose, combine or create appropriate optimisation solutions for the business problem.
Optimisation can assist an exam coordinator to create a schedule where the students are able to take their exams in the finals week given a limited number of classrooms and exam supervisors. Aside from satisfying these constraints, the optimisation can try to provide different results based on an objective. For example, the objective to minimise the dollar cost of scheduling exams will likely be different to an objective that would let each student have their exams as widely separated as possible within the finals week.
We can also look into scheduling but instead of the course schedules we had from the education example, we can schedule the charging and discharging of a home battery setup in a bi-directional power grid with dynamic pricing. The charging-discharging goal might be to lower the overall electricity cost, so the optimisation might opt to sell electricity with peak pricing and charge the battery at below-average prices.
We can make use of the resource allocation concept in optimisation. Picking what stocks to include in an investment portfolio can be aided by optimisation. At first we may want to see what stock combination could meet the budget given a few constraints, such as only choosing from sustainable stocks meeting a certain price-earnings ratio. In the next step, we may want to choose them based on an objective like optimising for the greatest long-term returns.
Transport and logistics
We can think of fitting boxes with different sizes into a container for shipping. Our goal may be to maximise the number of boxes that can fit within the container. A truck carrying the container can follow an optimised route that picks the most cost-efficient route given the constraints.
Optimisation can help with inventory and supply chain management, in having just-in-time delivery of medicine, just enough stock within a range and not too much as medicine too close to its expiry date is also an unwanted scenario. Scheduling of shifting schedules of medical professionals can also be a variation of the scheduling problem mentioned in the education and energy industries.
Taking a step back and seeing if a business problem can be solved by optimisation is probably a good starting point. But similar to moving AI/ML into production, an optimisation model is not enough for the system to move into production. We may have aspects such as visualisation of the model results, continuous integration and continuous testing. And we are not limited to the model implementation as we also need to consider, for example, the user experience.
Our experience with optimisation
DiUS has worked with a leading provider of solutions in the aviation industry to create a bespoke solution for the client in optimising the schedule for pilot flight training. For the client with specialised constraints that needs to coordinate multiple facilities, assets, people and resources in high-risk and complex environments, optimising the pilot flight training could not be met by generic scheduling solutions. Our team was brought in to create a bespoke solution for the client in optimising the schedule for pilot flight training. For the modelling, we are using the solver-agnostic MiniZinc tool to encode the constraints based on client needs. For visualisation and analysis, we are using Python, Jupyter Notebook, Matplotlib and Altair to accommodate our rapid experimentation cycle.
Aside from providing an optimised schedule, our goal is also to provide a “what If” scenario tool to help clients decide which resources like aircraft, classrooms, and simulators would need attention to improve the “good schedule” criteria like short duration time, balanced load for instructors, and student progress leveling.
The experience of our consultants also includes optimisation in fleet management. For example, planning for electric vehicle battery charging in swapping stations depends on factors such as the predicted demand uptake of electric vehicles needing fully charged batteries when they visit the station, dynamic electricity pricing where it is preferred to charge batteries on low-price electricity, and prefer to remain idle or discharge to the grid on peak electricity pricing. With a given size of battery swapping stations, the aggregated batteries in these stations can also act as a form of distributed energy storage that can support intermittent renewable sources like solar energy.
What are the solution options?
At the higher level, customers may consider buying off-the-shelf services or build their own solution. Especially if the problem does not fit a generic optimisation pattern, we may need to handle this using a bespoke solution.
Similar to the options available when selecting an approach for AI/ML, there are different levels of approaches that can be used with optimisation, as shown in the figure below. The off-the-shelf solutions can be classified as part of a top-level service. This could provide the fastest way to employ optimisation, but this can be restrictive and can only fit basic patterns.
For business cases where there is a need to encode special optimisation constraints, a platform that can support constraints and objectives and is able to interface with different solvers can speed up the development process. For example, we can use MiniZinc as a solver-agnostic tool for encoding constraints for both satisfaction and optimisation problems.
Going more deeply into customisation and potentially greater computational performance, we can also use a solver-specific language, but this limits us to the one solver only, and increases the difficulty if we need to pivot to another solver in the future.
Finally, although less practical but which theoretically might produce the best computational performance, we can develop our own solvers to address our optimisation problems. This may take time, especially if we want to consider the edge cases and benchmarking the developed solver against other readily-available solvers.
Level 3 is often the best approach for business problems, where there may be some urgency about developing the solution or the business would like to use optimisation to differentiate its offering from those of its competitors.
What’s the future?
One of the things that differentiates optimisation problems from conventional software applications is the scaling of parameters. With optimisation problems, it’s not uncommon for the size of the solver search space to increase exponentially as the problem scales.
For scheduling, for example, increasing the number of participants from 50 to 100 may require more computing time than a simple doubling. So, just the conventional scaling of compute and storage may not be enough. However, there are techniques that can bypass some of these scaling issues like restructuring the problem into a hierarchical optimisation of smaller problems.
In the future, quantum computing may also resolve some scaling issues for specific problems using the collective properties of quantum states. For example, discrete optimisation examples such as class scheduling, route optimisation and discrete resource allocation can benefit from finding a solution using quantum computing. Amazon Braket, a fully-managed quantum computing service, provides a starting point to solve such problems using quantum annealing. Quantum computing can speed up finding the right approach for trial and error calculations. Quantum computing can perform calculations based on the probability of the state’s value instead of a definite “on” or “off.”
Advances in graph theory can also speed up the usual computation for some problems that could have taken decades to solve with traditional algorithms. For example, a team of researchers recently found an almost-linear time algorithm instead of the previous exponential time algorithm for network flow.
Together with advances in quantum computing, such discoveries mean this space is likely to have exciting developments in the near future. Now could be the right time for businesses to start exploring applications of optimisation.
It’s not too late to take a step back into your business problem. The best approach might be an AI/ML solution or a software development solution or, perhaps, an optimisation solution.