Method for resource allocation and scheduling, and system therefor

Abstract: The analyzing method for resource allocation and scheduling problem according to the present invention enhances simplification and speed-up of the process without employing the linear programming method, but based on the experimental method. The present invention uses a network consisting of nodes and branches for a model of resource allocation. In a network composed of extracted strongly connected components, the weight of each branch is repeatedly determined in accordance with the flow chart of Fig. 1 so that the sum of the weight of the input branches is equal to the sum of the weight of the output branches at each node. Further, a branch having the maximum weight is detected in the network, so that the nodes are scheduled.

Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for resource allocation/analysis and scheduling, and a system therefor designed for optimum allocation of workers or materials in the production management, scheduling of the manufacturing process or computing procedures, or layout of logic diagrams or functional charts, etc. 2. Description of the Prior Art In order to analyze and solve the allocation of resources, scheduling problem or the maximum flow which can be represented by a network, there have been a method using the graphic theory and a linear programming method. According to the method using the graphic theory, a concept of a flow is employed to a network, so that the aforementioned kind of problem is analyzed as a problem of the flow. The problem of the maximum flow is one of the flow problems. The flow problem can be analyzed, for example, according to a procedure proposed by Dinic which is disclosed in "Graph theory with Exercises" by Eng. Dr. Masao Iri et al. published in 1983. According to the method by Dinic, the maximum flow from an entrance to an exit of the network is obtained by repeatedly searching for the shortest incrementable path among allowable flows set for each branch. A flow when the shortest incrementable path comes not to be present is regarded as the maximum flow. Meanwhile, according to the linear programming method, the relation between the inflow and outflow in the whole network or at each node, and the restrictions of the flow rate, etc. at each branch and a corresponding objective function are analyzed by a simplex method revealed in "Guide to Linear Programming Method" (1980), Karmarkar's method found in JP-A-02-244261 etc.. The simplex method is most general among the linear programming method, whereby various restrictions in the network are constructed into a model, so that a solution to make the objective function optimum is repeatedly selected thereby to obtain the optimum solution while a practicable solution to satisfy the restrictions is set as an initial value. Karmarkar's method is devised for speed-up of the linear programming method. Since the efficiency to select a solution is increased more than by simplex method, the number of repetitions until the optimum value is obtained is reduced so much as to obtain the solution at real time. Moreover, even the case where a solution is not possible to be obtained by Simplex method can be analyzed in accordance with Karmarkar's method. However, it is a disadvantage of the conventional analyzing method, i.e., method of Dinic that as the scale of the network is increased or becomes more complicated due to the repeated operations to search for the incrementable path from the entrance to the exit of the network, more time is required therefor. When a solution is repeatedly searched or a value of the objective function is calculated, in simplex method, it is necessary to operate matrices of degrees proportional to the number of the restrictions and therefore, the operating or computing time becomes proportional to a square of the number of the restrictions regardless of the scale of the network. In many cases, it is even impossible to obtain a solution. On the other hand, although Karmarkar's method realizes high-speed processing nearly at real time, operations of matrices are still necessary and the procedure therefor cannot help but being complicated as a consequence of the enlargement of the scale of the network. SUMMARY OF THE INVENTION An object of the present invention is therefore to provide a method for resource allocation and a scheduling method, and a system therefor, whereby an object to be analyzed is expressed by a network including a closed loop constituted of nodes and branches, and the weight of each branch is determined through partial search of the network, without employing the searching method of an incrementable path by Dinic or the like or linear programming method, but repeating simple procedures in a short time. In order to achieve the aforementioned object, according to the present invention, there is provided a resource allocation analyzing and/or scheduling system, comprising an input device for inputting various information for the resource allocation and/or scheduling, an output device for outputting the result and a computerized processor, wherein said processor processes a model represented by a graph consisting of nodes representing a status for resource allocation and/or resource scheduling and branches each having both ends at a pair of nodes and representing a status transition, and including at least one closed loop in accordance with a flow of procedures set beforehand, said flow of procedures comprising step 1 to select a node from which to start the operation of determining the weight of branches among all the nodes, and step 2 to classify the nodes depending on the determining state of the weight of input branches and output branches of the selected node, and to weight all the input branches x ji (to a node i) and output branches x ij (from a node i) of every classified pattern of nodes i so that Σx ij is as small as possible under a constraint represented by the following equation (1), Σ j x ij - Σ j x ji = 0 x ij ≥ 0 step 3 to determine the weight of all the branches in the graph by repeating steps 1 and 2, and step 4 to detect a branch with the maximum weight among all the branches. Further advantageous embodiments are defined in the dependent claims. According to the present invention, since nodes to be processed to determine the weight of branches in the resource allocation, scheduling or analysis of maximum flow are classified into patterns, the process can be carried out in the order of procedures proportional in number to the total number of branches. Therefore, the process becomes simple and time-saving without using a linear programming method. BRIEF DESCRIPTION OF THE DRAWINGS These and other objects and features of the present invention will become clear from the following description taken in conjunction with the preferred embodiments thereof with reference to the accompanying drawings throughout which like parts are designated by like reference numerals, and in which: Fig. 1 is a flow chart of an analyzing process for resource allocation according to Embodiment 1 of the present invention; Fig. 2 is a flow chart of a selecting process of a start node; Fig. 3 is a flow chart of a selecting process of a next node; Fig. 4 is a schematic diagram of a system carrying out the analyzing process for resource allocation according to the present invention; Fig. 5 is a block diagram of an object to be processed; Fig. 6 is a diagram explanatory of the traffic network used in Embodiment 1; Fig. 7 is a diagram explanatory of classified patterns of nodes depending on the weight of arks; Fig. 8 is a diagram of a node having a self-closed loop; Fig. 9 is a diagram showing the flow of nodes by oriented arks; Fig. 10 is a diagram showing how to determine the weight of a node of pattern 5; Fig. 11 is a diagram showing how to make preliminary decision when 1 is added as the weight and how to determine the weight; Fig. 12 is a diagram of an example of an error node; Fig. 13 is a diagram of how to select a next node when the parent-child relationship is present; Fig. 14 is a diagram showing the degree of congestion (strongly connected parts alone) in a road network of Embodiment 1; Fig. 15 is a flow chart of a scheduling process according to Embodiment 2 of the present invention; Fig. 16 is a diagram showing the assembling order of components according to Embodiment 2; Fig. 17 is a diagram showing the assembling priority of components in Embodiment 2; Fig. 18 is a flow chart of an analyzing process of the maximum flow in Embodiment 2; Fig. 19 is a diagram of the whole assembling process of components in Embodiment 2; Fig. 20 is a schematic flow chart of a process according to Embodiment 3 of the present invention; Fig. 21 is a diagram of logical circuits of Embodiment 3; Fig. 22 is a diagram showing the connecting relation of logic gates and signal lines in Fig. 21; Fig. 23 is a diagram of strongly connected components (a) and (b) included in Fig. 22; Fig. 24 is a diagram of a strongly connected component (c); Fig. 25 is a diagram of the degree of duplication of signal lines of each strongly connected component; and Fig. 26 is a diagram when the logic gates of Fig. 21 are arranged in a lateral direction. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Before the description of the present invention proceeds, a block diagram (Fig. 5) including loops employed for the description of the present invention will be depicted in the first place. Referring to Fig. 5, references 51 and 52 represent a block of an event and a connecting line between blocks 51 which expresses the transition from one event to the other, respectively. Therefore, in an example of a circuit diagram, the block 51 stands for a circuit element, and the connecting line 52 shows the flow of a signal. The present invention substantially handles such an object or event that can be represented by the aforementioned block diagram which can be converted to a strongly connected graph. However, a general block diagram is also acceptable if strongly connected components are extracted before application of the present invention. The above-mentioned strongly connected graph is an oriented graph always having one or more ways between two optional points in the graph. An algorithm to extract the strongly connected components is disclosed, for example, in "Basic Calculation" (1983), Iwanami Data Engineering 10, pp.57-60 or the like, and the description thereof will be abbreviated here. [Embodiment 1] In Embodiment 1, such a road network as indicated in Fig. 6 is employed. A junction 61 and a road 62 in Fig. 6 respectively correspond to the block 51 and connecting line 52 of Fig. 5. A car runs on a road in a direction of an arrow from one junction 61 to any other junction 61. The degree of congestion of the road 62 is detected on the assumption that the inflow and outflow of cars at each junction 61 are equal to each other, without any car coming in or out in the middle of the road 62. Fig. 6 can be regarded as a strongly connected graph 63 constituted of nodes (junctions) 61 and arcs (roads) 62. The degree of congestion of the road may be expressed as the weight of the arc, and therefore it can be obtained by a process to obtain the weight of the arc. Fig. 4 schematically shows the structure of an apparatus for performing the above process, namely, obtaining the degree of congestion. A net list of junctions or roads in the road network is read from an input device 21 as a file, copied by a processor 22 for a work station and stored in a memory 23 connected to the processor 22 along with the original thereof. The net list indicates the connecting relation of nodes and arcs. Each node has information of the arcs connected at an input side or an output side thereof as data, and each arc has information of the node connected at a source side or a sink side thereof. The following three formulae are set as the condition to determine the weight of all the arcs included in each loop of a strongly connected graph. That is, supposing that a set of nodes included in a strongly connected graph G=(U,E) is U, a set of arcs is E, and a complementary set of the arcs is /E, and an arc from a node (i) to a node (j) at a node i,j (i,jεU) is expressed by (i,j), and the weight of the arc is x ij , (No. 2) x ij ≥1 (i, j)∈E x ij =0 (i, j)∈/E At the node i, (No. 3) Σ j x ij - Σ j x ji = 0 (i, j)∈E, (j, i)∈E For an objective function, (No. 2) indicates that the weight of all the arcs present in the graph is not smaller than 1, and the weight of the arcs not present in the graph is rendered 0. (No. 3) means that the inflow is equal to the outflow for the weight of the arcs at each node since the graph is a strong connection graph. (No. 4) means that the sum of the weight of all the arcs in the network should be as small as possible, in other words, the weight should be set as small as possible, thereby preventing that the weight becomes a large value to disperse in the case where the objective graph includes a loop. The calculating method of the weight of all the arcs forming a loop in the graph with use of the above-described conditions will be discussed below with reference to a schematic flow chart of Fig. 1. For easy understanding of the description, nodes are classified into several patterns in accordance with the setting state of the weight of an input arc to a node and an output arc from the node. It is to be noted here that the setting weight of the arc is a virtual value. Therefore, it is quite important to set the weight positively without an assumption, or as close to a true value as possible if based on an assumption. Moreover, it is also essential to raise the possibility of determination of the weight of the arcs of a next node by increasing the setting number of times of the weight of the arcs of one node, namely, setting number of virtual values. Nodes are classified in a manner as follows, with the above fact taken in consideration. A node of a pattern 1 is a node having only one arc the weight of which is not yet determined among the whole of the arcs (input arcs + output arcs). The weight of this not-determined arc in the node of pattern 1 is determined to satisfy the above (No. 3), with the highest certainty. An example of the node of pattern 1 is indicated in Fig. 7(a). A node of a pattern 2 has one not-determined arc at one side and two or more not-determined arcs at the other side. Moreover, the total weight of the arcs at an input side the weight of which arcs is already determined is equal to the total weight of the arcs at an output side the weight of which is already determined. In the node of pattern 2, the presuming number of the weight is large and the weight of the not-determined arc at one side is supposed to be a large value. An example of this pattern of the node is shown in Fig. 7(b). The number of not-determined arcs at an input side is the same as that at an output side in a node of a pattern 3. Moreover, the total weight of the already-determined arcs at the input side is equal to the total weight of the already-determined arcs at the output side. However, the number of the not-determined arcs is not smaller than 2 both at the input side and at the output side. The node of pattern 3 has a large number of the weight to be presumed. An example of the node is illustrated in Fig. 7(c). A node of a pattern 4 is a node which has one not-determined arc at an input side and one not-determined arc at an output side. Since the weight of the one not-determined arc is easily determined from (No. 3) if the weight of the other not-determined arc is determined in the node of pattern 4, the node has higher certainty than the nodes of patterns 2, 3. However, the node of pattern 4 gives little influence to the other nodes. An example is shown in Fig. 7(d). Nodes not belonging to any of the foregoing patterns are classified into a pattern 5 (default), as in Fig. 7(e). Now, a process to detect an arc having the maximum weight at a strongly connected part will be depicted with reference to the above patterns of nodes. [Process 1] Removal of self-closed loop In a process 1, an arc or arcs forming a self-closed loop is detected and removed from the graph. The self-closed loop is such one as designated by numeral 81 in Fig. 8 that has an arc coming out of a node and returning again to the node. [Process 2] Selection of start node A node from which to start the analysis (start node) is selected in a process 2. The flow of the process 2 is shown in Fig. 2. Since it is necessary to set an initial value of the virtual weight of an input/output arc of one node so as to determine the weight of all the arcs in the graph, the start node is selected to set the initial value in accordance with the priority preliminarily determined by the pattern of nodes. The priority is higher sequentially from patterns 2, 3, 4 to 5. If the start node is not detected in the nodes of pattern 2, it is searched in the nodes of pattern 3. If the start node is not found even among the nodes of pattern 5, the process to determine the weight is finished, thereby completing the whole process. The node of pattern 1 is not present when the process 2 is first carried out, nor selected as the start node in order to raise the possibility of determination of the weight of the other nodes when the process 2 is performed at the second time and thereafter. The selecting process of the start node in each pattern of nodes will be carried out as follows. In the case where the start node is selected from nodes of pattern 2, in the first place, a node having the largest difference in the number of not-determined arcs between at the input side and at the output side is detected. Thereafter, a node or nodes at the upper stream than the above-detected node is obtained among the adjacent nodes connected to the node by arcs. The node at the upper stream is not only a node from which the arcs start, but a node to be first taken into consideration to satisfy the above (No. 3) and (No. 4) in determining the weight of the arcs. Referring to Fig. 9, a node A is at the upper stream than a node B. Therefore, when no node comes to exist at the upper stream among the adjacent nodes, that is, when the uppermost node is found, the node is determined as the start node. When the start node is to be selected from nodes of pattern 3, if the total weight of the already-determined arcs is equal to each other at the input side and output side, a node having the largest number of not-determined arcs at the input side (or at the output side) is selected. If the weight of the already-determined arcs is all 1, a node of the largest total number of arcs at the input side (or at the output side) is selected as the start node. In order to select the start node from nodes of pattern 4, a node having the largest difference of the total weight of the already-determined arcs between at the input side and at the output side is selected. If it is impossible to select the start node from any of the nodes of patterns 2, 3, 4, the start node is selected from nodes of pattern 5. The selecting method is the same as in the case of pattern 4, that is, a node with the largest difference of the total weight of the already-determined arcs between at the input side and at the output side is selected. It is so arranged as a countermeasure against an infinite loop wherein the weight cannot be determined for the selected node that, if there is an element in a set of nodes the weight of which cannot be determined in a process 3, these nodes are not selected as the start node. An experimental method or the other classifying method may be employed instead of the method of Fig. 2 to select the start node. [Process 3] Determination of weight of arc The weight of each arc of the node selected in the processes 2 and 4 is determined in a process 3. The method is made different for every pattern of nodes, but the weight of the input/output arc is determined so that the above (No. 3) and (No. 4) are satisfied in any case. The procedure will be discussed below for every pattern. Since there is one arc the weight of which is not determined in the node of pattern 1, the weight of the arc can be determined solely from (No. 3). In nodes of pattern 2, 1 is added to each of a plurality of the not-determined arcs at the input side or output side. The weight of the not-determined arc at the other side is obtained from (No. 3). In nodes of pattern 3, 1 is set as the weight to each of all the not-determined arcs. In nodes of pattern 4, the weight of the not-determined arcs at the side having the smaller total weight of the already-determined arcs is determined to be 1. The weight for the not-determined arcs at the other side is set according to (No. 3). The weight of each of the not-determined arcs is set as small as possible for nodes of pattern 5, taking greater importance to (No. 4). More specifically, the weight of the not-determined arcs is all supposed to be 1, and then a comparison of (No. 5) is conducted between at the input side and at the output side. Given that the number of the not-determined arcs at the input side is N A , the number of the not-determined arcs at the output side is N B , a set of the arcs at the input side is A (A⊂E), and a set of arcs at the output side is B (B⊂E), In the foregoing equation, the weight of the not-determined arcs of a larger value is set to be all 1. Then, the weight of the not-determined arcs of a smaller value is decided to be as small as possible to satisfy (No. 3). An example how to determine the weight of the arcs in the node of pattern 5 is indicated in Fig. 10, Fig. 10(a) showing the state of the node before the weight of the arcs is determined, while Fig. 10(b) showing the state of the node after the weight is determined. In this procedure, special attention should be given to the case where the weight of 1 is to be set to the arcs of patterns 2, 3, 4, 5 since it is impossible to set 1 if the weight is sure to be larger than 1 from the flow of the signal. Therefore, it is necessary to check beforehand if 1 is to be given for the weight. That is, it should be checked whether the degree of freedom enough to satisfy (No. 3) remains if the weight for the adjacent node connected by the objective arc is set to 1. In this case, if the adjacent node is of pattern 4, the result cannot be obtained from the adjacent node alone. Therefore, another adjacent node connected with the other not-determined arc should be checked. At the same time, if 1 is impossible for the weight, a correct value of the weight is obtained. The above procedure is repeatedly fed back until the result is obtained and, 1 is set as the weight if it is possible. If it is impossible, the resultant correct value is determined as the weight. Figs. 11(a) and 11(b) respectively show when the weight is supposed to be 1 and when the weight is set. In the case where the node belongs to pattern 3, even if the correct value of the weight is fed back, it is impossible to determine the weight of the other arcs from the processing viewpoint. In such case, after the correct weight is given to the not-determined arc, the determination of the weight in the node is terminated. Moreover, if (No. 3) is not satisfied by the original node when the correct value is fed back, the weight is determined to be 1. However, this procedure might possibly bring about a node not satisfying (No. 3). Such an error node as above is found, if any, plural and, the total weight of the input arcs at each node in the whole graph is equal to the total weight of the output arcs at the node, and therefore, the increment and decrement of the weight for all of the error nodes is summed up to 0 according to (No. 3). For example, when the total weight of input arcs at one node is 2 larger than the total weight of output arcs, the total weight of output arcs at another node is 2 larger than the total weight of the input arcs. Therefore, it is possible to return the error node to a normal one by extracting a loop passing through all of the error nodes and adjusting the increment and decrement of the error nodes for the arcs constituting the loop (referring to Fig. 12). When the weight is determined for all of the arcs, if the node does not satisfy (No. 3), the node is added as an element to a set of nodes the weight of which cannot be determined. In contrast, if (No. 3) is found satisfactory, there is generated a possibility that a fresh weight is determined even if the above set of nodes already contains the element, and therefore the set is removed. [Process 4] Determination of next node In a process 4, a node to determine the weight of arcs next (next node) is selected. The process 4 is shown in a flow chart of Fig. 3. The next node is selected among the adjacent nodes to the node subjected to the process 3. Since there are a plurality of adjacent nodes, the next node is determined by the pattern. The selecting priority is in the order from patterns 1 to 2 to 3. If there is a node of pattern 1 among the adjacent nodes, the node of pattern 1 is selected as the next node, and so on. Without a node of pattern 3, the process 4 is finished. Although a node of pattern 2 is selected if a node of pattern 1 is not present, if there are a plurality of nodes of pattern 2 among the adjacent nodes and the nodes of pattern 2 are adjoining to each other, a node at the upper stream is called as a parent node, with a node at the lower stream being a child node, thereby forming the parent-child relationship. When there are nodes of the parent-child relationship among the adjacent nodes, the parent node is selected as the next node. Further, if there is a node at the upper stream than the parent node, the node of the upper stream is selected as the next node, similar to the process 2. Fig. 13 shows an example when the next node is selected in the case of the parent-child relationship. In the example of Fig. 13, the next node is selected from the adjacent nodes after the weight of the node A is determined. A node C is first selected since it is a parent node of a node B, and then a node D is selected since it is a node at the upper stream than the node C. Accordingly, the node D is eventually selected as the next node. If there is no node of pattern 2 in the above procedure, a node of pattern 3 is selected from the adjacent nodes. In the case where a plurality of nodes of pattern 3 are present, a node of the largest number of not-determined arcs is selected thereamong. If there is not even a node of pattern 3, a next node cannot be obtained from the adjacent nodes. When the next node for determination of the weight is selected among the adjacent nodes, the process 3 is returned to determine the weight. Otherwise, a process 5 follows. [Process 5] Decision of completion of determination of weight of all arcs When it is detected that the weight of all the arcs in the graph is determined, the process is completed. If the weight is not determined yet for all the arcs, the process 2 is returned to select a fresh start node from the graph. Referring to Fig. 2, data to be processed is read out from a net list within the memory 23 into the processor 22, where processes 1-5 are carried out. The patterns of nodes detected in the processes are preserved in each node as data and the determined weight of each arc is preserved in each arc as data. Moreover, an error flag is set by the error node as data within the node. When the weight of all the arcs in the net list is determined in the process 5, the weight is output as the result of resource allocation from an output device 24. The output result is shown in Fig. 14. The weight of the arcs represents the degree of congestion in the road 62. The road 62 with the larger weight is supposed to be much more congested and traffic lanes may be increased for the road 62. (Embodiment 2) Embodiment 2 relates to the determination of the assembling order of components of an apparatus. The apparatus is constituted of wirings connecting the components. The assembling order 152 of a component 151 is, for example, as shown in Fig. 16. When the relationship among the components defines loops as indicated in Fig. 16, the assembling order may be determined with the assembling efficiency taken into consideration, i.e., by reducing the number of parts as much as possible where the flows in the loop are fed back. Therefore, a part where arrows 152 representing the flows or relationship among the components gather most is searched for and selected as a feedback. An arrow of the feedback is detected and the components constituting the loop is arranged in the order. According to the instant embodiment, the component 151 and assembling relationship 152 in Fig. 16 correspond to the block 51 and connecting line 52 of Fig. 5 and, an apparatus to determine the assembling order of all the components is illustrated in Fig. 4. Each part of the apparatus in Fig. 4 according to Embodiment 2 works the same function as in Embodiment 1. Embodiment 2 is regarded to be constituted of nodes (blocks) and arcs (connecting lines) in the form of a graph including strongly connected components. The weight of the arc represents the priority of the assembling order. A graph of only strongly connected components obtained by removing not strongly connected components from a strongly connected graph is processed in accordance with a flow chart of Fig. 15. Since processes 1-5 in Fig. 15 are equivalent to those in the resource allocation of Embodiment 1, the processes 1-5 are treated in the same fashion as in Embodiment 1 and the following description will be directed to a process 6 and thereafter. [Process 6] Detection of arc with the maximum weight When the weight of all the arcs is determined, the respective weight is preserved in each arc as data. The values of the weight are compared to detect the maximum weight and an arc with the maximum weight in a process 6. The arc with the maximum weight becomes a feedback arc of a loop including the arcs. Fig. 17 shows the state where the weight is determined for each arc of Fig. 16. From Fig. 17, the arc having the maximum weight from a component 2 to a component 1 is rendered a feedback arc 171. As is shown in a flow chart of Fig. 18, when the maximum weight and the arc with the maximum weight are output upon completion of the whole procedure in the process 6, the maximum flow in the network is to be analyzed. [Process 7] Ordering of nodes in loop As a result of the process 6, each node constituting the loop including the feedback arc is allotted with an ordinal number. The ordinal number is sequentially allotted from a node at the sink side of the feedback arc in an arrow direction of arcs. In Fig. 17, since the wiring from the component 2 to the component 1 is selected as the feedback arc 171, the assembling order of the components is determined in a direction of the wiring from the component 1. The above process will be explained with reference to Fig. 4. The data to be processed is taken out from a net list within the memory 23 into the processor 22, where the processes 1-6 are carried out. Allotting of the ordinal numbers in the process 7 is performed for the original net list input from the input device 21. Accordingly, the order of the feedback arc and nodes is output from the output device 24. If each component is rearranged according to the result of the foregoing process 7, Fig. 17 is changed to Fig. 19. Thus, the apparatus can be assembled with highest efficiency. (Embodiment 3) Embodiment 3 handles selection of a feedback signal line to arrange logic gates in a lateral direction of a logic diagram. Data of the logic diagram is considered as a net list representing the connecting relationship of logic gates with signal lines between the logic gates. When the signal lines form a loop, the number of feedback lines should be made as small as possible for the convenience of easy understanding of the logic diagram. Therefore, a signal line having the largest degree of duplication of signal lines is selected as the feedback line. Moreover, selecting the feedback line makes it possible to determine the arranging order of logic gates of the loop. A logic circuit used in the present Embodiment 3 is shown in Fig. 21. The connecting relationship between the logic gates and signal lines of Fig. 21 is indicated in Fig. 22. In this case as well, the logic circuit can be expressed as a block diagram. A logic gate 181 and a signal line 182 in Figs. 21 and 22 are equivalent to the block 51 and connecting line 52 in Fig. 5. When the logic gates and signal lines in Fig. 22 are respectively substituted with nodes and arks, the obtained graph is schematically processed in accordance with a flow chart of Fig. 20. The weight of the arc shows the degree of duplication of the signal line. A processing apparatus for Embodiment 3 is shown in Fig. 2. Each part in Fig. 2 operates in the same manner as in Embodiments 1 and 2. The processing flow will be described with reference to Fig. 20. In a process 1 of Fig. 20, a self-closed loop is searched and removed. When the signal lines form a loop in the logical circuit, only the loops in which the logic gates are difficult to be arranged are taken out from the graph, so that the logic gates constituting the loop are rearranged. This is a process 201 to extract strongly connected components. As the loop becomes complicated, it is hard to obtain the weight of all the signal lines through one process. Therefore, a signal line having the maximum weight is detected and cut, and then the extraction process is performed again. If even a single strongly connected component is not detected in the extraction process, it is so regarded that the graph does not contain a loop, and the above procedure is repeated until it becomes unable to extract the strongly connected component. The strongly connected components (a), (b) resulting from Fig. 22 after the extraction process are shown in Figs. 23(a) and 23(b), respectively. The signal lines between different strongly connected components are cut. A signal line having the maximum weight is detected for one strongly connected component. The procedure from the selection of a start node to the detection of an arc having the maximum weight is carried out in the same manner as in processes 2, 3, 4, 5, 6 of Embodiments 1 and 2. The signal line having the maximum weight which is detected in the process 6 is cut in a process 202 and stored as data. The loop including the signal line is cut by cutting the signal line, so that the objective strongly connected component is decomposed. After the process 202, it is checked in a process 203 whether a strongly connected component for which the process to search for the signal line with the maximum weight is not finished is present or not. If there remains an unprocessed strongly connected component, processes from 2 to 203 are repeated. If there is no unprocessed strongly connected component, the extraction process 201 is performed again. At this time, since it is after the signal line having the maximum weight is cut, a strongly connected component having a larger number of nodes (logic gates) than the earlier obtained strongly connected component is never obtained. A signal line having the maximum weight from a logic gate E to a logic gate G in the strongly connected component (b) of Fig. 23 is cut, and the extraction process is carried out again. As a result, a strongly connected component (c) as shown in Fig. 24 is obtained. When the strongly connected component is detected, the above-described sequence of processes is repeated for the detected strongly connected component. If a strongly connected component is not detected in the process 201, it is so judged that there is no loop within the graph, whereby the process is completed. The weight of strongly connected components (a), (b), (c) of Figs. 23 and 24 is indicated in Figs. 25(a), 25(b), 25(c), respectively. From Fig. 25, a signal line from a logic gate B to a logic gate A, a signal line from logic gates E to G and a signal line from logic gates I to H are selected as feedback signal lines of the strongly connected components (a), (b), (c), respectively. However, if the weight of the signal lines is all 1 as in the strongly connected component (a) or (b), any signal line may be selected as the feedback signal line. The arranging result of the logic gates of the logical circuit of Fig. 21 in the lateral direction is shown in Fig. 26. Although the logical circuit is an object to be processed in Embodiment 3, if the object is a circuit of the functional level, the circuit can be processed similarly as a functional diagram. As is fully described hereinabove, according to the present invention, problems can be processed and analyzed in a simple manner in a short time through detection of the weight of each branch of a network without using a linear programming method. A strongly connected graph is used for a model of the network, and the status for resource allocation and the status transition are substituted with nodes and branches in the graph. Therefore, resource allocation can be analyzed easily. Moreover, the maximum flow in the network becomes possible to be detected according to the present invention by finding a branch with the maximum weight. Further, when the nodes and branches are replaced with the working content and working flow in the strong connection graph, and if a process whereby a branch with the maximum weight is removed thereby to cut a closed loop is added when the maximum flow is analyzed, it becomes possible to analyze scheduling of all the nodes in the graph, that is, to arrange the working content in the order.

Claims: A resource allocation analyzing and/or scheduling system, comprising an input device (21) for inputting various information for the resource allocation and/or scheduling, an output device (24) for outputting the result and a computerized processor (22), wherein said processor (22) processes a model represented by a graph consisting of nodes (51; 61; 151; 181) representing a status for resource allocation and/or resource scheduling and branches (52; 62; 152; 182) each having both ends at a pair of nodes and representing a status transition, and including at least one closed loop in accordance with a flow of procedures set beforehand, said processor (22) comprising: means for selecting a node from which to start the operation of determining the weight of branches among all the nodes, means for classifying the nodes depending on the determining state of the weight of input branches and output branches of the selected node, and to weight all the input branches x ji (to a node i) and output branches x ij (from a node i) of every classified pattern of nodes i so that Σx ij is as small as possible under a constraint represented by the following equation (1), Σ j x ij - Σ j x ji = 0 x ij ≥ 0 means for to determining the weight of all the branches in the graph by repeating the steps carried out by said selecting means and said classifying means, and means for detecting a branch with the maximum weight among all the branches. The system according to claim 1, wherein said processor (22) further comprises means for arranging the nodes constituting the closed loop in the order by removing the branch with the maximum weight which is detected by said detecting means and cutting the closed loop including said branch. The system according to claim 1 or 2, wherein said selecting means selects a node to be an object for next determination of the weight among the adjacent nodes connected with the earlier processed node by branches. The system according to any one of the preceding claims, wherein said processor (22) further comprises means for extracting strongly connected components from said graph, thereby to process a model obtained by removing closed loops from said one or a plurality of strongly connected components.

Inventors: MATSUNAGA TOMOKO, NISHIYAMA TAMOTSU, MATSUNAGA, TOMOKO, NISHIYAMA, TAMOTSU
Applicants: MATSUSHITA ELECTRIC IND CO LTD, MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.
Application year: 1991
Main classification: G06F17
IPC codes: G06Q10, G06F17, G06F19