Grafo

188 days ago by josue

def matrix_type_1(n): matrix_size=n matrix= [ [ 0 for j in range(matrix_size) ] for i in range(matrix_size) ] for i in range(matrix_size-1): matrix[i][i+1]=1 matrix[i+1][i]=1 return matrix def matrix_type_2(n): matrix_size_fil=n matrix_size_col=n+1 matrix= [ [ 0 for j in range(matrix_size_col) ] for i in range(matrix_size_fil) ] for i in range(matrix_size_fil): matrix[i][i]=1 matrix[i][i+1]=1 return matrix def matrix_tran(matrix,matrix_size_fil,matrix_size_col): new_matrix=[] new_matrix= [ [ 0 for j in range(matrix_size_fil) ] for i in range(matrix_size_col) ] for i in range(matrix_size_fil): for j in range(matrix_size_col): new_matrix[j][i]=matrix[i][j] return new_matrix def identidad(n): matrix_size=n matrix= [ [ 0 for j in range(matrix_size) ] for i in range(matrix_size) ] for i in range(matrix_size): matrix[i][i]=1 return matrix def zeros(matrix_size): matrix=[] matrix= [ [ 0 for j in range(matrix_size) ] for i in range(matrix_size) ] return matrix def matrix_type_3(fil,col): matrix=[] fil_matrix=fil*(col+1)+col*(fil+1) col_matrix=(fil+1)*(col+1) matrix= [ [ 0 for j in range(col_matrix) ] for i in range(fil_matrix) ] B=matrix_type_2(col) D=identidad(col+1) xf=range(0,fil_matrix-col+1,2*col+1) xc=range(0,col_matrix-col,col+1) for k in range(fil+1): for i in range(col): for j in range(col+1): matrix[i+xf[k]][j+xc[k]]=B[i][j] xf=range(col,fil_matrix-2*col,2*col+1) xc=range(0,col_matrix-2*col-1,col+1) for k in range(fil): for i in range(col+1): for j in range(col+1): matrix[i+xf[k]][j+xc[k]]=D[i][j] matrix[i+xf[k]][j+xc[k]+col+1]=D[i][j] return matrix col=1 fil=1 Z=1 num_act=col*(fil+1)+fil*(col+1) M=zeros(num_act) A=matrix_type_1(col) B=matrix_type_2(col) C=matrix_tran(B,col,col+1) D=identidad(col+1) for i in range(0,num_act-col+1,2*col+1): for j in range(col): M[j+i][i:i+col]=A[j][:] for i in range(0,num_act-3*col,2*col+1): for j in range(col): M[j+i][i+col:i+col+col+1]=B[j][:] for i in range(col,num_act-2*col,2*col+1): for j in range(col+1): M[j+i][i+col+1:i+col+col+1]=C[j][:] for k in range(fil-1): for i in range(col,num_act-4*col-1,2*col+1): for j in range(col+1): M[i+j][i+col+1+col:i+col+1+col+col+1]=D[j][:] for i in range(num_act): for j in range(i,num_act): M[j][i]=M[i][j] M2=zeros((Z+1)*num_act) for k in range(Z+1): for i in range(num_act): for j in range(num_act): M2[i+k*(num_act)][j+k*(num_act)]=M[i][j] #consideramos las actividades entre placas #para fil y col, se tienen Z veces (fil+1)*(col+1) mas actividades #ejemplo: #para fil=2, col=3 y Z=1 tenemos #[fil*(col+1)+col*(fil+1)]+[(Z)*(fil+1)*(col+1)] #=[2*(4)+3*(3)]+[1*(3)*(4)]=29 M3=[] M3=zeros(num_act*(Z+1)+(Z)*(fil+1)*(col+1)) for i in range(num_act*(Z+1)): for j in range(num_act*(Z+1)): M3[i][j]=M2[i][j] I=matrix_type_3(fil,col) f_I=fil*(col+1)+col*(fil+1) c_I=(fil+1)*(col+1) I2=matrix= [ [ 0 for j in range(Z*c_I) ] for i in range((Z+1)*f_I) ] f_I2=(Z+1)*f_I c_I2=Z*c_I xf=range(0,(2*Z-1)*f_I-f_I+1,f_I) xc=range(0,Z*c_I-c_I+1,c_I) for k in range(Z): for i in range(0,f_I): for j in range(0,c_I): I2[xf[k]+i][xc[k]+j]=I[i][j] I2[xf[k]+i+f_I][xc[k]+j]=I[i][j] I2t=matrix_tran(I2,(Z+1)*f_I,Z*c_I) # ya tenemos I2, I2t y D # hay q copiarlos en M3 for i in range(0,f_I2): for j in range(0,c_I2): M3[i][j+num_act*(Z+1)]=I2[i][j] M3[j+num_act*(Z+1)][i]=I2[i][j] newD=zeros(Z*(fil+1)*(col+1)) D=identidad((fil+1)*(col+1)) xf=range(0,Z*(fil+1)*(col+1)-2*(fil+1)*(col+1)+1,(fil+1)*(col+1)) xc=range((fil+1)*(col+1),Z*(fil+1)*(col+1)-(fil+1)*(col+1)+1,(fil+1)*(col+1)) for k in range(Z-1): for i in range(0,(fil+1)*(col+1)): for j in range(0,(fil+1)*(col+1)): newD[xf[k]+i][xc[k]+j]=D[i][j] newD[xc[k]+j][xf[k]+i]=D[i][j] for i in range(Z*(fil+1)*(col+1)): for j in range(Z*(fil+1)*(col+1)): M3[i+num_act*(Z+1)][j+num_act*(Z+1)]=newD[i][j] for i in range(Z*(fil+1)*(col+1)+num_act*(Z+1)): print M3[i][:] Mat=Matrix(M3) D=DiGraph(Mat) D.plot3d() 
       
[0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0]
[1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0]
[1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1]
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1]
[0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0]
[0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0]
[0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1]
[0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1]
[1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0]
[1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0]
[0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0]
[0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0]
[0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0]
[1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0]
[1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1]
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1]
[0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0]
[0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0]
[0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1]
[0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1]
[1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0]
[1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0]
[0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0]
[0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0]
 
       
Digraph on 12 vertices
Digraph on 12 vertices