Автоматизация процедуры построения графика

Автоматизация процедуры построения графика

Вот он: Я хочу нарисовать большой граф, скажем, с 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.

введите описание изображения здесь

Связанный контент