Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

utilizando cadeias de Markov

Passo 1 - Definir os estados e a matriz de transição
import numpy as np

Estados possíveis do clima

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

Matriz de transição

Cada linha representa o estado atual

Cada coluna representa a probabilidade de ir para o próximo estado

matriz_transicao = np.array([
[0.7, 0.2, 0.1], # Ensolarado -> Ensolarado, Nublado, Chuvoso
[0.3, 0.4, 0.3], # Nublado -> Ensolarado, Nublado, Chuvoso
[0.2, 0.3, 0.5] # Chuvoso -> Ensolarado, Nublado, Chuvoso
])
Passo 2 - Implementar a lógica da Cadeia de Markov
def prever_clima(estado_inicial, dias):
clima_atual = estado_inicial
previsao = [clima_atual]

for _ in range(dias):
    indice_atual = estados.index(clima_atual)

    # Escolhe o próximo estado conforme as probabilidades
    proximo_estado = np.random.choice(
        estados,
        p=matriz_transicao[indice_atual]
    )

    previsao.append(proximo_estado)
    clima_atual = proximo_estado

return previsao

Passo 3 - Testar o modelo
estado_inicial = "Ensolarado"
dias = 10

resultado = prever_clima(estado_inicial, dias)

print("Previsão do clima:")
for dia, clima in enumerate(resultado):
print(f"Dia {dia}: {clima}")

Se hoje está Ensolarado, existe:
70% de chance de continuar Ensolarado.
20% de chance de ficar Nublado.
10% de chance de chover.

A cada dia, o programa "sorteia" o próximo clima usando essas chances.

Por exemplo:

Dia 0: Ensolarado
Dia 1: Ensolarado
Dia 2: Nublado
Dia 3: Chuvoso
Dia 4: Chuvoso
Dia 5: Nublado
Dia 6: Ensolarado
Dia 7: Ensolarado
Dia 8: Nublado
Dia 9: Chuvoso
Dia 10: Chuvoso

Isso é uma Cadeia de Markov, porque o clima de amanhã depende apenas do clima de hoje, e não dos dias anteriores. É como se o clima tivesse memória de apenas um dia.

1 resposta

Oi, Katiani! Como vai?
Agradeço por compartilhar suas reflexões e aprendizados com a comunidade Alura.

Gostei da forma como você organizou os passos da cadeia de Markov, desde a definição dos estados até a explicação de que o próximo clima depende apenas do estado atual. Isso mostra bem a ideia de memória curta do modelo e ajuda a visualizar como a matriz de transição orienta cada nova previsão.

Sua construção ficou clara e bem conectada com a atividade. Uma dica é testar o modelo várias vezes com o mesmo estado inicial e comparar os resultados, observando como as previsões mudam por causa do sorteio probabilístico feito pelo np.random.choice(). Isso ajuda a perceber que a cadeia de Markov não gera uma previsão fixa, mas sim simulações baseadas nas probabilidades definidas. Você chegou a testar a simulação mais de uma vez para observar como os resultados mudam mesmo mantendo a mesma matriz de transição?

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!

Conteúdos relacionados
Gamma: entenda como criar apresentações de impacto com inteligência artificial
Inteligência artificial na educação: 9 ferramentas de IA para potencializar os estudos em 2026