Schedule generation program, schedule generation method, and information processor
By calculating the number of first objects and its impact on the total system cost, the operation sequence is optimized, so that the change of the state of the second object with a larger index value is preferred, solving the problem of insufficient scheduling in the prior art, and efficient scheduling generation and system cost optimization are achieved.
Patent Information
- Application Number
- JP2023147488
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-12
- Publication Date
- 2025-03-25
AI Technical Summary
The prior art may not be able to optimize the operation sequence when generating line migration sequences, resulting in the generated scheduling being inefficient enough.
By calculating the number of unchanged first objects associated with each second object and its impact on the total cost of the system, an optimized operation sequence is generated, so that the change of the second object state with a larger index value is preferred.
It realizes efficient generation scheduling, optimizes the overall cost of the system, and improves the optimization accuracy of the operation sequence.
Smart Images

Figure 2025040590000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a schedule generating program, a schedule generating method, and an information processing apparatus. [Background technology]
[0002] A computer may solve an optimization problem that determines an order for operating multiple objects included in a system, taking into account the cost of the entire system. The system to be optimized may include two types of objects, groups A and B. The objects in group A change state in response to an operation. The objects in group B change state in response to a change in state of one or more related objects among the objects in group A. At least some of the objects are assigned a cost that changes in response to the change in state.
[0003] By changing the operation order for the objects in group A, the timing of state changes for the objects in group B changes accordingly. Therefore, by changing the operation order, the curve showing the time change in the unit time cost of the entire system changes. The computer, for example, searches for an operation order that reduces the system cost obtained by integrating the unit time cost.
[0004] For example, a line migration order generation method has been proposed that determines the migration order of multiple lines that use a circuit-switched network. Each of the multiple lines passes through some of the multiple circuit switches included in the circuit-switched network. The proposed method calculates a score for each of the multiple lines that indicates the number of circuit switches that will become unused by migrating that line. The proposed method removes the line with the highest calculated score, and recalculates the score for each of the remaining lines, repeating this process until there are no more lines remaining.
[0005] In addition, a modeling method has been proposed for modeling a process chain in which a state change in a replenishment process of one part causes a state change in the replenishment process of another part in a JIT (Just In Time) production system. Also, a change management system has been proposed for generating a work plan for changing the states of multiple parts based on the dependencies between the parts and the current and changed states of each part. Also, a resource allocation device has been proposed for managing resources to be allocated to each network node based on the network nodes through which each of multiple communication flows passes and the data flow rate. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] US Patent Application Publication No. 2007 / 0005411 [Patent Document 2] JP 2015-215887 A [Patent Document 3] JP 2017-79352 A [Patent Document 4] US Patent Application Publication No. 2022 / 0094571 Summary of the Invention [Problem to be solved by the invention]
[0007] As described above, a computer may search for a schedule indicating an operation sequence for one of two types of objects included in a system. However, the heuristics shown in the line migration order generation method described in Patent Document 4 may not generate a highly efficient schedule, and there is room for improvement.
[0008] For example, in the line transfer order generation method described in Patent Document 4, even if any line is removed in the early stage of the search, no circuit switch may become unused, and the operation order in the early stage may not be optimized even if the above-mentioned score is used. Therefore, in one aspect, the present invention aims to generate a highly efficient schedule. [Means for solving the problem]
[0009] In one embodiment, a schedule generating program is provided that causes a computer to execute the following process. The program shows a system including a plurality of first objects each of which undergoes a first state change in response to an operation, and a plurality of second objects each of which is associated with one or more first objects among the plurality of first objects and each of which undergoes a second state change in response to the first state change of the associated one or more first objects, and obtains system data in which a cost that changes in response to the second state change is assigned to each of the plurality of second objects. Based on the system data, the program calculates, for each of the plurality of second objects, the number of unchanged first objects among the associated one or more first objects that have not undergone the first state change, and the amount of change in the total cost defined for the system using the costs of the plurality of second objects, the amount of change being when an operation is performed on the unchanged first object, and calculates an index value that is larger as the number is smaller and larger as the amount of change is larger. Schedule data is generated that shows an order of operations on the plurality of first objects so that a second state change occurs preferentially in a second object with a larger index value among the plurality of second objects.
[0010] In one aspect, a schedule generating method executed by a computer is provided.In another aspect, an information processing device having a storage unit and a processing unit is provided. Effect of the Invention
[0011] On the one hand, highly efficient schedules are generated. [Brief description of the drawings]
[0012] [Figure 1] FIG. 1 is a diagram illustrating an information processing device according to a first embodiment. [Diagram 2] FIG. 11 illustrates an example of hardware of an information processing apparatus according to a second embodiment. [Diagram 3] FIG. 2 is a diagram showing a first example of a graph showing object relationships. [Figure 4] FIG. 11 is a diagram showing a first example of a change in unit time cost over time. [Diagram 5] FIG. 2 is a diagram illustrating an example of a system to be scheduled. [Figure 6] FIG. 13 is a diagram showing a visualization example of an index Z. [Figure 7] FIG. 13 is a diagram illustrating a first example of a schedule search. [Figure 8] FIG. 11 is a diagram illustrating a second example of a change in unit time cost over time. [Figure 9] FIG. 13 is a diagram showing a second example of a graph showing object relationships. [Figure 10] FIG. 13 is a diagram illustrating a second example of a schedule search. [Figure 11] FIG. 13 is a diagram illustrating a third example of a change in unit time cost over time. [Figure 12] FIG. 11 is a diagram illustrating a comparative example of system costs. [Figure 13] FIG. 11 illustrates an example of functions of an information processing apparatus according to a second embodiment; [Figure 14] 13 is a flowchart showing an example of a procedure for generating a schedule having an AND relationship. [Figure 15] 13 is a flowchart showing an example of a procedure for selecting objects having an AND relationship; [Figure 16] 13 is a flowchart showing an example of a procedure for stack arrangement. [Figure 17] 11 is a flowchart showing an example of a procedure for calculating a system cost. [Figure 18] 13 is a flowchart showing an example of a procedure for generating a schedule of OR relationships. [Figure 19] 13 is a flowchart showing an example of a procedure for selecting an object having an OR relationship; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] Hereinafter, the present embodiment will be described with reference to the drawings. [First embodiment] A first embodiment will be described.
[0014] FIG. 1 is a diagram illustrating an information processing apparatus according to a first embodiment. The information processing device 10 searches for an appropriate operation sequence for a plurality of objects included in the system from the viewpoint of the cost of the entire system, and generates schedule data indicating the operation sequence. The information processing device 10 may be a client device or a server device. The information processing device 10 may be called a computer, a schedule generating device, or an optimizing device.
[0015] The information processing device 10 includes a storage unit 11 and a processing unit 12. The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM). The storage unit 11 may also be a non-volatile storage such as a hard disk drive (HDD) or a flash memory.
[0016] The processing unit 12 is, for example, a processor such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). However, the processing unit 12 may include an electronic circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processor executes a program stored in a memory such as a RAM (which may be the storage unit 11). A collection of processors may be called a multiprocessor or simply a "processor."
[0017] The storage unit 11 stores system data 13. The system data 13 may be created by a user. The information processing device 10 may accept an input of the system data 13 from the user, or may receive the system data 13 from another information processing device. The system data 13 indicates a system including a plurality of objects. The plurality of objects includes a plurality of first objects including objects 14-1 to 14-4, and a plurality of second objects including objects 15-1 to 15-3.
[0018] For example, a plurality of first objects are objects of the same type and form a first group. Also, a plurality of second objects are objects of the same type and form a second group. However, the first object and the second object may be objects of different types. Examples of object types include equipment, products, users, and organizations. For example, the first object is a line, and the second object is a line switch used by the line. Also, for example, the first object is a manufacturing device, and the second object is a product manufactured by the manufacturing device.
[0019] A second object is associated with one or more first objects. An association is, for example, a relationship in which one or more lines use a certain line switch, or a relationship in which one or more manufacturing devices are used to manufacture a certain product. A certain first object may be associated with two or more second objects. For example, object 15-1 is associated with objects 14-1 to 14-3. Object 15-2 is associated with objects 14-2 and 14-4. Object 15-3 is associated with object 14-4.
[0020] In each first object, a first state change occurs in response to an operation. In each second object, a second state change occurs in response to a first state change in one or more associated first objects. The state change may be called a state transition or a firing. The state change may indicate, for example, stopping from ON to OFF, or starting from OFF to ON. The operation may indicate, for example, switching the first object between ON and OFF. For example, the first state change is stopping a line, and the second state change is stopping a line switch. Also, for example, the first state change is starting up a manufacturing device, and the second state change is starting production of a product.
[0021] When a second object is associated with two or more first objects, the occurrence condition of the second state change may be an AND condition. In this case, the second state change occurs when the first state change occurs in all of the two or more associated first objects. For example, the stop of all associated lines causes a line switch to stop. Also, for example, the start of all associated manufacturing equipment causes the production of a product to start.
[0022] The system data 13 assigns a cost that changes according to the second state change to each of the multiple second objects. The system data 13 may specify the cost before and after the second state change, or may specify the difference between the costs before and after the second state change. For example, the cost is a unit time cost that occurs when the second object is ON. The costs of the multiple second objects may be the same or different. The system data 13 may further assign a cost to at least a part of the first objects among the multiple first objects. The cost of the first object may change according to the first state change.
[0023] For example, the costs of the objects 15-1 to 15-3 are 1 before the second state change and 0 after the second state change. This indicates that the unit time cost decreases by 1 when the objects 15-1 to 15-3 stop.
[0024] The system data 13 may be represented by a graph including a plurality of nodes and a plurality of edges. In this case, a plurality of first objects and a plurality of second objects are represented by nodes, respectively. The association between the first objects and the second objects is represented by edges between the nodes. The cost of the object corresponds to the attribute possessed by the node. The graph may have edges between nodes of different groups, but does not have edges between nodes of the same group. Thus, the graph is a bipartite graph.
[0025] The processing unit 12 generates schedule data 17 indicating the order of operations on a plurality of first objects based on the system data 13. At this time, the processing unit 12 calculates an index value for each of the plurality of second objects. For example, the processing unit 12 calculates an index value 16-1 for object 15-1, an index value 16-2 for object 15-2, and an index value 16-3 for object 15-3. The processing unit 12 determines the order of operations on the plurality of first objects such that the second state change of the second object having the larger index value occurs preferentially.
[0026] When calculating the index value, the processing unit 12 calculates the number of unchanged first objects that have not undergone a first state change among one or more related first objects. The processing unit 12 also calculates the amount of change in the overall cost when an operation is performed on the unchanged first objects. The processing unit 12 then calculates a larger index value as the number is smaller and a larger index value as the amount of change is larger. The index value may be proportional to the amount of change and inversely proportional to the number, or may be calculated by dividing the amount of change by the number.
[0027] The total cost is a cost that is defined for the entire system using the current costs of the second objects. For example, the total cost is the sum of the current costs of the second objects. However, if at least some of the first objects are also assigned a cost, the total cost may be defined further using the current cost of the first objects. For example, the total cost is the sum of the current costs of the first objects and the current costs of the second objects.
[0028] When an operation is performed on an unchanged first object, a second state change occurs in a second object of interest through a first state change. This causes a change in the cost of the second object, and a change in the overall cost. For example, the cost of the second object decreases, and the overall cost decreases. Thus, the amount of change in the overall cost may be equal to the difference in cost before and after the second state change of the second object of interest.
[0029] However, if at least some of the first objects are also assigned costs, the cost of the first object to be operated may change, and the total cost may further change. For example, the cost of the first object to be operated may decrease, further decreasing the total cost. Thus, the change in the total cost may be the sum of the difference in the cost of the second object of interest and the difference in the cost of the first object to be operated.
[0030] For example, assume that the first state change has not yet occurred in any of the objects 14-1 to 14-4, and the second state change has not yet occurred in any of the objects 15-1 to 15-3. The number of unchanged first objects related to the object 15-1 is 3, and the change in the total cost when the three first objects are operated is 1. Therefore, the index value 16-1 of the object 15-1 is 1 / 3=0.333.
[0031] Furthermore, the number of unchanged first objects associated with object 15-2 is 2, and the change in the total cost when the two first objects are operated is 1. Therefore, index value 16-2 of object 15-2 is 1 / 2=0.500. Furthermore, the number of unchanged first objects associated with object 15-3 is 1, and the change in the total cost when the one first object is operated is 1. Therefore, index value 16-3 of object 15-3 is 1 / 1=1.000.
[0032] For example, the processing unit 12 selects the object 15-3 having the maximum index value from among the objects 15-1 to 15-3. The processing unit 12 identifies the object 14-4 to be operated to cause a second state change in the object 15-3, and determines the operation order of the object 14-4 to be first. Note that, when there are two or more unchanged first objects related to the selected second object, the processing unit 12 may determine the operation order of the two or more first objects randomly, or in descending order of cost.
[0033] The processing unit 12 may recalculate the index value of each of the second objects that have not yet been selected, each time the processing unit 12 selects one second object that will cause a second state change. In this case, the processing unit 12 uses the recalculated index value to select one second object that will next cause a second state change. For example, the processing unit 12 selects a second object with the largest recalculated index value.
[0034] In recalculating the index values, the processing unit 12 considers that a first state change has occurred for a first object whose operation order has already been determined, and considers that a second state change has occurred for a second object selected so far. Note that the processing unit 12 may recalculate the index values of each unselected second object each time a certain number of second objects that will cause a second state change are selected. In this case, for example, the processing unit 12 continuously selects a certain number of second objects in descending order of index value.
[0035] For example, after an operation is performed on object 14-4, the index value of object 15-1 is 1 / 3=0.333, and the index value of object 15-2 is 1 / 1=1.000. Then, the processing unit 12 next selects object 15-2 and determines the operation priority of object 14-2 to be second. Finally, the processing unit 12 selects object 15-1 and determines the operation priority of objects 14-1 and 14-3 to be third and fourth.
[0036] The processing unit 12 outputs the generated schedule data 17. The processing unit 12 may store the schedule data 17 in a non-volatile storage, may display the schedule data 17 on a display device, or may transmit the schedule data 17 to another information processing device.
[0037] As described above, the information processing device 10 of the first embodiment acquires system data 13. The system data 13 indicates a system including a plurality of first objects each of which undergoes a first state change in response to an operation, and a plurality of second objects each of which undergoes a second state change in response to the first state change of one or more related first objects. The system data 13 also assigns a cost that changes in response to the second state change to each of the plurality of second objects.
[0038] The information processing device 10 calculates, for each second object, the number of unchanged first objects that have not undergone a first state change among the associated first objects, based on the system data 13. The information processing device 10 also calculates the amount of change in the total cost defined for the system using the costs of multiple second objects, when an operation is performed on an unchanged first object. The information processing device 10 calculates a larger index value the smaller the number is, and the larger the amount of change is.
[0039] Then, the information processing device 10 generates schedule data 17 indicating the order of operations on the multiple first objects such that the second state change of the second object having the larger index value among the multiple second objects occurs preferentially.
[0040] This generates schedule data 17 indicating a suitable operation sequence for a plurality of first objects from the viewpoint of overall cost. For example, the system cost obtained by integrating the unit time cost of the entire system over a certain period of time is reduced. This improves the efficiency of the operation of the system during the transition period when the first state change and the second state change occur.
[0041] Moreover, compared to conventional heuristics, the optimization accuracy is improved, and schedule data 17 showing a highly efficient schedule is generated. For example, another schedule generation method is considered to count the number of second objects that cause a second state change by performing an operation on each first object, and to preferentially select first objects with a larger count. However, this other schedule generation method does not take into account second objects that cause a second state change by operating two or more first objects, and the accuracy of search may be low in the early stages when there are many unchanged first objects.
[0042] In response to this, the information processing device 10 calculates an index value for each second object. A large index value indicates that the total cost changes significantly due to the operation of a small number of first objects. Therefore, by preferentially causing the second state change in the second object having a large index value, the time efficiency of the operation on the first object is improved.
[0043] Note that the information processing device 10 may recalculate the index values for the unselected second objects every time it selects one second object that causes the second state change. This allows a highly efficient schedule to be generated for the lower operation orders as well.
[0044] Furthermore, when the same index value is calculated for two or more second objects, the information processing device 10 may generate two or more patterns showing the results of provisionally selecting each of the second objects and recalculating the index values of the unselected second objects. Then, the information processing device 10 may determine the order of the second objects for which the same index value is calculated, based on a comparison of the two or more patterns generated. In this way, even if it is difficult to determine the higher order of operations alone, the higher order of operations is determined taking into account the optimization status of the lower order of operations, and a schedule with high efficiency as a whole is generated.
[0045] The system data 13 may also assign a cost to each first object, and the total cost of the system may be defined using the costs of the first objects and the costs of the second objects. This allows the system to be appropriately modeled according to the type of object, and a valid optimization problem to be defined. The index value may also be calculated by dividing the change in the total cost by the number of unchanged first objects. This allows a simple expression of the relationship that is proportional to the change and inversely proportional to the number.
[0046] [Second embodiment] Next, a second embodiment will be described. The information processing device 100 of the second embodiment models the relationship between two types of objects included in a system, and solves an optimization problem of optimizing the operation sequence of one type of object. The information processing device 100 may be a client device or a server device. The information processing device 100 may be called a computer, a schedule generation device, or an optimization device. The information processing device 100 corresponds to the information processing device 10 of the first embodiment.
[0047] FIG. 2 illustrates an example of hardware of an information processing apparatus according to the second embodiment. The information processing device 100 has a CPU 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a medium reader 106, and a communication interface 107, all connected via a bus. The CPU 101 corresponds to the processing unit 12 in the first embodiment. The RAM 102 or the HDD 103 corresponds to the storage unit 11 in the first embodiment.
[0048] The CPU 101 is a processor that executes instructions of a program. The CPU 101 loads the program and data stored in the HDD 103 into the RAM 102 and executes the program. The information processing device 100 may have multiple processors.
[0049] The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 101 and data used in calculations by the CPU 101. The information processing device 100 may have a type of volatile memory other than a RAM.
[0050] The HDD 103 is a non-volatile storage that stores software programs such as an operating system (OS), middleware, and application software, and data. The information processing device 100 may have other types of non-volatile storage, such as a flash memory or a solid state drive (SSD).
[0051] The GPU 104 performs image processing in cooperation with the CPU 101, and outputs an image to a display device 111 connected to the information processing device 100. The display device 111 is, for example, a CRT (Cathode Ray Tube) display, a liquid crystal display, an organic EL (Electro Luminescence) display, or a projector. Other types of output devices, such as a printer, may be connected to the information processing device 100.
[0052] The GPU 104 may be used as a general purpose computing on graphics processing unit (GPGPU). The GPU 104 may execute a program in response to an instruction from the CPU 101. The information processing device 100 may include a volatile semiconductor memory other than the RAM 102 as a GPU memory.
[0053] The input interface 105 receives an input signal from an input device 112 connected to the information processing device 100. The input device 112 is, for example, a mouse, a touch panel, or a keyboard. A plurality of input devices may be connected to the information processing device 100.
[0054] The medium reader 106 is a reading device that reads the program and data recorded on the recording medium 113. The recording medium 113 is, for example, a magnetic disk, an optical disk, or a semiconductor memory. The magnetic disk includes a flexible disk (FD) and a HDD. The optical disk includes a compact disc (CD) and a digital versatile disc (DVD). The medium reader 106 copies the program and data read from the recording medium 113 to another recording medium such as the RAM 102 or the HDD 103. The read program may be executed by the CPU 101.
[0055] The recording medium 113 may be a portable recording medium. The recording medium 113 may be used for distributing programs and data. The recording medium 113 and the HDD 103 may be called computer-readable recording media.
[0056] The communication interface 107 communicates with other information processing devices via the network 114. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or a wireless communication interface connected to a wireless communication device such as a base station or an access point.
[0057] Next, a graph that models the system to be optimized will be described. FIG. 3 is a diagram showing a first example of a graph showing object relationships. The graph 131 is a bipartite graph including a plurality of nodes and a plurality of edges, in which the nodes are grouped into two types. The graph 131 may be a directed graph in which the edges have a direction, or an undirected graph in which the edges have no direction. The graph 131 may be created by a user, or the information processing device 100 may receive the graph 131 from another information processing device.
[0058] Graph 131 includes nodes 132-1 to 132-5 and 133-1 to 133-4. Nodes 132-1 to 132-5 represent different objects of the same type. The objects represented by nodes 132-1 to 132-5 belong to group A. In the following description, an object belonging to group A may be referred to as object a. Nodes 133-1 to 133-4 represent different objects of the same type. The objects represented by nodes 133-1 to 133-4 belong to group B. In the following description, an object belonging to group B may be referred to as object b.
[0059] An object may be a tangible object or a collection of tangible objects, or an intangible object or a collection of intangible objects. For example, an object may be a device, a building, or land, a collection of devices, a person, or an organization representing a collection of people. Object a in group A undergoes a state change in response to an operation. In the second embodiment, the state change may be called firing. The operation may be performed manually or by a device such as a computer based on a schedule. In the second embodiment, object a has two states, ON and OFF, and firing indicates switching between ON and OFF.
[0060] Object b in group B fires in response to the firing of the related object a. In the second embodiment, object b has two states, ON and OFF, and firing indicates switching between ON and OFF. Graph 131 represents object a related to object b by an edge. An object a may be related to two or more objects b, and an object b may be related to two or more objects a.
[0061] Node 133-1 is connected to nodes 132-1 to 132-3 by edges. Node 133-2 is connected to nodes 132-2 and 132-4 by edges. Node 133-3 is connected to node 132-4 by edges. Node 133-4 is connected to nodes 132-2 and 132-5 by edges. However, the objects in group A are not related to each other, and there are no edges between nodes 132-1 to 132-5. Furthermore, the objects in group B are not related to each other, and there are no edges between nodes 133-1 to 133-4. Therefore, graph 131 is a bipartite graph.
[0062] As described above, an object b may be associated with two or more objects a. In this case, the ignition condition for object b may be AND or OR. An AND condition is that all of the two or more associated objects a have fired. An OR condition is that at least one of the two or more associated objects a has fired. Whether the ignition condition is AND or OR depends on the system to be optimized. Therefore, the ignition condition is specified by the user. In the second embodiment, both optimization of the AND condition and optimization of the OR condition will be described. Note that in the second embodiment, it is assumed that the ignition condition is common to all objects b.
[0063] A cost C is defined for object a in group A. The cost C may change depending on the firing of object a, and may differ depending on the object a. The cost C indicates the unit time cost incurred by object a per unit time. In the second embodiment, in order to simplify the optimization problem, the basic cost of either before or after firing is regarded as 0, and the difference in the cost that changes due to firing is regarded as cost D.
[0064] Furthermore, a cost D is defined for object b in group B. The cost D may change due to the ignition of object b, and may differ depending on the object b. The cost D indicates the unit time cost incurred by object b per unit time. In the second embodiment, in order to simplify the optimization problem, the basic cost of either before or after ignition is regarded as 0, and the difference in the cost that changes due to ignition is regarded as the cost D.
[0065] In the second embodiment, as an example, consider the following typical stopping order problem. At the start time, all objects a are ON, and all objects b are ON. At the end time, all objects a are OFF, and all objects b are OFF. During the transition period from the start time to the end time, the user operates one object a per unit time, thereby switching the state of the operated object a from ON to OFF. Object b switches from ON to OFF when all related objects a or at least one of the related objects a is turned OFF.
[0066] The OFF unit time cost of object a is less than or equal to the ON unit time cost. Cost C is the difference obtained by subtracting the OFF unit time cost from the ON unit time cost, and takes a value greater than or equal to 0. In the second embodiment, for simplicity of explanation, the cost C of all objects a is 0. Also, the OFF unit time cost of object b is less than the ON unit time cost. Cost D is the difference obtained by subtracting the OFF unit time cost from the ON unit time cost, and takes a value greater than 0. In the example of the second embodiment, for simplicity of explanation, the cost D of all objects b is 1.
[0067] The unit time cost of the entire system is the sum of the cost C of unfired object a and the cost D of unfired object b. The unit time cost at the initial time is the sum of the costs C of all objects a and the costs D of all objects b. The unit time cost at the end time is 0. Depending on the operation order of group A, the firing timing of each object b changes, and the curve showing the time change in the unit time cost changes. The information processing device 100 determines an appropriate operation order for group A so that the system cost obtained by integrating the unit time cost from the initial time to the end time is small.
[0068] The schedule optimization according to the second embodiment can be applied to various optimization problems, such as the following examples. In the case of a network equipment shutdown problem, object a is a line and object b is a line switch. In object b, the unit time cost decreases from 1 to 0 when it is fired. The firing condition for object b is AND. The information processing device 100 determines the order in which lines are shut down in order to minimize the system cost.
[0069] In the case of the factory equipment shutdown problem, object a is a manufacturing device and object b is a product. In object b, ignition reduces the unit time profit from 1 to 0. The profit may be defined as a negative cost. The ignition condition for object b is an OR condition. The information processing device 100 determines the order in which the manufacturing devices are shut down with the aim of maximizing the system profit. In the case of the factory equipment restart problem, object a is a manufacturing device and object b is a product. In object b, ignition increases the unit time profit from 0 to 1. The ignition condition for object b is an AND. The information processing device 100 determines the order in which the manufacturing devices are restarted with the aim of maximizing the system profit.
[0070] FIG. 4 is a diagram showing a first example of a change in unit time cost over time. A curve 141 shows the change in the unit time cost of the entire system when the ignition condition for object b is set to AND and operations are performed on objects a1, a2, a3, a4, and a5 in this order for the graph 131 above.
[0071] At time 1, object a1 fires. The cost C1 is 0 and there is no object b to fire, so the unit time cost remains unchanged. Next, object a2 fires at time 2. The cost C2 is 0 and there is no object b to fire, so the unit time cost remains unchanged. Next, object a3 fires at time 3. At this point, object b1 fires, and the cost D1 is 1, so the unit time cost decreases by 1.
[0072] Next, object a4 fires at time 4. At this point, objects b2 and b3 fire, and since costs D2 and D3 are 1, the unit time cost decreases by 2. Finally, object a5 fires at time 5. At this point, object b4 fires, and since cost D4 is 1, the unit time cost decreases by 1. The area under curve 141 is the system cost. However, curve 141 is not the curve with the smallest system cost.
[0073] FIG. 5 is a diagram illustrating an example of a system to be scheduled. As described above, an example of a system to be optimized is a circuit-switched system. Graph 131 may show the structure of a circuit-switched system. The circuit-switched system includes circuit switches 21-26 and lines 31-34. Each of the lines 31-34 is a connection that connects two terminal devices via one or more circuit switches. Each of the circuit switches 21-26 transfers signals of one or more lines.
[0074] Line 31 passes through circuit switches 21, 25, and 26. Line 32 passes through circuit switches 22 to 26. Line 33 passes through circuit switches 22, 23, and 27. Line 34 passes through circuit switches 25, 26, and 27. Lines 31 to 34 correspond to object a. Line switches 21 to 26 correspond to object b. Each of circuit switches 21 to 26 incurs a unit time cost while in operation. Each of circuit switches 21 to 26 can be removed when there are no more lines to transfer signals. The information processing device 100 determines the order in which lines 31 to 34 are migrated to another system so that as many of circuit switches 21 to 27 as possible can be removed early.
[0075] Next, a schedule search in the case where the firing condition is AND will be described. The information processing device 100 calculates T shown in formula (1) for each unfired object b. b R is a set of objects a that are related to object b. A is the set of objects a that have already fired. Therefore, T indicates the number of objects a that have not yet fired among the objects a related to object b. If an object b fires at the same time as another object b fires, the T of the other object b becomes 0.
[0076]
number
[0077] In addition, the information processing device 100 calculates G shown in formula (2) for each unfired object b. b is the cost of object b. a is the cost of object a. Therefore, G is the cost of object b, D b and the cost C of object a that requires the operation a G is the sum of the total time costs of the entire system that are reduced by operating all related unfired objects a.
[0078]
number
[0079] Then, the information processing device 100 calculates Z b BigZ is a sufficiently large positive constant. If T is 0, Z b is BigZ. If T is not 0, then Z b is calculated by dividing G by T. Therefore, the larger G is, the greater Z b The larger and the smaller T, the greater Z b is large.
[0080]
number
[0081] The information processing device 100 is Z b The object b having the largest value is selected as the object b to be fired next. The information processing device 100 selects an unfired object a related to the selected object b as the object a to be operated next. When there are two or more related unfired objects a, the two or more objects a are operated in order.
[0082] FIG. 6 is a diagram showing an example of visualization of the index Z. The above Z bcorresponds to the downward slope (the value obtained by inverting the positive and negative of the slope) in a two-dimensional plane where the horizontal axis is time and the vertical axis is the unit time cost of the system. The downward slope is the average decrease in the unit time cost per operation of object a. Z b Selecting the object b with the largest corresponds to maximizing the average decrease.
[0083] For example, point 144 represents the current time and the current unit time cost. Point 145 represents the firing time and unit time cost after firing when a certain object b is fired next. Point 146 represents the firing time and unit time cost when an object b different from point 145 is fired next. Point 147 represents the firing time and unit time cost when an object b different from points 145 and 146 is fired next. Points 145 to 147 have different coordinates on the horizontal axis because different numbers of objects a are required to be operated.
[0084] For object b indicated by point 145, the number of objects a to be operated is small, but the reduction in the unit time cost is also small. For object b indicated by point 146, the reduction in the unit time cost is large, but the number of objects a to be operated is large. For object b indicated by point 147, the balance between the number of objects a to be operated and the reduction in the unit time cost is good, and the downward slope as viewed from point 144 is the largest. Therefore, the information processing device 100 selects object b indicated by point 147.
[0085] Each time the information processing device 100 selects one of the objects b to be fired next, it calculates the Z b At this time, the object a required to ignite the selected object b is considered to have already been ignited. b Recalculating Z b Then, the process repeats until all objects b are fired.
[0086] However, Z b There may be two or more objects b with the largest value. In that case, the information processing device 100 continues searching for the operation order of group A, assuming that the object b has been selected for each of the two or more objects b. Therefore, the information processing device 100 branches the search path for the operation order. When the search path branches, the information processing device 100 evaluates the operation order up to a certain point from the viewpoint of system cost, and performs pruning to discard the search path that is found to be less advantageous than the other search paths.
[0087] As a result, the operation order for group A is ultimately narrowed down to one. However, information processing device 100 may appropriately prune search routes so that the number of branched search routes does not increase too much. For example, information processing device 100 may randomly discard a fixed percentage of branched search routes, or may randomly discard a fixed number of search routes when the number of branched search routes exceeds a threshold.
[0088] FIG. 7 is a diagram illustrating a first example of a schedule search. Table 151 is O A , O B and Q. If the search path is branched, table 151 contains two or more records. A is a permutation of object a, which indicates the order of operations on object a. B is the permutation of object b, and indicates the firing order of object b. Q is the evaluation value of the operation order during the search, and is the cumulative unit time cost of the entire system from the start time to the current time. The smaller Q is, the higher the evaluation of the operation order. Table 152 shows Z calculated for each object b belonging to group B. b Shows.
[0089] Regarding the above-mentioned graph 131, the information processing device 100 A Initialize to empty, and Q BThe information processing device 100 initializes Z for each of the objects b1 to b4. b Calculate the Z of object b1. b is 1 / 3=0.333, Z of object b2 b is 1 / 2=0.500, Z of object b3 b is 1 / 1=1.000, Z of object b4 b is 1 / 2 = 0.500.
[0090] The information processing device 100 is Z b Then, the information processing device 100 selects the object b3 having the largest Q and selects the object a4 that requires an operation to ignite the object b3. B Add object b3 to the end of O A In addition, the information processing apparatus 100 determines that the unit time cost from the start time to the ignition time of object b3 is 4, and adds this unit time cost to Q.
[0091] Next, the information processing device 100 calculates the Z b At this time, objects a4 and b3 are considered to have been fired. b is 1 / 3=0.333, Z of object b2 b is 1 / 1=1.000, Z of object b4 b is 1 / 2 = 0.500.
[0092] The information processing device 100 is Z b The information processing device 100 selects the object b2 having the largest Q and selects the object a2 that requires an operation to ignite the object b2. B Add object b2 to the end of O A In addition, the information processing apparatus 100 determines that the unit time cost from the firing time of the object b3 to the firing time of the object b2 is 3, and adds this unit time cost to Q.
[0093] Next, the information processing device 100 calculates the Z b At this time, objects a2, a4, b2, and b3 are considered to have been fired. Z of object b1 b is 1 / 2=0.500, Z of object b4 b is 1 / 1 = 1.000.
[0094] The information processing device 100 is Z b Then, the information processing device 100 selects the object b4 having the largest Q and selects the object a5 that requires an operation to ignite the object b4. B Add object b4 to the end of O A In addition, the information processing apparatus 100 determines that the unit time cost from the firing time of the object b2 to the firing time of the object b4 is 2, and adds this unit time cost to Q.
[0095] Finally, the information processing device 100 selects the remaining object b1, and selects objects a1 and a3 that require an operation to ignite the object b1. B Add object b1 to the end of O A Add objects a1 and a3 to the end of O. A The order of addition is cost C a However, the order is descending for cost C a The order of objects a that have the same value may be determined randomly.
[0096] Furthermore, the information processing device 100 determines that the change in unit time cost from the firing time of object b4 to the firing time of object b1 is 1,1, and adds the sum of these unit time costs to Q. As a result, the operation order of group A is determined to be objects a4, a2, a5, a1, and a3. The final Q corresponds to an estimated value of the system cost. However, when the firing condition is AND and two or more objects b fire simultaneously due to the firing of an object a, Q may not represent the correct system cost.
[0097] FIG. 8 is a diagram showing a second example of a change in unit time cost over time. Curve 142 shows the change in unit time cost for graph 131 when the firing condition for object b is AND and operations are performed on objects a4, a2, a5, a1, and a3 in that order. Object a4 fires at time 1. At this point, object b3 fires, and the unit time cost decreases by 1. Next, object a2 fires at time 2. At this point, object b2 fires, and the unit time cost decreases by 1.
[0098] Next, object a5 fires at time 3. At this point, object b4 fires, and the unit time cost decreases by 1. Next, object a1 fires at time 4. Here, the unit time cost remains unchanged. Then, object a3 fires at time 5. At this point, object b1 fires, and the unit time cost decreases by 1. In the case of curve 141 shown in FIG. 4, the system cost is 16. On the other hand, in the case of curve 142 shown in FIG. 8, the system cost is 11, which is smaller than that of curve 141.
[0099] Next, a schedule search in the case where the firing condition is OR will be described. FIG. 9 is a diagram showing a second example of a graph showing object relationships. In the following, a schedule search for an OR condition will be described using graph 134. Graph 134 includes nodes 135-1 to 135-3 and 136-1 to 136-13. Nodes 135-1 to 135-3 indicate objects a1 to a3 that belong to group A. Nodes 136-1 to 136-13 indicate objects b1 to b3 that belong to group B. 13 The cost C of objects a1 to a3 a is 0, and objects b1~b 13 Cost of D b is 1. Objects b1 to b6 are related to object a1. Objects b4 to b 10 is related to object a2. Object b8~b 13 is associated with object a3.
[0100] If the firing condition is AND, for each object b, Z b is calculated for each object a, whereas if the firing condition is OR, Z a The information processing device 100 calculates Z a b' is an unfired object b among objects b related to object a. Therefore, Z a is the cost C of object a a and the cost of object b that fires when object a fires, D b The sum of Z a represents the reduction in the unit time cost of the entire system when object a fires.
[0101]
number
[0102] The information processing device 100 is Z aThe object a having the largest value is selected as the object a to be operated next. The information processing device 100 selects an unfired object b related to the selected object a as the object b to be fired next. When there are two or more unfired related objects b, the two or more objects b actually fire simultaneously, so the order of the objects b in the permutation may be random.
[0103] Each time the information processing device 100 selects one of the objects a to be operated next, the information processing device 100 performs Z a At this time, the object b related to the selected object a is considered to have already fired. The information processing device 100 recalculates Z a Recalculating Z a The process is repeated until all objects a are selected.
[0104] However, Z a There may be two or more objects a with the largest value. In that case, the information processing device 100 continues searching for the operation order of group A, assuming that the object a has been selected for each of the two or more objects a. As in the case where the ignition condition is AND, when the search path branches, the information processing device 100 evaluates the operation order up to a certain point from the perspective of system cost, and performs pruning to discard search paths that are found to be less advantageous than other search paths. However, the information processing device 100 may prune the search path as appropriate so as to prevent the number of branched search paths from increasing too much.
[0105] FIG. 10 is a diagram illustrating a second example of a schedule search. Table 153 is O A , O B and Q. If the search path is branched, table 153 contains two or more records. Table 154 contains Z calculated for each object a belonging to group A. a Shows.
[0106] Regarding the above graph 134, the information processing device 100 A Initialize to empty, and Q B The information processing device 100 initializes Z to null and Q to 0 for each of the objects a1 to a3 included in the graph 134. a Calculate the Z of object a1. a is 6, Z of object a2 a is 7, Z of object a3 a is 6.
[0107] The information processing device 100 is Z a Select object a2 with the largest value, and select objects b4 to b5 that will fire in response to the firing of object a2. 10 The information processing device 100 selects A Add object a2 to the end of Q B Object b4~b at the end of 10 Add. Q B Objects b4~b in 10 The order of these may be any order. Furthermore, the information processing apparatus 100 identifies that the unit time cost from the start time to the ignition time of the object a2 is 13, and adds this unit time cost to Q.
[0108] Next, the information processing device 100 calculates the Z a Recalculate Z of object a1. a is 3, Z of object a3 a is 3. Here, Z a There are two objects a1 and a3 with the largest object a. Therefore, the information processing device 100 divides the records in the table 153 into two.
[0109] In the first record, the information processing device 100 selects an object a1, and selects objects b1 to b3 that will be newly fired in response to the firing of the object a1. A Add object a1 to the end of Q BAdd objects b1 to b3 to the end of Q B The order of the objects b1 to b3 in may be any order. Furthermore, the information processing device 100 specifies that the unit time cost from the firing time of the object a2 to the firing time of the object a1 is 6, and adds this unit time cost to Q.
[0110] In the second record, the information processing device 100 selects the object a3 and sets up the object b that will be newly fired in response to the firing of the object a3. 11 ~b 13 The information processing device 100 selects A Add object a3 to the end of Q B At the end of 11 ~b 13 Add. Q B Object b in 11 ~b 13 The order of these may be any order. Furthermore, the information processing apparatus 100 identifies that the unit time cost from the firing time of the object a2 to the firing time of the object a3 is 6, and adds this unit time cost to Q.
[0111] At this point, there are two permutations O A The evaluation value Q of each of the two permutations O A Therefore, the information processing device 100 selects the two permutations O A Continue your exploration of each. In the first record, the information processing device 100 selects the object a3 and sets up the object b that will be newly fired in response to the firing of the object a3. 11 ~b 13 The information processing device 100 selects A Add object a3 to the end of Q B At the end of 11 ~b 13 Add. Q B Object b in 11 ~b 13The order of these may be any order. Furthermore, the information processing apparatus 100 identifies that the unit time cost from the firing time of the object a1 to the firing time of the object a3 is 3, and adds this unit time cost to Q.
[0112] In the second record, the information processing device 100 selects the object a1, and selects objects b1 to b3 that will be newly fired in response to the firing of the object a1. A Add object a1 to the end of Q B Add objects b1 to b3 to the end of Q B The order of the objects b1 to b3 in may be any order. Furthermore, the information processing device 100 specifies that the unit time cost from the firing time of the object a3 to the firing time of the object a1 is 3, and adds this unit time cost to Q.
[0113] At the end of the day, there are two permutations O A The evaluation value Q of each of the two permutations O A There is no superiority or inferiority between them. Therefore, for example, the information processing device 100 determines the operation order of group A to be objects a2, a1, and a3 based on the first record. The final Q corresponds to the system cost. Unlike the case where the ignition condition is AND, Q represents the correct system cost.
[0114] FIG. 11 is a diagram illustrating a third example of a change in unit time cost over time. A curve 143 shows the change in unit time cost for the graph 134 when the ignition condition for object b is set to OR and operations are performed on objects a2, a1, and a3 in that order. Object a2 ignites at time 1. At this point, objects b4 to b 10 At time 2, object a1 fires. At this point, objects b1 to b3 fire, and the unit time cost decreases by 3. Then, at time 3, object a3 fires. At this point, object b 11 ~b 13fires, and the unit time cost decreases by 3. According to curve 143, the system cost is 22.
[0115] FIG. 12 is a diagram showing a comparative example of system costs. Table 155 shows a comparison result between the schedule generation method for AND conditions according to the second embodiment and the heuristics described in the above-mentioned Patent Document 4. The system to be optimized is a circuit-switched system including a plurality of lines and a plurality of circuit switches.
[0116] In the first comparative example, the number of lines is 300 and the number of line switches is 25. According to the heuristics described in Patent Document 4, a schedule with a system cost of 6166 is generated. On the other hand, according to the schedule generation method of the second embodiment, a schedule with a system cost of 5202 is generated. The ratio of the latter system cost to the former system cost is approximately 84%, and the second embodiment improves the optimization accuracy.
[0117] In the second comparative example, the number of lines is 595 and the number of line switches is 35. According to the heuristics described in Patent Document 4, a schedule is generated with a system cost of 18245. On the other hand, according to the schedule generation method of the second embodiment, a schedule is generated with a system cost of 14284. The ratio of the latter system cost to the former system cost is about 78%, and the optimization accuracy is improved by the second embodiment.
[0118] Next, the functions and processing procedures of the information processing device 100 will be described. FIG. 13 illustrates an example of functions of the information processing apparatus according to the second embodiment. The information processing device 100 has a graph receiving unit 121, a graph storage unit 122, a search unit 123, a schedule storage unit 124, and a schedule transmission unit 125. The graph storage unit 122 and the schedule storage unit 124 are implemented, for example, using the RAM 102 or the HDD 103. The graph receiving unit and the schedule transmission unit 125 are implemented, for example, using the CPU 101, the communication interface 107, and a program. The search unit 123 is implemented, for example, using the CPU 101 and a program.
[0119] The graph receiving unit 121 receives graph data representing a bipartite graph such as the graphs 131 and 134. The graph data includes a plurality of nodes representing objects and a plurality of edges connecting the plurality of nodes. The graph data also includes a cost assigned to each node. The graph data also includes a flag indicating whether the firing condition is AND or OR. The graph data is created by a user, for example, so as to represent a system to be optimized. The graph receiving unit 121 may accept the graph data from a user, or may receive the graph data from another information processing device. The graph receiving unit 121 may provide a user interface that supports the user in creating the graph data.
[0120] The graph storage unit 122 stores the graph data received by the graph receiving unit 121. The search unit 123 executes a schedule generation algorithm with an AND relationship or a schedule generation algorithm with an OR relationship, which will be described later, according to a flag included in the graph data. The search unit 123 generates schedule data and stores it in the schedule storage unit 124. The schedule data includes an operation order of objects in group A indicated by the graph data, and a system cost obtained by accumulating the unit time cost from the start time to the end time.
[0121] The schedule storage unit 124 stores the schedule data generated by the search unit 123. The schedule transmission unit 125 outputs the generated schedule data. The schedule transmission unit 125 may display the schedule data on the display device 111, or may transmit the schedule data to another information processing device.
[0122] FIG. 14 is a flowchart showing an example of a procedure for generating a schedule having an AND relationship. (S10) The search unit 123 reserves two storage areas, "Stack 1" and "Stack 2". The search unit 123 searches for the initial state record (O A ={},O B ={},Q=0) and save it in stack 1. This initializes stacks 1 and 2.
[0123] (S11) The search unit 123 selects an object b that will be fired next from the group B. Here, two or more candidates may be selected. A record indicating the selection result of the object b is stored in the stack 2. The procedure for selecting an object will be described later.
[0124] (S12) The search unit 123 rearranges the records stored in stack 2, and moves the records to be kept to stack 1. At this time, the search unit 123 may delete a record that indicates a permutation of object b that is less favorable than other records, and may randomly delete some records to adjust the number of records. The procedure for rearranging the stack will be described later.
[0125] (S13) The search unit 123 determines whether the length of the permutation indicating the firing order of object b is equal to the size of group B (the number of objects b included in group B). If the length of the permutation is equal to the size of group B, the process proceeds to step S14. If the length of the permutation is smaller than the size of group B, the process returns to step S11.
[0126] (S14) Here, only one record is stored in stack 1. Search unit 123 calculates the system cost based on the operation order of object a indicated by the stored record. The procedure for calculating the system cost will be described later.
[0127] FIG. 15 is a flowchart showing an example of a procedure for selecting objects having an AND relationship. The selection of objects in the AND relationship is performed in step S11 above. (S20) The search unit 123 determines whether or not the stack 1 is empty. If the stack 1 is empty, the object selection process ends, and if it is not empty, the process proceeds to step S21.
[0128] (S21) The search unit 123 extracts one record from the stack 1 and A ,O B , Q. The search unit 123 extracts the extracted O A Let nowR be the set of elements contained in A , extracted O A NowO A , extracted O B NowO B ,Let the extracted Q be nowQ.
[0129] (S22) The search unit 123 calculates T shown in formula (1) and G shown in formula (2) for each of the unfired objects b, and calculates Z shown in formula (3) from T and G. b Calculate. (S23) The search unit 123 searches for the unfired object b by Z b Identify the maximum value of as maxZ.
[0130] (S24) The search unit 123 selects one of the unfired objects b. The search unit 123 searches the Z b It is determined whether Z is the maxZ specified in step S23. b If Z is maxZ, the process proceeds to step S25. b If is smaller than maxZ, the process proceeds to step S29.
[0131] (S25) The search unit 123 calculates a set nextA of objects a that need to be additionally fired in order to fire object b, according to formula (5).
[0132]
number
[0133] (S26) The search unit 123 searches the elements of nextA for cost C a Sort in descending order. (S27) The search unit 123 searches the elements of nextA for nowR A Add to nextR A In addition, the search unit 123 calculates the element string sorted in step S26 as nowO A Add it to the end of nextO A In addition, the search unit 123 calculates the selected object b as nowO B Add it to the end of nextO B Calculate.
[0134] In addition, the search unit 123 calculates nextQ according to the formula (6). In the formula (6), na j is the j-th element in the sequence sorted in step S26, and C(na j ) is the object na j The second term on the right hand side is the total cost of the unfired object a. The third term on the right hand side is the stepwise sum of the unit time costs of the object a that will be fired this time. The fourth term on the right hand side is the total cost of the unfired object b.
[0135]
number
[0136] (S28) The search unit 123 searches for the record (nextO A ,nextO B,nextQ) and store the generated record in stack 2. (S29) The search unit 123 judges whether or not all of the unfired objects b have been selected in step S24. If all of the objects b have been selected, the process returns to step S20. If there are any unselected objects b, the process returns to step S24.
[0137] FIG. 16 is a flowchart showing an example of a procedure for rearranging a stack. The stack arrangement is performed in step S12 described above. (S30) The search unit 123 determines whether the stack 2 is empty. If the stack 2 is empty, the stack arrangement process ends, and if it is not empty, the process proceeds to step S31.
[0138] (S31) The search unit 123 extracts one record from the stack 2 and A ,O B , Q. The search unit 123 extracts the extracted O A CurO A , extracted O B CurO B ,The extracted Q is called curQ.
[0139] (S32) The search unit 123 A O that contains all the elements in A It is determined whether a record having the above expression is in stack 1. If the corresponding record is in stack 1, the process proceeds to step S33, and if not, the process proceeds to step S36.
[0140] (S33) The search unit 123 judges whether Q of the record corresponding to step S32 is smaller than curQ. If Q is smaller than curQ, the process returns to step S30, and if Q is equal to or larger than curQ, the process proceeds to step S .
[0141] (S34) The search unit 123 judges whether Q of the record corresponding to step S32 is larger than curQ. If Q is larger than curQ, the process proceeds to step S35, and if Q is the same as curQ, the process proceeds to step S36.
[0142] (S35) The search unit 123 deletes the record of step S32 from the stack 1. (S36) The search unit 123 searches for the record (curO A ,curO B , curQ) and store the generated record in stack 1. Then, the process returns to step S30.
[0143] FIG. 17 is a flowchart showing an example of a procedure for calculating the system cost. (S40) The search unit 123 initializes S to 0 and L to an empty set. The search unit 123 also initializes U as shown in formula (7). The initial value of U is the cost C a and the cost of all objects b, D b is the sum of.
[0144]
number
[0145] (S41) The search unit 123 extracts a record from the stack 1 and A At the start of the system cost calculation, stack 1 contains only one record. (S42) The search unit 123 adds U to S.
[0146] (S43) The search unit 123 A Extract one object a from the top of the list and calculate the cost C of the extracted object a. a Subtract from U. (S44) The search unit 123 searches for an object b that will ignite in response to the ignition of the object a extracted in step S43. If there is an object b that will ignite, the search unit 123 searches for a cost Db Subtract from U.
[0147] (S45) The search unit 123 adds the extracted object a to the end of L. (S46) The search unit 123 A If all objects a have been extracted, the process proceeds to step S47, and if there are any objects a that have not been extracted, the process returns to step S42.
[0148] (S47) The search unit 123 generates schedule data indicating a permutation L indicating the operation order of the object a and a system cost S, and outputs the schedule data. FIG. 18 is a flowchart showing an example of a procedure for generating a schedule of OR relationships.
[0149] (S50) The search unit 123 reserves two storage areas, "Stack 1" and "Stack 2". The search unit 123 searches for the initial state record (O A ={},O B ={},Q=0) and save it in stack 1. This initializes stacks 1 and 2.
[0150] (S51) The search unit 123 selects an object a that will be fired next from the group A. Here, two or more candidates may be selected. A record indicating the selection result of the object a is stored in the stack 2. The procedure for selecting an object will be described later.
[0151] (S52) The search unit 123 rearranges the records stored in stack 2, and moves the records to be kept to stack 1. At this time, the search unit 123 may delete records that indicate permutations of object a that are less favorable than other records, and may randomly delete some records to adjust the number of records. The procedure for rearranging the stack is the same as that in FIG. 16.
[0152] (S53) The search unit 123 determines whether the length of the permutation indicating the firing order of object a is equal to the size of group A (the number of objects a included in group A). If the length of the permutation is equal to the size of group A, the process proceeds to step S54. If the length of the permutation is smaller than the size of group A, the process returns to step S51.
[0153] (S54) Here, only one record is stored in stack 1. The search unit 123 calculates the system cost based on the operation order of object a indicated by the stored record. The procedure for calculating the system cost is the same as that in FIG. 17. However, the search unit 123 may use Q included in the record as the system cost S.
[0154] FIG. 19 is a flowchart showing an example of a procedure for selecting an object having an OR relationship. The selection of objects in the AND relationship is performed in step S51 described above. (S60) The search unit 123 determines whether or not the stack 1 is empty. If the stack 1 is empty, the object selection process ends, and if it is not empty, the process proceeds to step S61.
[0155] (S61) The search unit 123 extracts one record from the stack 1 and A ,O B , Q. The search unit 123 extracts the extracted O A Let nowR be the set of elements contained in A , extracted O A NowO A , extracted O B NowO B ,Let the extracted Q be nowQ.
[0156] (S62) The search unit 123 searches for each unfired object a using Z a Calculate. (S63) The search unit 123 searches for the Z a Identify the maximum value of as maxZ.
[0157] (S64) The search unit 123 selects one unfired object a. The search unit 123 searches the Z a It is determined whether Z is the maxZ specified in step S63. a If Z is maxZ, the process proceeds to step S65. a If is smaller than maxZ, the process proceeds to step S68.
[0158] (S65) The search unit 123 calculates a set nextB of objects b that will be newly fired in response to the firing of the selected object a. B Not included in and A b is a set of objects b that includes the above object a.
[0159] (S66) The search unit 123 searches the selected object a in the nowO A Add it to the end of nextO A In addition, the search unit 123 calculates nextB as nowO B Add it to the end of nextO B The order in which the objects b are added may be arbitrary.
[0160] The search unit 123 also calculates nextQ according to formula (8). In formula (8), the second term on the right side is the total cost of objects a that have not yet fired before the object a selected in step S64 is fired. The third term on the right side is the total cost of objects b that have not yet fired before the object a selected in step S64 is fired.
[0161]
number
[0162] (S67) The search unit 123 searches for the record (nextO A ,nextO B ,nextQ) and store the generated record in stack 2. (S68) The search unit 123 judges whether or not all of the unfired objects a have been selected in step S64. If all of the objects a have been selected, the process returns to step S60. If there are any unselected objects a, the process returns to step S64.
[0163] As described above, the information processing device 100 of the second embodiment generates schedule data indicating an operation sequence for the object a in group A from graph data that models the system. At this time, the information processing device 100 searches for an operation sequence that reduces the system cost during the transition period in which all objects b in group B change state. This allows for the generation of efficient and useful schedule data.
[0164] Moreover, the information processing device 100 can apply the algorithm of the second embodiment to various optimization problems such as a network facility shutdown problem, a factory facility shutdown problem, and a factory facility restart problem. The information processing device 100 searches for an operation sequence for object a using different algorithms depending on whether the condition for the state change of object b is AND or OR. This generates appropriate schedule data that meets the system requirements.
[0165] In addition, in the case of an AND condition, the information processing device 100 sets an index value Z b Calculate Z b Determine the order of operations for object a so that object b with the largest Z will change state next. b is inversely proportional to the number of objects a that are operated to change the state of object b, and is proportional to the reduction in unit time cost by performing such operations. This allows the efficiency of operations to be evaluated and the optimization accuracy to be improved.
[0166] In addition, in the case of an OR condition, the information processing device 100 assigns an index value Z a Calculate Z a Determine the order of operations so that object a with the largest Z is operated on next.a represents the reduction in unit time cost by operating object a. This allows the efficiency of the operation to be evaluated and the optimization accuracy to be improved.
[0167] Furthermore, when there are two or more objects with the maximum index value, the information processing device 100 searches for the subsequent operation sequence for each of the two or more objects, and narrows down the operation sequence candidates based on the superiority or inferiority of the subsequent operation sequence. This reduces the risk of missing a suitable operation sequence that is more advantageous than other operation sequences in the latter half of the search. Furthermore, when there are many branched candidates, the information processing device 100 randomly discards the candidates. This allows schedule data to be generated with a realistic calculation time and calculation load. [Explanation of symbols]
[0168] 10. Information processing device 11 Storage section 12 Processing section 13 System Data 14-1~14-4,15-1~15-3 Objects 16-1~16-3 Index value 17 Schedule Data
Claims
1. a process of acquiring system data indicating a system including a plurality of first objects, each of which undergoes a first state change in response to an operation, and a plurality of second objects, each of which is associated with one or more first objects among the plurality of first objects and each of which undergoes a second state change in response to the first state change of the associated one or more first objects, and which assigns a cost that changes in response to the second state change to each of the plurality of second objects; a process of calculating, for each of the plurality of second objects based on the system data, the number of unchanged first objects among the one or more associated first objects to which the first state change has not occurred, and an amount of change in an overall cost defined for the system using the costs of the plurality of second objects, the amount of change being determined when the operation is performed on the unchanged first object, and calculating an index value that is larger the smaller the number and the larger the amount of change; generating schedule data indicating an order of the operations on the plurality of first objects such that the second state change of a second object having a larger index value among the plurality of second objects occurs preferentially; A schedule generation program that causes a computer to execute the above.
2. the generating process includes a process of recalculating the index value for an unselected second object every time one second object that causes the second state change is selected from the plurality of second objects; 2. The schedule generating program according to claim 1.
3. the generating process includes a process of, when the same index value is calculated for two or more second objects, generating two or more patterns indicating results of recalculating the index value for the unselected second object by selecting each of the two or more second objects, and determining an order in which to cause the second state changes of the two or more second objects based on a comparison of the two or more patterns.
3. The schedule generating program according to claim 2.
4. the system data assigning a further cost to each of the plurality of first objects, the total cost being further defined using the further costs; 2. The schedule generating program according to claim 1.
5. The index value is calculated by dividing the amount of change by the number of pieces.
2. The schedule generating program according to claim 1.
6. a process of acquiring system data indicating a system including a plurality of first objects, each of which undergoes a first state change in response to an operation, and a plurality of second objects, each of which is associated with one or more first objects among the plurality of first objects and each of which undergoes a second state change in response to the first state change of the associated one or more first objects, and which assigns a cost that changes in response to the second state change to each of the plurality of second objects; a process of calculating, for each of the plurality of second objects based on the system data, the number of unchanged first objects among the one or more associated first objects to which the first state change has not occurred, and an amount of change in an overall cost defined for the system using the costs of the plurality of second objects, the amount of change being determined when the operation is performed on the unchanged first object, and calculating an index value that is larger the smaller the number and the larger the amount of change; generating schedule data indicating an order of the operations on the plurality of first objects such that the second state change of a second object having a larger index value among the plurality of second objects occurs preferentially; A schedule generation method executed by a computer.
7. a storage unit that stores system data indicating a system including a plurality of first objects, each of which undergoes a first state change in response to an operation, and a plurality of second objects, each of which is associated with one or more first objects among the plurality of first objects and each of which undergoes a second state change in response to the first state change of the associated one or more first objects, and that assigns a cost that changes in response to the second state change to each of the plurality of second objects; a processor for calculating, based on the system data, for each of the plurality of second objects, a number of unchanged first objects among the one or more associated first objects for which the first state change has not occurred, and an amount of change in an overall cost defined for the system using the costs of the plurality of second objects, the amount of change being when the operation is performed on the unchanged first objects, calculating an index value that is larger the smaller the number and the larger the amount of change, and generating schedule data indicating an order of the operations on the plurality of first objects such that the second state change occurs preferentially for second objects having the larger index value among the plurality of second objects; An information processing device having the above configuration.
Citation Information
Patent Citations
Change management system, change management method, and change management program
JP2015215887A
Resource assignment management device, and service chaining system
JP2017079352A
Kanban control cycle system
US20070005411A1
Circuit migration sequence generation for network modernization
US20220094571A1