Information processing apparatus, information processing method, and information processing program

The information processing apparatus predicts processing times using past performance data and a genetic algorithm to optimize processor allocation, addressing uneven processing time issues and enhancing route determination efficiency.

JP7700958B2Active Publication Date: 2025-07-01NIPPON TELEGRAPH & TELEPHONE CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024511014
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-03-31
Publication Date
2025-07-01
Estimated Expiration
2042-03-31

AI Technical Summary

Technical Problem

When determining routes for multiple vehicles using mathematical programming methods, the calculation of optimal solutions becomes excessively large, leading to unpredictable processing times due to uneven distribution of processes across processors, which can prolong the overall processing time.

Method used

An information processing apparatus that predicts processing times using a probability distribution based on past performance data and employs a genetic algorithm to equalize processing times across multiple processors, utilizing a data acquisition unit, processing time prediction unit, individual generation, crossover, and evaluation units to determine optimal process allocation.

Benefits of technology

This approach reduces overall processing time, enabling quicker route determination for vehicles during disasters, thereby reducing operational time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007700958000001
    Figure 0007700958000001
  • Figure 0007700958000002
    Figure 0007700958000002
  • Figure 0007700958000003
    Figure 0007700958000003
Patent Text Reader

Abstract

An information processing device according to one embodiment of the present invention comprises: a data acquisition unit for acquiring input data that includes a plurality of processes to be executed by a plurality of processors and performance data that indicates the processing time for processes executed in the past; and a control unit for performing control so as to determine, on the basis of the input data and the performance data, how the plurality of processes should be allocated to each processor. The control unit is provided with: a processing time prediction unit for predicting a processing time for the plurality of processes on the basis of the performance data; an entity generation unit for determining the process to be allocated to each processor, calculating an evaluation value that indicates the time from when the plurality of processors start executing a process to when the processors are finished executing the process, and generating an entity composed of processes that are linked in order; a crossing unit for crossing the processes and generating a plurality of new entities; an evaluation unit for calculating the evaluation values of the plurality of new entities; and an entity determination unit for determining that an entity having the best evaluation value among the evaluation values for the generated entities is the entity to be processed by the plurality of processors.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing apparatus, an information processing method, and an information processing program.

Background Art

[0002] In recent years, damage to infrastructure due to disasters has been worsening. For example, during a disaster, large-scale power outages, water supply cuts, etc. occur. In such cases, it is common to use vehicles to supply the materials necessary for life. Also, it is possible to determine the routes for vehicles to pass through the points where materials are needed using mathematical programming methods.

[0003] For example, in Non-Patent Document 1, a technique has been proposed in which, at a point for supplying materials, the time when the materials will run out and the importance of the point are used to evaluate the route and uniquely obtain the optimal route.

Prior Art Documents

Non-Patent Documents

[0004]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] When determining a route using mathematical programming methods, for example, if the number of vehicles and the number of delivery locations for goods are large, the amount of calculation for calculating the optimal solution may become extremely large. In such a case, it is possible to divide the calculation process and perform distributed processing using a plurality of processors. However, in the processing of mathematical programming methods, since it is difficult to predict the processing time, if the processes to be requested are randomly allocated, processes that take a long time to process may concentrate on a specific processor, resulting in a problem that the processing time becomes long.

[0006] The present invention has been made paying attention to the above circumstances, and an object thereof is to provide a technology capable of predicting the processing time of each process by a probability distribution referring to past history and calculating an optimal solution so that the processing time of each CPU / GPU process is equalized by using a genetic algorithm as a scheduling problem.

Means for Solving the Problems

[0007] In order to solve the above problems, one aspect of the present invention is an information processing apparatus including: a data acquisition unit that acquires input data including a plurality of processes to be executed by a plurality of processors and performance data indicating the processing time for the processes executed in the past; and a control unit that controls to determine how to allocate the plurality of processes to each processor based on the input data and the performance data. The control unit includes: a processing time prediction unit that predicts the processing time for the plurality of processes included in the input data based on the performance data; an individual generation unit that determines the processes to be allocated to each processor, calculates an evaluation value indicating the time from when the plurality of processors start executing the processes until they end, and generates an individual obtained by connecting the processes to be allocated to each processor in order; a crossover unit that crosses the processes constituting the individual to generate a plurality of new individuals; an evaluation unit that calculates the evaluation values of the plurality of new individuals; and an individual determination unit that determines that an individual having the best evaluation value among the evaluation values of the generated individuals is an individual to be processed by the plurality of processors.

Effects of the Invention

[0008] According to one aspect of the present invention, the processing time using mathematical programming methods can be made shorter than before, and a route for a vehicle to move during a disaster or the like can be quickly proposed. This makes it possible to contribute to reducing the time during which the vehicle operates.

Brief Description of the Drawings

[0009]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Mode for Carrying Out the Invention

[0010] Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following, elements that are the same as or similar to the already described elements are given the same or similar reference numerals, and redundant descriptions are basically omitted. For example, when there are a plurality of identical or similar elements, a common reference numeral may be used to describe each element without distinction, or a branch number may be used in addition to the common reference numeral to describe each element separately.

[0011] [Embodiment] (Configuration) FIG. 1 is a block diagram showing an example of the hardware configuration of an information processing apparatus 1 according to an embodiment. The information processing apparatus 1 is a computer that analyzes input data, generates output data, and outputs it. The information processing apparatus 1 can execute, by parallel processing, the calculation of a power vehicle deployment route based on, for example, a mathematical programming method using the branch and bound method, based on input data and performance data input from a user. Note that the input data and performance data will be described later.

[0012] Here, for example, it is possible to calculate a power vehicle deployment route in which a plurality of power vehicles visit each location (building) by a mathematical programming method using the branch and bound method. During the calculation, the branch and bound method is used to limit the location to be visited first. In the present application, a series of calculation processes for determining a route for visiting other locations from the initially limited location is referred to as "processing". Then, the information processing apparatus 1 can execute these plurality of processes in parallel on a plurality of processors to determine the most efficient route.

[0013] Here, in the following description, an example of the processing time for calculating a power vehicle deployment route in which a plurality of power vehicles visit each location will be described, but the present invention is not limited thereto, and of course, it can be applied to any calculation that can be calculated by a mathematical programming method.

[0014] The "user" in this application includes any user who can directly or indirectly input past performance data into the information processing apparatus 1. The "user" may also be a single user or multiple users. The user includes, for example, an operator, a developer, an administrator, or a designer, etc.

[0015] Also, as shown in FIG. 1, the information processing apparatus 1 includes a control unit 10, a program storage unit 20, a data storage unit 30, a communication interface 40, and an input / output interface 50. The control unit 10, the program storage unit 20, the data storage unit 30, the communication interface 40, and the input / output interface 50 are communicably connected to each other via a bus. Further, the communication interface 40 is communicably connected to an external device via a network 6. Also, the input / output interface 50 is communicably connected to an input device 51 and an output device 52.

[0016] The control unit 10 controls the information processing apparatus 1. The control unit 10 includes a hardware processor such as a central processing unit (CPU: Central Processing Unit). For example, the control unit 10 may be an integrated circuit capable of executing various programs.

[0017] The program storage unit 20 can be used by combining a non-volatile memory such as an EPROM (Erasable Programmable Read Only Memory), an HDD (Hard Disk Drive), an SSD (Solid State Drive) etc. which can be written and read at any time, and a non-volatile memory such as a ROM (Read Only Memory) as a storage medium. The program storage unit 20 stores programs necessary for executing various processes. That is, the control unit 10 can realize various controls and operations by reading and executing the programs stored in the program storage unit 20.

[0018] The data storage unit 30 is a storage that uses, as a storage medium, a combination of a non-volatile memory such as an HDD or a memory card that can be written to and read from at any time, and a volatile memory such as a RAM (Random Access Memory). The data storage unit 30 is used to store data acquired and generated in the process of the control unit 10 executing a program to perform various processes.

[0019] The communication interface 40 includes one or more wired or wireless communication modules. For example, the communication interface 40 includes a communication module for wired or wireless connection to an external device via the network 6. The communication interface 40 may include a wireless communication module for wireless connection to an external device such as a Wi-Fi access point and a base station. Further, the communication interface 40 may include a wireless communication module for wireless connection to an external device using short-range wireless technology. That is, the communication interface 40 may be a general communication interface as long as it can communicate with an external device under the control of the control unit 10 and transmit and receive various information including past performance data.

[0020] The input / output interface 50 is connected to the input device 51, the output device 52, etc. The input / output interface 50 is an interface that enables transmission and reception of information between the input device 51 and the output device 52. The input / output interface 50 may be integrated with the communication interface 40. For example, the information processing device 1 and at least one of the input device 51 or the output device 52 may be wirelessly connected using short-range wireless technology or the like, and information may be transmitted and received using the short-range wireless technology.

[0021] The input device 51 includes, for example, a keyboard, a pointing device, etc. for a user to input various information including past performance data to the information processing device 1. Further, the input device 51 may include a reader for reading data to be stored in the program storage unit 20 or the data storage unit 30 from a memory medium such as a USB memory, or a disk device for reading such data from a disk medium.

[0022] The output device 52 includes a display for displaying output data to be presented to the user from the information processing device 1, a printer for printing the output data, and the like.

[0023] FIG. 2 is a block diagram showing the software configuration of the information processing device 1 in the embodiment in association with the hardware configuration shown in FIG. 1. The control unit 10 includes a data acquisition unit 101, a processing time prediction unit 102, a data analysis processing unit 103, a data determination unit 104, and an output control unit 105. The data analysis processing unit includes an individual generation unit 1031, a selection unit 1032, a crossover unit 1033, and an evaluation unit 1034. The data storage unit 30 includes an acquired data storage unit 301 and a processed data storage unit 302.

[0024] The data acquisition unit 101 acquires various data from an external device or the input device 51 through the communication interface 40 or the input / output interface 50. For example, the data acquisition unit 101 acquires input data from an external device or the input device through the communication interface 40 or the input / output interface 50. The input data includes a plurality of processes to be executed by each of the plurality of processors included in the information processing device 1. Here, the plurality of processes may be for determining a route for a plurality of power supply vehicles to travel through a plurality of locations (buildings). And each process may be a series of calculations for determining a route from a first limited location using the branch-and-bound method.

[0025] Furthermore, the data acquisition unit 101 acquires past performance data. Here, the past performance data may be the actual time taken when a power supply vehicle travels along a power supply route calculated by a mathematical programming method using the branch-and-bound method in the past. Note that the past performance data is not limited to the performance data calculated by a mathematical programming method using the branch-and-bound method, and may be performance data calculated by a mathematical programming method using dynamic programming or the like. The data acquisition unit 101 stores the acquired input data and past performance data in the acquired data storage unit 301.

[0026] The processing time prediction unit 102 acquires the input data and past performance data stored in the acquisition data storage unit 301. The processing time prediction unit 102 acquires the minimum value and the maximum value of the acquired past performance data. Then, the processing time prediction unit 102 predicts the calculation processing time of each process on the assumption that each process is distributed along the standard normal distribution between the maximum value and the minimum value. And the processing time prediction unit 102 outputs each process with the predicted processing time to the data analysis processing unit 103.

[0027] The data analysis processing unit 103 determines each process to be assigned to each processor. Then, the data analysis processing unit 103 calculates an evaluation value which is the processing completion time when all processes are completed, and generates an individual in which the processes assigned to a plurality of processors are arranged in order. And the evaluation value is recalculated for this individual using a genetic algorithm. The details of the method for calculating the evaluation value and the method for recalculating the evaluation value of the individual using the genetic algorithm will be described later.

[0028] The data determination unit 104 determines that an individual having an adopted evaluation value (that is, an individual with a short processing completion time) among the recalculated evaluation values is an individual for which each processor processes. Here, the control unit 10 may execute processing on each processor according to the determined individual and determine the power vehicle deployment routes of a plurality of power vehicles.

[0029] The output control unit 105 outputs output information including the power vehicle deployment route determined by the control unit 10 to an external device or the output device 52 through the input / output interface 50.

[0030] (Operation) FIG. 3 is a flowchart showing an example of the operation for the information processing apparatus 1 to assign processing to each processor and execute the processing. The operation of this flowchart is realized by the control unit 10 of the information processing apparatus 1 reading and executing the program stored in the program storage unit 20.

[0031] The operation may be started according to a user instruction.

[0032] The data acquisition unit 101 acquires input data and performance data (step ST101). For example, the data acquisition unit 101 acquires the input data input by the user to the input device 51 through the input / output interface 50. Alternatively, the data acquisition unit may acquire from the user the number of power vehicles for which it is necessary to determine a route, and information on the location (building) to which the power vehicle should head. The data acquisition unit 101 may calculate the processing to be performed by each processor using the branch-and-bound method based on the acquired information.

[0033] Furthermore, the data acquisition unit 101 acquires a plurality of pieces of performance data through the input / output interface 50. Here, the performance data may be the time actually taken when the power vehicle travels according to the power supply route determined by the mathematical programming method using the branch-and-bound method in the past. The data acquisition unit stores the acquired input data and performance data in the acquisition data storage unit 301.

[0034] The processing time prediction unit 102 predicts the processing time (step ST102). The processing time prediction unit 102 reads out the input data and performance data stored in the acquisition data storage unit 301. Then, the processing time prediction unit 102 acquires the minimum value and the maximum value among the read performance data. The processing time prediction unit 102 predicts the processing time assuming that the time until the processor finishes calculating the processing follows the standard normal distribution N(μ,σ)=N(0,1). This is because, for example, when trying to solve the problem of multiple power vehicles traveling around multiple buildings using the mathematical programming method using the branch-and-bound method, there is no clear trend between each processing time and the number of buildings. Therefore, it is assumed that the time until the processor finishes calculating the processing follows the standard normal distribution. In this way, by predicting the processing time assuming that the performance data follows a probability distribution (in the example of the present application, the standard normal distribution), it is possible to prevent the processing time from deviating significantly from the actual time taken.

[0035] FIG. 4 is a diagram showing an example of the standard normal distribution used to predict the processing time. As shown in FIG. 4, assume that the probability density (simply described as density in FIG. 4) of the processing time is normally distributed between the minimum value and the maximum value. Then, the processing time prediction unit 102 predicts the time until the processor completes the processing using a random number or the like.

[0036] FIG. 5 is a diagram showing an example of the predicted processing time for each process. In the example of FIG. 5, assume that the minimum value is 100 minutes and the maximum value is 1000 minutes. And, for simplicity, FIG. 5 shows the predicted completion time until the five route candidates of the power vehicle No. 1 are calculated. Here, the process sequence number is the number assigned to all processes, and the sub-process number is the number assigned to the processes for the power vehicle No. 1, for example. As shown in FIG. 5, it shows that the process with the sub-process number 1 of the power vehicle No. 1 is predicted to have a processing time of 596 minutes.

[0037] As shown in FIG. 5, the processing time prediction unit 102 predicts the processing time for each process. Then, the processing time prediction unit 102 outputs the predicted processing time to the data analysis processing unit 103.

[0038] The individual generation unit 1031 of the data analysis processing unit 103 generates an initial individual (step ST103). The individual generation unit 1031 determines the processes to be assigned to each processor. Then, the individual generation unit 1031 calculates an evaluation value indicating the time from when the processor starts executing the process until it ends.

[0039] FIG. 6 is a diagram showing an example in which processes (1) to (13) are assigned to each of the processors 1 to 4. In the example of FIG. 6, the individual generation unit 1031 assigns process (1), process (5), and process (10) to processor 1, assigns process (2), process (8), and process (13) to processor 2, assigns process (3), process (6), process (9), and process (11) to processor 3, and assigns process (4), process (7), and process (12) to processor 4. Here, the x-axis in FIG. 6 represents time. Therefore, it shows that the time from when the processor starts processing until the processing of processor 4, which takes the longest time for processing, is completed becomes the evaluation value, that is, the processing completion time.

[0040] Next, the individual generation unit 1031 generates an individual (gene sequence) in which the processes of each of processors 1 to 4 are connected in order from processor 1. Here, the genes are processes (1) to (13), and each gene (process) is assumed to hold information on which processor it is processed by. The individual generation unit 1031 generates a predetermined number, for example, 100 individuals, by changing the processes assigned to the processors.

[0041] FIG. 7 is a diagram showing an example of a gene sequence and an evaluation value generated by the assignment shown in FIG. 6. The individual generation unit 1031 assigns processes to each processor as shown in FIG. 6 and generates gene sequence A1. Then, the individual generation unit 1031 generates a gene sample in which gene sequence A1 and evaluation value B1 as shown in FIG. 7 are associated. Then, the individual generation unit 1031 calculates an evaluation value for each individual, generates a predetermined number (for example, 100) of gene samples, and outputs the gene samples to the selection unit 1032.

[0042] The selection unit 1032 selects an individual based on the evaluation value (step ST104). The selection unit 1032, for example, refers to the gene samples and selects a predetermined number (for example, 20 individuals) of individuals (gene samples) in order from the gene samples with good evaluation values, that is, those with short processing completion times. That is, the selection unit 1032 selects 20 individuals in order from the individuals with short processing completion times. Here, the selection unit 1032 may store the selected gene samples in the processing data storage unit.

[0043] The crossover unit 1033 performs crossover of genes (step ST105). The crossover unit 1033 performs crossover on each gene (process) of the selected individual. The crossover unit 1033 generates a predetermined number, for example, 100, of new individuals through crossover.

[0044] FIG. 8 is a diagram showing an example of gene crossover. In the example of FIG. 8, crossover is performed by swapping process (1) and process (12). For example, before crossover, it is shown that process (1) is executed by processor 1 and process (12) is executed by processor 4. Here, by performing crossover, the individual will change to an individual in which process (1) is executed by processor 4 and process (12) is executed by processor 1.

[0045] The evaluation unit 1034 calculates the evaluation value of each individual (step ST106). The evaluation unit 1034 calculates the evaluation value of each individual newly generated by the crossover of the crossover unit 1033. When the evaluation unit 1034 assigns a process to the processor holding the gene (process), it calculates the predicted processing time from the start to the end of the process by the processor as the evaluation value. The evaluation unit 1034 may store the new individual and the evaluation value, that is, the gene sample, in the processing data storage unit 302.

[0046] The data analysis processing unit 103 determines whether the end condition is satisfied (step ST107). The data analysis processing unit 103 is provided with a counter and determines whether the counter exceeds a predetermined number (for example, 50). If not, the data analysis processing unit increments the count of the counter by 1. Then, the process returns to step ST104. On the other hand, if the counter exceeds the predetermined number (50), the process proceeds to step ST108.

[0047] The data determination unit 104 extracts the individual with the best evaluation value (step ST108). The data determination unit 104 extracts the individual with the best evaluation value among the individuals stored in the processing data storage unit 302. That is, the data determination unit 104 extracts the individual that takes the shortest time from when the processor starts executing the process until it ends.

[0048] FIG. 9 is a diagram comparing the processing completion times of the initial individual and the best individual. As shown in FIG. 9, it is shown that by allocating the process based on the best individual, the processing completion time is shorter compared to other individuals such as the initial individual.

[0049] The control unit 10 executes the process (step ST109). The control unit 10 allocates each process to the processor based on the extracted individual and causes the process to be executed.

[0050] (Function and effect) According to the embodiment, the information processing apparatus 1 predicts the time until the process is completed based on past performance data. Then, the information processing apparatus 1 can shorten the overall processing time by allocating the process so that the processing time for each processor can be leveled based on the predicted time.

[0051] [Modification example of the embodiment] In the modification example of the embodiment, the information processing apparatus 1 updates the past performance data as soon as one process ends during the processing using the processor, and applies it to the subsequent processes.

[0052] FIG. 10 is a diagram showing an example of the process when the modification example of the embodiment is applied. The control unit 10 first executes the above-described embodiment and determines the processing to be assigned to each processor. Then, the control unit 10 causes each processor to execute the processing. For example, as shown in FIG. 10, first, the processors 1 to 4 are caused to execute the processing (1) to processing (4). As a result of causing the processors 1 to 4 to execute the processing (1) to processing (4), the processing of the processing (3) of the processor 3 ends. At this stage, the control unit 10 updates the performance data with the processing completion time of the processing (3), that is, the time required from the start of the processing until the processing (3) ends, as new performance data, and re-executes the processing of the above-described embodiment based on the updated performance data and the input data. At this time, the processing (1), the processing (2), and the processing (4) are fixed as being executed by the processors 1, 2, and 4, respectively. Then, the control unit 10 determines the processing to be assigned to the processor 3 after the processing (3). That is, the control unit 10 re-determines the assignment of the processing not executed by each processor based on the input data and the updated performance data. In the example of FIG. 10, it is determined that the processing (6) is assigned.

[0053] Thereafter, the processing (1) ends in the processor 1. Therefore, the control unit 10, in the same manner as described above, the control unit 10 acquires the processing completion time of the processing (1) as new performance data and re-executes the processing of the above-described embodiment. Then, the control unit 10 determines the processing to be assigned to the processor 1 after the processing (1). In the example of FIG. 10, it is determined that the processing (9) is assigned. In this way, every time one of the plurality of processes ends, the control unit 10 executes the operation of the above-described embodiment. Thereby, the prediction accuracy of the processing time of the control unit 10 can be improved.

[0054] [Other Embodiments] In the modification of the above-described embodiment, although the control unit 10 has been shown as an example of re-determining the process allocation every time the process ends, the present invention is not limited to this. For example, after a predetermined number of processes have ended, the control unit 10 may acquire the process completion time, that is, the time from the start of the process until a predetermined number of processes have ended, as past performance data. Then, the control unit 10 may re-determine the allocation of the processes not yet executed by each processor based on the input data and the updated performance data. Even in this case, it is possible to improve the prediction accuracy of the processing time.

[0055] Also, the method described in the above embodiment can be stored as a program (software means) to be executed by a computer on a storage medium such as a magnetic disk (e.g., a floppy (registered trademark) disk, a hard disk, etc.), an optical disk (e.g., a CD-ROM, a DVD, an MO, etc.), a semiconductor memory (e.g., a ROM, a RAM, a flash memory, etc.), and can also be transmitted and distributed through a communication medium. Note that the program stored on the medium side includes a setting program for configuring software means (including not only an execution program but also tables and data structures) to be executed by a computer in the computer. The computer that realizes this device reads the program stored in the storage medium, and in some cases, constructs software means by the setting program, and executes the above-described processing by being controlled by this software means. Note that the storage medium referred to in this specification includes not only a storage medium for distribution but also a storage medium such as a magnetic disk or a semiconductor memory provided inside a computer or in a device connected via a network.

[0056] In short, the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the gist thereof at the implementation stage. Also, each embodiment may be implemented in combination as appropriately as possible, and in that case, the combined effects can be obtained. Furthermore, the above-described embodiment includes inventions at various stages, and various inventions can be extracted by appropriate combinations of a plurality of disclosed constituent elements.

Explanation of Reference Numerals

[0057] 1…Information processing apparatus 6…Network 10…Control unit 101…Data acquisition unit 102…Processing time prediction unit 103…Data analysis processing unit 1031…Individual generation unit 1032…Selection unit 1033…Crossover unit 1034…Evaluation unit 104…Data determination unit 105…Output control unit 20…Program memory unit 30…Data memory unit 301…Acquired data memory unit 302…Processed data memory unit 40…Communication interface 50…Input / output interface 51…Input device 52…Output device

Claims

1. A data acquisition unit that acquires input data including a plurality of processes to be executed by a plurality of processors and performance data indicating the processing time for processes executed in the past; A control unit that controls to determine how to allocate the plurality of processes to each processor based on the input data and the performance data; The control unit includes: A processing time prediction unit that predicts the processing time for a plurality of processes included in the input data based on the performance data; An individual generation unit that determines the processes to be allocated to each processor, calculates an evaluation value indicating the time from when the plurality of processors start executing the processes until they end, and generates an individual obtained by connecting in order the processes allocated to each processor; A crossover unit that crosses the processes constituting the individual to generate a plurality of new individuals; An evaluation unit that calculates the evaluation values of the plurality of new individuals; An individual determination unit that determines that an individual having the best evaluation value among the evaluation values of the generated individuals is the individual to be processed by the plurality of processors; An information processing apparatus comprising the above.

2. The individual generation unit generates a plurality of individuals in which the processes allocated to each processor are changed, calculates the evaluation value of each of the plurality of individuals, The information processing apparatus according to claim 1, further comprising a selection unit that selects, in order from the best evaluation value among the evaluation values, a predetermined number of individuals.

3. The information processing apparatus according to claim 2, wherein the crossover unit crosses the processes of each individual selected by the selection unit to generate the plurality of new individuals.

4. The information processing apparatus according to any one of claims 1 to 3, wherein the control unit repeatedly executes the operations in the crossover unit and the evaluation unit a predetermined number of times.

5. The control unit causes the plurality of processors to execute the plurality of processes based on the individual determined by the individual determination unit. When one process ends on one of the plurality of processors, the data acquisition unit updates the performance data with the time required from the start of the process until the end of the one process as new performance data, and the control unit re-determines the allocation of the processes not yet executed by each processor based on the input data and the updated performance data. The information processing apparatus according to any one of claims 1 to 4.

6. The control unit causes the plurality of processors to execute the plurality of processes based on the individual determined by the individual determination unit. When a predetermined number of the plurality of processes are completed, the data acquisition unit updates the performance data with the time required from the start of the process to the completion of the predetermined number of processes as new performance data. The control unit re-determines the allocation of the processes not yet executed by each processor based on the input data and the updated performance data. The information processing apparatus according to any one of claims 1 to 4.

7. Obtaining input data including a plurality of processes to be executed by a plurality of processors and performance data indicating the processing time for the processes executed in the past; Controlling to determine how to allocate the plurality of processes to each processor based on the input data and the performance data; Predicting the processing time for the plurality of processes included in the input data based on the performance data; Determining the processes to be allocated to each processor Calculating an evaluation value indicating the time from when the plurality of processors start executing the process until it ends; Generating an individual by connecting in order the processes allocated to each processor; Generating a plurality of new individuals by crossing the processes constituting the individual; Calculating the evaluation values of the plurality of new individuals; Determining that the individual having the best evaluation value among the evaluation values for the generated individuals is the individual to be processed by the plurality of processors; An information processing method comprising:

8. An information processing program that causes a processor to function as each part of the information processing apparatus according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Task scheduling method

    JP1994075786A

  • Parallel image processing device

    JP2002251610A

  • Method and systems for balancing machine load

    US20130070285A1

  • Scheduling for Digital Commercial Print Workflows

    US20140002854A1

  • Distributed processing management device and distributed processing management method

    WO2013024597A1