JP3350223B2 - グラフ自動レイアウト方法及び装置 - Google Patents
グラフ自動レイアウト方法及び装置Info
- Publication number
- JP3350223B2 JP3350223B2 JP16081994A JP16081994A JP3350223B2 JP 3350223 B2 JP3350223 B2 JP 3350223B2 JP 16081994 A JP16081994 A JP 16081994A JP 16081994 A JP16081994 A JP 16081994A JP 3350223 B2 JP3350223 B2 JP 3350223B2
- Authority
- JP
- Japan
- Prior art keywords
- graph
- magnetic field
- edge
- node
- automatic
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
る多様な分野で、様々な構造を表現するために利用され
ているグラフの自動レイアウト方法、すなわちノードの
集合とノードの間の関係を示すエッジの集合から構成さ
れるグラフにおけるノードの位置を自動的に決定して、
グラフを描画するグラフ自動レイアウト方法に関する。
分野で多様な構造(ネットワーク、処理フロー、組織構
造など)を表現するために利用されている。グラフは数
学的には(グラフ理論では)ノードとエッジからなるト
ポロジカルな構造であり、その構造を分かりやすく図に
描くことは人間にとって面倒な作業であるため、計算機
に自動的に描かせたいという要求がある。また、グラフ
の描き方も実際には応用(グラフが実際に表現するも
の、ネットワークや組織構造など)に依存し、応用によ
って分かりやすさの基準も変わってくる。たとえば、あ
らゆる関係が数学的にはエッジという一種類のもので表
されても、応用においては様々な関係(つまり様々な種
類のエッジ)があり、その種類ごとに描き方を変えたい
こともしばしばある。
でに数多く考えられている。既存の自動レイアウトの方
法で代表的なものを挙げておく。有向グラフ(エッジが
向きをもつグラフ)を対象にした自動レイアウトの方法
のなかで最も多く利用されているのは「スギヤマ・アル
ゴリズム」と呼ばれているもの、あるいはその変形であ
る。有向エッジが同一向き(たとえば下)を向くように
ノードを平行線上に配置するもので、有向エッジによっ
て表された全体の「流れ」が分かりやすいことが特徴で
ある。スギヤマ・アルゴリズムの詳細は次の文献に述べ
られている。
1,No.2,pp.109-125(1981) 次に無向グラフ(エッジが向きを持たないグラフ)を対
象にした自動レイアウトの方法のなかで最も多く利用さ
れているものは「スプリング・アルゴリズム」あるいは
より一般的に「力指向法」と呼ばれている種類のもので
ある。グラフを仮想的な物理モデルにあてはめ、ノード
間に働く引力や斥力を定義し、安定状態を求めることで
適切なレイアウトを見つけるものである(たとえば、各
ノードを質量0、大きさ0のリングとみなし、また各エ
ッジをリングをつなぐスプリングとみなして、全スプリ
ングのもつエネルギーが最小、あるいは極小となる状態
を求める)。この方法はグラフの対称性などが分かりや
すいことが特徴である。スプリング・アルゴリズムにつ
いては次の文献が代表的なものである。
2, pp.149-160(1984) 図32は従来の力指向法によるグラフのレイアウトの説
明図である。ノード間に働く力がスプリングの力として
表されている。またスプリングによって連絡されていな
い2つのノード間には仮想的な斥力が働くものとされ
る。この斥力は他のノード間に働くスプリング力とは無
関係の仮想的な力である。
が混在し、かつ無向エッジに種類がある場合も考えられ
る。図33は多数の問題の間の相互関係を表す問題マッ
プの例である。同図において問題の間には、相互に関連
する問題、相互に依存する問題、一般的な問題と特殊な
問題、および相互に対立する問題と言う4種類の関係が
あり、このうち一般的な問題から特殊な問題への関係は
向きのある矢印によって表わされる有向な関係であり、
残りの3種類は特に向きのない関係、すなわち無向な関
係である。この問題マップを、有向なエッジと無向なエ
ッジが存在する混在グラフとして描く場合に、有向なエ
ッジと無向なエッジとを区別することは当然として、無
向なエッジでもその関係毎に描き方を替えて、グラフを
レイアウトすることが望ましい。
フレイアウト方法は、平面上でのエッジの向きを特別に
限定しないか、または平面上でのエッジの向きを同一の
向きにそろえるかのいずれかを行うものであった。前者
は無向グラフのレイアウト法に多く、また後者は有向グ
ラフのレイアウト法に多いものであった。
指すエッジと左の子ノードを指すエッジを、右と下のよ
うに別々の向きに向ける方法があったが、これは対象を
限定した特殊な例であり、例えばある種類のエッジは同
一の向きにそろえ、それ以外の種類のエッジの向きは特
に限定しないと言うように、一般的にエッジの向きが複
数の種類の規則に従うようにレイアウトする方法はない
と言う問題点があった。
して特殊な問題を下側に配置し、対等な関係にある問題
は横に並べるようなグラフレイアウトを自動的に行う方
法は存在しなかった。なお、図33はM.J.Bickerton, A
Practitioner's Handbook of Requirements Engineeri
ng Methods and Tools, Oxford Univ., 1992. のFigure
5に示されている。
とが混在するグラフの有向エッジと無向エッジとを別々
の規則に従ってレイアウトしたり、有向グラフ、または
無向グラフにおいて、複数種類のエッジをそれぞれ別の
規則に従ってレイアウト可能とすることを目的とする。
機能ブロック図である。同図は複数のノードと、その複
数のノードの間の関係を示す複数のエッジから構成され
るグラフの各ノードの位置を決定するコンピュータによ
って実行されるグラフ自動レイアウト方法の機能ブロッ
ク図である。
きを制御するために、エッジに働く力が定義され、2で
定義された力を組み入れて、グラフに対応する物理モデ
ル、例えば方位磁針とスプリングの性質を持つマグネテ
ィック・スプリングによってエッジが表わされた結果と
してのグラフが仮想的な磁場に置かれたとする物理モデ
ルが作成される。
グによって表される場合には、エッジに働く力は磁場に
よる回転力であり、この回転力と、例えばスプリングに
よる引力、または斥力などが働く物理モデルが作成され
る。
状態が、例えば逐次的に物理モデルにおけるノードの位
置の修正を繰り返すことによって求められ、4でその安
定状態に対応してグラフの描画すなわち表示が行われ
る。
や斥力の定義によって物理モデルが作成され、そのモデ
ルの安定状態を求めてグラフのレイアウトが決定され
た。これに対して本発明においては、物理モデル作成に
際してグラフのエッジに働く力が定義されることが大き
な特徴である。エッジに働く力、特に回転力の定義によ
って、従来の力指向法におけるノード間に働く力だけで
は制御が困難であったエッジの向きの制御が可能とな
る。
り、エッジとノードによって構成されるグラフが仮想的
な磁場に置かれたものとして、物理モデルの安定状態が
求められる。方位磁針で表わされるエッジには、例えば
磁場のN極を向くような回転力が働くことになる。実際
問題としてはノード間の距離も制御することによって、
グラフのレイアウトを能率的に行うことができるため
に、エッジに働く力だけでなく、ノード間に作用する力
も併用したモデルが用いられる。すなわちエッジが方位
磁針の性質を持つマグネティック・スプリングであると
して物理モデルが作成され、そのモデルが磁場に置かれ
た時の安定状態が求められる。
おいてエッジに力を働かせるための仮想的なものであ
り、実際の物理的な磁場と同じ性質を持つものでは必ず
しもない。例えば2種類以上の互いに影響し合わない磁
場を同時に発生させ、物理モデルの安定状態を求めるこ
とも可能である。エッジを表す方位磁針が、複数の種類
の磁場のうちで特定の磁場からだけ力を受けるとするこ
とにより、エッジの種類毎に異なる規則でその向きを制
御することが可能となる。
えば方位磁針の性質を持つマグネティック・スプリング
によって表し、物理モデルの安定状態が求められる。
実現するためのコンピュータシステムの全体構成ブロッ
ク図である。同図(a) に示すようにコンピュータシステ
ム全体は一般的なものであり、中央処理装置(CPU)
10、入出力装置11、およびメモリ12などからなる
ものである。メモリ12は、グラフ自動レイアウトのた
めのプログラムなどを格納するプログラム格納領域12
a、およびグラフ自動レイアウトのためのデータを格納
するグラフデータ格納領域12bを備えている。
グラフデータ格納領域12bの詳細説明図である。同図
において、グラフデータ格納領域12bのデータはグラ
フデータそのもの13と、物理モデルにおける磁場を表
す磁場データ14から構成されている。ノードデータ1
3aはノードの位置、そのノードと結合しているエッ
ジ、ノードの属性、すなわちノードの形、サイズ、色、
線の種類などのデータであり、エッジデータ13bは、
マグネティック・スプリングとしてのスプリングによる
力の強さを計算するためのエッジの理想的長さ、結合し
ているノードの他に、エッジの属性としての向き、線の
種類、線の幅、どの磁場に影響を受けるか、エッジの色
などのデータが格納されている。これらのグラフデータ
は入出力装置11を介して、例えばユーザから入力さ
れ、またグラフのレイアウト結果は入出力装置11とし
てのディスプレイなどに表示されて出力される。
動レイアウトの全体を管理する総合管理部15、ノード
の初期配置を求める初期配置計算部16、ノードデータ
13a、エッジデータ13b、および磁場データ14を
用いてノードの位置修正量を求める修正量計算部17、
修正量計算部17の出力に基づいてノードの位置の修正
を行う位置修正部18、総合管理部15の制御に応じて
ノード位置の修正繰返し回数を管理する繰返し管理部1
9を備えている。
プリングを用いた物理モデルによるグラフのレイアウト
方法の説明図である。同図において、グラフのエッジが
マグネティック・スプリングによって表され、そのグラ
フが仮想的な磁場に置かれるものとして物理モデルの安
定状態が求められる。ここで物理モデルに働く力はスプ
リングによる引力、または斥力、隣接していない、すな
わちエッジで結合されていないノード間に働く斥力、お
よびエッジが磁場から受ける回転力である。このうち隣
接していないノード間に働く斥力は、スプリングによる
力でもなく、また磁場から受ける力でもない仮想的な力
である。
が求められ、その力によってノードの位置の修正量が計
算され、少しずつノードの位置を修正することを繰り返
してレイアウトが変更されていく。全ノードに働く力が
0となり、安定状態が達成されるまで、または一定回数
だけの繰返し処理が行われる。
的な全体処理フローチャートである。同図において、ス
テップ(S)1において方位磁針を使ってグラフのモデ
ル化が行われ、ステップS2で仮想的な磁場が用意さ
れ、S3でグラフを仮想的な磁場に置いたものと仮定し
て、その安定状態が求められる。なおこれらの処理のう
ち、S2までの処理は、図2(b)においてグラフデー
タ13などを入力する処理に相当し、実際にグラフの自
動レイアウトを行う処理はS3において行われる。
の一般的な処理手順の説明図である。同図において処理
が開始されると、まずS10で初期配置としてノードの
初期配置などが決定され、S11で例えば処理終了まで
のノード位置修正の繰返し回数などの初期設定が行わ
れ、繰返し処理が開始される。
継続すべきか否かが判定され、継続すべき場合にはS1
3でノード位置修正量が計算される。このノード位置修
正量は前述のスプリングによる力、隣接していないノー
ド間に働く斥力、及びエッジに働く磁場による回転力の
合力に基づいて計算される。
でノード位置の修正が行われ、S15で繰返し処理を行
うための、例えば繰返し回数のインクリメントが行わ
れ、S12以降の処理が繰り返される。そしてS12で
繰返しを継続すべきでないと判定された時点で処理を終
了する。
の全体処理フローチャートである。同図において処理が
開始されると、まずステップS20で初期配置としてノ
ードの初期位置などが決定され、S21で初期設定とし
て繰返し回数を示すkの値が“0”とされ、S22でk
が繰返し回数の最大値Mより小さいか否かが判定され
る。
の位置の修正量を求めるために、各ノードに働く力が計
算され、S24でノードの位置が修正され、S25で繰
返し回数を示すkの値がインクリメントされ、S22以
降の処理が繰り返される。そしてS22でkがMより小
さくないと判定された時点で処理を終了する。
わち初期配置の詳細フローチャートである。同図におい
て処理が開始されると、まずステップS30でノードの
番号を示すiが“0”とされ、S31でノード番号iが
Nより小さいか否かが判定される。
の位置を、例えば後述する(1) 式によって計算し、S3
3でノード番号を示すiの値がインクリメントされ、S
31以降の処理が繰り返され、S31でノード番号iが
Nより小さくないと判定された時点で処理を終了する。
てのノードに働く力の計算処理の詳細フローチャートで
ある。同図において処理が開始されると、まずステップ
S35でノードの番号を示すiが“0”とされ、S36
でiがNより小さいか否かが判定される。
修正量を計算するための基本となるノードiに働く力f
i が計算され、S38でiの値がインクリメントされ、
S36以降の処理が繰り返され、S36でiがNより小
さくないと判定された時点で処理を終了する。
わち図8におけるステップS37の詳細処理フローチャ
ートである。同図の処理を説明する前に、本発明におけ
るノードの初期配置とノードに働く力を詳細に説明す
る。
修正していく方法によって得られるレイアウトはノード
の初期配置に依存するため、初期配置の決め方も重要で
ある。有効な初期配置として、例えば、円周上に等間隔
で配置する方法がある。この方法ではi番目ノードvi
の初期座標は下の関数pで与えられる。
うに次のように選ぶ。
には3種類の力が働くとする。エッジをスプリングとみ
なしたときのスプリングによる力、隣接していないノー
ド間に働く斥力、エッジを磁針とみなしたときに磁場か
ら受ける回転力による力、である。そしてそれら全ての
合力fi を各ノードvi が受けるとする。
端のノードはそのスプリングによって引力あるいは斥力
を受ける。エッジ(スプリング)の一方のノードがその
スプリングから受ける力をfs で表す。その大きさは、
例えば、下のようにして計算できる(スプリングによる
力は一般的にフックの法則に従うが、ここでは、その力
はフックの法則に従わない仮想的なものとする)。
d0 はスプリングの自然長(エッジの理想的な長さ)、
cs は他の力とのバランスを制御するための定数であ
る。力の向きは、スプリングのもう一方の端のノードを
見た向きである。引力と斥力では力の向きが逆になる
が、上の式(3) により斥力の場合には力の大きさが負に
なるため形式的には引力と同じ向きと考えてよい。
する。1つのノードが隣接していない別の1つのノード
から受ける斥力をfr で表す。その大きさは、例えば、
下のようにして計算できる。この式は前述の文献(Eade
s, P.)内の斥力の式における“2”を一般的にpr とお
いたものである。
r はその距離の斥力の大きさへの影響を制御する。つま
りpr を大きくするほどノードが近づいたときの斥力の
増加の仕方が急激になる。cr は他の力とのバランスを
制御するための定数である。向きは力を及ぼし合うノー
ドの反対を向く。
0(a) に示すように、磁針とみなされ、グラフの置かれ
た磁場から回転力を受ける。つまり、有向エッジの場合
にはヘッドがN極を、テイルがS極を向くように回転力
を受ける。エッジ(磁針)の一方のノードがその磁針の
回転力として受ける力を変数fm で表す。その大きさ
は、例えば、仮想的に下のようにして計算できるものと
する。
て磁場の向きを調べる点、磁場の向きがエッジの各点に
おいて同じであるという保証がないため基準点を設ける
必要がある;例えば、エッジの中点)における磁場のN
極(またはS極)の向きからのヘッド(またはテイル)
のずれの角である。つまり、磁場の向きをφ(単位:ラ
ジアン)とした時、力を受けるノードがヘッドの場合に
は、テイル側からヘッドを見た向きをαとすると、図1
0(b) に示すように、
10(c) に示すようにβをとると、
t<πの正規化された値を取るようにn=0,1,・・
・とする。pm はt(磁場の向きからの磁針のずれの角
の大きさ)の回転力への影響を制御する。つまり、pm
を大きくするほど、ずれが大きくなったときの回転力の
増加の仕方が急激になる。dは現在のエッジの長さで、
qm はエッジ(磁針)の長さの回転力への影響を制御す
る。つまりqm を大きくすると長いエッジほど強い力で
磁場の向きを向こうとする。bは基準点における磁場の
強さ、cm は他の力とのバランスを制御するための定数
である。
回転力が働くため、もう一方の端のノードを見た向きか
らπ/2反時計回りに回転させた向き、t<0のとき
は、反時計回りに回転力が働くため、もう一方の端のノ
ードを見た向きからπ/2時計回りに回転させた向きと
する。
のとして、図9のフローチャートを説明する。図9にお
いて処理が開始されると、まずステップS40において
ノードiに働く力fi が“0”とされ、S41でノード
iを除く他のノードの番号jが“0”とされ、S42で
jがNより小さいか否かが判定される。
くないか否かが判定され、等しくない時にはS44でノ
ード番号iのノードとノード番号jのノードとが隣接し
ているか否かが判定される。隣接している時にはS45
でスプリングによる力fs と磁場による回転力fm が求
められ、S46でその和がfとされる。
隣接していないと判定された時には、S47で隣接して
いないノードの間に働く斥力fr が求められ、S48で
その値がfとされる。
働く力の現在値fi にS46、またはS48で求められ
たfが加算され、ノード番号iのノードに働く力fi が
求められ、S50で他のノードのノード番号jの値がイ
ンクリメントされ、S42以降の処理が繰り返される。
S43でiとjとが等しいと判定された時には、力の計
算を行う必要がないのでS42以降の処理が繰り返され
る。そしてS42でjがNより小さくないと判定された
時点で処理を終了する。
ノード位置修正処理の詳細フローチャートである。同図
において処理が開始されると、ステップS52でノード
番号を示すiの値が“0”とされ、S53でiの値がN
より小さいか否かが判定され、小さい時にはS54でi
番目のノードの位置の移動が行われる。
番目のノードに働く力fi のs倍とされる。このsの値
としては例えば0.1と言うような小さな値が用いられ
る。繰返し回数が進むにつれて、このsの値を小さくす
ることによって、例えばシミュレーテッドアニーリング
と同様に安定化状態を求めることができる。
がインクリメントされ、S53以降の処理が繰り返さ
れ、S53においてiがNより小さくないと判定された
時点で処理を終了する。
一部の位置を固定した状態で物理モデルの安定化状態を
求め、グラフ自動レイアウトを行う場合のノード位置修
正処理の詳細フローチャートである。同図を図11のフ
ローチャートと比較すると、ステップS53でノード番
号iがNより小さいと判定された後に、S57でそのノ
ードが固定、すなわちアンカーであるか否かが判定さ
れ、アンカーでない時にはS54でノードの位置の移動
が行われ、アンカーである時にはノードの位置の移動が
行われることなく、S55の処理に移行する点のみが異
なっている。
ついて説明する。図13は平面上のどの位置においても
向きが一定の平行磁場を示す。この磁場は、座標が
(x,y)の位置の磁場の大きさをb(x,y)として
次式で表される。
ル、b(x,y)は(x,y)における磁場の強さであ
る。平行磁場を用いることでレイアウトされたグラフの
例を図14に示す。この例においては磁場の強さはb
(x,y)=1、つまりどこでも一定としている。平行
磁場を用いてレイアウトされたグラフではエッジがほぼ
一方向を向くため、グラフ全体の表す流れなどを把握し
やすい。
磁場を与えることなく、ノード位置の修正を行いながら
グラフの自動レイアウトを行った結果であり、同図(b)
は同様に初期配置から平行磁場を与えることによってノ
ード位置の修正を行いながら、グラフの自動レイアウト
を行った結果である。図(b) においては、全てのエッジ
が図13に示した平行磁場の方向、すなわち右向きとな
っている。
4(b) のレイアウト結果を得るまでの途中経過の説明図
である。同図において、Mはノード位置の修正の繰返し
回数、CPUはグラフ自動レイアウト処理の処理時間を
示す。図15においてはM=0の初期配置から5回目の
繰返し処理が行われるまでの途中経過を、また図16は
6回目から11回目までの繰返し処理が行われる間の途
中経過を、また図17は12回目から17回目までの繰
返し処理が行われるまでの途中経過を示し、17回目の
繰り返し処理の結果は図14(b) の結果とほぼ同様とな
っている。
を与えないで行われた自動レイアウトの結果から、同図
(b) に示す磁場を与えてレイアウトした結果を求めるこ
とも可能である。図18、および図19はその場合の途
中経過の説明図である。
示すM=100,CPU=0.62の結果を基にして処
理が開始される。ここでCMFは前述の磁場による回転
力と他の力とのバランスを制御するための定数cm を表
すものであり、図14(a) の結果はその係数を“0”と
したノード位置修正を100回繰り返して得られたこと
がわかる。
を5回目まで行った結果が図18である。6回目から1
1回目までの結果が図19である。図19において11
回目の修正の結果は図14(b) の結果にかなり近づいて
いる。
のノードの位置を固定した状態でグラフ自動レイアウト
を行った場合の途中経過を示す。同図においても、図1
4(a) の結果から、同図(b) の結果を得るまでの、ノー
ド位置修正処理の繰返し回数に対応する途中経過が示さ
れる。(a) の結果から出発してノード0と3の位置を固
定した状態で、100回のノード位置修正処理を繰り返
すことによって、図14(b) の結果が得られることが示
されている。
在する混在グラフを対象とするグラフ自動レイアウトの
説明図である。同図(a) は初期配置から、磁場を与える
ことなくノード位置の修正を繰り返して、グラフ自動レ
イアウトを行った結果を示し、また同図(b) は図13と
同様の、下向きの平行磁場を与えてレイアウトした結果
を示す。この図(b) では無向エッジの方向はバラバラで
あるが、有向エッジは下向きにそろっていることがわか
る。
図(b) の結果を得るまでの途中経過の説明図である。同
図において図21(a) の結果、すなわちCMFを“0”
とした800回のノード位置修正処理によって得られた
結果から、100回のノード位置修正処理を行うことに
より、図21(b) に類似した結果が得られることが示さ
れている。
23に示すように、ある点を中心に放射状に外側に、ま
たは内側に向く磁場を放射状磁場と呼ぶことにする。外
側に向く放射状磁場は次のように表される。
中心であり、b(x,y)は点(x,y)における磁場
の強さである。放射状磁場を用いることでレイアウトさ
れたグラフの例を図24に示す。この例においては磁場
の強さはb(x,y)=1;つまりどこでも一定として
いる。
に同心円状に時計回りあるいは反時計回りに向く磁場を
同心円磁場と呼ぶことにする。時計回りの同心円磁場は
次のように表される。
の中心であり、b(x,y)は点(x,y)における磁
場の強さである。同心円状磁場を用いることでレイアウ
トされたグラフの例を図26に示す。この例においては
磁場の強さはb(x,y)=1、つまりどこでも一定と
している。循環構造(サイクル)をもつグラフを同心円
状磁場を用いてレイアウトするとその循環構造が把握し
やすくなる。すなわち、磁場を与えない、図26(a) の
レイアウト結果ではどこにサイクルがあるかすぐにはわ
からないが、同図(b) のように同心円磁場を与えてレイ
アウトした結果ではサイクルの様子が明確となる。
然界に存在する磁場ではなく、仮想的なものであるため
に、人工的に自由にその性質を与えることができる。そ
の1つとして上述のような平行磁場、放射状磁場、同心
円磁場のような磁場の2つ以上を、互いに影響を及ぼし
合わないものとして組み合わせて、複合磁場として利用
することができる。その1つの例が直交平行磁場であ
る。
からなる複合磁場を直交平行磁場(図27参照)と呼
ぶ。このような磁場は次のように表される。
ベクトルである。b1 (x,y)は点(x,y)におけ
る第1の磁場の強さ、b2 (x,y)は点(x,y)に
おける第2の磁場の強さである。
れたグラフの例を図28に示す。この例においては磁場
の強さはb1 (x,y)=b2 (x,y)=1、つまり
どこでも一定としている。直交平行磁場を用いてレイア
ウトされたグラフでは、その構造のもつ2種類の流れが
把握しやすくなる。すなわち、図28(a) のように磁場
を与えないでレイアウトした結果では二分木の構造は明
確であってもエッジの方向はバラバラであるのに対し
て、同図(b) ではエッジの方向が右向き、または下向き
にそろっている。
ることができる。例えば放射状磁場や同心円磁場におい
て、磁場を規定する点、例えば円の中心などを固定せず
に動的なものとすることができる。ある特定のノードの
座標を磁場を規定する点として用いることにより、グラ
フの変形に伴って磁場も変化させることができ、放射状
磁場などで特定のノードを中心とした配置を行うことが
容易になる。
明する。多くの場合、有向エッジは向きをそろえてレイ
アウトすることが望まれるのに対して、本来向きを持た
ない無向エッジでは向きをそろえることに意味はない
が、その方向をそろえてレイアウトすることが望まれる
ことはある(ここでは「向き」と「方向」は違う言葉と
して区別する。「向き」は北向き、南向きというように
用いるのに対して、「方向」は南北の方向のように用
い、北と南のどちらを向いているかは問題にしない)。
そのように無向エッジをある方向にそろえるためには、
マグネティック・スプリングの性質をN極、S極に関係
なく、どちらか(例えば近い方)に向くように回転力が
働くというように修正する。
に近い方のノードが磁場の向きを向く(遠いほうのノー
ドは磁場と逆の向きを向く)とするためには、式(6) や
(7)の代わりに下の式(12)を用いてtを求めればよい。
いま働く力を計算しようとしているノードをもう一方の
ノード側から見た向きをγとすると、
/2の値を取るようにn=0,1,・・・とする。図2
9は図27と同じ直交平行磁場を図21の混在グラフに
与えてレイアウトを行った結果であり、有向エッジは下
向きにそろい、無向エッジは水平方向にそろっている。
の比較的簡単な問題マップのレイアウトの例の説明図で
ある。同図(a) は人間がレイアウトした問題マップであ
り、実線が有向エッジを、また点線が無向エッジを表し
ている。同図(b) は本発明の方法によって(a) と同じ問
題マップを自動的にレイアウトした結果である。有向エ
ッジは下方向にそろい、無向エッジはほぼ水平方向にそ
ろっている。
自動レイアウトした結果である。これは1,200 回のノー
ド位置修正を繰り返した結果であり、有向エッジはほぼ
下向きに、無向エッジはほぼ水平方向になっている。
ればグラフの自動レイアウトに際して有向エッジ、ある
いは無向エッジの方向を制御することが可能となる。そ
れによって、複数種類のエッジを持つ有向グラフのレイ
アウトにおいて各種類のエッジをそれぞれ一定の方向に
向かせたり、混在グラフのレイアウトにおいて有向エッ
ジだけを一定方向に向かせたり、無向エッジも特定の方
向にそろえると言った制御が可能となる。これによっ
て、例えば状態遷移図、データフロー図などの、様々な
構造を表現するためのグラフを人間にとってより理解し
やすくすることが可能となる。
ためのコンピュータシステムの構成を示すブロック図で
ある。
ルによるグラフのレイアウトの説明図である。
フローチャートである。
全体的処理手順の説明図である。
フローチャートである。
チャートである。
チャートである。
ある。
ャートである。
示す図である。
得るまでの途中経過の説明図(その1)である。
得るまでの途中経過の説明図(その2)である。
得るまでの途中経過の説明図(その3)である。
の自動レイアウト処理における途中経過の説明図(その
1)である。
の自動レイアウト処理における途中経過の説明図(その
2)である。
の図14(a) から(b) を得るまでの途中経過の説明図で
ある。
を示す図である。
理の途中経過の説明図である。
示す図である。
示す図である。
を示す図である。
の例を示す図である。
トの例を示す図である。
結果を示す図である。
モデルによるグラフのレイアウトの説明図である。
である。
Claims (18)
- 【請求項1】 複数のノードとエッジを持ち前記各エッ
ジが複数の前記各ノード間の対応関係を示しているグラ
フ内の、前記各ノードの位置を決定する自動グラフレイ
アウト装置であって自動的に前記グラフのレイアウトを
行う自動グラフレイアウトの為のプログラムデータを保
持するプログラムデータ保持手段と、 前記ノードのノード属性を示すノードデータ、前記エッ
ジのエッジ属性を示すエッジデータ及び物理モデルを生
成するためのデータを保持するグラフデータ保持手段
と、 前記グラフデータ保持手段内のデータに基いて、複数の
前記エッジに働く力を定義する働力定義手段と、 前記グラフデータ保持手段内のデータに基いて、前記定
義された力を組み入れ且つ前記グラフに対応した物理モ
デルを生成する物理モデル生成手段と、 前記物理モデル内で、前記各ノードの位置を逐次的に修
正を繰り返すことによって、該物理モデルの安定状態を
求める安定状態算出手段と、 前記物理モデルの前記安定状態に対応したグラフを出力
するグラフ出力手段と、 を備え、 前記安定状態算出手段は、 前記プログラムデータに基いて、各ノードの初期配置を
計算する初期計算手段と、 前記プログラムデータに基いて、前記ノードの位置の前
記修正を行った回数を管理する繰り返し管理手段と、 前記プログラムデータに基いて、前記グラフデータ保持
手段内のデータを用いて前記ノードの位置の修正量を計
算する修正量計算手段と、 前記プログラムデータに基いて、前記修正量計算手段に
よる計算結果に基いて、前記ノードの前記位置を修正す
る位置修正手段とを有することを特徴とする自動グラフ
レイアウト装置。 - 【請求項2】 複数のノードとエッジを持ち前記各エッ
ジが複数の前記各ノード間の対応関係を示しているグラ
フ内の、前記各ノードの位置を決定する自動グラフレイ
アウト装置であって予め定まった指向性を持つ仮想物理
領域を示す情報を格納する手段と、 前記仮想物理領域に置かれた時、前記指向性に基いた力
をうける仮想物理要素を示す情報を格納する手段と、 前記仮想物理的領域に前記グラフ全体を置いて物理モデ
ルとし、該グラフ内の前記各エッジを前記仮想物理要素
として表す手段と、 前記仮想物理領域内の前記グラフ内の前記各エッジに働
く力の関係を決定し、 前記力の関係が安定するノードの位置を得る手段と、 前記力の関係が安定した前記ノードの位置を元にした前
記グラフを出力する手段と、 を備えることを特徴とする自動グラフレイアウト装置。 - 【請求項3】 請求項1または2において、前記エッジ
に働く力が該エッジの両端に働く回転力であることを特
徴とするグラフ自動レイアウト装置。 - 【請求項4】 請求項1,2または3において、前記複
数のノードのうちの一部のノードがあらかじめ限定され
た範囲に位置するとの条件の下で、前記物理モデルの安
定状態を求めることを特徴とするグラフ自動レイアウト
装置。 - 【請求項5】 請求項1,2,3,または4において、
前記物理モデルに対して逐次的に該物理モデルにおける
ノードの位置の修正を繰り返すことによって、前記安定
状態を求めることを特徴とするグラフ自動レイアウト装
置。 - 【請求項6】 請求項1,2,3,または4において、
前記グラフに対応して、前記エッジを仮想的な方位磁針
とし、該エッジと前記ノードが仮想的な磁場に置かれた
とする物理モデルを作成することを特徴とするグラフ自
動レイアウト装置。 - 【請求項7】 請求項1,2,3,または4において、
前記グラフに対応して、前記エッジを仮想的な方位磁針
の性質を持つスプリングであるマグネティック・スプリ
ングとし、該エッジと前記ノードが仮想的な磁場に置か
れたとする物理モデルを作成することを特徴とするグラ
フ自動レイアウト装置。 - 【請求項8】 請求項6,または7において、前記エッ
ジが、前記仮想的磁場のN極、またはS極のどちらかを
向く特殊な方位磁針であることを特徴とするグラフ自動
レイアウト装置。 - 【請求項9】 請求項6,7,または8において、前記
エッジのうちの一部のみを方位磁針、または前記マグネ
ティック・スプリングとすることを特徴とするグラフ自
動レイアウト装置。 - 【請求項10】 請求項6,7,8,または9におい
て、前記仮想的磁場が向き一様の平行磁場であることを
特徴とするグラフ自動レイアウト装置。 - 【請求項11】 請求項6,7,8,または9におい
て、前記仮想的磁場が、その向きがある一点から放射状
に外向きの、またはある一点に向かって放射状に内向き
の放射状磁場であることを特徴とするグラフ自動レイア
ウト装置。 - 【請求項12】 請求項6,7,8,または9におい
て、前記仮想的磁場が、その向きがある一点を中心とし
た同心円状時計回り向きの、または反時計回り向きの同
心円磁場であることを特徴とするグラフ自動レイアウト
装置。 - 【請求項13】 請求項6,7,8,または9におい
て、前記仮想的磁場が、2種以上の磁場の組み合わせの
複合磁場であり、前記方位磁針、またはマグネティック
・スプリングが該2種以上の磁場のうちの1つ以上から
影響を受けることを特徴とするグラフ自動レイアウト装
置。 - 【請求項14】 請求項6,7,8,9,または13に
おいて、前記磁場あるいは複合磁場が、前記物理モデル
に対して局所的に影響を与えることを特徴とするグラフ
自動レイアウト装置。 - 【請求項15】 請求項6,7,8,9,または13に
おいて、前記磁場あるいは複合磁場が動的に変化するも
のであり、該動的変化に対応して前記物理モデルの安定
状態を求めることを特徴とするグラフ自動レイアウト装
置。 - 【請求項16】 請求項6,7,8,9,または13に
おいて、前記磁場あるいは複合磁場が時間と共に動的に
変化するものであり、該動的変化に対応して逐次的に前
記物理モデルにおけるノードの位置の修正を繰り返すこ
とによって前記安定状態を求めることを特徴とするグラ
フ自動レイアウト装置。 - 【請求項17】 請求項1または2において、前記エッ
ジに働く力が該エッジに働く重力であることを特徴とす
るグラフ自動レイアウト装置。 - 【請求項18】 請求項1または2において、前記エッ
ジに働く力が電場によって該エッジに働く力であること
を特徴とするグラフ自動レイアウト装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16081994A JP3350223B2 (ja) | 1994-07-13 | 1994-07-13 | グラフ自動レイアウト方法及び装置 |
US08/498,919 US5764239A (en) | 1994-07-13 | 1995-07-06 | Automatic graph layout apparatus and methods determining and using a stable state of a physical model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16081994A JP3350223B2 (ja) | 1994-07-13 | 1994-07-13 | グラフ自動レイアウト方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0830799A JPH0830799A (ja) | 1996-02-02 |
JP3350223B2 true JP3350223B2 (ja) | 2002-11-25 |
Family
ID=15723108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16081994A Expired - Fee Related JP3350223B2 (ja) | 1994-07-13 | 1994-07-13 | グラフ自動レイアウト方法及び装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5764239A (ja) |
JP (1) | JP3350223B2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3264619B2 (ja) * | 1996-06-05 | 2002-03-11 | キヤノン株式会社 | 画像処理装置および方法 |
JP3673615B2 (ja) * | 1997-06-19 | 2005-07-20 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
US6774899B1 (en) * | 1997-09-18 | 2004-08-10 | Mitsubishi Electric Research Laboratories, Inc. | Drawing graphs using user selectable visual oragnization features and/or other user controlled constraints |
US6377259B2 (en) * | 1998-07-29 | 2002-04-23 | Inxight Software, Inc. | Presenting node-link structures with modification |
ATE344510T1 (de) * | 1999-04-21 | 2006-11-15 | Spss Inc | Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra |
JP3933882B2 (ja) * | 2001-03-30 | 2007-06-20 | 富士通株式会社 | レーダーチャートを表示させるためのプログラムおよびレーダーチャート表示方法 |
KR100491666B1 (ko) * | 2002-09-23 | 2005-05-27 | 학교법인 인하학원 | 단백질 상호작용 네트웍의 분할 시각화 기법 |
JP4199026B2 (ja) | 2003-03-03 | 2008-12-17 | 富士通株式会社 | 情報関連性表示方法、プログラム、記憶媒体及び装置 |
US7750909B2 (en) * | 2006-05-16 | 2010-07-06 | Sony Corporation | Ordering artists by overall degree of influence |
US7774288B2 (en) * | 2006-05-16 | 2010-08-10 | Sony Corporation | Clustering and classification of multimedia data |
US7961189B2 (en) * | 2006-05-16 | 2011-06-14 | Sony Corporation | Displaying artists related to an artist of interest |
US9330170B2 (en) * | 2006-05-16 | 2016-05-03 | Sony Corporation | Relating objects in different mediums |
US7840568B2 (en) * | 2006-05-16 | 2010-11-23 | Sony Corporation | Sorting media objects by similarity |
US8902231B2 (en) * | 2006-10-20 | 2014-12-02 | Alcatel Lucent | Method and apparatus for displaying graphical representations of graph layouts |
JP4939486B2 (ja) * | 2007-11-19 | 2012-05-23 | 日本電信電話株式会社 | グラフ可視化座標計算装置、方法、プログラム並びにそのプログラムを記録した記録媒体 |
US8654126B2 (en) * | 2008-12-11 | 2014-02-18 | At&T Intellectual Property I, L.P. | Methods, systems, and products for graphing data to reduce overlap |
US8543944B2 (en) | 2010-06-14 | 2013-09-24 | Microsoft Corporation | Fast edge routing for interactive diagramming |
US8538737B2 (en) * | 2010-09-17 | 2013-09-17 | Adobe Systems Incorporated | Curve editing with physical simulation of mass points and spring forces |
US8599204B2 (en) | 2010-11-19 | 2013-12-03 | Microsoft Corporation | Controlling edge routing using layout constraints |
US9015581B2 (en) * | 2012-03-26 | 2015-04-21 | Vistaprint Schweiz Gmbh | Self-adjusting document layouts using system optimization modeling |
US8494689B1 (en) * | 2012-05-09 | 2013-07-23 | Raytheon Company | Autonomous coordination of agents |
US9582911B2 (en) | 2014-02-27 | 2017-02-28 | Sas Institute Inc. | Systems and methods for graph generation |
US9360320B2 (en) | 2014-07-22 | 2016-06-07 | Raytheon Company | Autonomous coordination of agents via attraction and repulsion |
US9799128B2 (en) | 2015-07-30 | 2017-10-24 | Microsoft Technology Licensing, Llc | Incremental automatic layout of graph diagram |
CN111464338B (zh) * | 2020-03-16 | 2022-10-18 | 安天科技集团股份有限公司 | 一种复杂网络拓扑分步布局方法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257346A (en) * | 1990-09-24 | 1993-10-26 | International Business Machines Corporation | Wire-mesh generation from image data |
US5404426A (en) * | 1991-05-21 | 1995-04-04 | Hitachi, Ltd. | Method of displaying hair style and apparatus for the same |
JPH0561984A (ja) * | 1991-09-03 | 1993-03-12 | Nikon Corp | 有向グラフ表示装置 |
JP2977681B2 (ja) * | 1992-10-19 | 1999-11-15 | 富士通株式会社 | グラフ図解の動的表示処理装置および方法 |
US5450535A (en) * | 1993-09-24 | 1995-09-12 | At&T Corp. | Graphs employing clusters |
US5596703A (en) * | 1993-10-22 | 1997-01-21 | Lucent Technologies Inc. | Graphical display of relationships |
US5568636A (en) * | 1994-09-13 | 1996-10-22 | Lsi Logic Corporation | Method and system for improving a placement of cells using energetic placement with alternating contraction and expansion operations |
-
1994
- 1994-07-13 JP JP16081994A patent/JP3350223B2/ja not_active Expired - Fee Related
-
1995
- 1995-07-06 US US08/498,919 patent/US5764239A/en not_active Expired - Lifetime
Non-Patent Citations (4)
Title |
---|
THOMAS M.J.FRUCHTERMAN,Graph Drawing by Force−directed Placement,SOFTWARE PRACTICE & EXPERIENCE,米国,Jhon Wiley & Sons,Ltd,Vol.21,No.11,1129−1164 |
三末和男,杉山公造,マグネティック・スプリング・モデルによるグラフ描画法について,情報処理学会研究報告,日本,情報処理学会,1994年7月14日,Vol.94,No.60,17−24,本願発明対応論文:本願出願後公知 |
鈴木和彦,鎌田富久,グラフ構造理解のための単純無向グラフの自動描画アルゴリズム,第35回プログラミングシンポジウム報告集,日本,プログラミング・シンポジウム委員会,1994年1月11日,71−82 |
鎌田富久,グラフ描画アルゴリズム,コンピュータ・サイエンス誌 bit,日本,共立出版,1991年3月1日,Vol.23,No.3,284−290 |
Also Published As
Publication number | Publication date |
---|---|
US5764239A (en) | 1998-06-09 |
JPH0830799A (ja) | 1996-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3350223B2 (ja) | グラフ自動レイアウト方法及び装置 | |
AU2021245164A1 (en) | Quantum entangled state processing method and apparatus, device, storage medium, and product | |
Sen et al. | Learning to coordinate without sharing information | |
US6950931B2 (en) | Server configuration using profile templates | |
US8902231B2 (en) | Method and apparatus for displaying graphical representations of graph layouts | |
Sannella | The SkyBlue Constraint Solver and Its Applications. | |
US20230033174A1 (en) | Method and apparatus for creating a custom service | |
Loeb | Topological spaces | |
Kaewpuang et al. | Stochastic Qubit Resource Allocation for Quantum Cloud Computing | |
CN109324731A (zh) | 信息展现方法和装置 | |
EP3126964B1 (en) | User interface control and communication | |
JP2000268197A (ja) | 設計システムおよび記録媒体 | |
Yen et al. | Game-theoretic approach to self-stabilizing distributed formation of minimal multi-dominating sets | |
US6847363B1 (en) | Method and apparatus for drawing line graphs | |
Sanyal et al. | A hierarchical and distributed approach for mapping large applications to heterogeneous grids using genetic algorithms | |
CN114969058A (zh) | 一种数据更新方法、装置、设备、存储介质 | |
CN110928672B (zh) | 一种任务编排方法、装置、设备及存储介质 | |
CN117056994B (zh) | 一种大数据建模的数据处理系统 | |
WO2016177072A1 (zh) | 网络拓扑显示方法、装置及网络管理系统 | |
Hirayama et al. | An easy-hard-easy cost profile in distributed constraint satisfaction | |
CN113283151B (zh) | 一种利用远程服务器进行优化设计的方法 | |
Lee et al. | Grammar-based generation of equilibrium structures through graphic statics | |
Groh et al. | A Different Approach to Resource Management for Distributed Systems. | |
Sudhakar et al. | Enhanced hyper-heuristic scheduling algorithm for cloud | |
Tovey | Rescheduling to minimize makespan on a changing number of identical processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020514 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020903 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080913 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080913 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090913 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090913 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100913 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100913 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110913 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120913 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |