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

Một phần của tài liệu Tính toán song song và ứng dụng vào bài toán tổ hợp (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 Tính toán song song và ứng dụng vào bài toán tổ hợp (Trang 43 - 45)

Tải bản đầy đủ (PDF)

(71 trang)