Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 102 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
102
Dung lượng
1,45 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - NGUYỄN SƠN TÙNG NGHIÊN CỨU GIẢI THUẬT ĐÀN KIẾN ĐỂ GIẢI QUYẾT CÁC BÀI TOÁN PHỨC TẠP Chuyên ngành Công nghệ thông tin LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC GS.TS Nguyễn Thanh Thuỷ Hà Nội 3-2012 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp MỤC LỤC DANH MỤC CÁC KÍ HIỆU VÀ TỪ VIẾT TẮT v DANH MỤC HÌNH ẢNH VÀ BẢNG vi LỜI MỞ ĐẦU CHƯƠNG GIỚI THIỆU BÀI TOÁN Các khái niệm sở 1.1 Các khái niệm lớp toán NP-Khó 1.1.1 Thuật toán độ phức tạp thuật toán 1.1.2 Giới thiệu chung lớp toán P, NP, NP- đầy đủ, NP- khó 1.2 Đồ thị 1.2.1 Định nghĩa đồ thị khái niệm 1.2.2 Cấu trúc liệu biểu diễn đồ thị 1.3 Thuật toán xác 13 1.4 Thuật toán gần 14 1.5 Bài toán tối ưu tổ hợp 14 Bài toán Người du lịch 15 2.1 Giới thiệu toán 15 2.2 Các ứng dụng toán 16 2.3 Các hướng giải toán 16 2.3.1 Giải thuật di truyền 16 2.3.2 Giải thuật đàn kiến 18 CHƯƠNG TÌM HIỂU VỀ THUẬT TOÁN ĐÀN KIẾN VÀ TÍNH TOÁN SONG SONG 19 Giới thiệu “Metaheuristic” 19 1.1 Giới thiệu 19 1.2 “Constructive heuristics” 20 1.3 Phương pháp tìm kiếm cục (Local seach methods) 21 1.4 Metaheuristics 22 1.4.1 Phương pháp quỹ đạo (Trajectory methods) 24 1.4.2 Phương pháp dựa quần thể (Population-based methods) 25 1.5 Tối ưu hóa đàn kiến (Ant colony optimization) 26 1.5.1 Giới thiệu thuật toán 26 1.5.2 Nội dung thuật toán 26 1.5.3 Các sơ đồ thuật toán 31 Nguyễn Sơn Tùng ii Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp 1.5.4 Các dạng toán áp dụng thuật toán ACO 41 1.5.5 Các vấn đề cần ý thuật toán 43 Các kĩ thuật song song 49 2.1 Giới thiệu 49 2.2 Lập trình Shared-memory distributed-memory 52 2.3 Mô hình Cluster 54 2.3.1 Mô hình chung hệ thống server cluster 54 2.3.2 Các ưu điểm hệ thống server cluster 54 2.3.3 Các thuật ngữ hệ thống server cluster 55 2.3.4 Các thành phần cluster service 57 2.3.5 Nguyên tắc hoạt động server cluster 62 Giao thức truyền gói tin (MPI) 63 3.1 Kiến trúc máy tính song song 63 3.2 Phân tách toán 64 3.2.1 Phân tách liệu 64 3.2.2 Phân tách công việc 65 3.3 Song song hóa liệu mô hình truyền tin 65 3.4 Tối ưu chương trình song song 66 3.4.1 Phân chia công việc 66 3.4.2 Tối thiểu hóa trao đổi liệu 66 3.5 MPI 67 3.5.1 Lịch sử phát triển MPI 68 3.5.2 Mục đích MPI 69 3.5.3 Các đặc tính chương trình MPI 69 CHƯƠNG 3: GIẢI THUẬT SONG SONG ĐÀN KIẾN GIẢI BÀI TOÁN NGƯỜI DU LỊCH 71 Giới thiệu 71 Giải thuật đàn kiến giải toán TSP 72 Parallel ACO 75 CHƯƠNG CÀI ĐẶT VÀ KẾT QUẢ THỰC NGHIỆM 81 Cài đặt chương trình 81 1.1 Mô hình cluster 81 1.2 Yêu cầu cài đặt hệ thống máy tính sau 81 1.3 Cấu hình mạng 82 1.4 Cấu hình host name 82 1.5 Cấu hình NFS (Network File Sharing) 83 1.6 Cấu hình SSH 85 Nguyễn Sơn Tùng iii Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp 1.7 Cài đặt OpenMPI 86 Kết thử nghiệm 88 2.1 Hệ thống xây dựng nhà 88 2.2 Cách chạy chương trình 89 2.3 Kết thực nghiệm 90 Kết luận kiến nghị 94 TÀI LIỆU THAM KHẢO 96 Nguyễn Sơn Tùng iv Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp DANH MỤC CÁC KÍ HIỆU VÀ TỪ VIẾT TẮT KÝ TỰ VIẾT TẮT TSP ACO MPI Nguyễn Sơn Tùng Ý NGHĨA Traveling Saleman Problem – toán người du lịch Ant colony optimization – tối ưu hóa đàn kiến Message Passing Interface – giao thức truyền gói tin v Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp DANH MỤC HÌNH ẢNH VÀ BẢNG Hình 1: Mô hình phân lớp toán Hình 2: Biểu diễn đồ thị ma trận kề 10 Hình 3: Danh sách cạnh (cung) 12 Hình 4: Ví dụ minh họa danh sách kề 13 Hình 5:Sơ đồ chung giải thuật ACO 29 Hình 6:Cách phân loại mô hình song song 50 Hình 7:Mô hình mở rộng 51 Hình 8: Cấu hình file fstab 85 Hình 9:Cấu hình file bashrc 87 Hình 10: Mô hình hệ thống cluster ảo 88 Hình 11: tạo file hostfile 89 Hình 12: Biểu đồ mối quan hệ thời gian chạy số thành phố 91 Hình 13: Biểu đồ mối quan hệ số process thời gian chạy 92 Hình 14: Biểu đồ mối quan hệ số process kết thu 93 Nguyễn Sơn Tùng vi Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp LỜI MỞ ĐẦU Các toán tối ưu hóa tổ hợp xuất ngày nhiều áp dụng nhiều lĩnh vực kinh tế, thương mại, công nghiệp, y tế, … Tuy nhiên toán khó để giải thực tế Chúng biết đến với tên gọi lớp toán NP-khó Nghĩa thuật toán thời gian tính đa thức để giải nó, ngoại trừ P = NP Bài toán Người Du Lịch (Travelling Salesman Problem- TSP) chứng minh thuộc loại NP-khó Nó xuất nhiều ứng dụng số thành phố hoàn toàn có ý nghĩa Thường thuật toán để giải toán NP-khó chia làm hai loại: Thuật toán xác thuật toán gần Cho tới có nhiều nghiên cứu thuật toán đưa để giải toán NP-khó Một thuật toán nghiên cứu nhiều gần áp dụng hiệu để giải toán NP-khó thuật toán bầy kiến Thuật toán bầy kiến có đặc tính tìm kiếm mạnh mẽ tỏ đặc biệt thích hợp với toán có không gian tìm kiếm cực lớn Với đặc điểm này, việc ứng dụng thuật toán bầy kiến để giải toán NP-khó phù hợp Tuy nhiên thuật toán bày kiến ứng dụng thực tế đòi hỏi thời gian tính dài Vì nhu cầu song song hóa thuật toán bầy kiến tự nhiên Trong phạm vi luận văn tốt nghiệp, em tập trung nghiên cứu thuật toán đàn kiến,song song hóa thuật toán đàn kiến áp dụng để giải toán thuộc lớp toán NP-khó toán Người Du Lịch Các nội dung thực trình nghiên cứu: Nghiên cứu thuật toán đàn kiến toán TSP Song song hóa thuật toán đàn kiến để giải toán TSP Phương pháp thực hiện: Xây dựng hệ thống cluster để song song hóa thuật toán Thực kiểm nghiệm đánh giá kết liệu mẫu Nguyễn Sơn Tùng Trang Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp CHƯƠNG GIỚI THIỆU BÀI TOÁN Các khái niệm sở 1.1 Các khái niệm lớp toán NP-Khó 1.1.1 Thuật toán độ phức tạp thuật toán Thuật toán để giải toán đặt thủ tục xác định bao gồm dãy hữu hạn bước cần thực để thu đầu cho đầu vào cho trước toán Các đặc trưng thuật toán: Đầu vào: Thuật toán nhận liệu vào từ tập Đầu ra: Với liệu đầu vào, thuật toán đưa liệu tương ứng với lời giải toán Chính xác: Các bước thuật toán mô tả xác Hữu hạn: Thuật toán phải đưa câu trả lời cho liệu đầu vào sau số hữu hạn bước Đơn trị: Các kết trung gian bước thực thuật toán xác định cách đơn trị phụ thuộc vào đầu vào kết bước trước Tổng quát: Thuật toán áp dụng để giải toán có dạng cho Độ phức tạp tính toán toán thời gian tính thuật toán tốt số tất thuật toán giải toán kể thuật toán biết, lẫn thuật toán chưa biết Có ba loại thời gian tính: Thời gian tính tốt nhất: Nguyễn Sơn Tùng Trang Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp Thời gian tối thiểu cần thiết để thực thuật toán với liệu đầu vào kích thước n Thời gian gọi thời gian tính tốt thuật toán với đầu vào kích thước n Thời gian tính tồi nhất: Thời gian nhiều cần thiết để thực thuật toán với liệu đầu vào kích thước n Thời gian gọi thời gian tính tồi thuật toán với đầu vào kích thước n Thời gian tính trung bình: Thời gian trung bình cần thiết để thực thuật toán tập hữu hạn liệu đầu vào kích thước n Thời gian gọi thời gian tính trung bình thuật toán với đầu vào kích thước n Hiện có hai cách tiếp cận với việc tính toán độ phức tạp toán Trong cách thứ nhất, ta tìm cách đánh giá cận độ phức tạp toán Cách tiếp cận thứ hai tập trung vào việc mức độ khó toán xét tương đương với độ khó toán khó biết Việc đánh giá độ phức tạp toán giữ vai trò định hướng việc thiết kế thuật toán để giải toán 1.1.1.1 Đánh giá cận Gọi TA (X ) thời gian tính thuật toán A đầu vào X Khi đó, thời gian tính tình tồi thuật toán A liệu đầu vào kích thước n định nghĩa T A (n) max TA ( X ) X n Độ phức tạp toán P thời gian tính tình tồi thuật toán nhanh để giải nó: TP T A (n) min(max T A ( X )) A A X n tập tất thuật toán giải toán P Nguyễn Sơn Tùng Trang Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp Việc đánh giá độ phức tạp toán vấn đề phức tạp, có số phương pháp đưa để đánh giá cận cho độ khó toán phương pháp định, lập luận phản biện Độ phức tạp tính toán mặt thời gian thuật toán giải toán cho phép so sánh nhanh chậm giải thuật Việc so sánh thời gian thực thuật toán giải toán khác phần mở cho ta biết độ khó Để cho ngắn gọn, từ sau ta gọi độ phức tạp thuật toán thay cho độ phức tạp tính toán mặt thời gian thuật toán Xét thời gian thi hành thuật toán, điều dễ nhận thấy thời gian phụ thuộc vào kích thước liệu đầu vào Ví dụ, thời gian xếp hay tìm kiếm số dãy số phải chịu ảnh hưởng số lượng số dãy số Nếu gọi kích thước liệu vào n, thời gian thực thuật toán phải biểu diễn hàm n: T (n) Ngoài ra, tốc độ thực phụ thuộc vào ngôn ngữ cài đặt chương trình, chương trình dịch, tốc độ xử lý máy tính mà thuật toán chạy yếu tố gây khập khiễng so sánh thời gian chạy thuật toán môi trường khác Hơn nữa, thời gian chạy thuật toán tính giây phút hay chưa thể nói hết mức độ phức tạp mặt tính toán mà thuật toán phải thực Vì vậy, ta không đánh giá độ phức tạp thuật toán thông qua thời gian tuyệt đối Nếu thời gian thực giải thuật T (n) cn (với c số) ta nói độ phức tạp tính toán giải thuật có cấp n2 ký hiệu T (n) O(n ) Một cách tổng quát định nghĩa: Một hàm f(n) xác định O(g(n)), viết f(n)=O(g(n)) gọi cấp g(n) tồn số c n0 cho f(n) ≤ cg(n) n ≥n0 nghĩa f(n) bị chặn số nhân với g(n), với giá trị n từ điểm Thông thường, hàm thể độ phức tạp tính toán giải thuật có dạng log2n, n, nlog2n, n2, n3, 2n, n!, nn Các hàm 0n, n!, nn gọi hàm loại mũ Nguyễn Sơn Tùng Trang Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp o Bổ sung vào /etc/hosts có thêm Slave add vào hệ thống Slave: o Cài Fedora Core o Tạo user admin / khmt-cluster o Settings NFS, ssh, hostname o Cài đặt, settings OpenMPI o Chạy chế độ dòng lệnh 1.3 Cấu hình mạng a Master: Sử dụng card NIC: Eth0: lấy IP theo DHCP HUT: 192.168.4.228 Eth1:fixed IP 10.0.0.1 Cài DHCP server cấp dải IP cho mạng 10.0.0.0/24, 10.0.0.100 b Slave Sử dụng Ethernet, IP lấy theo cấp phát HUT (192.168.4.0/224) theo DHCP master (10.0.0.0/24) Điểm yếu lần thay đổi IP mạng (hoặc mạng 10, mạng 192) phải sửa lại file etc/host thủ công Có thể khắc phục cách cài Dynamic DNS Server (phức tạp) cho master, tất máy slave trỏ DNS đến 1.4 Cấu hình host name Master slave giống Giả sử config cho khmt01 (10.0.0.2) Sửa file /etc/hosts sau: #đặt tương ứng IP nút lên đầu file 10.0.0.2 Nguyễn Sơn Tùng khmt01 Trang 82 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp 127.0.0.1 khmt01.localdomain khmt01 ::1 khmt01 10.0.0.1 khmt-server 10.0.0.2 khmt02 Hình 8: Cấu hình file hosts Đổi hostname lệnh: $hostname khmt01 Sửa hostname file sau thành khmt01 /proc/sys/kernel/hostname /etc/sysconfig/network 1.5 Cấu hình NFS (Network File Sharing) Master: Config file /etc/exports /home/admin/workspace /home/admin/ssh Nguyễn Sơn Tùng 192.168.1.0/24 (rw,sync) 192.168.1.0/24 (rw, sync) Trang 83 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp /home/admin/workspace /home/admin/ssh 10.0.0.1/24 (rw, sync) 10.0.0.1/24 (rw, sync) Hình 9: Cấu hình file exports Sau chạy lệnh: $service nfs restart Hoặc $/etc/init.d/nfs restart Slave Mount cứng hai thư mục master share vào thư mục tương ứng máy Config file /etc/fstab khmt-server:/home/admin/workspace Nguyễn Sơn Tùng /home/admin/.workspace nfs default 0 Trang 84 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp Hình 8: Cấu hình file fstab Có thể mount mềm dùng lệnh: $mount –vt nfs khmt-server:/home/admin/workspace /home/admin/.workspace 1.6 Cấu hình SSH Mục đích: Chúng ta cần cấu hình để Linux OpenSSh thực tự động Do cần có chế đăng nhập tự động từ Máy A/user a đến Máy B/user b Chúng ta không muốn đăng nhập password muốn gọi ssh từ câu lệnh shell Đầu tiên ta đăng nhập vào Máy A với user a Sau chạy thứ tự lệnh hướng dẫn sau: a@A:~> ssh –keygen –t rsa Generating public/private rsa key pair Enter file in which to save the key (/home/a/.ssh/id_rsa): Created directory ‘/home/a/.ssh’ Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/a/.ssh/id_rsa Nguyễn Sơn Tùng Trang 85 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp Your public key has been saved in /home/a/.ssh/id_rsa.pub The key fingerprint is: 3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A Bây sử dụng lệnh ssh để tạo thư mục ~/.ssh với user b máy B (thư mục tồn tại) a@A:~> ssh b@B mkdir –p /.ssh b@B’s password: Cuối cùng, thêm public key cho b@B: ssh/authorized_keys nhập mật b lần cuối: a@A:~> cat ssh/id_rsa.pub | ssh b@B ‘cat >> ssh/authorized_keys’ b@B’s password: Bây ta log in máy B với user b từ máy A với user a mà không cần password: a@A:~> ssh b@B hostname B Chú ý: Tùy theo phiên SSH mà ta phải thực thêm công việc sau: Thêm public key vào file ssh/authorized_keys2 Thay đổi quyền thư mục ssh thành 700 Thay đổi quyền file ssh/authorized_keys2 thành 640 1.7 Cài đặt OpenMPI Ở em dùng openmpi phiên 1.3.1 Download tại: http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.1.tar.gz Cài đặt: Đầu tiên giải nén gói lệnh tar xvf openmpi-1.3.1.tar.gz Nguyễn Sơn Tùng Trang 86 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp bắt đầu cài đặt vào thư mục giải nén openmpi-1.3.1 chạy lệnh configure –prefix=/home/admin/openmpi –enable-mpi-threads Sau chạy xong lệnh chạy tiếp make đến make install Tiếp theo, đặt lại đường dẫn cho chương trình vừa cài file /home/admin/.bashrc export PATH=$PATH:/home/admin/openmpi/bin export LD_LIBRARY_PATH=/home/admin/openmpi/lib Hình 9:Cấu hình file bashrc Nguyễn Sơn Tùng Trang 87 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp Kết thử nghiệm 2.1 Hệ thống xây dựng nhà Do điều kiện lại khó khăn nên em xây dựng hệ thống cluster ảo dựng phần mềm Vmware workstation 6.0.2 máy thực nhà Hệ thống máy thực bao gồm: máy laptop intel Core Duo 2.20GHz, Ram 2G: tạo máy ảo linuxpc1master máy PC1 intel Pentium4 3.20GHz, Ram 2G : tạo máy ảo linuxpc2 linuxpc3 máy PC2 intel Pentium4 3.20GHz, Ram 2G : tạo máy ảo linuxpc4 linuxpc5 Hình 10: Mô hình hệ thống cluster ảo Các máy ảo có cấu sau: Hệ điều hành Linux Fedora Processor Ram 512Mb Card mạng tất cấu hình theo hướng dẫn mục Nguyễn Sơn Tùng Trang 88 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp 2.2 Cách chạy chương trình Bật Terminal gõ : $ cd /home/admin/workspace $ vi hostfile Hình 11: tạo file hostfile Trước chạy ta phải biên dịch chương trình lệnh sau: $mpicc –o acotsp acotsp.p –lm Để tạo file liệu thành phố ta dùng hàm citygen: $cc –o citygen citygen.c $./citygen Để chạy chương trình ta gõ lệnh: $mpirun –np -hostfile hostfile acotsp Nguyễn Sơn Tùng Trang 89 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp 2.3 Kết thực nghiệm Để test chương trình, lần chạy với liệu em chạy 30 lần, ghi kết file, từ tổng hợp liệu: kết nhất, kết tốt nhất, thời gian chạy Em test chương trình qua thông số khác nhau, lần em chạy chương trình với thông số: Process: Ants: 100 Alpha: Beta: Rho: 0.2 Q: 80 Nhưng tăng dần liệu thành phố: Với liệu 10 thành phố: city10 Với liệu 50 thành phố: city50 Với liệu 100 thành phố: city100 Với liệu 200 thành phố: city200 Kết thu sau: Nguyễn Sơn Tùng Trang 90 Nghiên cứu giải thuật đàn kiến giải toán phức tạp Time(s) Luận văn tốt nghiệp Hình 12: Biểu đồ mối quan hệ thời gian chạy số thành phố Như thấy, số lượng thành phố lớn, tương đương với liệu lớn thời gian chạy lâu ngược lại Sau em test chương trình, cách chạy liệu thành phố với thông số nhau: Cities: 200 Process: Ants: 100 Alpha: Beta: Rho: 0.2 Nguyễn Sơn Tùng Trang 91 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp Q: 80 TIME (s) Nhưng tăng dần số process lên, kết thu sau: Hình 13: Biểu đồ mối quan hệ số process thời gian chạy Dễ hiểu tăng dần số process thời gian chạy lâu, phải tốn thêm thời gian gửi liệu từ master đến slave thời gian tập hợp liệu từ process slave để đưa kết cuối Nguyễn Sơn Tùng Trang 92 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp Vậy hiệu thuật toán, tăng dần process thời gian chạy Distance lâu hơn, kết tốt hơn: Hình 14: Biểu đồ mối quan hệ số process kết thu Vậy thông số khác ảnh hưởng đến kết chạy chương trình, em test tiếp với liệu city200 , giữ nguyên thông số số thành phố chạy với số process 4, thu bảng kết sau: Nguyễn Sơn Tùng Trang 93 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp Rh0 Alpha Beta Tour (0.2) (1.0) (2.0) (35) Time KQ KQ tốt 0.01 53.99 2353.18 2303.73 0.4 54.31 2321.98 2286.95 0.8 55.64 2327.81 2305.74 149.5 2380.61 2325.17 107.1 2247.47 2230.34 170.2 2284.74 2266.06 5 100 Bảng 1: Kết thay đổi thông số Dựa vào bảng thống kê thấy, tham số Beta Tour có ảnh hưởng lớn đến kết giải thuật, nhiên với tham số có khoảng giá trị cụ thể mà tham số có ảnh hưởng tốt đến giải thuật khiến cho giải thuật hội tụ nhanh giải pháp tối ưu Kết luận kiến nghị Sau hoàn thành luận văn, luận văn đạt kết định lý thuyết thực nghiệm, tìm hiểu toán người du lịch ứng dụng toán thực tế Tìm hiểu phương pháp giải gần toán Nghiên cứu sâu giải thuật song song bầy kiến giải toán người du lịch Trong nghiên cứu: Mô hình cluster Cách xây dựng cluster thực tế Cách cấu hình máy cluster Các mô hình giải thuật ACO Các thông số ảnh hưởng đến giải thuật Về mặt lý thuyết giải thuật song song đàn kiến có hiệu cao, song thực nghiệm điều kiện test máy thật hệ thống cluster ảo tạo Nguyễn Sơn Tùng Trang 94 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp từ máy tính không đồng mặt cấu hình lên dẫn đến kết thực nghiệm không tối ưu Ngoài ra, giải thuật ACO có nhiều thông số ảnh hưởng đến kết giải thuật, để chọn thông số tốt cho giải thuật đòi hỏi phải có thời gian thực nghiệm phân tích giải thuật thật kĩ Hướng phát triển giải thuật ta cố gắng cài đặt mô hình khác giải thuật ACO để chạy song song, pham vi luận văn cài đặt mô hình Ants System để chạy song song Nguyễn Sơn Tùng Trang 95 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải toán phức tạp TÀI LIỆU THAM KHẢO [1] Ts Nguyễn Đình Thúc – Lập trình tiến hóa, Nhà xuất Giáo Dục [2] Turki F.Al Somani and Kalim Qureshi – A new parallel generic algorithm model [3] Erick Cantú Paz – Designing Efficient and Accurate Parallel Generic Algorithm [4] Erick Cantú Paz – A survey of Parallel Generic Algorithm [5] Erick Cantú-Paz Designing efficient master slave [6] Nguyễn Đức Nghĩa - Giáo trình phân tích thiết kế thuật toán Hà Nội, 2003 [7] Nguyễn Đức Nghĩa, Tô Hiến Thành – Toán rời rạc, nhà xuất Đại học Quốc Gia Hà Nội [8] Kumara Sastry, David Goldberg Genetic Algorithm [9] Peter S Pacheco A User’s guide to MPI, 1998 [10] Website: http://mpi.deino.net/ [11] Website: http://users.abo.fi/mats/PP2008/programs/MPI/index.html [12] Website: http://www.zoology.ubc.ca/~whitlock/QGPG/PopStruct/Lecture.html [13] Dr Tom V Mathew – Generic Algorithms [14] Kumara Sastry, David Goldberg - Genetic Algorithm [15] Erique Alba - Parallel Metaheuristics Nguyễn Sơn Tùng Trang 96 [...]... thấp với nhiều bài toán (thời gian thuật toán dùng để giải bài toán) , đặc biệt là khi áp dụng giải các bài toán NP-khó Nguyễn Sơn Tùng Trang 13 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải quyết các bài toán phức tạp 1.4 Thuật toán gần đúng Là các thuật toán đi tìm lời giải cho bài toán càng gần với phương án tối ưu càng tốt với độ sai số trong một phạm vi cho phép Thuật toán gần đúng được... nghiệp Nghiên cứu giải thuật đàn kiến giải quyết các bài toán phức tạp Tác dụng của những bài toán quyết định này thể hiện ở chỗ tuy rằng nó chỉ là một dạng đặc biệt của các bài toán trong thực tế nhưng nó cũng đủ tổng quát để biểu diễn cho nhiều lớp bài toán trong ứng dụng Hơn thế nữa, nếu một bài toán quyết định tương ứng với một bài toán tối ưu hóa có thể giải được bằng thuật toán đa thức thì bài toán. .. sự tồn tại một thuật toán đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong NP Nguyễn Sơn Tùng Trang 7 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải quyết các bài toán phức tạp Định nghĩa 5: Một bài toán quyết định A được gọi là NP-đầy đủ (NPcomplete) nếu như: - A là một bài toán thuộc lớp NP, - A là NP khó Hình 1: Mô hình phân lớp các bài toán 1.2 Đồ thị... gần đúng để giải bài toán này Nhưng các phương pháp giải đúng đều tốn rất nhiều thời gian tính toán Dưới đây là một số phương pháp giải đã biết đối với bài toán Người du lịch 2.3.1 Giải thuật di truyền Giải thuật di truyền được ứng dụng để giải quyết một lớp các bài toán khá rộng Các bài toán về tối ưu cũng nằm trong số đó Bài toán “Người du lịch” cũng có thể giải quyết bằng giải thuật này Giải thuật. .. cho trước các tham số liên quan, thuật giải di truyền có thể được thi hành 2.3.2 Giải thuật đàn kiến Giải thuật đàn kiến được ứng dụng để giải quyết một lớp các bài toán khá rộng Trong đó các bài toán về tối ưu cũng nằm trong số đó Bài toán “Người du lịch” cũng có thể giải quyết bằng giải thuật này Đây cũng là trọng tâm nghiên cứu của luận văn này Chi tiết của vấn đề sẽ được trình bày trong các phần... cao.Ngược lại các đoạn đường có lượng pheromone thấp, xác suất được chọn càng thấp Từ việc nghiên cứu cơ chế hành động của đàn kiến tự nhiên đã cho ra đời thuật toán đàn kiến Một cách không chính thức có thể nói thuật toán đàn kiến mô phỏng một bầy kiến nhân tạo để giải bài toán đặt ra Hệ thống Ant Colony – Thuật toán đàn kiến: Là một đàn kiến nhân tạo (Artificial Ants) mô phỏng các hoạt động của đàn kiến tự...Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải quyết các bài toán phức tạp các hàm n2, n3, nlog2n, n, log2n được gọi là các hàm loại đa thức, ngoài ra còn có độ phức tạp tính toán hằng số O(1) dùng để đánh giá những thuật toán có thời gian chạy không phụ thuộc vào kích thước dữ liệu đầu vào và O(n) gọi là độ phức tạp tuyến tính dùng để đánh giá những thuật toán có thời gian chạy tỉ lệ... Tối ưu hóa đàn kiến - Ant Cology Optimization Nguyễn Sơn Tùng Trang 25 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải quyết các bài toán phức tạp 1.5 Tối ưu hóa đàn kiến (Ant colony optimization) 1.5.1 Giới thiệu về thuật toán Tối ưu hóa đàn kiến là một cách tiếp cận metaheuristics bắt nguồn từ hành vi tự nhiên của loài kiến Hành vi này được mô tả bởi Deneubourg, cho phép đàn kiến tìm ra... bài toán tối ưu tổ hợp được cho dưới dạng bộ 3 (S, f, Ω), trong đó S là tập các lời giải ứng cử viên, f là hàm đánh giá (hàm này gán giá trị f(s) cho mỗi lời giải ứng cử viên s S) và Ω là tập các ràng buộc của bài toán Các lời giải thuộc tập S* S thỏa mãn tập các ràng Nguyễn Sơn Tùng Trang 14 Luận văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải quyết các bài toán phức tạp buộc Ω gọi là lời giải. .. văn tốt nghiệp Nghiên cứu giải thuật đàn kiến giải quyết các bài toán phức tạp CHƯƠNG 2 TÌM HIỂU VỀ THUẬT TOÁN ĐÀN KIẾN VÀ TÍNH TOÁN SONG SONG 1 Giới thiệu về “Metaheuristic” 1.1 Giới thiệu Được biết đến từ nhiều năm nay, Metaheuristic là một lớp thuật toán mạnh mẽ được áp dụng cho tối ưu hóa Những phương pháp này có thể cung cấp các giải pháp hữu ích và thiết thực cho các vấn đề và các ứng dụng trên