Part 3 Simulation With R
Part 3 Simulation With R
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 1 / 35
Why simulation.
Computer calculation
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 2 / 35
Why simulation
RANDOM
SIMULATION
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 3 / 35
Monte Carlo simulation
Monte Carlo (MC) simulation is based on the law of large number in
probability theory:
Law of large number Let X1 , X2 , · · ·, is an infinite sequence of i.i.d
random variables with expected value E (X1 ) = E (X2 ) = · · · = µ; the
sample average
1
X̄n = (X1 + X2 + · · · + Xn )
n
X̄n → µ for n → ∞
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 4 / 35
Why simulation
Example 1: Flip 100 fair coins simutaneously, how many coins show head
(H) ? → design problem on computer:
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 5 / 35
Why simulation
Example 1: Flip 100 fair coins simutaneously, how many coins show head
(H) ? → design problem on computer:
## [1] 49
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 5 / 35
Why simulation
Example 1: Flip 100 fair coins simutaneously, how many coins show head
(H) ? → design problem on computer:
## [1] 49
Example 2: Flip 100 fair coins simutaneously, what the probability that the
numbers of coin showing head (H) is larger than 65
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 5 / 35
Why simulation
Example 1: Flip 100 fair coins simutaneously, how many coins show head
(H) ? → design problem on computer:
## [1] 49
Example 2: Flip 100 fair coins simutaneously, what the probability that the
numbers of coin showing head (H) is larger than 65
y<-vector(mode="numeric",10^6)
for (i in 1:10^6){x<-sample(c(0,1),100,replace=TRUE)
y[i]<-sum(x)}
sum(y>65)/10^6
## [1] 0.00087
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 5 / 35
Why simulation
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 6 / 35
Why simulation
11 12 13 14 15 16
21 22 23 24 25 26
31 32 33 34 35 36
41 42 43 44 45 46
51 52 53 54 55 56
61 62 63 64 65 66
10 5
→ answer is =
36 18
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 6 / 35
Why simulation
Example 3 (continue): Rolling 10 dies simutaneously, what is probability
that the sum of 10 faces is less than or equal to 30 → NOT EASY →
SIMULATION
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 7 / 35
Why simulation
Example 3 (continue): Rolling 10 dies simutaneously, what is probability
that the sum of 10 faces is less than or equal to 30 → NOT EASY →
SIMULATION
## [1] 0.204038
Example 3 (continue): Rolling 10 dies simutaneously. Finding n such that
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 7 / 35
Why simulation0.06
0.04
Probability
0.02
0.00
0 10 20 30 40 50 60
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 8 / 35
Why simulation
Example 4 In a card game where 52 cards are dealt evenly to 4 players.
What is probability of Quads (Tu quy)
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 9 / 35
Why simulation
Example 4 In a card game where 52 cards are dealt evenly to 4 players.
What is probability of Quads (Tu quy)
x<-c(1:13,1:13,1:13,1:13)
TestTuQuy<-function(y){
h<-vector(mode="numeric",13)
for (i in 1:13){h[i]<-sum(y==i)}
ifelse(max(h)==4,1,0) }
Total<-0
for (i in 1:10){#chia bai 10 lan
j<-sample(1:52)
z<-x[j]
if (TestTuQuy(z[1:13])+TestTuQuy(z[14:26])+TestTuQuy(z[27:39])
Total
## [1] 2
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 9 / 35
Simulation to solve probability problem
Problem 1: Blind spider
An ant and a blind spider are on opposite corners of a cube. The ant is
stationary and the spider moves at random from one corner to another
along the edges only. What is the expected number of turns before the
spider reaches the ant ?
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 10 / 35
Simulation to solve probability problem
Problem 1: Blind spider Vị trí hiện tại của con nhện là (0,0,0) trong khi vị trí của con kiến là
(1,1,1).
Current position of the spider is (0,0,0) while position of the ant is
(1,1,1).
How does the spider randomly move ?
Current position of the spider is (x,y,z) with x , y , z ∈ {0, 1}
Next position of the spider is determined by randomly choosing between
x, y, z and replace it by (1 - value of itself).
For example, the current position of the spider is (0,1,0). The sample
function sample(1:3) returns value 1, the spider is moving as follows:
trả về giá trị 1
(0, 1, 0) → (1, 1, 0)
The spider reaches the ant if the current position of the spider is (1,1,1)
Con nhện đến chỗ con kiến nếu vị trí hiện tại của con nhện là (1,1,1)
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 11 / 35
Simulation to solve probability problem
Problem 1: Blind spider How many steps that the spider needs to reach
the ant:
SpiderPosition<-c(0,0,0)
AntPosition<-c(1,1,1)
MovingNumber<-0
while(sum(abs(SpiderPosition-AntPosition))>0){
k<-sample(1:3,1)
SpiderPosition[k]<-1-SpiderPosition[k]
# print(SpiderPosition) # if you want to see the spider po
MovingNumber<-MovingNumber+1
}
MovingNumber
## [1] 3
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 12 / 35
Simulation to solve probability problem
Problem 1: Blind spider Let the spider catches the ant 100,000 times (or
more) to calculate the expected number of movement
Result<-vector(mode="numeric",10^5)
for (i in 1:10^5){
SpiderPosition<-c(0,0,0)
AntPosition<-c(1,1,1)
MovingNumber<-0
while(sum(SpiderPosition==AntPosition)<3){
k<-sample(1:3,1)
SpiderPosition[k]<-1-SpiderPosition[k]
MovingNumber<-MovingNumber+1}
Result[i]<-MovingNumber}
mean(Result)
## [1] 9.96394
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 13 / 35
Simulation to solve probability problem
Problem 1: Blind spider (continue) We can calculate the probability
mass function of number of movement:
0.20
0.15
Probability
0.10
0.05
5 10 15 20
Number of movement
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 14 / 35
Simulation to solve probability problem
Problem 2 - Monkey typing: Suppose a monkey is typing randomly at a
typewriter whose only keys are the capital letters A, D, M, U. What is the
expected time it will take for the monkey to type the following words
"MAD" giả sử một con khỉ đang gõ ngẫu nhiên vào một
"MUM" máy đánh chữ có phím duy nhất là các chữ in hoa A, D, M, U.
Cái gì là
thời gian dự kiến để con khỉ gõ những dòng sau
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 15 / 35
Simulation to solve probability problem
KeyBoard<-c("A","D","M","U")
str<-KeyBoard[sample(1:4,3,replace=TRUE)]
MyString<-paste(str[1],str[2],str[3])
TypingNumber<-3
while (sum(str==c("M","A","D"))<3){ str[1]<-str[2]
str[2]<-str[3]
str[3]<-KeyBoard[sample(1:4,1)]
MyString<-paste(MyString,str[3])
TypingNumber<-TypingNumber+1}
TypingNumber
## [1] 222
substr(MyString,max(0,nchar(MyString)-20),nchar(MyString))
result<-vector(mode="numeric",10)
for (i in 1:10){#10^4 when running
KeyBoard<-c("A","D","M","U")
str<-KeyBoard[sample(1:4,3,replace=TRUE)]
MyString<-paste(str[1],str[2],str[3])
TypingNumber<-3
while (sum(str==c("M","U","M"))<3){ str[1]<-str[2]
str[2]<-str[3]
str[3]<-KeyBoard[sample(1:4,1)]
MyString<-paste(MyString,str[3])
TypingNumber<-TypingNumber+1}
result[i]<-TypingNumber}
mean(result) # "MUM": 68 and "MAD": 64
## [1] 92.5
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 17 / 35
Simulation to solve probability problem
Problem 3 - Drunk passenger(s): You are at the end of a line of 100
airline passengers is waiting to board a plane. The nth passenger in line has
ticket for the seat number n. Being drunk, the first person in line picks a
random seat (equally likely for each seat). All of the other passengers will
go to their proper seats unless it is already occupied; If it is occupied, they
will then find a free seat to sit in, at random. What is the probability that
you will sit in your proper seat ? What does this probability change if there
are k drunk passengers ?
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 18 / 35
Simulation to solve probability problem
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 19 / 35
Simulation to solve probability problem
Seat<-vector(mode="numeric",100)
SeatAvailable<-1:100
Seat[1]<-sample(1:100,1) #Seat of Drunk man
SeatAvailable<-SeatAvailable[-Seat[1]] #Remove seat 1
for (i in 2:100){
if (sum(SeatAvailable==i)==0){
Seat[i]<-sample(SeatAvailable,1)}
else{Seat[i]<-i}
SeatAvailable<-SeatAvailable[-Seat[i]]# Remove seat i
}
Seat[100]
## [1] 13
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 20 / 35
Simulation to solve probability problem - Drunk
passenger
result<-vector(mode="numeric",10)#using 10^5 simulation in you
for (j in 1:10){
Seat<-vector(mode="numeric",100)
SeatAvailable<-1:100
Seat[1]<-sample(1:100,1) #Seat of Drunk man
SeatAvailable<-SeatAvailable[-Seat[1]] #Remove seat 1
for (i in 2:100){
if (sum(SeatAvailable==i)==0){
Seat[i]<-sample(SeatAvailable,1)}
else{Seat[i]<-i}
SeatAvailable<-SeatAvailable[-Seat[i]]}
result[j]<-Seat[100]}
result
## [1] 100 10 100 26 100 100 42 41 33 100
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 21 / 35
Simulation to solve probability problem
Problem 3 - Drunk passenger(s) What is the probability that you will sit
on your proper seat if 1st passenger, 2nd passenger, · · ·, k th passenger are
drunk ?
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 22 / 35
Simulation to solve probability problem
Problem 4 - Messing with envelops: There are n letters and n
envelopes. Your servant puts the letters randomly in the envelopes so that
each letter is in one envelope and all envelopes have exactly one letter.
Calculate the expected number of envelopes with correct letter inside them.
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 23 / 35
Simulation to solve probability problem
Problem 4 - Messing with envelops: There are n letters and n
envelopes. Your servant puts the letters randomly in the envelopes so that
each letter is in one envelope and all envelopes have exactly one letter.
Calculate the expected number of envelopes with correct letter inside them.
n<-20
x<-1:n
for (i in 1:10){#Using 10^6 simulations
y<-sample(1:n,n,replace=FALSE)
result[i]<-sum(x==y)}
result
## [1] 0 1 1 1 0 1 0 0 0 0
mean(result)
## [1] 0.4
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 23 / 35
Simulation to solve probability problem
Problem 5 - Tennis tournement A tennis tournament has k = 4 levels
and n = 2k players. At the begining, random pairs are formed and one
player from each pair proceeds to next level. Given that player number i has
better skill than player j if i < j and the one with better skills always wins.
Kỹ năng tốt hơn người chơi j nếu tôi <j và người có kỹ năng tốt hơn luôn chiến thắng.
What is the probability that a player outside the top 5 plays the final
match.
Your skill is 5, calculate the probability that you will play in Semi-final.
Giải đấu quần vợt Một Xác suất người
giải đấu quần vợt có K chơi ngoài top 5
= 4 cấp độ chơi trận chung
và n = người chơi 2K. kết là gì
Khi bắt đầu, các cặp cuộc thi đấu.
ngẫu nhiên được hình Kỹ năng của bạn
thành và một là 5, tính xác suất
Người chơi từ mỗi cặp mà bạn sẽ chơi
tiến hành đến cấp độ trong trận bán
tiếp theo. Cho rằng số kết.
người chơi tôi có
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 24 / 35
Simulation to solve “tennis tournement” problem
k<-4
position<-1:(2^k)
player<-sample(1:(2^k),2^k,replace=FALSE)
for (i in 1:(k-1)){# (k-1) levels, not final match yet
OutTour<-c(0)
for (j in 1:2^(k-i)){
a<-ifelse(player[2*j-1]>player[2*j],2*j-1,2*j)
OutTour<-c(OutTour,a)}
player<-player[-OutTour[2:(2^(k-i)+1)]]
}
player # Final match
## [1] 2 1
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 25 / 35
Simulation to solve “tennis tournement” problem
k<-4
position<-1:(2^k)
result<-vector(mode="numeric",10)
for (n in 1:10){
player<-sample(1:(2^k),2^k,replace=FALSE)
for (i in 1:(k-1)){# (k-1) levels, not final match yet
OutTour<-c()
for (j in 1:2^(k-i)){
a<-ifelse(player[2*j-1]>player[2*j],2*j-1,2*j)
OutTour<-c(OutTour,a)}
player<-player[-OutTour]
}
if (max(player)>5){result[n]<-1}}
mean(result)
## [1] 0
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 26 / 35
Simulation to solve “tennis tournement” problem
Calculate the probability that you, with skill is equal to 5, will play in
Semi-final ?
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 27 / 35
Simulation to solve probability problem
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 28 / 35
Simulation to solve probability problem
k<-5
YourCoupon<-vector(mode="numeric",5)
Eating<-c() Thu thập phiếu giảm giá may mắn:
EatNumber<-0 Công ty PepsiCo đang tổ chức
Cuộc thi mà tất cả những người thu
while(sum(YourCoupon)<5){ thập một trong số 10 phiếu giảm giá
NewOne<-sample(1:k,1) khác nhau
Eating<-c(Eating,NewOne) Một vé bóng đá. Bạn nhận được một
phiếu giảm giá với mỗi lần mua một
YourCoupon[NewOne]<-1 con chip Lay Lay
} Gói, và mỗi phiếu giảm giá có khả
length(Eating) năng như nhau. Số lượng dự kiến của
Gói bạn phải ăn để lấy vé?
## [1] 21
Eating
## [1] 5 3 3 5 3 3 1 1 5 1 3 1 5 3 1 3 3 4 5 3 2
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 29 / 35
Simulation to solve probability problem
k<-5
result<-vector(mode="numeric",10)
for (i in 1:10){#using 10^6 simulation
YourCoupon<-vector(mode="numeric",5)
Eating<-c()
EatNumber<-0
while(sum(YourCoupon)<5){
NewOne<-sample(1:k,1)
Eating<-c(Eating,NewOne)
YourCoupon[NewOne]<-1
}
result[i]<-length(Eating)}
mean(result)
## [1] 13.1
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 30 / 35
Simulation to solve probability problem
Problem 7 - Winning a free movies ticket: At a movie theater, the
manager announces that they will give a free ticket to the first person in
line whose birthday is the same as someone who has already bought a
ticket. You have the option of getting in line at any time. Assuming that
you don’t know anyone else’s birthday. What position in line gives you the
greatest chance to win the free ticket?
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 31 / 35
Simulation to solve probability problem
## [1] 39 14 18 17 11
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 32 / 35
Simulation to solve probability problem
Problem 8 - All die or one survive: In a room stand n = 100 armed and
angry people. At each chime of a clock, everyone simultaneously spins
around and shoots a random other person. The persons shot fall dead and
the survivors spin and shoot again at the next chime. Eventually, either
everyone is dead or there is a single survivor. What is the probability that
there will be a survivor.
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 33 / 35
Simulation to solve probability problem
Problem 9 - Inlands and bridge: There are 10 inlands I1 , I2 , · · ·, I10 , and
you want to travel from inland I1 to inland I10 . For each j = 1, 2, . . . ,9,
inlands Ij and Ij+1 are connected by 2 bridges. These bridges are looked like
to each other but if you use the bad one, it will break down immediately
and you have to swim back to inland I1 . What is expected number of
bridges you have to pass to go to inland I10 ?
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 34 / 35
Simulation to solve probability problem
Dr. Nguyen Quang Huy Part 3 Simulation with R Dec 30, 2019 35 / 35