Sistemas dinâmicos com estados alternativos estáveis podem passar de um estado ao outro. Estas transições muitas vezes acontecem de maneira brusca, quando alguma condição ambiental ultrapassa um certo limiar.
Este roteiro mostra como fazer o sistema retornar ao estado anterior após uma transição destas pode ser mais difícil do que o caminho que levou á transição. Chamamos este propriedade de histerese.
Para executar este roteiro você precisa de um computador com o ambiente R instalado, com os seguintes pacotes:
Caso você não os tenha, clique no botão de instalar pacotes de sua interface gráfica do R, ou copie os comandos abaixo e cole-os na linha de comando do R:
install.packages("shiny")
install.packages("ggplot2")
install.packages("deSolve")
install.packages("rootSolve")
Você também vai precisar executar o código em R que abre a interface gráfica que vamos usar para explorar o modelo. Para isso abra o R, copie os comandos abaixo e cole na linha de comando (prompt) do R:
library(shiny)
runUrl("http://ecovirtual.ib.usp.br/lib/exe/fetch.php?media=ecovirt:roteiro:math:hysteresis_shiny.zip")
Seu navegador de internet deve abrir uma interface como esta:
hysteresis_shiny com dois arquivos: ui.R e server.Rhisteresys_shinylibrary(shiny)
runApp("hysteresis_shiny")
Tente a versão online da interface. Por limitações do serviço, ela pode ser lenta ou mesmo não funcionar devido a excesso de carga.
Vamos usar um modelo matemático que descreve a dinâmica de uma população natural sob extrativismo. Usaremos aqui um exemplo hipotético de uma população de peixes que é explorada por uma empresa pesqueira.
Em nosso modelo, quando não há pesca, a população de peixes cresce até sua capacidade de suporte de acordo com a equação logística. A pesca segue uma resposta funcional do tipo III. Isso quer dizer que há uma taxa máxima de pesca $g$ (peixes extraídos por unidade de tempo) que a empresa consegue realizar. Esta taxa máxima é alcançada quando a população de peixes é grande. Quando a população diminui, a taxa de pesca cai rapidamente, porque a empresa tem a estratégia de explorar outras populações (não incluídas no modelo). A equação deste modelo é:
$$V ~=~ rN \left(1 - \frac{N}{K} \right) ~ - ~g \frac{N^p}{N^p + H^p}$$
Onde $V$ é a velocidade instantânea de crescimento da população de peixes (a derivada $\frac{dN}{dt}$), $r$ é a taxa de crescimento intrínseco, $K$ a capacidade de suporte e $g$ a taxa máxima de extração. Os parâmetros $p$ e $H$ afetam a forma da curva de resposta funcional, mas não são importantes para este exercício. Os detalhes deste modelo estão descritos em Scheffer ( 2009). Para nossos propósitos, basta entender que o parâmetro $g$ expressa a taxa máxima de pesca.
Em nosso modelo a capacidade de suporte é $K=10$, que pode ser a biomassa máxima de peixes que uma certa região pesqueira sustenta. A interface é iniciada sem extrativismo ($g=0$). O gráfico da esquerda mostra o tamanho da população ao longo do tempo. Vamos por enquanto nos concentrar neste gráfico da série temporal do tamanho populacional.
Quando não há pesca, a população permanece estacionada no valor de $K$. Este é o valor de equilíbrio ($N^*$) para esta combinação de parâmetros. Agora aumente a taxa de extração para $g=0.5$. A população diminui um pouco, mas se estabiliza em um novo valor. Aumente a taxa de extração para $g=0.9$. Novamente, a população diminui até um novo valor estável. A população parece sempre chegar a um equilíbrio entre a retirada de peixes pela pesca e a a reposição pelos nascimentos na população.
Agora vamos investigar sistematicamente o comportamento dos tamanhos populacionais em equilíbrio à medida que variamos a taxa de extração. Para isso, plotamos cada tamanho no equilíbrio $N^*$ em função do valor de $g$ que leva a este estado de equilíbrio. É isto que vemos no gráfico à direita, que chamamos diagrama de bifurcação. A curva preta neste gráfico mostra os valores de $N^*$ estáveis, em função da taxa de extração. A linha vertical azul marcar a taxa de extração usada para plotar o gráfico da esquerda. O ponto azul no gráfico da direita indica o valor de $N^*$ no diagrama de bifurcação.
Experimente variar a taxa $g$ entre $g=0.1$ e $g=0.9$ e você verá o ponto azul andar ao longo da curva preta no diagrama de bifurcação. Mas note que a partir de $g=0.9$ há outra linha quase horizontal, bem próxima do zero, no diagrama de bifurcação. Isto significa que, para alguns valores de $G$ o sistema pode estacionar em dois valores diferentes de tamanho populacional. Esta é uma região de biestabilidade.
Há um estado em que o tamanho populacional em equilíbrio fica entre 10 e 5. E há outra estado em que a população entra equilíbrio em valores muito próximos de zero. No gráfico da série temporal, estas duas regiões estáveis estão marcadas em verde e vermelho, respectivamente. Vamos chamá-las de estado de alta e baixa produtividade pesqueira. Aumente um pouco a taxa de extração para $g=1.2$, para que o sistema entre na região de biestabilidade.
Agora aumente gradativamente o valor de $g$ e observe como o valor de $N^*$ percorre o diagrama de bifurcação. Prossiga aumentando $g$ até sair da região de biestabilidade. Você verá uma transição brusca para o estado de baixa produtividade 1). Houve uma transição de estados do sistema. Em outra palavras, uma taxa muito alta de extração levou ao colapso pesqueiro.
A resposta óbvia a um colapso como este seria reduzir a extração. Vamos usar nosso modelo para simular essa situação. Na interface, clique na opçãoinicia a recuperação no tempo 50. Será exibido um novo controle, para alterar a taxa de extração após o colapso (a partir do tempo $t=50$). Reduza gradativamente a taxa de extração, até que o sistema volte a seu estado de maior produtividade.
May, R. (1977) Thresholds and breakpoints in ecosystems with a multiplicity of stable states. Nature 269, 471–477 . https://doi.org/10.1038/269471a0
Scheffer, M. (2009). Critical Transitions in Nature and Society. Princeton University Press.