1
resposta

Faça como eu fiz: utilizando cadeias de Markov

import numpy as np

Definição dos estados do clima

states = ["Ensolarado", "Nublado", "Chuvoso"]

Matriz de transição de estados

As probabilidades em cada linha somam 1

transition_matrix = [
[0.8, 0.15, 0.05], # Transições a partir de "Ensolarado"
[0.2, 0.6, 0.2], # Transições a partir de "Nublado"
[0.25, 0.25, 0.5] # Transições a partir de "Chuvoso"
]

Estado inicial

initial_state = "Ensolarado"

Número de dias a prever

num_days = 10

Função para encontrar o índice de um estado

def get_state_index(state):
return states.index(state)

Função para prever o clima para os próximos dias

def predict_weather(initial_state, num_days):
current_state = initial_state
forecast = [current_state]

for _ in range(num_days - 1):
    current_index = get_state_index(current_state)
    next_state = np.random.choice(
        states, 
        p=transition_matrix[current_index]
    )
    forecast.append(next_state)
    current_state = next_state

return forecast

Realizar a previsão

forecast = predict_weather(initial_state, num_days)

Exibir a previsão

print(f"Estado inicial: {initial_state}")
print("Previsão para os próximos dias:")
for day, state in enumerate(forecast, start=1):
print(f"Dia {day}: {state}")

1 resposta

Olá, Ronaldo. Como vai?

Parabéns por mais uma excelente implementação prática! Você aplicou com muita precisão o conceito de Cadeias de Markov, que é fundamental para modelar sistemas que evoluem ao longo do tempo com base em probabilidades.

Sua abordagem técnica destaca pontos essenciais desse modelo:

  • Matriz de Transição: Você estruturou corretamente a matriz onde a soma de cada linha é igual a 1, respeitando a regra fundamental de que todas as possibilidades de saída de um estado devem totalizar 100%.
  • Propriedade de Markov: O seu código demonstra perfeitamente que o próximo estado depende apenas do estado atual, e não de todo o histórico anterior, simplificando processos complexos de previsão.
  • **Uso do np.random.choice**: A utilização da biblioteca NumPy para realizar a escolha baseada no vetor de probabilidades torna o sistema de previsão dinâmico e estocástico, simulando bem o comportamento real do clima.

Como você já domina a simulação de curto prazo, uma sugestão para aprofundar seus estudos é pesquisar sobre o Estado Estacionário. Nas Cadeias de Markov, isso nos permite descobrir qual é a probabilidade a longo prazo de estar em cada estado (por exemplo, qual a porcentagem de dias ensolarados em um ano inteiro), independentemente de como o clima começou hoje!

Espero que possa ter lhe ajudado!