Schedule creation device and schedule creation method

The schedule creation device efficiently allocates execution time and resources to tasks, addressing resource scarcity and large-scale challenges, and supports emergency scheduling by optimizing task allocation and resource usage.

WO2026100204A1PCT designated stage Publication Date: 2026-05-15HITACHI LTD
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HITACHI LTD
Filing Date
2025-09-09
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Existing schedule creation technologies struggle to create schedules when resources are scarce or severely constrained, face challenges with large-scale problems, and are unable to respond to urgent schedule creation needs, such as during a disaster.

Method used

A schedule creation device and method that allocates execution time and resources to tasks by considering resource capacity data and movement constraints, allowing for efficient allocation even under stringent conditions, including limited resources and large task sets, and enabling emergency scheduling.

Benefits of technology

Enables the creation of schedules under severe constraints, handles large numbers of tasks within a practical timeframe, and supports emergency scheduling by optimizing execution time and resource allocation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025031778_15052026_PF_FP_ABST
    Figure JP2025031778_15052026_PF_FP_ABST
Patent Text Reader

Abstract

A schedule creation device (100) comprises: an execution time allocation unit (112) that allocates an execution time to a task; and a resource allocation unit (114) that allocates a resource to the task to which the execution time has been allocated. The execution time allocation unit (112) refers to resource capacity data indicating the upper limit of the number of allocatable resources for each unit execution time, and allocates an execution time composed of at least one unit execution time to the task. When the same resource is allocated to two tasks, the execution time allocation unit (112) may provide an interval determined according to the resource and the task between the execution times of the tasks.
Need to check novelty before this filing date? Find Prior Art

Description

Schedule Creation Device and Schedule Creation Method

[0001] The present invention relates to a schedule creation device and a schedule creation method for allocating execution time and resources to tasks.

[0002] Creating a schedule for a task is an operation of allocating an execution time (start time and end time) and resources to the task. For example, creating a schedule for maintenance work in a plant involves allocating the date and time (execution time) for each individual task (operation) such as inspection and replacement of equipment, machinery, and parts that make up the plant. At the same time, schedule creation also allocates resources such as workers and equipment required for the task.

[0003] As conditions for this allocation, there are essential constraints that must be satisfied, such as one resource being allocated to only one task at a time and there being time periods when no execution time is allocated to a task (such as holidays). In addition, there are also constraints that are desirable conditions, such as minimizing tasks that cannot meet their deadlines and minimizing the cost of resource usage. Such desirable conditions are quantified as KPIs (Key Performance Indicators). In other words, a schedule that satisfies the essential constraints and has the best KPI is required.

[0004] As one of the schedule creation techniques, there is the technique described in Non-Patent Document 1. In this technique, execution time is allocated to a task first, and then resources are allocated. More specifically, in this technique, assuming that resources are infinite, execution time is allocated to a task, and then resources are allocated. If resource allocation is impossible, constraints are added and the allocation of execution time is revisited.

[0005] Biplav Srivastava, Subbarao Kambhampati, and Minh B. Do, "Planning the project management way: Efficient planning by effective integration of causal and resource reasoning in RealPlan," Artificial Intelligence, vol.131, pp.73-134, 2001.

[0006] The technology described in Non-Patent Document 1 has several problems, including the inability to create schedules when resources are scarce or severely constrained, the time required for schedule creation in large-scale problems, and the inability to respond to urgent schedule creation. Therefore, there is a need for a technology that can create schedules even when the conditions for schedule creation, such as resource constraints, problem scale, and creation time, are severe. Urgent schedule creation refers to schedule creation in a short time, such as in the event of a disaster. The present invention has been made in view of this background, and aims to provide a schedule creation device and schedule creation method that enable schedule creation even under severe creation conditions.

[0007] To solve the above-mentioned problems, the schedule creation device according to the present invention comprises an execution time allocation unit that allocates execution time to tasks, and a resource allocation unit that allocates resources to tasks to which execution time has been allocated. The execution time allocation unit refers to resource capacity data indicating the upper limit of the number of resources that can be allocated for each unit execution time and allocates the execution time, which consists of one or more of the unit execution times, to the tasks.

[0008] According to the present invention, it is possible to provide a schedule creation device and a schedule creation method that enable schedule creation even under stringent creation conditions. Other problems, configurations, and effects will be clarified by the following description of embodiments.

[0009] This is a functional block diagram of the schedule creation device according to this embodiment. This is a data configuration diagram of the task information database according to this embodiment. This is a data configuration diagram of the resource information database according to this embodiment. This is a data configuration diagram of the resource capacity data according to this embodiment. This is a data configuration diagram of the movement constraint data according to this embodiment. This is data showing the resource capacity data of a resource whose class / type is "SDD" according to this embodiment. This is data showing the resource capacity data of an "SDD" resource after execution time has been allocated according to this embodiment. This is data showing the resource capacity data of an "SDD" resource after the execution time of task B has been accelerated according to this embodiment. This is data showing the resource capacity data of a resource whose class / type is "SDD" according to this embodiment. This is data showing the resource capacity data of an "SDD" resource after execution time has been allocated according to this embodiment. This is data showing the resource capacity data of an "SDD" resource after the execution time of task B has been accelerated according to this embodiment. This is a flowchart of the schedule creation process according to this embodiment. This is a flowchart of the resource capacity data creation process according to this embodiment. This is a flowchart of the movement constraint data creation process according to this embodiment. This is a flowchart of the resource allocation process according to this embodiment. This is a flowchart of the execution time interval reduction process according to this embodiment. This is a hardware configuration diagram showing an example of a computer that implements the functions of the schedule creation device according to the above embodiment.

[0010] <<Overview of the Schedule Creation Device>> The following describes the overview of the schedule creation device in an embodiment for carrying out the present invention. The schedule creation device creates resource capacity data that indicates the number of resources for each unit execution time (time slot) obtained by dividing the entire period during which a task is executed into a predetermined length of period. The schedule creation device assigns execution time to tasks while referring to and updating the resource capacity data. Next, the schedule creation device assigns resources to tasks to which execution time has been assigned.

[0011] When assigning the same resource to two tasks, the scheduling device allocates execution time to tasks while taking into account the time it takes for the resource to move between tasks. In other words, the scheduling device allocates execution time and resources to tasks while adding resource movement time as a constraint. If there is available resource before the allocated execution time for a task, the scheduling device will advance the execution time of that task.

[0012] Such a scheduling device makes it possible to create schedules even under strict conditions. For example, it can create schedules even when there are severe constraints such as limited resources. It can also create schedules within a practical timeframe even when dealing with a large number of tasks. Furthermore, it can handle emergency scheduling, such as during a disaster.

[0013] <Configuration of the Schedule Creation Device> Figure 1 is a functional block diagram of the schedule creation device 100 according to this embodiment. The schedule creation device 100 is a computer and comprises a control unit 110, a storage unit 120, and an input / output unit 180. User interface devices such as a display, keyboard, and mouse are connected to the input / output unit 180. The input / output unit 180 may also be equipped with a communication device, enabling data transmission and reception with other devices. Furthermore, a media drive may be connected to the input / output unit 180, enabling data exchange using a recording medium.

[0014] ≪Schedule Creation Device: Memory Unit≫ The memory unit 120 is composed of memory devices such as ROM (Read Only Memory), RAM (Random Access Memory), and SSD (Solid State Drive). The memory unit 120 stores a task information database 130, a resource information database 140, a constraint information database 150, resource capacity data 160, movement constraint data 170, and a program 128. The program 128 contains a description of the processing to be executed by the functional unit of the control unit 110, which will be described later. The various contents of the memory unit 120 may be stored in an external storage device such as a cloud server and read as needed.

[0015] <<Storage Unit: Task Information Database>> Figure 2 is a data structure diagram of the task information database 130 according to this embodiment. The task information database 130 is, for example, tabular data, where one row (record) contains information for one task. The records of the task information database 130 include columns (attributes) for identification information, name, resources, constraints, allocated execution time, and allocated resources.

[0016] The identification information (labeled "ID" in Figure 2) and name are the identification information and name of the task. Resources are the resources required to perform the task. Examples of resources include workers and equipment. There may be more than one required resource. In Figure 2, "SBBL1:3" indicates that three resources of the class / type "SBBL1" are required. Worker classes / types can be defined as skills / qualifications. Skills / qualifications may also be distinguished by level (e.g., Class 1, Class 2). Constraints are the constraints on the task. Examples of constraints include completed tasks that are prerequisites for starting this task, the task's deadline, and time restrictions for execution (e.g., only in the morning).

[0017] The allocated execution time and allocated resources are the execution time and resources that have been allocated. Before schedule creation, the allocated execution time and allocated resources will be blank. The resource in the resource attributes is the resource class / type. On the other hand, the resource in the allocated resource attributes is the individual resource. "R054" in the allocated resources is a resource belonging to "SBBL1" identified as "R054".

[0018] <Storage Unit: Resource Information Database> Figure 3 is a data structure diagram of the resource information database 140 according to this embodiment. The resource information database 140 is, for example, tabular data, and each row (record) contains information about an individual resource. The records in the resource information database 140 include identification information, type, and usage limit time.

[0019] The identification information (labeled "ID" in Figure 3) is the identification information of the resource. The type is the class / type of resource to which the resource belongs. The usage restriction time is the time when the resource cannot be assigned to a task (e.g., holidays).

[0020] ≪Storage Unit: Constraint Information Database≫ Returning to Figure 1, let's continue the explanation of the storage unit 120. The constraint information database 150 stores information related to constraints on the overall schedule creation process, independent of individual tasks or resources. Examples of such constraints include the fact that individual resources cannot be assigned to multiple tasks simultaneously, that the time it takes to move resources from one task to another should be short, and that it is desirable to have as few tasks that exceed their deadlines as possible.

[0021] These constraints are used to calculate the execution time allocation score (KPI), which is an evaluation value of the time allocation to tasks. For example, the more tasks that are overdue, the worse the execution time allocation score becomes. The more important the task, and the greater the overdue period, the greater the degree of deterioration. Alternatively, the execution time allocation score may be improved as the overall execution time of the tasks decreases.

[0022] <<Storage Unit: Resource Capacity Data>> Figure 4 is a data structure diagram of the resource capacity data 160 according to this embodiment. The resource capacity data 160 is, for example, tabular data. One row (record) of the resource capacity data 160 indicates the number of resources that can be allocated in each time slot (unit execution time) for one resource type / class. A time slot is a period of predetermined length, which is the unit of execution time allocated to a task. In other words, execution time consists of one or more time slots.

[0023] In the following explanation, the time slot length is assumed to be 30 minutes. In Figure 4, the number of available resources for the class / type "SBBL1" from 9:00 to 10:00 is 5. If a skill has levels, the number of available resources for lower levels includes the number of available resources for higher levels. For example, a Class 1 electrician has a wider range of work they can perform than a Class 2 electrician, and is a higher skill level. Therefore, the number of available resources for a Class 2 electrician includes the number of available Class 1 electricians. The same applies to equipment.

[0024] As explained above, when a first resource, which is a higher-level resource (e.g., a Class 1 Electrician), is available as a second resource, which is a lower-level resource (e.g., a Class 2 Electrician), the number of resources that can be allocated to the lower-level resource shown in the resource capacity data 160 includes the number of resources that can be allocated to the higher-level resource.

[0025] ≪Storage Unit: Movement Constraint Data≫ Figure 5 is a data structure diagram of the movement constraint data 170 according to this embodiment. The movement constraint data 170 is, for example, tabular data, and each row (record) includes the attributes of identification information (indicated as "ID" in Figure 5), task, resource, and interval. The record indicates that when a resource specified in the resource attribute is assigned to two tasks whose execution times are consecutive, a minimum interval specified in the interval attribute should be provided between the execution times of those tasks. This interval indicates the shortest time required for workers and equipment to move from the completion of one task to the site of the other task.

[0026] The record indicated by the identification information "C023" in Figure 5 indicates the following: If tasks identified by "T032" and "T045" are assigned the same resource belonging to the type / class identified by "SBBL1", there should be a minimum interval of 90 minutes between the end time of "T032" and the start time of "T045".

[0027] ≪Schedule Creation Device: Control Unit≫ Returning to Figure 1, the control unit 110 will be explained. The control unit 110 is configured to include a CPU (Central Processing Unit) and is equipped with a resource capacity data creation unit 111, an execution time allocation unit 112, a movement constraint data creation unit 113, a resource allocation unit 114, and an execution time interval shortening unit 115.

[0028] <Control Unit: Resource Capacity Data Creation Unit> The resource capacity data creation unit 111 generates resource capacity data 160 (see Figure 4) based on the resource information database 140 (see Figure 3). Details of the process will be described later with reference to Figure 13.

[0029] ≪Control Unit: Execution Time Allocation Unit≫ The execution time allocation unit 112 refers to the resource capacity data 160 (see Figure 4) and allocates execution time to tasks while updating it. More specifically, the execution time allocation unit 112 allocates execution time to a task, consisting of unit execution times for which the resources required for the task are available. After allocation, the execution time allocation unit 112 reduces the number of resources for the allocated execution time. For example, referring to the resource capacity data 160 in Figure 4, five resources can be allocated to the unit execution time from 09:00 to 09:30 on August 1, 2024. The execution time allocation unit 112 allocates resources to tasks within a range that does not exceed this number (using this number as the upper limit).

[0030] The execution time allocation unit 112 may refer to the movement constraint data 170 (see Figure 5) when allocating execution time to a task. For pairs of tasks that use resources of the same class / type, the execution time allocation unit 112 allocates execution time such that the interval specified in the movement constraint data 170 is ensured.

[0031] The execution time allocation unit 112 allocates execution time to tasks using methods such as random allocation, simulated annealing, tabu search, mathematical optimization methods, and genetic algorithms. The objective function in these methods is the execution time allocation score.

[0032] As described above, the schedule creation device 100 includes an execution time allocation unit 112 that allocates execution time to tasks. The execution time allocation unit 112 refers to resource capacity data 160 (see Figure 4) which indicates the upper limit of the number of resources that can be allocated for each unit execution time (time slot), and allocates execution time consisting of one or more unit execution times to tasks.

[0033] ≪Control Unit: Movement Constraint Data Creation Unit≫ The movement constraint data creation unit 113 generates movement constraint data 170 (see Figure 5) based on the execution time assigned to the task. Details of the process will be described later with reference to Figure 14.

[0034] <Control Unit: Resource Allocation Unit> The resource allocation unit 114 allocates resources to tasks for which execution time has been allocated. The resource allocation unit 114 calculates a score for each available resource using one or more evaluation criteria (score calculation criteria) and allocates the resource with the best score to the task. The evaluation criteria are the criteria used to determine the quality of allocating individual resources to a task.

[0035] As an example of evaluation criteria, as shown in the movement constraint data 170 (see Figure 5), there is a criterion that when assigning one resource to two tasks, an interval should be provided between the execution times of the tasks. There is also a criterion that assigning a resource to a task continuously for a long period of time will result in a lower score. Another evaluation criterion is that when assigning a resource to two tasks that are in a sequential order, a short interval between execution times will result in a lower score. The method by which the resource allocation unit 114 allocates resources will be described later with reference to Figure 15.

[0036] As described above, the schedule creation device 100 includes a resource allocation unit 114 that allocates resources to tasks to which execution time has been assigned. When the same resource is allocated to two tasks, the resource allocation unit 114 provides an interval between the execution times of those tasks, which is determined according to the resource and the task. The resource allocation unit 114 calculates a score for the allocatable resources using an evaluation criterion, which is a standard for determining the quality of resource allocation, and allocates the resource with the best score to the task.

[0037] ≪Control Unit: Execution Time Interval Reduction Unit≫ The execution time interval reduction unit 115 speeds up the execution time of tasks for which execution time and resources have been allocated, if resources are available. However, the execution time interval reduction unit 115 does not speed up the execution time if the execution time allocation score (KPI) deteriorates. An example of how the execution time interval reduction unit 115 speeds up the execution time of a task is shown below.

[0038] Figure 6 shows the resource capacity data 160 for a resource whose class / type is "SDD" according to this embodiment. It indicates that there is only one "SDD" resource. Let's assume that Task A and Task B use this "SDD" resource.

[0039] Figure 7 shows resource capacity data 160 of the "SDD" resource after execution time has been allocated according to this embodiment. Task A is allocated execution time from 13:00 to 14:30, and Task B is allocated execution time from 15:30 to 16:30. The "SDD" resource has free time from 14:30 to 15:30. Assume that it takes 30 minutes to move the "SDD" resource from Task A to Task B. Assuming there are no other constraints, the execution time of Task B can be advanced by 30 minutes to 15:00 to 16:00.

[0040] Figure 8 shows the resource capacity data 160 of the "SDD" resource after the execution time of task B has been reduced according to this embodiment. As shown above, even when there is only one resource, if there is available time, the execution time can be reduced by taking into account the travel time. Next, an example of a case where the execution times of two tasks overlap will be shown.

[0041] Figure 9 shows the resource capacity data 160 for a resource whose class / type is "SDD" according to this embodiment. It shows that there are two "SDD" resources. Let's assume that Task A and Task B use this "SDD" resource.

[0042] Figure 10 shows resource capacity data 160 of the "SDD" resource after execution time has been allocated according to this embodiment. Task A is allocated execution time from 13:00 to 15:00, and Task B is allocated execution time from 14:30 to 16:00. There is one available resource in the "SDD" from 13:00 to 14:30. Assuming there are no other constraints, the execution time for Task B can be set to 13:00 to 14:30.

[0043] Figure 11 shows resource capacity data 160 of the "SDD" resource after the execution time of task B has been reduced according to this embodiment. In this way, there are multiple resources, and the execution time can be reduced by allocating different resources to multiple tasks.

[0044] The execution time interval shortening unit 115 realizes schedule optimization, particularly when the execution time allocation unit 112 refers to the movement constraint data 170 to allocate execution time to tasks. The execution time allocation unit 112 allocates execution time to two target tasks so that an interval (interval reference of the movement constraint data 170) is ensured on the premise that the same resource is allocated to the two tasks. On the other hand, in the process of allocating resources after allocating execution time to tasks, the resource allocation unit 114 does not always allocate the same resource to the two tasks. When different resources are allocated, there may be a time period when there is free space in the resources. In such a case, the execution time interval shortening unit 115 realizes schedule optimization by advancing the start time of the task.

[0045] As described above, the schedule creation device 100 includes an execution time interval shortening unit 115 that, for two tasks whose start times of execution time are before and after, includes the unit execution time in the execution time of the task and advances the start time of the task if the resources required for the task whose start time is later can be allocated to the unit execution time before the start time. If the execution time allocation score, which is an evaluation value of the execution time allocation to the task, deteriorates when the execution time interval shortening unit 115 advances the start time of the task, the execution time interval shortening unit 115 does not advance the start time of the task.

[0046] ≪Schedule Creation Process≫ Fig. 12 is a flowchart of the schedule creation process according to the present embodiment. Information related to tasks and resources is already stored in the task information database 130 (see Fig. 2) and the resource information database 140 (see Fig. 3) prior to the start of the schedule creation process.

[0047] In step S11, the resource capacity data creation unit 111 executes a resource capacity data creation process. Details of the resource capacity data creation process will be described later while referring to FIG. 13. In step S12, the execution time allocation unit 112 repeatedly performs a process of allocating execution time to individual tasks. In step S13, the movement constraint data creation unit 113 repeatedly performs a movement constraint data creation process. Details of the movement constraint data creation process will be described later while referring to FIG. 14.

[0048] In step S14, the resource allocation unit 114 executes a resource allocation process. Details of the resource allocation process will be described later while referring to FIG. 15. In step S15, the execution time interval shortening unit 115 executes an execution time interval shortening process. Details of the execution time interval shortening process will be described later while referring to FIG. 16.

[0049] <<Resource Capacity Data Creation Process>> FIG. 13 is a flowchart of the resource capacity data creation process according to the present embodiment. Details of step S11 (see FIG. 12) will be described while referring to FIG. 13.

[0050] In step S21, the resource capacity data creation unit 111 calculates the number of resources for each class / type in the resource information database 140 (see FIG. 3) and creates resource capacity data 160 (see FIG. 4). At this point, the number of resources is the same in all time slots.

[0051] In step S22, the resource capacity data creation unit 111 refers to the usage restriction time in the resource information database 140 and reduces the number of resources in the time slots where usage is restricted. In step S23, when there is a level for each class / type, the resource capacity data creation unit 111 adds the number of upper-level resources to the number of lower-level resources in each time slot. For example, when the level increases from level 1 to level 2 and level 3, the resource capacity data creation unit 111 adds the number of resources at level 2 and level 3 to the number of resources at level 1.

[0052] <Movement Constraint Data Creation Process> Figure 14 is a flowchart of the movement constraint data creation process according to this embodiment. Step S13 (see Figure 12) will be explained in detail with reference to Figure 14. In step S31, the movement constraint data creation unit 113 obtains a set of tasks that use resources of the same class / type.

[0053] In step S32, the movement constraint data creation unit 113 starts the process of repeating step S33 for each set acquired in step S31. In step S33, the movement constraint data creation unit 113 calculates the movement time of the resources and updates the movement constraint data 170 (see Figure 5).

[0054] <<Resource Allocation Process>> Figure 15 is a flowchart of the resource allocation process according to this embodiment. Step S14 (see Figure 12) will be explained in detail with reference to Figure 15. In step S41, the resource allocation unit 114 arranges the tasks in order of the earliest start time of their execution.

[0055] In step S42, the resource allocation unit 114 starts repeating steps S43 to S47 in the order of the tasks listed in step S41. In step S43, the resource allocation unit 114 starts repeating steps S44 to S46 for each resource used by a task.

[0056] In step S44, the resource allocation unit 114 starts a process that repeats step S45 for each resource evaluation criterion. In step S45, the resource allocation unit 114 calculates the resource score according to the evaluation criterion.

[0057] In step S46, the resource allocation unit 114 calculates a resource allocation score by summing the scores calculated in step S45. The resource allocation unit 114 may also calculate the resource allocation score by weighting it according to the evaluation criteria. In step S47, the resource allocation unit 114 allocates the resource with the best evaluation score calculated in step S46 to the task.

[0058] <Execution Time Interval Reduction Process> Figure 16 is a flowchart of the execution time interval reduction process according to this embodiment. Step S15 (see Figure 12) will be explained in detail with reference to Figure 16. In step S51, the execution time interval reduction unit 115 arranges the tasks in order of the earliest start time of their execution. In step S52, the execution time interval reduction unit 115 starts the process of repeating steps S53 to S56 in the order of the tasks arranged in step S51.

[0059] In step S53, the execution time interval reduction unit 115 determines whether it is possible to advance the start time. It is possible to advance the start time if there are resources available to allocate in a time slot earlier than the current start time (see Figures 6 to 11). If it is possible (step S53 → possible), the execution time interval reduction unit 115 proceeds to step S54. If it is not possible (step S53 → impossible), the execution time interval reduction unit 115 returns to step S53 and processes the next task.

[0060] In step S54, the execution time interval reduction unit 115 calculates the execution time allocation score if the task start time is advanced. In step S55, if the execution time allocation score improves (step S55 → YES), the execution time interval reduction unit 115 proceeds to step S56. If the execution time allocation score does not improve (step S55 → NO), the execution time interval reduction unit 115 returns to step S53 and processes the next task. In step S56, the execution time interval reduction unit 115 advances the task start time.

[0061] ≪Features of the Schedule Creation Device≫ The schedule creation device 100 assigns execution time to tasks while referring to and updating resource capacity data 160 (see Figure 4). Furthermore, when the same resource is assigned to two tasks, the schedule creation device 100 considers the time it takes for the resource to move between tasks (see Figure 7) when assigning execution time to tasks. In addition, if there is available resource before the assigned execution time, the schedule creation device 100 accelerates the execution time of that task.

[0062] This scheduling device 100 allows for the allocation of execution time to tasks, in addition to the constraint of resource travel time. Furthermore, it enables scheduling even under strict conditions. For example, it allows scheduling even when resources are scarce or under other severe constraints. It also enables scheduling within a practical timeframe, even when dealing with a large number of tasks. Additionally, it can handle emergency scheduling, such as during a disaster.

[0063] ≪Modification≫ The schedule creation device 100 may also include a constraint information generation unit, such as a resource capacity data creation unit 111 or a movement constraint data creation unit 113, which generates constraint information that is referenced when allocating execution time to a task based on resource information and task information. That is, the constraint information generation unit generates constraint information based on resource information and / or task information that the schedule creation device is targeting for scheduling, such as resource information and task information. The execution time allocation unit 112 of the schedule creation device 100 may refer to the constraint information generated by the constraint information generation unit and allocate execution time to a task. The constraint information is, for example, resource capacity data 160 (see Figure 4) or movement constraint data 170 (see Figure 5). By referring to the constraint information when allocating execution time to a task, it is possible to reduce the number of cases where resources cannot be allocated to a task and the process returns to allocating execution time.

[0064] As described above, the scheduling device 100, which allocates execution time to tasks and allocates resources to tasks to which execution time has been allocated, includes a constraint information generation unit that generates constraint information to be referenced when allocating execution time to tasks, based on task and / or resource information. The execution time allocation unit 112 refers to the constraint information and allocates execution time to tasks.

[0065] <Other Modifications> Although embodiments and modifications of the present invention have been described above, these embodiments are merely illustrative and do not limit the technical scope of the present invention. The present invention can take various other embodiments, and furthermore, various modifications such as omissions and substitutions can be made without departing from the spirit of the present invention. These embodiments and their variations are included in the scope and spirit of the invention described herein, and are also included in the scope of the invention and its equivalents as described in the claims.

[0066] ≪Hardware Configuration≫ The schedule creation device 100 according to the above embodiment is implemented by a computer 900 having a configuration such as that shown in Figure 17. Figure 17 is a hardware configuration diagram showing an example of a computer 900 that implements the functions of the schedule creation device 100 according to the above embodiment. The computer 900 includes a CPU 901, ROM 902, RAM 903, SSD 904, input / output interface 905 (labeled as input / output I / F (Interface) in Figure 17), communication interface 906 (labeled as communication I / F in Figure 17), and media interface 907 (labeled as media I / F in Figure 17). The computer 900 may have an HDD (Hard Disk Drive) instead of the SSD 904, or it may have an HDD in addition to the SSD 904.

[0067] The CPU 901 operates based on programs stored in the ROM 902 or SSD 904 and is controlled by the control unit 110 in Figure 1. The ROM 902 stores boot programs executed by the CPU 901 when the computer 900 starts up, as well as programs related to the computer 900's hardware.

[0068] The CPU 901 controls input devices 910, such as a mouse and keyboard, and output devices 911, such as a display and printer, via the input / output interface 905. The CPU 901 acquires data from the input devices 910 and outputs the generated data to the output devices 911 via the input / output interface 905.

[0069] The SSD 904 stores programs executed by the CPU 901 and data used by those programs. The communication interface 906 receives data from other devices (not shown) via the communication network and outputs it to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.

[0070] The media interface 907 reads a program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads the program from the recording medium 912 onto the RAM 903 via the media interface 907 and executes the loaded program. The recording medium 912 can be an optical recording medium such as a DVD (Digital Versatile Disk), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, a conductive memory tape medium, or a semiconductor memory.

[0071] For example, when the computer 900 functions as the schedule creation device 100 according to the above embodiment, the CPU 901 of the computer 900 realizes the functions of the schedule creation device 100 by executing the program 128 (see Figure 1) loaded on the RAM 903. The CPU 901 reads the program from the recording medium 912 and executes it. In addition, the CPU 901 may read the program from another device via a communication network, or it may install the program 128 from the recording medium 912 onto the SSD 904 and execute it.

[0072] 100 Schedule creation device 111 Resource capacity data creation unit 112 Execution time allocation unit 113 Movement constraint data creation unit 114 Resource allocation unit 115 Execution time interval reduction unit 128 Program 130 Task information database 140 Resource information database 150 Constraint information database 160 Resource capacity data 170 Movement constraint data

Claims

1. A scheduling device comprising: an execution time allocation unit that allocates execution time to tasks; and a resource allocation unit that allocates resources to tasks to which execution time has been allocated, wherein the execution time allocation unit refers to resource capacity data indicating the upper limit of the number of resources that can be allocated for each unit execution time and allocates the execution time, which consists of one or more unit execution times, to the tasks.

2. The schedule creation device according to claim 1, wherein the resource allocation unit provides an interval determined according to the resource and the task during the execution time of the tasks when the same resource is allocated to two tasks.

3. The schedule creation device according to claim 1, further comprising an execution time interval shortening unit that, if the resources required for the task with the later start time can be allocated to the unit execution time earlier than the start time of the other task among two tasks whose start times are one or the other, includes that unit execution time in the execution time of the other task, thereby bringing the start time of the other task forward.

4. The scheduling device according to claim 3, wherein the execution time interval shortening unit does not shorten the start time of the task if shortening the start time of the task would worsen the execution time allocation score, which is an evaluation value of the execution time allocation to the task.

5. The schedule creation device according to claim 1, wherein the resource allocation unit calculates a score for the allocatable resources using an evaluation criterion that is a standard for determining the quality of resource allocation, and allocates the resource with the best score to the task.

6. The scheduling device according to claim 1, wherein, when the first resource, which is a higher-level resource, is available as a second resource, which is a lower-level resource, the number of resources to which the lower-level resource can be allocated, as shown in the resource capacity data, includes the number of resources to which the higher-level resource can be allocated.

7. A scheduling device for allocating execution time to tasks and allocating resources to tasks to which execution time has been allocated, comprising: a constraint information generation unit that generates constraint information to be referenced when allocating execution time to tasks based on information about the tasks and / or the resources; an execution time allocation unit that references the constraint information and allocates execution time to the tasks; and a resource allocation unit that allocates the resources to tasks to which execution time has been allocated.

8. A scheduling method comprising: a scheduling device performing the steps of: assigning execution time to a task; and assigning resources to the task to which the execution time has been assigned, wherein in the step of assigning execution time, the device refers to resource capacity data indicating the upper limit of the number of resources that can be assigned for each unit execution time, and assigns the execution time, which consists of one or more unit execution times, to the task.