Tải bản đầy đủ (.doc) (15 trang)

mô hình hóa các hệ thống ngẫu nhiên mô phỏng trạm xe bus

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (309.55 KB, 15 trang )

BÀI TẬP LỚN
MÔ HÌNH HÓA HỆ THỐNG NGẪU NHIÊN
1.Tên đề tài.
Mô phỏng trạm xe bus :
- Sinh viên đi từ ký túc xá đến trường bằng xe bus,mỗi xe chứa được 60
sinh viên .Thời gian đi đến trường bắt đầu từ 6h30 đến 7h30,sinh viên đi đến
trạm được mô tả bằng dòng tối giản với cường độ λ=1sv/s.Cứ sau 15’ thì có
một chuyến xe bus đến trường .Nếu số sinh viên chờ xe < 60 sinh viên thì xe
vẫn chạy đúng giờ.Nếu số sinh viên chờ xe > 60 thì số sinh viên thừa sẽ phải
chờ chuyến sau.Sinh viên than phiền rằng không đủ xe để đi đến trường nên
sau 7h30 vẫn còn nhiều sinh viên bị kẹt lại không kịp đến trường đúng giờ.
Để đảm bảo không có sinh viên bị chậm giờ học thì thời gian giữa các
chuyến xe phải là bao nhiêu?
2.Phân tích đề tài và tóm tắt phương pháp mô hình hóa.
- Đề tài đưa ra trên cơ sở phân tích hoạt động của trạm xe bus.
- Xây dựng phương pháp mô hình hóa hệ ngẫu nhiên để tìm ra phương án tối
ưu nhất cho hoạt động của các chuyến xe giúp việc vận chuyển sinh viên đạt
hiệu quả ,không có sinh viên nào bị kẹt tại trạm xe bus.
Ta xây dựng thuật toán mô phỏng qua các bước :
• Xây dựng mô hình sinh viên đi đến trạm xe bus.Khoảng cách giữa
các trạm xe bus là t
i
=-
λ
1
ln(U
i
), U
i



U(0,1)
• Xây dựng mô hình vận chuyển xe bus.Số chuyến xe phân bố đều
đặn,sau T
xe
thì có một chuyến xe bus
• Xếp chồng 2 mô hình đó với nhau
• Đếm số sinh viên chờ ở trạm xe bus
• Đếm số sinh viên còn lại tại trạm sau mỗi chuyến xe
• Thay đổi các thời gian T
xe
để được thời gian chu kỳ xe bus hợp lý
3.Phân tích các biến ngẫu nhiên.
Hệ ngẫu nhiên là hệ trong đó có các biến ngẫu nhiên .Các biến ngẫu nhiên
được đặc trưng bởi luật phân phối xác suất.
Các sự kiện ngẫu nhiên thường có các tính chất sau:
-Dòng dừng vì cường độ xảy ra sự kiện :λ=const
-Các sự kiện xảy ra hoàn toàn độc lập với nhau(không hậu quả)
-Tại môt thời điểm chỉ có một sự kiện xảy ra
Đó chính là dòng poisson dùng hay còn gọi là dòng tối giản.Khoảng cách
giữa các sự kiện trong dòng tối giản tuân theo luật phân phối mũ exp(λ)
Phân phối poisson có:
+)hàm khối lượng:
!x
e
x
λ
λ

P(x) =
!x

e
x
λ
λ

nếu x

(0,1)
0 phần còn lại
+)Hàm phân phối:
0 nếu x< 0
F(x)=
[ ]

=

x
i
i
i
e
0
!
λ
λ
nếu x<=0
+)Thông số λ>0
+)kỳ vọng toán M(x)= λ
+)Phương sai:
2

S
= λ
4.Phân tích thuật giải:
Ta nhận thấy bài toán ở đây có sự kiện ngẫu nhiên tuân theo luật phân phối
mũ(dòng poisson dừng)
Biến ngẫu nhiên ở đây chính là thời gian giữa các sinh viên đến trạm xe
bus(t)
5. Lưu đồ tính

START
Tx=Txe , t=0 , c=0 , dk=0 , a=lamda
dk=1
U=RND , t=t+(-1/lamda)ln(U)
T<3600
c = c + 1
t>=tx
c>60
tx=tx+Txe
c=c-60
c=0
dk=0
STOP
1
0
0
0
0
1
1
6.Điều kiện mô phỏng.

Điều kiện đầu:thời gian t=0,c=0,s=0
Điều kiện mô phỏng : nhập giá trị λ>0 và Txe>0
Điều kiện ngừng mô phỏng :khi t=3600(s)
Ta sẻ sử dụng các biến sau để lập trình mô phỏng cho hệ:
t : tổng thời gian đi đến bến xe bus của sinh viên
Txe : chu kỳ thời gian của xe bus
Tx : tổng thời gian mà xe bus đã đi(có giá tri đầu là: tx=Txe)
a : giá trị cường độ lamda(λ) (sẻ được nhập khi mô phỏng)
dk :để điều khiển dừng khi hết thời gian mô phỏng (giá trị ban đầu dk=1)
c: số sinh viên đang chờ ở bến xe bus
s : số chuyến xe bus đã chạy
7.Chương trình mô phỏng trên VB
Option Explicit
Dim i, j, k, kh, tx, txe, txe1, phut, times, c, s, dk As Integer
Dim t, a, u As Double
Dim ast, bst, at, bt As String
Dim X(160), Y(160) As Integer
'***thu tuc tinh****
'***khai bao bien***
Public Sub tinh()
Const e = 2.7182
a = CDbl(txtCDSV.Text * 100)
u = Rnd
t = t - 100 * Log(u) / (a * Log(e))
If t < 3600 Then
c = c + 1
Else: t = 3600
End If
End Sub
'******thu tuc ve Form 2********

Public Sub hienthi()
lbSVCC.Caption = c
lbSCX2.Caption = s
pt4.Cls
pt3.Cls
For j = 1 To c
pt4.Line ((40 * j - 30), 10)-((40 * j), 365), RGB(0, 250, 50), BF
Next
For j = 1 To s
pt3.Line ((200 * j - 150), 10)-((200 * j), 365), RGB(0, 250, 50), BF
Next
phut = Int(t / 60) + 30
If phut >= 60 Then
phut = phut - 60
txt1.Text = 7
End If
txt2.Text = phut
End Sub
Private Sub cmdchay_Click()
t = 0
s = 0
c = 0
If txttxe.Text = "" Then
MsgBox "Nhap tg giua cac chuyen xe", vbOK
Else
txe = CDbl(txttxe.Text) * 60
End If
tx = txe
dk = 1
End Sub

'*******nut lenh hien thi Form2*****************
Private Sub cmdDB_Click()
txt1.Text = 6
txt2.Text = 30
t = 0
s = 0
c = 0
If txttxe.Text = "" Then
MsgBox "Nhap tg giua cac chuyen xe", vbOK
Else
txe = CDbl(txttxe.Text) * 60
End If
tx = txe
dk = 1
pt2.Visible = True
Timer1.Enabled = True
Timer2.Enabled = True
End Sub
Private Sub cmddung_Click()
Timer1.Enabled = False
Timer2.Enabled = False
pt2.Left = -1920
pt2.Visible = False
End Sub
'**********nut lenh ket thuc chuong trinh**********
Private Sub Command1_Click()
Beep
End
End Sub
'*******thu tuc dieu khien chuong trinh bang bo timerl********

Private Sub Timer1_Timer()
Timer1.Interval = 50
If (dk = 1) Then
tinh
Else:
pt2.Visible = False
Timer1.Enabled = False
Timer2.Enabled = False
End If
If t >= tx Then ' co xe bus den
If c > 60 Then
c = c - 60
Else: c = 0
End If
s = s + 1
pt2.Left = -1850
Timer2.Enabled = True
tx = tx + txe
End If
kh = c
If kh <= 135 Then
If kh Mod 3 = 1 Then
For i = 0 To (kh - 1) / 3 - 1
Picture1(i).Visible = True
Pic2(i).Visible = True
Pic4(i).Visible = True
Next
For i = (kh - 1) / 3 To 44
Picture1(i).Visible = False
Pic2(i).Visible = False

Pic4(i).Visible = False
Next
Picture1((kh - 1) / 3).Visible = True
End If
If kh Mod 3 = 0 Then
For i = 0 To (kh / 3) - 1
Picture1(i).Visible = True
Pic2(i).Visible = True
Pic4(i).Visible = True
Next
For i = (kh - 1) / 3 To 44
Picture1(i).Visible = False
Pic2(i).Visible = False
Pic4(i).Visible = False
Next
End If
If kh Mod 3 = 2 Then
For i = 0 To (kh - 2) / 3 - 1
Picture1(i).Visible = True
Pic2(i).Visible = True
Pic4(i).Visible = True
Next
For i = (kh - 1) / 3 To 44
Picture1(i).Visible = False
Pic2(i).Visible = False
Pic4(i).Visible = False
Next
Picture1((kh - 2) / 3).Visible = True
Pic2((kh - 2) / 3).Visible = True
End If

Else: For i = 0 To 44
Picture1(i).Visible = True
Pic2(i).Visible = True
Pic4(i).Visible = True
Next
End If
If t >= 3600 Then
dk = 0
End If
hienthi
End Sub
Private Sub lblLabel6_Click()
End Sub
Private Sub Timer2_Timer()
txe1 = CDbl(txttxe.Text)
Timer2.Interval = Int(0.5 * txe1 + 1)
If pt2.Left >= 7440 Then
Timer2.Enabled = False
End If
pt2.Left = pt2.Left + 30 + 200 / txe1
End Sub
Private Sub Timer3_Timer()
Dim X As String
Dim Y As String
X = Left(Form1.Caption, 1)
Y = Mid(Form1.Caption, 2)
Form1.Caption = Y & X
End Sub
'*************thu tuc dieu khien bang bo timer********************
Private Sub Timer1_timer()

Timer1.Interval = 40
If dk = 1 Then
If t >= (txe - 10) Then
imI.Visible = True
imI.Left = imI.Left + 150
End If
If imI.Left >= 12000 Then
imI.Left = 0
End If
If (t < tx) Then
tinh
veduong
'hien thi thoi gian hien tai
h = 7 + Int((t - 1800) / 3600)
If t < 1800 Then
p = 30 + Int(t / 60)
Else: p = Int((t - 1800) / 60)
End If
List4.Clear
List4.AddItem " " & h
List5.Clear
List5.AddItem " " & p
List3.Clear
List3.AddItem " " & c
If t >= tx Then
Timer1.Interval = 1000
imI.Left = 0
veduong 've SV dang den ben
If c > 60 Then
c = c - 60

Else: c = 0
End If
s = s + 1
tx = tx + txe
'hien thi ket qua
List1.Clear
List2.Clear
List1.AddItem " " & s
List2.AddItem " " & c
List3.Clear
List3.AddItem " " & c
veduong 've SV con bi nho chuen
End If
End If
If t = 3600 Then
MsgBox "THOI GIAM MO PHONG BAY GIO LA 7:30 AM .XIN
MOI THUC HIEN LAI", MB_OK
dk = 0
imI.Left = 0
End If
End If
End Sub
8.Thiết kế giao diện.
9.Kết quả mô phỏng.
Giao diện khi chạy :
Một sinh viên đến bến tương ứng là sự xuất hiên một người:
Với cường độ được chọn là : λ =0.1 ta lần lượt mô phỏng với các thời gian
Txe khác nhau ta có kết quả:
Với Txe=15 phút: sau 1 giờ có 4 chuyến xe,và có 114 sinh viên bị kẹt lại
Với Tx=7 phút30giây: sau 1 giờ có 8chuyến và không có sinh viên nào kẹt lại

10.Nhận xét.
Qua kết quả mô phỏng ta nhận thấy để sinh viên đến trường đúng giờ và ko
có sinh viên phải đợi nên chọn chu kỳ chạy của xe bus là : Txe=7 phút 30 giây

Tài liêu tham khảo:
[1] Bài giảng môn mô hình hóa hệ thống.
[2] Bài giảng Visual Basic
Khoa Công Nghệ Thông Tin-Trường Đại Học Hàng Hải-2008

×