1.7. grhfil グラフフィルタ

グラフの加工を行う。

パラメータ

type= : 型=str , 必須

以下に示すパラメータを組み合わせて文字列として指定する(ex. "UeEs")。

1) グラフタイプ【必須】
グラフの種類を以下の5つから一つ選んで指定する。

* B:二部グラフ
* d:有向グラフ(入力隣接行列を変更しない)
* D:逆向きの有向グラフ(隣接行列の下三角行列と上三角行列を入れ替える)
* U:片方向無向グラフ(隣接行列の下三角行列を削除し、重複したエッジを削除する)
* u:双方向無向グラフ(入力隣接行列の下三角行列と上三角行列を対称にする)

2) グラフの書式【オプション】
入出力ファイルのグラフの書式は、隣接行列形式がデフォルトであるが、
それをノードペアのエッジ形式に変更することができる。

* e: 入力ファイルをエッジ形式とする。
* E: 出力ファイルをエッジ形式とする。

3) その他の指定

* s: 出力のグラフの隣接ノードを昇順に並べる。
* S: 出力のグラフの隣接ノードを降順に並べる。
* n: 入力データの一行目を"ノード数 エッジ数"とする。
* N: 出力データの一行目に"ノード数 エッジ数"を出力する。
* v: 入力データのノード番号は1から始まるものとする。
* V: 出力データのノード番号は1からはじまるものとして出力する。
* 0: 一列目にノード番号を出力する(出力が隣接行列形式の場合のみ)。
* w: 入力ファイルの隣接ノードの次の数字を重みとする。
* W: 出力ファイルの隣接ノードの次に重みを出力する。
* %:show progress
* _:no message
* +:write solutions in append mode

* v,V:node ID in read/write file starts from 1,
* q:non-transform mode (valid with -P option)
* 9:give weight 1 to each vertex ID (with 0)
* 1:unify consecutive two same numbers into one

i= : 型=str , 必須

トランザクションファイル名を指定する。

o= : 型=str , 必須

出力ファイル名を指定する。

t= : 型=int , 任意(default=制約なし)

次数が指定した値より小さいノードは出力しない【デフォルト=制約なし】

T= : 型=int , 任意(default=制約なし)

次数が指定した値より大きいノードは出力しない【デフォルト=制約なし】

ideg= : 型=int , 任意(default=制約なし)

有向グラフにおいて入次数が指定した値より小さいノードは出力しない

Ideg= : 型=int , 任意(default=制約なし)

有向グラフにおいて入次数が指定した値より大きいノードは出力しない

odeg= : 型=int , 任意(default=制約なし)

有向グラフにおいて出次数が指定した値より小さいノードは出力しない

Odeg= : 型=int , 任意(default=制約なし)

有向グラフにおいて出次数が指定した値より大きいノードは出力しない

r= : 型=float , 任意(default=制約なし)

重みが指定した値より小さいエッジは出力しない

R= : 型=float , 任意(default=制約なし)

重みが指定した値より大きいエッジは出力しない

n= : 型=int , 任意(default=データ上の最大番号+1)

ノードの個数を与える

w= : 型=bool , 任意(default=均等な重みを使う)

入力ファイルの3項目目を重みとして読み込む(3項目目がなければ0がセットされる)

W= : 型=bool , 任意(default=ファイル出力しない)

出力ファイルの3項目目に重みを出力する

d= : 型=bool , 任意(default=ファイル出力しない)

指定したグラフとの差異を出力する(gTypeとgFormatは同じでなければならない)

dth= : 型=float , 任意(default=)

specify the threshold value (d=が必要)

m= : 型=str , 任意(default=)

指定したグラフとのintersectionを出力する(gTypeとgFormatは同じでなければならない)

M= : 型=str , 任意(default=)

指定したグラフとのunionを出力する(gTypeとgFormatは同じでなければならない)

P= : 型=str , 任意(default=)

permute the vertex ID to coutinuous numbering and output the permutation table to the file

Q= : 型=str , 任意(default=)

permute the numbers in the file according to the table

利用例

入力データの準備

1with open('dat1.graph','w') as f:
2  f.write(
3'''0 1
40 2
50 4
61 2
71 4
81 6
9''')

基本例

1from nysol.take.extcore import grhfil
2grhfil(type="ueE_",i="dat1.graph",o="result.graph")
3### result.txt の内容
4# 3 (1) (3,2,0.6)
5# 4 3 (1) (2,1,0.6666)

関連メソッド