Chứng minh thuật toán song song là đúng

Một phần của tài liệu 28011_1712202001859504LUANVAN (Trang 43 - 45)

5. Ý nghĩa khoa học và thực tiễn của đề tài

3.3.5.Chứng minh thuật toán song song là đúng

Ta cần lập luận để chứng minh tính đúng đắn của Thuật toán 8 song song liệt kê hoán vị.

(1) ti∈ Z ⋀ si ≤ ti ≤ gi∀i ∈ (1 … n), có nghĩa là sj và gj nằm trong dãy bị chặn với dãy biên nhỏ nhất là s[i]:=0, i = 1, … , n và dãy biên lớn nhất g[i+1]:=i, i = 0, 1, … , n − 1. Thật vậy, sj, gj tính được nhờ bước 7.2, 7.3 trong thuật toán song song bằng cách chèn thêm các phần tử 0 vào trước và p, p+1, n-1 vào bên phải cj nên gj[i] ≤ g[i], i=1,…,n. Còn sj+1 có được dựa vào cj+1 nên ta luôn có s[i] ≤ sj[i], i=1,..,n. Như vậy, sj và gj thỏa công thức (1) với 2 dãy biên s[i] và g[i], i=1,…,n.

Tiếp theo, ta chứng minh tổng số dãy bị chặn trên k-1 bộ xử lý phụ là n!

Khi chọn p (p∈ {2, 3, … , n − 1}) thì số bộ xử lý phụ tham gia tìm các dãy bị chặn là k’=k-1=p! (các bộ xử tìm các dãy nghịch thế là đều nhau).

Dãy biên nhỏ nhất của p1 là s1=(0….0) (n số 0) và dãy biên lớn nhất là g1 theo

công thức (5) . Theo cách tính ở định lý 1 số lượng dãy bị

chặn là C=∏ ( ) thì số lượng các dãy bị chặn của đoạn 1 mà bộ xử lý p1 tính là ∏ ( ) Mỗi bộ xử lý phụ còn lại cũng sẽ tìm số lượng các dãy bị chặn bằng với bộ xử lý p1, nghĩa là bằng: ∏ ( )

Hơn nữa, theo cách tính sj và gj là 2 dãy biên trên bộ xử lý phụ pj thì: sj[i] = gj[i], i = 1, … , p

sj[i] = 0, i = p + 1, … , n gj[i] = i ,i = p , … , n − 1

Áp dụng công thức (2) của định lý 1 cho 2 dãy biên sj và gj ta có số lượng các dãy bị chặn tương ứng với mỗi bộ xử lý phụ là:

∏ ( ) =(p+1)*(p+2)*….* n.

Mặt khác, ta lại có số bộ xử lý phụ k’=k-1=p! nên ta có số lượng các dãy bị chặn tên k-1 bộ xử lý phụ là:

(k-1) !*(p+1)*(p+2)*….* n = p!*(p+1)*(p+2)*….* n = n!

Như vậy, ta có số lượng các dãy bị chặn trên k-1 bộ xử lý phụ là n! tương đương với n! hoán vị. Suy ra thuật toán song song đúng với hoán vị n phần tử là n!.

Độ phức tạp của thuật toán 7 là O(n). Như vậy, độ phức tạp của thuật toán 6 (thuật toán tìm hoán vị bằng dãy bị chặn) bằng O(n.an

) với a =max{(g1-s1+1),(g2- s2+1),…,(gn-sn+1)}. Theo cách chứng minh thuật toán song song là đúng thì khi chia cho k-1 bộ xử lý phụ thì độ phức tạp tính toán của thuật toán song song là (n*bn)/ (k-1) với b=∏ ( ). Vậy độ phức tạp của thuật toán song song là (n*bn)/ (k-1) +T, với b= ∏ ( ) và T là thời gian truyển thông giữa các bộ xử lý. T phụ thuộc vào từng hệ thống vật lý thực tế.

s2 =(0 … 0 1 0…0) p-1 số 0 n-p số 0

CHƯƠNG 4

THỬ NGHIỆM VỚI THƯ VIỆN THREAD

Một phần của tài liệu 28011_1712202001859504LUANVAN (Trang 43 - 45)