JP7275864B2 - Drawing method, drawing program and drawing device - Google Patents
Drawing method, drawing program and drawing device Download PDFInfo
- Publication number
- JP7275864B2 JP7275864B2 JP2019100763A JP2019100763A JP7275864B2 JP 7275864 B2 JP7275864 B2 JP 7275864B2 JP 2019100763 A JP2019100763 A JP 2019100763A JP 2019100763 A JP2019100763 A JP 2019100763A JP 7275864 B2 JP7275864 B2 JP 7275864B2
- Authority
- JP
- Japan
- Prior art keywords
- nodes
- node
- belonging
- arrangement
- sets
- 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.)
- Active
Links
Images
Landscapes
- Image Generation (AREA)
Description
本発明は、描画方法、描画プログラムおよび描画装置に関する。 The present invention relates to a drawing method, a drawing program, and a drawing apparatus.
ソフトウェアの構成やデータの構成などを描画するグラフ描画アルゴリズムを利用した力学モデルが利用されている。近年では、ノードとノードを接続するエッジとから成るグラフデータであって、ノード間には斥力を発生させ、エッジには引力を発生させることで、関係のあるノードは近く、関係の薄いノードは遠くに配置するスプリングアルゴリズムが知られている。また、親と子の関係を有するツリー上に記述する階層型データモデルや、グラフの一部を一つのまとまりとしてとらえ、さらにその上位でそれらのまとまりの一部を一つのまとまりとしてとらえることを繰り返すことで、グラフ全体の構造を示す階層型グラフ描画などが知られている。 A dynamic model using a graph drawing algorithm that draws the configuration of software and the configuration of data is used. In recent years, graph data consists of nodes and edges that connect the nodes. By generating repulsive force between nodes and attractive force between edges, related nodes are close and weakly related nodes are Spatial spring algorithms are known. In addition, a hierarchical data model described on a tree that has a parent-child relationship, and a part of the graph are regarded as one unity, and furthermore, a part of those units are regarded as one unity above it, and it is repeated. Hierarchical graph drawing that shows the structure of the entire graph is known.
しかしながら、上記技術では、視覚的に理解しやすいグラフを描画することが難しい。具体的には、力学モデルで描画すると、全体にバランスよく配置されるが、属性間の関係は視覚的にわかりにくい。 However, with the above technology, it is difficult to draw a visually understandable graph. Specifically, when drawn with a dynamic model, they are arranged in a well-balanced manner overall, but it is difficult to visually understand the relationship between attributes.
例えば、スプリングアルゴリズムでは、同じ属性のノードが散らばってしまうため、人が特徴を見分けにくく、描画のたびにノードの場所が大きく変わってしまう。階層型データモデルでは、親と子が1対多の関係しか許容されていないので、汎用性が低く、階層型グラフ描画では、構造は見やすくなるが、属性を意識していないので、属性間の関係性を描画できない。 For example, in the Spring algorithm, nodes with the same attribute are scattered, making it difficult for humans to distinguish features, and the locations of the nodes change significantly each time they are drawn. Hierarchical data models allow only one-to-many relationships between parents and children, so they are not versatile. Hierarchical graph drawing makes it easier to see the structure, but does not consider attributes, so there is no inter-attribute Unable to draw relationships.
一つの側面では、視覚的に理解しやすいグラフを描画することができる描画方法、描画プログラムおよび描画装置を提供することを目的とする。 An object of one aspect is to provide a drawing method, a drawing program, and a drawing device that can draw a visually easy-to-understand graph.
第1の案では、描画方法は、コンピュータが、データ構造が有する複数のノードそれぞれに付与される属性ごとに描画範囲を特定する処理を実行する。描画方法は、コンピュータが、特定した描画範囲に各属性を有するノードを配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させる処理を実行する。描画方法は、コンピュータが、特定した描画範囲に前記各属性を有しないノードを配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させる処理を実行する。描画方法は、コンピュータが、前記データ構造の各ノードを配置したグラフデータを生成する処理を実行する。 In the first plan, the rendering method is such that the computer executes processing for specifying a rendering range for each attribute assigned to each of a plurality of nodes of the data structure. In the drawing method, a computer executes a process of generating repulsive forces between nodes and attractive forces on edges while arranging nodes having each attribute in a specified drawing range. In the rendering method, the computer executes a process of generating repulsive forces between nodes and attractive forces on edges while arranging nodes that do not have the attributes in a specified rendering range. In the drawing method, a computer executes processing for generating graph data in which each node of the data structure is arranged.
一実施形態によれば、視覚的に理解しやすいグラフを描画することができる。 According to one embodiment, it is possible to draw a visually easy-to-understand graph.
以下に、本願の開示する描画方法、描画プログラムおよび描画装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。 Hereinafter, embodiments of the drawing method, the drawing program, and the drawing apparatus disclosed in the present application will be described in detail based on the drawings. In addition, this invention is not limited by this Example. Moreover, each embodiment can be appropriately combined within a range without contradiction.
[描画装置の機能構成]
図1は、実施例1にかかる描画装置10の機能構成を示す機能ブロック図である。図1に示す描画装置10は、ソフトウェアの構成、データの構成、ネットワークの構成、属性間の関係性などの各種データ構造を描画するグラフ描画装置の一例であり、例えばサーバ装置などである。この描画装置は、ノードの集合と、ノード間の関係を示すエッジの集合で表されるデータ構造を、一定の範囲内に、人間が見やすく自動配置する。
[Functional Configuration of Rendering Device]
FIG. 1 is a functional block diagram showing the functional configuration of the
ここで、描画装置10のグラフ描画について説明する。図2は、実施例1にかかるグラフ描画を説明する図である。図2は、属性を四角または楕円で示し、ノードを円で示す。図2の(a)に示すように、一般的な力学モデルを用いてデータ構造を描画すると、全体的にバランスよく配置されるが、属性間の関係は視覚的にわかりにくい。つまり、属性とノードとのつながりはわかりやすく、どの属性がどのノードを有するかは、視覚的に認識しやすい。しかし、属性間では、つながりがあるかないかはわかるものの、そのつながりがどのような関係性を有するのかまでを視覚的に認識することが難しい。
Graph drawing by the
また、図2の(b)に示すように、属性ごとにまとめようとすると、ノードが複数の属性を有することがあるので、すべてのノードがまとまってしまう可能性がある。例えば、図2の(b)では、属性として「性別」、「職業」、「趣味」、「住所」を有する各ノードについて、それぞれのノードがいずれか1つの属性で共通しているので、同じ属性を近づけようとすると、4つのノードが1つの場所にまとまってしまい、関係性を把握することができない。 Moreover, as shown in FIG. 2B, if it is attempted to group by attribute, all nodes may be grouped together because a node may have a plurality of attributes. For example, in (b) of FIG. 2, for each node having the attributes "sex", "occupation", "hobbies", and "address", each node has one attribute in common. If you try to bring the attributes closer together, the four nodes will end up in one place, and you won't be able to grasp the relationship.
また、図2の(c)に示すように、スプリングアルゴリズムなどを用いて、属性に引力をつけてまとめようとすると、引力が強いと図のように団子になってしまい、弱いとノードの反発力のほうが強くなってしまい、ノードが集合しない。また、ノード間の関係がないにも関わらず、同じ属性のノード同士がくっついてしまうので、関係があるように見えてしまることがある。また、複数属性を持っているノードもあるので、関係ないノードも集合の一部として見えてしまうことがある。 In addition, as shown in Fig. 2(c), if we try to combine the attributes with attractive force using a spring algorithm or the like, if the attractive force is strong, the nodes will become lumps as shown in the figure, and if the attractive force is weak, the nodes will repel each other. The force becomes stronger and the nodes do not gather. In addition, even though there is no relationship between nodes, nodes with the same attribute are attached to each other, which may make it appear that there is a relationship. Also, since some nodes have multiple attributes, unrelated nodes may be seen as part of the set.
そこで、実施例1にかかる描画装置10は、ノードの属性ごとに集合を生成し、集合間に閾値(R%)の有向性の関係がある場合、その関係を記録する。そして、描画装置10は、求めた関係性をもとに集合間の位置の組み合わせを求め、求めた位置関係を保持したまま、集合に属するノードを描画する。その後、描画装置10は、残りのノードを描画した後、描画した配置をもとに、最も安定している配置を採用する。このようにすることで、図2の(d)に示すように、描画装置10は、意味的に関係のある属性のノードを優先して描画することで、ユーザに直感的に理解しやすくさせることができる。
Therefore, the
図1に戻り、描画装置10は、通信部11、記憶部12、制御部20を有する。通信部11は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、描画対象のデータを管理端末から受信し、描画結果を管理端末に送信する。
Returning to FIG. 1 , the
記憶部12は、データや制御部20が実行するプログラムを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。例えば、記憶部12は、ノードデータDB13、集合データDB14、エッジ情報DB15、配置結果DB16を有する。また、記憶部12は、描画対象のデータの構造などを含む情報を記憶する。
The
ノードデータDB13は、描画対象のデータ構造におけるノードに関する情報を記憶するデータベースである。具体的には、ノードデータDB13は、ノードごとに、各ノードに設定される属性を記憶する。例えば、ノードデータDB13は、「ノード、属性」として「ノードA、属性(性別:男性、職業:会社員)」などを記憶する。また、ノードデータDB13は、制御部20によって生成されたグラフ構造のノードに関する情報として、接続されるノードに発生させる斥力などを記憶する。
The
集合データDB14は、ノードの集合に関する情報を記憶するデータベースである。例えば、集合データDB14は、制御部20によって生成された集合ごとに、当該集合に属するノードや集合の属性などを記憶する。
The set data DB 14 is a database that stores information about sets of nodes. For example, the set data DB 14 stores, for each set generated by the
エッジ情報DB15は、エッジに関する情報を記憶するデータベースである。例えば、集合データDB14は、制御部20によって生成されたグラフ構造のエッジに関する情報として、接続されるノード、エッジに発生させる引力などを記憶する。
The
配置結果DB16は、グラフ構造の配置結果を記憶するデータベースである。例えば、配置結果DB16は、制御部20によって生成されたグラフ構造に関する情報として、ノード、ノードの集合、ノード間のエッジ、集合間のエッジなどの関する情報を記憶する。
The placement result DB 16 is a database that stores the placement results of the graph structure. For example, the placement result DB 16 stores information on nodes, sets of nodes, edges between nodes, edges between sets, etc. as information on the graph structure generated by the
制御部20は、描画装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、検出部21、探索部22、拡張探索部23、配置部24を有する。なお、検出部21、探索部22、拡張探索部23、配置部24は、プロセッサが有する電子回路やプロセッサが実行するプロセスの一例などである。
The
ここで、本実施例で使用するグラフ表記について説明する。図3と図4は、グラフ表記のルールを説明する図である。図3に示すように、一例として、集合A11、A12、A13、A21、A22を有し、集合A11と集合A12との間は関係x11を有し、集合A12と集合A13との間は関係x12を有し、集合A11と集合A21との間は関係y11を有し、集合A13と集合A22との間は関係z22を有するとする。また、集合A11には、ノードn2、n3、n4が含まれ、集合A12には、ノードn5、n6が含まれ、集合A13には、ノードn7、n8が含まれ、集合A21には、ノードn1が含まれ、集合A22には、ノードn9が含まれるとする。なお、見やすくするなどの便宜上、各領域を同じ大きさの長方形にしているが、形、大きさともに同じである必要はない。 Here, the graph notation used in this embodiment will be described. 3 and 4 are diagrams for explaining the rules of graph notation. As shown in FIG. 3, as an example, we have sets A 11 , A 12 , A 13 , A 21 , A 22 , a relationship x 11 between sets A 11 and A 12 , and set A 12 and set A 13 have relation x 12 , set A 11 and set A 21 have relation y 11 , and set A 13 and set A 22 have relation z 22 . do. The set A 11 includes nodes n2, n3, and n4, the set A 12 includes nodes n5 and n6, the set A 13 includes nodes n7 and n8, and the set A 21 includes contains node n1 and set A 22 contains node n9. Note that each area is made to be a rectangle of the same size for convenience such as making it easier to see, but it is not necessary to have the same shape and size.
このようなグラフ構造において、集合の行列を図4の(a)のように表記し、関係性の行列を図4の(b)のように表記するものとする。ここで、Aijは、i行j列に属するノードの集合である。xijは、i行j列の集合とi行(j+1)列の集合との関係であり、yijは、i行j列の集合と(i+1)行j列の集合との関係である。zijは、i行j列の集合と(i+1)行(j+1)列の集合との関係、もしくは、i行(j+1)列の集合と(i+1)行j列の集合との関係である。なお、集合の配置の段階でクロスの関係性は許容しないこととする。 In such a graph structure, the set matrix is represented as shown in FIG. 4(a), and the relationship matrix is represented as shown in FIG. 4(b). Here, A ij is a set of nodes belonging to row i and column j. x ij is the relationship between the set of i rows and j columns and the set of i rows and (j+1) columns, and y ij is the relationship between the i row and j column sets and the (i+1) rows and j columns. z ij is the relationship between the set of i rows and j columns and the set of (i+1) rows and (j+1) columns, or the relationship between the set of i rows and (j+1) columns and the set of (i+1) rows and j columns. Note that cross relationships are not allowed at the stage of arranging sets.
また、集合の行列において、ノードが存在する場所には1が設定され、ノードがない場所には0が設定される。具体的には、図3においては集合A11、A12、A13、A21、A22が存在し、集合A23が存在しないことから、図4の(a)に示す集合の行列においては、集合A11、A12、A13、A21、A22のそれぞれの位置には1が設定され、集合A23の位置には0が設定される。 Also, in the set matrix, 1 is set where there is a node, and 0 is set where there is no node. Specifically, in FIG. 3, the sets A 11 , A 12 , A 13 , A 21 , and A 22 exist, but the set A 23 does not exist. , sets A 11 , A 12 , A 13 , A 21 , and A 22 are set to 1, and the positions of set A 23 are set to 0.
また、図3において横方向の関係性は、関係x11とx12とが存在するので、横方向の関係性を示す行列は、図4の(b)に示すように、関係x11とx12との位置に1が設定され、その他のx21とx22の位置には0が設定される。なお、横方向の関係性の行列において、0は関係性なし、1は右方向への関係性あり、2は左方向への関係性あり、3は積集合の関係性あり、4は同一の集合を示す。 Also, in FIG. 3, the relationship in the horizontal direction includes the relationships x11 and x12 , so the matrix showing the relationship in the horizontal direction is the relationship x11 and x Positions 12 and 12 are set to 1, and the other x21 and x22 positions are set to 0. In the horizontal relationship matrix, 0 indicates no relationship, 1 indicates rightward relation, 2 indicates leftward relation, 3 indicates product set relation, and 4 indicates same relation. indicates a set.
また、図3において縦方向の関係性は、関係y11が存在するので、縦方向の関係性を示す行列は、図4の(b)に示すように、関係y11の位置に1が設定され、その他のy12とy13の位置には0が設定される。なお、縦方向の関係性の行列において、0は関係性なし、1は下方向への関係性あり、2は上方向への関係性あり、3は積集合の関係性あり、4は同一の集合を示す。 In FIG. 3, since there is a relationship y11 in the vertical direction, 1 is set at the position of relationship y11 in the matrix showing the relationship in the vertical direction, as shown in FIG. 0 is set to the other y12 and y13 positions. In the vertical relationship matrix, 0 indicates no relationship, 1 indicates a downward relationship, 2 indicates an upward relationship, 3 indicates a product set relationship, and 4 indicates the same relationship. indicates a set.
また、図3において交点(斜め)方向の関係性は、関係z11が存在するので、交点方向の関係性を示す行列は、図4の(b)に示すように、関係z11の位置に1が設定され、その他のz12の位置には0が設定される。なお、交点方向の関係性の行列において、0は関係性なし、1は右上方向への関係性あり、2は右下方向への関係性あり、3は左下方向への関係性あり、4は左上方向への関係性あり、5は右上方向と左下方向の積集合の関係性あり、6は左上方向と右下方向の積集合の関係性あり、7は同一の集合を示す。 Also, in FIG. 3 , the relationship in the intersection (diagonal) direction has the relationship z11 . It is set to 1 and the other z 12 positions are set to 0's. In the matrix of relationships in the intersection direction, 0 indicates no relationship, 1 indicates a relationship in the upper right direction, 2 indicates a relationship in the lower right direction, 3 indicates a relationship in the lower left direction, and 4 indicates a relationship in the lower left direction. There is a relation in the upper left direction, 5 indicates an intersection relationship between the upper right direction and the lower left direction, 6 indicates an intersection relation between the upper left direction and the lower right direction, and 7 indicates the same set.
このような表記を前提として、各処理部を説明する。図1に戻り、検出部21は、ノードの集合とノード間の関係性とを検出する処理部である。具体的には、検出部21は、ノードデータDB13等を参照し、各ノードが有する属性を特定し、同じ属性を有するノードの集合を生成する。このとき、1つのノードに複数の属性が設定されている場合、当該ノードは複数の集合に属することもある。
Based on such notation, each processing unit will be described. Returning to FIG. 1, the detection unit 21 is a processing unit that detects a set of nodes and relationships between the nodes. Specifically, the detection unit 21 refers to the
そして、検出部21は、対象の集合に入力する(INする)集合や対象の集合に入力される(OUTする)集合など、属性間の関係性にしたがって、有向性の関係がある集合間を検出する。ここで、有向性の関係性を判定する閾値(R値)は、様々な手法で決定することができる。例えば、対象とする集合のINとOUTを別に考える手法、対象とする集合のINの数とINしてくる元の集合のOUTの数から算出する手法、対象とする集合のOUTの数とOUT先の集合のINの数から算出する手法などがある。また、例えばノード数が50:50の場合と1:99の場合には後者のRのほうが高くなるように算出する手法、集合内のノード数に対するエッジ数の比率など、集合間のノード数によって変動させることもでき、全体のノード数とエッジ数の比率によってRを変動させることもできる。また、100以下の任意の値を設定することもできる。 Then, the detection unit 21 detects a set that has a directional relationship according to the relationship between attributes, such as a set that is input (IN) to the target set and a set that is input (OUT) to the target set. to detect Here, the threshold value (R value) for determining the directional relationship can be determined by various methods. For example, a method of considering IN and OUT of the target set separately, a method of calculating from the number of IN of the target set and the number of OUT of the original set that comes IN, the number of OUT of the target set and OUT There is a method of calculating from the number of INs in the previous set. Also, for example, when the number of nodes is 50:50 and 1:99, the latter R is calculated so that it is higher, the ratio of the number of edges to the number of nodes in the set, etc. Depending on the number of nodes between sets It can also be varied, and R can also be varied according to the ratio of the total number of nodes to the number of edges. Any value less than or equal to 100 can also be set.
また、検出部21は、有向性がある集合間において、集合があれば結合し、集合内のノードの一部が一致していれば積集合を生成し、部分集合があればまとめた集合とする。そして、検出部21は、生成した集合や関係性を、集合データDB14等に格納する。 In addition, the detection unit 21 connects sets between directed sets if there is a set, generates a product set if a part of the nodes in the set matches, and if there is a subset, puts together a set and Then, the detection unit 21 stores the generated sets and relationships in the set data DB 14 or the like.
探索部22は、集合の配置の組み合わせを探索する処理部である。具体的には、探索部22は、検出部21によって検出されたノードの集合に関する情報を集合データDB14等から取得し、集合の配置の組み合わせを探索し、その結果を記憶部12等に格納する。なお、詳細は、図8と図9を用いて後述する。
The
拡張探索部23は、集合の配置範囲を拡張した、集合の組み合わせを探索する処理部である。具体的には、探索部22よって探索された集合の配置の組み合わせを記憶部12等から取得し、集合の行列が0である位置に他の集合を配置した仮定を生成し、その仮定が成り立つか否かを判定することで、集合の配置範囲を拡大して探索する。そして、拡張探索部23は、その結果を記憶部12等に格納する。なお、詳細は、図10から図12を用いて後述する。
The
配置部24は、ノードの配置を実行する処理部である。具体的には、配置部24は、拡張探索部23による探索結果を記憶部12等から取得し、様々なノードの配置パターンを生成し、力学的に最も安定している配置パターンを特定する。例えば、配置部24は、特定の属性を有するノードを、特定した描画範囲に配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させるスプリングアルゴリズムで配置する。さらに、配置部24は、特定された属性を有しないノードを、特定した描画範囲外に配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させるスプリングアルゴリズムで配置する。そして、配置部24は、その結果を記憶部12等に格納する。なお、詳細は、図13から図17を用いて後述する。
The
[処理の流れ]
ここでは、上述した各処理部が実行する処理について、図面を用いて、処理の流れと具体的な例を詳細に説明する。
[Process flow]
Here, with reference to the drawings, a flow of processing and a specific example of the processing executed by each processing unit described above will be described in detail.
(全体的な流れ)
図5は、全体的な処理の流れを示すフローチャートである。図5に示すように、検出部21は、ノードの集合と関係性を抽出し(S101)、探索部22は、集合の配置の組み合わせを探索する(S102)。続いて、拡張探索部23は、集合の配置範囲拡張の組み合わせを探索し(S103)、配置部24は、ノードを配置する(S104)。
(overall flow)
FIG. 5 is a flowchart showing the overall flow of processing. As shown in FIG. 5, the detection unit 21 extracts a set of nodes and relationships (S101), and the
(ノードの集合と関係性の検出)
図6は、ノードの集合と関係性の検出処理の流れを示すフローチャートであり、図7は、ノードの集合と関係性の検出処理を説明する図である。
(Set of nodes and detection of relationships)
FIG. 6 is a flowchart showing the flow of node set and relationship detection processing, and FIG. 7 is a diagram for explaining the node set and relationship detection processing.
検出部21は、同じ属性を有するノードの集合Qiの集合Pを生成する(S201)。例えば、検出部21は、集合Qi・・・Qmを生成する(mは自然数)。 The detection unit 21 generates a set P of sets Qi of nodes having the same attribute (S201). For example, the detection unit 21 generates a set Q i . . . Q m (m is a natural number).
続いて、検出部21は、集合間にR%の有向性の関係があるものを検出する(S202)。例えば、図7の(a)に示すように、検出部21は、集合が有する属性間の関係等に基づき、集合Q1から集合Q2への関係、集合Q2から集合Q4への関係、集合Q8から集合Q7への関係、集合Q9から集合Q4への関係を抽出する。 Subsequently, the detection unit 21 detects groups having a directional relationship of R % (S202). For example, as shown in (a) of FIG. 7, the detection unit 21 determines the relationship between the set Q1 and the set Q2, and the relationship between the set Q2 and the set Q4 , based on the relationships between the attributes of the sets. , from set Q8 to set Q7 , and from set Q9 to set Q4 .
そして、検出部21は、有向性が検出された集合の中に同じ集合があれば結合する(S203)。例えば、図7の(b)に示すように、検出部21は、有向性が検出された集合群の中に、集合Q2と集合Q4とが複数回登場することから、これらをまとめることで、集合Q1-Q2-Q4の関係性と、集合Q9-集合Q4の関係性とを検出する。
Then, the detecting unit 21 joins the same set among the sets for which directivity is detected (S203). For example, as shown in (b) of FIG. 7 , the detection unit 21 collects
続いて、検出部21は、検出された各集合において、ノードの一部が一致している集合があれば積集合として格納する(S204)。例えば、図7の(b)と(c)に示すように、検出部21は、集合Q1にはノードxとノードyが含まれ、集合Q2にはノードyとノードzが含まれることから、ノードyが共通するので、ノードyを含む積集合Qkを生成する。 Subsequently, the detection unit 21 stores the detected set as a product set if there is a set in which a part of the node matches (S204). For example, as shown in (b) and (c) of FIG. 7, the detection unit 21 determines that the set Q1 includes nodes x and y, and the set Q2 includes nodes y and z. , generate the intersection Q k containing node y, since node y is common.
その後、検出部21は、生成された集合群の中に、部分集合があればそれらをまとめた集合として格納する(S205)。例えば、検出部21は、集合Q9には集合Q1とQ2が含まれる場合、これらをまとめて集合Q9とする。 After that, if there are subsets in the generated set group, the detection unit 21 stores them as a set (S205). For example, when the set Q9 includes the sets Q1 and Q2 , the detection unit 21 collectively sets them as the set Q9 .
(集合の配置の組み合わせ探索)
図8は、集合の配置の組み合わせの探索処理の流れを示すフローチャートであり、図9は、集合の配置の組み合わせの探索を説明する図である。
(Combination search for arrangement of sets)
FIG. 8 is a flowchart showing the flow of search processing for combinations of arrangement of sets, and FIG. 9 is a diagram for explaining the search for combinations of arrangement of sets.
図8に示すように、探索部22は、図6で生成された集合群Sから起点となる集合Tを任意に選択する(S301)。続いて、探索部22は、選択した集合Tに部分集合が含まれない場合(S302:No)、集合Tと有向性で結ばれた集合Uを集合Tの隣に配置する(S303)。一方、探索部22は、選択した集合Tに部分集合が含まれる場合(S302:Yes)、集合Tの部分集合と有向性で結ばれた集合Uを集合Tの隣に配置する(S304)。なお、集合Uが複数存在する場合は、任意の集合を1つ選択する。
As shown in FIG. 8, the
そして、探索部22は、有向性で結ばれた他の集合が存在するか否かを判定し(S305)、該当する他の集合が存在しない場合(S305:No)、すべての組み合わせが探索済みか否かを判定する(S306)。
Then, the
ここで、未探索の組み合わせが存在する場合(S306:No)、探索部22は、S305以降を繰り返す。一方、探索部22は、すべての組み合わせが探索済みである場合(S306:Yes)、探索された組み合わせを配列V(変数V)に格納し(S307)、集合の行列を変換することで重複するものを、1つ残して配列Vから除外する(S308)。
Here, if there is an unsearched combination (S306: No), the
また、S305において、探索部22は、有向性で結ばれた他の集合が存在する場合(S305:Yes)、有向性で結ばれた部分集合が存在するか否かを判定する(S309)。
In addition, in S305, if there is another directionally-connected set (S305: Yes), the searching
そして、探索部22は、有向性で結ばれた部分集合が存在する場合(S309:Yes)、部分集合と有向性で結ばれた集合を選択する(S310)。なお、有向性で結ばれた部分集合が存在しない場合(S309:No)、S310を実行することなく、S311が実行される。
Then, if there is a subset that is directionally connected (S309: Yes), the
その後、探索部22は、部分集合が配置できるか否かを判定し(S311)、配置できない場合(S311:No)、この配置の可能性がないとして破棄し(S312)、配置できる場合(S311:Yes)、有向性で結ばれた集合の隣に部分集合を配置する(S313)。
After that, the searching
(具体例)
図9を用いて具体例を説明する。図9では、集合A、集合B、集合C、集合D、集合Eを含む集合群Sにおいて、集合Aと集合Bとの間に関係性があり、集合Bと集合Cとの間に関係性があり、集合Dと集合Eとの間に関係性があるとする。また、集合Aと集合Bの共通部分は空集合であり、集合Bと集合Cの共通部分は空集合であり、集合Dと集合Eの共通部分は集合Fであるとする。
(Concrete example)
A specific example will be described with reference to FIG. In FIG. 9, in a set group S including set A, set B, set C, set D, and set E, there is a relationship between set A and set B, and a relationship between set B and set C. , and there is a relationship between sets D and E. It is also assumed that the intersection of set A and set B is an empty set, the intersection of set B and set C is an empty set, and the intersection of set D and set E is set F.
まず、探索部22は、集合Aを選択すると、集合Aと有向性で結ばれた集合Bを集合Aの隣に配置し、図9の(1)に示す[集合A,集合B]の行列を生成する。この行列では、集合Aから集合Bへの右方向に関係性があることから、横方向の関係性を示す行列に[1]が設定される。
First, when the
次に、探索部22は、集合Bと有向性で結ばれた集合Cが存在することから、集合Cの配置を検討する。具体的には、探索部22は、集合Bの隣に配置することで、図9の(2)に示す[集合A,集合B,集合B]の行列を生成する。この行列では、集合Aから集合Bへの右方向および集合Bから集合Cへの右方向に関係性があることから、横方向の関係性を示す行列に[1,1]が設定される。
Next, the searching
別配置として、探索部22は、集合Cを集合Bの右下に配置する配置を探索し、集合がない位置に0を設定することで、図9の(3)に示す2行3列の行列を生成する。この行列では、集合Aから集合Bへの右方向の行列に[1]、いずれの関係性もない縦方向の行列に[0]、集合Bから集合Cに該当する左上から右下への交点方向の行列に[2]が設定された各行列が生成される。
As another arrangement, the
別配置として、探索部22は、集合Bの下に集合Cを配置する配置を探索し、集合がない位置に0を設定することで、図9の(4)に示す2行2列の行列を生成する。この行列では、集合Aから集合Bへの右方向の行列に[1]、集合Bから集合Cへの下方向に行列[1]、いずれの関係性もない交点方向の行列に[0]が設定された各行列が生成される。
As another arrangement, the
別配置として、探索部22は、集合Aの下に集合Cを配置する配置を探索し、集合がない位置に0を設定することで、図9の(5)に示す2行2列の行列を生成する。この行列では、集合Aから集合Bへの右方向の行列に[1]、集合Aから集合Cへの下方向に行列[1]、集合Bから集合Cに該当する右上から左下への交点方向の行列に[3]が設定された各行列が生成される。
As another arrangement, the
このようにして、探索部22は、集合A、集合B、集合Cの配置として、上記(1)から(5)の5パターンを探索することができる。なお、探索部22は、(3)のパターンについては、(2)のパターンと(4)のパターンで代用可能なことから、対象外と判定して削除する。
In this way, the searching
同様に、探索部22は、集合Dと集合Eについても、集合Dと有向性で結ばれた集合Eを集合Aの隣に配置し、図9の(6)に示す[集合D,集合E]の行列を生成する。この行列では、集合と集合Eが積集合の関係性があることから、横方向の関係性を示す行列に[3]が設定される。
Similarly, with respect to sets D and E, the
(集合の配置範囲拡張の組み合わせを探索)
図10は、集合の配置範囲を拡張した組み合わせの探索処理の流れを示すフローチャートであり、図11は、集合の配置範囲の拡張探索を説明する図であり、図12は、集合の配置範囲の拡張探索結果を説明する図である。
(Search for a combination of set placement range expansion)
FIG. 10 is a flow chart showing the flow of search processing for combinations in which the arrangement range of sets is expanded, FIG. 11 is a diagram for explaining the expanded search for the arrangement range of sets, and FIG. It is a figure explaining an extended search result.
図10に示すように、拡張探索部23は、配列V(変数V)に未処理の組み合わせが残っている場合(S401:Yes)、配列Vから一つの組み合わせWを取り出して、配列X(変数X)に格納する(S402)。
As shown in FIG. 10, when there are unprocessed combinations in array V (variable V) (S401: Yes),
続いて、拡張探索部23は、組み合わせWの集合の行列に未調査の0がある場合(S403:Yes)、0と周囲の行列Aijの間にある関係性が0か否かを判定する(S404)。
Subsequently, if there is an unexamined 0 in the matrix of the set of combinations W (S403: Yes), the
ここで、拡張探索部23は、0と周囲の配列Aijの間にある関係性が0である場合(S404:Yes)、集合の行列の0の位置に行列Aijの集合をコピーしたものを配列Xに格納する(S405)。その後、拡張探索部23は、0の周りに未調査の集合が残っている場合には(S406:Yes)、S404以降を繰り返す。
Here, if the relationship between 0 and the surrounding array A ij is 0 (S404: Yes), the
なお、拡張探索部23は、S404において、0と周囲の配列Aijの間にある関係性が0ではない場合(S404:No)、S405を実行することなく、S406を実行する。また、拡張探索部23は、S406において、0の周りに未調査の集合が残っていない場合には(S406:No)、S403以降を繰り返す。
Note that if the relationship between 0 and the surrounding array A ij is not 0 in S404 (S404: No), the
また、拡張探索部23は、S401において、配列Vに未処理の組み合わせが残っていない場合(S401:No)、集合の行列を変換することで重複するものを1つ残して配列Xから除外する(S407)。
Further, in S401, if there are no unprocessed combinations remaining in the array V (S401: No), the
(具体例)
図11と図12を用いて具体例を説明する。まず、図11を用いて、上述した図9の配置パターン(5)を例にして説明する。図11に示すように、拡張探索部23は、図9の配置パターン(5)の拡張パターンとして、集合Bの下の「0」に、当該「0」の周囲の集合をコピーすることで、3つの拡張パターンを探索する。
(Concrete example)
A specific example will be described with reference to FIGS. 11 and 12. FIG. First, with reference to FIG. 11, the arrangement pattern (5) in FIG. 9 described above will be described as an example. As shown in FIG. 11, the
具体的には、拡張探索部23は、集合Bを上下に配置した拡張パターン(a)と、集合Bの下に集合Cを配置した拡張パターン(b)と、集合Bの下に集合Aを配置した拡張パターン(c)とを探索する。ここで、拡張探索部23は、拡張パターン(c)については、集合Bから集合Cへの関係性が存在することから、左上の集合Aと拡張した右下の集合Aとを結合することができないので、拡張できないと決定する。この結果、拡張探索部23は、図9の配置パターン(5)の拡張パターンとして、拡張パターン(a)と拡張パターン(b)の2つを探索する。
Specifically, the
このような拡張探索の結果を図12に示す。図12は、図9に示した配置パターン(2)、(4)、(5)、(6)の拡張パターンの探索結果である。なお、配置パターン(1)は、未配置の集合があることから除外される。 The results of such an extended search are shown in FIG. FIG. 12 shows search results for the extension patterns of the arrangement patterns (2), (4), (5), and (6) shown in FIG. Note that arrangement pattern (1) is excluded because there is an unarranged set.
具体的には、配置パターン(2)について、値が「0」の位置に、隣接する集合Aを配置した拡張パターン(2)、隣接する集合Cを配置した拡張パターン(3)、隣接する集合Bを配置した拡張パターン(4)および(5)が探索される。ここで、拡張パターン(4)は、集合Aと集合Cの間に関係性がないことから、図11のパターン(c)とは異なり、関係性を跨ぐ配置にならないので、採用される。 Specifically, for the arrangement pattern (2), an extended pattern (2) in which the adjacent set A is arranged, an extended pattern (3) in which the adjacent set C is arranged, and an adjacent set Extended patterns (4) and (5) with B placed are searched. Here, the extended pattern (4) has no relationship between the set A and the set C, so unlike the pattern (c) in FIG.
拡張配置パターン(2)は、集合Aを縦方向に並べた行列となるので、縦方向の関係性の行列に同一を示す[4]が設定される。拡張配置パターン(3)は、集合Cを横方向に並べた行列となるので、横方向の関係性の行列に同一を示す[4]が設定される。拡張配置パターン(4)は、集合Bを交点方向に並べた行列となるので、交点方向の関係性の行列に同一を示す[7]が設定される。拡張配置パターン(5)は、集合Bを縦方向に並べた行列となるので、縦方向の関係性の行列に同一を示す[4]が設定される。 Since the extended arrangement pattern (2) is a matrix in which the sets A are arranged in the vertical direction, [4] indicating the same is set in the vertical relationship matrix. Since the extended arrangement pattern (3) is a matrix in which the sets C are arranged in the horizontal direction, [4] indicating the same is set in the horizontal relationship matrix. Since the extended arrangement pattern (4) is a matrix in which the set B is arranged in the intersection direction, [7] indicating the same is set in the relationship matrix in the intersection direction. Since the extended arrangement pattern (5) is a matrix in which the sets B are arranged in the vertical direction, [4] indicating the same is set in the vertical relationship matrix.
(ノードの配置)
図13は、ノードの配置処理の流れを示すフローチャートであり、図14と図15は、ノードの配置の具体例1を説明する図であり、図16と図17は、ノードの配置の具体例2を説明する図である。
(arrangement of nodes)
FIG. 13 is a flowchart showing the flow of node placement processing, FIGS. 14 and 15 are diagrams for explaining specific example 1 of node placement, and FIGS. 16 and 17 are specific examples of node placement. FIG. 2 is a diagram for explaining 2. FIG.
図13に示すように、配置部24は、図10の拡張探索処理のS402で格納された配列Xに未処理の組み合わせが残っている場合(S501:Yes)、描画範囲内のランダムな位置に、集合の配列通りにノードの描画範囲を生成する(S502)。 As shown in FIG. 13, if there are unprocessed combinations in the array X stored in S402 of the extended search process in FIG. , a node drawing range is generated according to the arrangement of the set (S502).
続いて、配置部24は、集合の範囲内にノードをランダムに配置する(S503)。そして、配置部24は、集合の関係性がある範囲でのみ影響しあうように、スプリングアルゴリズムでノードを配置し(S504)、集合の範囲とノードの相対位置を固定する(S505)。その後、配置部24は、現在表示されているノードのうち、集合の関係性がないノード間の関係を探索して描画する(S506)。
Subsequently, the
そして、配置部24は、集合の関係性で結ばれた描画領域を一つのノードとみなし、新たに描画されたノードを加えてスプリングアルゴリズムで描画する(S507)。例えば、配置部24は、直接関係がある場合は直線で結ぶ。また、配置部24は、集合の範囲内に入らないように、複数ノードがある場合は等分して関係が近い順に並べる。
Then, the
その後、配置部24は、ノードの相対位置を解除し(S508)、スプリングアルゴリズムで再描画する(S509)。ただし、集合に属するノードは、その範囲から出ることはなく、属さないノードはその範囲に入ることはない。そして、配置部24は、集合の範囲とノードの相対位置を固定し(S510)、S501以降を繰り返す。
After that, the
また、S501において、配置部24は、図10の拡張探索処理のS402で格納された配列Xに未処理の組み合わせが残っていない場合(S501:No)、各組み合わせについて、安定している配置を求めて採用する(S511)。例えば、配置部24は、集合の範囲の中心とその集合に属するノードの距離の2乗の平均が最も小さい配置や、ノード間の距離の標準偏差が最も小さい配置などを採用する。
In addition, in S501, if there are no unprocessed combinations remaining in the array X stored in S402 of the extended search processing of FIG. It is sought and adopted (S511). For example, the
その後、配置部24は、まだ配置されていないノードを、関係するエッジがつながっているノードの近くに配置し(S512)、追加されたノードをスプリングアルゴリズムで配置する(S513)。
After that, the
(具体例)
例えば、配置部24は、集合の配置の組み合わせのうち一つとして、図14の(1)に示すように、[集合A、集合B、集合C]と[集合D、集合E]をランダムに配置する。続いて、図14の(2)に示すように、配置部24は、各集合内にノードを配置し、スプリングアルゴリズムで描画する。
(Concrete example)
For example, the arranging
そして、配置部24は、図14の(3)に示すように、集合内のノードを配置した後、集合に含まれないノードのうち別の関係性間を有するノードを、集合外に配置して連結する。その後、配置部24は、図14の(4)に示すように、関係性で結ばれた集合を1つのノードとして扱った上で、スプリングアルゴリズムで描画する。
Then, as shown in (3) of FIG. 14, after arranging the nodes in the set, the arranging
その後、配置部24は、図15に示すように、配置された集合に含まれない未配置のノードを配置し、スプリングアルゴリズムで描画する。このとき、配置部24は、スプリングアルゴリズムで描画する際は、新たに配置した(追加した)ノードのみを動かして配置を行う。
After that, the
同様に、配置部24は、集合の配置の組み合わせのうち一つとして、図16の(1)に示すように、[集合A、集合B、集合C]と[集合D、集合E]をランダムに配置する。この具体例2は、具体例1とは異なり、集合Bが拡張探索により配置されたパターンである。続いて、図16の(2)に示すように、配置部24は、各集合内にノードを配置し、スプリングアルゴリズムで描画する。
Similarly, the arranging
そして、配置部24は、図16の(3)に示すように、集合内のノードを配置した後、集合に含まれないノードのうち別の関係性間を有するノードを、集合外に配置して連結する。その後、配置部24は、図16の(4)に示すように、関係性で結ばれた集合を1つのノードとして扱った上で、スプリングアルゴリズムで描画する。
Then, as shown in (3) of FIG. 16, after arranging the nodes in the set, the arranging
その後、配置部24は、図17に示すように、配置された集合に含まれない未配置のノードを配置し、スプリングアルゴリズムで描画する。このとき、配置部24は、スプリングアルゴリズムで描画する際は、新たに配置した(追加した)ノードのみを動かして配置を行う。
After that, the
このようにして、配置部24は、各集合の配置の組み合わせについて、図13の処理を実行して、各構造を描画する。そして、配置部24は、最も安定している配置の組み合わせを選択し、配置結果DB16に格納する。
In this way, the
[効果]
上述したように、描画装置10は、ノードの属性ごとに集合を生成し、有向性の関係性をもとに集合間の位置の組み合わせを探索する。そして、描画装置10は、探索した位置関係を保持したまま、集合に属するノードを描画した後、残りのノードを描画する。その後、描画装置10は、描画した配置をもとに、最も安定している配置を採用する。したがって、描画装置10は、視覚的に理解しやすいグラフを描画することができる。
[effect]
As described above, the
図18は、グラフ描画結果を説明する図である。図18では、属性が「対策」である集合(対策)、属性が「病名」である集合(病名)、属性が「症状」である集合(症状)と各ノードを描画した例である。図2の(a)に示すような一般的なスプリングアルゴリズムでは、属性である病名や対策がバラバラに配置されてしまい、1つの症状(ノード)がどの病名でどの対策と関係しているのかを直感的に把握することが難しい。一方、図18に示すように、描画装置10を用いて描画されたグラフは、関係性が一定方向に定まっていることから、属性ごとの関係性が明確であり、各属性に属するノードも明確である。したがって、1つの症状(ノード)がどの病名でどの対策と関係しているのかを直感的にも視覚的にも把握することが容易である。
FIG. 18 is a diagram for explaining graph drawing results. FIG. 18 shows an example in which a set (measure) whose attribute is "measure", a set (disease name) whose attribute is "disease name", a set (symptom) whose attribute is "symptom", and each node are drawn. In a general spring algorithm as shown in (a) of Fig. 2, the disease name and countermeasures, which are attributes, are arranged indiscriminately. It is difficult to grasp intuitively. On the other hand, as shown in FIG. 18, in the graph drawn using the
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。 Although the embodiments of the present invention have been described so far, the present invention may be implemented in various different forms other than the embodiments described above.
[関係性の判定]
例えば、属性間やノード間の有向性の有無を判定する手法は、公知の様々な手法を採用することができる。また、属性の一例としては、上述した例以外にも、クラス、データ値、データタイプなどを用いることができる。また、集合を生成して配置する例を説明したが、ノードの数が少ない場合などは、ノードの属性を上述した処理に適用して配置処理を実行することもできる。なお、拡張探索処理は、省略することもできる。
[Relationship determination]
For example, various known methods can be used to determine whether there is directionality between attributes or between nodes. Further, as an example of the attribute, a class, a data value, a data type, etc. can be used in addition to the examples described above. Also, an example of generating and arranging a set has been described, but when the number of nodes is small, it is also possible to execute the arrangement processing by applying the attributes of the nodes to the above-described processing. Note that the extended search process can be omitted.
[数値等]
また、上記実施例で用いたノードの数、集合の数、閾値、行列の値、属性名、属性数等は、あくまで一例であり、任意に変更することができる。また、拡張処理は、省略することもでき、拡張処理を行わずに、ノード配置を行うことで、グラフを描画することもできる。また、各処理において、途中経過などを一時的に保存する先として、配列などを用いた例を説明したが、これに限定されるものではなく、プログラム等で利用される変数や一時領域などを用いることもできる。
[Numbers, etc.]
Also, the number of nodes, the number of sets, the threshold value, the matrix value, the attribute name, the number of attributes, etc. used in the above embodiments are only examples and can be changed arbitrarily. Moreover, the expansion process can be omitted, and the graph can be drawn by arranging the nodes without performing the expansion process. Also, in each process, an example of using an array etc. as a place to temporarily save the progress etc. was explained, but it is not limited to this, variables and temporary areas used in programs etc. can also be used.
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[system]
Information including processing procedures, control procedures, specific names, and various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Also, each component of each device illustrated is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific forms of distribution and integration of each device are not limited to those shown in the drawings. That is, all or part of them can be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions.
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。 Further, each processing function performed by each device may be implemented in whole or in part by a CPU and a program analyzed and executed by the CPU, or implemented as hardware based on wired logic.
[ハードウェア]
図19は、ハードウェア構成例を説明する図である。図19に示すように、描画装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、図19に示した各部は、バス等で相互に接続される。
[hardware]
FIG. 19 is a diagram illustrating a hardware configuration example. As shown in FIG. 19, the
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、図1に示した機能を動作させるプログラムやDBを記憶する。 The communication device 10a is a network interface card or the like, and communicates with other servers. The HDD 10b stores programs and DBs for operating the functions shown in FIG.
プロセッサ10dは、図1に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図1等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、描画装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、検出部21、探索部22、拡張探索部23、配置検討部24等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、検出部21、探索部22、拡張探索部23、配置検討部24等と同様の処理を実行するプロセスを実行する。
The
このように、描画装置10は、プログラムを読み出して実行することで描画方法を実行する情報処理装置として動作する。また、描画装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、描画装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
Thus, the
10 描画装置
11 通信部
12 記憶部
13 ノードデータDB
14 集合データDB
15 エッジ情報DB
16 配置結果DB
20 制御部
21 検出部
22 探索部
23 拡張探索部
24 配置部
10
14 Aggregate data DB
15 Edge information DB
16 Placement result DB
20 control unit 21
Claims (6)
データ構造が有する複数のノードそれぞれに付与される属性ごとに描画範囲を特定し、
特定した前記描画範囲に各属性を有するノードを配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させ、
特定した前記描画範囲の外に前記各属性を有しないノードを配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させ、
前記データ構造の各ノードを配置したグラフデータを生成する
処理を実行することを特徴とする描画方法。 the computer
Identify the drawing range for each attribute assigned to each of the multiple nodes in the data structure,
generating a repulsive force between the nodes and an attractive force on the edge in a state where the nodes having each attribute are arranged in the specified drawing range;
generating a repulsive force between the nodes and an attractive force on the edge in a state where the nodes without the attributes are arranged outside the specified drawing range;
A rendering method comprising: generating graph data in which each node of the data structure is arranged.
前記複数の集合間の関係性に基づき、前記複数の集合それぞれを配置し、各集合内に属するノードである各所属ノードを、スプリングアルゴリズムによって配置し、
各集合内に属するノードを配置した後、いずれの集合内にも属さないノードである各無所属ノードを、前記スプリングアルゴリズムによって配置して、前記グラフデータを生成する、処理を前記コンピュータが実行することを特徴とする請求項1に記載の描画方法。 generating a plurality of sets by aggregating nodes having the same attribute based on attributes assigned to each of the plurality of nodes;
arranging each of the plurality of sets based on the relationship between the plurality of sets, and arranging each belonging node, which is a node belonging to each set, by a spring algorithm;
After arranging the nodes belonging to each set, the computer executes a process of arranging each independent node, which is a node not belonging to any set, by the spring algorithm to generate the graph data. 2. The drawing method according to claim 1, characterized by:
前記生成する処理は、前記各所属ノードが配置された前記複数の配置パターンそれぞれについて前記各無所属ノードを配置し、前記各所属ノードおよび前記各無所属ノードが配置された前記複数の配置パターンそれぞれのうち、前記各集合の範囲の中心と前記各集合に属するノードの距離の2乗の平均が最も小さい配置パターン、または、ノード間の距離の標準偏差が最も小さい配置パターンを、前記グラフデータに選択することを特徴とする請求項2に記載の描画方法。 The arranging process generates a plurality of arrangement patterns based on the relationships between the plurality of sets, arranges the respective belonging nodes for each of the plurality of arrangement patterns,
The generating process includes placing each independent node for each of the plurality of placement patterns in which the belonging node is placed, and among the plurality of placement patterns in which the belonging node and the independent node are placed, , an arrangement pattern with the smallest average squared distance between the center of the range of each set and the nodes belonging to each set, or an arrangement pattern with the smallest standard deviation of the distance between nodes, is selected for the graph data. 3. The drawing method according to claim 2, wherein:
前記配置する処理は、前記複数の拡張配置パターンそれぞれについて、前記各所属ノードを配置し、
前記生成する処理は、前記各所属ノードが配置された前記複数の拡張配置パターンそれぞれについて前記各無所属ノードを配置し、前記各所属ノードおよび前記各無所属ノードが配置された前記複数の拡張配置パターンそれぞれから、前記グラフデータに選択することを特徴とする請求項3に記載の描画方法。 For each of the plurality of arrangement patterns, the computer executes a process of generating a plurality of extended arrangement patterns by arranging adjacent sets located around the position where the set does not exist,
The arranging process arranges each belonging node for each of the plurality of extended arrangement patterns,
The generating process includes placing each of the independent nodes for each of the plurality of extended placement patterns in which the belonging nodes are placed, and each of the plurality of extended placement patterns in which the belonging nodes and the independent nodes are placed. 4. The drawing method according to claim 3, wherein the graph data is selected from .
データ構造が有する複数のノードそれぞれに付与される属性ごとに描画範囲を特定し、
特定した前記描画範囲に各属性を有するノードを配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させ、
特定した前記描画範囲の外に前記各属性を有しないノードを配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させ、
前記データ構造の各ノードを配置したグラフデータを生成する
処理を実行させることを特徴とする描画プログラム。 to the computer,
Identify the drawing range for each attribute assigned to each of the multiple nodes in the data structure,
generating a repulsive force between the nodes and an attractive force on the edge in a state where the nodes having each attribute are arranged in the specified drawing range;
generating a repulsive force between the nodes and an attractive force on the edge in a state where the nodes without the attributes are arranged outside the specified rendering range;
A drawing program for executing a process of generating graph data in which each node of the data structure is arranged.
特定した前記描画範囲に各属性を有するノードを配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させ、特定した前記描画範囲の外に前記各属性を有しないノードを配置した状態で、ノード間に斥力を発生させ且つエッジに引力を発生させて、前記データ構造の各ノードを配置したグラフデータを生成する配置部と
を有することを特徴とする描画装置。 a specifying unit that specifies a rendering range for each attribute assigned to each of a plurality of nodes of a data structure;
A repulsive force is generated between the nodes and an attractive force is generated on the edge in a state where the nodes having the respective attributes are arranged in the specified drawing range, and the nodes without the respective attributes are arranged outside the specified drawing range. an arrangement unit that generates graph data in which each node of the data structure is arranged by generating a repulsive force between nodes and an attractive force on an edge in such a state.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019100763A JP7275864B2 (en) | 2019-05-29 | 2019-05-29 | Drawing method, drawing program and drawing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019100763A JP7275864B2 (en) | 2019-05-29 | 2019-05-29 | Drawing method, drawing program and drawing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020194459A JP2020194459A (en) | 2020-12-03 |
JP7275864B2 true JP7275864B2 (en) | 2023-05-18 |
Family
ID=73548275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019100763A Active JP7275864B2 (en) | 2019-05-29 | 2019-05-29 | Drawing method, drawing program and drawing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7275864B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030011601A1 (en) | 2001-06-19 | 2003-01-16 | International Business Machines Corporation | Graphics image creation apparatus, and method and program therefor |
JP2007193380A (en) | 2006-01-16 | 2007-08-02 | So-Net Entertainment Corp | Information processor, information processing method and computer program |
JP2010044617A (en) | 2008-08-13 | 2010-02-25 | Fuji Xerox Co Ltd | Display information generating device, and program |
-
2019
- 2019-05-29 JP JP2019100763A patent/JP7275864B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030011601A1 (en) | 2001-06-19 | 2003-01-16 | International Business Machines Corporation | Graphics image creation apparatus, and method and program therefor |
JP2007193380A (en) | 2006-01-16 | 2007-08-02 | So-Net Entertainment Corp | Information processor, information processing method and computer program |
JP2010044617A (en) | 2008-08-13 | 2010-02-25 | Fuji Xerox Co Ltd | Display information generating device, and program |
Non-Patent Citations (1)
Title |
---|
櫻庭 祐一 他,階層的レイアウトを用いたネットワークトポロジの表示方法,情報処理学会研究報告 平成22年度▲1▼ [CD-ROM] ,日本,社団法人情報処理学会,2010年06月15日 |
Also Published As
Publication number | Publication date |
---|---|
JP2020194459A (en) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7413580B2 (en) | Generating integrated circuit floorplans using neural networks | |
US8510703B1 (en) | Method and mechanism for implementing PCB routing | |
US9208278B2 (en) | Clustering using N-dimensional placement | |
CN111400555B (en) | Graph data query task processing method and device, computer equipment and storage medium | |
JP2017220225A (en) | Localized visual graph filters for complex graph queries | |
JP2007304685A (en) | Retrieval system and program for software component | |
CN111597768B (en) | Method, apparatus and computer readable storage medium for constructing a layout pattern set | |
US6941528B2 (en) | Use of a layout-optimization tool to increase the yield and reliability of VLSI designs | |
JP2007280383A (en) | Distribution of parallel operations | |
CN112328880A (en) | Geographical region clustering method and device, storage medium and electronic equipment | |
JP7275864B2 (en) | Drawing method, drawing program and drawing device | |
US20160364908A1 (en) | Analysis Model Creation Assistance System, Analysis Model Creation Assistance Device and Analysis Model Creation Assistance Program | |
JP5418341B2 (en) | Design support program, design support apparatus, and design support method | |
TWI460680B (en) | Data clustering method based on density | |
JP6705764B2 (en) | Generation device, generation method, and generation program | |
US20230274066A1 (en) | Concurrently routing multiple partitions of an integrated circuit design | |
US9928331B2 (en) | Method and control device for circuit layout migration | |
CN114616571A (en) | Semiconductor layout environment around points of interest | |
US8762898B1 (en) | Double patterning aware routing without stitching | |
KR101085067B1 (en) | Method for analyzing a dataset with various density | |
US10970452B2 (en) | System for designing semiconductor circuit and operating method of the same | |
JP6873065B2 (en) | Information processing equipment, information processing methods, and programs | |
CN116888599A (en) | Method and device for layout of circuit units of integrated circuit | |
US20050050501A1 (en) | The use of a layout-optimization tool to increase the yield and reliability of vlsi designs | |
JP6961133B1 (en) | Search device, search method, and search program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230203 |
|
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: 20230404 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230417 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7275864 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |