1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn sư phạm Tìm hiểu và nghiên cứu thuật toán hệ kiến Max - Min

69 39 0

Đ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

Định dạng
Số trang 69
Dung lượng 849,1 KB

Nội dung

TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN PHÙNG CƠNG TUẤN TÌM HIỂU VÀ NGHIÊN CỨU THUẬT TỐN HỆ KIẾN MAX-MIN KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN Ngƣời hƣớng dẫn khoa học Th.S Lƣu Thị Bích Hƣơng Hà Nội – 2012 -1- LỜI CẢM ƠN Trong suốt trình học tập làm khóa luận, em nhận đƣợc giúp đỡ, tạo điều kiện Khoa CNTT, thầy giáo Khoa CNTT Bên cạnh giúp đỡ nhiều ngƣời thân, bạn bè để em có đƣợc kết ngày hơm Trƣớc hết em xin tỏ lịng kính trọng cảm ơn giáo Th.S Lƣu Thị Bích Hƣơng, tận tình bảo, hƣớng dẫn cho em hồn thành đƣợc khóa luận Xin cảm ơn thầy, cô giáo Khoa Công nghệ thông tin – Đại học sƣ phạm Hà Nội 2, bạn lớp K34 – CNTT tận tình giúp đỡ, giới thiệu tài liệu, sách tham khảo để khóa luận đƣợc hồn thành hạn Cuối lòng biết ơn đến quan tâm, chăm sóc tạo điều kiện gia đình để tập trung vào việc học tập hoàn thành khóa luận Do thời gian thực khơng nhiều nên khóa luận khơng tránh khỏi thiếu sót Rất mong nhận đƣợc đóng góp thầy giáo bạn để khóa luận đƣợc hồn thiện Xin chân thành cảm ơn! Hà Nội, tháng năm 2012 PHÙNG CÔNG TUẤN -2- LỜI CAM ĐOAN Tên em là: PHÙNG CÔNG TUẤN Sinh viên lớp: K34 – CNTT, trƣờng đại học sƣ phạm Hà Nội Em xin cam đoan: Đề tài: “Tìm hiểu nghiên cứu thuật toán hệ kiến Max – Min” nghiên cứu riêng em, dƣới hƣớng dẫn giáo Th.S Lƣu Thị Bích Hƣơng Khóa luận hồn tồn khơng chép tác giả khác Nếu sai em xin hoàn toàn chịu trách nhiệm Hà Nội tháng 5/2012 Ngƣời cam đoan Phùng Công Tuấn -3- MỤC LỤC Trang LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC MỞ ĐẦU Chƣơng – CƠ SỞ LÝ THUYẾT 1.1 Các khái niệm 1.1.1 Định nghĩa đồ thị 1.1.2 Các khái niệm 10 1.2 Biểu diễn đồ thị máy tính 13 1.2.1 Ma trận kề (ADJACENCY MATRIX) 13 1.2.2 Danh sách cạnh (EDGE LIST) 14 1.2.3 Danh sách kề (ADJACENCY LIST) 15 Chƣơng – LƢỢC SỬ PHÁT TRIỂN CỦA CÁC THUẬT TOÁN ACO 18 2.1 Nguồn gốc sinh học thuật toán kiến 18 2.2 Truyền thông gián tiếp – stigmergy 22 2.3 Quá trình phát triển thuật toán ACO 23 2.3.1 Hệ kiến 23 2.3.2 Hệ đàn kiến 26 2.3.3 Thuật toán hệ kiến Max-Min 29 Chƣơng – PHƢƠNG PHÁP TỐI ƢU HÓA ĐÀN KIẾN: ACO 32 3.1 Một số heuristic ACO 32 3.2 Meta – Heuristic tối ƣu hóa đàn kiến 33 3.2.1 Bài toán tổng quát 33 -4- 3.2.2 Thuật toán ACO tổng quát 35 3.2.3 Xây dựng lời giải 38 3.2.4 Cập nhật mùi 39 3.3 Đặc tính hội tụ vết mùi 40 3.4 Các thuật toán ACOmin 43 Chƣơng – THUẬT TOÁN HỆ KIẾN MAX-MIN 46 4.1 Giới thiệu hệ kiến Max-Min 46 4.2 Cập nhật vết mùi 46 4.3 Giới hạn vết mùi 47 4.4 Một số nguyên lý ứng dụng thuật toán hệ kiến Max-Min 49 4.5 Xây dựng ứng dụng 53 4.5.1 Phát biểu toán 53 4.5.2 Giải toán 54 KẾT LUẬN 57 TÀI LIỆU THAM KHẢO 58 PHỤ LỤC 61 -5- MỞ ĐẦU Mục đích lý chọn đề tài 1.1 Lý chọn đề tài Các toán tối ƣu tổ hợp (Combinatorial Optimization Problems 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 nhƣ 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 tố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 đƣợc đề 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 đƣợc quan tâm nghiên cứu giới khoa học hiệu trội đƣợc chứng minh thực nghiệm nhƣ 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 toán tơ màu đồ thị (Graph Coloring Problem-GCP), Bài tốn siêu dãy chung ngắn (Shortest Colnmon Supersequence Poblem-SCS)… -6- Trong ACO, hệ kiến Max-Min (Max-Min Ant System-MMAS) tỏ đơn giản, thông dụng đƣợc nhiều ngƣời ƣa dùng so với thuật tốn kiến trƣớc nhƣ hệ kiến (Ant System-AS), hệ đàn kiến (Ant Conoly System-ACS) 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 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 Xuất phát từ tính thực tiễn thiết thực em xin chọn đề tài : “Nghiên cứu tìm hiểu thuật tốn hệ kiến Max –Min” 1.2 Mục đích Mục đích nghiên cứu đề tài tìm hiểu thêm thuật tốn có lời giải tốt cho toán tối ƣu tổ hợp tạo nguồn tài liệu sở cho nghiên cứu thuật tốn tối ƣu hóa đàn kiến Nhiệm vụ, yêu cầu 2.1 Nhiệm vụ - Nghiên cứu lý thuyết đồ thị để phục vụ cài đặt giải toán Người giao hàng thuật toán hệ kiến Max – Min - Nghiên cứu tìm hiểu thuật toán hệ kiến Max – Min thuật tốn liên quan - Tìm hiều ngơn ngữ lập trình C# để tiến hành cài đặt giải toán Người giao hàng thuật toán hệ kiến Max – Min 2.2 Yêu cầu Xây dựng cài đặt chƣơng trình giải toán Người giao hàng ứng dụng thuật toán hệ kiến Max – Min Phƣơng pháp nghiên cứu: -7- - Phƣơng pháp nghiên cứu chủ yếu tham khảo tài liệu, viết liên quan tới đồ thị, thuật tốn hệ kiến - Tìm nguồn tài liệu Internet, sách báo liên quan - Phƣơng pháp thực nghiệm Phạm vi nghiên cứu Nội dung nghiên cứu thuật tốn nói chung nhƣ thuật tốn kiến nói riêng đa dạng phong phú Do thời gian có hạn em khơng hy vọng tìm hiểu đƣợc hết nội dung liên quan tới đề tài, xin giới hạn phạm vi nghiên cứu nhƣ sau: - Tìm hiểu sở lý thuyết đồ thị, để giải toán Người giao hàng - Tìm hiểu nội dung thuật tốn Hệ kiến, nghiên cứu thuật toán ACO theo quy tắc cập nhật mùi Max-Min - Xây dựng thuật toán hệ kiến Max-Min sở toán Người giao hàng Ý nghĩa khoa học thực tiễn đề tài Nếu đề tài đƣợc áp dụng vào thực tiễn việc giải toán tối ƣu tổ hợp trở nên khơng cịn nhiều phức tạp tốn thời gian so với thuật toán truyền thống nhƣ: quy hoạch động, vét cạn… nghiên cứu khoa học đề tài sở vững để em nghiên cứu thuật tốn hệ kiến khác Cấu trúc khóa luận Ngồi phần mở đầu phần kết luận, khóa luận đƣợc tổ chức nhƣ sau: Chƣơng 1: Giới thiệu khái niệm đồ thị số cách biểu diễn đồ thị máy tính -8- Chƣơng 2: 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 3: Trình bày phƣơng pháp tối ƣu hoá đàn kiến:ACO Chƣơng4: Giới thiệu thuật toán hệ kiến Max-Min áp dụng vàoxây dựng ứng dụng giải toán Người giao hàng -9- CHƢƠNG CƠ SỞ LÝ THUYẾT 1.1 Các khái niệm 1.1.1 Định nghĩa đồ thị Là cấu trúc gồm đỉnh cạnh nối với đỉnh Đƣợc mơ tả hình thức: G = (V,E) V gọi tập đỉnh (Vertices) E gọi tập cạnh (Edges) Có thể coi E tập cặp (u,v) với u v hai đỉnh V Một số hình ảnh đồ thị: Sơ đồ giao thơng, mạng máy tính, cấu trúc phân tử… Có thể phân loại đồ thị theo đặc tính số lƣợng tập cạnh E: Cho đồ thị G = (V,E), đƣợc định nghĩa cách hình thức thì: G đƣợc gọi đơn đồ thị hai đỉnh u,v V có nhiều cạnh E nối từ u tới v G đƣợc gọi đa đồ thị hai đỉnh u,v V có nhiều cạnh E nối từ u tới v (Hiển nhiên đơn đồ thị đa đồ thị) G đƣợc gọi đồ thị vô hướng (undirected graph) cạnh E không định hƣớng, tức cạnh nối hai đỉnh u,v cạnh nối hai đỉnh v,u Hay nói cách khác, tập E gồm cặp (u,v) khơng tính thứ tự G đƣợc gọi đồ thị có hướng (directed graph) cạnh E có định hƣớng, có cạnh nối từ đỉnh u tới đỉnh v nhƣng chƣa -10- G đỉnh lần trở nơi xuất phát cho tổng chi phí cạnh thuộc đường (n cạnh) nhỏ Nhƣ vậy, với đồ thị khơng đối xứng có (n  1)! đƣờng chấp nhận đƣợc (n  1)! với đồ thị đối xứng Với n lớn ta khơng thể tìm hết đƣờng tìm đƣợc lời giải đủ tốt phƣơng pháp truyền thống nhƣ: Quy hoạch động, nhánh cận, tìm kiếm địa phƣơng, tìm kiếm heuristic, tính tốn tiến hóa phƣơng pháp kết hợp chúng TSP toán tối ƣu tổ hợp khó có nhiều ứng dụng, đƣợc xem toán mẫu dùng để kiểm tra hiệu thuật toán tối ƣu tổ hợp Khi G đồ thị có hƣớng tốn TSP đƣợc gọi TSP không đối xứng (Asymmeric Traveling Salesman Problem-ATSP), trƣờng hợp lại gọi TSP đối xứng (gọi tắt TSP), để đơn giản, ta xét toán đồ thị vơ hƣớng 4.5.2 Giải tốn Cài đặt thuật tốn Đồ thị (Sơ đồ giao thơng) đƣợc lƣu trữ dƣới dạng file text (.tsp) có cấu trúc nhƣ sau:Hàng bao gồm có số đỉnh (n) số cạnh (m) đồ thị, m hàng hai điểm đầu mút cạnh độ dài tƣơng ứng cạnh Đồ thị đƣợc lƣu trữ dƣới dạng ma trận kề đƣợc cập nhật vào chƣơng trình phƣơng thức LoadGraph() Phƣơng thức Init() phƣơng thức khởi tạo giá trị vết mùi đặt giá trị cho tham số -55- Sau lần chọn đỉnh hành trình kiến thì, mảng đánh dấu đỉnh chƣa thăm, tổng xác suất, xác xuất lựa chọn đỉnh tiếp theo… đƣợc tính lại phƣơng thức CalcP() Đỉnh kiến đƣợc chọn dựa nguyên lý bánh xe sổ xố với phƣơng thức Lottery_Wheel() Sự cập nhật mùi đƣợc thực nhờ Pheromone_Update() Mã nguồn tham khảo thuật toán đƣợc cho phụ lục -56- phƣơng thức Giao diện chƣơng trình Form tạo file test Form tìm đường -57- KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂ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 nhƣ hệ kiến, hệ đàn kiến, hệ kiến MAX-MINthì hệ kiến MAX-MIN đƣợc ƣa dùng tính đơn giản, dễ cài đặt Sau thời gian tìm hiểu nghiên cứu em đạt đƣợc kết sau: - Tìm hiểu đƣợc lý thuyết đồ thị số nguyên lý áp dụng sử dụng giải toán TSP - Hiểu đƣợc thuật toán hệ kiến, thuật toán hệ kiến cập nhật mùi theo tƣ tƣởng Max – Min - Nghiên cứu áp dụng đƣợc thuật toán hệ kiến Max – Min xây dựng chƣơng trình giải tốn TSP Trong khóa luận này, trình bày cách hệ thống thuật toán hệ kiến giới thiệu thuật tố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 toán hệ kiến-thuật toán trội so với thuật tốn mơ tự nhiên giải toán tối ƣu tổ hợp Hiện nay, thuật tốn ACO cho thấy có hiệu suất triển vọng toán tối ƣu tổ hợp Trong tƣơng lai em nghiên cứu hệ kiến MAX-MIN nhằm cải tiến hiệu xuất cho thuật toán để giải toán tối ƣu tổ hợp khả ứng dụng ACO -58- 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 -59- [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 -60- [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 -61- PHỤ LỤC Mã nguồn tham khảo thuật toán hệ kiến Max-Min giải tốn TSP  Các thuộc tính lớp MMAS public const int max = 20; public const int a = 2; /* a va b la tham so neu len moi quan he qua lai giua nong mui va thong tin heuristic*/ public const int b = 5; /* a va b la tham so neu len moi quan he qua lai giua nong mui va thong tin heuristic*/ public const float tmax = 0.5f; //Nong mui max public const float tmin = 0.2f; //Nong mui public const float maxreal = 50000; //Chi phi toi da public const float rho = 0.8f; //He so bay hoi public const int m = 25; //So kien public const int n_c = 500; //So vong lap static public float[,] d;/*mang luu dai cac canh tren thi.*/ static public float[,] t;/*mang luu nong vet mui tren cac canh.*/ static public double[] p;/*mang luu xac xuat lua chon dinh tiep theo tu dinh i.*/ static public float[,] delta;/*mang so thuc chieu luu su cap nhat mui*/ static public float l_best; //Chi phi chu trinh tot nhat static public int n; // So dinh tren thi static int n_loop; static double sum; // Tong cac xac suat static int dem; static int s; // So cung tren thi -62- static float l; static int[] w; //Luu hanh trinh moi kien static public int[] ldd; //Mang luu ket qua static int[] uv; static bool[] mark; static public string filePath=""; static public int[,] chutrinhtotnhat; /*Mang danh dau chu trinh tot nhat de cap nhat mui*/  Lấy đồ thị từ file (.tsp) vào ma trận kề static public void LoadGraph() { string line; string[] fields; if (File.Exists(filePath)) { StreamReader file = null; try { file = new StreamReader(filePath); if ((line = file.ReadLine()) != null) { fields = line.Split(' '); n = int.Parse(fields[0]); s = int.Parse(fields[1]); } d = new float[max, max]; while ((line = file.ReadLine()) != null) { fields = line.Split(' '); d[int.Parse(fields[0]),int.Parse(fields[1])] = float.Parse(fields[2]); d[int.Parse(fields[1]),int.Parse(fields[0])] -63- = float.Parse(fields[2]); } } finally { if (file != null) file.Close(); } } else { MessageBox.Show("Khong tim thay file du lieu!"); } }  Phƣơng thức khởi tạo static public void Init() { t = new float[max, max]; delta = new float[max, max]; w = new int[max]; mark = new bool[max]; p = new double[max]; uv = new int[max]; ldd = new int[max]; chutrinhtotnhat = new int[max, max]; for (int i = 1; i < n; i++) for (int j = i + 1; j

Ngày đăng: 26/07/2020, 20:46

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w