ハイパーグラフの概要

ハイパーグラフは、通常、電気信号図、マルチフローの可視化、ネットワーク管理、および UML ダイアグラムなどのアプリケーションに使用されます。
ハイパーグラフは、クラス IlvHyperGrapher を使用して実装されます。ハイパーグラフは、グラファーをベースにして、それをハイパーエッジの概念で拡張しています。 ハイパーエッジは、複数のソースと複数のシンクを持つリンクです。
ハイパーグラフ は、クラス IlvHyperGrapher、すなわち IlvGrapher (および IlvManager) のサブクラスのインスタンスです。標準的なグラフに含めることができるのは、ノードとリンクのみですが、ハイパーグラフには以下の 3 つのタイプのオブジェクトを含めることができます。
  • ノード。 IlvGrapher に存在するものと同様。
  • リンク。 IlvGrapher に存在するものと同様。ソース・ノードをターゲット・ノードに接続します。
  • ハイパーエッジ。これは複数のノードを接続しますが、IlvGrapher には存在できません。
次のダイアグラムは、ハイパーグラフに関係するクラス間の関連を示しています。
dia_hypergraph1.png
ハイパーグラフのクラス
標準リンクには、正確に 2 つの終了ノード、すなわちソースとターゲットがあります。 ソース・ノードは起点、ターゲットは宛先と呼ばれることもあります。 リンクに方向性がある場合、ターゲット・ノードに、リンクの方向を示す矢印が描かれます。 標準的なグラフは、ノードと標準リンクを含みます。
ハイパーエッジ はリンクと類似していますが、複数のソース・ノードと複数のターゲット・ノードを持つことができます。すなわち、0、1、2、3、 ... ノードという具合です。 0 ソース・ノードと 0 ターゲット・ノードのハイパーエッジは、多くのアプリケーションで意味を成さないと思われますが、実現は可能です。 JViews Diagrammer において、存在できるソース・ノードとターゲット・ノードの数に制約はありません。
ハイパーグラフは、ハイパーエッジを含むことのできるグラフです。
hyperlink.gif
1 つのハイパーエッジで接続された複数のノード
JViews Diagrammer では、グラフ、ノード、リンク、ハイパーグラフ、およびハイパーエッジは、以下の表にリストされたクラスによって実装されます。
グラフとハイパーグラフのクラス
クラス名
説明
描画可能なあらゆるオブジェクト、すなわち、ノード、リンク、グラフ、ハイパーエッジなどのオブジェクトの基本クラス。 これらのオブジェクトは、グラフィック・オブジェクトと呼ばれます。 リンクおよびハイパーエッジを除くすべてのグラフィック・オブジェクトは、常にノードとして扱われます。
標準的なノードとリンクを持つ標準的なグラフ。
IlvLinkImage およびそのサブクラス
標準リンク。
ハイパーグラフは、ノード、リンク、およびハイパーエッジを含むことができます。 これは、IlvGrapher のサブクラスです。 したがって、標準リンクも含むことができます。IlvHyperGrapher オブジェクトは、 IlvGrapher から、または、 IlvManager から派生しているため、そのコンテキスト (IlvGrapher または IlvManager に特有の機能) によってグラファー、または、マネージャーと呼ばれる場合があります。 検討対象の機能がこれらのコンテキスト以外の場合に、そのオブジェクトはハイパーグラフと呼ばれます。
ハイパーエッジ。このクラスは、IlvGraphic のサブクラスで、IlvLinkImage のサブクラスではありません。 したがって、ハイパーエッジに、標準リンクとの互換性はありません。それでも、ハイパーエッジの終了ノードは、標準ノード (IlvGraphic のインスタンス) です。
IlvHyperEdge の特別なサブクラス。 したがって、これもハイパーエッジです。
以下のダイアグラムは、電気信号図に使用された、複数のハイパーエッジを含むハイパーグラフの例です。 ハイパーエッジは、赤色で表示されています。
diahyp_elecsignal.gif
ハイパーエッジを含む電気信号図