TP1 – Algorithme de bandit

Bandit à deux bras A/B

On fixe :

$\theta_A = 0.4$, $\theta_B = 0.3$.

Objectif : étudier l’impact de l’exploration sur l’estimation et le gain moyen.

In [31]:
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(42)

theta_A = 0.4
theta_B = 0.3

Fonction de simulation générale

Ecrire une fonction qui, à partir du nombre total de tirage $n$ et des temps Ic où l'on force à tirer les bras A et B, ressort le résultat pour l'algorithme du bandit à dex bras (évolution des estimations de $\theta_{A},\theta_{B}$ et du gain moyen).

In [ ]:
 

1. Première configuration : $I_c = \varnothing$

Faire un graphique qui trace l'évoultion des estimateurs, et un autre qui traite l'évolution du gain moyen.

In [ ]:
 

Boxplot des gains moyens (50 répétitions)

Faire 50 fois l'algorithme de bandit, et tracer le boxplot des gains moyens.

In [ ]:
 

2. Deuxième configuration : $c_n = \lceil n^{3/2} \rceil$

Faire un graphique qui trace l'évoultion des estimateurs, et un autre qui traite l'évolution du gain moyen.

In [ ]:
 
In [ ]:
 

Histogramme de $\sqrt{n}(G_n-\theta_A)$

Tracer l'histogramme pour 200 réalisations.

In [ ]:
 

3. Troisième configuration : $c_n = n^3$

Faire un graphique qui trace l'évoultion des estimateurs, et un autre qui traite l'évolution du gain moyen.

In [32]:
def Ic_n_3(n):
    return {int(k**3) for k in range(1, int(n**(1/3)) + 2)}

Ic = Ic_n_3(n)
In [ ]:
 

Histogramme de $\sqrt{n}(G_n-\theta_A)$

Tracer l'histogramme pour 200 réalisations.

In [ ]:
 
In [ ]: