Many demands, limited resources
Every organization faces planning problems and must provide products or services with a limited set of constrained resources, such as employees, assets, time, and money.
Business optimization can help solve many challenges, including:
- Employee rostering—scheduling personnel, such as nurses or service roles, with the appropriate availability and skills for 24-hour coverage.
- Agenda scheduling—scheduling meetings, appointments, maintenance jobs, advertisements, and more.
- Educational scheduling—scheduling lessons, courses, exams, or conference presentations.
- Vehicle routing—planning vehicles, such as trucks, trains, boats, or airplanes—for freight or people.
- Bin packing—filling containers, trucks, ships, and storage warehouses, and also cloud compute nodes.
- Job shop scheduling—planning car assembly lines, machine queue planning, or workforce task planning.
- Cutting stock—minimizing waste while cutting paper, steel, or carpet.
- Sports scheduling—planning sports team leagues.
- Financial optimization—optimizing investment portfolios or spreading risk.
These problems are common across many industries, and they can be difficult and expensive to solve.
Hard and soft constraints
A constraint is a restriction that any solution to a planning problem should satisfy. Planning problems have at least 2 types of constraints:
- A (negative) hard constraint must not be broken. For example: A worker cannot do 2 tasks at different locations at the same time.
- A (negative) soft constraint should not be broken if it can be avoided. For example: Worker A prefers not to work on Fridays.
Some problems have positive constraints too:
- A positive soft constraint (or reward) should be fulfilled if possible. For example: Worker B prefers solitary tasks.
The quality of a solution to a planning problem can be measured by the extent to which it complies with the problem's hard and soft constraints. A score calculation (or fitness function) is used to produce a numerical score for each solution and compare a set of possible solutions to determine which solution is the best.
A huge search space
A planning problem has a number of potential solutions that can be classified in these categories:
- A possible solution is any solution, whether or not it breaks any number of constraints. Planning problems tend to have an incredibly large number of possible solutions. Many of those solutions are not viable.
- A feasible solution is a solution that does not break any (negative) hard constraints. Sometimes there are no feasible solutions, a scenario that is called “over-constrained planning.” Every feasible solution is a possible solution.
- An optimal solution is a solution with the highest score. Planning problems tend to have one (or a few) optimal solutions. There is always at least one optimal solution, even if there are no feasible solutions and the optimal solution is not feasible.
- The best solution found is the solution with the highest score found by an implementation in a given amount of time. The best solution found is likely to be feasible, and if given enough time, it is an optimal solution.
Because there is no fast, easy way to find the optimal solution, any implementation is forced to evaluate at least a subset of all possible solutions.
Red Hat’s business optimizer
Red Hat® Decision Manager 7 offers Java™ developers an AI toolkit for the construction of applications that solve complex scheduling and resource optimization problems. Its business optimizer can quickly find good solutions to problems that are otherwise extremely difficult, time-consuming, and expensive to solve. No specific knowledge of optimization techniques is required to use business optimizer, making it easy for IT organizations to deliver optimized business solutions without the need for specialized expertise and tools.
Business optimizer is based on the OptaPlanner open source project, and it is included with a Red Hat Decision Manager 7 subscription at no additional cost. Business optimizer benefits from the underlying capabilities of Decision Manager’s rules engine, which conveys scalability benefits compared to traditional planning solutions that do not use rules-based technology.
Using business optimizer
The approach to solving a planning problem with business optimizer can be broadly divided into these steps:
- Model the planning entities. A set of Java classes are created to describe the problem in terms of the key entities and their relationships. For example, for a vehicle routing problem, Java classes are required that represent the types of vehicles, types of drivers, and delivery locations.
- Define constraints. Hard and soft constraints on planning entities, such as maximum loads and driver availability, are defined by scoring functions that calculate a score representing the extent to which a specific constraint is met by a given solution. Scoring functions may be written in Java, and for complex planning problems business optimizer supports the Java ConstraintStreams application programming interface (API) and Drools Rule Language (DRL)—both benefiting from the speed and scalability of the Red Hat Decision Manager 7 rules engine. Red Hat Decision Manager delivers $715,620 in operating cost savings compared to JBoss Drools by speeding time to market and reducing the software’s maintenance burden.
- Load a problem dataset. Provide business optimizer with data representing a specific instance of the problem to solve—for example, a set of vehicles and delivery locations.
- Start solving. Use the business optimizer API to start solving the problem. Business optimizer will work continuously to find solutions and will keep the best one found so far.
- Obtain a solution. Use the business optimizer API to retrieve the current best solution. Typically it will converge on a solution within a few minutes, depending on the size and complexity of the problem.
Business optimizer offers users considerable control over the solving process at runtime. The relative importance of each constraint can be modified, and one or more components of a solution can be locked to specific values and made immovable. In this way, users can exercise more control over generated solutions. They can limit automatic solving to specific aspects of a problem and incorporate their own preferred answers into the overall solution.
Continuous and real-time planning
In most scenarios, planning solutions need to be revisited constantly as the goals, resources, and constraints change over time. Unexpected events, such as equipment breakdowns, severe weather, and absent staff mean that a solution may no longer be effective and new solutions are needed quickly. Or solutions, such as a staff roster, may need to be generated on a regular basis, perhaps weekly, with each week's roster dependent on assignments completed in the prior week.
For these scenarios, the business optimizer offers both real-time and continuous planning capabilities. In real-time mode, business optimizer can continually adjust solutions as the problem data changes, allowing a rapid response to unplanned events. In continuous mode, business optimizer produces incremental solutions for an advancing window of time that takes prior results into account.
Integration with business applications and data
Business optimizer offers many flexible options for developers to integrate with their IT infrastructure. Input and output data (the planning problem and the solution) are plain old Java objects (POJOs), so integration with Java frameworks like Quarkus and Spring Boot is straightforward.
In addition, business optimizer can easily be exposed as a service on an enterprise integration platform, such as Red Hat Integration.
Many organizations are using business optimizer to solve a wide range of problems—from scheduling sporting events to optimizing the use of shift workers to scheduling package deliveries. Red Hat offers worldwide support and consulting services to help you create timely and successful optimizer implementations.
For more information on how Red Hat Decision Manager 7 with business optimizer can help optimize business operations, visit red.ht/business-automation.