<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://fiscomp.if.ufrgs.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eliseuvf</id>
	<title>Física Computacional - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="http://fiscomp.if.ufrgs.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eliseuvf"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Especial:Contribui%C3%A7%C3%B5es/Eliseuvf"/>
	<updated>2026-05-09T19:41:37Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2376</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2376"/>
		<updated>2018-01-29T15:33:39Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T0.5.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para uma rede retangular &amp;lt;math&amp;gt;256\times 256&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.5\text{J}&amp;lt;/math&amp;gt; utilizando uma temperatura inicial infinita: podemos notar a formação de clusters de spins em baixa temperatura.]]&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T1.0.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para uma rede retangular &amp;lt;math&amp;gt;256\times 256&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=1.0\text{J}&amp;lt;/math&amp;gt;: em alta temperatura, a formação de clusters não é observada.]]&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt;q=10 &amp;gt; z&amp;lt;/math&amp;gt; podemos notar a diferença entre os algoritmos com banho térmico termalizando em &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; enquanto Metropolis leva pouco menos de &amp;lt;math&amp;gt;200\text{ MCSweeps}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2375</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2375"/>
		<updated>2018-01-29T15:22:50Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T0.5.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para uma rede retangular &amp;lt;math&amp;gt;256\times 256&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.5\text{J}&amp;lt;/math&amp;gt;: podemos notar a formação de clusters de spins em baixa temperatura.]]&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T1.0.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para uma rede retangular &amp;lt;math&amp;gt;256\times 256&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=1.0\text{J}&amp;lt;/math&amp;gt;: em alta temperatura, a formação de clusters não é observada.]]&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt;q=10 &amp;gt; z&amp;lt;/math&amp;gt; podemos notar a diferença entre os algoritmos com banho térmico termalizando em &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; enquanto Metropolis leva pouco menos de &amp;lt;math&amp;gt;200\text{ MCSweeps}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2374</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2374"/>
		<updated>2018-01-29T15:18:41Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T0.5.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para uma rede retangular &amp;lt;math&amp;gt;256\times 256&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.5\text{J}&amp;lt;/math&amp;gt;: podemos notar a formação de clusters de spins em baixa temperatura.]]&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T1.0.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para uma rede retangular &amp;lt;math&amp;gt;256\times 256&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=1.0\text{J}&amp;lt;/math&amp;gt;: em alta temperatura, a formação de clusters não é observada.]]&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt;q=10 &amp;gt; z&amp;lt;/math&amp;gt; podemos notar a diferença entre os algoritmos com banho térmico termalizando em &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; enquanto Metropolis leva pouco menos de &amp;lt;math&amp;gt;200\text{ MCSweeps}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2373</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2373"/>
		<updated>2018-01-29T15:17:05Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T0.5.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.5\text{J}&amp;lt;/math&amp;gt;: podemos notar a formação de clusters de spins em baixa temperatura.]]&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T1.0.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=1.0\text{J}&amp;lt;/math&amp;gt;: em alta temperatura, a formação de clusters não é observada.]]&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt;q=10 &amp;gt; z&amp;lt;/math&amp;gt; podemos notar a diferença entre os algoritmos com banho térmico termalizando em &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; enquanto Metropolis leva pouco menos de &amp;lt;math&amp;gt;200\text{ MCSweeps}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2372</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2372"/>
		<updated>2018-01-29T15:01:06Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T0.5.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.5\text{J}&amp;lt;/math&amp;gt;: ]]&lt;br /&gt;
[[Arquivo:AnimationHB-Q10-L256-T1.0.gif|thumb|right|500px|Simulação Monte Carlo com algoritmo do banho térmico para &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=1.0\text{J}&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt;q=10 &amp;gt; z&amp;lt;/math&amp;gt; podemos notar a diferença entre os algoritmos com banho térmico termalizando em &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; enquanto Metropolis leva pouco menos de &amp;lt;math&amp;gt;200\text{ MCSweeps}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:AnimationHB-Q10-L256-T1.0.gif&amp;diff=2371</id>
		<title>Arquivo:AnimationHB-Q10-L256-T1.0.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:AnimationHB-Q10-L256-T1.0.gif&amp;diff=2371"/>
		<updated>2018-01-29T14:48:27Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:AnimationHB-Q10-L256-T0.5.gif&amp;diff=2370</id>
		<title>Arquivo:AnimationHB-Q10-L256-T0.5.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:AnimationHB-Q10-L256-T0.5.gif&amp;diff=2370"/>
		<updated>2018-01-29T14:44:24Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2369</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2369"/>
		<updated>2018-01-29T14:36:35Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt;q=10 &amp;gt; z&amp;lt;/math&amp;gt; podemos notar a diferença entre os algoritmos com banho térmico termalizando em &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; enquanto Metropolis leva pouco menos de &amp;lt;math&amp;gt;200\text{ MCSweeps}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2368</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2368"/>
		<updated>2018-01-29T14:34:15Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt;q=10 &amp;gt; z&amp;lt;/math&amp;gt; podemos notar a diferença entre os algoritmos com banho térmico termalizando em &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; enquanto Metropolis leva pouco menos de &amp;lt;math&amp;gt;200\text{ MCSweeps}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conclusão=&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2367</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2367"/>
		<updated>2018-01-29T14:03:58Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising) e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q10-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=10&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Quando &amp;lt;math&amp;gt;q=10 &amp;gt; z&amp;lt;/math&amp;gt; podemos notar a diferença entre os algoritmos com banho térmico termalizando em &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; enquanto Metropolis leva pouco menos de &amp;lt;math&amp;gt;200\text{ MCSweeps}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q100-T0.8-L64-zoom.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q100-T0.8-L64-zoom.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt;: Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q10-T0.8-L64.png&amp;diff=2366</id>
		<title>Arquivo:Mtime-Q10-T0.8-L64.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q10-T0.8-L64.png&amp;diff=2366"/>
		<updated>2018-01-29T13:55:32Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: Eliseuvf enviou uma nova versão de &amp;amp;quot;Arquivo:Mtime-Q10-T0.8-L64.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q10-T0.8-L64.png&amp;diff=2365</id>
		<title>Arquivo:Etime-Q10-T0.8-L64.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q10-T0.8-L64.png&amp;diff=2365"/>
		<updated>2018-01-29T13:55:14Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: Eliseuvf enviou uma nova versão de &amp;amp;quot;Arquivo:Etime-Q10-T0.8-L64.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q100-T0.8-L64-zoom.png&amp;diff=2364</id>
		<title>Arquivo:Etime-Q100-T0.8-L64-zoom.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q100-T0.8-L64-zoom.png&amp;diff=2364"/>
		<updated>2018-01-29T13:39:20Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q100-T0.8-L64-zoom.png&amp;diff=2363</id>
		<title>Arquivo:Mtime-Q100-T0.8-L64-zoom.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q100-T0.8-L64-zoom.png&amp;diff=2363"/>
		<updated>2018-01-29T13:39:11Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: Eliseuvf enviou uma nova versão de &amp;amp;quot;Arquivo:Mtime-Q100-T0.8-L64-zoom.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q100-T0.8-L64-zoom.png&amp;diff=2362</id>
		<title>Arquivo:Mtime-Q100-T0.8-L64-zoom.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q100-T0.8-L64-zoom.png&amp;diff=2362"/>
		<updated>2018-01-29T13:38:42Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q10-T0.8-L64.png&amp;diff=2361</id>
		<title>Arquivo:Mtime-Q10-T0.8-L64.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q10-T0.8-L64.png&amp;diff=2361"/>
		<updated>2018-01-29T13:38:28Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q10-T0.8-L64.png&amp;diff=2360</id>
		<title>Arquivo:Etime-Q10-T0.8-L64.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q10-T0.8-L64.png&amp;diff=2360"/>
		<updated>2018-01-29T13:38:18Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2359</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2359"/>
		<updated>2018-01-29T13:37:31Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a baixas temperaturas, encontramos seu comportamento ferromagnético e ambos os algoritmos são quivalentes.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2358</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2358"/>
		<updated>2018-01-29T13:34:51Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Testes numéricos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para dar a todos os spins uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2357</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2357"/>
		<updated>2018-01-29T13:33:44Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=2.5\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T2.5-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para o modelo de Ising a altas temperaturas, o algoritmo de Metropolis tem uma pequena vantagem, mas para ambos os casos o sistema acaba termalizando em aproximadamente &amp;lt;math&amp;gt;20\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins, &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, evolução suficiente para todos os spin ter a chance de trocar de esta uma vez).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;64\times 64&amp;lt;/math&amp;gt; com condições de contorno periódicas a uma temperatura &amp;lt;math&amp;gt;T=0.8\text{J}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k_B=1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-T0.8-L64.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-T2.5-L64.png&amp;diff=2356</id>
		<title>Arquivo:Etime-Q2-T2.5-L64.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-T2.5-L64.png&amp;diff=2356"/>
		<updated>2018-01-29T13:26:42Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: Eliseuvf enviou uma nova versão de &amp;amp;quot;Arquivo:Etime-Q2-T2.5-L64.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q2-T0.8-L64.png&amp;diff=2355</id>
		<title>Arquivo:Mtime-Q2-T0.8-L64.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q2-T0.8-L64.png&amp;diff=2355"/>
		<updated>2018-01-29T13:21:45Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-T0.8-L64.png&amp;diff=2354</id>
		<title>Arquivo:Etime-Q2-T0.8-L64.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-T0.8-L64.png&amp;diff=2354"/>
		<updated>2018-01-29T13:21:34Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q2-T2.5-L64.png&amp;diff=2353</id>
		<title>Arquivo:Mtime-Q2-T2.5-L64.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q2-T2.5-L64.png&amp;diff=2353"/>
		<updated>2018-01-29T13:21:15Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-T2.5-L64.png&amp;diff=2352</id>
		<title>Arquivo:Etime-Q2-T2.5-L64.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-T2.5-L64.png&amp;diff=2352"/>
		<updated>2018-01-29T13:21:01Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2351</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2351"/>
		<updated>2018-01-29T13:06:44Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;128\times128&amp;lt;/math&amp;gt; com condições de contorno periódicas&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-L128-T10.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-L128-T10.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising), ambos os algoritmos são igualmente eficientes, termalizando em aproximadamente &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;1\text{ MCSweep}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, um avanço da simulação suficiente para todos os spin ter uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2350</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2350"/>
		<updated>2018-01-29T13:06:17Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;128\times128&amp;lt;/math&amp;gt; com condições de contorno periódicas&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-L128-T10.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-L128-T10.png|thumb|center|700px|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising), ambos os algoritmos são igualmente eficientes, termalizando em aproximadamente &amp;lt;math&amp;gt;50\text{ MCSweeps}&amp;lt;/math&amp;gt; (para uma rede com &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;1\text{ MCSweeps}&amp;lt;/math&amp;gt; é equivalente a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; passos Monte Carlo, isto é, um avanço da simulação suficiente para todos os spin ter uma chance de trocar de estado).&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2349</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2349"/>
		<updated>2018-01-29T12:55:50Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt;, rede retangular &amp;lt;math&amp;gt;128\times128&amp;lt;/math&amp;gt; com condições de contorno periódicas&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Etime-Q2-L128-T10.png|thumb|600px|center|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Energia em função do tempo]]&lt;br /&gt;
[[Arquivo:Mtime-Q2-L128-T10.png|thumb|600px|center|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising): Magnetização em função do tempo]]&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising), ambos os algoritmos são &lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q2-L128-T10.png&amp;diff=2348</id>
		<title>Arquivo:Mtime-Q2-L128-T10.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q2-L128-T10.png&amp;diff=2348"/>
		<updated>2018-01-29T12:55:18Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: Eliseuvf enviou uma nova versão de &amp;amp;quot;Arquivo:Mtime-Q2-L128-T10.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-L128-T10.png&amp;diff=2347</id>
		<title>Arquivo:Etime-Q2-L128-T10.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-L128-T10.png&amp;diff=2347"/>
		<updated>2018-01-29T12:55:06Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: Eliseuvf enviou uma nova versão de &amp;amp;quot;Arquivo:Etime-Q2-L128-T10.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q2-L128-T10.png&amp;diff=2346</id>
		<title>Arquivo:Mtime-Q2-L128-T10.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Mtime-Q2-L128-T10.png&amp;diff=2346"/>
		<updated>2018-01-29T12:39:13Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-L128-T10.png&amp;diff=2345</id>
		<title>Arquivo:Etime-Q2-L128-T10.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Etime-Q2-L128-T10.png&amp;diff=2345"/>
		<updated>2018-01-29T12:39:03Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2344</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2344"/>
		<updated>2018-01-29T12:38:08Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;q=2, rede retangular 64\times64 com condições de contorno periodicas&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Exemplo.png|thumb||upright=1.2|center|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising):]]&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising), ambos os algoritmos são &lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2343</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2343"/>
		<updated>2018-01-29T12:22:35Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Testes numéricos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Exemplo.png|thumb||upright=1.2|center|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising):]]&lt;br /&gt;
&lt;br /&gt;
Para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising),&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2342</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2342"/>
		<updated>2018-01-29T09:53:45Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
==Testes numéricos==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Exemplo.png|thumb|upright=1.2|right|Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising):]]&lt;br /&gt;
= Simulação Monte Carlo com &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; (Ising):&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2340</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2340"/>
		<updated>2018-01-29T02:26:01Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Eficiência do algoritmo de Metropolis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou, no máximo, manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2339</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2339"/>
		<updated>2018-01-29T02:20:57Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma dada lei resultando em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2338</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2338"/>
		<updated>2018-01-29T02:13:26Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2337</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2337"/>
		<updated>2018-01-29T02:13:06Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Eficiência do algoritmo de Metropolis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N}, \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2336</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2336"/>
		<updated>2018-01-29T02:08:48Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Descrição do modelo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimensional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2335</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2335"/>
		<updated>2018-01-29T02:06:30Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Eficiência do algoritmo de Metropolis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2334</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2334"/>
		<updated>2018-01-29T02:06:04Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Eficiência do algoritmo de Metropolis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-z&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;z/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2333</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2333"/>
		<updated>2018-01-29T02:04:39Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; têm apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-N_v&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;N_v/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2332</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2332"/>
		<updated>2018-01-29T02:03:30Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; tem apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando o algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade &amp;lt;math&amp;gt;\frac{z}{q}&amp;lt;/math&amp;gt; de o sistema trocar para um estado de menor energia, onde &amp;lt;math&amp;gt;z/math&amp;gt; é número de coordenação da rede, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-N_v&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;N_v/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2331</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2331"/>
		<updated>2018-01-29T01:50:37Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; tem apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade de o sistema trocar para um estado de menor energia de &amp;lt;math&amp;gt;\frac{N_v}{q}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; é número de vizinhos mais próximos de cada spin, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-N_v&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;N_v/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico, que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis, onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseada nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescência, como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2330</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2330"/>
		<updated>2018-01-29T01:47:04Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; tem apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts, que admite um número elevado de estados possíveis para o spin, é evidenciado quando consideramos um sistema a baixas temperaturas. Para altas temperaturas, a probabilidade de aceitação é unitária ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando algoritmo eficiente. Entretanto a baixas temperaturas, os spins tendem a se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a energia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos uma probabilidade de o sistema trocar para um estado de menor energia de &amp;lt;math&amp;gt;\frac{N_v}{q}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; é número de vizinhos mais próximos de cada spin, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos, teremos &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-N_v&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;N_v/q&amp;lt;/math&amp;gt;, novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseado nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescencia como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2329</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2329"/>
		<updated>2018-01-29T01:35:36Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Eficiência do algoritmo de Metropolis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; tem apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; (a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;) e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts que admite um número elevado de estados possíveis para o spin é evidenciado quando consideramos um sistema à baixa temperatura. Para altas temperaturas a probabilidade de aceitação é igual à &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando algoritmo eficiente, entretanto à baixa temperatura os spins tendem à se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a enrgia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos um probabilidade de o sistema trocar para um estado de menor energia de &amp;lt;math&amp;gt;\frac{N_v}{q}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; é número de vizinhos mais próximos de cada spin, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos teremos &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-N_v&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;N_v/q&amp;lt;/math&amp;gt; novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseado nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescencia como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2328</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2328"/>
		<updated>2018-01-29T01:30:41Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Eficiência do algoritmo de Metropolis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; tem apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts, devemos relembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;, a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts que admite um número elevado de estados possíveis para o spin é evidenciado quando consideramos um sistema à baixa temperatura. Para altas temperaturas a probabilidade de aceitação é igual à &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando algoritmo eficiente, entretanto à baixa temperatura os spins tendem à se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a enrgia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos um probabilidade de o sistema trocar para um estado de menor energia de &amp;lt;math&amp;gt;\frac{N_v}{q}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; é número de vizinhos mais próximos de cada spin, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos teremos &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-N_v&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;N_v/q&amp;lt;/math&amp;gt; novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseado nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescencia como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2327</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2327"/>
		<updated>2018-01-29T01:27:54Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Simulação Monte Carlo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; tem apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é, naturalmente, similar àquela utilizada para o modelo de Ising: seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts devemos nos lembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;, a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts que admite um número elevado de estados possíveis para o spin é evidenciado quando consideramos um sistema à baixa temperatura. Para altas temperaturas a probabilidade de aceitação é igual à &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando algoritmo eficiente, entretanto à baixa temperatura os spins tendem à se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a enrgia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos um probabilidade de o sistema trocar para um estado de menor energia de &amp;lt;math&amp;gt;\frac{N_v}{q}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; é número de vizinhos mais próximos de cada spin, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos teremos &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-N_v&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;N_v/q&amp;lt;/math&amp;gt; novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseado nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescencia como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2326</id>
		<title>Grupo - Modelo de Potts</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Grupo_-_Modelo_de_Potts&amp;diff=2326"/>
		<updated>2018-01-29T01:26:46Z</updated>

		<summary type="html">&lt;p&gt;Eliseuvf: /* Relação com o modelo de Ising */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originalmente descrito por Renfrey Potts em 1951 na sua tese de doutorado, esse modelo é uma generalização do modelo de Ising para a interação entre spins em uma rede cristalina.&lt;br /&gt;
&lt;br /&gt;
=Descrição do modelo=&lt;br /&gt;
No modelo de Potts a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados são considerados &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; dispostos em uma rede, geralmente bidimesnsional retangular, cada spin podendo estar em um dos &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; estados possíveis.&lt;br /&gt;
&lt;br /&gt;
O Hamiltoniano desse sistema é&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_p = -J \sum_{(i,j)} \delta(s_i,s_j) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; é a constante de acoplamento que determina a intensidade da interação, &amp;lt;math&amp;gt;\delta(s_i,s_j)&amp;lt;/math&amp;gt; é a função delta de Kronecker que retorna &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; se &amp;lt;math&amp;gt;s_i=s_j&amp;lt;/math&amp;gt; e retorna &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; para todos os outros casos, e o somatório considera somente os pares &amp;lt;math&amp;gt;(i,j)&amp;lt;/math&amp;gt; de spins vizinhos.&lt;br /&gt;
&lt;br /&gt;
No caso ferromagnético, &amp;lt;math&amp;gt;J&amp;gt;0&amp;lt;/math&amp;gt;, o nível fundamental de energia possui uma degenerescência igual a &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;, correspondendo aos valores possíveis para todos os spins alinhados.&lt;br /&gt;
&lt;br /&gt;
==Relação com o modelo de Ising==&lt;br /&gt;
&lt;br /&gt;
É importante notar que para &amp;lt;math&amp;gt;q=2&amp;lt;/math&amp;gt; o modelo de Potts é equivalente ao modelo de Ising com constante de acoplamento &amp;lt;math&amp;gt;\frac{J}{2}&amp;lt;/math&amp;gt; a menos de uma constante aditiva &amp;lt;math&amp;gt;\sum_{(i,j)}\frac{J}{2}&amp;lt;/math&amp;gt; no Hamiltoniano.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -J\sum_{(i,j)} \delta(s_i,s_j) + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} (2\delta(s_i,s_j) - 1) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nesse caso os spins &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;s_j&amp;lt;/math&amp;gt; tem apenas dois valores possíveis e&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; 2\delta(s_i,s_j) - 1 = \begin{cases}&lt;br /&gt;
 1, \quad \text{se } s_i = s_j \\&lt;br /&gt;
 -1, \quad \text{se } s_i \neq s_j&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logo considerando como valores possíveis para os spins &amp;lt;math&amp;gt;\{s_i,s_j\}&amp;lt;/math&amp;gt; como &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; encontramos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;H_I = H_p + \sum_{(i,j)}\frac{J}{2} = -\frac{J}{2}\sum_{(i,j)} s_i s_j &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Simulação Monte Carlo=&lt;br /&gt;
&lt;br /&gt;
A abordagem utilizada para simular por Monte Carlo um sistema seguindo o modelo de Potts com &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; pequeno é naturalmente similar àquela utilizada para o modelo de Ising, seguindo o algoritmo de Metropolis. Entretanto para valores mais elevados de &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; esse algoritmo se torna ineficiente e o sistema demora um tempo muito longo para entrar em equilíbrio térmico.&lt;br /&gt;
&lt;br /&gt;
==Eficiência do algoritmo de Metropolis==&lt;br /&gt;
&lt;br /&gt;
Para entender porque o algoritmo de Metropolis não é otimo para uma simulação Monte Carlo de um sistema seguindo o modelo de Potts devemos nos lembrar como ele resolve o problema de amostragem por importância.&lt;br /&gt;
&lt;br /&gt;
As condições necessárias para a amostragem por importância são:&lt;br /&gt;
&lt;br /&gt;
* Ergodicidade: a garantia de que qualquer estado do sistema é acessível à partir de qualquer outro estado dado um comprimento suficientemente grande da cadeia de Markov.&lt;br /&gt;
* Balanço detalhado: a garantia de que a cadeia de Markov de matriz estocástica &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; vai convergir, quando o sistema atingir o equilíbrio térmico, para uma dada distribuição &amp;lt;math&amp;gt;{p_\mu}&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu P(\mu \rightarrow \nu) = p_\nu P(\nu \rightarrow \mu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No caso do ensemble canônico essa distribuição é a distribuição de Boltzmann&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;p_\mu = \frac{1}{Z}e^{-\beta E_\mu}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; é a função de partição e &amp;lt;math&amp;gt;\beta = \frac{1}{k_B T}&amp;lt;/math&amp;gt; é o inverso da temperatura.&lt;br /&gt;
&lt;br /&gt;
Considerando a probabilidade de transição de estado como o produto de uma probabilidade de seleção de um novo estado &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;, a probabilidade de considerar &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; como o próximo estado na cadeia dado o estado atual &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, e uma probabilidade de aceitação de transição &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;P(\mu \rightarrow \nu) = g(\mu \rightarrow \nu)A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o algoritmo de Metropolis atribui um valor fixo e uniforme para a probabilidade de seleção&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) = \frac{1}{N} \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que claramente garante a ergodicidade, restando apenas uma condição sobre os valores das probabilidades de aceitação:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;\frac{A(\mu \rightarrow \nu)}{A(\nu \rightarrow \mu)} = \frac{p_\nu}{p_\mu} = e^{\beta (E_\nu - E_\mu)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
que é satisfeita com a seguinte lei de seleção:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; A(\mu \rightarrow \nu) = \begin{cases}&lt;br /&gt;
 e^{-\beta(E_\nu - E_\mu)}, \quad \text{se } E_\nu &amp;gt; E_\mu \\&lt;br /&gt;
 1, \quad \text{caso contrario}&lt;br /&gt;
 \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ExemploPottsMetropolis1.png|thumb|upright=1.2|right|Exemplo: rede bidimensional retangular com &amp;lt;math&amp;gt;q=100&amp;lt;/math&amp;gt;. Um spin cercado por vizinhos de valores diferentes, a probabilidade de o sistema trocar para um estado de menor energia é &amp;lt;math&amp;gt;4/100=4%&amp;lt;/math&amp;gt;, logo teremos que esperar em média &amp;lt;math&amp;gt;25&amp;lt;/math&amp;gt; passos para a simulação avançar.]]&lt;br /&gt;
&lt;br /&gt;
O problema desse algoritmo para um modelo como o de Potts que admite um número elevado de estados possíveis para o spin é evidenciado quando consideramos um sistema à baixa temperatura. Para altas temperaturas a probabilidade de aceitação é igual à &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; ou suficientemente alta por conta de um &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; pequeno tornando algoritmo eficiente, entretanto à baixa temperatura os spins tendem à se alinhar com seus vizinhos constituindo o fenômeno do ferromagnetismo. Se imaginarmos um spin no estado &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt; cercado por vizinhos de valores diferentes, seguindo o algoritmo de Metropolis, seja qual for o valor &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; selecionado uniformemente para o novo estado desse spin a probabilidade de aceitação é &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1&amp;lt;/math&amp;gt; pois essa troca de spin vai diminuir a enrgia do sistema (quando &amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; for estado de um spin vizinho) ou no máximo manter constante a energia do sistema (&amp;lt;math&amp;gt;s_i&#039;&amp;lt;/math&amp;gt; continua sendo diferente de todos os spins vizinhos). Com isso, temos um probabilidade de o sistema trocar para um estado de menor energia de &amp;lt;math&amp;gt;\frac{N_v}{q}&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; é número de vizinhos mais próximos de cada spin, aumentando muito o tempo necessário para o sistema entrar em equilíbrio.&lt;br /&gt;
&lt;br /&gt;
De maneira similar, se um spin tem o mesmo estado de um de seus vizinhos teremos &amp;lt;math&amp;gt;N_v&amp;lt;/math&amp;gt; novos estados &amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt; com taxa de aceitação unitária enquanto todos outros &amp;lt;math&amp;gt;q-N_v&amp;lt;/math&amp;gt; estados terão uma taxa de aceitação muito baixa (dependendo da temperatura) resultando em uma probabilidade de transição pouco maior que &amp;lt;math&amp;gt;N_v/q&amp;lt;/math&amp;gt; novamente atrasando a simulação.&lt;br /&gt;
&lt;br /&gt;
==Algoritmo do banho térmico==&lt;br /&gt;
&lt;br /&gt;
Uma solução possível para o problema apresentado é utilizar o algoritmo de banho térmico que também troca o estado de um spin por vez mas utiliza uma técnica diferente para satisfazer a condição do balanço detalhado. Diferentemente do algoritmo de Metropolis onde a probabilidade de seleção &amp;lt;math&amp;gt;g(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; é uniforme e a probabilidade de aceitação &amp;lt;math&amp;gt;A(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; obedece uma lei que resulta em uma probabilidade de transição &amp;lt;math&amp;gt;P(\mu \rightarrow \nu)&amp;lt;/math&amp;gt; que respeita a condição, no algoritmo do banho térmico a taxa de aceitação é unitária&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;A(\mu \rightarrow \nu) = 1 \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a taxa de seleção é baseado nos pesos de Boltzmann (peso não nulo inclusive para o estado atual do sistema)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt;g(\mu \rightarrow \nu) \propto e^{-\beta E_\nu} \propto p_\nu \quad \forall \mu, \nu&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando automaticamente numa probabilidade de transição que respeita o balanço detalhado.&lt;br /&gt;
&lt;br /&gt;
Esse algoritmo é muito mais eficiente para sistemas com alto grau de degenerescencia como o modelo de Potts com grau &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; elevado.&lt;br /&gt;
&lt;br /&gt;
=Códigos utilizados=&lt;br /&gt;
[https://github.com/drfreeman816/PottsModel Modelo de Potts]&lt;br /&gt;
&lt;br /&gt;
=Referências=&lt;br /&gt;
&lt;br /&gt;
Potts, Renfrey B. (1952). &amp;quot;Some Generalized Order-Disorder Transformations&amp;quot;. Mathematical Proceedings.&lt;br /&gt;
&lt;br /&gt;
M. E. J. Newman, G. T. Barkema, &amp;quot;Monte Carlo Methods in Statistical Physics&amp;quot;. Oxford University Press Inc., New York, 1999.&lt;/div&gt;</summary>
		<author><name>Eliseuvf</name></author>
	</entry>
</feed>