1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

15 771 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 342,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ườ

Trang 1

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ósv/s.Cứ sau 1sv/s.Cứ sau 15’ thì có5’ 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à ti

=-

1sv/s.Cứ sau 15’ thì có ln(Ui), Ui U(0,1sv/s.Cứ sau 15’ thì có)

 Xây dựng mô hình vận chuyển xe bus.Số chuyến xe phân bố đều đặn,sau Txe 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 Txe để được thời gian chu kỳ xe bus hợp lý

Trang 2

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,1sv/s.Cứ sau 15’ thì có)

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

 nếu x<=0 +)Thông số λ>0

+)kỳ vọng toán M(x)= λ

+)Phương sai: S2= λ

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)

Trang 3

5 Lưu đồ tính

START

Tx=Txe , t=0 , c=0 , dk=0 , a=lamda

dk=1sv/s.Cứ sau 15’ thì có

U=RND , t=t+(-1sv/s.Cứ sau 15’ thì có/lamda)ln(U)

T<3600

c = c + 1sv/s.Cứ sau 15’ thì có

t>=tx

c>60 tx=tx+Txe

c=c-60

c=0 dk=0

STOP

1sv/s.Cứ sau 15’ thì có

0 0

0

0 1sv/s.Cứ sau 15’ thì có

1sv/s.Cứ sau 15’ thì có

Trang 4

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=1sv/s.Cứ sau 15’ thì có) 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, txe1sv/s.Cứ sau 15’ thì có, phut, times, c, s, dk As Integer

Dim t, a, u As Double

Dim ast, bst, at, bt As String

Dim X(1sv/s.Cứ sau 15’ thì có60), Y(1sv/s.Cứ sau 15’ thì có60) As Integer

'***thu tuc tinh****

'***khai bao bien***

Public Sub tinh()

Const e = 2.71sv/s.Cứ sau 15’ thì có82

a = CDbl(txtCDSV.Text * 1sv/s.Cứ sau 15’ thì có00)

u = Rnd

t = t - 1sv/s.Cứ sau 15’ thì có00 * Log(u) / (a * Log(e))

If t < 3600 Then

c = c + 1sv/s.Cứ sau 15’ thì có

Else: t = 3600

End If

Trang 5

End Sub

'******thu tuc ve Form 2********

Public Sub hienthi()

lbSVCC.Caption = c

lbSCX2.Caption = s

pt4.Cls

pt3.Cls

For j = 1sv/s.Cứ sau 15’ thì có To c

pt4.Line ((40 * j - 30), 1sv/s.Cứ sau 15’ thì có0)-((40 * j), 365), RGB(0, 250, 50), BF Next

For j = 1sv/s.Cứ sau 15’ thì có To s

pt3.Line ((200 * j - 1sv/s.Cứ sau 15’ thì có50), 1sv/s.Cứ sau 15’ thì có0)-((200 * j), 365), RGB(0, 250, 50), BF Next

phut = Int(t / 60) + 30

If phut >= 60 Then

phut = phut - 60

txt1sv/s.Cứ sau 15’ thì có.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

Trang 6

tx = txe

dk = 1sv/s.Cứ sau 15’ thì có

End Sub

'*******nut lenh hien thi Form2***************** Private Sub cmdDB_Click()

txt1sv/s.Cứ sau 15’ thì có.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 = 1sv/s.Cứ sau 15’ thì có

pt2.Visible = True

Timer1sv/s.Cứ sau 15’ thì có.Enabled = True

Timer2.Enabled = True

End Sub

Private Sub cmddung_Click()

Timer1sv/s.Cứ sau 15’ thì có.Enabled = False

Timer2.Enabled = False

pt2.Left = -1sv/s.Cứ sau 15’ thì có920

pt2.Visible = False

End Sub

'**********nut lenh ket thuc chuong trinh**********

Trang 7

Private Sub Command1sv/s.Cứ sau 15’ thì có_Click()

Beep

End

End Sub

'*******thu tuc dieu khien chuong trinh bang bo timerl******** Private Sub Timer1sv/s.Cứ sau 15’ thì có_Timer()

Timer1sv/s.Cứ sau 15’ thì có.Interval = 50

If (dk = 1sv/s.Cứ sau 15’ thì có) Then

tinh

Else:

pt2.Visible = False

Timer1sv/s.Cứ sau 15’ thì có.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 + 1sv/s.Cứ sau 15’ thì có

pt2.Left = -1sv/s.Cứ sau 15’ thì có850

Timer2.Enabled = True

tx = tx + txe

End If

kh = c

If kh <= 1sv/s.Cứ sau 15’ thì có35 Then

If kh Mod 3 = 1sv/s.Cứ sau 15’ thì có Then

For i = 0 To (kh - 1sv/s.Cứ sau 15’ thì có) / 3 - 1sv/s.Cứ sau 15’ thì có

Picture1sv/s.Cứ sau 15’ thì có(i).Visible = True

Trang 8

Pic2(i).Visible = True

Pic4(i).Visible = True

Next

For i = (kh - 1sv/s.Cứ sau 15’ thì có) / 3 To 44

Picture1sv/s.Cứ sau 15’ thì có(i).Visible = False

Pic2(i).Visible = False

Pic4(i).Visible = False

Next

Picture1sv/s.Cứ sau 15’ thì có((kh - 1sv/s.Cứ sau 15’ thì có) / 3).Visible = True End If

If kh Mod 3 = 0 Then

For i = 0 To (kh / 3) - 1sv/s.Cứ sau 15’ thì có

Picture1sv/s.Cứ sau 15’ thì có(i).Visible = True

Pic2(i).Visible = True

Pic4(i).Visible = True

Next

For i = (kh - 1sv/s.Cứ sau 15’ thì có) / 3 To 44

Picture1sv/s.Cứ sau 15’ thì có(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 - 1sv/s.Cứ sau 15’ thì có

Picture1sv/s.Cứ sau 15’ thì có(i).Visible = True

Pic2(i).Visible = True

Pic4(i).Visible = True

Next

Trang 9

For i = (kh - 1sv/s.Cứ sau 15’ thì có) / 3 To 44

Picture1sv/s.Cứ sau 15’ thì có(i).Visible = False

Pic2(i).Visible = False

Pic4(i).Visible = False

Next

Picture1sv/s.Cứ sau 15’ thì có((kh - 2) / 3).Visible = True Pic2((kh - 2) / 3).Visible = True

End If

Else: For i = 0 To 44

Picture1sv/s.Cứ sau 15’ thì có(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()

txe1sv/s.Cứ sau 15’ thì có = CDbl(txttxe.Text)

Timer2.Interval = Int(0.5 * txe1sv/s.Cứ sau 15’ thì có + 1sv/s.Cứ sau 15’ thì có)

If pt2.Left >= 7440 Then

Timer2.Enabled = False

End If

pt2.Left = pt2.Left + 30 + 200 / txe1sv/s.Cứ sau 15’ thì có

Trang 10

End Sub

Private Sub Timer3_Timer()

Dim X As String

Dim Y As String

X = Left(Form1sv/s.Cứ sau 15’ thì có.Caption, 1sv/s.Cứ sau 15’ thì có)

Y = Mid(Form1sv/s.Cứ sau 15’ thì có.Caption, 2)

Form1sv/s.Cứ sau 15’ thì có.Caption = Y & X

End Sub

'*************thu tuc dieu khien bang bo timer******************** Private Sub Timer1sv/s.Cứ sau 15’ thì có_timer()

Timer1sv/s.Cứ sau 15’ thì có.Interval = 40

If dk = 1sv/s.Cứ sau 15’ thì có Then

If t >= (txe - 1sv/s.Cứ sau 15’ thì có0) Then

imI.Visible = True

imI.Left = imI.Left + 1sv/s.Cứ sau 15’ thì có50

End If

If imI.Left >= 1sv/s.Cứ sau 15’ thì có2000 Then

imI.Left = 0

End If

If (t < tx) Then

tinh

veduong

'hien thi thoi gian hien tai

h = 7 + Int((t - 1sv/s.Cứ sau 15’ thì có800) / 3600)

If t < 1sv/s.Cứ sau 15’ thì có800 Then

p = 30 + Int(t / 60)

Else: p = Int((t - 1sv/s.Cứ sau 15’ thì có800) / 60)

End If

List4.Clear

Trang 11

List4.AddItem " " & h

List5.Clear

List5.AddItem " " & p

List3.Clear

List3.AddItem " " & c

If t >= tx Then

Timer1sv/s.Cứ sau 15’ thì có.Interval = 1sv/s.Cứ sau 15’ thì có000

imI.Left = 0

veduong 've SV dang den ben

If c > 60 Then

c = c - 60

Else: c = 0

End If

s = s + 1sv/s.Cứ sau 15’ thì có

tx = tx + txe

'hien thi ket qua

List1sv/s.Cứ sau 15’ thì có.Clear

List2.Clear

List1sv/s.Cứ sau 15’ thì có.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

Trang 12

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.1sv/s.Cứ sau 15’ thì có 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=1sv/s.Cứ sau 15’ thì có5 phút: sau 1sv/s.Cứ sau 15’ thì có giờ có 4 chuyến xe,và có 1sv/s.Cứ sau 15’ thì có1sv/s.Cứ sau 15’ thì có4 sinh viên bị kẹt lại

Trang 13

Với Tx=7 phút30giây: sau 1sv/s.Cứ sau 15’ thì có giờ có 8chuyến và không có sinh viên nào kẹt lại

Trang 14

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

Trang 15

Tài liêu tham khảo:

[1sv/s.Cứ sau 15’ thì có] 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

Ngày đăng: 13/05/2014, 20:51

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w