Information processing device, information processing method, and computer program
By setting a processing unit that dynamically adjusts the weight of constraints in the information processing equipment, the problem of soft constraints and weight adjustment in the work plan in the prior art is solved, and a more flexible and adaptable work plan generation and maintenance is achieved.
Patent Information
- Application Number
- JP2023145599
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-07
- Publication Date
- 2025-03-19
AI Technical Summary
The prior art is difficult to automatically adjust the soft constraints and weights in work plans, resulting in difficulty in generating and maintaining plans when facing multiple constraints and frequently changing work rules.
By setting up a processing unit in the information processing device, the processing unit dynamically adjusts the weight of the constraints when generating the candidate work plan, and learns and updates according to the constraint violation information to adapt to the changing constraints.
The ability to automatically adjust soft constraints and weights is realized, which improves the flexibility and adaptability of work plans, reduces the dependence of manual adjustment, and simplifies the maintenance and update of plans.
Smart Images

Figure 2025038785000001_ABST
Abstract
Description
[Technical field]
[0001] An embodiment of the present invention relates to an information processing device, an information processing method, and a computer program. [Background technology]
[0002] A plan to assign tasks to each worker so as to satisfy the wide variety of constraints at the work site is called a work plan or shift scheduling. With the increase in non-regular employees, there is a growing need to automate work plans (shift scheduling) for human resources in various fields such as transportation, manufacturing, medical care, nursing care, stores, and education. For example, crew planning is an example in the transportation field, such as railways and public transportation. Crew planning is the process of converting an anonymous basic plan, known as a shift plan, into a specific work plan (shift scheduling) that satisfies the individual conditions of each crew member (annual leave, qualifications, etc.).
[0003] In work schedules for human resources, there are many constraints (hereafter referred to as soft constraints) that correspond to on-site know-how and that "should be observed as much as possible." With soft constraints, there are often cases where mutually contradictory soft constraints must be satisfied simultaneously, or where no solution exists that satisfies all soft constraints.
[0004] As a representative example of a general solution method for scheduling when such soft constraints are set, the method shown in Non-Patent Document 1 is known. First, for each soft constraint, a calculation formula for a penalty according to the degree of violation of the constraint and a weight according to the importance of each constraint are defined. Then, the planning problem is expressed in the form of a weighted constraint satisfaction problem that minimizes the weighted sum of the penalties. This planning problem is solved as a combinatorial optimization problem.
[0005] With these methods, it is extremely difficult to tune the priority and weight of each constraint condition to a well-balanced value in advance. Also, even within the same company, each workplace has its own unique constraint conditions, so it is difficult to find out all the conditions and reflect them as constraint conditions. Also, since work rules are often changed irregularly after the start of operation (i.e., constraint conditions are changed), it is also difficult to maintain the parameter setting data of the planning module that generates the plan. For this reason, tuning of priorities and weights has traditionally been done manually.
[0006] As one of the techniques to solve such problems, there is a classical artificial intelligence method called case-based. In this method, past case data similar to the input data is found, and the found case data is used to select the constraints to be used in the target and to generate a plan. As another technique, there is a method of accumulating past planning cases as teachers, and learning the constraints and the weights of the constraints so that the features of the automatically proposed plan are close to the features of the teacher data. However, the above-mentioned case-based method and the method of learning the constraints and weights from past planning cases require the preparation of a large amount of case data of correct plans created by experts, which is a high barrier to practical use.
[0007] For candidate plans created by the planning program, the constraint checking program and the user provide feedback on constraint violations, which the planning program learns as generalized constraint conditions, and new constraints can be learned by repeatedly changing the constraint weights. However, in the past, new constraints were learned and the weights were strengthened in a one-way manner, and some constraint conditions that became unnecessary along the way remained indefinitely, making planning unnecessarily difficult. [Prior art documents] [Patent documents]
[0008] [Patent Document 1] JP 2018-120342 A [Patent Document 2] JP 2019-028576 A [Patent Document 3] Patent No. 6467264 [Patent Document 4] Patent No. 6502816 [Patent Document 5] Patent No. 6622592 [Non-patent literature]
[0009] [Non-Patent Document 1] Koji Nonobe: "Constructing a general-purpose solver using metaheuristics", Journal of the Operations Research Society of Japan, May 2011, pp. 257-262 [Non-Patent Document 2] Atsuko Ikegami et al.: "Nurse Scheduling Problems in Japan", Journal of the Operations Research Society of Japan, August 1996, p436-442 Summary of the Invention [Problem to be solved by the invention]
[0010] The embodiments of the present invention provide an information processing device, an information processing method, and a computer program for automatically setting the above-mentioned soft constraints and tuning the priorities and weights of each constraint. [Means for solving the problem]
[0011] In order to solve the above problem, according to one embodiment of the present invention, there is provided an information processing device including a processing unit that reduces a weight of a first constraint condition related to the work each time a candidate plan for work to be performed by a plurality of workers is created based on constraint information including the first constraint condition. [Brief description of the drawings]
[0012] [Figure 1] FIG. 1 is a block diagram illustrating a planning system according to an embodiment of the present invention. [Diagram 2] FIG. 4 is a diagram showing an example of a crew work schedule. [Diagram 3] FIG. 4 is a diagram showing a specific example of route definition data. [Figure 4] FIG. 1 is a diagram showing daily work allocations among multiple workers. [Figure 5A] FIG. 4 is a diagram showing an example of a candidate plan provided from the plan generating device to the plan management device. [Figure 5B] FIG. 13 is a diagram showing a portion detected by the plan evaluation unit as violating a constraint of type A. [Figure 6] FIG. 13 is a diagram showing an example of updating the first constraint list. [Figure 7A] FIG. 4 is a diagram showing an example of a candidate plan provided from the plan generating device to the plan management device. [Figure 7B] 7B is a diagram showing a portion of the candidate plan of FIG. 7A that has been detected by the plan evaluation unit as violating a constraint of type B. [Figure 8] FIG. 13 is a diagram showing an example of updating the first constraint list. [Figure 9A] FIG. 4 is a diagram showing an example of a candidate plan provided from the plan generating device to the plan management device. [Figure 9B] 9B is a diagram showing a portion detected by the plan evaluation unit as violating the constraints of type C in the candidate plan of FIG. 9A. [Figure 10] FIG. 13 is a diagram showing an example of updating the first constraint list. [Figure 11A] FIG. 4 is a diagram showing an example of a candidate plan provided from the plan generating device to the plan management device. [Figure 11B] 11B is a diagram showing a portion detected by the plan evaluation unit as violating the constraints of type D in the candidate plan of FIG. 11A. [Figure 12] FIG. 13 is a diagram showing an example of updating the first constraint list. [Figure 13] 11 is a flowchart of an example of processing of the planning system according to the embodiment. [Figure 14] FIG. 2 is a diagram showing a hardware configuration of the plan generating device or the plan managing device in FIG. 1. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] Hereinafter, an embodiment of an information processing device, an information processing method, and a program will be described with reference to the drawings. The following description will focus on the main components of the information processing device, but the information processing device may include components and functions that are not shown or described. The following description does not exclude components and functions that are not shown or described.
[0014] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0015] 1 is a block diagram showing a planning system according to an embodiment of the present invention, which includes a plan generating device 1, which is an example of an information processing device according to the present embodiment, and a plan managing device 2.
[0016] The outline of the planning system in FIG. 1 will be described. The plan generation device 1 generates a candidate plan for work to be performed by a worker based on constraint information including at least one constraint condition (first constraint condition) related to the work to be assigned to the worker. The generated candidate plan is provided to the plan management device 2. The plan management device 2 determines whether there is a constraint violation in the candidate plan, and if there is a constraint violation, feeds back constraint violation information including the contents of the constraint violation to the plan generation device 1. The plan generation device 1 converts the constraint violation information fed back from the plan management device 2 into constraint conditions that can be interpreted by the planning system, and updates the above-mentioned constraint information (learns constraint conditions) based on the converted constraint conditions. The plan generation device 1 generates a final work plan by repeating the generation of the candidate plan and the update of the constraint information (learns constraint conditions). As a result, even if there are changes, additions, deletions, etc. of constraints at the site, or even if there are a wide variety of constraints at the site, a general-purpose system that easily generates a plan that satisfies the constraints at the site as much as possible can be realized. The planning system in FIG. 1 will be described in detail below.
[0017] The plan generating device 1 includes an input unit 10, an operation data storage unit 11, a reservation data storage unit 12, an initial plan storage unit 13, an initial constraint condition storage unit 14, a constraint condition storage unit (first storage unit) 15, a plan storage unit 16, a plan generating unit 17, a constraint condition acquisition unit 25, a constraint condition comparison unit 21, and an update unit 26. The constraint condition acquisition unit 25 includes a violation information temporary storage unit 18, a violation information conversion unit 19, a second constraint condition temporary storage unit (second storage unit) 20, a third constraint condition temporary storage unit (third storage unit) 27, and a forgetting processing unit (processing unit) 28. The update unit 26 includes a constraint condition addition unit 22 and a weight change unit 23.
[0018] The plan generation unit 17 generates candidate plans by allocating work for one or more days (time periods) to at least one worker (staff member) based on the data stored in the work data storage unit 11, the reservation data storage unit 12, the initial plan storage unit 13, the initial constraint condition storage unit 14, and the constraint condition storage unit 15. An example of the plan to be generated is the work plan of the train crew mentioned above.
[0019] FIG. 2 is a diagram showing an example of a crew work schedule. In the work schedule, work is assigned to each crew member for each day (time period). Here, "route" indicates one shift of work on the relevant day, and corresponds to the work to be assigned to the worker. "Annual leave" indicates paid leave, and "holiday" indicates a regular day off. There may be other types of holidays, such as "public holiday" and "special holiday."
[0020] The definition data for each task stored in the task data storage unit 11 includes attribute information including ID information that can uniquely identify the task. FIG. 3 shows a specific example of route definition data. It includes items indicating values of multiple attributes such as day off, work type, working hours, work start time, work end time, rest time, type of train to be boarded, and train route. "Day off: NO" indicates that it is not a day off for the crew. The illustrated attribute set is an example, and other attribute information may be included, or some of the attribute information shown in FIG. 3 may not exist. Among the multiple routes shown in FIG. 2, routes with the same number (ID) mean that the values of each item in FIG. 3 are the same.
[0021] In the present embodiment, the plan to be generated is not particularly limited as long as it is a plan that is generated by so-called shift scheduling, in which a set of tasks to be completed each day (each time period) is given in addition to the crew's work schedule, and tasks are assigned to each worker. For example, in the fields of manufacturing planning and construction work, the plan may be a plan to assign workers to tasks to be completed in each time period. In the fields of medical care and nursing care, the plan may be a plan in which tasks to be performed in each time period (checks, treatment of patients, etc.) are determined in advance, and each task is assigned to each worker according to the qualifications and attendance schedule of each worker. In addition, the plan may be a plan in which there are multiple types of tasks in a store and workers are assigned to each task. In the field of education, the plan may be a plan in which teachers who can handle each time period (timetable) are assigned. The type of attribute information varies depending on the type of task to be generated.
[0022] The input unit 10 is an input device that inputs data to be stored in at least one of the storage units 11 to 15. As an example, the input unit 10 may be a device operated by a user of the present system, such as a mouse, a keyboard, or a touch panel. Alternatively, the input unit 10 may be a device into which the user inputs information by voice, gesture, or the like. Alternatively, the input unit 10 may be a communication device that receives data from an external device (such as a server, a terminal, or a storage) via a wired or wireless communication network (not shown) and inputs the received data into at least one of the storage units 11 to 15.
[0023] The work data storage unit 11 stores work data including the work to be completed on each day (each time period). The work data storage unit 11 is configured, for example, as a database (DB) or a list. The work data storage unit 11 stores a set of multiple works that must be completed for each day (each time period) of the period for which the plan is generated. The work data storage unit 11 also stores definition data for each work. For each time period of the period for which the plan is generated, it is necessary to assign one different worker (a crew member in the case of a railway) to each of the works that must be completed.
[0024] The reservation data storage unit 12 stores reservation data including work and rest days previously assigned to each worker. The reservation data storage unit 12 is, for example, configured with a database (DB) or a list. When generating a plan, it is necessary to observe the allocation indicated in the reservation data. It is also possible to generate a plan without using the reservation data. In this case, the reservation data storage unit 12 is not necessary.
[0025] The initial plan storage unit 13 stores an initial plan in which a different worker is assigned to each task that must be performed for each time period during the period for which the plan is to be generated. The initial plan storage unit 13 is, for example, configured with a database (DB) or a list. The initial plan may be a plan manually generated by a user, a plan in which tasks are randomly assigned to each worker, or a plan generated in some other way. It is also possible to generate a plan from scratch without using an initial plan.
[0026] The initial constraint condition storage unit 14 stores predetermined constraint conditions (initial constraint conditions) related to work to be assigned to workers (crew members, etc.). The initial constraint condition storage unit 14 is, for example, configured with a database (DB) or a list. A weight is set for each constraint condition. A simple example of a constraint condition is a constraint condition that prohibits the assignment of a route to a crew member on holiday days such as "annual leave" and "holiday". There are various types of constraint conditions. Details of the constraint conditions will be described later.
[0027] The constraint condition storage unit (first storage unit) 15 stores the constraint conditions (first constraint conditions) learned by this system. The constraint condition storage unit 15 is configured, for example, with a database (DB) or a list. In the initial state, the constraint conditions may not yet be stored in the constraint condition storage unit 15. Weights are set for the constraint conditions. A list that stores the constraint conditions stored in the constraint condition storage unit 15 is called a first constraint condition list. The first constraint conditions included in the first constraint condition list may include, for example, information on a combination of workers, tasks, and task attribute values that should be prohibited. Alternatively, the first constraint conditions may include information on the execution order of multiple tasks that should be prohibited.
[0028] The set of constraint conditions stored in the constraint condition storage unit 15 corresponds to the first constraint conditions. The constraint information may be defined so as to include the initial constraint conditions stored in the initial constraint condition storage unit 14.
[0029] The plan generation unit 17 generates a candidate plan in which work (routes, etc.) to be performed on each day (each time period) is assigned to multiple workers based on the data stored in the work data storage unit 11, the reservation data storage unit 12, and the initial plan storage unit 13, and the constraint conditions stored in the initial constraint condition storage unit 14 and the constraint condition storage unit 15. The plan generation unit 17 stores the generated candidate plan in the plan storage unit 16. The plan generation unit 17 also provides the plan management device 2 with a request to check whether or not there is a constraint violation in the generated candidate plan.
[0030] The algorithm by which the plan generating unit 17 generates a plan utilizes a known method capable of handling the soft constraint conditions described above. An example of the definition as an optimization problem will be described below. Depending on the type of each constraint condition stored in the storage units 14 and 15, a penalty according to the degree of violation of the constraint condition and a weight according to the importance of the constraint condition are defined. The problem is defined as a weighted constraint satisfaction problem that minimizes the weighted sum of the penalties, and this problem is solved as a combinatorial optimization problem. Methods for solving combinatorial optimization problems include a construction method or a sequential improvement method. The construction method is a method of sequentially allocating tasks (paths) that satisfy the constraints. The sequential method is a method (such as steepest descent method, tabu search, genetic algorithm, and simulated annealing) in which the plan is repeatedly finely modified and internally evaluated. There are various other solution methods, but they are not limited here.
[0031] A specific example of the solution method in this embodiment will be described below. Symbols are defined as follows. Ck: Constraints p k (x): Penalty according to the degree of violation of the kth constraint (0 when the constraint is satisfied) W k : Weight according to the importance of the constraint (>=0) x: variable, x=(x 1,m1,j1 ,…, x d,m,j,…, x D,M,J )(∀d∈D, ∀j∈J(d)),x d,m,j ∈{0,1} D: Set of days (time slots) M: Gathering of workers J: A set of tasks (route, etc.) to be assigned J(d): A set of tasks to be assigned on a day (time period) d∈D (⊆J). The task j(d) to be assigned is different for each d. p(x): weighted sum of penalties, P(x)=Σw k p k (x)
[0032] Variable x d,m,jtakes the value of 0 or 1. When task j ∈ J(d) on day (time period) d ∈ D is assigned to worker m ∈ M, variable x d,m,j = 1, otherwise variable x d,m,j =0.
[0033] Let P(x) be the objective function, and the problem of minimizing the objective function is defined as follows:
number
[0034] The basic constraints for solving the problem of minimizing the objective function P(x) are given below.
number
number
number
[0035] Formula (2) is a constraint that requires that each task to be assigned on each day (each time period) must be assigned to exactly one worker.
[0036] Equation (3) is a constraint that each worker is assigned either one task per day (time slot), or none (there may be days (time slots) when there is no work).
[0037] Formula (4) defines a set C1 ⊆ D×M×J that represents the tasks that must be assigned to a worker on a certain day (time period), and a set C2 ⊆ D×M×J that represents the tasks that must not be assigned to a worker on a certain day (time period), and sets C1 and C2 are constraints. Only one of sets C1 and C2 may be defined.
[0038] The objective function P(x) is minimized or quasi-minimized under the basic constraints of equations (1) to (4) to obtain the variable x d,m,jis calculated. This allows tasks for each day (each time period) to be assigned to multiple workers. When solving the objective function, an efficient search is possible by starting from an initial plan and performing processing to adjust the initial plan. However, it is also possible that no initial plan exists and a plan is created from scratch. In this case, the initial plan storage unit 13 is not necessary. If there is a time limit for the search, starting from the initial plan can increase the possibility of minimizing or quasi-minimizing within the time limit.
[0039] The initial constraints and the constraints included in the first constraint list (learned constraints) are reflected in the objective function P(x). Each time a constraint is added to the first constraint list, optimization is performed to minimize or quasi-minimize the objective function P(x) reflecting the added constraints. The penalty (also called a penalty function) p k Details of (x) will be described later.
[0040] The violation information conversion unit 19 generates a second constraint condition for the work based on the constraint violation information output from the input / output unit 33. The second constraint condition temporary storage unit (second storage unit) 20 stores a second constraint condition list including a plurality of second constraint conditions. For example, the violation information conversion unit 19 generates a third constraint condition for the work based on a new constraint violation that occurs due to an exchange of the allocation of a plurality of works. The constraint information before the exchange may include a new constraint condition that is not included in the first constraint condition. Alternatively, all of the constraint information before the exchange may be included in the first constraint condition.
[0041] The update unit 26 updates the constraint information including the first constraint condition related to the work based on the constraint violation of the candidate plan. More specifically, when the constraint information includes a first constraint condition that is the same as the second constraint condition, the update unit 26 changes the weight of the first constraint condition that is the same as the second constraint condition, and when the constraint information includes a first constraint condition that is the same as the third constraint condition, the update unit 26 changes the weight of the first constraint condition that is the same as the third constraint condition.
[0042] The plan management device 2 includes a plan evaluation unit 31, a plan update unit 32, and an input / output unit (user interface unit) 32. The input / output unit 33 includes an input device (operation device) operated by a user of the present system, and an output device that presents information to the user of the present system. An example of the input device is the same as the input unit 10 of the plan generation device 1. An example of the output device is a display device such as a liquid crystal display device, an organic EL display device, a plasma display device, or a CRT display device. Alternatively, the output device may be a VR (Virtual Reality) head mount or AR (Augumented Reality) glasses. The input / output unit 33 allows a user to check for constraint violations of the candidate plan. The input / output unit 33 outputs constraint violation information including at least one of the worker and date and time when a constraint violation of the candidate plan occurred and the type of the violated constraint.
[0043] The input / output unit 32 generates constraint violation information by having the user check constraint violations for the candidate plan. For example, the input / output unit 32 has the user check constraint violations for a candidate plan for work performed by multiple workers, and outputs constraint violation information including at least one of the worker and date and time at which a constraint violation for the candidate plan occurred and the type of the violated constraint. Alternatively, the input / output unit 32 has the user exchange the allocation of multiple work performed by multiple workers and check for new constraint violations for the candidate plan due to the exchange. Alternatively, the input / output unit 32 highlights and displays the constraint violation information including the work and the type of constraint in a specific date and time range selected by the user. The input / output unit 32 can select one of multiple candidates for the type of constraint.
[0044] The plan evaluation unit 31 checks whether or not there is a constraint violation in the candidate plan provided from the plan generation unit 17 (constraint violation check). The plan update unit 32 has a user interface function that allows the user to partially correct the given candidate plan by an operation such as exchanging tasks between workers.
[0045] A first method of checking for constraint violation is to check whether various constraints given in advance are satisfied by executing a computer program. That is, the plan evaluation unit 31 has a function of checking whether the constraints are satisfied. In this case, the plan evaluation unit 31 may execute a program that judges whether each constraint rule is satisfied based on a plurality of rules (constraint rules) including the contents of the constraints. The constraint rules may be set in a storage device by a user using the input / output unit 33, and the set constraint rules may be read out. The plan evaluation unit 31 identifies constraints that are violated (not satisfied) by the candidate plan as constraint violation information, and provides (feeds back) it to the plan generation device 1.
[0046] As a second method of checking for constraint violations, a user may check a candidate plan on a display device or the like, detect whether there is a part that does not satisfy a constraint, and input the constraint that is not satisfied by the detected part as constraint violation information using the input / output unit 33. In this case, the plan evaluation unit 31 provides (feeds back) the constraint violation information input by the user to the plan generation device 1.
[0047] 4 is a diagram showing an example of a screen display of a display device provided in the input / output unit 25. This is a diagram showing the allocation of work for each day to workers A to L, and the work is, for example, the route of the train that each worker (specifically, each crew member) takes. The numerical values in the table are identification information of the work (route).
[0048] As shown in the example screen of Fig. 4, tasks (e.g., routes) in a candidate plan that violate already learned constraints (constraints that have been added to the constraint storage unit 15) are colored to draw the user's attention. In Fig. 4, the colored parts (tasks) are displayed in a thick frame wk1 for convenience. On the other hand, in this example, the user (or the violation check program) checks only the parts that differ from the pointed-out parts as constraint violations, and the parts of the candidate plan that have been checked for constraint violations are displayed in a thick frame wk2 for convenience.
[0049] The plan generating device 1 according to this embodiment performs a constraint violation check using the above-mentioned first method and second method, or performs a constraint violation check using only the second method.
[0050] The plan evaluation unit 31, which checks for constraint violation types in the constraint violation check, includes some or all of the following four types, and provides (feeds back) to the plan generation device 1 information on the type of constraint that has been violated and the location of the violation (the day (time frame) on which the violation occurred) as constraint violation information.
[0051] (A) A constraint that prohibits a particular ordering of tasks assigned to the same worker. (B) Constraints that prohibit the combination of a worker's qualifications and experience with certain attributes of a task. (C) A constraint that specifies at least one of an upper limit and a lower limit of the sum of specific attribute values of operations assigned to the same worker during a period. (D) A constraint that prohibits a specific ordering of the attributes of tasks assigned to the same worker.
[0052] Type A constraints are constraints on the arrangement of multiple tasks (including holidays, etc.) assigned to the same worker. The plan evaluation unit 31 or the user checks for violations in the arrangement of tasks in the candidate plan using judgment logic that takes into account various connection conditions between multiple tasks, such as the need to take a certain amount of time to rest at home, restrictions on the combination of work start times and work end times before and after holidays, and the prohibition of consecutive long work hours. The connection conditions between multiple tasks described above are not themselves fed back to the plan generation device 1.
[0053] The constraints of type B are explained using an example of a crew plan. For example, the types of vehicles that a crew member can drive may be limited by their qualifications. In addition, there are cases where the crew member must have the qualifications necessary for tasks such as ticket checking during the ride, and there are also cases where the crew member must have driving experience on the route included in the journey.
[0054] Specific examples of type C constraints include, for example, a constraint that the total work hours within a certain period do not exceed a specified upper limit, a constraint that the total work hours within a certain period are equal to or greater than a specified lower limit, and a constraint that the legally specified number of days off are taken within a certain period. The upper limit and lower limit correspond to boundary values that define the constraint. In the case of type C constraints, the plan evaluation unit 31 also provides (feeds back) to the plan generation device 1 information identifying whether the constraint is restricting an upper limit or a lower limit as information on the type of constraint that has been violated.
[0055] Specific examples of type D constraints include a constraint that the work type "late night" must not occur a certain number of times consecutively, and a constraint that "late night" and "early morning" must not occur consecutively.
[0056] The constraint condition acquisition unit 25 acquires constraint violation information that is determined not to be satisfied by the candidate plan from the plan evaluation unit 31 of the plan management device 2. The violation information temporary storage unit 18 stores the acquired constraint violation information. The violation information conversion unit 19 reads out the constraint violation information stored in the violation information temporary storage unit 18, converts it into a format that can be interpreted by the present plan system, and stores the converted information in the second constraint condition temporary storage unit 20 as a second constraint condition. The constraint violation information stored in the violation information conversion unit 19 may be erased or overwritten the next time it is written to the violation information temporary storage unit 18. A list including a set of second constraint conditions stored in the second constraint condition temporary storage unit 20 is called a second constraint condition list. The violation information conversion unit 19 generates a third constraint condition related to the work based on a new constraint violation generated by the exchange of the allocation of multiple works.
[0057] The constraint condition comparison unit 21 reads out the second constraint condition list from the second constraint condition temporary storage unit 20. After reading out the second constraint condition list, the constraint condition comparison unit 21 may erase the second constraint condition list stored in the second constraint condition temporary storage unit 20. Alternatively, the second constraint condition list may be overwritten the next time data is written to the second constraint condition temporary storage unit 20.
[0058] The constraint condition comparison unit 21 compares the constraint conditions in the second constraint condition list with each constraint condition included in the first constraint condition list in the constraint condition storage unit 15. If the same constraint condition as the constraint condition in the second constraint condition list is not included in the first constraint condition list, the constraint condition addition unit 22 adds the constraint condition to the first constraint condition list as a new constraint condition. The constraint condition addition unit 22 sets an initial weight for the constraint condition, associates the set weight with the constraint condition, and adds the constraint condition to the first constraint condition list. The weight may be a predetermined value, or the plan management device 2 may feed back the weight together with constraint violation information and use the fed back weight. The weight may be determined by other methods. The weight is a type of learning parameter, and may be tuned in advance through actual cases.
[0059] On the other hand, if the first constraint condition list contains the same constraint condition as the second constraint condition in the second constraint condition list, the weight change unit 23 changes the weight of the constraint condition contained in the first constraint condition list. For example, the weight is changed by adding a certain value or multiplying it by a certain value. The weight value may be changed using the number of times the weight is updated. For example, the value to be added may be made smaller or larger as the number of times the weight is changed increases. The weight may be changed by other methods. If the type of constraint is C, and the constraint is about the sum of attribute values in a period of the same length as the constraint condition in the second constraint condition list, and only the boundary value (upper or lower limit) is different, the boundary value of the constraint condition contained in the first constraint condition list is updated by the boundary value contained in the constraint condition in the second constraint condition list, and the weight of the constraint condition is also updated. There may be a case where only the boundary value is updated.
[0060] Below, some specific examples of updating the constraints in the first constraint list based on the constraint violation information fed back from the plan management device 2 will be described.
[0061] [First example] Fig. 5A is a diagram showing an example of a candidate plan provided from the plan generating device 1 to the plan management device 2. Fig. 5B is a diagram showing a portion detected by the plan evaluation unit 31 as violating the above-mentioned constraint of type A in the candidate plan of Fig. 5A. The detected portion is surrounded by a dashed frame.
[0062] The plan evaluation unit 31 judges whether there is a point (case) that violates the constraint in the candidate plan in Fig. 5A. In this example, two cases, "Route 5 → Route 3" and "Route 4 → Public Holiday → Route 6" shown in Fig. 5B, are detected as violating the constraint.
[0063] The constraint condition acquisition unit 25 of the plan generation device 1 acquires constraint violation information regarding violations of the two constraints from the plan management device 2. The constraint condition acquisition unit 25 converts the constraint violation information into a format that can be interpreted by the plan generation device 1, and provides the constraint condition comparison unit 21 with a second constraint condition list including the two constraint conditions.
[0064] The constraint comparison unit 21 compares each constraint condition included in the second constraint condition list with the constraint condition included in the first constraint condition list to determine whether they are the same. If a constraint condition included in the second constraint condition list is different from a constraint condition included in the first constraint condition list, the constraint condition is added to the first constraint condition list. An initial weight is set for the constraint condition to be added. If a constraint condition included in the second constraint condition list is the same as a constraint condition included in the first constraint condition list, the weight of the constraint condition in the first constraint condition list is changed.
[0065] Fig. 6 is a diagram showing an example of updating the first constraint list. As shown on the right side of Fig. 6, the first constraint list before the update stores a constraint that prohibits "route 5 → route 3" and a constraint that prohibits "route 9 → route 5". The weights for both are 0.5. Other constraints are also stored, but are not shown in the figure.
[0066] As shown in the center of Figure 6, the constraint violation information fed back from the plan management device 2 shows a constraint that prohibits "Journey 5 → Journey 3" and a constraint that prohibits "Journey 4 → Public holiday → Journey 6".
[0067] The fed back "route 5 → route 3" is the same as "route 5 → route 3" included in the first constraint list. Therefore, as shown on the left side of Figure 6, 0.1 is added to the weight of "route 5 → route 3" in the first constraint list, making it 0.6.
[0068] The fed back "Route 4 → Public Holiday → Route 6" is not included in the first constraint list. Therefore, as shown on the left side of Figure 6, "Route 4 → Public Holiday → Route 6" is added to the first constraint list as a new constraint, associated with an initial weight of 0.5.
[0069] [Second example] Fig. 7A is a diagram showing an example of a candidate plan provided from the plan generation device 1 to the plan management device 2. Fig. 7B is a diagram showing a portion detected by the plan evaluation unit 31 as violating the above-mentioned constraints of type B in the candidate plan of Fig. 7A. The detected portion is surrounded by a dashed frame. The vehicle type in Figs. 7A and 7B is assumed to be one of the attributes of the work (route).
[0070] In this example, the days when crew member 2 is assigned route 3, which involves working on a train, and the days when crew member 2 is assigned route 5, which involves working on a diesel locomotive (car D), are detected as constraint violations.
[0071] Fig. 8 is a diagram showing an example of an update of the first constraint list. As shown in the upper right of Fig. 8, the first constraint list before the update stores a constraint that prohibits "Crew 1 & train (Crew 2 working on a train)" and a constraint that prohibits "Crew 2 & car D (Crew 2 working on a diesel locomotive (car D))". The weights for both are 0.5. Other constraints are also stored, but are not shown in the figure.
[0072] As shown in the center of FIG. 8, the constraint violation information fed back from the plan management device 2 shows a constraint prohibiting "Crew 2 & train" and a constraint prohibiting "Crew 2 & D car".
[0073] The fed back "Crew 2 & D car" is the same as "Crew 2 & D car" included in the first constraint list. Therefore, as shown on the left side of Figure 8, the weight of "Crew 2 & D car" in the first constraint list is increased by 0.1 to 0.6.
[0074] The fed back "Crew 1 & Train" is not included in the first constraint list. Therefore, as shown on the left side of Figure 8, "Crew 1 & Train" is added to the first constraint list as a new constraint. The initial weight of "Crew 1 & Train" is set to 0.5.
[0075] [Third example] Fig. 9A is a diagram showing an example of a candidate plan provided from the plan generation device 1 to the plan management device 2. Fig. 9B is a diagram showing a portion detected by the plan evaluation unit 31 as violating the above-mentioned type C constraint in the candidate plan of Fig. 9A. The detected portion is surrounded by a dashed frame. In Fig. 9, work (working hours) is assumed to be one of the attributes of a task (route).
[0076] The plan evaluation unit 31 detects a portion indicated by a dotted frame in FIG. 7B as not satisfying the constraints.
[0077] 10 is a diagram showing an example of updating the first constraint list. As shown in the upper right corner of FIG. 10, the first constraint list before the update includes “Σ 8 d=1 The constraint that requires working hours d<60 and Σ 8 d=1 The constraint that requires "public holiday > 1" is stored. 8 d=1 "Working hours d<60" requires that the total working hours over eight days be less than 60 hours. In other words, it prohibits the total working hours over eight days from exceeding 60 hours. "Σ 8 d=1"Public Holiday > 1" requires that the number of public holidays be more than one in an eight-day period. In other words, it prohibits the number of public holidays from being less than one in an eight-day period. Other constraints are also stored, but are not shown in the figure.
[0078] As shown in the lower right of FIG. 10, the constraint violation information fed back from the plan management device 2 is “Σ 8 d=1 "Working hours d<56" is shown. The boundary value (56 in this example) is the sum of the target attribute values of the parts in the candidate plan that are determined to violate the constraint of type C, and corresponds to the total working hours of crew member 2 over 8 days in Figure 9(B), which is 56.
[0079] The feedback "Σ 8 d=1 Working hours d<56 is included in the first constraint list. 8 d=1 Like "working hours d<60," this is a constraint that limits the upper limit of the total working hours over eight days, and only the boundary value (60 in this example) is different. Therefore, as shown on the left in Figure 10, "Σ 8 d=1 The boundary value of 60 for "Working hours d<60" is changed to 56. Also, 0.1 is added to the weight to make it 0.6. In this example, the boundary value of the constraint condition is changed, but it is also possible to add a constraint condition with a different boundary value as a new constraint condition. In this case, an initial weight (for example, 0.5) is set for the new constraint condition. Also, a method is possible in which only the boundary value is changed and the weight is not changed.
[0080] [Example 4] Fig. 11A is a diagram showing an example of a candidate plan provided from the plan generation device 1 to the plan management device 2. Fig. 11B is a diagram showing a portion detected by the plan evaluation unit 31 as violating the above-mentioned constraint of type D in the candidate plan of Fig. 11A. The detected portion is surrounded by a dashed frame. In Fig. 11, the work type, such as day shift, late night, or early morning, is considered to be one of the attributes of the work (route).
[0081] Fig. 12 is a diagram showing an example of updating the first constraint list. As shown in the upper right of Fig. 12, the first constraint list before the update stores a constraint that prohibits "late night → late night". The weight is 0.5. Other constraints are also stored, but are not shown in the figure.
[0082] As shown in the lower right of FIG. 12, the constraint conditions fed back from the plan management device 2 include a constraint condition that prohibits "late night to late night" and a constraint condition that prohibits "late night to early morning".
[0083] The fed back "late night → late night" is the same as "late night → late night" included in the first constraint condition list. Therefore, as shown on the left in Fig. 12, the weight of "late night → late night" in the first constraint condition list is increased by 0.1 to 0.6.
[0084] The fed back "late night → early morning" is not included in the first constraint list. Therefore, "late night → early morning" is added to the first constraint list as a new constraint, as shown on the left in Figure 12. The initial weight of "late night → early morning" is set to 0.5.
[0085] Here, a specific example will be given of formulating the penalty function of the above-mentioned equation (1) based on the constraints included in the first constraint list.
[0086] [Type A constraint]
number
[0087] The kth constraint (k∈K 1 ) to any worker, (T k +1) operations in a specific order (j k (0), j k (1), …, j k (T k )) to prohibit allocation. 1 is the number of constraints of the same kind, k is the ID of the constraint, and T kdenotes the number of permutations that constraint k prohibits.
[0088] [Type B constraint]
number
[0089] Let j be a set of jobs with a specific attribute M k Prohibits the assignment to workers included in the flag (α 1j , α 2j , …, α Kj ) indicates whether the task j corresponds to the attribute targeted by the constraint k. kj If =1, then α kj =0 indicates non-applicable. 2 is the number of constraints of the same type, and k is the ID of the constraint.
[0090] [Type C constraint (limiting the upper limit)]
number
[0091] Use either formula (7) or formula (7'). k T assigned from k +1 operation, their attribute α kj The sum of b is k This is a constraint that prohibits the value of α from exceeding α. kj is the value of the attribute targeted by constraint k in task j. 3 is the number of constraints of the same type, and k is the ID of the constraint.
[0092] [Example 4] [Type C constraint (when restricting the lower limit)]
number
[0093] Use either equation (8) or equation (8'). k T assigned fromk +1 job, their attribute α kj The sum of b is k It is prohibited to go below α kj is the value of the attribute targeted by constraint k in task j. 4 is the number of homogeneous constraints, and k is the ID of the constraint.
[0094] [Type D Constraint]
number
[0095] For every worker, k +1 task is flagged as α kj(t) The attribute flags (α 1j (0), α 1j (1),…,α 1j (T 1 ),…, α Kj (0), α Kj (1),…,α Kj (T K )) indicates whether the task j corresponds to the t-th attribute in the list of attributes prohibited by the constraint k. kj(t) If =1, then α Kj(t) If =0, it is not applicable. 5 is the number of constraints of the same kind, k is the ID of the constraint, and T k denotes the number of permutations that constraint k prohibits.
[0096] The forgetting processor 28 reduces the weight of the first constraint every time a candidate plan is created. More specifically, the forgetting processor 28 receives constraint violation information, which is the result of creating the candidate plan and checking for constraint violations, and repeats the process of adding new constraints, updating constraints, and forgetting constraints, thereby weakening the influence of invalid soft constraints and forgetting them, thereby always maintaining only appropriate soft constraints among the learned conditions. The forgetting processor 28 reduces the weight of some or all of the first constraints in the first constraint list every time the candidate plan is created, and deletes from the first constraint list the first constraints whose weights are equal to or less than a threshold value. When the first constraint includes information on a combination of workers, tasks, and task attribute values that should be prohibited, the forgetting processor 28 reduces the weight of the workers included in the combination. Alternatively, when the first constraint includes information on multiple execution orders that should be prohibited, the forgetting processor 28 reduces the weight of the first constraint related to the execution order of multiple tasks.
[0097] In the case of a constraint that prohibits a combination of a specific worker and task, which corresponds to the above-mentioned type B, or a constraint that prohibits a combination of a specific worker and task attribute value, which corresponds to the above-mentioned type D, it is possible to reduce only the weight of the constraint related to the worker who is the target of planning in the above-mentioned candidate plan.
[0098] Furthermore, in the case of a constraint that prohibits a specific arrangement of a plurality of tasks, which corresponds to the above-mentioned type A, it is possible to reduce only the weight of the constraint that is configured from the arrangement of the tasks that are the subject of planning in the above-mentioned candidate plan.
[0099] In the above-mentioned constraint violation information, when a constraint condition that is violated in the first constraint condition list in the above-mentioned candidate plan is not included in the second constraint condition list, the forgetting processing unit 28 may largely reduce the weight of the constraint condition in question compared to other constraints. This is the case of the example shown in Fig. 4, which indicates that the user or the violation check program did not check the corresponding part as a constraint violation part despite the violation of the already learned constraint condition (the constraint condition added to the constraint condition storage unit 15), and indicates that the constraint condition in question has already become invalid or its importance has decreased.
[0100] 4, task 17 performed by worker B and the consecutive tasks of tasks 20 and 16 performed by worker E are recognized as constraint violations, but if the user does not point out these tasks as constraint violations, and instead points out the consecutive tasks of tasks 12 and 11 performed by worker D as a constraint violation, the weight of the constraint condition is increased based on the constraint violation of the consecutive tasks of tasks 12 and 11 performed by worker D pointed out by the user. On the other hand, the weight of the constraint condition is gradually decreased for task 17 performed by worker B, and the consecutive tasks of tasks 20 and 16 performed by worker E, which were not pointed out by the user, and the constraint condition is deleted when the weight becomes zero.
[0101] Fig. 13 is a flowchart of an example of processing of the planning system according to this embodiment. The plan generation unit 17 reads out a list of tasks to be assigned to each day (task data) from the task data storage unit 11, and reads out reservation information for holidays such as annual leave and tasks for which assignment has already been decided from the reservation data storage unit 12 (step S1). The plan generation unit 17 also reads out an initial plan from the initial plan storage unit 13, and reads out pre-set constraint conditions (initial constraint conditions) from the initial constraint condition storage unit 14. The data read out in step S1 is collectively called initial data.
[0102] Next, the plan generating unit 17 reads out a first constraint list including the learned constraints (first constraints) from the constraint storage unit 15 (step S2).
[0103] Next, the plan generating unit 17 generates a candidate plan based on the initial constraint conditions, the constraint conditions in the first constraint condition list, and the data read in step S1 (step S3). The plan generating unit 17 sends a check request to the plan management device 2 to check whether or not there is a constraint violation in the candidate plan data.
[0104] Based on the check request, the plan management device 2 performs a constraint violation check on the candidate plan (step S4). As an example, the user checks the candidate plan displayed on the input / output unit 33 using the method described above, checks the violation points that do not satisfy the constraints, and inputs the type of constraint that the violation points violate. In this case, the plan evaluation unit 31 feeds back constraint violation information including the new constraint input by the user to the plan generation device 1. Furthermore, if the user partially corrects the work by the above-mentioned replacement operation, constraint violation information that appears after the correction operation is also fed back to the plan generation device 1.
[0105] The violation information conversion unit 19 converts the constraint violation information fed back from the plan management device 2 into second constraint conditions in a format that can be interpreted by the plan generation device 1, and generates a second constraint condition list including the second constraint conditions (step S5).
[0106] Next, the constraint comparison unit 21 sequentially compares the second constraints in the second constraint list with the first constraints in the first constraint list (step S8). It is determined whether the second constraint in the second constraint list is the same as the first constraint in the first constraint list, that is, whether it is a constraint that has already been detected in a constraint violation check or a new constraint (step S9).
[0107] If the second constraint condition in the second constraint condition list is not the same as the first constraint condition included in the first constraint condition list, that is, if it is a new constraint condition, an initial weight is set for the new constraint condition (step S10). In this case, the new contract condition with the initial weight set is added to the first constraint condition list.
[0108] If the constraint condition in the second constraint condition list is the same as the constraint condition included in the first constraint condition list, the weight of the constraint condition included in the first constraint condition list is increased. This allows the constraint condition to be more strongly reflected when the plan generation unit 17 next generates a candidate plan (step S11). Also, if the constraint condition in the second constraint condition list is type C, is a constraint on the sum of the same attribute value for the same period as the constraint condition included in the first constraint condition list, and only the boundary value differs between the two, the boundary value is updated and the weight is also updated. Specifically, if a violation occurs that exceeds the upper limit value (boundary value) of the sum, the upper limit value of the constraint condition is made smaller than the current state (the constraint is made stricter). Conversely, if a violation occurs that falls below the lower limit value (boundary value) of the sum, the lower limit value of the constraint condition is corrected to be larger than the current state (the constraint is made stricter).
[0109] It is determined whether or not the processing of steps S8 to S11 has been performed for all the second constraint conditions in the second constraint condition list (step S12). If there are any second constraint conditions that have not yet been processed, the processing of steps S8 to S11 is repeated. If the processing of all the second constraint conditions has been performed, it is determined whether or not the termination condition has been satisfied (step S13). If the termination condition has not been satisfied, the process returns to step S3. In step S3 after returning, a new candidate plan is generated using the updated first constraint condition list, and a constraint violation check is performed (steps S3 to S12). Steps S3 to S12 are repeated until the termination condition is satisfied.
[0110] Next, the weights of constraints (first constraint conditions) related to the workers and tasks to be planned are reduced by a first reduction amount (step S13). In the case of a constraint that prohibits a combination of a specific worker and task, which corresponds to the above-mentioned type B, or a constraint that prohibits a combination of a specific worker and task attribute value, which corresponds to the above-mentioned type D, this corresponds to reducing only the weight of the constraint related to the worker to be planned in the above-mentioned candidate plan, and in the case of a constraint that prohibits a specific arrangement of multiple tasks, which corresponds to the above-mentioned type A, this corresponds to reducing the weight of the constraint consisting of the arrangement of tasks to be planned in the above-mentioned candidate plan. There may also be cases where all constraint conditions are reduced uniformly.
[0111] Next, it is confirmed whether there are any first constraints in the first constraint list that are violated in the candidate plan but are not included in the second constraint list (step S14), and if there are any, the weight of the corresponding first constraint is reduced by a second reduction amount (step S15).
[0112] In step S13 or S15, when a weight is reduced so that the weight becomes equal to or smaller than a predetermined threshold, the first constraint corresponding to that weight is deleted from the first constraint list.
[0113] It is determined whether or not the termination condition is satisfied (step S16), and if satisfied, the last generated candidate plan is output as the final plan to the plan management device 2 (step S17). Alternatively, the candidate plan having the smallest objective function value among the candidate plans stored in the plan storage unit 16, or the candidate plan having an objective function value smaller than a threshold value, may be output as the final plan.
[0114] In step S16, the plan generation device 1 determines whether or not the constraint violation of the candidate plan satisfies a predetermined condition, and repeatedly executes the creation of the candidate plan, the generation of constraint violation information, the generation of the second constraint condition, the addition to the first constraint condition list, and the processing of the forgetting processing unit 28 until step S16 is determined to be YES.
[0115] The input / output unit 33 of the plan management device 2 displays the final plan on a display device. The final plan may be stored in a storage device within the plan management device 2 or an external storage device.
[0116] Here, an example of a method for determining the termination condition is shown. When the plan evaluation unit 31 checks for constraint violations by program operation, it may determine that the termination condition is satisfied after steps S3 to S12 are repeated a predetermined number of times. Alternatively, steps S3 to S12 may be repeated until a predetermined time limit is reached, and when the time limit is reached, it may determine that the termination condition is satisfied. Alternatively, steps S3 to S12 may be repeated in a loop until there is no constraint violation, or until the value of the objective function (penalty sum) is equal to or less than a threshold. The success or failure of the termination condition may be determined by other methods. When the user checks for constraint violations using the input / output unit 33 (GUI), the user himself may determine the timing to end the repetition of steps S3 to S12. The user may input instruction data to end the repetition, and the repetition may be ended based on the instruction data.
[0117] As described above, according to this embodiment, the weight of the first constraint condition is reduced every time a candidate plan is created by the plan generation device 1. Then, when the weight becomes equal to or less than a predetermined threshold, the first constraint condition is deleted. This solves the problem that some constraint conditions that have become unnecessary midway remain forever, making planning unnecessarily difficult. Also, according to this embodiment, the plan management device or the user detects constraints that the generated candidate plan violates as constraint violation information and feeds it back. The plan generation device accumulates constraint conditions based on the constraint violation information in the first constraint condition list. Specifically, if a constraint condition identical to a constraint condition does not exist in the first constraint condition list, a weight is set for the constraint condition and added to the first constraint condition list. If a constraint condition identical to a constraint condition exists in the first constraint condition list, the weight of the same constraint condition existing in the first constraint condition list is updated. In this way, by repeating the generation of candidate plans, the accumulation of constraint conditions, and the change of the weight of the constraint conditions, a general-purpose planning system that can easily respond to changes and additions of constraints in the field can be realized.
[0118] For example, when the system is initially introduced or when work regulations are changed, new or changed constraint conditions can be reflected in a format that can be handled by the plan generation device by rewriting the evaluation algorithm or rules of the plan management device 2, improving maintainability. Also, feedback from users at each site makes it possible to gradually adapt to the small differences in constraints at each site.
[0119] (Hardware configuration) Fig. 14 is a diagram showing a hardware configuration of the plan generation device 1 or the plan management device 2 in Fig. 1. The plan generation device 1 or the plan management device 2 in Fig. 1 is configured by a computer device 600. The computer device 600 includes a CPU 601, an input interface 602, a display device 603, a communication device 604, a main storage device 605, and an external storage device 606, which are connected to each other by a bus 607.
[0120] A CPU (Central Processing Unit) 601 executes an information processing program, which is a computer program, on a main memory device 605. The information processing program is a program that realizes each of the above-mentioned functional configurations of the present device. The information processing program may be realized not as a single program, but as a combination of multiple programs and scripts. Each functional configuration is realized by the CPU 601 executing the information processing program.
[0121] The input interface 602 is a circuit for inputting operation signals from input devices such as a keyboard, a mouse, a touch panel, etc. The input interface 602 corresponds to an input unit or an input / output unit.
[0122] The display device 603 displays data output from this device. The display device 603 is, for example, but not limited to, an LCD (liquid crystal display), an organic electroluminescence display, a CRT (cathode ray tube), or a PDP (plasma display). Data output from the computer device 600 can be displayed on this display device 603. The display device 603 corresponds to an input / output unit.
[0123] The communication device 604 is a circuit for the device to communicate with an external device wirelessly or via wire. Data can be input from the external device via the communication device 604. The data input from the external device can be stored in the main memory device 605 or the external memory device 606.
[0124] The main memory device 605 stores an information processing program, data required for executing the information processing program, data generated by executing the information processing program, etc. The information processing program is deployed and executed on the main memory device 605. The main memory device 605 is, for example, a RAM, a DRAM, or an SRAM, but is not limited to these. Each storage unit or database in FIG. 1 may be constructed on the main memory device 605.
[0125] The external storage device 606 stores an information processing program, data required for executing the information processing program, data generated by executing the information processing program, etc. These information processing programs and data are read into the main storage device 605 when the information processing program is executed. The external storage device 606 is, for example, but is not limited to, a hard disk, an optical disk, a flash memory, and a magnetic tape. Each storage unit or database in FIG. 1 may be constructed on the external storage device 606.
[0126] The information processing program may be pre-installed in the computer device 600, or may be stored in a storage medium such as a CD-ROM. The information processing program may also be uploaded onto the Internet.
[0127] Furthermore, this apparatus may be configured as a single computer apparatus 600, or may be configured as a system made up of a plurality of computer apparatuses 600 connected to each other.
[0128] [Note] [Item 1] a processing unit that reduces a weight of a first constraint condition related to an operation every time a candidate plan for an operation to be performed by a plurality of workers is created based on constraint information including the first constraint condition, Information processing device. [Item 2] A plan generating unit that generates the candidate plan, Item 1. An information processing device according to item 1. [Item 3] The processing unit deletes the first constraint condition when the weight becomes equal to or less than a predetermined threshold. 3. The information processing device according to item 1 or 2. [Item 4] the first constraint condition includes information on a combination of a worker, an operation, and an operation attribute value that should be prohibited; The processing unit reduces the weight for the worker included in the combination. 4. The information processing device according to any one of items 1 to 3. [Item 5] the first constraint condition includes information on an execution order of a plurality of tasks that should be prohibited; The processing unit reduces the weight of the first constraint condition regarding the execution order of the plurality of tasks. 4. The information processing device according to any one of items 1 to 3. [Item 6] a user interface unit that allows a user to check constraint violations for the candidate plan and generates constraint violation information; a violation information conversion unit that generates a second constraint condition related to the work based on the constraint violation information; a first storage unit that stores a first constraint list including a plurality of the first constraints; a new contract condition adding unit that adds the second constraint condition not included in the first constraint condition list to the first constraint condition list as a new first constraint condition, 6. An information processing device according to any one of items 1 to 5. [Item 7] A determination unit that determines whether or not a constraint violation of the candidate plan satisfies a predetermined condition, The creation of the candidate plan, the generation of the constraint violation information, the generation of the second constraint condition, the addition to the first constraint condition list, and the processing of the processing unit are repeatedly executed until the constraint violation of the candidate plan satisfies the predetermined condition. Item 7. An information processing device according to item 6. [Item 8] a second storage unit configured to store a second constraint list including a plurality of the second constraints; the processing unit deletes from the first constraint condition list any first constraint condition that is not included in the second constraint condition list, among the plurality of first constraint conditions included in the first constraint condition list; 8. The information processing device according to item 6 or 7. [Item 9] the user interface unit allows a user to check for constraint violations of a candidate plan for work to be performed by a plurality of workers, and outputs the constraint violation information including at least one of the worker and date and time when the constraint violation of the candidate plan occurred and the type of the violated constraint. 9. The information processing device according to any one of items 6 to 8. [Item 10] the user interface unit allows a user to exchange allocations of the plurality of tasks to be performed by the plurality of workers and check for new constraint violations of the candidate plan due to the exchange; the violation information conversion unit generates a third constraint condition for the operations based on the new constraint violation generated by the exchange of assignments of the plurality of operations. Item 10. The information processing device according to item 9. [Item 11] Item 11. The information processing device according to item 10, wherein the constraint information before the exchange includes a new constraint condition that is not included in the first constraint condition. [Item 12] Item 11. The information processing device according to item 10, wherein all of the constraint information before the exchange is performed is included in the first constraint condition. [Item 13] the constraint information includes a weight of the first constraint condition; 13. The information processing device according to any one of items 10 to 12, further comprising an update unit that changes a weight of the first constraint condition that is the same as the second constraint condition when the constraint information includes a first constraint condition that is the same as the second constraint condition, and changes a weight of the first constraint condition that is the same as the third constraint condition when the constraint information includes a first constraint condition that is the same as the third constraint condition. [Item 14] 14. The information processing device according to any one of items 6 to 13, wherein the user interface unit highlights and displays the constraint violation information including the task and the type of constraint in a specific date and time range selected by a user. [Item 15] Item 15. The information processing device according to item 14, wherein the types of constraints include at least one of a sequence of work conditions and a sequence of work. [Item 16] Item 15. The information processing device according to item 14, wherein the types of constraints include at least one of the worker's driving qualifications, work qualifications, and work experience. [Item 17] Item 15. The information processing device according to item 14, wherein the types of constraints include at least one of a total of working hours, a number of public holidays, and a number of night shifts. [Item 18] 18. The information processing device according to any one of items 14 to 17, wherein the user interface unit is capable of selecting one of a plurality of candidates for the type of constraint. [Item 19] each time a candidate plan for operations to be performed by a plurality of workers is generated based on constraint information including a first constraint condition related to the operations, a weight of the first constraint condition is decreased; Information processing methods. [Item 20] On the computer, a step of decreasing a weight of the first constraint condition each time a candidate plan for operations to be performed by a plurality of workers is generated based on constraint information including a first constraint condition related to the operations; A program for executing the above.
[0129] The present invention is not limited to the above-described embodiments as they are, and the components can be modified and embodied in the implementation stage without departing from the gist of the invention. Various inventions can be formed by appropriately combining multiple components disclosed in the above-described embodiments. For example, a configuration in which some components are deleted from all the components shown in each embodiment can also be considered. Furthermore, the components described in different embodiments can be appropriately combined. [Explanation of symbols]
[0130] 1 plan generation device, 2 plan management device, 10 input unit, 11 work data storage unit, 12 reservation data storage unit, 13 initial plan storage unit, 14 initial constraint condition storage unit, 15 constraint condition storage unit, 16 plan storage unit, 17 plan generation unit, 18 violation information temporary storage unit, 19 violation information conversion unit, 20 second constraint condition temporary storage unit, 21 constraint condition comparison unit, 22 constraint condition addition unit, 23 change unit, 25 constraint condition acquisition unit, 26 update unit, 27 third constraint condition temporary storage unit, 28 forgetting processing unit, 31 plan evaluation unit, 32 plan update unit, 33 input / output unit, 600 computer device, 602 input interface, 603 display device, 604 communication device, 605 main memory device, 606 external memory device, 607 bus
Claims
1. a processing unit that reduces a weight of a first constraint condition related to an operation every time a candidate plan for an operation to be performed by a plurality of workers is created based on constraint information including the first constraint condition, Information processing device.
2. A plan generating unit that generates the candidate plan, The information processing device according to claim 1 .
3. The processing unit deletes the first constraint condition when the weight becomes equal to or less than a predetermined threshold. The information processing device according to claim 1 .
4. the first constraint condition includes information on a combination of a worker, an operation, and an operation attribute value that should be prohibited; The processing unit reduces the weight for the worker included in the combination. The information processing device according to claim 1 .
5. the first constraint condition includes information on an execution order of a plurality of tasks that should be prohibited; The processing unit reduces the weight of the first constraint condition regarding the execution order of the plurality of tasks. The information processing device according to claim 1 .
6. a user interface unit that allows a user to check constraint violations for the candidate plan and generates constraint violation information; a violation information conversion unit that generates a second constraint condition related to the work based on the constraint violation information; a first storage unit that stores a first constraint list including a plurality of the first constraints; a new contract condition adding unit that adds the second constraint condition not included in the first constraint condition list to the first constraint condition list as a new first constraint condition, The information processing device according to claim 1 .
7. A determination unit that determines whether or not a constraint violation of the candidate plan satisfies a predetermined condition, the creation of the candidate plan, the generation of the constraint violation information, the generation of the second constraint condition, the addition to the first constraint condition list, and the processing of the processing unit are repeatedly executed until a constraint violation of the candidate plan satisfies the predetermined condition. The information processing device according to claim 6.
8. a second storage unit configured to store a second constraint list including a plurality of the second constraints; the processing unit deletes, from the first constraint condition list, a first constraint condition that is not included in the second constraint condition list, among the plurality of first constraint conditions included in the first constraint condition list. The information processing device according to claim 6.
9. the user interface unit allows a user to check for constraint violations of a candidate plan for work to be performed by a plurality of workers, and outputs the constraint violation information including at least one of the worker and date and time when the constraint violation of the candidate plan occurred and the type of the violated constraint. The information processing device according to claim 6.
10. the user interface unit allows a user to exchange allocations of the plurality of tasks to be performed by the plurality of workers and check for new constraint violations of the candidate plan due to the exchange; the violation information conversion unit generates a third constraint condition for the task based on the new constraint violation generated by the exchange of assignments of the plurality of tasks. The information processing device according to claim 9.
11. The information processing apparatus according to claim 10 , wherein the constraint information before the exchange includes a new constraint that is not included in the first constraint.
12. The information processing apparatus according to claim 10 , wherein all of the constraint information before the exchange is performed is included in the first constraint condition.
13. the constraint information includes a weight of the first constraint condition; 11. The information processing device according to claim 10, further comprising an update unit that changes a weight of the first constraint condition that is the same as the second constraint condition when a first constraint condition that is the same as the second constraint condition is included in the constraint information, and changes a weight of the first constraint condition that is the same as the third constraint condition when a first constraint condition that is the same as the third constraint condition is included in the constraint information.
14. The information processing apparatus according to claim 6 , wherein the user interface unit displays the constraint violation information, including an operation within a specific date and time range selected by a user and a type of constraint, in an emphasized manner.
15. The information processing apparatus according to claim 14 , wherein the types of constraints include at least one of a sequence of work conditions and a sequence of work.
16. The information processing apparatus according to claim 14 , wherein the type of constraint includes at least one of a driver's qualification, a work qualification, and a work experience of a worker.
17. The information processing device according to claim 14 , wherein the type of constraint includes at least one of a total of working hours, a number of public holidays, and a number of night shifts.
18. The information processing apparatus according to claim 14 , wherein the user interface unit is capable of selecting one of a plurality of candidates for the type of constraint.
19. each time a candidate plan for operations to be performed by a plurality of workers is generated based on constraint information including a first constraint condition related to the operations, a weight of the first constraint condition is decreased; Information processing methods.
20. On the computer, A program for executing a procedure for decreasing a weight of a first constraint condition related to an operation each time a candidate plan for operations to be performed by a plurality of workers is created based on constraint information including the first constraint condition.
Citation Information
Patent Citations
Cap for covering entire surface of end portion rotor support in hammer crusher
JP1989067264A
Production planning device and production planning method
JP2018120342A
Program, constraint satisfaction problem solving device and constraint satisfaction problem solving method
JP2019028576A
Planning support system and planning support method
JP6502816B2
Production planning support system and support method
JP6622592B2