Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
2,44 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI KHOA CÔNG NGHỆ Nguyễn Thanh Tùng THUẬT TOÁN HỆ KIẾN MAX-MIN VÀ ỨNG DỤNG LUẬN VĂN THẠC SỸ Hà Nội - 2004 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI KHOA CƠNG NGHỆ Nguyễn Thanh Tùng THUẬT TỐN HỆ KIẾN MAX-MIN VÀ ỨNG DỤNG Chuyên ngành: Cụng nghệ thơng tin Mó số: 1.01.10 LUẬN VĂN THẠC SỸ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Hoàng Xuân Huấn Hà Nội - 2004 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC Trang MỞ ĐẦU Chƣơng – LƢỢC SỬ PHÁT TRIỂN CỦA CÁC THUẬT TOÁN ACO 1.1 Nguồn gốc sinh học thuật toán kiến 1.2 Truyền thông gián tiếp-stigmergy 1.3 Quá trình phát triển thuật tốn ACO 1.3.1 Hệ kiến toán TSP 1.3.1.1 Bài toán TSP 1.3.1.2 Hệ kiến 1.3.2 Hệ đàn kiến 12 1.3.3 Thuật toán hệ kiến Max-Min 15 Chƣơng - PHƢƠNG PHÁP TỐI ƢU HOÁ ĐÀN KIẾN: ACO 17 2.1 Một số heuristic ACO 17 2.2 Meta-heuristic tối ƣu hoá đàn kiến 18 2.2.1 Bài toán tổng quát 18 2.2.2 Thuật toán ACO tổng quát 20 2.2.3 Xây dựng lời giải 23 2.2.4 Cập nhật mùi 24 2.3 Đặc tính hội tụ vết mùi 25 2.4 Các thuật toán ACOmin 28 Chƣơng - THUẬT TOÁN HỆ KIẾN MAX-MIN 31 3.1 Thuật toán hệ kiến MAX-MIN 31 3.1.1 Giới thiệu hệ kiến Max-Min 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.1.2 Cập nhật vết mùi 32 3.1.3 Giới hạn vết mùi 33 3.1.4 Giá trị thông số 34 3.1.5 Khởi tạo vết mùi 35 3.1.6 Phƣơng thức cập nhật mùi 35 3.1.7 Một số nguyên lý ứng dụng 36 3.2 Hệ kiến MAX-MIN trơn 39 Chƣơng - MỘT SỐ ỨNG DỤNG CỦA HỆ KIẾN MAX-MIN 43 4.1 Cách giải toán tối ƣu tổ hợp 43 4.2 Một số ứng dụng 44 4.2.1 Bài tốn phân cơng bậc hai 45 4.2.2 Bài toán lập thời khóa biểu 48 KẾT LUẬN 54 Tài liệu tham khảo 56 Phụ lục 59 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -1- MỞ ĐẦU ác toán tối ưu tổ hợp (Combinatorial Optimization Problems - C COP) đóng góp vai trị quan trọng thực tế, có nhiều ứng dụng lĩnh vực kinh tế, sản xuất Khi giải toán tối ưu tổ hợp khó thường gặp trở ngại lớn, thuật tốn truyền thống thường khó giải quyết, thuật tốn mơ tự nhiên luyện kim, di truyền, tiến hóa, hệ kiến tỏ có ưu Trong thập kỷ qua thuật toán ACO tỏ phương pháp trội để giải toán tối ưu tổ hợp khó Tối ưu hóa đàn kiế n (Ant Colony Optimization - ACO) cách tiế p cận meta heuristic tương đố i đề xuất Marco Dorigo đồng nghiệp năm 1991 Một thành công lớp thuật toán ACO giải tốt toán tiếng Người chào hàng (Traveling Salesman Problem-TSP) với số thành phố lớn, 2000 Từ đến ACO ngày thu hút quan tâm nghiên cứu giới khoa học hiệu trội chứng minh thực nghiệm giải tối ưu tổ hợp điển hình: Bài tốn phân cơng bậc hai (Quadratic Assignment Problem-QAP), Bài tốn lập lịch cơng việc (Job-shop Scheduling Problem-JSP), Bài tốn định đường xe tải (Vehicle Rouling Problem -VRP), Bài tốn tơ màu đồ thị (Graph Coloring Problem-GCP), Bài toán siêu dãy chung ngắn (Shortest Colnmon Supersequence Poblem-SCS)… Trong ACO, hệ kiến Max-Min (Max-Min Ant System-MMAS) tỏ đơn giản, thông dụng nhiều người ưa dùng so với thuật tốn kiến trước hệ kiến (Ant System-AS), hệ đàn kiến (Ant Conoly SystemACS) Hệ kiến Max-Min thuật toán đề xuất cập nhật mùi theo tư tưởng Max-Min Năm 1999, nhằm mục đích đưa lược đồ làm việc chung cho thuật toán kiến, Marco Dorigo, Luca M Gambardella LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -2- Gianni Di Cao khái quát hóa thành lớp ACO ứng dụng cách phong phú để giải toán tối ưu tổ hợp tĩnh động Nội dung luận văn khảo cứu thuật toán ACO theo quy tắc cập nhật mùi Max-Min Trên sở chúng tơi đề xuất thuật tốn hệ kiến MaxMin trơn (Max-Min Smooth Ant System-MMSAS) thử nghiệm với toán TSP Kết thực nghiệm cho thấy hệ kiến Max-Min trơn có ưu điểm hệ kiến Max-Min tốn xét Ngồi phần mở đầu phần kết luận, luận văn tổ chức sau: Chương 1: Giới thiệu nguồn gốc sinh học thuật toán kiến, cách truyền thông gián tiếp lược sử phát triển thuật tốn ACO Chương 2: Trình bày phương pháp tối ưu hoá đàn kiến:ACO Chương 3: Giới thiệu thuật toán hệ kiến Max-Min đề xuất cách cập nhật mùi theo Max-Min trơn, kết thực nghiệm tốt mà hệ kiến Max-Min trơn đạt Chương 4: Trình bày hai ứng dụng điển hình hệ kiến Max-Min tốn phân cơng bậc hai tốn thời khóa biểu LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -3- CHƢƠNG LƢỢC SỬ PHÁT TRIỂN CỦA CÁC THUẬT TOÁN ACO Trong chương giới thiệu lược sử phát triển thuật tốn ACO, thí nghiệm sinh học cách chọn đường kiến thực đến hình thành ý tưởng thuật tốn từ thí nghiệm đó, sau đời hệ kiến, hệ đàn kiến, hệ kiến Max-Min Các thuật tốn kiến có nhờ quan sát cách chọn đường kiến thực Các kiến côn trùng sống bầy đàn sống thành xã hội, chúng xuất trái đất cách 100 triệu năm, số lượng chúng khoảng 106 (xem [13]) Sự tổ chức bầy đàn kiến xã hội kiến có cấu trúc cao thu hút nhiều nghiên cứu sinh học Trong xã hội kiến, kiến thợ thường xuyên tìm kiếm thức ăn đem tổ đặc biệt làm kiến tìm đường ngắn từ tổ chúng tới nguồn thức ăn? 1.1 Nguồn gốc sinh học thuật tốn kiến Trong q trình từ tổ đến nguồn thức ăn ngược lại, kiến rải xuống đất hoá chất gọi mùi (tên khoa học pheromone) tạo nên vết mùi (pheromone trail) Các kiến ngửi thấy mùi chúng có khuynh hướng chọn theo xác suất, đường đánh dấu tập trung mùi mạnh Vết mùi cho phép kiến tìm đường quay lại chúng tới nguồn thức ăn tổ, sử dụng kiến khác để tìm vị trí nguồn thức ăn Thực nghiệm cho thấy rằng, cách thức theo vết mùi (pheromone trail following behavior) phương pháp luận hiệu để tìm đường ngắn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -4- Hình 1: Cách tìm đường kiến Các kiến thường để lại mùi (một chất hóa học đặc biệt mà chúng ngửi được) đường Bằng cách để lại mùi vậy, chúng tạo vết mùi để lại đường từ tổ đến nguồn thức ăn ngược lại Trong thực tế, cách cảm nhận vết mùi kiến khác tìm đường tới nguồn thức ăn kiến trước tìm Đồng thời, chúng dựa vào để tìm đường ngắn từ tổ đến nguồn thức ăn Nhằm nghiên cứu cách tìm đường kiến điều kiện quan sát J.L.Deneubourg [19] đồng nghiệp làm thí nghiệm sử dụng cầu đơi nối từ tổ đến nguồn thức ăn, hình Tổ đàn kiến với nguồn thức ăn ngăn cầu đơi mà hai nhánh để nghiên cứu lưu lại vệt mùi hành vi chúng Tiếp kiến thả tự lại tổ nguồn thức ăn phần trăm số kiến chọn nhánh để quan sát theo thời gian Kết sau giai đoạn ban đầu có dự, chốc lát kiến có khuynh hướng chọn hội tụ đường LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -5- Trong thí nghiệm trên, ban đầu khơng có mùi nhánh, nên nhánh chọn có xác suất Tuy nhiên, thăng giáng tự nhiên, sau giai đoạn ban đầu, nhánh chọn nhiều nhánh Bởi kiến rải mùi đi, số kiến lớn nhánh lượng mùi mạnh hơn, kích thích nhiều kiến chọn Nhánh Thức ăn Tổ kiến Nhánh Hình 2: Mơ hình thí nghiệm cầu đơi nhánh dài Tiếp họ thay đổi thí nghiệm tới trường hợp mà nhánh có chiều dài khác thu kết theo thời gian hầu hết kiến vào nhánh ngắn Kết giải thích sau: Do kỹ thuật rải mùi nhau, thực nghiệm bắt đầu, hai nhánh cầu mùi, lúc đầu kiến chọn hai nhánh theo xác suất tức nửa số kiến chọn nhánh ngắn nửa lại chọn nhánh dài Trong trình tìm kiếm thức ăn đưa tổ, kiến để lại vệt mùi hai nhánh cầu Do nhánh ngắn hơn, thời gian kiến (đồng nghĩa với số lần kiến lại nhiều hơn), lượng mùi nhánh nhiều hơn, nên theo thời gian kiến chọn nhánh ngắn để cường độ vệt mùi nhánh cao hơn, minh hoạ hình LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -6- Hình 3: Thí nghiệm cầu đơi (a) Các kiến bắt đầu khám phá cầu (b) Hầu hết kiến chọn đường ngắn Trong thuật tốn kiến, cầu đơi thí nghiệm Deneubourg thay đồ thị cấu trúc vết mùi kiến vết mùi nhân tạo Đồng thời muốn giải toán phức tạp toán kiến thực, người ta cung cấp thêm cho kiến nhân tạo số khả đặc biệt nhớ khả để lại lượng mùi tỷ lệ với hiệu lời giải tìm (một hành vi tương tự hành vi kiến thực chúng mang thức ăn quay tổ để lại lượng mùi tỷ lệ với lượng thức ăn kiếm được) Mỗi kiến đơn lẻ có đóng góp nhỏ q trình tìm đường Mặc dù kiến đơn lẻ nguyên tắc có khả xây dựng lời giải (Ví dụ: tìm đường tổ nguồn thức ăn), đàn kiến đối tượng biểu diễn cách thức "tìm đường ngắn nhất" Cách thức thuộc tính bật (emergent) đàn kiến Cũng cần ý kiến thực cách thức riêng biệt cách sử dụng dạng truyền thông gián tiếp-stigmergy cách rải mùi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 48 - Trong Jbest giá trị hàm mục tiêu best, best tìm bước lặp tốt ib trình thực thuật toán gb Trong thực nghiệm để tăng hiệu suất thuật toán cách tăng số lần sử dụng gb 4.2.2 Bài tốn lập thời khóa biểu Giới thiệu tốn: Bài tốn lập thời khóa biểu cho trường đại học theo hệ tín (University Course Timetabling Problem – UCTP) phát biểu sau: Có N mơn học sinh viên đăng ký tham gia cần xếp lịch vào tuần gồm K tiết học tương ứng Các môn học tổ chức phòng học đáp ứng đủ điề u kiện học tập mơn học (mỗi phịng học chứa lượng người định đáp ứng số điều kiện học tập cho trước, mơn học lại địi hỏi phải có số điều kiện học tập riêng nó) Một lời giải thời khoá biểu chấp nhận tất môn học chia vào tiết học phòng tương ứng thỏa mãn ràng buộc cứng sau: - Không sinh viên tham dự nhiều môn học khoảng thời gian - Phòng học phải rộng cho sinh viên ngồi học đáp ứng đầy đủ điều kiện mơn học - Chỉ mơn học phòng khoảng thời gian cho trước Thêm vào thời khố biểu chấp nhận đánh giá số vi phạm ràng buộc mềm cho sau: - Hạn chế số sinh viên phải tham dự môn học vào tiế t cuố i cùng ngày - Hạn chế sinh viên phải tham dự nhiều lớp liên tiếp LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 49 - - Hạn chế sinh viên học lớp ngày Áp dụng hệ kiến Max-Min cho toán UCTP: Dựa vào ràng buộc cho toán, việc xếp môn học vào tiết học tương ứng, sau mơn học phân vào tiết học ghép với phòng tương ứng đáp ứng đủ điều kiện thuật tốn ghép cặp cực có lời giải hoàn chỉnh Xây dựng đồ thị cấu trúc cho toán UCTP Việc để áp dụng ACO metaheuristic cho toán UCTP ánh xạ toán vào đồ thị cấu trúc tương ứng , đường đồ thị thể lời giải toán Đồ thị cấu trúc tốn UCTP đờ thị với tập đỉnh E x T kiến theo danh sách môn học ứng với môn học e E (E tập môn học) kiến lựa chọn tiết học t T (T tập tiết học) tương ứng e1 e2 en t1 Start t2 Stop tk Hình 5: Đồ thị cấu trúc toán UCTP Các kiến bắt đầu đỉnh Start, theo danh sách môn học ứng với môn học ei E kiến lựa chọn tiết học t T, kết thúc đỉnh Stop Khi kiến xây dựng xong hành trình Các kiến theo lựa chọn chúng đồ thị cấu trúc, chúng xây dựng phép gán Ai : EiT với i=0, 1, , |E| E = {e1, e2, , ei}, kiến bắt đầu với lời giải rỗng A0 = Sau xây dựng lời giải Ai-1 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 50 - lời giải Ai xây dựng ngẫu nhiên Ai = Ai-1 {(ei, t)} Tiết học t chọn ngẫu nhiên T theo xác suất pei,t phụ thuộc vào ma trận mùi ( Ai 1 ) [ , max ]ExT ( , max R ) với thông tin heuristic ( Ai 1 ) bấ t kỳ tính theo cơng thức sau : pei , t ( ( Ai 1 ), ( Ai 1 )) ( (ei , t ) ( Ai 1 )) ( (ei , t ) ( Ai 1 )) T ( (e , ) ( Ai 1 )) ((e , ) ( Ai 1 )) i i Trong thơng tin mùi thông tin heuristic lấy đối số lời giải Ai-1 Sự ảnh hưởng mùi thông tin heuristic đánh giá qua hai tham số Ma trận mùi Thông tin mùi thể xác việc đặt môn học vào tiết học Với cách thể này, ma trận mùi cho ( Ai ) , i=1, , | E| thông tin mùi không phụ thuộc vào lời giải thành phầ n A i Trong trưòng hợp này, thông tin mùi gắn liền với đỉnh đồ thị cạnh đồ thị max ( e ,t ) ( Ai ) min e 'A 1 i (t ) (e, e' ) Nếu Ai-1(t)= Ngược lại Trong ma trận phụ trợ R+ExE Rõ ràng thể thông tin mùi dạng khác có thể, với ràng buộc đa dạng tốn UCTP khó mà thiết kế mơ hình thơng tin mùi chứa tất thơng tin liên quan Hiện nay, hệ kiến thường sử dụng cách thể cách tố t nhấ t có Thơng tin heuristic Cơng thức tính thông tin heuristic (e, t ) ( Ai 1 ) cho sau : (e, t ) ( Ai 1 ) 1.0 1.0 V(e, t ) ( Ai 1 ) LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 51 - V(e, t ) ( Ai 1 ) số vi phạm ràng buộc nảy sinh thêm thành phầ n (e, t) vào lời giải thành phần Ai-1 Hàm V có thể tính theo tổng số vài tất vi phạm ràng buộc ngặt ràng buộc mềm Tuy nhiên tính tự nhiên tốn UCTP, độ phức tạp tính tốn tính số loại vi phạm ràng buộc cao Chúng ta chọn thuận lợi thông tin heuristic để hướng dẫn trình xây dựng lời giải sớ vịng lặp tốn với hạn chế thời gian cho trước Vì phải xem xét đánh giá thuận lợi việc sử dụng thông tin heuristic không làm tăng chấ t lượng lời giải xây dựng thuật tốn MMAS có kế t hợp sử dụng tìm kiếm địa phương Khi khơng sử dụng thủ tục tìm kiếm địa phương, thơng tin heuristic vẫn có thể không cải thiện đư ợc chấ t lượng lời giải khơng mức độ sử dụng tìm kiếm địa phương Mơ tả thuật tốn Một đàn kiến m sử dụng mỡi vịng lặp , mỗi kiế n xây dựng lời giải (hay xếp môn học -tiế t học ) cách đặt môn học tương ứng -một vào tiế t học Các môn học tiền xử lý đàn kiến bằ ng cách sắ p xế p theo thứ tự giảm dầ n số ràng buộc cạnh môn học Sự lựa chọn tiế t học cho môn học hàm ngẫu nhiên dựa vào thông tin mùi (e, t ) ( Ai ) Giá trị mùi khởi tạo ban đầu với tham số max cập nhật theo quy tắc cập nhật mùi toàn cục Sau kiế n xây dựng xong lời giải , xếp môn học -tiết học chuyển thành thời khóa biể u bằ ng cách sử dụng thuật t oán ghép cặp Sau m kiế n đề u sinh đươ ̣c thời khóa biể u miǹ h , thời khóa biể u đánh giá hàm thích nghi (fitness funtion ) Ć i thủ tục cập nhật mùi toàn cục cho ma trận cường độ mùi, vết mùi khống chế giới hạn max min LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 52 - Hệ kiế n Max-Min cho tốn lập thời khóa biểu Input : Bô ̣ liệu I max 1/ (e,t) max (e,t) E x T Tính c(e, e’) với (e, e' ) E Tính d(e) Sắp xếp E theo thứ tự , kết e1 e2 e3 en while not (điều kiện dừng) for a = to m {quá trình xây dựng lời giải kiến a} A0 for i = to |E| Chọn ngẫu nhiên tiết học t theo xác suấ t pei , t cho môn học ei Ai Ai 1 { (ei , t ) } end for C lời giải sau áp dụng thuật toán ghép cặp cho An Citeration-bestbest(C, Citeration-best) end for Citeration-bestLời giải sau áp dụng thủ tục tìm kiếm địa phương Cglobal-bestbest(C, Citeration-best) Cập nhật mùi toàn cục cho sử dụng Cglobal-best, min max end while Output : Một thời khoá biểu chấ p nhận Cglobal-best cho liệu I Giải thích chi tiết số thơng tin thuật tốn: - Tiền xử lý thông tin môn học 1 c(e, e' ) 0 tồn sinh viên theo học hai môn e e’ lại ngược d(e) = |{e’ E\{e} | c(e, e’) 0}| (bậc của e) - Định nghĩa thứ tự toàn phần cho môn học sau : e e' d (e) d (e' ) d (e) d (e' ) l (e) l (e' ) l : E N hàm ánh xạ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 53 - Trong thuật toán kiến áp dụng cho toán, lời giải hay thời khoá biểu vi phạm ràng buộc ngặt lựa chọn để cải tiến tìm kiếm địa phương Cập nhật mùi Trong hệ kiến MMAS sử dụng cập nhật mùi cho cạnh thuộc vào Cglobal best theo công thức sau: (1 ). ( e ,t ) ( e ,t ) (1 ). ( e ,t ) nế u A global-best (e)=t ngược lại Theo quy tắ c vết mùi bay lượng theo hệ số bay thành phần (e,t) thuộc lời giải thời khoá biểu tốt cộng thêm lượng mùi mà thuật tốn MMAS chọn sớ Theo quy tắc cập nhật mùi MMAS, vết mùi bị khống chế khoảng [ , max ] sau : ( e ,t ) max ( e ,t ) nế u (e,t ) nế u (e,t ) max ngược lại LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 54 - KẾT LUẬN Các nghiên cứu gần thuật toán ACO tập trung nhiều vào cải tiến hiệu suất thuật toán Trong thuật toán ACO hệ kiến, hệ đàn kiến, hệ kiến MAX-MIN hệ kiến MAX-MIN ưa dùng tính đơn giản, dễ cài đặt Trong luận văn này, chúng tơi trình bày cách hệ thống thuật toán kiến, lớp ACOmin giới thiệu thuật toán hệ kiến MAX-MIN nhằm mục đích tạo cho độc giả quan tâm đến thuật tốn ACO có nhìn tổng quan thuật tốn kiến-thuật tốn trội so với thuật tốn mơ tự nhiên giải toán tối ưu tổ hợp Trong luận văn đề xuất hệ kiến MAX-MIN trơn, nội dung hệ tương tự hệ kiến MAX-MIN thay đổi cách cập nhật mùi, lượng mùi cạnh không thuộc lời giải tốt giảm chậm làm tăng khả khám phá cho kiến kết đạt lời giải tốt Chúng thử nghiệm hệ kiến MAX-MIN trơn liệu tốn TSP, tốn có số đỉnh lớn lin318.tsp hay rat783.tsp kết tốt nhiều so với hệ kiến MAX-MIN Vấn đề chọn tham số ảnh hưởng nhiều đến hiệu suất thuật toán, nên qua nhiều lần thử nghiệm với hệ kiến Max-Min trơn chúng tơi tìm tỷ lệ thích hợp max min là: min = max / ( 0.0601*n2-6.0407*n+202.8 ) Hiện nay, thuật toán ACO cho thấy có hiệu suất triển vọng tốn tối ưu tổ hợp Chúng hy vọng tương lai hệ kiến MAX-MIN điểm xuất phát tốt cho trình nghiên cứu, cải tiến hiệu suất cho thuật LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 55 - tốn Chúng tơi hy vọng rằng, hiệu suất thuật toán ACO cải tiến khả ứng dụng ACO ngày nhiều LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 56 - TÀI LIỆU THAM KHẢO [1] Krzysztof Socha, Joshua Knowles and Michael Sampels (2002), “A MAX-MIN Ant System for the University Course Timetabling Problem”, ANTS 2002, LNCS (2463), pp 1-13 [2] Krzysztof Socha, Michael Sampels and Max Manfrin, “Ant Algorithms for the Univerrsity Course Timetabling Problem with Regard to the State-of-the-Art” [3] Hoang Xuan Huan & Dinh Trung Hoang, “On the ant colony system for the postman problem”, Journal of Science, Natural Sciences and Technology, Viet Nam National Univeristy, Ha Noi, vol.18, no 1, 2002, pp 29-37 [4] Hoang Xuan Huan (2003), Convergence Analysis of ACO Algorithms and New Perpectives, manuscript [5] Hoang Xuan Huan, Do Duc Dong and Dinh Quang Huy (2004), “Multi-level Ant System and Typical Combanatorial Optimization Problems”, 2nd Optimization and Scientific Computation Conference, Institue of Mathematics, Ha Noi, Viet Nam, p 15 [6] M.Dorigo, V.Maniezzo and A.Corloni (1991), Positive feedback as a search strategy, Technical Report 91-109, Departimento di electronica e informatica, Poletico di Milano, IT [7] M.Dorigo (1992), Optimization, learning and natural algorithms, PhD.dissertation, Milan Polytechnique, Italy [8] M.Dorigo, V.Maniezzo and A.Corloni (1996), “The Ant System : Optimization by a colony of cooperating agents”, IEEE, Trans.Syst., Man, Cybern.B, vol.26, no.2, pp 29-41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 57 - [9] M Dorigo and L.M Gambardella (1997), “Ant Colony System : A cooperative learning approach to the travelling salesman problem”, IEEE Trans, on Evolutionary Computation, vol.1, no.1, pp 53-66 [10] M.Dorigo and M.D.Caro (1999), “The Ant Conoly Optimization metaheuristic, A New Idea in Optimization”, D.Corne, M.Dorigo and F.Glover, Eds London, U.K, McGraw-Hill, pp.11-32 [11] M.Dorigo and Thomas Stutzle (2000), The Ant Colony Optimization Metaheuristic : Algorithms, Applications and Advances [12] Marco Dorigo and Thomas Stutzle (2002), A short Convergence Proof for a class of Ant Colony Optimization Algorithms, IEEE [13] Marco Dorigo, Eric Bonabeau, Guy Theraulaz Future Generation Computer Systems Ant System and Stigmergy, 16 (2000) 851–871 [14] Thomas Stutzle and Holger Hoos (1997), MAX-MIN Ant System and Local Search for the Traveling Salesman Problem, IEEE [15] Stutzle, Hoos (2000), “MAX-MIN Ant System”, Future Generation Computer System, pp 889-914 [16] T Stutzle (July 1997), “MAX-MIN Ant System for the quadratic assignment problem”, Technical Report AIDA–97–4, FG Intellektik, TU Darmstadt, Germany [17] T Stutzle and M Dorigo (1999), “ACO algorithms for the quadratic assignment problem”, New Ideas in Optimization, McGraw-Hill, London, UK, pp 33–50 [18] T Stutzle and H H Hoos (1999), “MAX-MIN Ant System and local search for combinatorial optimization problems”, Meta-Heuristics: Advances and Trends in Local Search Paradigms for Optimization, Kluwer Academic Publishers, Boston, pp 313–329 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 58 - [19] J.-L Deneubourg, S Goss, J.M Pasteels, D Fresneau, J.-P Lachaud (1987), Self-organization mechanisms in ant societies II:Learning in foraging and division of labour, Experientia Suppl [20] P.P Grassé (1959), “La reconstruction du nid et les coordinations interindividuelles chez bellicositermes natalensis et cubitermes sp”, La théorie de la stigmergie: essai d’interprétation du comportement des termites constructeurs, Insectes Sociaux 6, pp 41–81 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 59 - PHỤ LỤC Mã nguồn tham khảo thuật toán hệ kiến Max-Min giải toán TSP Cấu trúc liệu kiến: typedef struct { long int *tour; char *visited; long int tour_length; } ant_struct; Chương trình int main(int argc, char *argv[]) { init_program(argc, argv);//Khoi tao cac tham so for ( n_try = ; n_try < max_tries ; n_try++ ) { init_try(n_try); //Dat cac tham so cho lan chay while ( !termination_condition() ) { construct_solutions(); update_statistics(); pheromone_trail_update(); iteration++; } exit_try(n_try); } exit_program(); return(0); } Khởi tạo tham số void init_program( long int argc, char *argv[] ){ char temp_buffer[LINE_BUF_LEN]; char filename[30]; printf("\nNhap ten:");scanf("%30s",filename); strcpy(name_buf,"dl\\"); strcat(name_buf,filename); strcat(name_buf,".tsp"); optimal = 1; max_tries = 25; max_tours = 10000; n_ants = 50; alpha = 1.0; beta = 2.0; rho = 0.85; } Khởi tạo giá trị cho lần chạy void init_try( long int ntry ) { LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 60 - n_tours = 1; iteration = 1; restart_iteration = 1; (*global_best_ant).tour_length = INFTY; found_best = 0; tau_max = / ( (1 - rho) * nn_tour() ); tau_min=tau_max/(0.0601*n*n-6.0407*n+202.8); init_pheromone_trails( tau_max ); compute_total_information(); } Điều kiện dừng long int termination_condition( void ){ return ((n_tours>=max_tours)|| ((*global_best_ant).tour_length