#ANP
library(dplyr)
D1=t(matrix(c(1,5,1/5,1),ncol=2,nrow=2))
D2=t(matrix(c(1,1/3,3,1),ncol=2,nrow=2))
D3=t(matrix(c(1,1/7,7,1),ncol=2,nrow=2))
v1=eigen_vector_D1=sqrt(apply(D1,1,prod))/sum(sqrt(apply(D1,1,prod)))
v2=eigen_vector_D2=sqrt(apply(D2,1,prod))/sum(sqrt(apply(D2,1,prod)))
v3=eigen_vector_D3=sqrt(apply(D3,1,prod))/sum(sqrt(apply(D3,1,prod)))
D_bar=t(matrix(c(1,9,3,1/9,1,1/5,1/3,5,1),nrow=3,ncol=3))
w1=(apply(D_bar,1,prod)^(1/ncol(D_bar)))/sum(apply(D_bar,1,prod)^(1/ncol(D_bar)))
mat1=matrix(c(1,1,1,1,1,1,1,1,1),nrow=3,ncol=3)
mat2=t(matrix(c(1,1/3,1,3,1,3,1,1/3,1),nrow=3,ncol=3))
mat=(mat1^(16/22))*(mat2^(6/22))
w2=(apply(mat,1,prod)^(1/ncol(mat)))/sum(apply(mat,1,prod)^(1/ncol(mat)))
w=cbind(w1,w2);v=cbind(v1,v2,v3)
wv=w%*%v
wv_eigen_values=eigen(wv)$values
wv_eigen_vectors=eigen(wv)$vectors
q=wv_eigen_vectors[,1]/sum(wv_eigen_vectors[,1])
p=v%*%q
#super_matrix(5.12)
super_matrix=array(0,dim=c(5,5))
super_matrix[3:5,1:2]=w
super_matrix[1:2,3:5]=v
#(5.8)
A=matrix(rep(0,6*6),ncol=6,nrow=6)
A[1,1]=1
A[2:3,1]=v1
A[4:6,2:3]=w
#Frobenius theorem
max_eigen=max(eigen(A)$values)
p=rep(0,nrow(A))
p[1]=A[1,1]
for(i in 2:nrow(A)){
p[i]=sum(A[i,1:(i-1)]*p[1:(i-1)])/(max_eigen-A[i,i])
}
eigen_vector=eigen(super_matrix)$vectors[,1]
p=eigen_vector[1:2]/sum(eigen_vector[1:2])
q=eigen_vector[3:5]/sum(eigen_vector[3:5])
More than 3 years have passed since last update.
Analytical network processes(サービスサイエンスの事はじめ 高木英明先生 筑波大学出版会)
Last updated at Posted at 2018-08-21
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
List of users who liked
00