JP4246666B2 - Node position calculation program and node position calculation apparatus - Google Patents

Node position calculation program and node position calculation apparatus Download PDF

Info

Publication number
JP4246666B2
JP4246666B2 JP2004139064A JP2004139064A JP4246666B2 JP 4246666 B2 JP4246666 B2 JP 4246666B2 JP 2004139064 A JP2004139064 A JP 2004139064A JP 2004139064 A JP2004139064 A JP 2004139064A JP 4246666 B2 JP4246666 B2 JP 4246666B2
Authority
JP
Japan
Prior art keywords
node
nodes
parent
child
position calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004139064A
Other languages
Japanese (ja)
Other versions
JP2005323109A (en
Inventor
ブルギセ フランソワ
登 浅井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004139064A priority Critical patent/JP4246666B2/en
Publication of JP2005323109A publication Critical patent/JP2005323109A/en
Application granted granted Critical
Publication of JP4246666B2 publication Critical patent/JP4246666B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

この発明は、2つのノードを連結する方向性のあるエッジ、連結元となる親ノードおよび連結先となる子ノードにより構成される有向グラフにおけるノードの配置位置を算出するノード位置算出プログラム、ノード位置算出方法およびノード位置算出装置に関し、特に、ノード数が多い場合でも、ノードの配置計算を迅速かつ効率的におこなうことができるノード位置算出プログラム、ノード位置算出方法およびノード位置算出装置に関する。   The present invention relates to a node position calculation program for calculating a position of a node in a directed graph composed of a directional edge that connects two nodes, a parent node that is a connection source, and a child node that is a connection destination, and a node position calculation More particularly, the present invention relates to a node position calculation program, a node position calculation method, and a node position calculation apparatus capable of quickly and efficiently performing node arrangement calculation even when the number of nodes is large.

従来、プロジェクトなどで発生する各作業の流れや作業の依存関係を容易に把握するために、PDM(Precedence Diagram)やADM(Arrow Diagram)、PERT(Program Evolution and Review Technique)図などのネットワーク状の有向グラフが頻繁に用いられている。   Conventionally, in order to easily grasp the flow of each work that occurs in a project and the dependency of the work, network-types such as PDM (Precedence Diagram), ADM (Arrow Diagram), PERT (Program Evolution and Review Technique) diagrams, etc. Directed graphs are frequently used.

図14に、このようなネットワーク状の有向グラフの一例を示す。図14に示すように、この有向グラフでは、ノード間の依存関係が方向性をもつエッジ(枝)で表されている。ここで、ノードaからノードdに伸びるエッジは、ノードbからノードfに伸びるエッジと交差して見にくいため、ノードの再配置をおこなって有向グラフを見やすくする方法が開発されている。   FIG. 14 shows an example of such a networked directed graph. As shown in FIG. 14, in this directed graph, the dependency relationship between nodes is represented by a directional edge (branch). Here, since the edge extending from the node a to the node d is difficult to see because it intersects with the edge extending from the node b to the node f, a method of rearranging the nodes to make the directed graph easier to see has been developed.

たとえば、非特許文献1には、ノードの再配置をおこなって見やすい有向グラフを作成するノード配置アルゴリズムが開示されている。図15は、この従来のノード配置アルゴリズムを説明する説明図である。   For example, Non-Patent Document 1 discloses a node placement algorithm that creates a directed graph that is easy to view by rearranging nodes. FIG. 15 is an explanatory diagram for explaining this conventional node arrangement algorithm.

図15に示すように、このノード配置アルゴリズムでは、各ノードa〜fをいくつかのレイヤに割り当てて階層化し、各レイヤにおいてノードの位置を入れ替え、ノードを連結しているエッジの長さを最小にすることにより、エッジどうしの交差の数を減少させる。   As shown in FIG. 15, in this node placement algorithm, the nodes a to f are assigned to several layers to be hierarchized, the positions of the nodes are switched in each layer, and the length of the edge connecting the nodes is minimized. To reduce the number of intersections between edges.

また、このノード配置アルゴリズムでは、ノードbからノードf、あるいは、ノードdからノードfのように、ノードがレイヤをまたいで連結されている場合に、レイヤごとにダミーノードD1〜D3を挿入し、ノード間を連結しているエッジを分割する。ダミーノードを挿入する理由は、レイヤをまたいでノード間を連結しているエッジが他のエッジと交差してしまうことを防止するためである。   Further, in this node placement algorithm, when nodes are connected across layers such as node b to node f or node d to node f, dummy nodes D1 to D3 are inserted for each layer, Split edges connecting nodes. The reason for inserting the dummy node is to prevent an edge connecting the nodes across the layers from intersecting with another edge.

そして、各レイヤにおいてダミーノードD1〜D3を含めたノードの位置の入れ替え処理をおこなってエッジどうしの交差の数を減少させ、最後に、ダミーノードD1〜D3を取り除いて、見やすい有効グラフを作成する。   Then, the positions of the nodes including the dummy nodes D1 to D3 are replaced in each layer to reduce the number of intersections between the edges, and finally, the dummy nodes D1 to D3 are removed to create an easy-to-see effective graph. .

Kozo Sugiyama, Shojiro Tagawa and Mitsuhiko Toda, "Methods for visual understanding of hierarchical system structures", IEEE Trans. on Systems, Man, and Cybernetics, vol.SMC-11, no.2, pp.109-125, 1981.Kozo Sugiyama, Shojiro Tagawa and Mitsuhiko Toda, "Methods for visual understanding of hierarchical system structures", IEEE Trans. On Systems, Man, and Cybernetics, vol.SMC-11, no.2, pp.109-125, 1981.

しかしながら、上記非特許文献1の従来技術では、エッジどうしの交差の数を最小化するようノードの最適な配置位置を算出するが、ノード数が増加するにしたがって計算時間が急激に増大し、最適解を迅速に得ることができなくなるため、実用上問題があった。   However, in the conventional technique of Non-Patent Document 1, the optimal placement position of the nodes is calculated so as to minimize the number of intersections between edges. However, the calculation time increases rapidly as the number of nodes increases, and the optimal There was a practical problem because the solution could not be obtained quickly.

すなわち、有向グラフの見やすさを改善する場合、長時間計算をおこなってエッジどうしの交差数が最小となる最適解を得ることが必ずしも望ましいわけではなく、最適解に近い解を短時間で効率よく得ることが実用上望ましい場合も多い。   In other words, when improving the visibility of a directed graph, it is not always desirable to obtain an optimal solution that performs a long calculation and minimizes the number of intersections between edges, and efficiently obtains a solution close to the optimal solution in a short time. This is often desirable in practice.

この発明は、上述した従来技術による問題点を解消するためになされたものであり、ノード数が多い場合でもノードの配置計算を迅速かつ効率的におこなうことができるノード位置算出プログラム、ノード位置算出方法およびノード位置算出装置を提供することを目的とする。   The present invention has been made to solve the above-described problems caused by the prior art, and a node position calculation program and a node position calculation capable of quickly and efficiently performing node arrangement calculation even when the number of nodes is large. It is an object to provide a method and a node position calculation apparatus.

上述した課題を解決し、目的を達成するため、本発明は、2つのノードを連結する方向性のあるエッジ、連結元となる親ノードおよび連結先となる子ノードにより構成される有向グラフにおけるノードの配置位置を算出する処理で用いられるノード位置算出プログラムであって、前記親ノードが子ノードよりも上位の階層に割り当てられた有向グラフに含まれるノードの各階層内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、該遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として記憶する記憶手順と、前記記憶手順により記憶された染色体に基づいて階層ごとのノードの配置位置を遺伝的アルゴリズムにより算出する算出手順と、をコンピュータに実行させることを特徴とする。   In order to solve the above-described problems and achieve the object, the present invention provides a directional edge that connects two nodes, a parent node that becomes a connection source, and a child node that becomes a connection destination. A node position calculation program used in a process for calculating an arrangement position, wherein one-dimensional position information in each hierarchy of nodes included in a directed graph in which the parent node is assigned to a hierarchy higher than a child node is genetically A storage procedure for storing a gene used in the algorithm and a sequence constituted by the gene as a chromosome used in the genetic algorithm, and a genetic location of the node for each layer based on the chromosome stored by the storage procedure And a calculation procedure calculated by an algorithm.

また、本発明は、親ノードと子ノードとの間の連結関係に基づいて有向グラフに含まれる各ノードを前記親ノードが子ノードよりも上位の階層に属するように各階層に割り当てるノード割当手順をさらに含み、前記記憶手順は、前記ノード割当手順により各階層に割り当てられたノードの各階層内での1次元位置情報を前記遺伝子とし、該遺伝子により構成される配列を前記染色体として記憶することを特徴とする。   In addition, the present invention provides a node assignment procedure for assigning each node included in the directed graph to each hierarchy so that the parent node belongs to a higher hierarchy than the child node based on the connection relationship between the parent node and the child node. The storage procedure further includes storing one-dimensional position information in each layer of the node assigned to each layer by the node assignment procedure as the gene, and storing a sequence constituted by the gene as the chromosome. Features.

また、本発明は、前記ノード割当手順は、親ノードと子ノードとが複数の階層をまたいで連結されている場合に、該親ノードと子ノードとの双方に連結されるダミーのノードを該親ノードおよび子ノードの組に対して1つ生成し、生成したダミーのノードを前記複数の階層に割り当てることを特徴とする。   Further, according to the present invention, when the node assignment procedure includes a parent node and a child node connected across a plurality of hierarchies, a dummy node connected to both the parent node and the child node is added to the dummy node. One is generated for a set of a parent node and a child node, and the generated dummy node is assigned to the plurality of hierarchies.

また、本発明は、前記ノード割当手順は、有向グラフに含まれる複数のノードの連結関係がループ状態にあり、親ノードが子ノードよりも上位の階層に割り当てることができない場合に、該親ノードと子ノードとの間の連結元および連結先の連結関係を逆転させ、該連結関係を逆転させた親ノードおよび子ノードを各階層に割り当てることを特徴とする。   Further, according to the present invention, when the node assignment procedure is such that a connection relation of a plurality of nodes included in the directed graph is in a loop state and the parent node cannot be assigned to a higher hierarchy than the child node, The connection relationship between the connection source and the connection destination with the child node is reversed, and the parent node and the child node whose connection relationship is reversed are assigned to each hierarchy.

また、本発明は、2つのノードを連結する方向性のあるエッジ、連結元となる親ノードおよび連結先となる子ノードにより構成される有向グラフにおけるノードの配置位置を算出するノード位置算出方法であって、前記親ノードが子ノードよりも上位の階層に割り当てられた有向グラフに含まれるノードの各階層内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、該遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として記憶する記憶工程と、前記記憶工程により記憶された染色体に基づいて階層ごとのノードの配置位置を遺伝的アルゴリズムにより算出する算出工程と、を含んだことを特徴とする。   Furthermore, the present invention is a node position calculation method for calculating the arrangement position of a node in a directed graph composed of a directional edge that connects two nodes, a parent node that is a connection source, and a child node that is a connection destination. The one-dimensional position information in each hierarchy of nodes included in the directed graph in which the parent node is assigned to a hierarchy higher than the child node is used as a gene used in a genetic algorithm, and an array constituted by the gene is A storage step of storing as a chromosome used in the genetic algorithm, and a calculation step of calculating a placement position of the node for each hierarchy by the genetic algorithm based on the chromosome stored in the storage step, To do.

また、本発明は、2つのノードを連結する方向性のあるエッジ、連結元となる親ノードおよび連結先となる子ノードにより構成される有向グラフにおけるノードの配置位置を算出するノード位置算出装置であって、前記親ノードが子ノードよりも上位の階層に割り当てられた有向グラフに含まれるノードの各階層内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、該遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として記憶する記憶手段と、前記記憶手段により記憶された染色体に基づいて階層ごとのノードの配置位置を遺伝的アルゴリズムにより算出する算出手段と、を備えたことを特徴とする。   Further, the present invention is a node position calculation device that calculates the arrangement position of a node in a directed graph composed of a directional edge that connects two nodes, a parent node that is a connection source, and a child node that is a connection destination. The one-dimensional position information in each hierarchy of nodes included in the directed graph in which the parent node is assigned to a hierarchy higher than the child node is used as a gene used in a genetic algorithm, and an array constituted by the gene is Storage means for storing as a chromosome used in the genetic algorithm, and a calculation means for calculating the arrangement position of the node for each layer based on the chromosome stored by the storage means, using the genetic algorithm, To do.

本発明によれば、親ノードが子ノードよりも上位の階層に割り当てられた有向グラフに含まれるノードの各階層内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として記憶し、記憶された染色体に基づいて階層ごとのノードの配置位置を遺伝的アルゴリズムにより算出することとしたので、ノード数が多い場合でもノードの配置計算を迅速かつ効率的におこなうことができるという効果を奏する。   According to the present invention, one-dimensional position information in each hierarchy of nodes included in a directed graph in which a parent node is assigned to a hierarchy higher than a child node is used as a gene used in a genetic algorithm, and is configured by a gene. The sequence is stored as a chromosome used in the genetic algorithm, and the placement position of the node for each hierarchy is calculated by the genetic algorithm based on the stored chromosome, so even if the number of nodes is large, the placement of the node is calculated There is an effect that it can be performed quickly and efficiently.

また、本発明によれば、親ノードと子ノードとの間の連結関係に基づいて有向グラフに含まれる各ノードを親ノードが子ノードよりも上位の階層に属するように各階層に割り当て、各階層に割り当てられたノードの各階層内での1次元位置情報を遺伝子とし、遺伝子により構成される配列を染色体として記憶することとしたので、有向グラフにおける各ノードを効率的に階層化し、ノードの配置計算を迅速かつ効率的におこなうことができるという効果を奏する。   Further, according to the present invention, each node included in the directed graph is assigned to each hierarchy so that the parent node belongs to a higher hierarchy than the child node based on the connection relationship between the parent node and the child node, Since the one-dimensional position information in each layer of the node assigned to is used as a gene and the sequence composed of the gene is stored as a chromosome, each node in the directed graph is efficiently hierarchized, and the node placement calculation It is possible to perform quickly and efficiently.

また、本発明によれば、親ノードと子ノードとが複数の階層をまたいで連結されている場合に、親ノードと子ノードとの双方に連結されるダミーのノードを親ノードおよび子ノードの組に対して1つ生成し、生成したダミーのノードを複数の階層に割り当てることとしたので、追加するダミーのノードの数を少なくし、ノード数が多い場合でもノードの配置計算を迅速かつ効率的におこなうことができるという効果を奏する。   Further, according to the present invention, when a parent node and a child node are connected across a plurality of hierarchies, a dummy node connected to both the parent node and the child node is connected to the parent node and the child node. Since one group is generated and the generated dummy nodes are assigned to multiple hierarchies, the number of dummy nodes to be added is reduced, and even when the number of nodes is large, the calculation of node placement is quick and efficient. There is an effect that it can be performed manually.

また、本発明によれば、有向グラフに含まれる複数のノードの連結関係がループ状態にあり、親ノードが子ノードよりも上位の階層に割り当てることができない場合に、親ノードと子ノードとの間の連結元および連結先の連結関係を逆転させ、連結関係を逆転させた親ノードおよび子ノードを各階層に割り当てることとしたので、ループ状態を一旦解消することによりノードの配置計算を容易かつ効率的に実行でき、配置計算の終了後、親ノードと子ノードとの間の連結関係を復元することにより、ノードの連結関係がループ状態にある場合でも、ノードの最適な配置を得ることができるという効果を奏する。   In addition, according to the present invention, when the connection relationship of a plurality of nodes included in the directed graph is in a loop state and the parent node cannot be assigned to a higher hierarchy than the child node, the connection between the parent node and the child node is possible. Since the parent node and child node whose connection relation is reversed are assigned to each hierarchy, the node placement calculation is easy and efficient by once canceling the loop state. By restoring the connection relationship between the parent node and the child node after the placement calculation is completed, the optimal placement of the node can be obtained even when the node connection relationship is in a loop state. There is an effect.

以下に添付図面を参照して、本発明に係るノード位置算出プログラム、ノード位置算出方法およびノード位置算出装置の好適な実施例を詳細に説明する。   Exemplary embodiments of a node position calculation program, a node position calculation method, and a node position calculation apparatus according to the present invention will be described below in detail with reference to the accompanying drawings.

まず、本実施例に係るノード位置算出装置の機能的構成について説明する。図1は、本実施例に係るノード位置算出装置の機能的構成を示す機能ブロック図である。このノード位置算出装置は、有効グラフにおいて、ノード間を連結するエッジの交差を解消し、有向グラフが見やすくなるようノードの配置位置を算出する装置である。   First, the functional configuration of the node position calculation apparatus according to the present embodiment will be described. FIG. 1 is a functional block diagram illustrating a functional configuration of the node position calculation apparatus according to the present embodiment. This node position calculation device is a device that calculates the arrangement position of a node so as to make it easier to see a directed graph by eliminating the intersection of edges connecting between nodes in an effective graph.

このノード位置算出装置は、遺伝的アルゴリズムを用いて有効グラフのノードの配置位置を算出する。その際、親ノードが子ノードよりも上位のレイヤに属するように各ノードをレイヤに割り当て、各ノードの垂直位置座標を固定する。   This node position calculation device calculates the arrangement position of the nodes of the effective graph using a genetic algorithm. At that time, each node is assigned to a layer so that the parent node belongs to a layer higher than the child node, and the vertical position coordinates of each node are fixed.

そして、ノードの水平位置座標を遺伝的アルゴリズムで用いられる遺伝子とし、その遺伝子の配列を用いて遺伝的アルゴリズムで用いられる染色体を構成し、その染色体に対して交叉や突然変異、選択などの遺伝子操作をおこなうことにより、エッジの交差を解消するノードの位置を算出する。このように、ノードの水平位置座標のみを染色体の構成要素として考慮し、遺伝子操作をおこなうことにより、ノードの配置計算を迅速かつ効率的におこなうことができる。   The horizontal position coordinates of the nodes are used as genes used in the genetic algorithm, and the chromosomes used in the genetic algorithm are constructed using the sequences of the genes, and gene operations such as crossover, mutation, and selection are performed on the chromosomes. To calculate the position of the node that eliminates the intersection of edges. In this way, by considering only the horizontal position coordinates of a node as a constituent element of a chromosome and performing a genetic operation, the node arrangement calculation can be performed quickly and efficiently.

図1に示すように、ノード位置算出装置は、入力部10、表示部11、主記憶部12、補助記憶部13、ノード割当部14、ノード位置算出部15、ノード配置部16および制御部17を有する。   As illustrated in FIG. 1, the node position calculation device includes an input unit 10, a display unit 11, a main storage unit 12, an auxiliary storage unit 13, a node allocation unit 14, a node position calculation unit 15, a node arrangement unit 16, and a control unit 17. Have

入力部10は、キーボードやマウスなどの入力デバイスである。表示部11は、ディスプレイなどの表示デバイスである。主記憶部12は、RAM(Random Access Memory)などの主記憶装置であり、染色体などの各種データを一時的に記憶する処理をおこなう。   The input unit 10 is an input device such as a keyboard or a mouse. The display unit 11 is a display device such as a display. The main storage unit 12 is a main storage device such as a RAM (Random Access Memory) and temporarily stores various data such as chromosomes.

補助記憶部13は、ハードディスク装置や光ディスク装置などの補助記憶装置であり、オペレーティングシステムや、各種プログラム、ノードの配置計算をおこなう有効グラフに係るデータなどを記憶する。この有向グラフに係るデータには、各ノードの位置情報や、エッジにより連結されている親ノードおよび子ノードの組み合わせの情報などが含まれる。   The auxiliary storage unit 13 is an auxiliary storage device such as a hard disk device or an optical disk device, and stores an operating system, various programs, data related to an effective graph for performing node arrangement calculation, and the like. The data related to the directed graph includes position information of each node, information on a combination of a parent node and a child node connected by an edge, and the like.

ノード割当部14は、ノード間を連結するエッジの連結元となる親ノードおよび連結先となる子ノードの連結関係に基づいて、各ノードを各レイヤに割り当てる処理をおこなう。このノード割当部14は、レイヤ設定部14a、ダミーノード追加部14bおよびループ切断部14cを有する。   The node assigning unit 14 performs processing for assigning each node to each layer based on a connection relationship between a parent node that is a connection source of edges that connect nodes and a child node that is a connection destination. The node allocation unit 14 includes a layer setting unit 14a, a dummy node adding unit 14b, and a loop cutting unit 14c.

レイヤ設定部14は、有向グラフに含まれる各ノードを複数のレイヤに割り当て、レイヤを設定する処理をおこなう。図2は、各ノードを複数のレイヤに割り当てる処理について説明する説明図である。   The layer setting unit 14 assigns each node included in the directed graph to a plurality of layers, and performs a process of setting the layers. FIG. 2 is an explanatory diagram for explaining processing for assigning each node to a plurality of layers.

図2に示すように、レイヤ設定部14は、エッジの連結元となる親ノードおよび連結先となる子ノードの連結関係に基づいて、親ノードが子ノードよりも上位のレイヤに属するようノードa〜fを各レイヤ1〜3に割り当てる処理をおこなう。   As shown in FIG. 2, the layer setting unit 14 sets the node a so that the parent node belongs to a higher layer than the child node based on the connection relationship between the parent node that is the connection source of the edges and the child node that is the connection destination. The process of assigning ~ f to each of layers 1 to 3 is performed.

図1の説明に戻ると、ダミーノード追加部14bは、親ノードと子ノードとがレイヤをまたいで連結されている場合に、親ノードおよび子ノードの双方に連結されるダミーノードを親ノードおよび子ノードの組に対して1つ生成し、生成したダミーのノードを上記レイヤに割り当てる処理をおこなう。図3は、ダミーノードをレイヤに割り当てる処理について説明する説明図である。   Returning to the description of FIG. 1, when the parent node and the child node are connected across the layers, the dummy node adding unit 14b sets the dummy node connected to both the parent node and the child node as the parent node and the child node. One is generated for a set of child nodes, and the generated dummy node is assigned to the layer. FIG. 3 is an explanatory diagram illustrating a process of assigning dummy nodes to layers.

図3に示すように、ダミーノード追加部14bは、親ノードbと子ノードf、または、親ノードdと子ノードfとがレイヤをまたいで連結されている場合に、それを検出し、ダミーノードD1およびD3を生成する。特に、親ノードbと子ノードfとが複数のレイヤ2および3をまたいで連結されている場合には、親ノードbおよび子ノードfの組に対してダミーノードD1を1つだけ生成し、レイヤ2および3に対してダミーノードD1を割り当てる処理をおこなう。   As shown in FIG. 3, when the parent node b and the child node f, or when the parent node d and the child node f are connected across the layers, the dummy node adding unit 14b detects that, Nodes D1 and D3 are generated. In particular, when the parent node b and the child node f are connected across a plurality of layers 2 and 3, only one dummy node D1 is generated for the set of the parent node b and the child node f. A process of assigning a dummy node D1 to layers 2 and 3 is performed.

このように、レイヤ2および3に対してダミーノードD1を1つだけ割り当てることにより、ノードの数を減少させ、遺伝的アルゴリズムを適用した際の計算時間を削減することができる。   Thus, by assigning only one dummy node D1 to layers 2 and 3, the number of nodes can be reduced, and the calculation time when applying the genetic algorithm can be reduced.

図1の説明に戻ると、ループ切断部14cは、有向グラフに含まれる複数のノードの連結関係がループ状態にあり、ノードを連結するエッジが、下位のレイヤから上位のレイヤに伸びる場合に、エッジの方向を逆転することにより、連結元である親ノードと連結先である子ノードの連結関係を逆転させる。   Returning to the description of FIG. 1, the loop cutting unit 14c determines that the edge is connected when the connection relation of a plurality of nodes included in the directed graph is in a loop state and the edge connecting the nodes extends from the lower layer to the upper layer. By reversing the direction, the connection relationship between the parent node that is the connection source and the child node that is the connection destination is reversed.

すなわち、ループ切断部14cは、親ノードが配置されるレイヤが、子ノードが配置されるレイヤよりも下位のレイヤとなってしまう場合に、子ノードを親ノードに、親ノードを子ノードに設定し、連結関係が逆転した親ノードおよび子ノードをレイヤに割り当てることにより、ループを切断する処理をおこなう。図4は、親ノードおよび子ノードの連結関係を逆転させる処理について説明する説明図である。   That is, the loop cutting unit 14c sets the child node as the parent node and the parent node as the child node when the layer where the parent node is arranged becomes a lower layer than the layer where the child node is arranged. Then, a process of cutting the loop is performed by assigning parent nodes and child nodes whose connection relations are reversed to the layers. FIG. 4 is an explanatory diagram for explaining the process of reversing the connection relationship between the parent node and the child node.

図4の例では、ノードfとノードcとの連結関係において、親ノードであるノードfが配置されるレイヤ4が、子ノードであるノードcが配置されるレイヤ2よりも下位のレイヤとなり、ノードc、ノードeおよびノードfがループを形成している。この場合、ループ切断部14cは、ノードfとノードcとの間の連結関係を逆転し、ノードcを親ノード、ノードfを子ノードとして設定する処理をおこなう。   In the example of FIG. 4, in the connection relationship between the node f and the node c, the layer 4 where the node f as the parent node is arranged becomes a lower layer than the layer 2 where the node c as the child node is arranged, Node c, node e, and node f form a loop. In this case, the loop cutting unit 14c reverses the connection relationship between the node f and the node c, and performs a process of setting the node c as a parent node and the node f as a child node.

このように、親ノードと子ノードとの間の連結関係を逆転させることにより、複雑な処理を必要とせず、親ノードおよび子ノードをそれぞれ上位および下位のレイヤに割り当ててループ状態を解消することができ、以下に説明するノードの配置位置の計算を、通常のノードと同様のアルゴリズムを用いて容易に実行することができるようになる。   In this way, by reversing the connection relationship between the parent node and child node, complicated processing is not required, and the parent node and child node are assigned to the upper and lower layers, respectively, to eliminate the loop state. Thus, the calculation of the node arrangement position described below can be easily performed using the same algorithm as that of a normal node.

図1の説明に戻ると、ノード位置算出部15は、ノードの各レイヤ内での1次元の水平位置座標を遺伝子とし、遺伝子により構成される配列を染色体として主記憶部12に記憶し、記憶された染色体を用いて、エッジの交差の少ない、ノードの最適な配置位置を遺伝的アルゴリズムにより算出する処理をおこなう。   Returning to the description of FIG. 1, the node position calculation unit 15 stores the one-dimensional horizontal position coordinate in each layer of the node as a gene, and stores the sequence constituted by the gene in the main storage unit 12 as a chromosome. Using the obtained chromosomes, a process for calculating an optimal arrangement position of nodes with few edge crossings by a genetic algorithm is performed.

具体的には、ノード位置算出部15は、遺伝的アルゴリズムにより交叉や突然変異、選択などの遺伝子操作をおこない、染色体の世代を交代させる。そして、染色体の世代が交代するごとに、ノード位置算出部15は、染色体により指定されるノードの配置位置の評価を所定の評価関数を用いておこない、評価が低い染色体を淘汰する。そして、世代交代が所定の回数進んだら計算処理を終了する。この評価関数については、後に詳しく説明する。   Specifically, the node position calculation unit 15 performs genetic operations such as crossover, mutation, and selection using a genetic algorithm to change the generation of chromosomes. Then, each time the generation of chromosomes is changed, the node position calculation unit 15 evaluates the arrangement position of the node specified by the chromosome using a predetermined evaluation function, and selects a chromosome having a low evaluation. When the generation change proceeds a predetermined number of times, the calculation process is terminated. This evaluation function will be described in detail later.

図5は、ノードの最適な配置位置の算出例を示す図であり、図6は、図5に示したノード配置に対応する染色体の例を示す図である。図5の例では、ノードaからノードdに伸びるエッジが、ノードbからノードeに伸びるエッジと交差している。このエッジどうしの交差を解消するため、ノード位置算出部15は、遺伝的アルゴリズムを用いて最適なノードの配置位置を求める。   FIG. 5 is a diagram illustrating an example of calculating the optimum arrangement position of nodes, and FIG. 6 is a diagram illustrating an example of chromosomes corresponding to the node arrangement shown in FIG. In the example of FIG. 5, the edge extending from the node a to the node d intersects with the edge extending from the node b to the node e. In order to eliminate the intersection of the edges, the node position calculation unit 15 obtains an optimal node arrangement position using a genetic algorithm.

エッジが交差している場合の染色体60は、図6に示すように、「121321」と表される。ここで、染色体60の各数字は、レイヤごとのノードa〜fの水平位置の情報であり、レイヤごとに図5の左側から数えたノードの順番を表している。そして、ノード位置算出部15により遺伝的アルゴリズムが適用され、エッジどうしの交差が解消された後の染色体61は、「121231」となる。   The chromosome 60 when the edges intersect is represented as “121321” as shown in FIG. 6. Here, each number of the chromosome 60 is information on the horizontal position of the nodes a to f for each layer, and represents the order of the nodes counted from the left side of FIG. 5 for each layer. Then, the chromosome 61 after the genetic algorithm is applied by the node position calculation unit 15 and the crossing between the edges is resolved becomes “121231”.

ここで、染色体により表現されるノードの配置位置を評価する評価関数について説明する。図7は、ノード間の連結関係を記憶したノードパスデータ70の一例を示す図であり、図8は、ノードの配置状況を評価する評価処理について説明する図である。このノードパスデータ70は、主記憶部12に記憶される。   Here, the evaluation function for evaluating the arrangement position of the node represented by the chromosome will be described. FIG. 7 is a diagram illustrating an example of the node path data 70 that stores the connection relationship between nodes, and FIG. 8 is a diagram illustrating an evaluation process for evaluating the arrangement status of nodes. The node path data 70 is stored in the main storage unit 12.

図7に示すように、ノードパスデータ70は、親ノードと子ノードとの間の連結関係を記憶したデータであり、レイヤとパスの情報を記憶している。レイヤは、親ノードおよび子ノードが属するレイヤの情報である。たとえば、「1−2」は、親ノードがレイヤ1に、子ノードがレイヤ2に属することを示している。パスは、互いに連結されている親ノードと子ノードとの組み合わせを示す情報である。たとえば、(a,c)は、親ノードaと子ノードcとが連結されていることを示している。   As illustrated in FIG. 7, the node path data 70 is data that stores a connection relationship between a parent node and a child node, and stores layer and path information. A layer is information on a layer to which a parent node and a child node belong. For example, “1-2” indicates that the parent node belongs to layer 1 and the child node belongs to layer 2. The path is information indicating a combination of a parent node and a child node that are connected to each other. For example, (a, c) indicates that the parent node a and the child node c are connected.

また、ここでは、ノードの位置情報を指定する染色体を、以下の条件により評価する。「条件:親ノードと子ノードとが連結されたパスの組み合わせ(x,y)および(x’,y’)において、Px、Py、Px’およびPy’をx、y、x’およびy’の水平位置座標とした場合に、Px≦Px’かつPy≦Py’」。そして、この条件を満足しないパスの組み合わせの数を遺伝的アルゴリズムにおいて染色体を評価する際の評価関数として用いることとする。   Also, here, the chromosome that specifies the position information of the node is evaluated under the following conditions. “Condition: In a combination of paths (x, y) and (x ′, y ′) in which a parent node and a child node are connected, Px, Py, Px ′ and Py ′ are changed to x, y, x ′ and y ′. Where Px ≦ Px ′ and Py ≦ Py ′ ”. The number of path combinations that do not satisfy this condition is used as an evaluation function when evaluating a chromosome in the genetic algorithm.

この条件に基づいて、ノードの配置状況を評価した例が、図8に示されている。図8に示すように、ノード位置算出部15は、すべてのパスの組み合わせに対してノードの水平位置座標の比較をおこない、上記条件が満足されるか否かを調べる処理をおこなう。   An example in which the arrangement status of nodes is evaluated based on this condition is shown in FIG. As shown in FIG. 8, the node position calculation unit 15 compares the horizontal position coordinates of the nodes for all combinations of paths, and performs a process of checking whether or not the above condition is satisfied.

たとえば、パスの組み合わせ(a,c)および(a,d)においては、図6に示すように、ノードaの水平座標位置Paは共通でPa=Paであり、ノードcおよびノードdの水平位置座標の関係はPc<Pdであるので、上記条件を満足し、評価は「可」となる。   For example, in the path combinations (a, c) and (a, d), as shown in FIG. 6, the horizontal coordinate position Pa of the node a is common and Pa = Pa, and the horizontal position of the node c and the node d Since the relationship of coordinates is Pc <Pd, the above condition is satisfied and the evaluation is “OK”.

また、パスの組み合わせ(a,c)および(b,d)においては、ノードaおよびノードbの水平位置座標の関係はPa<Pbであり、ノードcおよびノードdの水平位置座標の関係はPc<Pdであるので、上記条件を満足し、評価は「可」となる。以下同様にして、パスの組み合わせ(a,c)および(b,e)、パスの組み合わせ(a,d)および(b,d)についても、評価は「可」となる。   In the path combinations (a, c) and (b, d), the relationship between the horizontal position coordinates of the node a and the node b is Pa <Pb, and the relationship between the horizontal position coordinates of the node c and the node d is Pc. Since <Pd, the above condition is satisfied, and the evaluation is “OK”. Similarly, the evaluation is “OK” for the path combinations (a, c) and (b, e) and the path combinations (a, d) and (b, d).

ところが、パスの組み合わせ(a,d)および(b,e)については、ノードaおよびノードbの水平位置座標の関係はPa<Pbであり、ノードdおよびノードeの水平位置座標の関係はPd>Peであるので、上記条件を満足せず、評価は「不可」となる。また、パスの組み合わせ(b,d)および(b,e)についても、評価は「不可」となる。   However, for the path combinations (a, d) and (b, e), the relationship between the horizontal position coordinates of node a and node b is Pa <Pb, and the relationship between the horizontal position coordinates of node d and node e is Pd. Since> Pe, the above condition is not satisfied and the evaluation is “impossible”. Also, the evaluation is “impossible” for the combinations (b, d) and (b, e) of the paths.

この例の場合、評価が不可であるパスの組み合わせの数は2であり、この値が評価関数の値となる。評価関数の値が大きい染色体は適応度が低いものとして、遺伝的アルゴリズムを適用した場合に淘汰され、評価関数の値が小さい染色体のみ残されるようになる。このようにして、ノードの配置位置の最適解を効率的に求めることができる。   In this example, the number of combinations of paths that cannot be evaluated is 2, and this value is the value of the evaluation function. Chromosomes with large evaluation function values are assumed to have low fitness, and are deceived when a genetic algorithm is applied. Only chromosomes with small evaluation function values are left. In this way, it is possible to efficiently obtain the optimal solution for the node arrangement position.

なお、図5から図8では、ダミーノードがない場合について説明したが、ダミーノードがある場合も同様に、最適なノードの配置位置を求めることができる。図9は、ダミーノードがある場合のノードの最適な配置位置の算出例を示す図であり、図10は、図9に示したノード配置に対応する染色体の例を示す図である。   Although FIGS. 5 to 8 have been described with respect to the case where there is no dummy node, the optimal node arrangement position can be obtained in the same manner when there is a dummy node. FIG. 9 is a diagram illustrating an example of calculating an optimal arrangement position of a node when there is a dummy node, and FIG. 10 is a diagram illustrating an example of a chromosome corresponding to the node arrangement illustrated in FIG.

図9には、ダミーノード追加部14bにより追加されたダミーノードD1およびD3が示されている。ノード位置算出部15は、図10に示すように、このダミーノードD1およびD3の水平位置座標を追加して、染色体100の配列「12131223」を生成する。ここで、染色体100の各数字は、レイヤごとのノードa〜fおよびダミーノードD1、D3の水平位置の情報であり、レイヤごとに図9の左側から数えたノードの順番を表している。   FIG. 9 shows dummy nodes D1 and D3 added by the dummy node adding unit 14b. As shown in FIG. 10, the node position calculation unit 15 adds the horizontal position coordinates of the dummy nodes D1 and D3 to generate an array “12131223” of the chromosome 100. Here, each number of the chromosome 100 is information on the horizontal positions of the nodes a to f and the dummy nodes D1 and D3 for each layer, and represents the order of the nodes counted from the left side of FIG. 9 for each layer.

そして、ノード位置算出部15は、遺伝的アルゴリズム利用して、交叉や突然変異、選択の遺伝子操作をおこない、エッジの交差を解消するノードの配置位置を算出する。図10には、エッジどうしの交差が解消された後の染色体101の配列「12121232」が示されている。   Then, the node position calculation unit 15 performs genetic operations such as crossover, mutation, and selection using a genetic algorithm, and calculates an arrangement position of a node that eliminates the intersection of edges. FIG. 10 shows the arrangement “12121232” of the chromosome 101 after the intersection of the edges is eliminated.

ここで、ダミーノードD1は、レイヤ2とレイヤ3の2つのレイヤにまたがっているため、たとえば、ダミーノードD1とレイヤ2に属するノードdとの水平位置が入れ替わる場合には、ダミーノードD1とレイヤ3に属するダミーノードD3との水平位置が重ならないように制御する。   Here, since the dummy node D1 extends over the two layers of layer 2 and layer 3, for example, when the horizontal positions of the dummy node D1 and the node d belonging to the layer 2 are switched, the dummy node D1 and the layer Control is performed so that the horizontal position with the dummy node D3 belonging to 3 does not overlap.

図1の説明に戻ると、ノード配置部16は、ノード位置算出部15により算出されたノードの最適な座標位置の情報を基にして、ノードを配置した有効グラフを表示部11に出力する処理をおこなう。   Returning to the description of FIG. 1, the node placement unit 16 outputs a valid graph in which nodes are placed to the display unit 11 based on the information on the optimal coordinate position of the node calculated by the node position calculation unit 15. To do.

その際、ノード配置部16は、ダミーノード追加部14bにより追加されたダミーノードを削除して、図9に示すように、親ノードからダミーノードに伸びるエッジの終点とダミーノードから子ノードに伸びるエッジの始点を連結して1つのエッジとする処理をおこなう。また、ノード配置部16は、ループ切断部14cにより親ノードおよび子ノードの連結関係が逆転された箇所を、逆転処理以前の連結関係に復元する処理をおこなう。   At that time, the node placement unit 16 deletes the dummy node added by the dummy node addition unit 14b, and extends from the parent node to the child node and the end point of the edge extending from the parent node to the dummy node, as shown in FIG. The processing is performed by connecting the start points of the edges into one edge. In addition, the node placement unit 16 performs a process of restoring the connection relationship between the parent node and the child node reversed by the loop cutting unit 14c to the connection relationship before the reversal process.

制御部17は、ノード位置算出装置を全体制御する制御部である。この制御部17は、各機能部間のデータの授受などを司る。   The control unit 17 is a control unit that totally controls the node position calculation device. The control unit 17 manages data exchange between the functional units.

つぎに、ノード位置算出装置がおこなうノード配置処理の処理手順について説明する。図11は、ノード位置算出装置がおこなうノード配置処理の処理手順を示すフローチャートである。   Next, a processing procedure of node arrangement processing performed by the node position calculation device will be described. FIG. 11 is a flowchart showing a processing procedure of node arrangement processing performed by the node position calculation apparatus.

図11に示すように、まず、ノード位置算出装置のレイヤ設定部14aは、補助記憶部13に記憶された各ノードの位置情報およびノード間の連結情報を取得する(ステップS101)。そして、レイヤ設定部14aは、取得した位置情報および連結情報に基づいて、親ノードが子ノードよりも上位のレイヤに属するように各ノードをレイヤに割り当てる階層化処理をおこなう(ステップS102)。   As shown in FIG. 11, first, the layer setting unit 14a of the node position calculation device acquires the position information of each node and the connection information between nodes stored in the auxiliary storage unit 13 (step S101). And the layer setting part 14a performs the hierarchization process which allocates each node to a layer so that a parent node may belong to a layer higher than a child node based on the acquired positional information and connection information (step S102).

ここで、有向グラフに含まれる複数のノードの連結関係がループ状態にあり、親ノードが子ノードよりも上位のレイヤに割り当てられない場合には、レイヤ設定部14aは、親ノードを下位のレイヤに一時的に割り当てる。   Here, when the connection relationship of a plurality of nodes included in the directed graph is in a loop state and the parent node cannot be assigned to a higher layer than the child node, the layer setting unit 14a sets the parent node to a lower layer. Assign temporarily.

続いて、ダミーノード追加部14bは、親ノードと子ノードとがレイヤをまたいで連結されているかどうかを検出し、レイヤをまたいで連結されている場合に、親ノードおよび子ノードと連結されるダミーノードを親ノードおよび子ノードの組に対して1つ生成し、生成したダミーノードを上記レイヤに割り当てるダミーノード追加処理をおこなう(ステップS102)。   Subsequently, the dummy node adding unit 14b detects whether or not the parent node and the child node are connected across the layers. When the parent node and the child node are connected across the layers, the dummy node adding unit 14b is connected to the parent node and the child node. One dummy node is generated for a set of a parent node and a child node, and a dummy node addition process for assigning the generated dummy node to the layer is performed (step S102).

そして、ループ切断部14cは、有向グラフに含まれる複数のノードの連結関係がループ状態にあるため、レイヤ設定部14aにより親ノードが子ノードよりも下位のレイヤに一時的に割り当てられたかどうかを検出し、下位のレイヤに一時的に割り当てられた場合に、親ノードと子ノードとの間の連結関係を逆転させ、子ノードを親ノードに、親ノードを子ノードに設定し、ループを切断する処理をおこなう(ステップS104)。   The loop cutting unit 14c detects whether or not the parent node is temporarily assigned to a lower layer than the child node by the layer setting unit 14a because the connection relation of the plurality of nodes included in the directed graph is in a loop state. If it is temporarily assigned to a lower layer, the connection relationship between the parent node and the child node is reversed, the child node is set as the parent node, the parent node is set as the child node, and the loop is disconnected. Processing is performed (step S104).

その後、ノード位置算出部15は、各ノードの水平位置の座標から遺伝的アルゴリズムで用いる染色体を生成し(ステップS105)、遺伝的アルゴリズムにより交叉や突然変異、選択などの遺伝子操作をおこない、各ノードの最適な配置を得るための世代計算処理をおこなう(ステップS106)。   Thereafter, the node position calculation unit 15 generates a chromosome to be used in the genetic algorithm from the coordinates of the horizontal position of each node (step S105), and performs genetic operations such as crossover, mutation, and selection using the genetic algorithm. Generation calculation processing is performed to obtain the optimal arrangement (step S106).

世代計算処理の終了後、ノード配置部16は、ステップS104で逆転させた親ノードと子ノードとの間の連結関係を再び逆転させ、親ノードを子ノードに、子ノードを親ノードに設定することにより、切断したループを復元する処理をおこなう(ステップS107)。   After completion of the generation calculation process, the node placement unit 16 reverses the connection relationship between the parent node and the child node reversed in step S104 again, and sets the parent node as a child node and the child node as a parent node. Thus, a process for restoring the cut loop is performed (step S107).

さらに、ノード配置部16は、ステップS103で追加したダミーノードを削除し、図9に示したように、ダミーノードに連結されていた親ノードおよび子ノードを連結する処理をおこなう(ステップS108)。   Further, the node placement unit 16 deletes the dummy node added in step S103, and performs a process of connecting the parent node and the child node connected to the dummy node as shown in FIG. 9 (step S108).

その後、ノード配置部16は、ループが復元され、ダミーノードが除去された有効グラフを表示部11に出力する処理をおこない(ステップS109)、このノード配置処理を終了する。   Thereafter, the node placement unit 16 performs a process of outputting the effective graph from which the loop is restored and the dummy nodes are removed to the display unit 11 (step S109), and ends this node placement process.

ところで、上記実施例で説明したノード位置算出装置およびノード位置算出方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。   By the way, the node position calculation apparatus and the node position calculation method described in the above embodiments can be realized by executing a program prepared in advance on a computer system such as a personal computer or a workstation.

そこで、以下では、上記実施例で説明したノード位置算出装置(ノード位置算出方法)と同様の機能を有するノード位置算出プログラムを実行するコンピュータシステムについて説明する。   Therefore, in the following, a computer system that executes a node position calculation program having the same function as the node position calculation apparatus (node position calculation method) described in the above embodiment will be described.

図12は、本実施例に係るコンピュータシステム200の構成を示すシステム構成図であり、図13は、図12に示したコンピュータシステム200に係る本体部201の構成を示すブロック図である。   FIG. 12 is a system configuration diagram illustrating a configuration of the computer system 200 according to the present embodiment, and FIG. 13 is a block diagram illustrating a configuration of the main body unit 201 according to the computer system 200 illustrated in FIG.

図12に示すように、本実施例に係るコンピュータシステム200は、本体部201と、本体部201からの指示によって表示画面202aに画像などの情報を表示するためのディスプレイ202と、このコンピュータシステム200に種々の情報を入力するためのキーボード203と、ディスプレイ202の表示画面202a上の任意の位置を指定するためのマウス204とを備える。   As shown in FIG. 12, a computer system 200 according to the present embodiment includes a main body 201, a display 202 for displaying information such as an image on a display screen 202a according to an instruction from the main body 201, and the computer system 200. A keyboard 203 for inputting various information and a mouse 204 for designating an arbitrary position on the display screen 202a of the display 202.

また、このコンピュータシステム200における本体部201は、図13に示すように、CPU221と、RAM222と、ROM223と、ハードディスクドライブ(HDD)224と、CD−ROM209を受け入れるCD−ROMドライブ225と、フレキシブルディスク(FD)208を受け入れるFDドライブ226と、ディスプレイ202、キーボード203ならびにマウス204を接続するI/Oインターフェース227と、ローカルエリアネットワークまたはワイドエリアネットワーク(LAN/WAN)206に接続するLANインターフェース228とを備える。   Further, as shown in FIG. 13, the main body 201 in the computer system 200 includes a CPU 221, a RAM 222, a ROM 223, a hard disk drive (HDD) 224, a CD-ROM drive 225 that accepts a CD-ROM 209, and a flexible disk. An FD drive 226 that accepts an (FD) 208; an I / O interface 227 that connects the display 202, keyboard 203, and mouse 204; and a LAN interface 228 that connects to a local area network or wide area network (LAN / WAN) 206 Prepare.

さらに、このコンピュータシステム200には、インターネットなどの公衆回線207に接続するためのモデム205が接続されるとともに、LANインターフェース228およびLAN/WAN206を介して、他のコンピュータシステム(PC)211、サーバ212ならびにプリンタ213などが接続される。   Further, a modem 205 for connecting to a public line 207 such as the Internet is connected to the computer system 200, and another computer system (PC) 211 and server 212 are connected via a LAN interface 228 and a LAN / WAN 206. In addition, a printer 213 and the like are connected.

そして、このコンピュータシステム200は、所定の記録媒体に記録されたノード位置算出プログラムを読み出して実行することで、ノード位置算出装置(ノード位置算出方法)を実現する。   The computer system 200 implements a node position calculation device (node position calculation method) by reading and executing a node position calculation program recorded on a predetermined recording medium.

ここで、所定の記録媒体とは、フレキシブルディスク(FD)208、CD−ROM209、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」の他に、コンピュータシステム200の内外に備えられるハードディスクドライブ(HDD)224や、RAM222、ROM223などの「固定用の物理媒体」、さらに、モデム205を介して接続される公衆回線207や、他のコンピュータシステム211ならびにサーバ112が接続されるLAN/WAN206などのように、プログラムの送信に際して短期にプログラムを保持する「通信媒体」など、コンピュータシステム200によって読み取り可能なノード位置算出プログラムを記録する、あらゆる記録媒体を含むものである。   Here, the predetermined recording medium is not limited to “portable physical medium” such as flexible disk (FD) 208, CD-ROM 209, MO disk, DVD disk, magneto-optical disk, IC card, etc. Connected to internal and external hard disk drives (HDD) 224, “fixed physical media” such as RAM 222 and ROM 223, public line 207 connected via modem 205, other computer system 211 and server 112 Any recording medium that records a node position calculation program readable by the computer system 200, such as a “communication medium” that holds the program in a short period of time when the program is transmitted, such as a LAN / WAN 206 that is executed.

すなわち、ノード位置算出プログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記録されるものであり、コンピュータシステム200は、このような記録媒体からノード位置算出プログラムを読み出して実行することでノード位置算出装置およびノード位置算出方法を実現する。   In other words, the node position calculation program is recorded on a recording medium such as the above-mentioned “portable physical medium”, “fixed physical medium”, “communication medium”, etc. so as to be readable by the computer. Implements a node position calculation device and a node position calculation method by reading and executing a node position calculation program from such a recording medium.

なお、ノード位置算出プログラムは、コンピュータシステム200によって実行されることに限定されるものではなく、他のコンピュータシステム211またはサーバ212がノード位置算出プログラムを実行する場合や、これらが協働してノード位置算出プログラムを実行するような場合にも、本発明を同様に適用することができる。   Note that the node position calculation program is not limited to be executed by the computer system 200, and when the other computer system 211 or the server 212 executes the node position calculation program, or in cooperation with these, The present invention can be similarly applied to a case where a position calculation program is executed.

上述してきたように、本実施例では、ノード位置算出部15が、親ノードが子ノードよりも上位のレイヤに割り当てられた有向グラフに含まれるノードの各レイヤ内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として主記憶部12に記憶し、記憶された染色体に基づいてレイヤごとのノードの配置位置を遺伝的アルゴリズムにより算出することとしたので、ノード数が多い場合でもノードの配置計算を迅速かつ効率的におこなうことができる。   As described above, in this embodiment, the node position calculation unit 15 genetically calculates one-dimensional position information in each layer of nodes included in the directed graph in which the parent node is assigned to a layer higher than the child node. The gene used in the algorithm is stored in the main memory 12 as a chromosome used in the genetic algorithm, and the arrangement position of the node for each layer is calculated by the genetic algorithm based on the stored chromosome. Therefore, even when the number of nodes is large, the node arrangement calculation can be performed quickly and efficiently.

また、本実施例では、レイヤ設定部14aが、親ノードと子ノードとの間の連結関係に基づいて有向グラフに含まれる各ノードを親ノードが子ノードよりも上位のレイヤに属するように各レイヤに割り当て、各レイヤに割り当てられたノードの各レイヤ内での1次元位置情報を遺伝子とし、遺伝子により構成される配列を染色体として主記憶部12に記憶することとしたので、有向グラフにおける各ノードを効率的に階層化し、ノードの配置計算を迅速かつ効率的におこなうことができる。   Further, in this embodiment, the layer setting unit 14a sets each node included in the directed graph based on the connection relationship between the parent node and the child node so that the parent node belongs to a higher layer than the child node. Since the one-dimensional position information in each layer of the node assigned to each layer is a gene and the sequence composed of the gene is stored as a chromosome in the main storage unit 12, each node in the directed graph is It is possible to efficiently stratify and perform node arrangement calculation quickly and efficiently.

また、本実施例では、親ノードと子ノードとが複数のレイヤをまたいで連結されている場合に、ダミーノード追加部14bが、親ノードと子ノードとの双方に連結されるダミーノードを親ノードおよび子ノードの組に対して1つ生成し、生成したダミーノードを複数のレイヤに割り当てることとしたので、追加するダミーノードの数を少なくし、ノード数が多い場合でもノードの配置計算を迅速かつ効率的におこなうことができる。   In this embodiment, when the parent node and the child node are connected across a plurality of layers, the dummy node adding unit 14b sets the dummy node connected to both the parent node and the child node as the parent. Since one node is generated for each set of nodes and child nodes, and the generated dummy nodes are assigned to multiple layers, the number of dummy nodes to be added is reduced, and even if the number of nodes is large, node placement calculation is performed. It can be done quickly and efficiently.

また、本実施例では、有向グラフに含まれる複数のノードの連結関係がループ状態にあり、親ノードが子ノードよりも上位のレイヤに割り当てることができない場合に、ループ切断部14cが、親ノードと子ノードとの間の連結元および連結先の連結関係を逆転させ、連結関係を逆転させた親ノードおよび子ノードを各階層に割り当てることとしたので、ループ状態を一旦解消することによりノードの配置計算を容易かつ効率的に実行でき、配置計算の終了後、親ノードと子ノードとの間の連結関係を復元することにより、ノードの連結関係がループ状態にある場合でも、ノードの最適な配置を得ることができる。   Further, in this embodiment, when the connection relationship of a plurality of nodes included in the directed graph is in a loop state and the parent node cannot be assigned to a higher layer than the child node, the loop cutting unit 14c Since the connection relationship between the connection source and the connection destination with the child node is reversed and the parent node and child node whose connection relationship is reversed are assigned to each layer, the arrangement of the nodes is canceled by once canceling the loop state The calculation can be executed easily and efficiently, and after the placement calculation is completed, the optimal placement of the nodes can be achieved even when the connectivity of the nodes is in a loop state by restoring the connectivity between the parent and child nodes. Can be obtained.

さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、上記特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。   Although the embodiments of the present invention have been described so far, the present invention can be implemented in various different embodiments within the scope of the technical idea described in the claims other than the embodiments described above. Is also good.

たとえば、本実施例では、親ノードを配置する上位のレイヤが上方に、子ノードを配置する下位のレイヤが下方にある有向グラフに対して本発明を適用した場合について説明してきたが、本発明はこれに限定されず、上下が反転した有向グラフや、横向きになった有効グラフなどにも本発明を同様に適用することができる。   For example, in the present embodiment, a case has been described in which the present invention is applied to a directed graph in which an upper layer in which a parent node is disposed is above and a lower layer in which a child node is disposed is below. However, the present invention is not limited to this, and the present invention can be similarly applied to a directed graph in which the top and bottom are inverted, an effective graph that is horizontally oriented, and the like.

また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。   In addition, among the processes described in this embodiment, all or part of the processes described as being performed automatically can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method.

この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。   In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-mentioned document and drawings can be arbitrarily changed unless otherwise specified.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。   Each component of each illustrated device is functionally conceptual and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.

さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。   Further, all or any part of each processing function performed in each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.

(付記1)2つのノードを連結する方向性のあるエッジ、連結元となる親ノードおよび連結先となる子ノードにより構成される有向グラフにおけるノードの配置位置を算出する処理で用いられるノード位置算出プログラムであって、
前記親ノードが子ノードよりも上位の階層に割り当てられた有向グラフに含まれるノードの各階層内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、該遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として記憶する記憶手順と、
前記記憶手順により記憶された染色体に基づいて階層ごとのノードの配置位置を遺伝的アルゴリズムにより算出する算出手順と、
をコンピュータに実行させることを特徴とするノード位置算出プログラム。
(Supplementary note 1) A node position calculation program used in a process for calculating the arrangement position of a node in a directed graph composed of a directional edge that connects two nodes, a parent node that is a connection source, and a child node that is a connection destination Because
One-dimensional position information in each layer of nodes included in the directed graph in which the parent node is assigned to a higher layer than the child node is used as a gene used in a genetic algorithm, and a sequence constituted by the gene is genetically A storage procedure for storing the chromosome used in the algorithm;
A calculation procedure for calculating the placement position of the node for each hierarchy based on the chromosome stored by the storage procedure by a genetic algorithm;
A node position calculation program for causing a computer to execute.

(付記2)親ノードと子ノードとの間の連結関係に基づいて有向グラフに含まれる各ノードを前記親ノードが子ノードよりも上位の階層に属するように各階層に割り当てるノード割当手順をさらに含み、前記記憶手順は、前記ノード割当手順により各階層に割り当てられたノードの各階層内での1次元位置情報を前記遺伝子とし、該遺伝子により構成される配列を前記染色体として記憶することを特徴とする付記1に記載のノード位置算出プログラム。 (Additional remark 2) The node allocation procedure which further allocates each node contained in the directed graph to each hierarchy so that the said parent node belongs to a hierarchy higher than a child node based on the connection relation between a parent node and a child node is further included The storage procedure is characterized in that one-dimensional position information in each hierarchy of nodes assigned to each hierarchy by the node assignment procedure is used as the gene, and a sequence constituted by the gene is stored as the chromosome. The node position calculation program according to appendix 1.

(付記3)前記ノード割当手順は、親ノードと子ノードとが複数の階層をまたいで連結されている場合に、該親ノードと子ノードとの双方に連結されるダミーのノードを該親ノードおよび子ノードの組に対して1つ生成し、生成したダミーのノードを前記複数の階層に割り当てることを特徴とする付記2に記載のノード位置算出プログラム。 (Supplementary Note 3) In the node assignment procedure, when a parent node and a child node are connected across a plurality of hierarchies, a dummy node connected to both the parent node and the child node is assigned to the parent node. The node position calculation program according to appendix 2, wherein one is generated for each set of child nodes and the generated dummy nodes are assigned to the plurality of hierarchies.

(付記4)前記ノード割当手順は、有向グラフに含まれる複数のノードの連結関係がループ状態にあり、親ノードが子ノードよりも上位の階層に割り当てることができない場合に、該親ノードと子ノードとの間の連結元および連結先の連結関係を逆転させ、該連結関係を逆転させた親ノードおよび子ノードを各階層に割り当てることを特徴とする付記2または3に記載のノード位置算出プログラム。 (Supplementary Note 4) The node assignment procedure is performed when the connection relationship of a plurality of nodes included in the directed graph is in a loop state and the parent node cannot be assigned to a higher hierarchy than the child node. 4. The node position calculation program according to appendix 2 or 3, wherein the connection relation between the connection source and the connection destination is reversed, and the parent node and the child node whose connection relation is reversed are assigned to each hierarchy.

(付記5)2つのノードを連結する方向性のあるエッジ、連結元となる親ノードおよび連結先となる子ノードにより構成される有向グラフにおけるノードの配置位置を算出するノード位置算出方法であって、
前記親ノードが子ノードよりも上位の階層に割り当てられた有向グラフに含まれるノードの各階層内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、該遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として記憶する記憶工程と、
前記記憶工程により記憶された染色体に基づいて階層ごとのノードの配置位置を遺伝的アルゴリズムにより算出する算出工程と、
を含んだことを特徴とするノード位置算出方法。
(Supplementary Note 5) A node position calculation method for calculating the position of a node in a directed graph composed of a directional edge that connects two nodes, a parent node that is a connection source, and a child node that is a connection destination,
One-dimensional position information in each layer of nodes included in the directed graph in which the parent node is assigned to a higher layer than the child node is used as a gene used in a genetic algorithm, and a sequence constituted by the gene is genetically A storage step of storing as chromosomes used in the algorithm;
A calculation step of calculating a placement position of the node for each hierarchy based on the chromosome stored by the storage step by a genetic algorithm;
The node position calculation method characterized by including.

(付記6)2つのノードを連結する方向性のあるエッジ、連結元となる親ノードおよび連結先となる子ノードにより構成される有向グラフにおけるノードの配置位置を算出するノード位置算出装置であって、
前記親ノードが子ノードよりも上位の階層に割り当てられた有向グラフに含まれるノードの各階層内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、該遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として記憶する記憶手段と、
前記記憶手段により記憶された染色体に基づいて階層ごとのノードの配置位置を遺伝的アルゴリズムにより算出する算出手段と、
を備えたことを特徴とするノード位置算出装置。
(Supplementary Note 6) A node position calculation device that calculates a position of a node in a directed graph composed of a directional edge that connects two nodes, a parent node that is a connection source, and a child node that is a connection destination,
One-dimensional position information in each layer of nodes included in the directed graph in which the parent node is assigned to a higher layer than the child node is used as a gene used in a genetic algorithm, and a sequence constituted by the gene is genetically Storage means for storing as chromosomes used in the algorithm;
Calculating means for calculating a placement position of the node for each hierarchy based on the chromosome stored by the storage means by a genetic algorithm;
A node position calculation apparatus comprising:

以上のように、本発明にかかるノード位置算出プログラム、ノード位置算出方法およびノード位置算出装置は、ノード数が多い場合でもノードの配置計算を迅速かつ効率的におこなうことが必要なノード位置算出システムに有用である。   As described above, the node position calculation program, the node position calculation method, and the node position calculation apparatus according to the present invention require a node position calculation system that needs to perform node arrangement calculation quickly and efficiently even when the number of nodes is large. Useful for.

本実施例に係るノード位置算出装置の機能的構成を示す機能ブロック図である。It is a functional block diagram which shows the functional structure of the node position calculation apparatus which concerns on a present Example. 各ノードを複数のレイヤに割り当てる処理について説明する説明図である。It is explanatory drawing explaining the process which allocates each node to a some layer. ダミーノードをレイヤに割り当てる処理について説明する説明図である。It is explanatory drawing explaining the process which allocates a dummy node to a layer. 親ノードおよび子ノードの連結関係を逆転させる処理について説明する説明図である。It is explanatory drawing explaining the process which reverses the connection relation of a parent node and a child node. ノードの最適な配置位置の算出例を示す図である。It is a figure which shows the example of calculation of the optimal arrangement position of a node. 図5に示したノード配置に対応する染色体の例を示す図である。It is a figure which shows the example of the chromosome corresponding to the node arrangement | positioning shown in FIG. ノード間の連結関係を記憶したノードパスデータ70の一例を示す図である。It is a figure which shows an example of the node path data 70 which memorize | stored the connection relation between nodes. ノードの配置状況を評価する評価処理について説明する図である。It is a figure explaining the evaluation process which evaluates the arrangement | positioning condition of a node. ダミーノードがある場合のノードの最適な配置位置の算出例を示す図である。It is a figure which shows the example of calculation of the optimal arrangement position of a node in case there exists a dummy node. 図9に示したノード配置に対応する染色体の例を示す図である。It is a figure which shows the example of the chromosome corresponding to the node arrangement | positioning shown in FIG. ノード位置算出装置がおこなうノード配置処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the node arrangement | positioning process which a node position calculation apparatus performs. 本実施例に係るコンピュータシステム200の構成を示すシステム構成図である。It is a system configuration figure showing the composition of computer system 200 concerning this example. 図12に示したコンピュータシステム200に係る本体部201の構成を示すブロック図である。It is a block diagram which shows the structure of the main-body part 201 which concerns on the computer system 200 shown in FIG. ネットワーク状の有向グラフの一例を示す図である。It is a figure which shows an example of a network-shaped directed graph. 従来のノード配置アルゴリズムを説明する説明図である。It is explanatory drawing explaining the conventional node arrangement | positioning algorithm.

符号の説明Explanation of symbols

10 入力部
11 表示部
12 主記憶部
13 補助記憶部
14 ノード割当部
14a レイヤ設定部
14b ダミーノード追加部
14c ループ切断部
15 ノード位置算出部
16 ノード配置部
17 制御部
60、61、100、101 染色体
70 ノードパスデータ
DESCRIPTION OF SYMBOLS 10 Input part 11 Display part 12 Main memory part 13 Auxiliary memory part 14 Node allocation part 14a Layer setting part 14b Dummy node addition part 14c Loop cutting part 15 Node position calculation part 16 Node arrangement part 17 Control part 60, 61, 100, 101 Chromosome 70 node path data

Claims (5)

2つのノードを連結する方向性のあるエッジ、連結元となる親ノードおよび連結先となる子ノードにより構成される有向グラフにおけるノードの配置位置を算出する処理で用いられるノード位置算出プログラムであって、
前記親ノードが子ノードよりも上位の階層に割り当てられた有向グラフに含まれるノードの各階層内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、該遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として記憶する記憶手順と、
前記記憶手順により記憶された染色体に基づいて階層ごとのノードの配置位置を遺伝的アルゴリズムにより算出する算出手順と、
をコンピュータに実行させることを特徴とするノード位置算出プログラム。
A node position calculation program used in a process of calculating a placement position of a node in a directed graph composed of a directional edge that connects two nodes, a parent node that is a connection source, and a child node that is a connection destination,
One-dimensional position information in each layer of nodes included in the directed graph in which the parent node is assigned to a higher layer than the child node is used as a gene used in a genetic algorithm, and a sequence constituted by the gene is genetically A storage procedure for storing the chromosome used in the algorithm;
A calculation procedure for calculating the placement position of the node for each hierarchy based on the chromosome stored by the storage procedure by a genetic algorithm;
A node position calculation program for causing a computer to execute.
親ノードと子ノードとの間の連結関係に基づいて有向グラフに含まれる各ノードを前記親ノードが子ノードよりも上位の階層に属するように各階層に割り当てるノード割当手順をさらに含み、前記記憶手順は、前記ノード割当手順により各階層に割り当てられたノードの各階層内での1次元位置情報を前記遺伝子とし、該遺伝子により構成される配列を前記染色体として記憶することを特徴とする請求項1に記載のノード位置算出プログラム。   A node allocation procedure for allocating each node included in the directed graph to each hierarchy so that the parent node belongs to a hierarchy higher than the child node based on a connection relation between the parent node and the child node; 2. The one-dimensional position information in each hierarchy of nodes assigned to each hierarchy by the node assignment procedure is used as the gene, and a sequence constituted by the gene is stored as the chromosome. Node position calculation program described in 1. 前記ノード割当手順は、親ノードと子ノードとが複数の階層をまたいで連結されている場合に、該親ノードと子ノードとの双方に連結されるダミーのノードを該親ノードおよび子ノードの組に対して1つ生成し、生成したダミーのノードを前記複数の階層に割り当てることを特徴とする請求項2に記載のノード位置算出プログラム。   In the node assignment procedure, when a parent node and a child node are connected across a plurality of hierarchies, a dummy node connected to both the parent node and the child node is assigned to the parent node and the child node. The node position calculation program according to claim 2, wherein one is generated for each set, and the generated dummy nodes are assigned to the plurality of hierarchies. 前記ノード割当手順は、有向グラフに含まれる複数のノードの連結関係がループ状態にあり、親ノードが子ノードよりも上位の階層に割り当てることができない場合に、該親ノードと子ノードとの間の連結元および連結先の連結関係を逆転させ、該連結関係を逆転させた親ノードおよび子ノードを各階層に割り当てることを特徴とする請求項2または3に記載のノード位置算出プログラム。   In the node assignment procedure, when a connection relation of a plurality of nodes included in the directed graph is in a loop state and the parent node cannot be assigned to a hierarchy higher than the child node, the node assignment procedure between the parent node and the child node is performed. The node position calculation program according to claim 2 or 3, wherein the connection relationship between the connection source and the connection destination is reversed, and the parent node and the child node whose connection relationship is reversed are assigned to each hierarchy. 2つのノードを連結する方向性のあるエッジ、連結元となる親ノードおよび連結先となる子ノードにより構成される有向グラフにおけるノードの配置位置を算出するノード位置算出装置であって、
前記親ノードが子ノードよりも上位の階層に割り当てられた有向グラフに含まれるノードの各階層内での1次元位置情報を遺伝的アルゴリズムで用いられる遺伝子とし、該遺伝子により構成される配列を遺伝的アルゴリズムで用いられる染色体として記憶する記憶手段と、
前記記憶手段により記憶された染色体に基づいて階層ごとのノードの配置位置を遺伝的アルゴリズムにより算出する算出手段と、
を備えたことを特徴とするノード位置算出装置。
A node position calculation device that calculates an arrangement position of a node in a directed graph composed of a directional edge that connects two nodes, a parent node that is a connection source, and a child node that is a connection destination,
One-dimensional position information in each layer of nodes included in the directed graph in which the parent node is assigned to a higher layer than the child node is used as a gene used in a genetic algorithm, and a sequence constituted by the gene is genetically Storage means for storing as chromosomes used in the algorithm;
Calculating means for calculating a placement position of the node for each hierarchy based on the chromosome stored by the storage means by a genetic algorithm;
A node position calculation apparatus comprising:
JP2004139064A 2004-05-07 2004-05-07 Node position calculation program and node position calculation apparatus Expired - Fee Related JP4246666B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004139064A JP4246666B2 (en) 2004-05-07 2004-05-07 Node position calculation program and node position calculation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004139064A JP4246666B2 (en) 2004-05-07 2004-05-07 Node position calculation program and node position calculation apparatus

Publications (2)

Publication Number Publication Date
JP2005323109A JP2005323109A (en) 2005-11-17
JP4246666B2 true JP4246666B2 (en) 2009-04-02

Family

ID=35470053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004139064A Expired - Fee Related JP4246666B2 (en) 2004-05-07 2004-05-07 Node position calculation program and node position calculation apparatus

Country Status (1)

Country Link
JP (1) JP4246666B2 (en)

Also Published As

Publication number Publication date
JP2005323109A (en) 2005-11-17

Similar Documents

Publication Publication Date Title
Barkaoui et al. An adaptive evolutionary approach for real-time vehicle routing and dispatching
US8028266B2 (en) System and method for automated placement in custom VLSI circuit design with schematic-driven placement
US7624367B2 (en) Method and system for routing
US6889370B1 (en) Method and apparatus for selecting and aligning cells using a placement tool
US20160217424A1 (en) Graphical modeling of position hierarchies
US6732114B1 (en) System and method for creating a customizable network diagram
US20060037019A1 (en) Tree-to-graph folding procedure for systems engineering requirements
US7171635B2 (en) Method and apparatus for routing
CN104978755A (en) Raph generating device, graph generating method and graph generating program
JP6959975B2 (en) How to determine computer system and resource allocation
US7047513B2 (en) Method and apparatus for searching for a three-dimensional global path
US20050155006A1 (en) Constraint data management for electronic design automation
JP6886101B2 (en) Information processing equipment, information processing methods, programs
JP2018073228A (en) Cable wiring program, information processing device, and cable wiring method
Mousaei et al. Optimizing heavy lift plans for industrial construction sites using Dijkstra’s algorithm
Aier et al. Complexity levels of representing dynamics in EA planning
CN105956163A (en) Method and device for managing graph database
US20110093829A1 (en) Computer product, design support apparatus, and design support method
JP4246666B2 (en) Node position calculation program and node position calculation apparatus
JP3726903B2 (en) Information processing system and work flow management method by information processing system
JP2011198143A (en) Design support program, design support device, and design support method
Farajmandi et al. A decision support tool for planning module installation in industrial construction
JP2006338309A (en) Project management system
Six et al. Automated visualization of process diagrams
KR101995885B1 (en) Structure Information Modeling System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081009

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090106

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090108

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140116

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees