Экспоненциальная сложная сеть при случайной атаке - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь смоделировать случайную атаку на сеть Эрдоша-Реньи. Предполагаемый результат состоит в том, что сеть разрушается, когда вы удаляете примерно 20–30% узлов. Однако я не могу воспроизвести этот результат, поскольку размер гигантского связного компонента, кажется, линейно уменьшается.

import networkx as nx
import random as rd

def random_single():
    l1 = nx.fast_gnp_random_graph(1000, 0.01)
    nodes = []
    gcc = []
    n_nodes = l1.number_of_nodes()
    removed_nodes = 0

    gcc_size = len(list(max(nx.connected_components(l1), key=len))) / n_nodes
    gcc.append(gcc_size)
    nodes.append(0.0)

    while l1.number_of_nodes() > 1:

        node = rd.choice(list(l1.nodes()))
        l1.remove_node(node)
        removed_nodes += 1

        gcc_size = len(list(max(nx.connected_components(l1), key=len))) / n_nodes
        gcc.append(gcc_size)
        nodes.append(1 - ((og_n_nodes - removed_nodes) / n_nodes))

    fig, ax = plt.subplots()
    ax.plot(nodes, gcc)


Ожидаемый результат:

enter image description here

Мой результат:

enter image description here

...