Я хотел бы создать ориентированный сетевой граф, используя igraph c ++, в котором каждый узел случайно соединен ровно с n другими отдельными узлами в сети (т. Е. Исключая соединения с самим собой и циклы / несколько ребер к одному и тому же циклу). Я думал об использовании метода igraph_erdos_renyi_game
, но по какой-то причине я не получаю желаемого распределения степени. В частности, если я установлю аргументы так:
igraph_erdos_renyi_game(&g, IGRAPH_ERDOS_RENYI_GNM, n, m, true, false);
при n = 5, m = 1, я получаю эту матрицу смежности (например,):
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
1 0 0 0 0
0 0 0 0 0
Если я использую igraph_k_regular_game(&g, n, m, true, false)
вместо этого я получаю именно желаемый результат, а именно (например):
0 0 0 0 1
1 0 0 0 0
0 0 0 0 1
0 1 0 0 0
0 0 0 1 0
Подводя итог, я хотел бы, чтобы у каждого узла было от 1 ребра до n случайно выбранных агентов. Я неправильно понимаю, как работает метод Эрдоша-Рени, или я передаю неверные аргументы?
m
общее количество ребер in erdos_renyi_game()
, Так что просто используйте k_regular_game()
это именно то, что вы хотите.