入力追加が簡単にできることの実装確認

  • 複数のファイルを指定して、それらのすべての「のべ」として入力
    • ファイル名のリストを与える
    • すべてのファイルをR上の行列オブジェクトとする
    • その上で、すべての行列オブジェクトの「のべ」のノードのグラフを作り、
    • エッジを追加する
infiles <- c("正単体.txt","双対.txt","序数.txt","グラフ理論.txt","集合.txt","数.txt","複体.txt")
infile.list <- list()
for(i in 1:length(infiles)){
	infile.list[[i]] <- read.table(infiles[i], sep = "\t", fill =TRUE)
}
g <- graph.empty()
v.list <- list()
e.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 != "")]
	# ノードの名前に順序idをつける
	v.list[[i]] <- NULL
	v.list[[i]] <- unique.word
	e.list[[i]] <- matrix(0,0,2)
	#g <- g + vertices(v.name)

	# 行ごとに要素数を数えて
	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){
				#g <- g + edges(c(infile.m[i,1],infile.m[i,j+1]))
				e.list[[i]] <- rbind(e.list[[i]],c(infile.m[j,1],infile.m[j,k+1]))
			}
		}
		
	}

	#plot(g,vertex.label=V(g)$name)

}
unique.v <- unique(unlist(v.list))
g <- graph.empty() + vertices(unique.v)
for(i in 1:length(infile.list)){
	for(j in 1:length(e.list[[i]][,1])){
		g <- g + edges(e.list[[i]][j,])
	}
}
plot(g,vertex.label=V(g)$name,vertex.size=3,edge.arrow.mode=0)
  • 入力ファイルはテキストファイルで次の通り
    • "正単体.txt"
正単体
正単体	正三角形	正四面体	正五胞体	正多胞体	正n胞体
点	0次元	正単体
線分	1次元	正単体
正三角形	2次元
正四面体	3次元
正五胞体	4次元
正n胞体	n−1次元
頂点
辺
グラフ	頂点
グラフ	辺
ファセット	n−1次元	超単体
ファセット	頂点	辺	面
n−1次元ファセット
双対
双対	頂点	n−1次元ファセット
0次元	0
1次元	1
n次元	n
n−1次元	n-1
    • "双対.txt"
双対	裏返し
双対	数学	物理学
双対	正多面体	グラフ	論理	ベクトル空間	アーベル群	圏
双対	問題	定理
双対	電気	磁気
双対	同型
準同型	準	同型
アーベル群	アーベル	群
体
係数体	体
線形写像
双対空間	双対	空間
ベクトル空間	線形写像	双対ベクトル空間
双対群	双対	群
アーベル群	コンパクト群
コンパクト群	コンパクト	群
双対	直積	直和
双対	極限	余極限
双対	電場	磁場
ローレンツ変換	電場	磁場
特殊相対性理論	双対	電場	磁場
||
--"序数.txt"
>||
0	1
1	2
2	3
3	n
n	∞
3	n-1
n-1	n
グラフ	頂点	辺
グラフ	集合
グラフ	有向グラフ	無向グラフ
グラフ	重みつきグラフ
グラフ	接合	隣接
グラフ	距離	直径
グラフ	ループ	多重
グラフ	部分グラフ	親グラフ
グラフ	ウォーク	サイクル
グラフ	完全グラフ	クリーク
部分グラフ	部分
完全グラフ	完全
    • "集合.txt"
集合
集合	部分集合	冪集合
部分集合	部分
集合	元	要素
集合	写像
集合	系	族
数
文字
記号
集合	濃度
直積集合	集合	直積
集合	帰属	包含
定義	内包的定義	外延的定義
集合	空集合
濃度	充填
空間充填	充填
空間充填曲線	充填曲線
曲線	線
充填曲線	充填	曲線
集合	有限集合	無限集合
有限	無限
無限	∞
集合演算	集合	演算
集合演算	和集合	積集合	差集合	対称差	指示関数
和集合	結び	結合
積集合	交わり	交差
集合	商	類別
    • "数.txt"
数
数	自然数	整数	有理数	実数	複素数	四元数	グロタンディーク宇宙
    • "複体.txt"
複体	単体
複体	頂点集合	部分集合	族
頂点集合	頂点	集合
組合せ論
複体	頂点	面	準同型
順序集合	集合	順序
順序同型	順序	同型
順序集合	単体的
単体的	単体	的
単体写像	複体の準同型	複体の射
複体の射	複体	写像
単体写像	単体	写像
単体同型	全単射
単体同型	単体	同型
単体同型	位相同型
位相同型	位相	同型