Eu utilizei uma cadeia de Markov para representar a mudança do clima ao longo dos dias. Onde cada estado climático possui probabilidades de transição para os demais estados, permitindo prever o próximo dia com base apenas no estado atual. Para isso, defini os estados possíveis, a matriz de transição e uma função em Python usando numpy para simular a previsão do clima.
import numpy as np
# Estados possíveis do clima
states = ["Ensolarado", "Nublado", "Chuvoso"]
# Matriz de transição
transition_matrix = [
[0.8, 0.15, 0.05], # De Ensolarado para Ensolarado, Nublado, Chuvoso
[0.2, 0.6, 0.2], # De Nublado para Ensolarado, Nublado, Chuvoso
[0.25, 0.25, 0.5] # De Chuvoso para Ensolarado, Nublado, Chuvoso
]
# Função para obter o índice de um estado
def get_state_index(state):
return states.index(state)
# Função para prever o clima
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
# Estado inicial e quantidade de dias
initial_state = "Ensolarado"
num_days = 10
# Executando a previsão
forecast = predict_weather(initial_state, num_days)
# Exibindo os resultados
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}")
Minha reflexão final é que a cadeia de Markov é uma forma interessante de representar situações em que o próximo estado depende do estado atual. No caso do clima, isso faz bastante sentido, porque a condição de um dia influencia a chance de mudança no dia seguinte. Achei a atividade útil para entender como probabilidades podem ser usadas na prática para construir previsões de forma simples e objetiva.