Do more Service Business with less resources
The OTS (Optimized Task Scheduling) is a
lightweight, embeddable planning engine solve
optimization problems efficiently
OTS is based on the OptaPlanner open source project and is an optional module of the Visual Planning Board.
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. These problems are common across many industries, and they can be difficult and expensive to solve. OTS can help improve service quality and reduce costs.
OTS optimizes planning and scheduling problems, such as Maintenance or Service Scheduling, Vehicle Routing, Employee Shift Rostering, Task Assignment…
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.
Using OTS optimizer
The approach to solving a planning problem with OTS 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.
- 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.
- Load a problem dataset. Provide OTS with data representing a specific instance of the problem to solve for example, a set of vehicles and delivery locations.
- Start solving. Use the OTS API to start solving the problem. OTS will work continuously to find solutions and will keep the best one found so far.
- Obtain a solution. Use the OTS 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.
OTS 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 OTS optimizer offers both real-time and continuous planning capabilities. In real-time mode, OTS optimizer can continually adjust solutions as the problem data changes, allowing a rapid response to unplanned events. In continuous mode, OTS optimizer produces incremental solutions for an advancing window of time that takes prior results into account.
OTS Modul in detail
OTS combines sophisticated Artificial Intelligence optimization algorithms (such as Tabu Search, Simulated Annealing, Late Acceptance and other metaheuristics) with very efficient score calculation and other state-of-the-art constraint solving techniques.
Optimize a single technician on a single day
- Use existing assigned tasks for a single technician on a single day, provide function to optimize and find best solution for a technicians route in a given calculation time. Best solution can be accepted or adjusted in VPB
- Goals: Minimize travel time, maximize total working time
- Hard Constraints: Qualification, only use tasks assigned to start at single date specified, availability of technician
- Soft Constraints: Affinity and Priority
Optimize a single technician for multiple days
- Use existing assigned tasks for a single Technician for multiple days. Provide function to optimize and find best solution for a technicians route in a given calculation time best solution can be accepted or adjusted in VPB
- Goals: Minimize travel time, maximize total working time
- Hard Constraints: Qualification, only use tasks assigned in a given range of time specified, availability Technician
- Soft Constraints: Affinity and priority
Optimize multiple technicians and multiple days
- Use existing assigned tasks for multiple Technicians in a specified date range Provide function to optimize and find best solution for all technicians route in a given calculation time best solution can be accepted or adjusted in VPB
- Goals: Minimize travel time, maximize total working time
- Hard constraints: Qualification, only use tasks assigned in a given range of time, availability Technician
- Soft constraints: Fairness, affinity and priority
Find best technician and time for a task
- Use one unassigned or assigned task, provide function to optimize and find best planning result for technician and time slot to fulfil the task Bbest planning can be accepted or adjusted in VPB
- Goals: Minimize total travel time, maximize total working time
- Hard constraints: Qualifications must match, availability of Technician
- Soft constraints: Fairness, affinity and priority
Continuous Planning
- Continuous planning is the technique of planning one or more upcoming planning periods at the same time and repeating that process monthly, weekly, daily, hourly, or even more frequently. However, as time is infinite, planning all future time periods is impossible.
Non-Disruptive Replanning
- Replanning an existing plan can be very disruptive. If the plan affects humans (such as employees, drivers, …), very disruptive changes are often undesirable. In such cases, nonvolatile replanning helps by restricting planning freedom: the gain of changing a plan must be higher than the disruption it causes.
Real-Time Planning
- When the problem changes in real-time, the plan is adjusted in real-time.
Overconstrained Planning
- When there is no feasible solution to assign all planning entities, it is preferable to assign as many entities as possible without breaking hard constraints.
Pinning
- A pinned planning entity doesn’t change during solving. This is commonly used by users to pin down one or more specific assignments and force OTS to schedule around those fixed assignments.