org.mklab.tool.control.system
クラス AdjacencyStringMatrix

java.lang.Object
  上位を拡張 org.mklab.tool.control.system.AdjacencyStringMatrix

public class AdjacencyStringMatrix
extends Object

ブロック線図(グラフ)の隣接関係を保持する文字列行列を表すクラスです。

バージョン:
$Revision: 1.52 $.
作成者:
Yusuke Tsutsui

コンストラクタの概要
AdjacencyStringMatrix(int size)
          大きさsizeの隣接行列を生成します。
 
メソッドの概要
 void addDeMultiplexer(int inputNode, List<Integer> outputNodes)
          inputNodeノードからoutputNodesの各ノードへの分離器を追加します。
 void addEdge(int inputNode, int outputNode, ControlSystem system)
          inputNodeノードとoutputNodeノードの間にエッジ(重み(ControlSystem))を追加します。
 void addMIMO(List<Integer> inputNodes, List<Integer> outputNodes, ControlSystem system)
          MOMOシステムを追加します。
 void addMultiplexer(List<Integer> inputNodes, int outputNode)
          inputNodesの各ノードからoutputNodeノードへの多重器を追加します。
 void addSink(int outputNode, ControlSystem controlSystem, int sinkNumber)
          Sinkシステムを追加します
 void addSource(int inputNode, ControlSystem controlSystem, int sourceNumber)
          sourceシステムを追加します。
 void addSum(List<Integer> inputNodes, int outputNode, List<Boolean> positives)
          inputNodesの各ノードからoutputNodeノードへの加算器を追加します。
 void addUnitEdge(int inputNode, int outputNode, boolean positive)
          inputNodeノードからoutputNodeノードに単位エッジ(重み=Iまたは-I)を追加します。
 ControlSystem getControlSystem(String tag)
          タグに対応するシステムを返します。
 int getNodeDegree(int nodeNumber)
          ノードの次数を返します。
 List<Integer> getSortedInputSourceNodes()
          ポート番号順にソートしたinputポートとsourceシステムが接続されたノードのリストを返します。
 List<Integer> getSortedOutputSinkNodes()
          ポート番号順にソートしたoutputポートとsinkシステムが接続されたノードのリストを返します。
 String getWeightOfEdge(int inputNode, int outputNode)
          エッジの重み(隣接行列の成分)を返します。
 boolean hasEdge(int inputNode, int outputNode)
          指定したノードとノードの間にエッジがあるか判定します。
 void print()
          行列を標準出力に出力します。
 void setNodeDegree(int nodeNumber, int degree)
          ノードの次数を設定します。
 int size()
          隣接行列のサイズを返します。
 String toString()
           
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

AdjacencyStringMatrix

public AdjacencyStringMatrix(int size)
大きさsizeの隣接行列を生成します。

パラメータ:
size - 隣接行列のサイズ
メソッドの詳細

addEdge

public void addEdge(int inputNode,
                    int outputNode,
                    ControlSystem system)
inputNodeノードとoutputNodeノードの間にエッジ(重み(ControlSystem))を追加します。

既に同じ位置にエッジが存在する場合は、重みが置き換えられます。

パラメータ:
inputNode - 入力ノード
outputNode - 出力ノード
system - 入力ノードと出力ノードの間のエッジの重み(ControlSystem)

addMIMO

public void addMIMO(List<Integer> inputNodes,
                    List<Integer> outputNodes,
                    ControlSystem system)
MOMOシステムを追加します。

パラメータ:
inputNodes - 入力ノードのリスト
outputNodes - 出力ノードのリスト
system - MIMOシステム

hasEdge

public boolean hasEdge(int inputNode,
                       int outputNode)
指定したノードとノードの間にエッジがあるか判定します。

パラメータ:
inputNode - 入力ノード
outputNode - 出力ノード
戻り値:
指定したノードとノードの間にエッジがあればtrue、そうでなければfalse

addUnitEdge

public void addUnitEdge(int inputNode,
                        int outputNode,
                        boolean positive)
inputNodeノードからoutputNodeノードに単位エッジ(重み=Iまたは-I)を追加します。

パラメータ:
inputNode - 入力ノード
outputNode - 出力ノード
positive - 正入力かどうか(trueであれば正入力)

addMultiplexer

public void addMultiplexer(List<Integer> inputNodes,
                           int outputNode)
inputNodesの各ノードからoutputNodeノードへの多重器を追加します。

パラメータ:
inputNodes - 入力ノードのリスト
outputNode - 出力ノード

addSum

public void addSum(List<Integer> inputNodes,
                   int outputNode,
                   List<Boolean> positives)
inputNodesの各ノードからoutputNodeノードへの加算器を追加します。

パラメータ:
inputNodes - 入力ノードのリスト
outputNode - 出力ノード
positives - 正入力かどうか(正入力ならばtrue)

addDeMultiplexer

public void addDeMultiplexer(int inputNode,
                             List<Integer> outputNodes)
inputNodeノードからoutputNodesの各ノードへの分離器を追加します。

パラメータ:
inputNode - 入力ノード
outputNodes - 出力ノードのリスト

addSource

public void addSource(int inputNode,
                      ControlSystem controlSystem,
                      int sourceNumber)
sourceシステムを追加します。

パラメータ:
inputNode - sourceシステムを接続するノードの番号
controlSystem - sourceシステム
sourceNumber - sourceシステムの番号

addSink

public void addSink(int outputNode,
                    ControlSystem controlSystem,
                    int sinkNumber)
Sinkシステムを追加します

パラメータ:
outputNode - Sinkシステムを接続するノードの番号
controlSystem - Sinkシステム
sinkNumber - Sinkの番号

getSortedInputSourceNodes

public List<Integer> getSortedInputSourceNodes()
ポート番号順にソートしたinputポートとsourceシステムが接続されたノードのリストを返します。

戻り値:
「ポート番号順にソートしたinputポート」+「sourceシステム」とが接続されたノードのリスト

getSortedOutputSinkNodes

public List<Integer> getSortedOutputSinkNodes()
ポート番号順にソートしたoutputポートとsinkシステムが接続されたノードのリストを返します。

戻り値:
「sinkシステム」+「ポート番号順にソートしたoutputポート」とが接続されたノードのリスト

getControlSystem

public ControlSystem getControlSystem(String tag)
タグに対応するシステムを返します。

パラメータ:
tag - システムのタグ(G1,G2,...)
戻り値:
その文字列に対応する ControlSystem

getWeightOfEdge

public String getWeightOfEdge(int inputNode,
                              int outputNode)
エッジの重み(隣接行列の成分)を返します。

パラメータ:
inputNode - 入力ノード
outputNode - 出力ノード
戻り値:
システムを表す文字列

size

public int size()
隣接行列のサイズを返します。

戻り値:
隣接行列のサイズ

toString

public String toString()
オーバーライド:
クラス Object 内の toString
関連項目:
Object.toString()

print

public void print()
行列を標準出力に出力します。


getNodeDegree

public int getNodeDegree(int nodeNumber)
ノードの次数を返します。

パラメータ:
nodeNumber - ノードの番号
戻り値:
ノードの次数

setNodeDegree

public void setNodeDegree(int nodeNumber,
                          int degree)
ノードの次数を設定します。

パラメータ:
nodeNumber - ノードの番号
degree - ノードの次数