Tải bản đầy đủ (.pdf) (118 trang)

Một số mô hình xác suất trong khoa học máy tính

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 (779.73 KB, 118 trang )

Header Page 1 of 16.

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
-----------------------

PHẠM THỊ THU HẰNG

MỘT SỐ MÔ HÌNH XÁC SUẤT
TRONG KHOA HỌC MÁY TÍNH

LUẬN VĂN THẠC SĨ KHOA HỌC

Hà Nội - Năm 2015

Footer Page 1 of 16.


Header Page 2 of 16.

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
-----------------------

PHẠM THỊ THU HẰNG

MỘT SỐ MÔ HÌNH XÁC SUẤT
TRONG KHOA HỌC MÁY TÍNH
Chuyên ngành: Lý thuyết Xác suất và Thống kê toán học
Mã số:
60406106



LUẬN VĂN THẠC SĨ KHOA HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC:
GS.TSKH. ĐẶNG HÙNG THẮNG

Hà Nội - Năm 2015

Footer Page 2 of 16.


Header Page 3 of 16.

Mục lục

1

Footer Page 3 of 16.


Header Page 4 of 16.

LỜI NÓI ĐẦU

Trong những năm gần đây, xác suất đã phát triển đa dạng và có nhiều ứng
dụng quan trọng trong lĩnh vực khoa học máy tính. Ví dụ, các chủ đề liên quan
đến thuật toán như thuật toán ngẫu nhiên, thuật toán ước lượng và phân tích
xác suất của thuật toán đều sử dụng phương pháp xác suất.
Trong luận văn này, tôi muốn giới thiệu các loại mô hình và phân tích xác
suất hữu dụng nhất trong khoa học máy tính. Giả sử với một hàm mở đầu trong

xác suất, tôi trình bày một số đề tài quan trọng như phương pháp xác suất,
xích Markov, mô phỏng MCMC và quá trình Poisson không dừng. Luận văn này
cung cấp nhiều ví dụ và bài tập mô tả các đề tài như thuật toán sắp xếp, thuật
toán tìm kiếm và biểu đồ ngẫu nhiên, bài toán tự sắp xếp theo danh sách, phản
xích, phân hoạch cực đại và cực tiểu trong đồ thị và nhiều đề tài khác.
Cấu trúc luận văn được chia làm 3 chương chính:
• Chương 1 đưa ra các ví dụ hay trong khoa học máy tính, đồng thời trình

bày phương pháp xác suất và một số cách ứng dụng phương pháp này.
• Chương 2 viết về xích Markov trên không gian trạng thái rời rạc, phương

pháp Monte Carlo và xích Markov Monte Carlo (MCMC).
• Chương 3 giới thiệu một số lớp quá trình Poisson, từ đó nghiên cứu bài

toán phân loại biến cố của một quá trình Poisson không dừng và bài toán
xác định phân phối có điều kiện của thời điểm đến.
Trong khuôn khổ của luận văn này, do sự hạn hẹp về thời gian cũng như
năng lực của bản thân, vì vậy không thể tránh khỏi những hạn chế về nội dung
cũng như việc trình bầy. Tôi nhận thấy xác suất trong khoa học máy tính còn
rất nhiều điều thú vị khác nữa và tôi rất mong có dịp trình bầy đầy đủ hơn.
Luận văn được hoàn thành dưới sự hướng dẫn tận tâm của GS.TSKH Đặng
Hùng Thắng. Tôi xin được bày tỏ lòng biết ơn và kính trọng sâu sắc của mình
đến thầy. Qua đây tôi xin chân thành gửi lời cảm ơn tới các thầy cô trong Tổ
2

Footer Page 4 of 16.


Header Page 5 of 16.
Luận văn tốt nghiệp


Phạm Thị Thu Hằng

bộ môn Xác suất thống kê và Ban Chủ nhiệm khoa Toán - Cơ - Tin học Trường
Đại học Khoa học Tự nhiên - Đại học Quốc gia Hà Nội đã chỉ bảo và hướng
dẫn tận tình giúp tôi hoàn thành luận văn này!
Rất mong nhận được ý kiến đóng góp của các thầy cô và các bạn!
Hà Nội, tháng 11/2015
Phạm Thị Thu Hằng

3

Footer Page 5 of 16.


Header Page 6 of 16.

Chương 1
Xác suất trong lý thuyết tổ hợp
và đồ thị
1.1

Các ví dụ

1.1.1

Đồ thị ngẫu nhiên

Mỗi đồ thị bao gồm hai yếu tố: tập V là tập hợp các đỉnh (hay nút) và
A là tập hợp các cặp đỉnh gọi là cạnh (hoặc cung). Ta thường khoanh tròn

số hiệu của mỗi đỉnh và nối các đỉnh bởi một đường thẳng hoặc cong nếu
có cạnh tạo bởi hai đỉnh đó. Ví dụ, một đồ thị có V = {1, 2, 3, 4, 5, 6} và
A={(1, 2), (1, 4), (1, 5), (2, 3), (2, 5), (3, 5), (5, 6)} được mô tả trong Hình 1.1. Ở đây
ta chỉ xét các đồ thị không có hướng, tức là ta không định hướng các cạnh của
đồ thị.
Một chuỗi các đỉnh i, i1 , i2 , . . . , ik , j trong đó (i, i1 ), (i1 , i2 ), . . . , (ik−1 , ik ), (ik , j)
là các cạnh được gọi là một đường đi từ đỉnh i tới đỉnh j . Hình 1.2 biểu thị một
đường đi từ đỉnh 1 tới đỉnh 6.
Một đồ thị được coi là liên thông nếu có một đường đi giữa mọi cặp đỉnh của
đồ thị. Đồ thị như trong Hình 1.1 và 1.2 là đồ thị liên thông còn đồ thị trong
Hình 1.3 không phải đồ thị liên thông.
Giờ hãy xem xét đồ thị với tập hợp đỉnh V = {1, 2, . . . , n} và tập hợp cạnh
A = {(i, X(i)), i = 1, . . . , n} trong đó X(i) là các biến ngẫu nhiên độc lập thỏa
mãn
n

P {X(i) = j} = Pj ,

Pj = 1
j=1

Nói cách khác, từ mỗi đỉnh i ta chọn ra ngẫu nhiên một đỉnh trong số n đỉnh
còn lại của đồ thị (bao gồm cả i), trong đó xác suất để đỉnh j được chọn là Pj ,
4

Footer Page 6 of 16.


Header Page 7 of 16.
Luận văn tốt nghiệp


Phạm Thị Thu Hằng

Hình 1.1: Đồ thị

Hình 1.2: Đường đi từ 1 tới 6: 1, 2, 3, 5, 6.

Hình 1.3

sau đó ta nối đỉnh i với đỉnh vừa chọn bởi một cung. Đồ thị vừa xây dựng là
một đồ thị ngẫu nhiên. Chúng ta sẽ tính xác suất để đồ thị ngẫu nhiên này là

5

Footer Page 7 of 16.


Header Page 8 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

đồ thị liên thông. Để tìm được xác suất này, ta chọn một đỉnh, giả sử đỉnh 1 và
lần theo chuỗi các đỉnh 1, X(1), X 2 (1), . . . , trong đó X n (1) = X(X n−1 (1)) để xác
định giá trị của biến ngẫu nhiên N là chỉ số k nhỏ nhất sao cho X k (1) không là
một đỉnh mới. Tức là,
N = min(k : X k (1) ∈ {1, X(1), . . . , X k−1 (1)})

Đồng thời, gọi
N −1


PX i (1)

W = P1 +
i=1

Nói cách khác, N là số đỉnh tiếp xúc trong chuỗi 1, X(1), X 2 (1), . . . trước khi
một đỉnh xuất hiện hai lần còn W là tổng các xác suất của các đỉnh này. (xem
Hình 1.4).

Hình 1.4

Để tính toán xác suất đồ thị này liên thông, ta lấy điều kiện với N :
n

P (đồ thị liên thông|N = k)P (N = k).

Xác suất đồ thị liên thông =
k=1

Bây giờ, với điều kiện N = k , các đỉnh 1, X(1), . . . , X k−1 (1) liên thông với nhau
và không còn cạnh nào khác xuất phát từ các đỉnh này tới các đỉnh còn lại của
đồ thị. Nói cách khác, ta có thể hợp k đỉnh này lại làm một siêu đỉnh. Không
có cạnh nào xuất phát từ siêu đỉnh này và xác suất để một đỉnh ở ngoài đi vào
siêu đỉnh này là W . Ta sẽ cần đến kết quả sau.
Bổ đề 1.1.1. Xét một đồ thị ngẫu nhiên gồm các đỉnh 0, 1, . . . , r, và các cạnh
(i, Yi ), i = 1, . . . , r, trong đó Yi là các biến ngẫu nhiên độc lập và
r

P {Yi = j} = Qj ,


j = 0, ..., r,

Qj = 1
j=0

Khi đó,
6

Footer Page 8 of 16.


Header Page 9 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng
P {đồ thị liên thông} = Q0 .

Đồ thị ngẫu nhiên ở trên bao gồm r đỉnh thông thường (đánh số từ 1 đến r)
và một đỉnh đặc biệt (đánh số 0); cứ mỗi đỉnh thông thường có một cạnh độc
lập đi qua đỉnh j với xác suất Qj ; không có cạnh nào xuất phát từ đỉnh đặc biệt.
Chứng minh. : Để chứng minh, ta sử dụng phương pháp quy nạp theo r, bổ đề
hiển nhiên đúng khi r = 1, giả sử bổ đề đúng với mọi giá trị nhỏ hơn r. Xem
xét Y1 nếu Y1 = 1 thì dễ thấy đồ thị là không liên thông. Nếu Y1 = 0 thì đỉnh
1 và 0 có thể coi là một đỉnh đơn lẻ và trường hợp này không thay đổi nếu ta
có r − 1 đỉnh thông thường và một đỉnh đặc biệt, trong đó cứ mỗi đỉnh thông
thường có một cạnh đi qua đỉnh đặc biệt với xác suất Q0 + Q1 . Nếu Y1 = j = 0, 1
thì bằng cách coi đỉnh 1 và j là một đỉnh đơn lẻ, kết quả này vẫn không thay
đổi nếu ta có r − 1 đỉnh thông thường và một đỉnh đặc biệt, trong đó mỗi đỉnh
thông thường có một cạnh đi qua đỉnh đặc biệt với xác suất Q0 . Do vậy, từ giả

thiết quy nạp, chúng ta thấy:

nếu j = 1
0,
P {đồ thị là liên thông|Y1 = j} = Q0 + Q1 , nếu j = 0

Q0 ,
nếu j = 0, 1
Lấy xác suất với điều kiện với Y1 ta có:
r

P {đồ thị là liên thông} =

P {đồ thị là liên thông|Y1 = j}Qj
j=0

= (Q0 + Q1 )Q0 + Q0 (1 − Q0 − Q1 )
= Q0

và giả thiết quy nạp là đúng.
Trở lại với đồ thị ngẫu nhiên ban đầu, coi tập hợp đỉnh 1, . . . , X N −1 (1) là một
đỉnh đặc biệt của Bổ đề 1.1.1 ta có:
P {đồ thị là liên thông|N, 1, . . . , X N −1 (1)} = W

Lấy kỳ vọng thu được kết quả sau:
Mệnh đề 1.1.1. P{đồ thị liên thông} = E[W]
Từ lập luận ở trên ta nhận thấy nếu thực hiện một dãy các phép thử đa thức
độc lập với xác suất P1 , . . . , Pn thì với điều kiện kết quả ban đầu là 1, kỳ vọng
7


Footer Page 9 of 16.


Header Page 10 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

của tổng các xác suất của tất cả kết quả riêng biệt thu được đến trước khi có
một kết quả bị lặp lại bằng với xác suất để đồ thị ngẫu nhiên liên thông. Điều
này vẫn đúng nếu ta thay kết quả bân đầu là 1 bởi một kết quả ban đầu bất kì
khác (khi phân tích đồ thị ngẫu nhiên, chúng ta đã có thể bắt đầu bằng bất cứ
chuỗi đỉnh i, X(i), X 2 (i), . . . nào), vì thế, với mỗi dãy phép thử đa thức ta có kì
vọng của tổng các xác suất của các kết quả thu được cho đến trước khi có một
kết quả lặp lại là độc lập với kết quả đầu tiên. Đây là một phát hiện không hiển
nhiên chút nào.
Trong phần còn lại của mục này, chúng ta sẽ tập trung phân tích trường hợp
đặc biệt trong đó cạnh xuất phát từ mỗi đỉnh có thể đến mọi đỉnh của đồ thị
với cùng xác suất
Pj =

1
, j = 1, . . . , n
n

.
Hệ quả sau cho ta công thức tính xác suất đồ thị liên thông trong trường
hợp đặc biệt này.
Hệ quả 1.1.1. Khi Pj = 1/n,
P {đồ thị là liên thông} =


(n − 1)!
nn

n−1

j=0

Chứng minh. Vì W = N/n, ta có:
E[W ] =

1
E[N ]
n

1
=
n
=

=

1
n
1
n

n−1

P (N > i)

i=0
n−1

i=0
n−1

i=0

(n − 1)...(n − i)
ni
(n − 1)!
(n − i − 1)!ni

(n − 1)!
=
nn
=

(n − 1)!
nn

8

Footer Page 10 of 16.

n−1

i=0
n−1


j=0

nn−1−i
(n − i − 1)!
nj
j!

nj
j!


Header Page 11 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

Để thu được ước lượng đơn giản xác suất để đồ thị là liên thông khi n lớn,
ta thấy nếu X là một biến Poisson ngẫu nhiên với trị số trung bình n thì
n−1
−n

P {X < n} = e

i=0

ni
i!

Tuy nhiên, vì một biến Poisson ngẫu nhiên có trị số trung bình n có thể được
coi là tổng của n biến Poisson ngẫu nhiên độc lập với trị số trung bình bằng 1,

điều này được suy ra từ định lý giới hạn trung tâm rằng một biến ngẫu nhiên
có một phân phối xấp xỉ chuẩn với trị số trung bình n. Xác suất của biến ngẫu
nhiên thông thường nhỏ hơn trị số trung bình của nó là 1/2, hay :
1
2

P {X < n}

Do đó với n lớn

n−1

i=0

ni
i!

en
2

Từ Hệ quả 1.1.1 ta thấy với n lớn,
P {đồ thị là liên thông}

(n − 1)!en
n!en
=
2nn
2nn+1

Do vậy, bằng cách sử dụng công thức tiệm cận Stirling trong đó chỉ ra rằng:

n!


nn+1/2 e−n 2π

ta thấy, với n lớn
P {đồ thị là liên thông}




2 n

Từ đó chúng ta thu được Hệ quả sau.
Hệ quả 1.1.2. Với n lớn, P {đồ thị là liên thông}

π/2n

Một đồ thị được coi là bao gồm r thành phần nếu các đỉnh của nó có thể
được phân chia vào r tập hợp con sao cho mỗi tập hợp con liên thông và không
có cạnh nào được tạo thành bởi các đỉnh thuộc các tập hợp con khác nhau. (Do
đó, đồ thị liên thông là đồ thị có một thành phần đơn lẻ.)
Gọi C là số thành phần trong đồ thị ngẫu nhiên ta đang xem xét, chúng ta sẽ
tính giá trị kỳ vọng của nó. Trước hết, chúng ta sẽ chứng minh rằng mỗi thành
phần phải chứa đúng một chu trình, trong đó chu trình là một cạnh của cặp
9

Footer Page 11 of 16.



Header Page 12 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

(i, i) hoặc một chuỗi của cạnh của cặp (i, i1 ), (i1 , i2 ), . . . , (ik , i) với các đỉnh riêng

biệt i, i1 , i2 , . . . , ik . Ví dụ, đồ thị trong Hình 1.5 là một chu trình.
Dễ dàng thấy một đồ thị liên thông có số cạnh bằng số đỉnh chỉ chứa duy
nhất một chu trình. Vì trong đồ thị ngẫu nhiên xuất phát từ mỗi đỉnh có duy
nhất một cạnh nên một thành phần chứa k đỉnh chỉ có đúng k cạnh và do đó
chỉ có duy nhất một chu trình. Với S ⊂ {1, . . . , n} thì S là một chu trình nếu tồn
tại một chu trình mà các đỉnh của nó là đỉnh của S . Do đó, nếu ta lấy
nếu S là 1 chu trình
ngược lại

1,
0,

I(S) =

thì
E[C] = E số của chu trình
= E

I(S)
s

=


E[I(S)]
s

Nếu S gồm một đỉnh đơn lẻ, tức là S = {1}, thì S sẽ là một chu trình nếu
X(1) = 1. Do đó,
E[I({1})] = P {X(1) = 1} = 1/n

Nếu S gồm k > 1 đỉnh, tức là S = {1, . . . , k}, thì S sẽ tạo thành một chu trình
nếu 1, X(1), . . . , X k−1 (1) là các giá trị khác nhau trong S và X k (1) = 1.
Do vậy,
E[I(S)] =

Kết quả là, do có

n
k

k−1k−2 1
(k − 1)!
... =
n
n
n
nk

tập hợp con kích thước k , ta thấy rằng
n

n (k − 1)!
k

nk

E[C] =
k=1

1.1.2

Thuật toán Tìm kiếm và Sắp xếp nhanh

Giả sử chúng ta muốn sắp xếp một tập hợp n giá trị khác nhau cho trước
x1 , x2 , . . . , xn . Thuật toán sắp xếp nhanh được xác định theo cách như sau : Khi
n = 2, thuật toán so sánh hai giá trị và xếp chúng theo thứ tự thích hợp. Khi
n > 2, gọi xi là giá trị được chọn, khi đó tất cả các giá trị khác được so sánh với
10

Footer Page 12 of 16.


Header Page 13 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

xi . những giá trị nhỏ hơn xi được đặt vào một nhóm phân cách bởi dấu ngoặc

bên trái xi còn những giá trị lớn hơn xi thì đặt bên phải, lặp lại thuật toán với
mỗi nhóm này cho tới khi tất cả các giá trị được sắp xếp. Ví dụ, giả sử chúng
ta muốn sắp xếp 10 giá trị khác nhau như sau:
5, 9, 3, 10, 11, 14, 8, 4, 17, 6


Một trong những giá trị này được lựa chọn, giả sử là 10. Chúng ta sẽ so sánh
từng giá trị với 10, đặt những giá trị nhỏ hơn 10 vào một nhóm bên trái 10 và
đặt những giá trị lớn hơn 10 vào bên phải 10 ta được
{5, 9, 3, 8, 4, 6}, 10, {11, 14, 17}

Giờ chúng ta hãy nhìn vào một nhóm chứa nhiều hơn một giá trị, giả sử nhóm
bên trái và chọn một giá trị trong đó như 6 chẳng hạn. So sánh từng giá trị
trong ngoặc với 6 và xếp các giá trị nhỏ hơn vào một nhóm bên trái 6 và giá trị
lớn hơn và bên phải 6
{5, 3, 4}, 6, {9, 8}, 10, {11, 14, 17}

Nếu chúng ta xem xét nhóm ngoài cùng bên trái và chọn giá trị 4 để so sánh thì
thu được
{3}, 4, {5}, 6, {9, 8}, 10, {11, 14, 17}

Thuật toán tiếp tục cho tới khi không còn tập hợp nào chứa nhiều hơn một giá
trị.
Bằng trực giác có thể thấy được trường hợp xấu nhất xảy ra khi giá trị so
sánh được chọn là một giá trị tuyệt đối, hoặc là giá trị nhỏ nhất, hoặc là giá trị
lớn nhất trong nhóm. Trong trường hợp này, dễ thấy số lượng phép so sánh cần
thiết là n(n − 1)/2. Tuy nhiên, thuật toán sẽ hữu dụng hơn bằng cách xác định
số lượng so sánh trung bình cần thiết khi giá trị so sánh được chọn ngẫu nhiên.
Giả sử mỗi giá trị so sánh được chọn trong ngoặc có thể là bất cứ giá trị nào .
Gọi X là số phép so sánh cần sử dụng. Để tính E[X], trước hết ta biểu diễn X
thành tổng các biến ngẫu nhiên khác theo cách sau. Đầu tiên, ta đánh dấu cho
các giá trị được sắp xếp: 1 biểu thị giá trị nhỏ nhất, 2 biểu thị giá trị nhỏ nhì,
cứ như vậy cho tới hết. Khi đó, với 1 ≤ i < j ≤ n, lấy I(i, j) bằng 1, nếu i và j
được so sánh trực tiếp và bằng 0 nếu i và j không được so sánh trực tiếp. Tính

11


Footer Page 13 of 16.


Header Page 14 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

tổng các biến này với i < j cho ta tổng số phép so sánh. Đó là
n

j−1

I(i, j)

X=
j=2 i=1

tức là
n

j−1

I(i, j)]

E[X] = E[
j=2 i=1
n


j−1

E[I(i, j)]

=
j=2 i=1
n

j−1

P { i và j được so sánh }

=
j=2 i=1

Để tính xác suất để i và j được so sánh, chú ý rằng giá trị i, i + 1, . . . , j − 1, j
ban đầu cùng nằm trong một nhóm (vì tất cả các giá trị ban đầu đều cùng
trong nhóm) và sẽ vẫn cùng nhóm nếu giá trị so sánh được chọn đầu tiên không
nằm giữa i và j . Ví dụ, nếu số được so sánh lớn hơn j thì tất cả các giá trị
i, i + 1, . . . , j − 1, j sẽ cùng nằm trong nhóm bên trái số đó còn nếu số được so
sánh nhỏ hơn i thì tất cả sẽ cùng nằm trong nhóm bên phải. Do đó, tất cả các
giá trị i, i + 1, . . . , j − 1, j sẽ vẫn cùng nhóm cho tới khi một trong số các giá trị
này được chọn làm giá trị so sánh. Nếu giá trị so sánh này không phải là i và j
thì khi so sánh với nó, i sẽ nằm trong nhóm bên trái còn j thì thuộc nhóm bên
phải, do đó i và j sẽ không bao giờ được so sánh. Biết rằng giá trị so sánh là một
trong các giá trị nằm giữa i và j nên nó có thể là bất cứ giá trị nào trong j − i + 1
giá trị còn lại, do đó xác suất để hoặc i hoặc j được so sánh là 2/(j − i + 1). Ta
có thể rút ra kết luận:
P {i và j được so sánh} =


12

Footer Page 14 of 16.

2
j−i+1


Header Page 15 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

Từ đó ta thấy,
j−1

n

E[X] =
j=2 i=1
n

2
j−i+1

j

= 2
j=2 k=2
n

n

= 2
k=2 j=k
n

= 2
k=2

1
k

bằng cách cho k=j-i+1

1
k

qua việc trao đổi thứ tự của tổng

n−k+1
k
n

= 2(n + 1)
k=2

1
− 2(n − 1)
k


Áp dụng công thức tiệm cận cho n lớn
n

k=2

1
k

log(n)

Ta thấy (bỏ qua giới hạn tuyến tính 2(n − 1) thuật toán sắp xếp nhanh yêu
cầu trung bình khoảng 2n log(n) phép so sánh để sắp xếp n giá trị.
1.1.2.1 Thuật toán tìm kiếm

Tiếp tục giả sử một tập hợp gồm n giá trị khác nhau x1 , x2 , . . . , xn nhưng lần
này, mục đích của chúng ta là tìm giá trị nhỏ thứ k trong số đó. Thuật toán tìm
kiếm khá giống với thuật toán sắp xếp nhanh, cả hai cùng bắt đầu bằng cách
chọn ngẫu nhiên một giá trị rồi so sánh từng giá trị còn lại với nó và đặt các giá
trị nhỏ hơn vào trong nhóm bên trái và giá trị lớn hơn vào nhóm bên phải. Giả
sử r − 1 giá trị được đặt trong nhóm bên trái, có ba khả năng xảy ra :
1. r=k
2. r3. r>k
Trong trường hợp (1), giá trị nhỏ thứ k là giá trị so sánh và thuật toán kết
thúc. Trong trường hợp (2), vì giá trị nhỏ thứ k là giá trị nhỏ thứ (k − r) trong
13

Footer Page 15 of 16.



Header Page 16 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

(n − r) giá trị trong nhóm bên phải nên quá trình bắt đầu lại với một giá trị

trong nhóm này. Trong trường hợp (3), quá trình bắt đầu lại bằng cách tìm kiếm
giá trị nhỏ thứ k trong r − 1 giá trị ở nhóm bên trái.
Đặt X là số so sánh thuật toán sử dụng. Như trong phân tích thuật toán sắp
xếp nhanh ở trên, coi 1 là giá trị nhỏ nhất,2 là giá trị nhỏ thứ hai,. . . và quy
ước I(i, j) bằng 1 nếu i và j được so sánh trực tiếp và bằng 0 nếu i và j không
được so sánh trực tiếp. Khi đó
n

j−1

I(i, j)

X=
j=2 i=1


n

j−1

P {i và j được so sánh }

E[X] =

j=2 i=1

Để tìm được xác suất để i và j được so sánh, chúng ta xem xét các trường hợp
sau :
Trường hợp 1: i < j ≤ k
Trong trường hợp này, i, j, k sẽ vẫn cùng nhóm cho tới khi một trong các giá
trị i, i + 1, . . . , k được chọn làm giá trị so sánh. Nếu giá trị được chọn hoặc là i
hoặc là j thì cặp giá trị sẽ được so sánh, nếu không, chúng sẽ không được so
sánh. Vì giá trị so sánh có thể là bất cứ giá trị nào trong k − i + 1 giá trị này,
chúng ta thấy :
2
P {i và j được so sánh} =
k−i+1

Trường hợp 2: i ≤ k < j
Trong trường hợp này, i, j, k vẫn nằm trong cùng nhóm cho tới khi một trong
j − i + 1 giá trị i, i + 1, . . . , j được chọn làm giá trị so sánh. Nếu giá trị được chọn
là i hoặc j thì cặp giá trị sẽ được so sánh và ngược lại. Do đó,
P {i và j được so sánh} =

2
j−i+1

Trường hợp 3: k < i < j
Trong trường hợp này,
P {i và j được so sánh} =

2
j−k+1


Từ đó ta có
1
E[X] =
2

k

j−1

j=2 i=1

1
+
k−i+1

n

k

j=k+1 i=1

14

Footer Page 16 of 16.

1
+
j−i+1

n


j−1

j=k+2 i=k+1

1
j−k+1


Header Page 17 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

Để ước lượng giá trị trên khi n và k lớn, đặt k = αn với 0 < α < 1.

j−1

k

j=2 i=1

k−1

1
=
k−i+1

k


i=1 j=i+1
k−1

=
i=1
k

=
j=2

1
k−i+1

k−i
k−i+1
j−1
j

k − log(k)
k = αn

Tương tự,
n

k

j=k+1 i=1

1
=

j−i+1

n

j=k+1
n

1
1
+ ... +
j−k+1
j

(log(j) − log(j − k))
j=k+1
n

n−k

log(x)dx −
k

log(x)dx
1

n log(n) − n − (αn log(αn) − αn)
−(n − αn) log(n − αn) + (n − αn)
n[−α log(α) − (1 − α) log(1 − α)]

Tương tự như trên

n

j−1

j=k+2 i=k+1

1
j−k+1

n − k = n(1 − α)

Ta thấy
E[X]

2n[1 − α log(α) − (1 − α) log(1 − α)]

Do đó, số phép so sánh trung bình thuật toán tìm kiếm cần là công thức tuyến
tính của số giá trị.

1.1.3

Mô hình danh sách tự tổ chức

Xem xét n phần tử e1 , . . . , en ban đầu được sắp xếp theo một trật tự. Tại mỗi
thời điểm có một yêu cầu đối với một trong số các phần tử này; ei được yêu cầu
15

Footer Page 17 of 16.



Header Page 18 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

độc lập với trước đó, xác suất Pi . Sau khi đáp ứng được yêu cầu, phần tử này
được chuyển lên đầu danh sách. Ví dụ, nếu trật tự hiện tại là e1 , e2 , e3 , e4 và e3
được yêu cầu thì trật tự sau đó là e3 , e1 , e2 , e4 .
Chúng ta sẽ xác định vị trí kỳ vọng của phần tử được yêu cầu với giả thiết
quá trình này diễn ra trong thời gian dài. Đặt R là vị trí phần tử được yêu cầu,
ta sẽ tìm E[R] phần tử được chọn bằng cách kiểm tra điều kiện với Y . Ta có
n

E[R|Y = ei ]Pi

E[R] =
i=1
n

E[ vị trí của ei | Y = ei ]Pi

=
i=1
n

E[ vị trí của ei ]Pi

=

(1.1)


i=1

Dấu bằng cuối cùng dựa trên cơ sở vị trí của ei và biến cố ei được yêu cầu
độc lập với nhau. Điều này có được do xác suất để ei được yêu cầu là Pi cho dù
hiện tại ei có ở vị trí nào đi nữa. Tuy nhiên, ta thấy
vị trí của ei = 1 +

Ii,j
j=i

trong đó
Ii,j =

1,
0,

nếu ej đứng trước ei
ngược lại

ta thu được
E[vị trí của ei ] = 1 +

E[Ii,j ]
j=i

P {ej đứng trước ei }

=1+


(1.2)

j=i

Để xác định P {ej đứng trước ei }, ta thấy ej đứng trước ei nếu lần yêu cầu
cuối cùng với một trong hai phần tử này là lần yêu cầu với ej . Tuy nhiên, biết
rằng một lần yêu cầu có thể yêu cầu hoặc ei hoặc ej nên xác suất để ej được
yêu cầu là
P (ej | ei hoặc ej ) =

Pj
Pi + Pj

Do đó, P {ej đứng trước ei } = Pj /(Pi + Pj ). Từ kết quả (??) và (??) ta có
n

E[R] = 1 +

Pi
i=1

16

Footer Page 18 of 16.

j=i

Pj
P i + Pj



Header Page 19 of 16.
Luận văn tốt nghiệp

1.1.4

Phạm Thị Thu Hằng

Sinh hoán vị ngẫu nhiên

Ta nói rằng vec-tơ X(1), . . . , X(n) ngẫu nhiên là hoán vị ngẫu nhiên của giá
trị 1, . . . , n nếu
P {(X(1), . . . , X(n)) = (i1 , ...in )} = 1/n!

cho tất cả n! hoán vị i1 , . . . , in của 1, . . . , n. Khi đó, một hoán vị ngẫu nhiên có
thể là bất cứ hoán vị nào trong n! hoán vị của 1, . . . , n. Giả sử trong phần này
X(1), . . . , X(n) là một hoán vị ngẫu nhiên.
Ví dụ 1.1.1. Bài toán đối sánh Giả sử mỗi người trong n người tham gia
bữa tiệc đóng góp chiếc mũ của họ. Số mũ này được tổng hợp lại để sau đó mỗi
người ngẫu nhiên chọn một chiếc. Nếu ta xác định một chiếc mũ bằng người sở
hữu nó và gọi X(i) là chiếc mũ được chọn bởi người i thì giả sử người chọn mũ
có thể chọn bất cứ chiếc mũ nào còn lại vào thời điểm chọn thì X(1), . . . , X(n)
là một hoán vị ngẫu nhiên.
Gọi
X 1 (i) = X(i)

và với j > 1:
X j (i) = X(X j−1 (i))

Ví dụ, trong bài toán đối sánh, X 2 (i) sẽ là chiếc mũ được chọn bởi người có chiếc

mũ được chọn bởi người i. Nếu X k (i) = i thì chuỗi i, X(i), . . . , X k−1 (i) được gọi
là một chu trình. Ví dụ với n = 6, và
X(1) = 2, X(2) = 4, X(3) = 6, X(4) = 1, X(5) = 5, X(6) = 3

khi đó
1, 2, 4

3, 6

5

đều là chu trình. Lưu ý rằng một chu trình là một chuỗi tuần hoàn mà trong đó
nó có thể bắt đầu tại bất cứ giá trị nào. Nếu X k (i) = i thì i, X(i), . . . , X k−1 (i) và
X j (i), . . . , X k−1 (i), i, X(i), . . . , X j−1 (i) là phép biểu diễn của cùng một chu trình.
Ngoài ra, mỗi giá trị 1, . . . , n là một phần tử của đúng một chu trình.
Ví dụ 1.1.2. Trong bài toán đối sánh, 1, 5, 3 là một chu trình nếu người 1 chọn
mũ của người 5, người 5 chọn mũ của người 3 và người 3 chọn mũ của người 1.
Các chu trình 1, 5, 3 5, 3, 1 3, 1, 5 được coi là một chu trình.

17

Footer Page 19 of 16.


Header Page 20 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

Nếu X(i) = i ta nói rằng i là một điểm cố định của hoán vị. Trong bài toán

đối sánh, i là điểm cố định nếu người i chọn đúng chiếc mũ của mình. Bây giờ
chúng ta sẽ tính toán hàm phân phối xác suất số điểm cố định của một hoán
vị ngẫu nhiên. Trước hết chúng ta phải tìm xác suất để không có điểm cố định
nào. Gọi En là biến cố không có điểm cố định trong hoán vị ngẫu nhiên n giá trị
(một hoán vị ngẫu nhiên mà không có điểm cố định nào được gọi là Xáo trộn),
và Pn = P (En ). Để tìm Pn , gọi C là chiều dài chu trình chứa một giá trị thiết
lập, giả sử 1. Kiểm tra điều kiện với C được
n

P (En | C = k)P {C = k}

Pn =

(1.3)

k=1

bây giờ
P {C = k} = P {X(1) = 1, X 2 (1) = 1, ..., X k−1 (1) = 1, X k (1) = 1}
n−1n−2 n−k+1
1
=
...
n n−1 n−k+2n−k+1
1
=
n

(1.4)


Khi đó, kích thước của chu trình chứa một giá trị thiết lập có thể là bất cứ
giá trị nào trong số các giá trị 1, . . . , n. Vì C = 1 tương đương với X(1) = 1, ta
thấy
P (En | C = 1) = 0
(1.5)
Giả sử C = k > 1, gọi S là chu trình chứa giá trị 1. Vì S là một chu trình nên
nếu i ∈
/ S thì X(i) ∈
/ S . Biết rằng C = k , do đó vec-tơ ngẫu nhiên X(i), i ∈
/ S , là
một hoán vị của n − k giá trị không thuộc chu trình. Vì thế với k > 1 thì
P (En | C = k) = Pn−k ,

k>1

Thay thế kết quả từ (??), (??), (??) vào (??) ta được
1
Pn =
n

tương đương với

n

Pn−k
k=2

n

nPn =


Pn−k
k=2

18

Footer Page 20 of 16.

(1.6)


Header Page 21 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

Thay n bằng n − 1 vào đẳng thức trước
n−1

(n − 1)Pn−1 =

Pn−1−k
k=2

Thực hiện phép trừ
nPn − (n − 1)Pn−1 = Pn−2

Hay
1
Pn − Pn−1 = − (Pn−1 − Pn−2 )

n
1
2

Với P1 = 0 và P2 = , từ đẳng thức trên trên ta có:
1
1
P3 − P2 = − (P2 − P1 ) = − hoặc P3 =
3
3!
1
1
hoặc P4 =
P4 − P3 = − (P3 − P2 ) = −
4
4!

Tổng quát,
1
1
1
(−1)n
Pn = − + − ... +
=
2! 3! 4!
n!

n

i=0


1
1

2! 3!
1
1
1
− +
2! 3! 4!

(−1)i
i!

Để tính toán xác suất của chính xác k điểm cố định, chúng ta sẽ xem xét
một tập hợp cố định gồm k phần tử trong các giá trị 1, . . . , n, giả sử là 1, 2, . . . , k .
Gọi S là tập hợp các phần tử cố định thì
P {S = {1, ..., k}} = P {X(i) = i, i = 1, ..., k

không có điểm cố định khác}
Tuy nhiên,
P {X(i) = i, i = 1, ..., k} =

1 1
1
...
nn−1 n−k+1


P { không có điểm cố định khác|X(i) = i, i = 1, ..., k} = Pn−k


trong đó đẳng thức trên trên dựa trên điều kiện X(i) = i, i = 1, . . . , k , số lượng
X(j), j > k có thể coi là một hoán vị trên tập hợp gồm n − k giá trị j, j > k , khi
đó xác suất để không có điểm cố định nào trong hoán vị này là Pn−k . Do vậy,
P {S = {1, ..., k}} =

19

Footer Page 21 of 16.

(n − k)!
Pn−k
n!


Header Page 22 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng

Vì có nk lựa chọn k điểm cố định nên từ đẳng thức trên trên, với F là số điểm
cố định của hoán vị ngẫu nhiên thì
n−k

(−1)i /i!
P {F = k} =

n (n − k)!
Pn−k
Pn−k =

=
k
n!
k!

i=0

k!

Với n lớn
lim P {F = k} = e−1 /k!

n→∞

Kết quả là, khi n lớn số điểm cố định của hoán vị ngẫu nhiên xấp xỉ một
biến Poisson ngẫu nhiên với trị số trung bình là 1.
Bây giờ ta sẽ xác định hàm phân phối của N với N là số chu trình của hoán
vị ngẫu nhiên. Coi chu trình đầu tiên là chu trình chứa giá trị 1, chu trình thứ
hai chứa giá trị nhỏ nhất không thuộc chu trình đầu, chu trình thứ ba là chu
trình chứa giá trị nhỏ nhất không thuộc chu trình thứ nhất và thứ hai, cứ tiếp
tục như vậy cho tới chu trình cuối cùng. Ta hãy xem xét một hoán vị chứa các
chu trình theo thứ tự tăng dần, mỗi chu trình bắt đầu từ giá trị được đánh số
thấp nhất trong chu trình đó. Gọi hoán vị này là hoán vị chu trình, đặt Ij bằng
1 nếu giá trị ở vị trí j trong hoán vị chu trình là giá trị cuối cùng của một chu
trình và bằng 0 trong các trường hợp còn lại. Ví dụ, nếu hoán vị ngẫu nhiên là
X(1) = 2, X(2) = 4, X(3) = 6, X(4) = 1, X(5) = 5, X(6) = 3

thì hoán vị chu trình là
1, 2, 4, 3, 6, 5


và I3 = I5 = I6 = 1, I1 = I2 = I4 = 0. Vì N là tổng số các chu trình nên ta có
n

N=

Ij
j=1

Gọi Yj là giá trị thứ j trong hoán vị chu trình, biết rằng chuỗi
X(Y1 ), . . . , X(Yj−1 ), biến ngẫu nhiên X(Yj ) có thể là bất cứ giá trị nào trong
n − j + 1 giá trị trong chuỗi này, trong đó một giá trị sẽ dẫn tới kết quả Yj là giá
trị cuối cùng trong dãy. Như vậy, ta đã chứng minh Hệ quả sau:
Hệ quả 1.1.3.
n

N=

Ij
j=1

20

Footer Page 22 of 16.


Header Page 23 of 16.
Luận văn tốt nghiệp

Phạm Thị Thu Hằng


trong đó I1 , . . . , In là các biến ngẫu nhiên độc lập sao cho
P {Ij = 1} =

1
= 1 − P {Ij = 0},
n−j+1

j = 1, ..., n

Từ Hệ quả 1.1.3 , có
n

E[N ] =
i=1

n

1
i

Var(N ) =
i=1

i−1
i2

Ngoài ra, khi n lớn, từ Hệ quả 1.1.3 và định lý giới hạn trung tâm, N có hàm
phân phối xấp xỉ chuẩn.
1.1.4.1 Phép nghịch đảo


Một số liệu khác cần tính toán là số nghịch đảo của hoán vị ngẫu nhiên mà
tại đó với bất cứ hoán vị nào trong các hoán vị 1, 2, . . . , n, ta nói rằng cặp thứ
tự (i, j) là một nghịch đảo nếu i < j nhưng j đứng trước i trong hoán vị. Ví dụ
hoán vị
2, 4, 1, 5, 6, 3

có năm nghịch đảo là (1, 2), (1, 4), (3, 4), (3, 5), (3, 6).
Gọi N là số nghịch đảo của một hoán vị ngẫu nhiên của 1, . . . , n. Nếu ta gọi
nếu (i,j) là một nghịch đảo
ngược lại

1,
0,

I(i, j) =

thì
N=

(1.7)

I(i, j)
j

i
Vì cũng như hoán vị ngẫu nhiên,i đứng trước j vẫn giống như j đứng trước
i, ta thấy rằng:
E[N ] =


E[I(i, j)] =
j

i
n
2

2=

n(n − 1)
4

(1.8)

Chúng ta có thể áp dụng đẳng thức (??) để tính phương sai của N nhưng sẽ
rõ ràng hơn nếu xác định được biến ngẫu nhiên Nj , j = 1, . . . , n bằng cách:
Nj =

I(i, j)
i
21

Footer Page 23 of 16.


Header Page 24 of 16.
Luận văn tốt nghiệp


Phạm Thị Thu Hằng

Trong đó, Nj là số nghịch đảo của hoán vị tạo ra khi j đứng trước một phần tử
nhỏ hơn nó. Ta có
n
Nj

N=
j=1

tầm quan trọng của biểu thức này nằm ở chỗ biến ngẫu nhiên N1 , . . . , Nn là độc
lập với nhau. Để biết nguyên nhân tại sao, hãy nhớ rằng nếu biết các giá trị
N1 , . . . , Nj thì cũng sẽ biết thứ tự tương đối của 1, . . . , j trong hoán vị. Ví dụ
nếu 2 đứng trước 3 và 3 đứng trước 1 thì sẽ là trường hợp N1 = 0, N2 = 1, N3 = 1
trong hoán vị ngẫu nhiên. Tuy nhiên vì thứ tự tương đối 1, . . . , j không cho ta
biết có bao nhiêu giá trị trong số các giá trị này đứng sau j + 1 nên Nj+1 độc
lập với N1 , . . . , Nj ; do đó, các biễn ngẫu nhiên N1 , . . . , Nn độc lập. Hơn nữa, vì
trong hoán vị ngẫu nhiên, j có thể xuất bất cứ vị trí nào với xác suất như nhau
trong các giá trị 1, . . . , j nên
P {Nj = k} = 1/j,

k = 0, ..., j − 1

Do vậy,
1
E[Nj ] =
j
E[Nj2 ]

1

=
j

j−1

k=
k=0

j−1

k2 =
k=0

thu được
Var(Nj ) =

j−1
2

(j − 1)(2j − 1)
6
j2 − 1
12

n

Áp dụng biểu thức trên

N=


Nj
j=1

cùng với sự độc lập của Nj ta được:
n

Var(N ) =
j=1

j2 − 1
n(n − 1)(2n + 5)
=
12
72

(1.9)

Ví dụ 1.1.3. Một phương pháp thông dụng để sắp xếp một dãy các số khác
nhau là phương pháp sắp xếp chèn. Phương pháp này được thực hiện theo nguyên
tắc lần lượt sắp xếp các giá trị i đầu tiên trong danh sách với i = 1, 2, . . . , n. Tại
bước i, i = 1, . . . , n, giá trị thứ i trong danh sách được xem xét và chèn vào vị trí
thích hợp giữa danh sách đã sắp xếp theo thứ tự của i − 1 giá trị đầu, chuyển
22

Footer Page 24 of 16.


Header Page 25 of 16.
Luận văn tốt nghiệp


Phạm Thị Thu Hằng

mỗi giá trị lớn hơn vào bên phải để tạo chỗ cho giá trị mới. Ví dụ, giả sử danh
sách ban đầu là:
6

1

4

2

5

3

Bảng dưới đây thể hiện danh sách được sau xếp sau mỗi bước, in đậm thể
hiện các giá trị được di chuyển.
6
1
1
1
1
1

6
4
2
2
2


6
4
4
3

6
5
4

6
5

6

Gọi X là tổng số giá trị được di chuyển. Giả sử thứ tự ban đầu trong danh sách
có thể là bất cứ thứ tự nào trong n! thứ tự có thể có, ta hãy tìm E[X] và Var(X).
Lời giải. Với i < j , giá trị nhỏ thứ j sẽ được di chuyển khi giá trị nhỏ thứ i được
chèn vào nếu thấy giá trị nhỏ thứ j đứng trước giá trị nhỏ thứ i trong danh sách
ban đầu. Vì vậy, số giá trị được di chuyển bằng với số nghịch đảo của thứ tự
ban đầu. Khi đó, từ (??) và (??) ta thấy
E[X] =

n(n − 1)
4

V ar[X] =

n(n − 1)(2n + 5)
72



1.1.4.2 Dãy số con tăng dần

Chúng ta gọi X(i1 ), . . . , X(ik ) là dãy số con tăng dần của hoán vị ngẫu nhiên
nếu i1 < i2 < . . . < ik và X(i1 ) < X(i2 ) < . . . < X(ik ).
Ví dụ 1.1.4. Tìm E[X] trong đó X là số dãy số con tăng dần
Lời giải. Với bất cứ dãy số con Sk của k chỉ số i tăng dần i1 < i2 < . . . < ik , I(S)
bằng 1 nếu X(i1 ) < . . . < X(ik ) và bằng 0 nếu không thỏa mãn điều kiện này.
Vì tất cả thứ tự có thể của các giá trị X(i1 ), . . . , X(ik ) là
E[I(Sk )] = 1/k!

Nên với
X=

I(Sk )
k

Sk

23

Footer Page 25 of 16.


×