Рубрики
Без рубрики

Генерация случайных графов в Python

Узнайте, как создавать случайные графики в Python, чтобы помочь вам с учетом алгоритмов обучения или преподавания на уровне информатики и за его пределами.

Автор оригинала: Robin Andrews.

Случайные графики в Python для уровня компьютерной науки и за пределами

Ноутбук Jupyter ниже показывает реализацию алгоритма для генерации случайного неопрященного, невосстановленного графика. Алгоритм использует Erdős-Rényi Model , Но вам не нужно знать об этом, чтобы понять, как он работает – Pseudo Come Take совершенно ясен, хотя вам, возможно, понадобится потратить немного времени, понимая именно то, что он передает. Это может быть, что смотреть на код Pythone сначала даст вам больше понимания из-за чудесной ясности синтаксиса Python.

Если вы не используете ноутбуки Jupyter, не беспокойтесь, код будет работать просто от вашего обычного IDE, до тех пор, пока вы устанавливаете ettewxx пакет и удалить % команды (например, % matplotlib inline ) для информации о установке пакетов Python см. здесь Отказ

Основная цель этой статьи состоит в том, чтобы получить вас и запустить создание случайных графиков, чтобы помочь вам с изучением или преподаванию алгоритмов для О уровень информатики и за пределами Отказ Вы можете использовать код для создания образцов графиков, чтобы углубить ваше понимание алгоритмов графов, таких как Алгоритм Dijkstra и Звездный алгоритм или генерировать вопросы для ваших студентов.

С точки зрения Уровень компьютерной науки Это будет более актуальным для тех, кто учится или обучает ОКР или AQA Силлабус, чем Кембриджский.

Обратите внимание, в код, N требуемое количество узлов и P Это вероятность того, что край существует между заданной парой узлов.

%load_ext nb_black
%matplotlib inline
import matplotlib.pyplot as plt
import networkx as nx
from itertools import combinations
from random import random


def ER(n, p):
    V = set([v for v in range(n)])
    E = set()
    for combination in combinations(V, 2):
        a = random()
        if a < p:
            E.add(combination)

    g = nx.Graph()
    g.add_nodes_from(V)
    g.add_edges_from(E)

    return g


n = 10
p = 0.4
G = ER(n, p)
pos = nx.spring_layout(G)
nx.draw_networkx(G, pos)
plt.title("Random Graph Generation Example")
plt.show()

Есть больше статей/видео на работе с Графики и/или Jupyter ноутбуки В Python здесь на блоге Compuzucademy. Например

  • Графики в Python для уровня компьютерной науки
  • https://compucademy.net/python-for-gcse-science-and-maths/