系统工程中利用python求解可达矩阵
在系统工程书中,建立解释结构模型中求解可达矩阵是必不可少的一环故利用python写了一段求解可达矩阵的代码,只需要输入邻接矩阵便可计算得到可达矩阵代码如下:
import numpy as np
def change(a):
'''
乘以自身,并将非零整数变为1
'''
b=np.dot(a,a)
m=a.shape
for i in range(m[0]):
for j in range(m[1]):
if b[i,j]!=0:
b[i,j]=1
return b
def reachability_matrix(adja_matrix):
'''
生成可达矩阵
'''
m=adja_matrix.shape
unit_adja=np.eye(m[0])
K1=adja_matrix+unit_adja #邻接矩阵加单位矩阵得到矩阵K1
for i in range(m[0]):
KN=change(K1) #K1乘以自身并归一化得到矩阵KN
if np.array_equal(KN,K1)==True:
break
K1=KN
print(K1)
return K1
if __nam