Académique Documents
Professionnel Documents
Culture Documents
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
>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 ?
𝑷(𝑿𝟑 = 𝟑) :
>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
𝑷(𝑿𝟓 = 𝟐) :
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.
>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
>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
>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
>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)
>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
>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
>xn=DS[2]
>xn
[1] 0.1764706
>n=DS[5]
>n
[1] 0.1932773
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
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
Programme :
>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