1. Trang chủ
  2. » Giáo án - Bài giảng

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

50 877 8
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thuật toán song song cho một số bài toán trên đồ thị
Trường học Trường Đại Học Công Nghệ
Chuyên ngành Công nghệ thông tin
Thể loại bài luận
Thành phố Hà Nội
Định dạng
Số trang 50
Dung lượng 770 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đạ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

Trang 1

THUẬT TOÁN SONG SONG CHO MỘT SỐ BÀI TOÁN

TRÊN ĐỒ THỊ

Trang 2

Nội dung

Trang 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

Trang 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

Trang 5

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

 EREW (Exclusive Read, Exclusive Write)

 CRCW (Concurent Read Concurent Write)

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

Trang 6

 Độ phức tạp của bài toán

Trang 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

Trang 8

Một số thuật toán song song cơ

bản trên đồ thị

 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ị,

 Cây khung tối thiểu

 Đường đi ngắn nhất đơn nguồn

Trang 9

Duyệt cây có thứ tự tổng quát

Trang 10

Tâm và median của cây

 Ý tưởng : sử dụng thuật toán

song song tìm tổ tiên chung gần

j i d i

t

1

) , ( )

(

Trang 11

Tìm kiếm theo chiều rộng

Trang 12

Cây khung tối thiểu

của Prim-Dijkstra

-Thực hiện :

+ Giả sử có K bộ xử lý p1, p2, …, pK

+ Phân một tập con nút cho mỗi pi

+ 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ý

Trang 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

Trang 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ó.

Trang 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ụ.

Trang 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ử.

Trang 17

) 3 ( , ,

2 , 1 ,

;

) 2 (

) 1 ( , ,

2 , 1

; 1

i ii

i ij

n j

i k

n j

ξ ξ

ξ ξ

Với điều kiện

Trang 18

Các phương pháp đã giải quyết

Trang 19

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

Trang 20

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

Trang 21

Thuật toán nhánh cận giải bài

toán k-median

 Lựa chọn theo độ sâu

 Lựa chọn cận tốt nhất đầu tiên

 Phân nhánh : Nếu bài toán con có lời giải bộ phận là

a 1 a 2 …a i-1 thì nó sẽ được phân thành (n-m+i – a i-1 ) bài toán con với lời giải bộ phận tương ứng là (a 1 ,a 2 ,….,a i-1 +1); ……;

(a 1 ,a 2 ,… ,n-k+i)

Ví dụ : n = 10, k = 5; bài toán con hiện tại có lời giải bộ phận là

Trang 22

Tính cận

 Bài toán nới lỏng lagrage

Với điều kiện

 Bài toán đối ngẫu

Với điều kiện

W

{ } 0 , 1 ( 4 )

) 3 ( , ,

2 , 1 ,

;

) 2 (

) 1 ( , ,

2 , 1

; 1

i k

n j

ξ

ξ ξ

) 7 ( , ,

2 , 1 ,

, 0

) 6 ( ,

, , 2 , 1 ,

) 5 (

0

, 1 1

i j n j

i

i j n

j i d

ij

ij ij

j

n

i j

j ij n

π σ

σ

Trang 23

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

 Phân loại thuật toán nhánh cận song song

 Lựa chọn kiến trúc thiết kế thuật toán song song

 Thiết kế mô hình thuật toán song song

Trang 24

Phân loại thuật toán nhánh cận song song

 Song song loại 1 : Song song hóa các pha trong thuật toán tuần tự

 Song song loại 2 : Thực hiện các hoạt động trên các bài toán con một cách đồng thời

 Song song loại 3 : Một vài cây nhánh cận được xây dựng một cách song song

Trang 25

Phân loại thuật toán nhánh cận song song

 Song song loại 1 : Song song hóa các pha trong thuật toán tuần tự

trên các bài toán con một cách đồng thời

 Song song loại 3 : Một vài cây nhánh cận được xây dựng một cách song song

Trang 26

Lựa chọn kiến trúc

Trang 27

Lựa chọn kiến trúc

 Bộ nhớ phân tán  Bộ nhớ dùng chung

Trang 28

Thiết kế mô hình thuật toán nhánh cận song song

 Quản lý tập bài toán con

 Lược đồ thực hiện

 Xây dựng hệ thống

Trang 29

Quản lý tập bài toán con

 Cân bằng số lượng : đảm bảo rằng không có bộ xử

lý nào được nghỉ ngơi trong khi các bộ xử lý khác có một số lượng lớn nút cần ước lượng.

 Dò xét kết thúc : Khi hoàn tất quá trình tìm kiếm.

 Cân bằng chất lượng : Đảm bảo các bộ xử lý đều khai thác nút có khả năng dễ dẫn tới lời giải tối ưu.

Trang 30

Cân bằng số lượng

 Ý tưởng : Khi tập hoạt động tại một bộ xử lý trở nên

rỗng, thì bộ xử lý có tập hoạt động lớn nhất sẽ gửi một phần công việc của nó tới bộ xử lý rỗng sao cho số lượng công việc trong hai bộ xử lý xấp xỉ nhau

 Thực hiện : BXL có các nút , thì sẽ gửi tới BXL yêu cầu Trong đó

 Bộ xử lý có tập hoạt động lớn nhất ? => Sử dụng một “bộ giám sát” trên máy chủ

Trang 31

Dò xét kết thúc và cân bằng chất lượng

máy thợ đều rỗi.

trọng số đánh giá chất lượng tập hoạt động.

 Thực hiện : nếu thì tráo đổi nút giữa hai bộ xử lý

ωmax, ωmin là chất lượng tập hoạt động cực đại, cực tiểu

∆ : dung sai chất lượng

Trang 32

Sơ đồ hệ thống

Trang 33

Thiết kế chương trình

 Tổng quan hệ thống

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

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

 Kết quả thực nghiệm

 Nhận xét và hướng phát triển

Trang 34

Tổng quan hệ thống

Trang 35

Thuật

toán

tuần

tự

Trang 36

Lược đồ song song dữ liệu tập trung

 Ý tưởng : Danh sách các bài toán con chưa được giải quyết lưu tại máy chủ, các bài toán con được rời và gửi tới các máy thợ Mỗi máy thợ khi nhận bài toán con tiến hành phân nhánh, tính cận và lưu vào một danh sách cục bộ Sau đó nó gửi tới máy chủ, máy chủ lúc này tiến hành nối các bài toán con nhận được tới kho dữ liệu tập

Trang 39

Lược đồ song song dữ liệu phân tán

 Ý tưởng : Mỗi máy thợ lưu một danh sách các bài toán con cục bộ Máy chủ chỉ gửi bài toán con đầu tiên tới một máy thợ rỗi ban đầu và sau đó không lưu trữ bất kỳ bài toán con nào mà chỉ thực hiện điều phối các bài toán con giữa các máy thợ

 Cấu trúc dữ liệu : Danh sách liên kết

 Thuật toán

Trang 42

Floyd.dat kmedian.dat

Trang 43

s

T N

Thời gian thực hiện thuật toán tuần

tự (T s giây)

Thời gian thực hiện thuật toán song song - Dữ liệu tập trung (Tp giây)

Hiệu suất Thời gian

thực hiện thuật toán song song - Dữ liệu phân tán (Tp giây)

Hiệu suất

Trang 45

s

T N

Thời gian thực hiện thuật toán song song - Dữ liệu tập trung (Tp giây)

Hiệu suất Thời gian

thực hiện thuật toán song song - Dữ liệu phân tán (Tp giây)

Hiệu suất

Trang 47

Hướng phát triển

 Quá trình khởi tạo : mất nhiều thời gian, lãng phí tài nguyên

 Giải pháp : Chia đều cho các bộ xử lý

 Tính cận : Mới sử dụng phương pháp đối ngẫu bài toán nới lỏng lagrange

Trang 48

Hướng phát triển (tiếp)

năng phát triển theo chiều rộng.

 Giải pháp : sử dụng danh sách liên kết có kiểu như sau

 Giải pháp : Sử dụng hệ thống gồm hai pha, pha thứ nhất

là thuật toán di truyền song song, pha thứ hai là thuật

Trang 49

Hướng phát triển (tiếp)

 Hoàn thiện hệ thống trở thành một khung chương trình sử dụng giải quyết các bài toán tối ưu dựa trên kỹ thuật nhánh cận.

 Cài đặt tất cả các chiến lược trong các pha của thuật toán nhánh cận(như lựa chọn nút, ).

 Xây dựng khung chương trình cho các kỹ thuật khác như thuật toán di truyền, chia để trị, qui hoạch động, và một số

kỹ thuật Heuristic

 Xây dựng hệ thống trên mô hình bộ nhớ dùng chung.

Trang 50

Kết luận

 Hệ thống lại một số kiến thức đại cương về tính toán song song

 Trình bày một cách hệ thống một số thuật toán song song cơ bản trên đồ thị

 Đề xuất thuật toán tuần tự và thuật toán

song song để tìm lời giải chính xác cho bài toán k-median

 Xây dựng và đánh giá hệ thống đã đề xuất

Ngày đăng: 31/05/2013, 00:20

HÌNH ẢNH LIÊN QUAN

Sơ đồ hệ thống - Thuật toán song song cho một số bài toán trên đồ thị
Sơ đồ h ệ thống (Trang 32)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w