
1. Introdução
Existem muitas publicações sobre Habr nas quais o conceito de entropia é considerado, aqui estão apenas algumas delas [1]. As publicações foram recebidas positivamente pelos leitores e despertaram grande interesse. É suficiente dar a definição de entropia dada pelo autor da publicação [1]: “entropia é quanta informação você não conhece sobre o sistema”. Publicações sobre o fenômeno do caos em Habr também são suficientes [6–9]. No entanto, a relação de entropia e caos em ambos os grupos de publicações não foi considerada.
Isso se deve ao fato de que diferentes áreas do conhecimento distinguem diferentes tipos de medidas de caos:
- informativo;
- termodinâmico;
- diferencial;
- cultural.
As medidas de caos também são descritas levando em consideração sua especificidade, mesmo em uma dessas áreas é bastante difícil.
Tentando simplificar ao máximo a tarefa, decidi considerar a relação entre entropia informacional e caos usando o exemplo da semelhança das regiões de passagem da ordem ao caos nos diagramas na forma de mapeamentos de pontos e nos gráficos do coeficiente de entropia para essas regiões.
O que veio disso você aprenderá olhando sob o gato.
Os mecanismos de transição da ordem para o caos
Uma análise dos mecanismos de transição da ordem para o caos em sistemas reais e vários modelos revelou a universalidade de relativamente poucos cenários de transição para o caos. A transição para o caos pode ser representada na forma de um diagrama de bifurcação (o termo “bifurcação” é usado para denotar rearranjos qualitativos do sistema com o surgimento de um novo modo de comportamento).
A entrada do sistema no modo imprevisível é descrita por uma cascata de bifurcações após uma após a outra. A cascata de bifurcações leva sequencialmente a uma escolha entre duas soluções, depois quatro e assim por diante, o sistema começa a oscilar em um modo caótico e turbulento de duplicar sequencialmente o número de valores possíveis.
Consideramos as bifurcações da duplicação de períodos e o aparecimento do caos nos mapeamentos de pontos. Display é uma função que mostra a dependência dos seguintes valores dos parâmetros do sistema em relação aos valores anteriores:
xn+1=f(xn)= lambdaxn(1−xn)Considere também a segunda função comumente usada:
xn+1=f(xn)= lambda cdotxn cdot(1−x2n)Usando mapeamentos de pontos, os objetos são estudados não com
contínuo, mas com tempo discreto . Após a transição para a tela, a dimensão do sistema em estudo pode diminuir.
Ao alterar o parâmetro externo \ lambda, os mapeamentos de pontos exibem um comportamento bastante complicado, que se torna caótico com \ lambda suficientemente grande. O caos é uma recessão muito rápida de trajetórias no espaço de fase.
A bifurcação é uma reestruturação qualitativa do filme. Os valores do parâmetro de controle no qual ocorrem as bifurcações são chamados de valores críticos ou de bifurcação.
Para criar os diagramas, usaremos as duas listagens a seguir:
No. 1. Para função:
xn+1=f(xn)= lambdaxn(1−xn)No. 2. Para função
xn+1=f(xn)= lambda cdotxn cdot(1−x2n)Avaliar o impacto da natureza da função logística em valores críticos
lambda considere diagramas com uma função
xn+1=f(xn)= lambdaxn(1−xn) Para fazer isso, usaremos a listagem nº 1:
Para 0 <\ lambda <1 para
lambda=$0,9 e x0 = 0,47, obtemos o diagrama:

Nesse caso, o mapa possui um único ponto fixo
x∗=0que é sustentável.
At
1< lambda<3 para
lambda=$2, x0 = 0,7, obtemos o diagrama:

No segmento [0, 1], outro ponto fixo fixo aparece
x∗1=1−1/ lambdaAt
1< lambda<3 para
lambda=$2, e x0 = 0,01, obtemos o diagrama:

Ponto fixo
x∗=0 perde estabilidade.
At
3< lambda<3,45 para
lambda=$3,4 e x0 = 0,7, obtemos o diagrama:

O mapeamento sofre uma bifurcação: ponto fixo
x∗1 torna-se instável e um ciclo duplo é exibido.
At
3,45< lambda<4,0 para
lambda=$3,5e x0 = 0,2, obtemos o diagrama:

Ao passar um parâmetro
lambda através do valor
lambda=3,45 , Um ciclo de duas vezes se torna quatro vezes e além.
No valor final
lambda=4 o sistema possui ciclos instáveis de todos os pedidos possíveis:

Avaliar o impacto da natureza da função logística em valores críticos
lambda considere diagramas com uma função
xn+1=f(xn)= lambda cdotxn cdot(1−x2n) , para isso, usaremos a listagem nº 2.
At
0< lambda<=1,0 para
lambda=0,5 e x0 = 0,2:

O mapeamento possui um único ponto fixo
x∗=0 que é sustentável.
At
1< lambda<=1.998... para
lambda=$1, e x0 = 0,55:

Ponto
x∗=0 perde a estabilidade, um novo ponto estável aparece
x∗1At
1,99< lambda<=2,235... para
lambda=US$2, e x0 = 0,2:

Bifurcação da duplicação do período ocorre, um ciclo de 2 vezes aparece. Aumento adicional
lambda leva a uma cascata de períodos de duplicação de bifurcações.
At
2,235< lambda2.5980... para
lambda=2,287 e x0 = 0,2:

Aumentar
lambda levou a uma cascata de período dobrando bifurcações.
At
lambda=2,59 o sistema possui ciclos instáveis de todos os períodos possíveis:
Como foi mostrado nos diagramas, com um aumento na ordem da função logística, o intervalo de mudanças lambda diminui.Usando diagramas, traçamos o caminho do pedido ao caos, enquanto definimos os valores
lambda para diferentes funções logísticas. Resta responder à pergunta: como medir o caos? A resposta para alguns dos tipos de caos listados no início do artigo é conhecida
- entropia é uma medida do caos. Esta resposta pode ser totalmente atribuída ao caos da informação, no entanto, que entropia é aplicada aqui e como comparar com o valor numérico já considerado
lambda - Tentarei responder a essa pergunta na próxima parte do artigo.
Entropia de informação e coeficiente de entropia
Consideraremos a entropia binária de informações para eventos aleatórios independentes.
x c
n possíveis estados distribuídos com probabilidades
pi(i=1,..,n) . A entropia binária de informações é calculada pela fórmula:
H(x)=− sumni=1pi cdotlog2(pi)Esse valor também é chamado de entropia média da mensagem. Valor
Hi=−log2(pi) chamada entropia privada, caracterizando apenas o
i- ésimo estado. No caso geral, a base do logaritmo na definição de entropia pode ser maior que 1; sua escolha determina a unidade de medida da entropia.
Usaremos logaritmos decimais nos quais a entropia e as informações são medidas em bits. A quantidade de informações em bits será calculada corretamente quando, por exemplo, variáveis
X e
Delta será substituído nas expressões correspondentes por entropia, não importa em qual, mas sempre nas mesmas unidades. De fato:
q=H(x)−H( Delta)=log10 left(X2−X1 right)−log10(2 Delta)=log10( fracX2−X12 Delta)onde X e
Delta deve estar nas mesmas unidades.
Uma estimativa do valor da entropia de uma variável aleatória a partir de dados experimentais é encontrada em um histograma da seguinte relação:
Deltae= frac12eH(x)= fracd2 prodmi=1( fracnni) fracnin= fracdn210− frac1n summi=1nilog10(ni)onde:
d –Largura de cada coluna do histograma;
m - número de colunas;
n quantidade total de dados;
ni - quantidade de dados em
i essa coluna.
O coeficiente de entropia é determinado a partir da razão:
ke= frac Deltae sigmaonde:
sigma desvio padrão.
Entropia da informação como uma medida do caos
Para analisar os fenômenos do caos da informação usando o coeficiente de entropia, primeiro criamos um diagrama de ramificações para a função
xn+1=f(xn)= lambdaxn(1−xn) com a aplicação de áreas de transição obtidas durante a construção de histogramas:
Diagrama de ramificação import matplotlib.pyplot as plt import matplotlib.pyplot as plt from numpy import* N=1000 y=[] y.append(0.5) for r in arange(3.58,3.9,0.0001): for n in arange(1,N,1): y.append(round(r*y[n-1]*(1-y[n-1]),4)) y=y[N-250:N] x=[r ]*250 plt.plot( x,y, color='black', linestyle=' ', marker='.', markersize=1) plt.figure(1) plt.title(" 3,6<= $\lambda$ <=3,9") plt.xlabel("r") plt.ylabel("$\lambda$ ") plt.axvline(x=3.63,color='black',linestyle='--') plt.axvline(x=3.74,color='black',linestyle='--') plt.axvline(x=3.83,color='black',linestyle='--') plt.axvline(x=3.9,color='black',linestyle='--') plt.show()
Temos:

Traçamos o coeficiente de entropia para as mesmas áreas
lambda :
O gráfico para o coeficiente de entropia import matplotlib.pyplot as plt from numpy import* data_k=[] m='auto' for p in arange(3.58,3.9,0.0001): q=[round(p,2)] M=zeros([1001,1]) for j in arange(0,1,1): M[0,j]=0.5 for j in arange(0,1,1): for i in arange(1,1001,1): M[i,j]=q[j]*M[i-1,j]*(1-M[i-1,j]) a=[] for i in arange(0,1001,1): a.append(M[i,0]) n=len(a) z=histogram(a, bins=m) if type(m) is str: m=len(z[0]) y=z[0] d=z[1][1]-z[1][0] h=0.5*d*n*10**(-sum([w*log10(w) for w in y if w!=0])/n) ke=round(h/std(a),3) data_k.append(ke) plt.title(" ke 3,6<= $\lambda$ <=3,9") plt.plot(arange(3.58,3.9,0.0001),data_k) plt.xlabel("$\lambda$ ") plt.ylabel("ke") plt.axvline(x=3.63,color='black',linestyle='--') plt.axvline(x=3.74,color='black',linestyle='--') plt.axvline(x=3.83,color='black',linestyle='--') plt.axvline(x=3.9,color='black',linestyle='--') plt.grid() plt.show()
Temos:

Comparando o diagrama e o gráfico, vemos uma exibição idêntica das regiões no diagrama e no gráfico para o coeficiente de entropia para a função
xn+1=f(xn)= lambdaxn(1−xn) .
Para uma análise mais aprofundada dos fenômenos do caos da informação usando o coeficiente de entropia, criamos um diagrama de ramificações para a função logística:
xn+1=f(xn)= lambda cdotxn cdot(1−x2n) com a aplicação de áreas de transição:
Diagrama de ramificação import matplotlib.pyplot as plt from numpy import* N=1000 y=[] y.append(0.5) for r in arange(2.25,2.56,0.0001): for n in arange(1,N,1): y.append(round(r*y[n-1]*(1-(y[n-1])**2),4)) y=y[N-250:N] x=[r ]*250 plt.plot( x,y, color='black', linestyle=' ', marker='.', markersize=1) plt.figure(1) plt.title(" 2.25<=$\lambda$ <=2.56") plt.xlabel("$\lambda$ ") plt.ylabel("y") plt.axvline(x=2.34,color='black',linestyle='--') plt.axvline(x=2.39,color='black',linestyle='--') plt.axvline(x=2.45,color='black',linestyle='--') plt.axvline(x=2.49,color='black',linestyle='--') plt.axvline(x=2.56,color='black',linestyle='--') plt.show()
Temos:

Traçamos o coeficiente de entropia para as mesmas áreas
lambda :
Gráfico de coeficiente de entropia import matplotlib.pyplot as plt from numpy import* data_k=[] m='auto' for p in arange(2.25,2.56,0.0001): q=[round(p,2)] M=zeros([1001,1]) for j in arange(0,1,1): M[0,j]=0.5 for j in arange(0,1,1): for i in arange(1,1001,1): M[i,j]=q[j]*M[i-1,j]*(1-(M[i-1,j])**2) a=[] for i in arange(0,1001,1): a.append(M[i,0]) n=len(a) z=histogram(a, bins=m) if type(m) is str: m=len(z[0]) y=z[0] d=z[1][1]-z[1][0] h=0.5*d*n*10**(-sum([w*log10(w) for w in y if w!=0])/n) ke=round(h/std(a),3) data_k.append(ke) plt.figure(2) plt.title(" ke 2.25<= $\lambda$ <=2.56") plt.plot(arange(2.25,2.56,0.0001),data_k) plt.xlabel("$\lambda$ ") plt.ylabel("ke") plt.axvline(x=2.34,color='black',linestyle='--') plt.axvline(x=2.39,color='black',linestyle='--') plt.axvline(x=2.45,color='black',linestyle='--') plt.axvline(x=2.49,color='black',linestyle='--') plt.axvline(x=2.56,color='black',linestyle='--') plt.grid() plt.show()
Temos:

Comparando o diagrama e o gráfico, vemos uma exibição idêntica das regiões no diagrama e no gráfico para o coeficiente de entropia para a função
xn+1=f(xn)= lambda cdotxn cdot(1−x2n)Conclusões:
O problema educacional é resolvido no artigo: a entropia informacional é uma medida do caos, e a resposta dessa pergunta é afirmativamente dada por Python.
Referências
- Entropia? É fácil!
- Introdução ao conceito de entropia e suas múltiplas faces.
- Árvores de entropia e decisão.
- Um tratado sobre entropia.
- Entropia e WinRAR.
- Modelos matemáticos do caos.
- Um pouco sobre o caos e como criá-lo.
- Um olhar crítico sobre o atrator Lorenz.
- Geradores de caos em FPGA.