Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

q-Voter em networks

Universidade Federal de Viçosa (UFV)

Junho-julho/2026, Mestrado, TF.

Implementação do modelo em redes com distribuição de graus p(k)p(k) (Poisson, lei de potência, \dots).

🐙 Repositório git:

Implementação do q-voter em redes complexas em tempo contínuo.

Mean-field e q-Voter

O ponto de partida aqui, então, é o artigo:

📄 Mean-Field Analysis of the q-Voter Model on Networks
Paolo Moretti, Suyu Liu, Claudio Castellano, and Romualdo Pastor-Satorras
Journal of Statistical Physics 151, 113–130 (2013).

Neste artigo, os autores implementam a teoria de campo médio num grafo completo e com a teoria heterogênea, HMF. Nos dois casos, a teoria prevê duas fases, para (fase de fragmentação da opinião média) e ferromagnética (consenso da opinião média), bem como um região de biestabilidade, que, dependendo da condição inicial, leva ao consenso ou à fragmentação, como mostra a Fig Figure 1.

Transições de fase na teoria de campo médio para o q-voter.

Figure 1:Transições de fase na teoria de campo médio para o q-voter.

A curva que define a fronteira crítica entre a fase paramagnética e ferromagnética é dada por

εc(ϕ)=ϕ2+32ϕ2+14,\overline{\varepsilon_c}(\phi) = \frac{\phi^2+3}{2\phi^2+14}\,,

onde ϕ\phi é a magnetização (opinião) média da rede. Para a teoria HMF, sendo k\langle k\rangle o grau médio da rede, a fronteira é dada por

εc(ϕ)=122k(k2)ϕ2(k2)(k3)+7k2+k2.\overline{\varepsilon_c}(\phi) = \frac{1}{2} - \frac{2\langle k\rangle(\langle k\rangle-2)}{\phi^2(\langle k\rangle-2)(\langle k\rangle-3) + 7\langle k\rangle^2 + \langle k\rangle - 2}\,.

Algumas conclusões centrais deste artigo:

Nos interessa, aqui, o caso q=4q=4, o menor valor de qq em que a biestabilidade é observada na teoria de campo médio. Procuramos fazer um diagrama de fases semelhante ao da Figura Figure 1, onde, para um dado valor ε\varepsilon, examinamos a dinâmica varrendo as condições iniciais da magnetização, ϕ0[0,1]\phi_0\in[0,1].

Implementação computacional: benchmarks e resultados

Nas subseções que seguem, explico detalhadamente de que forma as redes complexas e a dinâmica (em tempo contínuo) foram implementadas. Também apresento benchmarks sobre a coerência e exatidão dos algoritmos, bem como as otimizações (lista dinâmica e paralelismo).

Redes com diferentes distribuições de graus


A implementação da rede utiliza de tipos derivados em Fortran. Em suma, uma rede corresponde a um objeto com algumas propriedades intrínsecas, a saber:

A grande vantagem desta abordagem é a capacidade de gerar redes totalmente independentes sem acúmulo de variáveis (ou uso de dummies), compacticidade do código e possibilidade de paralelização com OpenMP (basta passar a rede, e todas suas propriedades, como variável privada de uma thread), sem custo computacional extra.

Para gerar a distribuição de graus, dois algoritmos foram utilizados. No caso de uma distribuição power-law, o método mais interessante é a inversão de CDF com aproximação para dados discretos (acrescentar citação do Clauset); isto é, considere um número aleatório ur[0,1)u^{\text{r}}\in[0,1), então o número inteiro aleatório xrx^{\text{r}}, dado por:

xr=(xmin0.5)(1ur)1γ1,x^{\text{r}} = \left\lfloor \big(x_{\min}-0.5\big)\big(1-u^{\text{r}}\big)^{\frac{1}{\gamma-1}}\right\rfloor\,,

é um número distribuído em lei de potência p(x;γ)p(x;\gamma) no intervalo [xmin,)[x_{\min},\infty). Para controlar o surgimento de outliers e/ou o grau máximo da rede em lei de potência, pode-se atribuir um determinado cut-off: estrutural max(k)=N\max(k) = \sqrt{N}, natural max(k)=N1γ1\max(k) = N^{\frac{1}{\gamma-1}} ou rígido max(k)=N1γ\max(k) = N^{\frac{1}{\gamma}}

Para a de Poisson, o algoritmo de D. Knuth (ou sua variante, Junhao, acrescentar citações) é ideal. Ele parte da ideia que um número de Poisson conta o número de eventos que ocorrem numa janela temporal, em que o intervalo de tempo entre eventos sucessivos é dado por uma distribuição exponencial. Em outras palavras, é gerar números exponencialmente distribuídos com média 1/λ1/\lambda de tal forma que o número Nr=m1N^{\text{r}}=m-1, em que mm é o menor número tal que a sequência gerada é maior ou igual a um (isto é, x1r+x2r++xmr1x_1^{\text{r}}+x_2^{\text{r}}+\cdots+x_m^{\text{r}}\geq 1), é um número com distribuição de Poisson com média λ\lambda. Por razões de consistência, a distribuição gerada é truncada à esquerda, rejeitando graus inferiores a um dado kmink_{\min}.

O modelo configuracional segue o algoritmo abaixo:

O método de sorteio e busca linear (two-stage cascade) serve para tentar ao máximo (para uma dada seed) encontrar conexões válidas para aquela distribuição. A Figure 2 mostra que a distribuição efetiva de graus (a distribuição de graus real da rede, após a aplicação do modelo configuracional) de fato segue as distribuições usadas para a amostragem dos graus, com boa convergência mesmo para redes com N=104N=10^4 nós.

Distribuições efetivas (reais) das redes geradas para dois tamanhos, N=5\cdot10^5 e N=10^4, em todo caso com k_{\min}=4. As linhas sólidas representam as distribuições teóricas com estes parâmetros, mostrando a concordância da distribuição efetiva obtida com o modelo configuracional e a “distribuição de entrada”.

Figure 2:Distribuições efetivas (reais) das redes geradas para dois tamanhos, N=5105N=5\cdot10^5 e N=104N=10^4, em todo caso com kmin=4k_{\min}=4. As linhas sólidas representam as distribuições teóricas com estes parâmetros, mostrando a concordância da distribuição efetiva obtida com o modelo configuracional e a “distribuição de entrada”.

Finalmente, para verificar a autoconsistência das redes sintéticas e medir os desvios da lista de graus induzidos pelo método, a função de report faz uma grande checagem estrutural e estatística da topologia gerada. A verificação é dividida em duas etapas:

  1. Autoconsistência Topológica:

    • Teorema do Grau: o número de arestas tem que ser igual à metade da soma dos graus efetivos dos nós;

    • Nós isolados: Contabiliza a existência de sítios com grau nulo (k=0k=0);

    • Fragmentação da rede: Utilizando o algoritmo BFS, o código determina o tamanho da componente gigante (CG), de modo que, caso ela não equivalha à totalidade da da rede (sinalizando fragmentação), um alerta é emitido para que a componente principal seja isolada/extraída antes de iniciar a dinâmica.

  2. Consistência Estatística (Teoria vs. Efetiva):

    • Arestas rejeitadas: Compara o número de arestas originais sorteadas com o número de arestas efetivamente conectadas, indicando a taxa de descarte exigida para manter a rede puramente simples;

    • Momentos da distribuição: Calcula o grau máximo (kmaxk_{\max}), o grau médio (k\langle k \rangle) e o segundo momento matemático (k2\langle k^2 \rangle) da lista original e compara com a rede conectada. Uma tolerância estatística de 1/N1/\sqrt{N} é adotada para classificar a confiabilidade da topologia gerada.

Estes relatórios on-the-fly servem para garantir robustez e validade ao algoritmo de redes, evitando que desvios induzidos pelo método enviesem os resultados.

Para várias redes geradas, nenhum desvio significativo foi encontrado. Assim, a robustez e validade deste algoritmo ficam comprovadas. A tabela abaixo reúne estes resultados comparativos para os casos de interesse.

DistribuiçãoParâmetrosDesvios da rede gerada
Power-law (Scale-Free)γ{2.3,2.7,3.5}\gamma \in \{2.3, 2.7, 3.5\}, kmin=4k_{\min}=4“Insignificantes” Frequentemente 0 (ou 105%\sim 10^{-5}\%) de descarte; CG abrange todos os nós; k\langle k \rangle, k2\langle k^2 \rangle e kmaxk_{\max} efetivos são idênticos aos da lista amostrada.
Poisson (Erdős-Rényi)kteor{6.0,8.5,10.0}\langle k \rangle_{\text{teor}} \in \{6.0, 8.5, 10.0\}, kmin=4k_{\min}=4Nulos. 0 arestas descartadas; CG abrange todos os nós; momentos estatísticos perfeitamente conservados.
Regular (RRN)K{4,6,10}K \in \{4, 6, 10\}Nulos. Conservação exata da topologia regular; 0 arestas descartadas; CG engloba toda a rede.

Dinâmica em tempo contínuo


Para utilizar o algoritmo de Gillespie, o método de aceitação-rejeição (eventos reais e nulos) com lista dinâmica é a forma otimizada. A referência principal para implementação do algoritmo foi:

📄 Dynamic sampling from a discrete probability distribution with a known distribution of rates
Federico D’Ambrosio, Hans L. Bodlaender, and Gerard T. Barkema
Computational Statistics 37, 1203–1228 (2022).

A ideia é considerar apenas os nós que podem flipar. Basta definir uma lista que contém todos os NativosN_{\text{ativos}} nós ativos da rede (isto é, aqueles com fk>0f_k>0) e atualizá-la dinamicamente durante a evolução. Em suma:

No pior dos casos, a lista dinâmica tem complexidade temporal igual ao método ingênuo de aceitação-rejeição (onde o sorteio do nó ii é feito sobre toda a rede). Mas em dinâmicas próximas ao estado de consenso, o tamanho da lista decresce rapidamente, de forma que o uso da lista dinâmica reduz a complexidade temporal. Outros métodos de otimização, a princípio, não geram melhorias no tempo computacional.

Equivalência entre o algoritmo de Gillespie otimizado com a lista dinâmica e o algoritmo em passos discretos de Markov.

Figure 3:Equivalência entre o algoritmo de Gillespie otimizado com a lista dinâmica e o algoritmo em passos discretos de Markov.

A Figura Figure 3 mostra a equivalência (estatística) das implementações em tempo discreto e tempo contínuo com lista dinâmica. As Figuras abaixo mostram o ganho computacional com o método em tempo contínuo.

Escalonamento de tempo computacional entre os algoritmos OG e com passo discreto com o tamanho da rede.Escalonamento de tempo computacional entre os algoritmos OG e com passo discreto com o parâmetro \varepsilon.

Amostragem dos resultados


Para obtenção dos resultados, a condição de parada da simulação é dada por um tempo máximo numericamente igual ao tamanho da rede Gillespie_time = t_max=real(N) ou à obtenção do consenso, N_ativos = 0. Isto é feito para diferenciar claramente as fases de fragmentação e consenso. Na fase paramagnética o consenso é obtido em tempos muito grandes (τexp(N)\tau\sim\exp(N)), de modo que este “tempo máximo” serve para relevar o efeito de tamanho finito. De qualquer forma, a análise de tamanho finito ainda não foi realizada.

Para reproduzir a refbiestabilidade, foram 50 amostras (feitas com uma única rede) de cada ponto no espaço (ϕ0,ε)(\phi_0,\varepsilon). Aqui, ϕ0\phi_0 entra como condição inicial: (ϕ0+1)/2(\phi_0+1)/2 é a proporção (probabilidade) de agentes no estado +1. Os diagramas abrangem 123 pontos distribuídos linearmente para ε[0,0,0.3]\varepsilon\in[0,0,0.3] e 101 para ϕ0[0.95,0.95]\phi_0\in[-0.95,0.95] (totalizando 12423 pontos * 50 amostras = 621150 runs para cada rede).

Para adiantar a obtenção de amostras, a ferramenta OpenMP foi utilizada, utilizando somente núcleos de desempenho das máquinas do GISC. Para realizar o teste de benchmarking, 100 amostras (50 na fase paramagnética e 50 na fase ferromagnética) foram rodadas sequencialmente (em único núcleo) e com/sem hyper-threading na máquina Weiss. Como os processadores das máquinas Ising, Parisi, Fisher e Weiss seguem a mesma topologia (verificado com lstopo), o resultado percentual da tabela abaixo se mantém. O atraso do hyper-threading se explica porque a memória que a dinâmica ocupa é maior que a metade da memória disponível no cache L2: matriz de estados: 80 KB, matriz de taxas: 80 KB, lista de adjacência: 781 KB e lista dinâmica: 160KB, memória total de aproximadamente 1,1 MB, o que inviabiliza alocar duas threads simultâneas disputando o mesmo cache L2 de 2 MB sem causar cache misses.

ExecuçãoNº de ThreadsSpeedup (Ganho)Eficiência ParalelaTempo de Execução (s)
Sequencial Puro11,00x100 %351.013
Sem Hyper-Threading86,05x75,7 %57.954
Com Hyper-Threading165,74x35,9 %61.087

Resultados preliminares

legenda

Figure 4:legenda

legenda

Figure 4:legenda

legenda

Figure 4:legenda

legenda

Figure 4:legenda

legenda

Figure 4:legenda

legenda

Figure 4:legenda

References
  1. Moretti, P., Liu, S., Castellano, C., & Pastor-Satorras, R. (2013). Mean-Field Analysis of the q-Voter Model on Networks. Journal of Statistical Physics, 151(1–2), 113–130. 10.1007/s10955-013-0704-1
  2. D’Ambrosio, F., Bodlaender, H. L., & Barkema, G. T. (2021). Dynamic sampling from a discrete probability distribution with a known distribution of rates. Computational Statistics, 37(3), 1203–1228. 10.1007/s00180-021-01159-3