JP6028703B2 - グラフ生成装置、グラフ生成方法及びグラフ生成プログラム - Google Patents

グラフ生成装置、グラフ生成方法及びグラフ生成プログラム Download PDF

Info

Publication number
JP6028703B2
JP6028703B2 JP2013212281A JP2013212281A JP6028703B2 JP 6028703 B2 JP6028703 B2 JP 6028703B2 JP 2013212281 A JP2013212281 A JP 2013212281A JP 2013212281 A JP2013212281 A JP 2013212281A JP 6028703 B2 JP6028703 B2 JP 6028703B2
Authority
JP
Japan
Prior art keywords
node
graph
data
layout
layout position
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
Application number
JP2013212281A
Other languages
English (en)
Other versions
JP2015075960A (ja
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.)
NS Solutions Corp
Original Assignee
NS Solutions Corp
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 NS Solutions Corp filed Critical NS Solutions Corp
Priority to JP2013212281A priority Critical patent/JP6028703B2/ja
Publication of JP2015075960A publication Critical patent/JP2015075960A/ja
Application granted granted Critical
Publication of JP6028703B2 publication Critical patent/JP6028703B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、複数のノードとノード間を接続する複数のエッジとを含むグラフを生成して表示装置の画面に表示するグラフ生成装置、グラフ生成方法及びグラフ生成プログラムに関するものである。
従来、複雑なデータを目視で確認し易くするためにチャートや表やグラフが用いられている。ここでいうグラフとは、データ同士の関連を可視化するための図のことであり、統計データを表示するための図、例えば、データの時間変化を示すための折れ線グラフ、各データの大小関係や各データが全体に対して占める割合を表すための円グラフや棒グラフとは区別される。また、システム開発においては、例えば、システムの設計情報や構造を可視化するためにクラス図が用いられ、システムプログラムのサブルーチン同士の呼び出し関係を示すためにコールグラフが用いられるが、これらのクラス図やコールグラフもここでいうグラフの一種である。
一般に、グラフは複数のノードと複数のエッジとによって構成される。ノードとはデータを表す点のことであるが、グラフ上では、大抵、大きさを有する図形で表現される。エッジはノード間を繋ぐ辺であり、グラフ上では直線又は折れ線等で表現される。グラフを生成する際には、ユーザがグラフ構造を把握しやすいように複数のノード及び複数のエッジをレイアウトすることが望まれる。このため、例えばエッジが向きを持つ有向グラフを生成する場合には、「エッジの単一方向性」、「エッジの長さの最短性」、「エッジの交差数の最小性」、「エッジの垂直性」、「ノードの一貫性」といった条件を可能な限り満たすように複数のノード及び複数のエッジをレイアウトする必要がある。ここで、「エッジの単一方向性」とは、各エッジが同じ方向を向いていることであり、「エッジの長さの最短性」とは、各エッジをその長さができるだけ短くなるように表現することであり、「エッジの交差数の最小性」とは、交差しているエッジの数ができるだけ少なくすることであり、「エッジの垂直性」とは、各エッジを折れ線ではなく直線で表現することであり、そして、「ノードの一貫性」とは、グラフ内において同一のノードが複数箇所に現れず、一箇所だけに現れるようにすることである。
小規模なグラフに対しては、上記の各条件を満たすように複数のノード及び複数のエッジを手作業でレイアウトすることは可能であるが、大多数のノード及び大多数のエッジを含む大規模なグラフに対しては、複数のノード及び複数のエッジを手作業でレイアウトするのは困難である。このため、現在では、コンピュータを利用して、上記の各条件をできるだけ満たすようにグラフのレイアウトを自動で行うことが提案されている(例えば、特許文献1,2参照。)。この場合、グラフのレイアウトは、グラフレイアウトアルゴリズムに従って行われる。このようなグラフレイアウトアルゴリズムとしては様々なものがあるが、特に、有向グラフの階層レイアウトの分野においては、Sugiyamaアルゴリズムが有名である(例えば、非特許文献1,2参照。)。以下、Sugiyamaアルゴリズムの概要について説明する。
Sugiyamaアルゴリズムは、有向グラフの階層レイアウトを行うためのアルゴリズムである。このSugiyamaアルゴリズムでは、有向グラフとして有向非循環グラフを想定している。図18はSugiyamaアルゴリズムを説明するための図である。図18に示すように、Sugiyamaアルゴリズムは、階層割当てを行う第一ステップ(階層割当てステップ)、ノード順序付けを行う第二ステップ(順序付けステップ)、位置座標付与を行う第三ステップ(座標付与ステップ)という三つのステップから構成される。
まず、第一ステップでは、グラフ構造データに基づいて、エッジの長さの最短性やノードの一貫性等の条件をできる限り満たすように、各ノードに対してそれを配置すべき階層を割り当てる。ここで、グラフ構造データには、各ノードについてその形状及び大きさを示すデータ(ノードデータ)と、各エッジについてノードとの接続関係を示すデータ(エッジデータ)とが含まれている。かかるグラフ構造データは予めコンピュータに入力されている。次に、第二ステップでは、各階層において、エッジの交差数の最小性の条件をできる限り満たすように、当該階層が割り当てられた各ノードに対してそれを配置する順序を決定する。そして、第三ステップでは、エッジの垂直性の条件をできる限り満たすように、各ノードの位置を決定し、当該ノードにその位置に関する情報(位置座標)を付与する。こうして、各ノードの位置座標が決定されると、コンピュータは、その各ノードの位置座標に関するデータとグラフ構造データとに基づいて有向グラフを生成し、表示装置の画面に表示することができる。
尚、Sugiyamaアルゴリズムでは、レイアウトを行う有向グラフとして有向非循環グラフを想定しているが、実際にレイアウトを行う有向グラフは有向循環グラフである場合もある。Sugiyamaアルゴリズムを用いて有向循環グラフのレイアウトを行う場合は、上記三つのステップによる処理を行う前に、循環削除(Cycle
Remove)処理を行うようにすればよい。この循環削除処理では、有向循環グラフについてのグラフ構造データにおいて、エッジを「反転」(エッジの始点と終点を入れ替えること)もしくは「削除」することにより、有向非循環グラフについてのグラフ構造データを作成する。そして、この作成したグラフ構造データに対して上記三つのステップによる処理を行い、グラフのレイアウトを行う。最後に、「反転」若しくは「削除」したエッジを元に戻すことにより、有向循環グラフが生成される。
特開2002−312803号公報 特開2005−323109号公報
Kozo Sugiyama, Shojiro Tagawa andMitsuhiko Toda, "Methods for visual understanding of hierarchical systemstructures", IEEE Trans. on Systems, Man, and Cybernetics, vol.SMC-11, no.2,pp.109-125, 1981. Hugo A. D. do Nasciment and PeterEades, "User Hints for Directed Graph Drawing", Graph Drawing, pp.205-219,2001.
しかしながら、コンピュータを利用してグラフのレイアウトを行う場合、上述した各条件をできるだけ満たすようなグラフが生成されるため、その生成されたグラフは必ずしもユーザが意図したグラフにならないことが多い。例えば、コンピュータを利用してグラフのレイアウトを行うと、エッジの交差数が少なくなるようなグラフを作成することはできるが、ノードの持つ意味やユーザの考えをレイアウトに反映することができない。
また、グラフのレイアウトを行って得られたグラフがユーザの意図したレイアウトのグラフになっていない場合には、ユーザがグラフを手作業で修正することになる。しかし、例えば大規模なシステムのコールグラフでは、それに含まれるノードの数が数万個になることもあり、このようなコールグラフを手作業で修正するというのはほとんど不可能である。また、上記非特許文献2に記載されているように条件を課してグラフを自動で修正する方法も存在するが、このグラフの自動修正方法では、あくまで二つのノードに対してそれらが満たすべき条件を指定してグラフの修正を行うことができるだけであり、一度に多くのノードに対して同じ条件を課してグラフを修正することはできない。このため、この場合も、条件を課すノードが多ければ、グラフを修正するのは困難である。
本発明は上記事情に基づいてなされたものであり、ユーザが意図したレイアウトのグラフを容易に生成することができるグラフ生成装置、グラフ生成方法及びグラフ生成プログラムを提供することを目的とするものである。
上記の目的を達成するための本発明に係るグラフ生成装置は、複数のノードとノード間を接続する複数のエッジとを含むグラフを生成して表示手段の画面に表示するグラフ生成装置において、各ノードについてその形状及び大きさを示すデータと各エッジについてノードとの接続関係を示すデータとを含むグラフ構造データが記憶された記憶手段と、記憶手段に記憶されているグラフ構造データに基づいて表示手段の画面に表示された複数のノードの中から、ユーザが入力手段を用いて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択したときに、その選択した選択ノードを特定する選択ノード特定データを生成して記憶手段に記憶する選択ノード特定データ生成手段と、記憶手段に記憶されている選択ノード特定データによって特定される選択ノードの全体を一つの仮ノードで置き換えて、所定のグラフレイアウトアルゴリズムに従った処理を実行することにより、仮ノードと選択ノード以外の各ノードとのレイアウト位置を算出した後、その算出された仮ノードのレイアウト位置に、選択ノードの全体をレイアウトするという条件の下で、記憶手段に記憶されているグラフ構造データに基づいてグラフレイアウトアルゴリズムに従った処理を実行することにより、各ノードのレイアウト位置を算出し、その算出された結果に基づいてグラフを生成して、表示手段の画面に表示するグラフ生成手段と、を備えることを特徴とするものである。ここで、例えば、記憶手段に記憶されているグラフ構造データは有向グラフに対するものであり、グラフレイアウトアルゴリズムは有向グラフの階層レイアウトを行うためのアルゴリズムであってもよい。
ここで、グラフ生成手段は、選択ノード特定データ生成手段で得られた選択ノード特定データに基づいてグラフ構造データから選択ノードに関連するデータを抽出し、その抽出した選択ノードに関連するデータに基づいてグラフレイアウトアルゴリズムに従った処理を実行することにより、各選択ノードのレイアウト位置を算出する第一のレイアウト位置算出手段と、第一のレイアウト位置算出手段で得られた各選択ノードのレイアウト位置に関するデータに基づいて、選択ノードの全体をレイアウトするのに必要な領域の形状・大きさを決定する領域決定手段と、選択ノードの全体を、領域決定手段で決定された領域の形状・大きさと同じ形状・大きさを有する一つの仮ノードで置き換え、仮ノードの形状・大きさに関するデータ、仮ノードとの接続関係を示すデータ、及び、前記グラフ構造データのうち前記選択ノード以外の各ノードに関連するデータに基づいて、前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置を算出する第二のレイアウト位置算出手段と、第二のレイアウト位置算出手段で得られた仮ノードと選択ノード以外の各ノードとのレイアウト位置に関するデータによって定められる仮ノード及び選択ノード以外の各ノードについての相対的な位置関係を維持するという条件、及び、仮ノードの代わりに選択ノードの全体をレイアウトするという条件の下で、グラフ構造データに基づいてグラフレイアウトアルゴリズムに従った処理を実行することにより、グラフ構造データに記述されている各ノードのレイアウト位置を算出する第三のレイアウト位置算出手段と、第三のレイアウト位置算出手段で得られた各ノードのレイアウト位置に関するデータとグラフ構造データとに基づいてグラフを生成し、表示手段の画面に表示するグラフ表示処理手段と、を有することが望ましい。
上記の構成により、本発明に係るグラフ生成装置は、入力手段を用いて選択された選択ノードの全体を一つの仮ノードで置き換えて、仮ノードと選択ノード以外の各ノードとについてのレイアウト位置を算出した後、その算出された仮ノードのレイアウト位置に、選択ノードの全体をレイアウトするという条件の下に、グラフ構造データに基づいて所定のグラフレイアウトアルゴリズムに従った処理を実行して、グラフのレイアウトを行う。このため、グラフ上には、選択ノードの全体が互いに近接した位置にレイアウトされるので、ユーザが意図したレイアウトのグラフを容易に生成することができる。
また、本発明に係るグラフ生成装置は、グラフ構造データに基づいてグラフレイアウトアルゴリズムに従った処理を実行することによりグラフを生成し、表示手段の画面に表示する基本グラフ生成手段を備え、選択ノード特定データ生成手段は、基本グラフ生成手段によって表示手段の画面に表示されたグラフにおいて、ユーザが入力手段を用いて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択したときに、その選択した選択ノードを特定する選択ノード特定データを生成することが望ましい。これにより、ユーザは表示手段の画面に表示されたグラフを見ながら、そのグラフに含まれるノードの中から所望のノードを選択することができるので、選択ノードの選択を容易に行うことができる。
また、上記の目的を達成するための本発明に係るグラフ生成方法は、コンピュータを利用して、複数のノードとノード間を接続する複数のエッジとを含むグラフを生成してコンピュータの表示手段の画面に表示するグラフ生成方法において、コンピュータの記憶手段に記憶されている、各ノードについてその形状及び大きさを示すデータと各エッジについてノードとの接続関係を示すデータとを含むグラフ構造データに基づいて表示手段の画面に表示された複数のノードの中から、ユーザがコンピュータの入力手段を用いて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択したときに、コンピュータの制御手段が、その選択した選択ノードを特定する選択ノード特定データを生成して記憶手段に記憶する選択ノード特定データ生成ステップと、制御手段が、記憶手段に記憶されている選択ノード特定データによって特定される選択ノードの全体を一つの仮ノードで置き換えて、所定のグラフレイアウトアルゴリズムに従った処理を実行することにより、仮ノードと選択ノード以外の各ノードとのレイアウト位置を算出した後、その算出された仮ノードのレイアウト位置に、選択ノードの全体をレイアウトするという条件の下で、記憶手段に記憶されているグラフ構造データに基づいてグラフレイアウトアルゴリズムに従った処理を実行することにより、各ノードのレイアウト位置を算出し、その算出された結果に基づいてグラフを生成して、表示手段の画面に表示するグラフ生成ステップと、を具備することを特徴とするものである。ここで、例えば、記憶手段に記憶されているグラフ構造データは有向グラフに対するものであり、グラフレイアウトアルゴリズムは有向グラフの階層レイアウトを行うためのアルゴリズムであってもよい。
ここで、グラフ生成ステップは、制御手段が、選択ノード特定データ生成ステップで得られた選択ノード特定データに基づいてグラフ構造データから選択ノードに関連するデータを抽出し、その抽出した選択ノードに関連するデータに基づいてグラフレイアウトアルゴリズムに従った処理を実行することにより、各選択ノードのレイアウト位置を算出する第一ステップと、制御手段が、第一ステップで得られた各選択ノードのレイアウト位置に関するデータに基づいて、選択ノードの全体をレイアウトするのに必要な領域の形状・大きさを決定する第二ステップと、制御手段が、選択ノードの全体を、第二ステップで決定された領域の形状・大きさと同じ形状・大きさを有する一つの仮ノードで置き換え、仮ノードの形状・大きさに関するデータ、仮ノードとの接続関係を示すデータ、及び、グラフ構造データのうち選択ノード以外の各ノードに関連するデータに基づいて、グラフレイアウトアルゴリズムに従った処理を実行することにより、仮ノードと選択ノード以外の各ノードとのレイアウト位置を算出する第三ステップと、制御手段が、第三ステップで得られた仮ノードと選択ノード以外の各ノードとのレイアウト位置に関するデータによって定められる仮ノード及び選択ノード以外の各ノードについての相対的な位置関係を維持するという条件、及び、仮ノードの代わりに選択ノードの全体をレイアウトするという条件の下で、グラフ構造データに基づいてグラフレイアウトアルゴリズムに従った処理を実行することにより、グラフ構造データに記述されている各ノードのレイアウト位置を算出する第四ステップと、制御手段が、第四ステップで得られた各ノードのレイアウト位置に関するデータとグラフ構造データとに基づいてグラフを生成し、表示手段の画面に表示する第五ステップと、を備えることが望ましい。
本発明に係るグラフ生成方法では、コンピュータの制御手段が、入力手段を用いて選択された選択ノードの全体を一つの仮ノードで置き換えて、仮ノードと選択ノード以外の各ノードとについてのレイアウト位置を算出した後、その算出された仮ノードのレイアウト位置に、選択ノードの全体をレイアウトするという条件の下に、グラフ構造データに基づいて所定のグラフレイアウトアルゴリズムに従った処理を実行して、グラフのレイアウトを行う。このため、グラフ上には、選択ノードの全体が互いに近接した位置にレイアウトされるので、ユーザが意図したレイアウトのグラフを容易に生成することができる。
更に、上記の目的を達成するための本発明に係るグラフ生成プログラムは、コンピュータを利用して、複数のノードとノード間を接続する複数のエッジとを含むグラフを生成してコンピュータの表示手段の画面に表示するためのグラフ生成プログラムにおいて、コンピュータに、コンピュータの記憶手段に記憶されている、各ノードについてその形状及び大きさを示すデータと各エッジについてノードとの接続関係を示すデータとを含むグラフ構造データに基づいて表示手段の画面に表示された複数のノードの中から、ユーザがコンピュータの入力手段を用いて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択したときに、その選択した選択ノードを特定する選択ノード特定データを生成して記憶手段に記憶する選択ノード特定データ生成機能と、記憶手段に記憶されている選択ノード特定データによって特定される選択ノードの全体を一つの仮ノードで置き換えて、所定のグラフレイアウトアルゴリズムに従った処理を実行することにより、仮ノードと選択ノード以外の各ノードとのレイアウト位置を算出した後、その算出された仮ノードのレイアウト位置に、選択ノードの全体をレイアウトするという条件の下で、記憶手段に記憶されているグラフ構造データに基づいてグラフレイアウトアルゴリズムに従った処理を実行することにより、各ノードのレイアウト位置を算出し、その算出された結果に基づいてグラフを生成して、表示手段の画面に表示するグラフ生成機能と、を実現させることを特徴とするものである。ここで、例えば、記憶手段に記憶されているグラフ構造データは有向グラフに対するものであり、グラフレイアウトアルゴリズムは有向グラフの階層レイアウトを行うためのアルゴリズムであってもよい。
ここで、グラフ生成機能は、選択ノード特定データ生成機能で得られた選択ノード特定データに基づいてグラフ構造データから選択ノードに関連するデータを抽出し、その抽出した選択ノードに関連するデータに基づいてグラフレイアウトアルゴリズムに従った処理を実行することにより、各選択ノードのレイアウト位置を算出する第一のレイアウト位置算出機能と、第一のレイアウト位置算出機能で得られた各選択ノードのレイアウト位置に関するデータに基づいて、選択ノードの全体をレイアウトするのに必要な領域の形状・大きさを決定する領域決定機能と、選択ノードの全体を、領域決定機能で決定された領域の形状・大きさと同じ形状・大きさを有する一つの仮ノードで置き換え、仮ノードの形状・大きさに関するデータ、仮ノードとの接続関係を示すデータ、及び、グラフ構造データのうち選択ノード以外の各ノードに関連するデータに基づいて、グラフレイアウトアルゴリズムに従った処理を実行することにより、仮ノードと選択ノード以外の各ノードとのレイアウト位置を算出する第二のレイアウト位置算出機能と、第二のレイアウト位置算出機能で得られた仮ノードと選択ノード以外の各ノードとのレイアウト位置に関するデータによって定められる仮ノード及び選択ノード以外の各ノードについての相対的な位置関係を維持するという条件、及び、仮ノードの代わりに選択ノードの全体をレイアウトするという条件の下で、グラフ構造データに基づいてグラフレイアウトアルゴリズムに従った処理を実行することにより、グラフ構造データに記述されている各ノードのレイアウト位置を算出する第三のレイアウト位置算出機能と、第三のレイアウト位置算出機能で得られた各ノードのレイアウト位置に関するデータとグラフ構造データとに基づいてグラフを生成し、表示手段の画面に表示するグラフ表示処理機能と、を備えることが望ましい。
本発明に係るグラフ生成プログラムをコンピュータに適用すると、このコンピュータは、入力手段を用いて選択された選択ノードの全体を一つの仮ノードで置き換えて、仮ノードと選択ノード以外の各ノードとについてのレイアウト位置を算出した後、その算出された仮ノードのレイアウト位置に、選択ノードの全体をレイアウトするという条件の下に、グラフ構造データに基づいて所定のグラフレイアウトアルゴリズムに従った処理を実行して、グラフのレイアウトを行う。このため、グラフ上には、選択ノードの全体が互いに近接した位置にレイアウトされるので、ユーザが意図したレイアウトのグラフを容易に生成することができる。
本発明に係るグラフ生成装置、グラフ生成方法及びグラフ生成プログラムによれば、グラフ上には、ユーザが入力手段を用いて選択した選択ノードの全体が互いに近接した位置にレイアウトされるので、ユーザが意図したレイアウトのグラフを容易に生成することができる。
図1は本発明の一実施形態であるグラフ生成装置の概略ブロック図である。 図2はグラフ構造データの一例を示す図である。 図3は本実施形態のグラフ生成装置においてグラフを生成して表示装置の画面に表示する処理の手順を説明するためのフローチャートである。 図4は第一のグラフ生成手段によって修正された修正エッジデータの例を示す図である。 図5は第一のグラフ生成手段によって生成されるレイアウト元データの例を示す図である。 図6は図5に示すレイアウト元データに対応する基本グラフを示す図である。 図7(a)はグラフ構造データのうち選択ノードに関連するデータを示す図、図7(b)は第一のレイアウト位置算出手段によって生成される、選択ノードをレイアウトするためのレイアウト元データの例を示す図である。 図8は図7(b)に示すレイアウト元データに対応するグラフを示す図である。 図9は選択ノードを一つの仮ノードで置き換えた場合のグラフ構造データを示す図である。 図10は第二のレイアウト位置算出手段によって生成される、仮ノードと選択ノード以外の各ノードとをレイアウトするためのレイアウト元データの例を示す図である。 図11は図10に示すレイアウト元データに対応するグラフを示す図である。 図12(a)は第三のレイアウト位置算出手段が階層割当てステップに従った処理を行うことによって決定された各ノードの階層を示す図、図12(b)は第三のレイアウト位置算出手段が順序付けステップに従った処理を行うことによって決定された各ノードの階層及び階層内順序を示す図である。 図13は第三のレイアウト位置算出手段によって生成される、各ノードをレイアウトするためのレイアウト元データの例を示す図である。 図14は図13に示すレイアウト元データに対応するグラフを示す図である。 図15は仮ノードが中間階層に配置される場合のグラフ生成処理の概要を説明するための図である。 図16は仮ノードが中間階層に配置される場合のグラフ生成処理の概要を説明するための図である。 図17は仮ノードが中間階層に配置される場合のグラフ生成処理の概要を説明するための図である。 図18はSugiyamaアルゴリズムを説明するための図である。
以下に、図面を参照して、本願に係る発明を実施するための形態について説明する。図1は本発明の一実施形態であるグラフ生成装置の概略ブロック図である。
本実施形態のグラフ生成装置は、複数のノードとノード間を接続する複数のエッジとを含むグラフを生成して画面に表示するものであり、図1に示すように、入力装置10と、表示装置20と、ROM30と、RAM40と、制御部50とを備える。かかるグラフ生成装置は、例えばパーソナルコンピュータにより実現される。
入力装置(入力手段)10は、例えば、各種の指示やデータを入力するものである。この入力装置10としては、キーボードやマウス等が用いられる。例えば、ユーザは入力装置10を用いて、グラフを生成するのに必要なグラフ構造データを入力する。また、この入力装置10は、表示装置20の画面に表示された、グラフ構造データに記述されている複数のノードの中から、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択するための選択手段として用いられる。表示装置(表示手段)20は、制御部50によって生成されたグラフを表示するものである。
RAM(記憶手段)40には、各種のデータ、例えば、入力装置10を用いて入力されたグラフ構造データや、入力装置10を用いて選択された選択ノードを特定するデータ等が記憶される。本実施形態では、グラフ構造データは、有向非循環グラフに対するものである場合について説明する。図2はグラフ構造データの一例を示す図である。かかるグラフ構造データには、図2に示すように、ノードデータと、エッジデータとが含まれる。ノードデータは、各ノードについてその形状及び大きさ(図形定義情報)を示すものである。例えば、グラフ上においてあるノードを円で表示する場合には、当該ノードについての図形定義情報には、当該ノードの形状が円である旨の内容とその円の半径とが含まれる。また、あるノードを長方形で表示する場合には、当該ノードについての図形定義情報には、当該ノードの形状が長方形である旨の内容とその長方形の縦の長さ及び横の長さとが含まれる。エッジデータは、各エッジについてノードとの接続関係を示すものである。有向グラフにおけるエッジは向きを持っており、この向きはエッジの始点から終点への向きとして特定される。具体的に、各エッジについてのエッジデータには、当該エッジの始点に接続されるノード(始点ノード)とその終点に接続されるノード(終点ノード)とを特定するデータが含まれる。
ROM30には、制御部50に所定の処理を実行させるための各種のプログラムが記憶されている。例えば、所定のグラフレイアウトアルゴリズムに従った処理を行うことにより各ノードのレイアウト位置を算出するためのプログラム、グラフ構造データ等に基づいてグラフを生成するプログラム、その生成したグラフを表示装置20の画面に表示するプログラム等がROM30に記憶されている。ここで、本実施形態では、グラフ構造データが有向グラフに対するものであるので、上記グラフレイアウトアルゴリズムとしては、有向グラフの階層レイアウトを行うためのアルゴリズム、具体的にはSugiyamaアルゴリズムが用いられる。
制御部(制御手段)50は、本装置の各部を統括して制御するものである。この制御部50は、図1に示すように、第一のグラフ生成手段51と、選択ノード特定データ生成手段52と、第二のグラフ生成手段53とを備える。
第一のグラフ生成手段(基本グラフ生成手段)51は、ユーザが入力装置10を用いて所定の指示を入力したときに、RAM40に記憶されているグラフ構造データに基づいてSugiyamaアルゴリズムに従った処理を実行することにより、グラフ構造データに記述されている各ノードのレイアウト位置を算出し、この算出された各ノードのレイアウト位置に関するデータとグラフ構造データとに基づいてグラフを生成して、表示装置20の画面に表示するものである。ここで、第一のグラフ生成手段51によって表示装置20の画面に表示されるグラフは、RAM40に記憶されているグラフ構造データをそのまま用いてSugiyamaアルゴリズムに従った処理を適用することによりレイアウトされたものであるので、必ずしもユーザの意図したレイアウトのグラフになっていない。以下では、この第一のグラフ生成手段51によって生成されるグラフのことを特に「基本グラフ」とも称することにする。
選択ノード特定データ生成手段52は、表示装置20の画面に表示された基本グラフにおいて、ユーザが入力装置10を用いて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択したときに、その選択した選択ノードを特定するデータ(選択ノード特定データ)を生成するものである。ユーザは、基本グラフを見て、自身の意図したレイアウトがなされていないときに、入力装置10を用いて、その基本グラフにおいて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択することになる。選択ノード特定データ生成手段52は、こうして選択された選択ノードを特定する選択ノード特定データを生成し、RAM40に一時記憶する。
第二のグラフ生成手段53は、RAM40に記憶されている選択ノード特定データによって特定される選択ノードの全体を一つの仮ノードで置き換えて、Sugiyamaアルゴリズムに従った処理を実行することにより、仮ノードと選択ノード以外の各ノードとのレイアウト位置を算出した後、その算出された仮ノードのレイアウト位置に、選択ノードの全体をレイアウトするという条件の下で、RAM40に記憶されているグラフ構造データに基づいてSugiyamaアルゴリズムに従った処理を実行することにより、各ノードのレイアウト位置を算出し、その算出された結果に基づいてグラフを生成して、表示装置20の画面に表示するものである。具体的に、この第二のグラフ生成手段53は、図1に示すように、第一のレイアウト位置算出手段531と、領域決定手段532と、第二のレイアウト位置算出手段533と、第三のレイアウト位置算出手段534と、グラフ表示処理手段535とを有する。
第一のレイアウト位置算出手段531は、選択ノード特定データ生成手段52で得られた選択ノード特定データに基づいてグラフ構造データから選択ノードに関連するデータを抽出し、その抽出した選択ノードに関連するデータに基づいてSugiyamaアルゴリズムに従った処理を実行することにより、各選択ノードのレイアウト位置を算出するものである。ここで、「選択ノードに関連するデータ」とは、各選択ノードについてのノードデータ、及び、始点と終点とがともに選択ノードと接続されているエッジについてのエッジデータのことである。したがって、第一のレイアウト位置算出手段531で算出される各選択ノードのレイアウト位置は、選択ノードだけをレイアウトすると仮定した場合におけるノードのレイアウト位置である。第一のレイアウト位置算出手段531によって算出された各選択ノードのレイアウト位置に関するデータはRAM40に一時記憶される。
領域決定手段532は、第一のレイアウト位置算出手段531で得られた各選択ノードのレイアウト位置に関するデータに基づいて、選択ノードの全体をレイアウトするのに必要な領域の形状・大きさを決定するものである。特に、本実施形態では、領域決定手段532は、選択ノードの全体をレイアウトするのに必要な領域として選択ノードの全体を含む最小の大きさの長方形の領域を決定することにしている。そして、領域決定手段532は、その決定した領域についてのデータとして、当該領域の形状が長方形である旨の内容とその長方形の縦の長さ及び横の長さとを含むものを生成し、RAM40に一時記憶する。
第二のレイアウト位置算出手段533は、選択ノードの全体を、領域決定手段532で決定された領域の形状・大きさと同じ形状・大きさを有する一つの仮ノードで置き換え、仮ノードの形状・大きさに関するデータ、仮ノードとの接続関係を示すデータ、及び、グラフ構造データのうち選択ノード以外の各ノードに関連するデータに基づいて、Sugiyamaアルゴリズムに従った処理を実行することにより、仮ノードと選択ノード以外の各ノードとのレイアウト位置を算出するものである。ここで、「仮ノードの形状・大きさに関するデータ」としては、領域決定手段532で得られた領域についてのデータを用いることができる。また、「仮ノードとの接続関係を示すデータ」とは、始点及び終点のうち少なくとも一方が選択ノードと接続されているエッジについてのエッジデータのことであり、かかるデータは、選択ノードを特定するデータ及びグラフ構造データに基づいて生成される。更に、「グラフ構造データのうち選択ノード以外の各ノードに関連するデータ」とは、選択ノード以外の各ノードについてのノードデータ、及び、始点と終点とがともに選択ノードと接続されていないエッジについてのエッジデータのことである。第二のレイアウト位置算出手段533によって算出された仮ノードと選択ノード以外の各ノードとのレイアウト位置に関するデータはRAM40に一時記憶される。
第三のレイアウト位置算出手段534は、第二のレイアウト位置算出手段533で得られた仮ノードと選択ノード以外の各ノードとのレイアウト位置に関するデータによって定められる仮ノード及び選択ノード以外の各ノードについての相対的な位置関係を維持するという条件、及び、仮ノードの代わりに選択ノードの全体をレイアウトするという条件の下で、グラフ構造データに基づいてSugiyamaアルゴリズムに従った処理を実行することにより、グラフ構造データに記述されている各ノードのレイアウト位置を算出するものである。したがって、第三のレイアウト位置算出手段534によって算出された各ノードのレイアウト位置に関するデータの内容は、選択ノードの全体を互いに近接した位置にレイアウトするという内容になっている。第三のレイアウト位置算出手段534によって算出された各ノードとのレイアウト位置に関するデータはRAM40に一時記憶される。
グラフ表示処理手段535は、第三のレイアウト位置算出手段534で得られた各ノードのレイアウト位置に関するデータとグラフ構造データとに基づいてグラフを生成し、表示装置20の画面に表示するものである。このとき、表示装置20の画面に表示されるグラフ上には、選択ノードの全体が互いに近接した位置にレイアウトされており、これにより、ユーザが意図したレイアウトのグラフが生成される。
次に、本実施形態のグラフ生成装置においてグラフを生成して表示装置20の画面に表示する処理の手順について説明する。
図3は本実施形態のグラフ生成装置においてグラフを生成して表示装置20の画面に表示する処理の手順を説明するためのフローチャートである。以下では、図2に示すグラフ構造データがRAM40に記憶されており、このグラフ構造データに対するグラフを生成する場合を説明する。このグラフ構造データのノードデータによれば、グラフには11個のノード1〜11が含まれ、いずれのノード1〜11の形状も半径rの円である。また、そのグラフ構造データのエッジデータによれば、グラフには9つのエッジe1〜e9が含まれている。
まず、ユーザは、入力装置10を用いてグラフを生成する旨の指示を入力する。すると、制御部50はグラフ生成処理を開始する。この処理が開始されると、最初に、制御部50の第一のグラフ生成手段51は、RAM40に記憶されているグラフ構造データに基づいてSugiyamaアルゴリズムに従った処理を実行することにより、グラフ構造データに記述されている各ノードのレイアウト位置を算出する。そして、この算出した各ノードのレイアウト位置に関するデータとグラフ構造データとに基づいて基本グラフを生成して表示装置20の画面に表示する(S1)。
いま、第一のグラフ生成手段51が行うSugiyamaアルゴリズムに従った処理の内容を詳しく説明する。Sugiyamaアルゴリズムは、上述したように、第一ステップとしての階層割当てステップ、第二ステップとしての順序付けステップ、第三ステップとしての座標付与ステップからなる。まず、第一のグラフ生成手段51は、Sugiyamaアルゴリズムにおける階層割当てステップに従った処理を行う。すなわち、第一のグラフ生成手段51は、図2に示すグラフ構造データのエッジデータに基づいて、エッジとノードとの接続関係をチェックした後、エッジの長さの最短性やノードの一貫性等の条件をできる限り満たすように、各ノードに対してそれを配置すべき階層を割り当てる。
具体的に、この階層の割当ては次のようにして行われる。図2に示すエッジデータによれば、ノード1は、いずれのエッジの終点にも接続されていないので、最上位の第1階層に割り当てられることになる。このノード1はエッジe1の始点にのみ接続されている。そして、エッジe1の終点にはノード3が接続されているが、ノード3は、エッジe1の終点を除き、いずれのエッジの終点にも接続されていないので、ノード1よりも一つ下位の階層、すなわち第2階層に割り当てられることになる。また、ノード3はエッジe2の始点とエッジe3の始点に接続されている。このエッジe2の終点にはノード5が接続されているが、ノード5は、エッジe2の終点を除き、いずれのエッジの終点にも接続されていないので、ノード3よりも一つ下位の階層、すなわち第3階層に割り当てられることになる。一方、エッジe3の終点にはノード6が接続されているが、ノード6は、エッジe3の終点を除き、いずれのエッジの終点にも接続されていないので、第3階層に割り当てられることになる。
また、ノード2は、いずれのエッジの終点にも接続されていないので、第1階層に割り当てられることになる。このノード2はエッジe5の始点にのみ接続され、エッジe5の終点にはノード4が接続されているが、ノード4は、エッジe5の終点を除き、いずれのエッジの終点にも接続されていないので、第2階層に割り当てられることになる。また、ノード4はエッジe6の始点に接続され、エッジe6の終点にはノード7が接続されているが、ノード7は、エッジe6の終点を除き、いずれのエッジの終点にも接続されていないので、第3階層に割り当てられることになる。
更に、ノード9は、いずれのエッジの終点にも接続されていないので、第1階層に割り当てられることになる。このノード9はエッジe8の始点にのみ接続され、このエッジe8の終点にはノード10が接続されているが、ノード10は、エッジe8の終点を除き、いずれのエッジの終点にも接続されていないので、第2階層に割り当てられることになる。そして、ノード10はエッジe9の始点に接続され、このエッジe9の終点にはノード11が接続されているが、ノード11は、エッジe9の終点を除き、いずれのエッジの終点にも接続されていないので、第3階層に割り当てられることになる。
また、ノード8は、エッジe4の終点及びエッジe7の終点に接続されている。ここで、エッジe4の始点には第3階層に割り当てられるノード5が接続され、エッジe7の始点には第2階層に割り当てられるノード4が接続されている。このため、ノード8は、ノード5及びノード4のうちより下位の階層に割り当てられているノードよりも一つ下位の階層、すなわち第4階層に割り当てられることになる。こうして、各ノードに対してそれを配置すべき階層が決定される。
次に、第一のグラフ生成手段51は、Sugiyamaアルゴリズムにおける順序付けステップに従った処理を行う。すなわち、第一のグラフ生成手段51は、各階層において、エッジの交差数の最小性等の条件をできる限り満たすように、当該階層が割り当てられた各ノードに対してそれを配置する順序を決定する。ここでは、各階層においてノードを配置する順序を、全てのノードを一列に並べたときに当該ノードが左側から何番目に配置されているかによって表すことにする。特に、第一のグラフ生成手段51は、あるエッジについてその始点に接続されるノードに割り当てられた階層とその終点に接続されるノードに割り当てられた階層との間に1以上の階層が存在する場合には、その存在する階層の各々に、当該エッジの通過点を表すためにダミーのノードを追加する。ダミーノードが追加された場合、第一のグラフ生成手段51は、ダミーノードが追加された各階層において、その追加されたダミーのノードを通常のノードに加えた全体のノードの各々に対して順序付けを行う。
本実施形態では、エッジe7についてはその始点にノード4が接続され、その終点にノード8が接続されるが、上記の階層割当てステップに従った処理の結果、ノード4は第2階層に割り当てられ、ノード8は第4階層に割り当てられている。このため、第3階層にはダミーのノードd1が追加されることになる。また、このダミーノードd1の追加により、エッジe7は、ノード4とダミーノードd1とを接続するエッジe7’と、ダミーノードd1とノード8とを接続するエッジe7”とに分けられることになる。ここで、第一のグラフ生成手段51は、ダミーノードを追加したときに、そのダミーノードの追加に応じた修正をエッジデータに加え、その修正を加えたエッジデータを修正エッジデータとしてRAM40に一時記憶しておく。図4に第一のグラフ生成手段51によって修正された修正エッジデータの例を示す。その後、第一のグラフ生成手段51は、各階層においてノードの順序付けを行う。その結果、例えば、第1階層においては、ノード9を1番目に、ノード2を2番目に、ノード1を3番目に配置することが決定され、第2階層においては、ノード10を1番目に、ノード4を2番目に、ノード3を3番目に配置することが決定され、第3階層においては、ノード11を1番目に、ダミーノードd1を2番目に、ノード7を3番目に、ノード6を4番目に、ノード5を5番目に配置することが決定される。そして、第4階層にはノード8が一つだけ配置されるので、ノード8を1番目に配置することが決定される。
次に、第一のグラフ生成手段51は、Sugiyamaアルゴリズムにおける座標付与ステップに従った処理を行う。すなわち、第一のグラフ生成手段51は、エッジの垂直性の条件をできる限り満たすように、各ノードの位置を決定し、当該ノードにレイアウト位置座標(レイアウト位置に関するデータ)を付与する。ここで、ダミーノードが存在していれば、ダミーノードについてもそのレイアウト位置座標が付与される。また、レイアウト位置座標としては、例えば、ノードの形状が円である場合には中心の位置座標を用いることができ、ノードの形状が長方形である場合には例えば4つの頂点のうちいずれかの頂点(例えば左上の頂点)の位置座標を用いることができる。更に、ダミーノードについてはその形状が所定の図形、例えば点とすることが予め定められており、ダミーノードについてのレイアウト位置座標としては、当該点の位置座標を用いることができる。
こうして、第一のグラフ生成手段51は、グラフ構造データに基づいてSugiyamaアルゴリズムに従った処理を実行することにより、グラフ生成に利用する中間的なデータとしてのレイアウト元データを生成する。レイアウト元データには、Sugiyamaアルゴリズムに従った処理で得られたデータが含まれている。図5は第一のグラフ生成手段51によって生成されるレイアウト元データの例を示す図である。具体的に、レイアウト元データには、図5に示すように、各ノードについて、当該ノードに割り当てられた階層、階層内で当該ノードが配置される順序(階層内順序)、レイアウト位置座標、図形定義情報といった各データが含まれている。但し、ダミーノードの形状・大きさは予め定められているため、レイアウト元データにはダミーノードの図形定義情報は示されていない。ところで、実際、グラフ生成のためには、各ノードのレイアウト位置座標とグラフ構造データとがあればよい。本実施形態では、本発明の内容が容易に理解することができるように、レイアウト元データに、レイアウト位置座標の他に、階層、階層内順序、及び、図形定義情報をも含めている。したがって、レイアウト元データには、少なくとも各ノードのレイアウト位置座標が含まれていればよい。
その後、第一のグラフ生成手段51は、図5に示すレイアウト元データとRAM40に記憶されているグラフ構造データとに基づいて基本グラフを生成し、表示装置20の画面に表示する。図6に図5に示すレイアウト元データに対応する基本グラフを示す。ここで、グラフを生成する際、ノード上におけるエッジとの接続点は予め定められている。特に、ダミーノードについては、それを表す図形である点が接続点である。そして、ある階層のノードとそれより一つ下位の階層のノードとがエッジで接続される場合には、これら二つのノードの接続点間を矢印付きの直線で結ぶことにより、グラフを生成している。尚、本実施形態では、上述したようにダミーノードを点で表すことにしているが、図6のグラフでは、ダミーノードの存在を明確に示すため、ダミーノードを黒丸(小さな円)で表現している。また、他のグラフにおいても同様に、ダミーノードを黒丸で表現することにする。
次に、ユーザは、表示装置20の画面に表示された基本グラフを見て、その基本グラフが自分の意図したグラフになっているかどうかを判断する。ユーザの意図したグラフが生成されておらず、ユーザは、その基本グラフにおいていくつかのノードを互いに近接した位置にレイアウトしたい場合、それらのノードを選択することになる。例えば、図6に示す基本グラフにおいて、ノード5,8,11が同じ種類のノードであるため、ユーザは、ノード5,8,11を互いに近接した位置にレイアウトしたいと考えたとする。この場合、ユーザは、入力装置10を用いて、ノード5,8,11を選択した後、所定のメニュー画面を表示させて、そのメニュー画面に含まれる項目の中から、選択したノードを近接した位置にレイアウトする処理の実行を指示するための項目を選択する。すると、ユーザが選択したノード5,8,11についてのデータと選択したノードを近接した位置にレイアウトする処理の実行を指示する命令が選択ノード特定データ生成手段52に送られる。選択ノード特定データ生成手段52は、この命令を受けると、基本グラフにおいて選択されたノード5,8,11を選択ノードとして特定する選択ノード特定データを生成して、RAM40に一時記憶する(S2)。
こうして選択ノード特定データ生成手段52により選択ノード特定データが生成されると、次に、制御部50の第一のレイアウト位置算出手段531は、その生成された選択ノード特定データに基づいてグラフ構造データから選択ノード5,8,11に関連するデータを抽出する。そして、その抽出した選択ノード5,8,11に関連するデータに基づいてSugiyamaアルゴリズムに従った処理を実行することにより、各選択ノードのレイアウト位置を算出する(S3)。ここで、図7(a)にグラフ構造データのうち選択ノード5,8,11に関連するデータを示す。すなわち、選択ノード5,8,11に関連するデータは、選択ノード5,8,11についてのノードデータと、始点と終点がともに選択ノードと接続されているエッジe4についてのエッジデータとからなる。
具体的に、まず、第一のレイアウト位置算出手段531は、図7(a)に示すデータに基づいてSugiyamaアルゴリズムにおける階層割当てステップに従った処理を行う。これにより、選択ノード5,11を最上位の第1階層に配置し、選択ノード8を第2階層に配置することが決定される。次に、第一のレイアウト位置算出手段531は、Sugiyamaアルゴリズムにおける順序付けステップに従った処理を行う。これにより、第1階層においては、選択ノード11を1番目に、選択ノード5を2番目に配置し、第2階層においては、選択ノード8を1番目に配置することが決定される。その後、第一のレイアウト位置算出手段531は、Sugiyamaアルゴリズムにおける座標付与ステップに従った処理を行い、各選択ノードのレイアウト位置座標を決定する。こうして、第一のレイアウト位置算出手段531による処理の結果、選択ノードをレイアウトするためのレイアウト元データが生成される。図7(b)は第一のレイアウト位置算出手段531によって生成される、選択ノードをレイアウトするためのレイアウト元データの例を示す図である。また、図8に図7(b)に示すレイアウト元データに対応するグラフを示す。尚、図8は図7(b)の内容を説明するための図であり、実際にこの図8に示すグラフが表示装置20の画面に表示されるわけではない。
次に、制御部50の領域決定手段532は、第一のレイアウト位置算出手段531で得られた各選択ノード5,8,11のレイアウト位置に関するデータに基づいて、選択ノード5,8,11の全体をレイアウトするのに必要な領域の形状・大きさを決定する(S4)。例えば、領域決定手段532は、図8に示すグラフにおいて三つの選択ノード5,8,11を包含する最小面積の長方形Rを当該領域の形状として決定し、その長方形Rの縦の長さa及び横の長さbを求める。こうして得られた領域についてのデータは、RAM40に一時記憶される。
尚、本実施形態では、領域決定手段532が、選択ノードの全体をレイアウトするのに必要な領域として選択ノードの全体を含む最小の大きさの長方形の領域を決定することにしているが、これは一例であって、一般に、領域決定手段532は、選択ノードの全体をレイアウトするのに必要な領域として必ずしも選択ノードの全体を含む最小の大きさの領域を決定する必要はない。また、領域の形状は長方形に限らず、円等、他の形状であってもよい。
次に、制御部50の第二のレイアウト位置算出手段533は、選択ノード5,8,11の全体を、領域決定手段532で決定された領域の形状・大きさと同じ形状・大きさを有する一つの仮ノード12で置き換え、仮ノード12の形状・大きさに関するデータ、仮ノード12との接続関係を示すデータ、及び、グラフ構造データのうち選択ノード以外の各ノードに関連するデータに基づいて、Sugiyamaアルゴリズムに従った処理を実行することにより、仮ノード12と選択ノード5,8,11以外の各ノード1,2,3,4,6,7,9,10とのレイアウト位置を算出する(S5)。ここで、仮ノード12の形状・大きさに関するデータは、仮ノード12についてのノードデータのことであり、その内容は、領域決定手段532で得られた領域についてのデータの内容と同じである。また、仮ノード12との接続関係を示すデータは、始点及び終点のうち少なくとも一方が仮ノードと接続されているエッジについてのエッジデータのことであり、選択ノードを特定するデータ及びグラフ構造データに基づいて生成される。例えば、図2に示すグラフ構造データのエッジデータによれば、始点及び終点のうち少なくとも一方が選択ノード5,8,11と接続されているエッジは、エッジe2,e4,e7,e9である。この四つのエッジe2,e4,e7,e9についてのエッジデータにおいて当該選択ノードを仮ノード12に置き換えることにより得られるエッジデータが、仮ノード12との接続関係を示すデータである。したがって、「仮ノード12の形状・大きさに関するデータ」、「仮ノード12との接続関係を示すデータ」、及び、「グラフ構造データのうち選択ノード以外の各ノードに関連するデータ」は全体として、選択ノード5,8,11を一つの仮ノード12で置き換え、仮ノード12と各ノード1,2,3,4,6,7,9,10とを含むグラフについてのグラフ構造データである。図9は選択ノード5,8,11を一つの仮ノード12で置き換えた場合のグラフ構造データを示す図である。尚、図2に示すグラフ構造データにおいて、エッジe4についてはその始点及び終点がともに選択ノードと接続されているので、エッジe4についてのエッジデータは、図9に示すグラフ構造データには含まれていない。
具体的に、まず、第二のレイアウト位置算出手段533は、図9に示すデータに基づいてSugiyamaアルゴリズムにおける階層割当てステップに従った処理を行う。これにより、ノード1,2,9を第1階層に配置し、ノード3,4,10を第2階層に配置し、ノード6,7及び仮ノード12を第3階層に配置することが決定される。ここで、仮ノード12は、第3階層及び第4階層の二つの階層にまたがって配置されるノードであると認識されている。一般に、仮ノードは一つの階層に収まって配置される場合もあるし、二つ以上の階層に跨って配置される場合もある。一つの階層に配置できるノードの最大の大きさは予め定められており、第二のレイアウト位置算出手段533は、今回配置する仮ノードの大きさを、一つの階層に配置できるノードの最大の大きさと比較することにより、当該仮ノードを何階層にまたがって配置するかを決定するのである。次に、第二のレイアウト位置算出手段533は、Sugiyamaアルゴリズムにおける順序付けステップに従った処理を行う。これにより、第1階層においては、ノード2を1番目に、ノード9を2番目に、ノード1を3番目に配置し、第2階層においては、ノード4を1番目に、ノード10を2番目に、ノード3を3番目に配置し、第3階層においては、ノード7を1番目に、仮ノード12を2番目に、ノード6を3番目に配置することが決定される。その後、第二のレイアウト位置算出手段533は、Sugiyamaアルゴリズムにおける座標付与ステップに従った処理を行い、仮ノード12と各ノード1,2,3,4,6,7,9,10とのレイアウト位置座標を決定する。こうして、第二のレイアウト位置算出手段533による処理の結果、仮ノード12と各ノード1,2,3,4,6,7,9,10とをレイアウトするためのレイアウト元データが生成される。図10は第二のレイアウト位置算出手段533によって生成される、仮ノードと選択ノード以外の各ノードとをレイアウトするためのレイアウト元データの例を示す図である。また、図11に図10に示すレイアウト元データに対応するグラフを示す。図11に示すグラフと図6に示す基本グラフとを比較すると、各ノード1,2,3,4,6,7,9,10が割り当てられる階層は同じであるが、各階層におけるノードの配置順序が異なっている。これは、選択ノード5,8,11を一つの仮ノード12に置き換えて処理を行った結果である。尚、図11は図10の内容を説明するための図であり、実際にこの図11に示すグラフが表示装置20の画面に表示されるわけではない。
次に、制御部50の第三のレイアウト位置算出手段534は、第二のレイアウト位置算出手段533で得られた仮ノード12と選択ノード5,8,11以外の各ノード1,2,3,4,6,7,9,10とのレイアウト位置に関するデータによって定められる仮ノード12及び選択ノード5,8,11以外の各ノード1,2,3,4,6,7,9,10についての相対的な位置関係を維持するという条件、及び、仮ノード12の代わりに選択ノード5,8,11の全体をレイアウトするという条件の下で、図2に示すグラフ構造データに基づいてSugiyamaアルゴリズムに従った処理を実行することにより、各ノード1〜11のレイアウト位置を算出する(S6)。このように、上記条件を課すことにより、この第三のレイアウト位置算出手段534による処理では、図10のレイアウト元データに示される各ノード1,2,3,4,6,7,9,10の相対的な位置関係がそのまま維持されることになる。また、図10のレイアウト元データに示される仮ノード12及び選択ノード5,8,11以外の各ノード1,2,3,4,6,7,9,10についての相対的な位置関係が維持されるので、仮ノード12の代わりに選択ノード5,8,11の全体をレイアウトすると、選択ノード5,8,11及び選択ノード5,8,11以外の各ノード1,2,3,4,6,7,9,10についての相対的な位置関係も、図10のレイアウト元データに示される位置関係と同様の位置関係に保持されることになる。
具体的に、まず、第三のレイアウト位置算出手段534は、Sugiyamaアルゴリズムにおける階層割当てステップに従った処理を行う。この階層割当てステップに従った処理では、第二のレイアウト位置算出手段533で得られた結果及び第一のレイアウト位置算出手段53で得られた結果を利用して、各ノード1〜11に対してそれを配置すべき階層を割り当てる。第二のレイアウト位置算出手段533で得られた結果によって定められる仮ノード12及び選択ノード5,8,11以外の各ノード1,2,3,4,6,7,9,10についての相対的な位置関係を維持するために、各ノード1,2,3,4,6,7,9,10は、第二のレイアウト位置算出手段533で決定された階層と同じ階層に配置されることになる。すなわち、ノード1,2,9を第1階層に配置し、ノード3,4,10を第2階層に配置し、ノード6,7を第3階層に配置することが決定される。また、仮ノード12の代わりに選択ノード5,8,11の全体をレイアウトするために、選択ノード5,8,11は、仮ノード12が配置される第3階層及び第4階層に配置されることになる。ここで、選択ノード5,8,11についての相対的な階層関係は維持される。第一のレイアウト位置算出手段531で得られた結果によれば、選択ノード5,11が最上位の階層に配置され、選択ノード8がその一つ下位の階層に配置されるので、選択ノード5,11を第3階層に配置し、選択ノード8を第4階層に配置することが決定される。こうして第三のレイアウト位置算出手段534が階層割当てステップに従った処理を行うことによって決定された各ノードの階層を図12(a)に示す。
次に、第三のレイアウト位置算出手段534は、Sugiyamaアルゴリズムにおける順序付けステップに従った処理を行う。この順序付けステップに従った処理でも、第二のレイアウト位置算出手段533で得られた結果及び第一のレイアウト位置算出手段531で得られた結果を利用して、各階層において、当該階層に割り当てられた各ノードに対してそれを配置する順序を決定する。第二のレイアウト位置算出手段533で得られた結果によって定められる仮ノード12及び選択ノード5,8,11以外の各ノード1,2,3,4,6,7,9,10についての相対的な位置関係を維持するために、仮ノード12が配置されていない第1階層及び第2階層においては、当該階層に割り当てられた各ノードに対してそれを配置する順序を変更しない。すなわち、第1階層においては、ノード2を1番目に、ノード9を2番目に、ノード1を3番目に配置し、第2階層においては、ノード4を1番目に、ノード10を2番目に、ノード3を3番目に配置することが決定される。一方、仮ノード12が配置された第3階層においては、ノード6,7と仮ノード12に対応するノード5,11との間の位置関係だけは変更しないようにする。すなわち、ノード6とノード7との間に、ノード5,11が配置されるようにする。また、エッジe7についてはその始点にノード4が接続され、その終点にノード8が接続されるが、ノード4は第2階層に配置され、ノード8は第4階層に配置されるため、第3階層にはダミーのノードd1が追加される。そして、この第3階層において、エッジの単一方向性やエッジの交差数の最小性等の条件をできる限り満たすように、各ノード6,7,5,11及びダミーノードd1に対してそれを配置する順序が決定される。例えば、第3階層においては、ノード7を1番目に、ダミーのノードd1を2番目に、ノード11を3番目に、ノード5を4番目に、そして、ノード6を5番目に配置することが決定される。そして、このとき、第三のレイアウト位置算出手段534は、ダミーノードd1の追加に応じた修正をエッジデータに加え、その修正を加えたエッジデータを修正エッジデータとしてRAM40に一時記憶しておく。この修正エッジデータは、図4に示すものと同じである。すなわち、その修正エッジデータには、エッジe7についてのエッジデータの代わりに、ノード4とダミーノードd1とを接続するエッジe7’についてのエッジデータと、ダミーノードd1とノード8とを接続するエッジe7”についてのエッジデータとが含まれている。更に、第4階層にはノード8が一つだけ配置されるので、ノード8を1番目に配置することが決定される。こうして第三のレイアウト位置算出手段534が順序付けステップに従った処理を行うことによって決定された各ノードの階層及び階層内順序を図12(b)に示す。
次に、第三のレイアウト位置算出手段534は、Sugiyamaアルゴリズムにおける座標付与ステップに従った処理を行う。すなわち、エッジの垂直性の条件をできる限り満たすように、ダミーノードを含む各ノードの位置を決定し、各ノードのレイアウト位置座標を算出する。こうして、第三のレイアウト位置算出手段534による処理の結果、各ノード1〜11,d1をレイアウトするためのレイアウト元データが生成される。図13は第三のレイアウト位置算出手段534によって生成される、各ノード1〜11,d1をレイアウトするためのレイアウト元データの例を示す図である。図13に示すレイアウト元データの内容については次のような特徴がある。すなわち、ノード間の相対的な位置関係は、図10に示すレイアウト元データによって定められるノード間の相対的な位置関係と変わらないが、仮ノードの代わりに選択ノード5,8,11の全体をレイアウトしたため、選択ノード5,8,11のレイアウト位置に応じて、全てのノードの位置座標が、図10に示すレイアウト元データにおけるものとは異なっている。また、選択ノード5,8,11のうち選択ノード8については、エッジの垂直性の条件を考慮した結果、選択ノード5,11に対する選択ノード8の相対的な位置座標が図8に示すものと異なっている。尚、一般に、第三のレイアウト位置算出手段534により順序付けステップに従った処理が実行された結果、階層内での選択ノードの順序が変更になることがあり、この場合にも、選択ノードの中でそれらの相対的な位置座標が異なることになる。また、選択ノードが最終的に配置される位置の座標により、選択ノードの全体がレイアウトされる領域の大きさは、領域決定手段532で決定された領域の大きさよりも拡がる場合がある。
最後に、グラフ表示処理手段535は、第三のレイアウト位置算出手段534で得られた各ノード1〜11,d1のレイアウト元データとグラフ構造データとに基づいてグラフを生成し、表示装置20の画面に表示する(S7)。図14に図13に示すレイアウト元データに対応するグラフを示す。この図14のグラフが表示装置20の画面に表示される。このグラフ上には、選択ノード5,8,11の全体が互いに近接した位置にレイアウトされている。実際、図14のグラフでは、同一階層に配置される選択ノード5,11の間には選択ノード以外のノードはレイアウトされておらず、しかも、選択ノード5,8,11の全体を含む長方形の領域を、選択ノードと無関係のエッジが横切ることもない。但し、選択ノードと無関係のエッジが選択ノードの全体を含む長方形の領域を横切ることを許容するようにしてもよい。この場合、第三のレイアウト位置算出手段534は、その横切るエッジが選択ノードに重ならないように、各ノードのレイアウト位置座標を算出する必要がある。このように、選択ノードと無関係のエッジが選択ノードの全体を含む長方形の領域を横切ることを許容しても、本実施形態では、第三のレイアウト位置算出手段534が上記条件の下で各ノードのレイアウト位置座標を算出しているので、選択ノードの全体を含む長方形の領域に選択ノード以外のノードが入ることはない。
尚、ユーザは、こうして表示装置20の画面に表示されたグラフが未だ自分の意図したグラフになっておらず、そのグラフにおいてさらにいくつかのノードを互いに近接した位置にレイアウトしたいと考える場合には、再度、入力装置10を用いてノードを選択し、選択したノードを近接した位置にレイアウトする処理の実行を指示する命令を入力すればよい。
本実施形態のグラフ生成装置は、入力装置を用いて選択された選択ノードの全体をレイアウトするのに必要な領域の形状・大きさを決定し、選択ノードの全体をその決定した領域の形状・大きさを有する一つの仮ノードで置き換えて、仮ノードと選択ノード以外の各ノードとについてのレイアウト位置を算出した後、その算出した結果によって定められる仮ノード及び選択ノード以外の各ノードについての相対的な位置関係を維持するという条件、及び、仮ノードの代わりに選択ノードの全体をレイアウトするという条件の下に、グラフ構造データに基づいて所定のグラフレイアウトアルゴリズムに従った処理を実行して、グラフのレイアウトを行う。このため、グラフ上には、選択ノードの全体が互いに近接した位置にレイアウトされるので、ユーザが意図したレイアウトのグラフを容易に生成することができる。
尚、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内において種々の変形が可能である。
例えば、上記の実施形態では、仮ノードが最下層に配置される場合について説明したが、仮ノードは最上層や中間階層(一番上でも一番下でもない階層)に配置されてもよい。図15、図16及び図17は仮ノードが中間階層に配置される場合のグラフ生成処理の概要を説明するための図である。ここで、図15は図6と同様に図2のグラフ構造データを用いて作成された基本グラフである。図15に示すように、ユーザがノード3,4,6を選択ノードとして選択すると、第二のレイアウト位置算出手段533は、図16に示すようなグラフに対応するレイアウト元データを生成することになる。この図16では、仮ノード12’が中間階層に配置されている。ここで、仮ノード12’は、選択ノード3,4,6に代わりに置き換えられたものである。そして、第三のレイアウト位置算出手段534は、上記の実施形態で説明したように、仮ノード12’及び選択ノード3,4,6以外の各ノード1,2,5,7,8,9,10,11についての相対的な位置関係を維持するという条件、及び、仮ノード12’の代わりに選択ノード3,4,6の全体をレイアウトするという条件の下で、各ノード1〜11のレイアウト位置を算出することにより、図17に示すようなグラフに対応するレイアウト元データを生成する。このように、仮ノードが中間階層に配置される場合でも、上記の実施形態で説明したのと同様の処理を行うことにより、ユーザが意図したレイアウトのグラフを生成することができる。
また、上記の実施形態では、ユーザが、入力装置を用いて、第一のグラフ生成手段によって生成されて表示装置の画面に表示された基本グラフにおいて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択する場合について説明したが、一般には、ユーザが、入力装置を用いて、グラフ構造データに基づいて表示装置の画面に表示された複数のノードの中から、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択するようにすればよい。例えば、基本グラフを表示装置の画面に表示するのではなく、ノードデータを表示装置の画面に表示し、ユーザが、その表示されたノードデータに含まれる複数のノードの中から、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択するようにしてもよい。また、上記の実施形態において、手作業により過去に作成されたグラフや有向グラフの階層レイアウトを行うアルゴリズム以外のグラフレイアウトアルゴリズムにより過去に作成されたグラフであっても、当該グラフに対してグラフ構造データが定義済みであれば、そのグラフを基本グラフとし、当該基本グラフにおいて選択ノードを選択することが可能である。
また、上記の実施形態では、説明を簡単にするために、ノードの数の少ないグラフを生成する場合について説明したが、ノードの数が数千〜数万であるようなグラフを生成する場合にも本発明のグラフ生成装置、グラフ生成方法及びグラフ生成プログラムを適用することができる。この場合であっても、ユーザの意図したとおりにレイアウトされたグラフを生成することができる。このため、本発明のグラフ生成装置、グラフ生成方法及びグラフ生成プログラムは、特に、システムプログラムのサブルーチン同士の呼び出し関係を示すコールグラフを生成する場合に用いるのに適している。例えば、対象のシステムアーキテクチャーの階層がコントローラ層、サービス/ロジック層、DAO(Data Access Object)層の3階層に分かれている場合、生成するコールグラフにおいては、メソッド(ノード)をこれら3階層に分けて表示させることができる。
また、本発明のグラフ生成装置、グラフ生成方法及びグラフ生成プログラムは、コールグラフの他にも、ネットワーク上の機器構成や企業等の組織構成などを表すグラフ等、さまざまなグラフを生成する場合に適用することができる。
更に、上記の実施形態では、グラフレイアウトアルゴリズムとしてSugiyamaアルゴリズムを用いた場合について説明したが、本発明で使用するグラフレイアウトアルゴリズムはSugiyamaアルゴリズムに限定されない。
加えて、上記の実施形態では、有向非循環グラフを生成する場合について説明したが、本発明のグラフ生成装置、グラフ生成方法及びグラフ生成プログラムは、例えば、有向循環グラフを生成する場合や、有向グラフ以外のグラフを生成する場合にも適用することができる。
以上説明したように、本発明のグラフ生成装置、グラフ生成方法及びグラフ生成プログラムによれば、入力手段を用いて選択された選択ノードの全体を一つの仮ノードで置き換えて、仮ノードと選択ノード以外の各ノードとについてのレイアウト位置を算出した後、その算出された仮ノードのレイアウト位置に、選択ノードの全体をレイアウトするという条件の下に、グラフ構造データに基づいて所定のグラフレイアウトアルゴリズムに従った処理を実行して、グラフのレイアウトを行う。このため、グラフ上には、選択ノードの全体が互いに近接した位置にレイアウトされるので、ユーザが意図したレイアウトのグラフを容易に生成することができる。したがって、本発明は、特に、システム開発において大規模なコールグラフ等を生成して表示手段の画面に表示する場合に用いるのに好適である。
10 入力装置
20 表示装置
30 ROM
40 RAM
50 制御部
51 第一のグラフ生成手段
52 選択ノード特定データ生成手段
53 第二のグラフ生成手段
531 第一のレイアウト位置算出手段
532 領域決定手段
533 第二のレイアウト位置算出手段
534 第三のレイアウト位置算出手段
535 グラフ表示処理手段

Claims (10)

  1. 複数のノードとノード間を接続する複数のエッジとを含むグラフを生成して表示手段の画面に表示するグラフ生成装置において、
    各ノードについてその形状及び大きさを示すデータと各エッジについてノードとの接続関係を示すデータとを含むグラフ構造データが記憶された記憶手段と、
    前記記憶手段に記憶されている前記グラフ構造データに基づいて前記表示手段の画面に表示された複数のノードの中から、ユーザが入力手段を用いて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択したときに、その選択した前記選択ノードを特定する選択ノード特定データを生成して前記記憶手段に記憶する選択ノード特定データ生成手段と、
    前記記憶手段に記憶されている前記選択ノード特定データによって特定される前記選択ノードの全体を一つの仮ノードで置き換えて、所定のグラフレイアウトアルゴリズムに従った処理を実行することにより、前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置を算出した後、その算出された前記仮ノードのレイアウト位置に、前記選択ノードの全体をレイアウトするという条件の下で、前記記憶手段に記憶されている前記グラフ構造データに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記各ノードのレイアウト位置を算出し、その算出された結果に基づいてグラフを生成して、前記表示手段の画面に表示するグラフ生成手段と、
    を備えることを特徴とするグラフ生成装置。
  2. 前記グラフ生成手段は、
    前記選択ノード特定データ生成手段で得られた前記選択ノード特定データに基づいて前記グラフ構造データから前記選択ノードに関連するデータを抽出し、その抽出した前記選択ノードに関連するデータに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記各選択ノードのレイアウト位置を算出する第一のレイアウト位置算出手段と、
    前記第一のレイアウト位置算出手段で得られた前記各選択ノードのレイアウト位置に関するデータに基づいて、前記選択ノードの全体をレイアウトするのに必要な領域の形状・大きさを決定する領域決定手段と、
    前記選択ノードの全体を、前記領域決定手段で決定された前記領域の形状・大きさと同じ形状・大きさを有する一つの仮ノードで置き換え、前記仮ノードの形状・大きさに関するデータ、前記仮ノードとの接続関係を示すデータ、及び、前記グラフ構造データのうち前記選択ノード以外の各ノードに関連するデータに基づいて、前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置を算出する第二のレイアウト位置算出手段と、
    前記第二のレイアウト位置算出手段で得られた前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置に関するデータによって定められる前記仮ノード及び前記選択ノード以外の各ノードについての相対的な位置関係を維持するという条件、及び、前記仮ノードの代わりに前記選択ノードの全体をレイアウトするという条件の下で、前記グラフ構造データに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記グラフ構造データに記述されている各ノードのレイアウト位置を算出する第三のレイアウト位置算出手段と、
    前記第三のレイアウト位置算出手段で得られた各ノードのレイアウト位置に関するデータと前記グラフ構造データとに基づいてグラフを生成し、前記表示手段の画面に表示するグラフ表示処理手段と、
    を有することを特徴とする請求項1記載のグラフ生成装置。
  3. 前記グラフ構造データに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することによりグラフを生成し、前記表示手段の画面に表示する基本グラフ生成手段を備え、
    前記選択ノード特定データ生成手段は、前記基本グラフ生成手段によって前記表示手段の画面に表示されたグラフにおいて、ユーザが前記入力手段を用いて、互いに近接した位置にレイアウトしたいノードを前記選択ノードとして選択したときに、その選択した前記選択ノードを特定する前記選択ノード特定データを生成することを特徴とする請求項1又は2記載のグラフ生成装置。
  4. 前記記憶手段に記憶されている前記グラフ構造データは有向グラフに対するものであり、前記グラフレイアウトアルゴリズムは有向グラフの階層レイアウトを行うためのアルゴリズムであることを特徴とする請求項1、2又は3記載のグラフ生成装置。
  5. コンピュータを利用して、複数のノードとノード間を接続する複数のエッジとを含むグラフを生成して前記コンピュータの表示手段の画面に表示するグラフ生成方法において、
    前記コンピュータの記憶手段に記憶されている、各ノードについてその形状及び大きさを示すデータと各エッジについてノードとの接続関係を示すデータとを含むグラフ構造データに基づいて前記表示手段の画面に表示された複数のノードの中から、ユーザが前記コンピュータの入力手段を用いて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択したときに、前記コンピュータの制御手段が、その選択した前記選択ノードを特定する選択ノード特定データを生成して前記記憶手段に記憶する選択ノード特定データ生成ステップと、
    前記制御手段が、前記記憶手段に記憶されている前記選択ノード特定データによって特定される前記選択ノードの全体を一つの仮ノードで置き換えて、所定のグラフレイアウトアルゴリズムに従った処理を実行することにより、前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置を算出した後、その算出された前記仮ノードのレイアウト位置に、前記選択ノードの全体をレイアウトするという条件の下で、前記記憶手段に記憶されている前記グラフ構造データに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記各ノードのレイアウト位置を算出し、その算出された結果に基づいてグラフを生成して、前記表示手段の画面に表示するグラフ生成ステップと、
    を具備することを特徴とするグラフ生成方法。
  6. 前記グラフ生成ステップは、
    前記制御手段が、前記選択ノード特定データ生成ステップで得られた前記選択ノード特定データに基づいて前記グラフ構造データから前記選択ノードに関連するデータを抽出し、その抽出した前記選択ノードに関連するデータに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記各選択ノードのレイアウト位置を算出する第一ステップと、
    前記制御手段が、前記第一ステップで得られた前記各選択ノードのレイアウト位置に関するデータに基づいて、前記選択ノードの全体をレイアウトするのに必要な領域の形状・大きさを決定する第二ステップと、
    前記制御手段が、前記選択ノードの全体を、前記第二ステップで決定された前記領域の形状・大きさと同じ形状・大きさを有する一つの仮ノードで置き換え、前記仮ノードの形状・大きさに関するデータ、前記仮ノードとの接続関係を示すデータ、及び、前記グラフ構造データのうち前記選択ノード以外の各ノードに関連するデータに基づいて、前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置を算出する第三ステップと、
    前記制御手段が、前記第三ステップで得られた前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置に関するデータによって定められる前記仮ノード及び前記選択ノード以外の各ノードについての相対的な位置関係を維持するという条件、及び、前記仮ノードの代わりに前記選択ノードの全体をレイアウトするという条件の下で、前記グラフ構造データに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記グラフ構造データに記述されている各ノードのレイアウト位置を算出する第四ステップと、
    前記制御手段が、前記第四ステップで得られた各ノードのレイアウト位置に関するデータと前記グラフ構造データとに基づいてグラフを生成し、前記表示手段の画面に表示する第五ステップと、
    を備えることを特徴とする請求項5記載のグラフ生成方法。
  7. 前記記憶手段に記憶されている前記グラフ構造データは有向グラフに対するものであり、前記グラフレイアウトアルゴリズムは有向グラフの階層レイアウトを行うためのアルゴリズムであることを特徴とする請求項5又は6記載のグラフ生成方法。
  8. コンピュータを利用して、複数のノードとノード間を接続する複数のエッジとを含むグラフを生成して前記コンピュータの表示手段の画面に表示するためのグラフ生成プログラムにおいて、
    前記コンピュータに、
    前記コンピュータの記憶手段に記憶されている、各ノードについてその形状及び大きさを示すデータと各エッジについてノードとの接続関係を示すデータとを含むグラフ構造データに基づいて前記表示手段の画面に表示された複数のノードの中から、ユーザが前記コンピュータの入力手段を用いて、互いに近接した位置にレイアウトしたいノードを選択ノードとして選択したときに、その選択した前記選択ノードを特定する選択ノード特定データを生成して前記記憶手段に記憶する選択ノード特定データ生成機能と、
    前記記憶手段に記憶されている前記選択ノード特定データによって特定される前記選択ノードの全体を一つの仮ノードで置き換えて、所定のグラフレイアウトアルゴリズムに従った処理を実行することにより、前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置を算出した後、その算出された前記仮ノードのレイアウト位置に、前記選択ノードの全体をレイアウトするという条件の下で、前記記憶手段に記憶されている前記グラフ構造データに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記各ノードのレイアウト位置を算出し、その算出された結果に基づいてグラフを生成して、前記表示手段の画面に表示するグラフ生成機能と、
    を実現させることを特徴とするグラフ生成プログラム。
  9. 前記グラフ生成機能は、
    前記選択ノード特定データ生成機能で得られた前記選択ノード特定データに基づいて前記グラフ構造データから前記選択ノードに関連するデータを抽出し、その抽出した前記選択ノードに関連するデータに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記各選択ノードのレイアウト位置を算出する第一のレイアウト位置算出機能と、
    前記第一のレイアウト位置算出機能で得られた前記各選択ノードのレイアウト位置に関するデータに基づいて、前記選択ノードの全体をレイアウトするのに必要な領域の形状・大きさを決定する領域決定機能と、
    前記選択ノードの全体を、前記領域決定機能で決定された前記領域の形状・大きさと同じ形状・大きさを有する一つの仮ノードで置き換え、前記仮ノードの形状・大きさに関するデータ、前記仮ノードとの接続関係を示すデータ、及び、前記グラフ構造データのうち前記選択ノード以外の各ノードに関連するデータに基づいて、前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置を算出する第二のレイアウト位置算出機能と、
    前記第二のレイアウト位置算出機能で得られた前記仮ノードと前記選択ノード以外の各ノードとのレイアウト位置に関するデータによって定められる前記仮ノード及び前記選択ノード以外の各ノードについての相対的な位置関係を維持するという条件、及び、前記仮ノードの代わりに前記選択ノードの全体をレイアウトするという条件の下で、前記グラフ構造データに基づいて前記グラフレイアウトアルゴリズムに従った処理を実行することにより、前記グラフ構造データに記述されている各ノードのレイアウト位置を算出する第三のレイアウト位置算出機能と、
    前記第三のレイアウト位置算出機能で得られた各ノードのレイアウト位置に関するデータと前記グラフ構造データとに基づいてグラフを生成し、前記表示手段の画面に表示するグラフ表示処理機能と、
    を備えることを特徴とする請求項8記載のグラフ生成プログラム。
  10. 前記記憶手段に記憶されている前記グラフ構造データは有向グラフに対するものであり、前記グラフレイアウトアルゴリズムは有向グラフの階層レイアウトを行うためのアルゴリズムであることを特徴とする請求項8又は9記載のグラフ生成プログラム。
JP2013212281A 2013-10-09 2013-10-09 グラフ生成装置、グラフ生成方法及びグラフ生成プログラム Active JP6028703B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013212281A JP6028703B2 (ja) 2013-10-09 2013-10-09 グラフ生成装置、グラフ生成方法及びグラフ生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013212281A JP6028703B2 (ja) 2013-10-09 2013-10-09 グラフ生成装置、グラフ生成方法及びグラフ生成プログラム

Publications (2)

Publication Number Publication Date
JP2015075960A JP2015075960A (ja) 2015-04-20
JP6028703B2 true JP6028703B2 (ja) 2016-11-16

Family

ID=53000757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013212281A Active JP6028703B2 (ja) 2013-10-09 2013-10-09 グラフ生成装置、グラフ生成方法及びグラフ生成プログラム

Country Status (1)

Country Link
JP (1) JP6028703B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6959164B2 (ja) * 2018-02-19 2021-11-02 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
KR101974069B1 (ko) * 2018-04-30 2019-04-30 한국과학기술원 바이너리 구조 도식화 장치 및 방법
CN112437919A (zh) * 2018-06-28 2021-03-02 麦格纳维尤有限公司 稳定图布局确定

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP3747404B2 (ja) * 2001-06-19 2006-02-22 インターナショナル・ビジネス・マシーンズ・コーポレーション グラフィックス・イメージ作成装置、及びその方法並びにプログラム
CN104145271B (zh) * 2012-03-02 2017-08-15 国际商业机器公司 数据显示设备、数据显示方法

Also Published As

Publication number Publication date
JP2015075960A (ja) 2015-04-20

Similar Documents

Publication Publication Date Title
JP6168475B2 (ja) グラフ生成装置、グラフ生成方法及びグラフ生成プログラム
US7676348B2 (en) Layout design support system, method, and program
JP5349127B2 (ja) レイアウト設計支援システム、その制御方法及び制御プログラム
KR101778737B1 (ko) 화상 처리 장치 및 화상 처리 프로그램
US7650565B2 (en) Method for managing annotations in a computer-aided design drawing
JP2010108321A (ja) 建設状況可視化システム
CN101140516A (zh) 一种动态布局界面元素的方法和系统
EP3465426B1 (en) User interface with movable mini-tabs
US20090282325A1 (en) Sparklines in the grid
JP5006272B2 (ja) 電線格納部品の図面作成装置とその方法、およびプログラム
JP6028703B2 (ja) グラフ生成装置、グラフ生成方法及びグラフ生成プログラム
JP2007164771A (ja) レイアウト設計支援システムと方法、およびプログラム
JP2017091539A (ja) トンネル設計が指定された設計パラメータおよび許容誤差の範囲内に留まることを確実にすること
US20170344199A1 (en) Display control method, display control device, and recording medium
JP2017123061A (ja) 出来形の可視化システム及び出来形の可視化データ生成プログラム
JP5519575B2 (ja) プラント建設工程作成支援システム、プラント建設工程作成支援方法およびプログラム
KR20110115456A (ko) 캐드 정보와 속성 정보가 연동된 구조물의 구조 해석 장치
JP6299151B2 (ja) 表示プログラム、補助情報自動配置装置、及び方法
WO2018163421A1 (ja) システム構成作成支援装置
JP6248445B2 (ja) Lsi設計装置
JP2018120444A (ja) 配管ルート作成装置、配管ルート作成方法及びプログラム
JP4958073B2 (ja) 評価システム、評価方法および評価プログラム
JP2002324227A (ja) 図面表示装置および図面表示方法ならびに図面表示プログラムを記録した記録媒体
JP2020097061A (ja) 情報処理装置、情報処理プログラム、情報処理方法
JP2014085871A (ja) 管網計算装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160915

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: 20160920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161003

R150 Certificate of patent or registration of utility model

Ref document number: 6028703

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250