Tải bản đầy đủ (.ppt) (50 trang)

Thuật toán song song cho một số bài toán trên đồ thị

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 (978.98 KB, 50 trang )

1
THUẬT TOÁN SONG SONG
CHO MỘT SỐ BÀI TOÁN
TRÊN ĐỒ THỊ
2
Nội dung

Đại cương về tính toán song song

Một số thuật toán song song cơ bản trên đồ thị

Thuật toán song song giải bài toán K-Median

Thiết kế chương trình
3
Đại cương về tính toán song song

Một số khái niệm và thuật ngữ

Phân loại các kiến trúc song song

Đánh giá độ phức tạp của thuật toán song
song

Một số mẫu thiết kế thuật toán song song
4
Một số khái niệm và thuật ngữ

Tính toán song song hay xử lý song song : là quá trình xử lý
thông tin trong đó nhấn mạnh việc nhiều đơn vị dữ liệu được xử lý
đồng thời bởi một hay nhiều bộ xử lý để giải quyết một bài toán



Tốc độ

Hiệu quả (Efficient) của thuật toán song song được tính bằng : Tốc
độ / số bộ xử lý tham gia tính toán

Giá (cost) của một quá trình tính toán trên hệ thống song song được
tính như sau : Giá = Độ phức tạp tính toán × Số lượng bộ xử lý tham
gia tính toán
Tốc độ =
Thời gian thực hiện trong tình huống xấu nhất theo
thuật toán tuần tự nhanh nhất
Thời gian thực hiện trong tình huống xấu nhất của thuật
toán song song đang xét
5
Phân loại các kiến trúc song song

SISD (single instruction stream, single data stream)

MISD (multiple instruction stream, single data stream)

SIMD (single instruction stream, multiple data stream)

EREW (Exclusive Read, Exclusive Write)

CREW (Concurent Read Exclusive Write)

ERCW (Exclusive Read Concurent Write)

CRCW (Concurent Read Concurent Write)


MIMD (multiple instruction stream, multiple data stream)

Hệ đa xử lý với bộ nhớ phân tán

Hệ đa xử lý dùng chung bộ nhớ

Hệ đa xử lý với bộ nhớ dùng chung phân tán
6
Đánh giá độ phức tạp

Song song giới hạn và song song không
giới hạn

Các kỹ thuật cho việc nâng cao hiệu quả
của thuật toán song song

Giảm số lượng bộ xử lý

Giảm độ phức tạp thuật toán

Độ phức tạp của bài toán
7
Một số mẫu thiết kế thuật toán
song song

Mẫu cây nhị phân

Phát triển bởi nhân
đôi


Chia để trị

Phân chia
8
Một số thuật toán song song cơ
bản trên đồ thị

Thuật toán trên đồ thị không có trọng số

Thuật toán trên cây : Duyệt cây có thứ tự tổng quát, xác định
tổ tiên chung gần nhất, tâm và median của cây.

Tìm kiếm trên đồ thị : Tìm kiếm theo chiều sâu, tìm kiếm theo
chiều rộng.

Thành phần liên thông và một số bài toán liên quan : Tìm
thành phần liên thông, hai liên thông trong đồ thị, tập chu trình cơ
bản, tâm và median của đồ thị,..

Thuật toán trên đồ thị có trọng số

Cây khung tối thiểu

Đường đi ngắn nhất đơn nguồn
9
Duyệt cây có thứ tự tổng quát
10
Tâm và median của cây


Chỉ số ngăn cách :

Chỉ số lan truyền :

c là tâm của cây khi s(c) là tối
thiểu

m là median của cây khi t(m) là
tối thiểu

Ý tưởng : sử dụng thuật toán
song song tìm tổ tiên chung gần
nhất NCA(i, j).
d(i,j) = level(i) + level(j) - 2
×

level(NCA(i,j))
{ }
njjidis ,...2,1|),(max)(
==

≤≤
=
nj
jidit
1
),()(
11
Tìm kiếm theo chiều rộng
12

Cây khung tối thiểu
-
Ý tưởng : Song song hoá thuật toán
của Prim-Dijkstra
-
Thực hiện :
+ Giả sử có
K
bộ xử lý p
1
, p
2
, …, p
K

+ Phân một tập con nút cho mỗi p
i
+ Tại mỗi bước tìm nút gần cây nhất
một cách song song => K nút =>
chọn nút gần nhất và quảng bá tới các
bộ xử lý
13
Thuật toán song song giải bài
toán k-median trên đồ thị

Giới thiệu bài toán

Thuật toán nhánh cận tuần tự

Thuật toán nhánh cận song song

14
Giới thiệu bài toán

Khởi nguồn từ thế kỷ 17, Fermat đưa ra một câu hỏi : Cho
một tam giác (với 3 đỉnh trên mặt phẳng), hãy tìm một điểm ( median)
trong mặt phẳng sao cho tối thiểu hóa tổng khoảng cách từ nó tới các
đỉnh.

Đầu thế kỷ 20, Alfred Weber tổng quát hóa : đưa thêm trọng
số vào đỉnh, số đỉnh n

3, số median k

1

Đầu năm 1960, Hakimi phát triển bài toán tìm k median trên
một đồ thị gồm n đỉnh. Phân ra làm 3 lớp bài toán : K-
median đơn thuần, UFLP , QAP.

Bài toán K-median trên đồ thị tổng quát là NP-khó.
15
Ví dụ minh họa

Có hai vị trí để đặt trạm
phục vụ. Trạm nào sẽ được
đặt :

Chúng ta muốn tối thiểu
hoá tổng khoảng cách từ
các trạm còn lại tới hai

trạm phục vụ.
16
Ví dụ minh họa
Làm sao để biết được
vị trí tối ưu mà không
phải duyệt qua tổ hợp
bộ k phần tử.
17
Mô hình toán học
min
→=

ij
ijij
dZ
ξ
{ }
)4(1,0
)3(,.....,2,1,;
)2(
)1(,.....,2,1;1

=∀≤
=
==


ij
iiij
i

ii
i
ij
nji
k
nj
ξ
ξξ
ξ
ξ
Với điều kiện
18
Các phương pháp đã giải quyết
19
Thuật toán nhánh cận
1. Khởi tạo : Tập hoạt động (tập các bài toán con chưa được duyệt) chứa bài toán ban
đầu, giá trị kỷ lục bằng ∞.
2. Lựa chọn : Lựa chọn và xoá một bài toán con khả thi từ tập hoạt động.
3. Phân nhánh :
i. Phân nhánh để sinh ra các bài toán con mới từ bài toán đang xét. Tính cận của các bài toán
con mới này.
ii. Kiểm tra các bài toán con vừa được sinh ra. Có hai trường hợp : (1) bài toán con đã được
giải quyết – đi tới bước 5, (2) bài toán con chưa được giải quyết – đi tới bước 4.
4. Cập nhật tập hoạt động : Đưa các bài toán con có cận nhỏ hơn kỷ lục tạm thời vào
tập hoạt động.
5. Cập nhật kỷ lục :
1. Nếu giá trị của bài toán con nhỏ hơn kỷ lục và khi đó nó sẽ thay thế kỷ lục. Ngược lại sẽ bị
xóa
2. Khi cập nhật kỷ lục mới (5i) thì tất cả các bài toán con trong tập hoạt động có cận dưới lớn
hơn hoặc bằng kỷ lục sẽ bị xóa

6. Kết thúc thuật toán : Lặp lại các bước từ 2-5 nếu tập hoạt động không rỗng. Ngược
lại, thì kết thúc thuật toán và lời giải tối ưu là giá trị kỷ lục
20
Thuật toán nhánh cận
1. Khởi tạo : Tập hoạt động (tập các bài toán con chưa được duyệt) chứa bài toán ban
đầu, giá trị kỷ lục bằng ∞.
2. Lựa chọn : Lựa chọn và xoá một bài toán con khả thi từ tập hoạt động.
3. Phân nhánh :
i. Phân nhánh để sinh ra các bài toán con mới từ bài toán đang xét. Tính cận của các bài toán
con mới này.
ii. Kiểm tra các bài toán con vừa được sinh ra. Có hai trường hợp : (1) bài toán con đã được
giải quyết – đi tới bước 5, (2) bài toán con chưa được giải quyết – đi tới bước 4.
4. Cập nhật tập hoạt động : Đưa các bài toán con có cận nhỏ hơn kỷ lục tạm thời vào
tập hoạt động.
5. Cập nhật kỷ lục :
1. Nếu giá trị của bài toán con nhỏ hơn kỷ lục và khi đó nó sẽ thay thế kỷ lục. Ngược lại sẽ bị
xóa
2. Khi cập nhật kỷ lục mới (5i) thì tất cả các bài toán con trong tập hoạt động có cận dưới lớn
hơn hoặc bằng kỷ lục sẽ bị xóa
6. Kết thúc thuật toán : Lặp lại các bước từ 2-5 nếu tập hoạt động không rỗng. Ngược
lại, thì kết thúc thuật toán và lời giải tối ưu là giá trị kỷ lục

×