Vous êtes sur la page 1sur 12

Département : G.L.

T
Promotion : Master 1
Matière : Outils d’aide à la décision stochastique 2
Etudiant : MESHOUB Abdelkrim

Ex02 :
Soit la matrice de transition suivante :
0.5 0.3 0 0.2
0.4 0.1 0.5 0
( )
0.1 0 0.4 0.5
0 0 0 1

1. Représenter le graphe de transition de cette chaîne :

>b=c(0.5,0.3,0,0.2,0.4,0.1,0.5,0,0.1,0,0.4,0.5,0,0,0,1)
>prod=matrix(b,4,4,byrow=T)
>library(markovchain)
>prod
>MT=new("markovchain",states=c("p1","p2","p3","p4"),transitionMatrix=prod)
>MT

1 2 3 4
1 0.5 0.3 0.0 0.2
2 0.4 0.1 0.5 0.0
3 0.1 0.0 0.4 0.5
4 0.0 0.0 0.0 1.0

>library(diagram)
>plotmat(t(prod),name=c("p1","p2","p3","p4"),pos=c(2,1,1),main="graphe de
transition",lwd=0.3,box.col=c(2,7,5,8),box.size=0.05,arr.col="blue")
(4) (4) (6) (3) (4)
2. Calculer 𝑓11 , 𝑓13 , 𝑓32 , 𝑝12 , 𝑝42 :

(𝟒)
𝒇𝟏𝟏 :
>f=firstPassage(MT,"p1",4)

1 2 3 4
1 0.5000 0.3000 0.0000 0.2000
2 0.1200 0.1500 0.1500 0.1000
3 0.0270 0.0750 0.0900 0.1490
4 0.0087 0.0375 0.0645 0.1294

>f11
(4)
>𝑓11 =0.0087

(𝟒)
𝒇𝟏𝟑 :

>f13
(4)
>𝑓13 =0.0645

(𝟔)
𝒇𝟑𝟐

>f=firstPassage(MT,"p3",6)

1 2 3 4
1 0.100000 0.000000 0.40000 0.500000
2 0.040000 0.030000 0.00000 0.220000
3 0.016000 0.027000 0.01500 0.098000
4 0.006400 0.018300 0.00900 0.054100
5 0.002560 0.011070 0.00645 0.034580
6 0.001024 0.006303 0.00450 0.024109
>f32
f32(6)= 0.006303
(𝟑)
𝒑𝟏𝟐 :

>MT3=MT^3
<MT3
>P12=MT3[1,2]
>P12

(𝟒)
𝒑𝟒𝟐 :

>MT4=MT^4
>MT4
>P42=MT4[4,2]
>P42

(3) (5)
3. Si 𝜋 (0) = (0.4 0.3 0.2 0.1 ) calculer𝑃(𝑋3 = 3), 𝑃(𝑋5 = 2), 𝑝13 , 𝑝12 . Recalculer
les mêmes quantités si 𝜋 (0) = (1 0 0 0 ) qu'est ce que vous remarquez ?

A- Si 𝜋 (0) = (0.4 0.3 0.2 0.1 ) :

𝑷(𝑿𝟑 = 𝟑) :
>P0 = c(0.4 , 0.3 , 0.2 , 0.1)
>P3= P0 * MT^3
>P3

1 2 3 4
[1,] 0.19 0.0876 0.1253 0.5971
P(x3=3)= 0.1253

𝑷(𝑿𝟓 = 𝟐) :

>P5= P0 * MT^5
>P5

1 2 3 4
[1,] 0.106981 0.049347 0.070448 0.773224
P(x5=2)= 0.049347
(𝟑)
𝒑𝟏𝟑 :
>P13= (MT^3)[1,3]
>P13

[1] 0.15
P13(3)=0.15

(𝟓)
𝒑𝟏𝟐 :
>P12= (MT^5)[1,2]
>P12

[1] 0.07023
P12(5)=0.07023

B- Si 𝜋 (0) = (1 0 0 0 ) :

𝑷(𝑿𝟑 = 𝟑) :
>P00 = c(0.4 , 0.3 , 0.2 , 0.1)
>P3= P00 * MT^3
>P3

1 2 3 4
[1,] 0.272 0.129 0.15 0.449

P(x3=3)= π(3)=0.15

𝑷(𝑿𝟓 = 𝟐) :

>P5= P00 * MT^5

1 2 3 4
[1,] 0.15155 0.07023 0.09705 0.68117
P(x5=2)= π (5)=0.07023
(𝟑)
𝒑𝟏𝟑 :
>P13= (MT^3)[1,3]
>P13

[1] 0.15
P13(3)=0.15

(𝟓)
𝒑𝟏𝟐 :
>P12= (MT^5)[1,2]
>P12

[1] 0.07023
P12(5)=0.07023

Observation : On observe que le vecteur des probabilités initiale influe sur π(n) à court et
moyen terme.

4. Démontrer que cette chaîne est absorbante :

>absorbingStates(MT)
[1] "4"

>is.accessible(object=MT,from="p1",to="p4")
[1] TRUE
>is.accessible(object=MT,from="p2",to="p4")
[1] TRUE
>is.accessible(object=MT,from="p3",to="p4")
[1] TRUE

5. Ecrire la matrice de transition sous sa forme canonique puis en déduire Q et R :

>can= canonicForm(MT)
>can
4 1 2 3
4 1.0 0.0 0.0 0.0
1 0.2 0.5 0.3 0.0
2 0.0 0.4 0.1 0.5
3 0.5 0.1 0.0 0.4

>Q=canonicForm(MT)[2:4,2:4]
>Q

1 2 3
1 0.5 0.3 0.0
2 0.4 0.1 0.5
3 0.1 0.0 0.4

>R=cbind(canonicForm(MT)[2:4,1])
>R
[,1]
1 0.2
2 0.0
3 0.5

6. Déterminer la matrice fondamentale de la chaîne :

>I=diag(3)
>I

>N=solve(I-Q)
>N

1 2 3
1 2.9508197 0.9836066 0.8196721
2 1.5846995 1.6393443 1.3661202
3 0.4918033 0.1639344 1.8032787
7. Déterminer la probabilité d’absorption en 4 en partant de 3 :

>B=N%*%R
>B

[,1]
1 1
2 1
3 1

>P3=B[3]
>P3
[1] 1

8. Déterminer le temps d’absorption moyen en partant de 2 :

>c=cbind(rep(1,3))
>c
>t=N%*%c
>t

[,1]
1 4.754098
2 4.590164
3 2.459016

>T2=t[2]
>T2
T2 = 𝟒.𝟓𝟗𝟎𝟏𝟔𝟒
Ex01 :
Soit la matrice de transition suivante :

1 1 1
0 0
3 3 3
1 2
0 0 0
3 3
𝑃= 1 2
0 0 0
3 3
1 2
0 0 0
3 3
(1 0 0 0 0)

1) Représenter le graphe de transition de cette chaine :

>Library (markovchain)
>Library (diagram)
>A= c( 1/3 , 1/3 , 0 , 0 , 1/3 , 1/3 , 0 , 2/3 , 0 , 0 , 0 , 1/3 , 0 , 2/3 , 0 , 0 , 0 , 1/3 , 0 , 2/3 , 1 , 0 , 0 , 0 , 0)
>m= sqrt(Length(A))
>m
>5
>B= Matrix (A, 5 , 5, byrow= T)
>MT= new(« markovchain », states= c(« 1 », « 2 »,«3 », «4 » , « 5 »), transitMatrix= B)
>MT

1 2 3 4 5
1 0.3333333 0.3333333 0.0000000 0.0000000 0.3333333
2 0.3333333 0.0000000 0.6666667 0.0000000 0.0000000
3 0.0000000 0.3333333 0.0000000 0.6666667 0.0000000
4 0.0000000 0.0000000 0.3333333 0.0000000 0.6666667
5 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000

>plotmat(t(B), name=c("1","2","3","4","5"),box.size=0.05,main="Graphe de transition" )


2) Démontrer que cette chaîne à espace d’état fini, admet une distribution stationnaire unique, puis la
déterminer :

>is.irreducible(MT)
[1] TRUE
>period(MT)
[1] 1
>DS=steadyStates(MT)
>DS
1 2 3 4 5
[1,] 0.3781513 0.1764706 0.1512605 0.1008403 0.1932773

3) Calculer lim 𝑃(𝑋𝑛 = 2) 𝑒𝑡 lim 𝑃(𝑋𝑛 = 5) :


𝑛→∞ 𝑛→∞

>xn=DS[2]
>xn
[1] 0.1764706

>n=DS[5]
>n
[1] 0.1932773

4) En déduire le temps moyen de retour à l’état 1 et à l’état 4 :

>M1= 1/ (DS [1])


>M1
[1] 2.644444
>M4=1/ (DS [4])
>M4
[1] 9.916667

Ex03 :
Créer une fonction qui permet de renvoyer le résultat "la chaine est absorbante" si une CMTD est
absorbante et le résultat "la chaine n'est pas absorbante" sinon

Vérifier avec les chaines suivantes :

0.5 0.3 0 0.2


0.4 0.1 0.5 0
( )
0.1 0 0.4 0.5
0 0 0 1

1 1 1
0 0
3 3 3
1 2
0 0 0
3 3
1 2
0 0 0
3 3
1 2
0 0 0
3 3
(1 0 0 0 0)

Ex04 :
Créer une fonction qui permet de déterminer la distribution stationnaire d'un processus de naissance et de
mort

𝜆0 𝜆1 … 𝜆𝑗−1
𝜋𝑗 = 𝜋 𝑗 = 1,2, …
𝜇1 𝜇2 … 𝜇𝑗 0
1
{ 𝜋0 =
1+𝑆

𝜆0 𝜆1 … 𝜆𝑗−1
𝑆=∑
𝜇1 𝜇2 … 𝜇𝑗
𝑗=1

Vérifier pour

Soit un processus de naissance et de mort irréductible d’espace d’état E={0,1,2,3} tel que:
𝜆0 = 𝜆1 = 3, 𝜆2 = 2, 𝜇1 = 4, 𝜇2 = 8, 𝜇3 = 4

[1] 0.4604317 0.3453237 0.1294964 0.0647482

Programme :

>DS= function (Lambda, Mu, n)


>a= 1
>b= 1
>S=0
>For (i in 1:n)
{
+a=a*Lambda[i]
+b=b*Mu[i]
+S=S+(a/b)
}
>
>P0= 1/(1+S)
>Print (P0)

>a=1
>b=1
>P=rep(0,n)
>For (i in 1 :n)
{
+a=a*P[i]
+b=b*P[i]
}
>For (i in 1 :n)
{
+Print (P[i])
}

>n=3
>Lambda=c(3,3,2)
>Mu= c(4,8,4)
>DS(Lambda, Mu, n)

[1] 0.4604317
[1] 0.3453237
[1] 0.1294964
[1] 0.0647482

Vous aimerez peut-être aussi