グラフ描画手順の自動化

グラフ描画手順の自動化

次のようなものです。頂点が 50 個、辺が約 200 個ある大きなグラフを描きたいとします。計算代数用のプログラムである GAP の出力から辺を取得します。このままではグラフがどのようになるかわかりませんが、整数のペアなどを印刷するようにプログラムに指示できます。たとえば、次のようになります。

1 -- 2,
1 -- 3,
1 -- 31,
1 -- 32,
1 -- 33,
1 -- 34,
1 -- 35,
1 -- 36,
1 -- 37,
1 -- 38,
1 -- 39,
1 -- 40,
1 -- 41,
1 -- 42,
2 -- 3,
2 -- 31,
2 -- 32,
2 -- 33,
2 -- 34,
2 -- 35,
2 -- 36,
2 -- 37,
2 -- 38,
2 -- 39,
2 -- 40,
2 -- 41,
2 -- 42,
3 -- 31,
3 -- 32,
3 -- 33,
3 -- 34,
3 -- 35,
3 -- 36,
3 -- 37,
3 -- 38,
3 -- 39,
3 -- 40,
3 -- 41,
3 -- 42,
4 -- 6,
4 -- 9,
4 -- 37,
4 -- 38,
4 -- 39,
5 -- 8,
5 -- 11,
5 -- 37,
5 -- 38,
5 -- 39,
6 -- 9,
6 -- 37,
6 -- 38,
6 -- 39,
7 -- 10,
7 -- 12,
7 -- 37,
7 -- 38,
7 -- 39,
8 -- 11,
8 -- 37,
8 -- 38,
8 -- 39,
9 -- 37,
9 -- 38,
9 -- 39,
10 -- 12,
10 -- 37,
10 -- 38,
10 -- 39,
11 -- 37,
11 -- 38,
11 -- 39,
12 -- 37,
12 -- 38,
12 -- 39,
13 -- 15,
13 -- 18,
13 -- 34,
13 -- 35,
13 -- 36,
14 -- 17,
14 -- 20,
14 -- 34,
14 -- 35,
14 -- 36,
15 -- 18,
15 -- 34,
15 -- 35,
15 -- 36,
16 -- 19,
16 -- 21,
16 -- 34,
16 -- 35,
16 -- 36,
17 -- 20,
17 -- 34,
17 -- 35,
17 -- 36,
18 -- 34,
18 -- 35,
18 -- 36,
19 -- 21,
19 -- 34,
19 -- 35,
19 -- 36,
20 -- 34,
20 -- 35,
20 -- 36,
21 -- 34,
21 -- 35,
21 -- 36,
22 -- 24,
22 -- 27,
22 -- 40,
22 -- 41,
22 -- 42,
23 -- 26,
23 -- 29,
23 -- 40,
23 -- 41,
23 -- 42,
24 -- 27,
24 -- 40,
24 -- 41,
24 -- 42,
25 -- 28,
25 -- 30,
25 -- 40,
25 -- 41,
25 -- 42,
26 -- 29,
26 -- 40,
26 -- 41,
26 -- 42,
27 -- 40,
27 -- 41,
27 -- 42,
28 -- 30,
28 -- 40,
28 -- 41,
28 -- 42,
29 -- 40,
29 -- 41,
29 -- 42,
30 -- 40,
30 -- 41,
30 -- 42,
31 -- 32,
31 -- 33,
32 -- 33,
34 -- 35,
34 -- 36,
35 -- 36,
37 -- 38,
37 -- 39,
38 -- 39,
40 -- 41,
40 -- 42,
41 -- 42,

そして、頂点 1、2、... と、印刷されたペアに従って描画されたエッジを持つグラフ (組み合わせの意味で) を作成したいと考えています。巨大なリストを取得するので、このリストをコピー アンド ペーストしてコードに自動的に入力し、グラフを描画できる方法はありますか? もちろん、GAP が印刷するものを変更することはできます。たとえば、1 2 の代わりに (1,2) または関連情報を含む他の文字列が必要な場合などです。

tikzについての知識は全くありません。

更新: 提案されたコードを使用すると、次のグラフが得られます。

ここに画像の説明を入力してください

このグラフをより良く描くための提案があれば歓迎します(真ん中の乱雑なものは完了6頂点のグラフ。

答え1

\documentclass[a4paper,12pt]{article}
\usepackage{tikz}

\usetikzlibrary{graphs, graphdrawing}
\usegdlibrary{force}

\begin{document}
\tikz [rounded corners]
\graph [spring layout, node distance=2cm]
{
1 -- 2,
1 -- 3,
1 -- 31,
1 -- 32,
1 -- 33,
2 -- 3,
32 -- 33,
33 -- 31
};

\end{document}

LuaLaTeX でコンパイルする必要があります。詳細については、PGF マニュアルの 369 ページと 421 ページを参照してください。

ここに画像の説明を入力してください

関連情報