Plan optimization with AI that understands the reason for the result

Author: Takashi Takahisa, Hitachi, Ltd.


In this article, we will introduce AI-based planning optimization that shows the reason for the results.

Overview of plan optimization

Plan optimization is to formulate the best plan (combination plan) with limited resources, considering the constraints and efficiency to be observed. Target operations include personnel shift planning, equipment inspection planning, delivery planning, seminar timetables, inventory management, cargo allocation, and financial portfolio optimization.

Benefits of AI-based plan optimization

There are various fields of plan optimization, but it is a difficult process to derive the optimum solution from a large number of combinations with limited resources and individual constraints, and there is a limit to manual realization. Plan optimization with AI can solve the following points. ・ The work time for planning can be greatly reduced. ・ Achieve high-quality plans that take into account many constraints ・ You can eliminate personalization and unfairness

Challenges of planning optimization by AI

When AI automates the planning work that a skilled planner takes time to carry out, there are the following issues. -It takes time to organize and implement specifications for many constraints / evaluation indexes. ・ It is difficult to confirm and explain the results with a black box. ・ It is difficult to confirm whether the plan is better than when it was implemented by a skilled planner.

Planning optimization with Red Hat Decision Manager

With Red Hat Decision Manager (, you can solve the above problems. A well-known product for the BRMS / rules engine, it also offers planning optimization capabilities. The features of planning optimization using this product are shown below.

Feature 1 Easy to implement based on rules

Since various constraints / evaluation indexes, which are the specifications of plan optimization, can be independently defined as rules one by one, it can be easily implemented. It is difficult to accurately define all of the constraints / evaluation indexes from the beginning, but the specifications are clarified by implementing from the constraint conditions / evaluation indexes whose specifications have been clarified, and adding / adjusting the rest with TRY & ERROR. And implementation can be developed in parallel in a short period of time. The mounting method and features are shown below.

-The constraint conditions / evaluation indexes for plan optimization are implemented in Excel as independent rules. The specifications of plan optimization can be defined by classifying them into absolute constraints, consideration constraints, and evaluation indexes, and can be optimized to improve the degree of compliance with the consideration constraints and the evaluation index while always observing the absolute constraints. Absolute constraint: A constraint that you definitely want to keep. Consideration Constraints: Constraints that you want to keep as much as possible. Evaluation index: An index for calculating a better combination.

** Excel rule example **

Rule name level Weighting factor
Absolute constraint#1_Do not assign the same employee to multiple shift slots during the same working hours. Hard 1
Consideration constraints#1_Assign employees to tasks that they can work for. Soft 1000
Consideration constraints#2_Trainees and instructors are assigned to the same shift slot. Soft 500
Consideration constraints#3_Members excluded from concurrent work are not assigned to the same shift slot. Soft 50
Evaluation index#1_Close the work place during the working hours before and after. Soft 10
Evaluation index#2_Work leveling_Bring the number of times in charge close to the average. Soft 1

-Priority between rules is defined by level + weighting factor, and the result is evaluated as a score value for each level. It is evaluated in order from the highest level score value (Hard in the above example), and if the high level score value is the same, it is evaluated by the next level score value, and the combination with the best score value is the optimum solution. I will.

-Rules can be defined in an Excel file that is out of the office and can be changed at any time.

-Even if the constraints / evaluation indicators are not completely identified, the clarified ones can be implemented first, and the rest can be additionally implemented later.

-Even if the priority of constraints / evaluation indicators is not clear, it can be developed while adjusting. (Adjust the level and weighting factor in the table above.)

-The operation of each rule is defined in the Excel file of the rule with the code of the dedicated language called DRL. After definition, hide the DRL part so that the business user can easily refer to / edit only the necessary part (the above table is an example after hiding). DRL can be learned immediately by anyone who understands Java.

-Simple rule addition can be handled only by editing Excel.

Consideration constraints#1 Excel rule code example

ShiftAssignment(employee != null, shift.skill != employee.skill)

-Complex processing is described on the Java side, and Java methods are called from the code on Excel.

Absolute constraint#1 Excel rule code example

ShiftAssignment(employee != null, $name :, $employee : employee, $shiftDateTime : shift.shiftDateTime)
ShiftAssignment( > $name, employee == $employee, shift.shiftDateTime.overlaps($shiftDateTime))

Feature 2 Score information output shows the reason for the result

-The degree of compliance with the constraint conditions / evaluation indexes that are the optimization results can be output as score information.

** Example of score information output ** score_example.png

・ Total score How well do you comply with the constraints / metrics as a whole (whether you have reached the target value). ・ Score per rule Which rule (constraint / evaluation index) is violated. How well do you comply with each rule? ・ Detailed score of each rule Is the detail score value correct (is it working as expected)? Which data is violating? Score =-(Average number of times in charge-Number of times in charge) ^ 2 A001:-(7-6) ^ 2 = -1 ⇒ Correct A002:-(7-9) ^ 2 = -4 ⇒ Correct

-By the score information, you can check whether it is working as expected and you can guarantee the quality.

-Since you can see the constraints that could not be observed, you can review the input data and constraints.

Feature 3 You can also output and compare the scores of past plans.

-You can output the score information of the planned data planned by hand or other products, compare the scores of the old plan and the new plan, and check if it is higher than the old plan.

-The score information of the planned data can be easily output by using the business application and Excel rules created for normal optimization calculation almost as they are.

** Normal optimization calculation ** normal_flow.png ** Output score information of planned data ** planned_data_flow.png

in conclusion

In this article, we introduced AI-based planning optimization that shows the reason for the results. If you still find AI difficult or unreliable, why not consider using it?

Recommended Posts

Plan optimization with AI that understands the reason for the result
Plan optimization "utilization image" with AI that understands the reason for the result
Generate colors.xml for dark themes with the technology that supports Force Dark
[First Java] Make something that works with Intellij for the time being