和:グラフ代数

    • 直和
      • A \oplus B = \begin{pmatrix} A O \\ O B \end{pmatrix}
    • 結び
      • A --- B = \begin{pmatrix} A J \\ J B \end{pmatrix}
    • 有向結び
      • A \longrightarrow B = \begin{pmatrix} A J \\ O B \end{pmatrix}
      • A \longleftarrow B = \begin{pmatrix} A O \\ J B \end{pmatrix}
  • 和の法則
    • A\oplus (B \oplus C) = (A \oplus B) \oplus C,A --- (B --- C) = (A --- B) --- C
    • A \longrightarrow (B \longrightarrow C) = (A \longrightarrow B) \longrightarrow C, A \longleftarrow (B \longleftarrow C) = (A \longleftarrow B) \longleftarrow C
    • \bar{A\oplus B} = \bar{A} --- \bar{B},\bar{A --- B} = \bar{A} \oplus \bar{B}
    • \bar{A \longrightarrow B* = \bar{A} \longleftarrow \bar{B},\bar{A \longleftarrow B} = \bar{A} \longrightarrow \bar{B}
    • (A \oplus B) + (A --- B) = (A \longrightarrow B) + (A \longleftarrow B)
X <- matrix(c(0,1,1,1,0,0,1,0,0),byrow=TRUE,3,3)
Y <- matrix(c(0,1,1,1,0,1,1,1,0),byrow=TRUE,3,3)
sum.graph <- function(X,Y){
	dimX <- dim(X)
	dimY <- dim(Y)
	Z <- matrix(0,dimX[1]+dimY[1],dimX[2]+dimY[2])
	Z[1:dimX[1],1:dimX[2]] <- X
	Z[(1+dimX[1]):dim(Z)[1],(1+dimX[2]):dim(Z)[2]] <- Y
	Z
}
sum.graph(X,Y)
join.graph <- function(X,Y,directed = TRUE){
	dimX <- dim(X)
	dimY <- dim(Y)
	Z <- matrix(1,dimX[1]+dimY[1],dimX[2]+dimY[2])
	if(directed){
		Z[!upper.tri(Z)] <- 0
	}
	
	Z[1:dimX[1],1:dimX[2]] <- X
	Z[(1+dimX[1]):dim(Z)[1],(1+dimX[2]):dim(Z)[2]] <- Y

	Z

}

join.graph(X,Y)
join.graph(X,Y,directed = FALSE)
> sum.graph(X,Y)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    0    1    1    0    0    0
[2,]    1    0    0    0    0    0
[3,]    1    0    0    0    0    0
[4,]    0    0    0    0    1    1
[5,]    0    0    0    1    0    1
[6,]    0    0    0    1    1    0

> join.graph(X,Y)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    0    1    1    1    1    1
[2,]    1    0    0    1    1    1
[3,]    1    0    0    1    1    1
[4,]    0    0    0    0    1    1
[5,]    0    0    0    1    0    1
[6,]    0    0    0    1    1    0
> join.graph(X,Y,directed = FALSE)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    0    1    1    1    1    1
[2,]    1    0    0    1    1    1
[3,]    1    0    0    1    1    1
[4,]    1    1    1    0    1    1
[5,]    1    1    1    1    0    1
[6,]    1    1    1    1    1    0