Chargement de l'audio en cours
Plus

Plus

Chaînes de Markov
Page numérique

Mode édition
Ajouter

Ajouter

Terminer

Terminer




Chaînes de Markov





1
Tester une chaîne de Markov ☆☆

Voir fiche n° 2 bis : Les listes
Voir fiche n° 4 : Les instructions conditionnelles

1. Rappeler le critère pour qu’une matrice soit la matrice d’une chaîne de Markov.


2. Compléter la fonction ci-dessous qui prend en paramètre une matrice 2×22\times 2 et qui renvoie True si cette matrice est une chaîne de Markov et False sinon.

3. Modifier cette fonction pour qu’elle fonctionne avec une matrice 3×33\times 3.

4. Modifier cette fonction pour qu’elle fonctionne avec une matrice n×n n\times n.

def Markov(A):
  if A[0][0] <= 1 and A[0][0] >= 0  :
    if A[0][1] <= 1 and A[0][1] >= 0 :
      if A[1][0] <= 1 and A[1][0] >= 0 :
        if A[1][1] <= 1 and A[1][1] >= 0 :
          if ... :
            return True
  return False

Voir les réponses

2
Générateur aléatoire de chaîne de Markov ☆☆

Voir fiche n° 2 : Les variables
Voir fiche n° 2 bis : Les listes


1. Montrer que la matrice (0,60,40,80,2)\begin{pmatrix} 0{,}6 & 0{,}4 \\ 0{,}8 & 0{,}2 \end{pmatrix} est la matrice d’une chaîne de Markov.


2. Compléter la fonction GénérationMarkov suivante permettant de générer aléatoirement une matrice associée à une chaîne de Markov à deux états.

from random import random

def GénérationMarkov():
  a = random()
  b = random()
  return [[a, ...], [b, ...]]
Voir les réponses

3
Généralisation sur les chaînes de Markov ★★★

Voir fiche n° 2 : Les variables
Voir fiche n° 2 bis : Les listes

On souhaite écrire une fonction Python qui construit de manière aléatoire une matrice de transition associée à une chaîne de Markov à trois états.

1. Expliquer pourquoi le programme matrice_transition_aleatoire_essai1 ne fonctionne pas.


2. Pour corriger le défaut trouvé ci-dessus, la fonction matrice_transition_aleatoire_essai2 modifie la définition de la variable c. Est-ce suffisant ?


3. En cas de réponse négative à la question précédente, proposer une fonction Python répondant à la question posée.

from random import random
 
def matrice_transition_aleatoire_essai1():
  M = []
  for ligne in range(3):
    a = random()
    b = random()
    c = random()
    M.append([a, b, c])
  return M
  
def matrice_transition_aleatoire_essai2():
  M = []
  for ligne in range(3):
    a = random()
    b = random()
    c = 1 - a - b
    M.append([a, b, c])
  return M
Voir les réponses

4
Compléter la matrice de transition d’une chaîne de Markov
☆☆

Voir fiche n° 2 : Les variables
Voir fiche n° 2 bis : Les listes
Voir fiche n° 3 : Les fonctions
Voir fiche n° 5 : Les boucles bornées

La fonction Python matrice_transition prend en argument une matrice à trois lignes et deux colonnes, correspondant aux deux premières colonnes d’une matrice de transition d’une chaîne de Markov à trois états, et retourne la matrice de transition complète. Compléter le code ci-dessous.

def matrice_transition(A):
  M = []
  for i in range(3):
    ligne = ...
    coefficient_manquant = 1 - ... - ...
    ligne.append(...)
    M.append(...)
  return M
Voir les réponses
Utilisation des cookies
En poursuivant votre navigation sans modifier vos paramètres, vous acceptez l'utilisation des cookies permettant le bon fonctionnement du service.
Pour plus d’informations, cliquez ici.