- 昨日はトーラス、今日はイデアル
- こちらの関係で、トーリック・イデアルはトーラス的なイデアルなので、ひとまず、構成2要素に別々にアプローチ
- イデアルは
- 環論の概念
- 環Rの部分集合
- それが持つ性質が決まっている
- 類別する点での対応関係
- こちらの記述をグラフ知識にしてみよう
素因数分解 素数 因数 分解 有理整数
素数 有理整数
イデアル 部分環
部分環 部分 環
部分集合 部分 集合
有理整数 整数 有理
代数整数 整数 代数
代数整数 イデアルナンバー
イデアルナンバー イデアル
単項イデアル 単項 イデアル
単項 項 1
イデアル 多項
多項 多 項
多項 部分集合
単項イデアル 有理整数
素イデアル イデアル
素数 素イデアル
素イデアル分解 因数 分解
素イデアル分解 イデアル 素イデアル
setwd("C:\\Users\\ryamada\\Desktop\\イデアル")
library(igraph)
infiles <- list.files()
infile.list <- list()
for(i in 1:length(infiles)){
infile.list[[i]] <- read.table(infiles[i], sep = "\t", fill =TRUE)
}
g <- graph.empty(directed=FALSE)
g.plus <- graph.empty(directed=FALSE)
v.list <- list()
v.plus.list <- list()
e.list <- list()
e.plus.list <- list()
for(i in 1:length(infile.list)){
infile <- infile.list[[i]]
infile.m <- as.matrix(infile)
infile.m <- infile.m[,1:length(infile.m[1,])]
unique.word <- unique(c(infile.m))
unique.word <- unique.word[which(unique.word != "")]
v.list[[i]] <- NULL
v.list[[i]] <- unique.word
e.list[[i]] <- matrix(0,0,2)
v.plus.list[[i]] <- unique.word
e.plus.list[[i]] <- matrix(0,0,2)
for(j in 1:length(infile.m[,1])){
num.kids <- length(which(infile.m[j,] != ""))-1
if(num.kids>=1){
for(k in 1:num.kids){
e.list[[i]] <- rbind(e.list[[i]],c(infile.m[j,1],infile.m[j,k+1]))
}
}
}
sorted.e.list <- t(apply(e.list[[i]],1,sort))
tmp.v <- paste(sorted.e.list[,1],sorted.e.list[,2],sep="")
v.plus.list[[i]] <- c(unique.word,infiles[i],tmp.v)
v.plus.list[[i]] <- unique(v.plus.list[[i]])
for(j in 1:length(e.list[[i]][,1])){
e.plus.list[[i]] <- rbind(e.plus.list[[i]],c(e.list[[i]][j,1],tmp.v[j]))
e.plus.list[[i]] <- rbind(e.plus.list[[i]],c(e.list[[i]][j,2],tmp.v[j]))
e.plus.list[[i]] <- rbind(e.plus.list[[i]],c(tmp.v[j],infiles[i]))
}
}
unique.v <- unique(unlist(v.list))
unique.plus.v <- unique(unlist(v.plus.list))
g <- graph.empty(directed=FALSE) + vertices(unique.v)
g.plus <- graph.empty(directed=FALSE) + vertices(unique.plus.v)
for(i in 1:length(infile.list)){
for(j in 1:length(e.list[[i]][,1])){
g <- g + edges(e.list[[i]][j,])
}
for(j in 1:length(e.plus.list[[i]][,1])){
g.plus <- g.plus + edges(e.plus.list[[i]][j,])
}
}
plot(g,vertex.label=V(g)$name,vertex.size=3,edge.arrow.mode=0)
dev.new()
plot(g.plus,vertex.label=V(g.plus)$name,vertex.size=3,edge.arrow.mode=0)