Introduction
グラフ理論の基礎
実装例
扱うグラフ
コマンドでの結果
Code
defファイル
mainファイル
References
https://ja.wikipedia.org/wiki/グラフ理論
sorry, this page is Japanese only.
ここでは隣接行列の実装を行っていきます。Python3を使っています。OSはwindows10です。隣接行列の説明は以下の記事の下の方をご覧ください。グラフ理論の基礎
実装例
扱うグラフ
コマンドでの結果
Code
defファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import numpy as np class directed_Gragh(): def __init__(self,E,V,gragh_map): self.edge = E; self.vertex = V; self.map = gragh_map; def Adjacency_matrix(self): adjacency_matrix = np.zeros((self.vertex.shape[0],self.vertex.shape[0])) for ed in self.edge: P_ = self.map(ed) start = P_[0] end = P_[1] row = np.where(self.vertex == start) column = np.where(self.vertex == end) adjacency_matrix[row,column] = 1 adjacency_matrix[column,row] = 1 return adjacency_matrix |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import numpy as np from Gragh_def import directed_Gragh def main(): vertex = np.array([ 'house' , 'station' , 'school' , 'hospital' ]) edge = np.array([1,2,3,4]) def gragh_map(edge): if edge == 1: vertexs = np.array([ 'house' , 'school' ]) elif edge == 2: vertexs = np.array([ 'school' , 'station' ]) elif edge == 3: vertexs = np.array([ 'house' , 'station' ]) else : vertexs = np.array([ 'station' , 'hospital' ]) return vertexs test_gragh = directed_Gragh(edge,vertex,gragh_map) print( 'vertex is %s \n' %test_gragh.vertex) adjacency_matrix = test_gragh.Adjacency_matrix() print( 'adjacency_matrix = \n %s \n' %adjacency_matrix) if __name__ == '__main__' : main() |
https://ja.wikipedia.org/wiki/グラフ理論
コメント
コメントを投稿