ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
TIỂU LUẬN
MÔN: MÔ PHỎNG NGẪU NHIÊN
ĐỀ TÀI:
ỨNG DỤNG PHƯƠNG PHÁP PHÂN TÍCH XÁC SUẤT
VÀ CÁC THUẬT TOÁN NGẪU NHIÊN TRONG QUÁ
TRÌNH PHÂN TÍCH CÁC BÀI TOÁN
Giáo viên giảng dạy: PGS.TS. Trần Lộc Hùng
Học viên thực hiện: Nguyễn Lý Hữu Huấn
Lớp: Khoa học máy tính, Khóa năm: 2008-2010
Huế, 6/2009
MỤC LỤC
LỜI MỞ ĐẦU.............................................................................................................................1
1. GIỚI THIỆU BÀI TOÁN.......................................................................................................2
1.1 Mô tả bài toán Thuê nhân viên.........................................................................................2
1.2 Phương pháp phân tích truyền thống...............................................................................2
2. PHƯƠNG PHÁP PHÂN TÍCH XÁC SUẤT.........................................................................3
2.1 Khái niệm phân tích xác suất...........................................................................................3
2.2 Biến chỉ thị ngẫu nhiên.....................................................................................................4
2.3 Phân tích bài toán bằng cách sử dụng biến chỉ thị ngẫu nhiên........................................5
3. PHƯƠNG PHÁP SỬ DỤNG THUẬT TOÁN NGẪU NHIÊN............................................6
3.1 Khái niệm thuật toán ngẫu nhiên......................................................................................7
3.2 Ứng dụng thuật toán ngẫu nhiên trong phân tích bài toán...............................................7
3.3 Các thuật toán hoán đổi ngẫu nhiên dữ liệu vào..............................................................9
3.4 Mở rộng bài toán............................................................................................................13
TÀI LIỆU THAM KHẢO........................................................................................................16
Tiểu luận môn học: Mô phỏng ngẫu nhiên
LỜI MỞ ĐẦU
Tiểu luận này trình bày về phương pháp sử dụng phép phân tích xác
* Thủ tục HIRE-ASSITANT
1. BEST:=0 {ứng cử viên bù nhìn}
2. For i:=1 to n do
3. <phỏng vấn ứng cử viên thứ i>
4. if <ứng cử viên i tốt hơn ứng cử viên BEST> then
5. BEST: = i
6. <thuê ứng cử viên i>
Ở đây ta không đề cập đến thời gian thực hiện của thủ tục, mà chỉ quan
tâm đến chi phí thực hiện thông qua việc phỏng vấn và thuê. Việc phỏng vấn
thì tốn chi phí thấp – gọi là c
i
, nhưng ngược lại thuê thì tốn chi phí rất đắt –
gọi là c
h
. Gọi m là số người được thuê, thì tổng chi phí của thuật toán này là
O(nc
i
+ mc
h
). Dù ta thuê bao nhiêu người đi chăng nữa thì ta cũng phải luôn
phỏng vấn hết n người, và như vậy ta luôn tốn nc
i
cho việc phỏng vấn. Vì thế,
ta chỉ tập trung vào phân tích chi phí thuê mc
h
, con số này biến đổi ứng với
mỗi lần thực thi thuật toán.
1.2 Phương pháp phân tích truyền thống
- Trường hợp tốt nhất
Trong trường hợp tốt nhất, ta chỉ cần thực hiện việc thuê đúng 1 lần.
3
=
(5,2,1,8,4,7,10,9,3,6), thì mất 3 lần thuê ứng cử viên mới, đó là ứng cử viên
có thứ hạng 5, 8, 10.
Tóm lại, độ phức tạp của thuật toán này tùy thuộc vào số lần mà ta thuê
một nhân viên mới, ta có trường hợp xấu nhất là A
1
, tốt nhất là A
2
và trường
hợp trung bình là A
3
.
2. PHƯƠNG PHÁP PHÂN TÍCH XÁC SUẤT
2.1 Khái niệm phân tích xác suất
Phân tích xác suất là sử dụng xác suất trong việc phân tích các bài toán.
Hầu hết, ta sử dụng phân tích xác suất để phân tích thời gian thực hiện của
thuật toán. Đôi khi ta sử dụng nó để phân tích các đại lượng khác như phân
tích chi phí thuê nhân viên trong thủ tục HIRE-ASSISTANT. Để phân tích
xác suất, ta phải mô tả được sự phân phối bộ dữ liệu vào hoặc giả định về sự
phân phối bộ dữ liệu vào hợp lý. Sau đó, ta phân tích thuật toán, tính toán một
kỳ vọng về thời gian thực thi. Kỳ vọng này là dựa trên sự phân phối dữ liệu
vào. Như vậy, ta có thể tính được trung bình thời gian thực thi dựa trên dữ
liệu vào.
Vậy, ta phải rất cẩn thận trong việc quyết định phân phối bộ dữ liệu
vào. Ở một số bài toán, nếu ta có thể giả sử một tập hợp các bộ dữ liệu vào
hợp lý thì ta có thể sử dụng phân tích xác suất như một kỹ thuật để thiết kế
một thuật toán hiệu quả và như là một phương tiện để hiểu rõ bài toán. Còn
3
Tiểu luận môn học: Mô phỏng ngẫu nhiên
1 nếu A xuất hiện
0 nếu A không xuất hiện
(1)
Một ví dụ đơn giản, để xác định được kỳ vọng của số lần xuất hiện mặt
ngửa khi ta tung một đồng xu cân đối. Ta gọi không gian mẫu S = {H,T} đại
diện cho mặt ngửa (H) và mặt sấp (T) của đồng xu với xác suất xuất hiện mặt
ngửa và mặt sấp Pr{H}=Pr{T}=1/2. Ta có thể định nghĩa biến chỉ thị ngẫu
nhiên X
H
là số mặt ngửa của đồng xu xuất hiện – gắn với sự kiện H. Biến này
tính số mặt ngửa xuất hiện khi tung đồng xu và nó bằng 1 nếu là mặt ngửa,
bằng 0 nếu ngược lại (mặt sấp).
4
Tiểu luận môn học: Mô phỏng ngẫu nhiên
Ta viết:
X
H
=I{H}=
1 nếu H xuất hiện
0 nếu H không xuất hiện
Kỳ vọng của số mặt ngửa xuất hiện trong một lần tung đồng xu chính là
giá trị kỳ vọng của biến chỉ thị X
H
.
E[X
H
] = E[I{H}] = 1.Pr{H}+ 0.Pr{T}
= 1.(1/2) +0.(1/2) = 1/2
Như vậy, kỳ vọng của số lượng mặt ngửa xuất hiện với một lần tung
đồng xu ngẫu nhiên là 1/2. Bổ đề sau cho thấy, giá trị kỳ vọng của một biến
xXxXE
1
Pr
Nhưng cách tính toán này không được thuận tiện lắm. Vì vậy, thay vào
đó ta sẽ sử dụng biến chỉ thị ngẫu nhiên để đơn giản hóa việc tính toán.
Thay vì tính E[X] bằng cách định nghĩa một biến chỉ chi phí về thời
gian thuê một nhân viên mới, ta dùng n biến logic riêng biệt tương ứng với
5