song song hóa một số thuật toán tổ hợp

67 1.3K 1
song song hóa một số thuật toán tổ hợ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN Vũ Hồng Linh SONG SONG HÓA MỘT SỐ THUẬT TOÁN TỔ HỢP Chuyên ngành: Bảo đảm toán học cho máy tính và hệ thống tính toán Mã số: 604635 LUẬN VĂN THẠC SĨ KHOA HỌC Người hướng dẫn khoa học: PGS.TS. HOÀNG CHÍ THÀNH Hà Nội – 2011 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 2 LỜI CẢM ƠN Tôi xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới PGS.TS Hoàng Chí Thành, người đã trực tiếp hướng dẫn, giúp đỡ, động viên tôi trong suốt thời gian thực hiện luận văn này. Con cảm ơn Cha, Mẹ và gia đình, những người đã dạy dỗ, khuyến khích, động viên con trong những lúc khó khăn, tạo mọi điều kiện cho con nghiên cứu học tập. Tôi cũng xin chân thành cảm ơn các Thầy Cô trong Bộ môn Tin học, 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 và các bạn bè, đồng nghiệp tại Trường Dự bị Đại Học Dân tộc Trung Ương đã giúp đỡ tôi rất nhiều trong quá trình học tập, sưu tầm tài liệu và trong công tác để tôi có thể hoàn thành bản luận văn này. Dù đã cố gắng hết sức cùng với sự tận tâm của thầy giáo hướng dẫn song do trình độ còn hạn chế nên khó tránh khỏi những thiếu sót. Rất mong nhận được sự góp ý của thầy cô và các bạn. Hà Nội, tháng 10 năm 2011 Học viên Vũ Hồng Linh LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 3 MỤC LỤC MỞ ĐẦU 6 1. LÝ DO CHỌN ĐỀ TÀI 6 2. PHẠM VI NGHIÊN CỨU 7 3. PHƯƠNG PHÁP NGHIÊN CỨU 7 CHƯƠNG 1. TỔNG QUAN VỀ TÍNH TOÁN SONG SONG 8 1.1 CÁC MÔ HÌNH TÍNH TOÁN SONG SONG 8 1.1.1 Mô hình SISD (Single Instruction, Single Data) 8 1.1.2 Mô hình SIMD (Single Instruction, Multiple Data) 9 1.1.3 Mô hình MISD (Multiple Instruction, Single Data) 9 1.1.4 Mô hình MIMD (Multiple Instruction, Multiple Data) 10 1.2 MỘT SỐ KỸ THUẬT PHÂN RÃ TRONG TÍNH TOÁN SONG SONG 11 1.2.1 Phân rã đệ quy (recursive decomposition) 12 1.2.2 Phân rã dữ liệu (data-decomposition) 13 2.2.3 Phân rã thăm dò (exploratory decomposition) 17 1.3 KỸ THUẬT SONG SONG HÓA TÍNH TOÁN DỰA TRÊN PHÂN ĐOẠN DÃY CÁC NGHIỆM CỦA BÀI TOÁN 20 CHƯƠNG 2. BÀI TOÁN DÃY BỊ CHẶN 22 2.1 BÀI TOÁN DÃY BỊ CHẶN 22 2.2 THUẬT TOÁN TÌM CÁC DÃY BỊ CHẶN 23 2.3 SONG SONG HÓA THUẬT TOÁN TÌM CÁC DÃY BỊ CHẶN 25 CHƯƠNG 3. ÁP DỤNG CHO MỘT SỐ BÀI TOÁN TỔ HỢP 28 3.1 BÀI TOÁN HOÁN VỊ 28 3.1.1 Bài toán hoán vị 28 3.1.2 Thuật toán sinh các hoán vị 29 3.1.3 Song song hóa thuật toán sinh các hoán vị 36 3.1.4 Ứng dụng của bài toán hoán vị 37 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 4 3.2 BÀI TOÁN TẬP CON 39 3.2.1 Bài toán tập con 40 3.2.2 Thuật toán sinh các tập con 41 3.2.3 Song song hóa thuật toán sinh các tập con 42 3.2.4 Ứng dụng của bài toán tập con 42 3.3 BÀI TOÁN PHÂN HOẠCH 43 3.3.1 Bài toán phân hoạch 43 3.3.2 Thuật toán tìm các phân hoạch 47 3.3.3 Song song hóa thuật toán tìm các phân hoạch 49 3.3.4 Ứng dụng của bài toán phân hoạch 49 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51 TÀI LIỆU THAM KHẢO 53 PHỤ LỤC 54 PHỤ LỤC 1. BÀI TOÁN DÃY BỊ CHẶN 54 1. Chương trình cho thuật toán tuần tự 54 2. Chương trình cho thuật toán khi phân đoạn nghiệm 55 PHỤ LỤC 2. BÀI TOÁN HOÁN VỊ 58 1. Chương trình cho thuật toán tuần tự 58 2. Chương trình cho thuật toán khi phân đoạn nghiệm 59 PHỤ LỤC 3. BÀI TOÁN TẬP CON 62 1. Chương trình cho thuật toán tuần tự 62 2. Chương trình cho thuật toán khi phân đoạn nghiệm 63 PHỤ LỤC 4. BÀI TOÁN PHÂN HOẠCH 65 1. Chương trình cho thuật toán tuần tự 65 2. Chương trình cho thuật toán khi phân đoạn nghiệm 66 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 5 MỤC LỤC CÁC HÌNH VẼ Hình 1. Mô hình tính toán tuần tự ………………………………………… 6 Hình 1.1. Mô hình máy tính SISD 8 Hình 1.2. Mô hình máy tính SIMD 9 Hình 1.3. Mô hình máy tính MISD 10 Hình 1.4. Mô hình máy tính MIMD 11 Hình 1.5. Phân rã đệ quy sắp xếp dãy gồm 12 chữ số 13 Hình 1.6. Phân rã phép nhân ma trận 14 a) Phân hoạch các ma trận đầu vào và đầu ra thành 2x2 ma trận con 14 b) Một phân rã của phép nhân ma trận thành bốn công việc dựa trên các phân hoạch của các ma trận trong (a) 14 Hình 1.7. Nhân hai ma trận A và B với phân hoạch của ma trận trung gian 3 chiều D 16 Hình 1.8. Một phân rã của phép nhân ma trận dựa trên việc phân hoạch ma trận trung gian 3 chiều D 17 Hình 1.9. Đồ thị phụ thuộc của phân rã trong Hình 1.8 17 Hình 1.10. Phân rã thăm dò minh họa cho Bài toán đố thứ 15 19 Hình 1.11. Sơ đồ tính toán song song tìm các nghiệm của bài toán 21 Hình 3.1. Loại a i và dồn danh sách XS ….………………………………….35 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 6 MỞ ĐẦU 1. LÝ DO CHỌN ĐỀ TÀI Trong tính toán truyền thống, phần mềm máy tính được viết cho tính toán tuần tự. Để giải quyết một bài toán, một thuật toán được xây dựng và thực hiện như một chuỗi tuần tự các lệnh. Các lệnh này được thực hiện trong bộ xử lý trung tâm (CPU) của máy tính. Tại một thời điểm, chỉ có một lệnh được thực hiện. Sau khi lệnh trước kết thúc thì lệnh tiếp theo mới được thực hiện. Quá trình thực hiện các lệnh được thể hiện như hình dưới đây. Hình 1. Mô hình tính toán tuần tự Tính toán song song là một hình thức tính toán, trong đó nhiều tính toán được thực hiện đồng thời. Tính toán song song hoạt động trên nguyên tắc một bài toán lớn được chia thành các bài toán nhỏ hơn, sau đó các bài toán này được giải quyết đồng thời. Song song đã được sử dụng nhiều năm và trong những năm gần đây tính toán song song đã trở thành mô hình thống trị trong kiến trúc máy tính, chủ yếu dưới hình thức các bộ đa xử lý (multi-processors). Vậy, tại sao phải tính toán song song? Mặc dù tốc độ xử lý của các bộ xử lý tăng lên nhiều, nhưng do giới hạn về vật lý nên khả năng tính toán của chúng không thể tăng mãi được. Điều này dẫn tới là muốn tăng được khả năng tính toán của các hệ thống máy tính thì phải khai thác được khả năng xử lý song song của chúng. LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 7 Nhiều bài toán với số lượng tính toán rất lớn như bài toán mô phỏng thời tiết, bài toán tạo hình trong y học hay phân tích mật mã… không thể giải được trong một khoảng thời gian hợp lý nếu sử dụng tính toán tuần tự - ngay cả khi ta thực hiện trên các siêu máy tính, do đó đòi hỏi phải sử dụng những hệ thống đa bộ xử lý và xử lý song song. Để song song hóa tính toán, chúng ta có thể chia bài toán thành các bài toán nhỏ hơn rồi giải quyết song song các bài toán đó như chiến lược chia để trị. Hoặc có thể chia nhỏ dữ liệu của bài toán rồi giải quyết song song theo từng phần. Tuy nhiên, với các bài toán tổ hợp thì hai phương pháp trên là không khả thi. Với một hướng tiếp cận mới, song song hóa tính toán dựa trên phân đoạn dãy các nghiệm của bài toán, chúng tôi sẽ giải quyết được vấn đề song song hóa các thuật toán tổ hợp. 2. PHẠM VI NGHIÊN CỨU Trong phạm vi một luận văn thạc sĩ, đề tài tập trung nghiên cứu cơ sở lý thuyết và ứng dụng. Trên cơ sở đó, tiến hành phân đoạn dãy nghiệm cho một số bài toán tổ hợp tiêu biểu. 3. PHƯƠNG PHÁP NGHIÊN CỨU - Phương pháp nghiên cứu tài liệu - Phương pháp phân tích - Phương pháp tổng hợp - Phương pháp thực nghiệm - Phương pháp lập trình LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 8 CHƯƠNG 1. TỔNG QUAN VỀ TÍNH TOÁN SONG SONG 1.1 CÁC MÔ HÌNH TÍNH TOÁN SONG SONG Có nhiều cách phân loại các kiến trúc tính toán khác nhau trong đó sự phân loại của M. Flynn được dùng phổ biến nhất. Flynn phân loại kiến trúc máy tính dựa trên một số đặc tính như: số lượng bộ xử lý, số lượng các chương trình chúng có thể thực hiện và cấu trúc của bộ nhớ. Sự phân loại này đã dẫn đến bốn mô hình kiến trúc tính toán như sau: 1.1.1 Mô hình SISD (Single Instruction, Single Data) Những máy tính SISD chỉ có một CPU mà tại một thời điểm chúng chỉ thực hiện duy nhất một lệnh (Single Instruction) và chỉ có thể xử lý một đối tượng dữ liệu (Single Data). Hình 1.1. Mô hình máy tính SISD Chẳng hạn, khi thực hiện phép tính C = A + B và A = B*2 thì máy sẽ thực hiện tuần tự như sau: Arithmetic Processor Memory Instruction Results Data Stream Control Unit Control Signals LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 9 Mô hình SISD chính là mô hình máy tính truyền thống kiểu Von Neumann. 1.1.2 Mô hình SIMD (Single Instruction, Multiple Data) Những máy tính SIMD có một bộ điều khiển và chỉ thực hiện một lệnh tại một thời điểm nhưng chúng có nhiều phần tử xử lý. Hình 1.2. Mô hình máy tính SIMD Bộ điều khiển phát ra tín hiệu điều khiển cho các phần tử xử lý và các phần tử xử lý này sẽ thực hiện cùng một thao tác trên các đối tượng dữ liệu khác nhau. 1.1.3 Mô hình MISD (Multiple Instruction, Single Data) Máy tính loại MISD là ngược lại với SIMD. Máy tính MISD có thể thực hiện nhiều chương trình (nhiều lệnh) trên cùng một mục dữ liệu, nên còn Con trol Unit Processing Element 2 Processing Element 3 Processing Element 1 Cotrol signals Cotrol signals LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 10 được gọi là MPSD (đa chương trình, đơn luồng dữ liệu). Kiến trúc kiểu này có thể chia thành hai nhóm:  Lớp các máy tính yêu cầu những bộ xử lý khác nhau có thể nhận được những lệnh khác nhau để thực hiện trên cùng một mục dữ liệu. Hình 1.3. Mô hình MISD  Lớp các máy tính có các luồng dữ liệu được chuyển tuần tự theo dãy các CPU liên tiếp. 1.1.4 Mô hình MIMD (Multiple Instruction, Multiple Data) MIMD là một hệ thống đa bộ xử lý hoặc đa máy tính. Mỗi bộ xử lý trong hệ thống này có một bộ điều khiển riêng. Data stream Instruction Stream 1 Control Unit1 Control Unit 2 Control Unit n Arithmetic Processor 1 Instruction Stream2 Instruction Stream n Arithmetic Processor 2 Arithmetic Processor n [...]... tính toán song song 20 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp Hình 1.11 Sơ đồ tính toán song song tìm các nghiệm của bài toán Khi đó thời gian tìm nghiệm giảm đáng kể theo số các đoạn con nghiệm được chia Việc tổ chức tính toán song song các nghiệm theo kỹ thuật này là sự kết hợp giữa thiết kế thuật toán theo kiểu dưới lên và chia để trị 21 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán. .. cho một công việc để tiếp tục khám phá cho đến khi ít nhất một trong số đó tìm thấy một nghiệm Ngay sau khi một công việc tìm thấy nghiệm nó sẽ thông báo cho các công việc khác để chấm dứt việc tìm kiếm 18 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp Hình 1.10 Phân rã thăm dò minh họa cho bài toán đố thứ 15 19 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 1.3 KỸ THUẬT SONG SONG HÓA... chạy một chương trình riêng 1.2 MỘT SỐ KỸ THUẬT PHÂN RÃ TRONG TÍNH TOÁN SONG SONG Quá trình phân chia một bài toán thành các bài toán nhỏ hơn, một số hoặc tất cả các bài toán nhỏ đó có thể được thực hiện song song, được gọi là phân rã Việc thực hiện đồng thời nhiều tính toán là chìa khóa để giảm thời 11 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp gian cần thiết để giải quyết toàn bộ bài toán. .. CAO HỌC Song song hóa một số thuật toán tổ hợp Phân hoạch dữ liệu đầu vào: Phân hoạch dữ liệu đầu ra chỉ thực hiện được khi mỗi dữ liệu đầu ra có thể được tính toán như một chức năng của đầu vào Trong nhiều thuật toán, khó hoặc không thể phân hoạch được dữ liệu đầu ra Ví dụ, trong tìm kiếm phần tử max, min hoặc tổng của một tập hợp số, dữ liệu đầu ra là một giá trị chưa xác định Trong thuật toán sắp... của thuật toán: Dòng lệnh 2) khởi gán dãy T với độ phức tạp O(n) n Từ dòng lệnh số 3) đến dòng lệnh số 10) tìm và in ra đủ  (g i  si  1) i 1 dãy T Trong đó chu trình 5) đến 9) xác định vị trí thay đổi và sinh dãy tiếp theo có độ phức tạp là O(n) 24 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp n Vậy độ phức tạp tổng thể của thuật toán là O(n  ( g i  si  1) ) i 1 2.3 SONG SONG HÓA THUẬT... LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp CHƯƠNG 3 ÁP DỤNG CHO MỘT SỐ BÀI TOÁN TỔ HỢP 3.1 BÀI TOÁN HOÁN VỊ Trong toán học, khái niệm hoán vị được sử dụng với nhiều nghĩa hơi khác nhau, tất cả đều liên quan đến việc thay đổi trật tự của các đối tượng hoặc các giá trị Ta có thể hiểu rằng, một hoán vị của một tập các đối tượng là một sự liệt kê của các đối tượng đó theo một trật tự nhất... bài toán ban đầu Ví dụ 1.1: Xét bài toán sắp xếp dãy n phần tử A sử dụng thuật toán quicksort (giả sử n = 12) Quicksort là một thuật toán chia để trị mà bắt đầu chọn một phần tử trục x Sau đó phân hoạch dãy A thành 2 dãy con A0 và A1 sao cho các phần tử của A0 nhỏ hơn x và các phần tử của A1 lớn hơn hoặc bằng x Đây là bước chia 12 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp của thuật toán. .. tính toán trong các công việc 13 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp Các thao tác mà những công việc này thực hiện trên các phân vùng dữ liệu khác nhau thường tương tự (như ví dụ nhân ma trận) hoặc được chọn từ một nhóm nhỏ các thao tác Một số cách phân rã dữ liệu như sau: Phân hoạch dữ liệu đầu ra: Trong nhiều bài toán, mỗi yếu tố đầu ra có thể được tính toán một cách độc lập như một. .. CAO HỌC Song song hóa một số thuật toán tổ hợp CHƯƠNG 2 BÀI TOÁN DÃY BỊ CHẶN Trong chương này chúng ta sẽ tìm hiểu về bài toán dãy bị chặn, xây dựng thuật toán tìm các dãy bị chặn và song song hóa thuật toán này theo kỹ thuật phân đoạn dãy nghiệm đã trình bày trong Chương 1 2.1 BÀI TOÁN DÃY BỊ CHẶN Ký hiệu Z là tập hợp các số nguyên và n  Z Lấy p và q là 2 dãy số nguyên độ dài n: p   p1 p2 pn  và... ≤ q S[1]  p G[1]   S[1]  p  1 , nếu j ≤ q , ngược lại và , ngược lại Nghĩa là, bộ xử lý thứ j giải quyết một bài toán dãy bị chặn với các dãy biên mới (hẹp hơn) Thuật toán cho bộ xử lý thứ j (j = 1, 2,…, m) là: Thuật toán 2.2: 25 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp void main() { float p,q;int m,j,L; 1 Nhap(); 2 Input m; 3 L=G[1]-S[1]+1; p=L/m; q=L%m; 4 Input j; 5 if(j . số thuật toán tổ hợp 19 Hình 1.10. Phân rã thăm dò minh họa cho bài toán đố thứ 15 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 20 1.3 KỸ THUẬT SONG SONG HÓA TÍNH TOÁN DỰA. VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 8 CHƯƠNG 1. TỔNG QUAN VỀ TÍNH TOÁN SONG SONG 1.1 CÁC MÔ HÌNH TÍNH TOÁN SONG SONG Có nhiều cách phân loại các kiến trúc tính toán khác. 3.1.3 Song song hóa thuật toán sinh các hoán vị 36 3.1.4 Ứng dụng của bài toán hoán vị 37 LUẬN VĂN CAO HỌC Song song hóa một số thuật toán tổ hợp 4 3.2 BÀI TOÁN TẬP CON 39 3.2.1 Bài toán tập

Ngày đăng: 08/01/2015, 08:30

Từ khóa liên quan

Mục lục

  • Trang bìa

  • MỤC LỤC

  • MỤC LỤC CÁC HÌNH VẼ

  • MỞ ĐẦU

  • 1.1 CÁC MÔ HÌNH TÍNH TOÁN SONG SONG

  • 1.1.1 Mô hình SISD (Single Instruction, Single Data)

  • 1.1.2 Mô hình SIMD (Single Instruction, Multiple Data)

  • 1.1.3 Mô hình MISD (Multiple Instruction, Single Data)

  • 1.1.4 Mô hình MIMD (Multiple Instruction, Multiple Data)

  • 1.2 MỘT SỐ KỸ THUẬT PHÂN RÃ TRONG TÍNH TOÁN SONG SONG

  • 1.2.1. Phân rã đệ quy

  • 1.2.2. Phân rã dữ liệu

  • 2.2.3. Phân rã thăm dò

  • CHƯƠNG 2. BÀI TOÁN DÃY BỊ CHẶN

  • 2.1 BÀI TOÁN DÃY BỊ CHẶN

  • 2.2 THUẬT TOÁN TÌM CÁC DÃY BỊ CHẶN

  • 2.3 SONG SONG HÓA THUẬT TOÁN TÌM CÁC DÃY BỊ CHẶN

  • CHƯƠNG 3. ÁP DỤNG CHO MỘT SỐ BÀI TOÁN TỔ HỢP

  • 3.1 BÀI TOÁN HOÁN VỊ

  • 3.1.1 Bài toán hoán vị

Tài liệu cùng người dùng

Tài liệu liên quan