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

Thuật toán phỏng luyện kim với bài toán lập lịch thi đấu thể thao

61 347 1

Đ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 61
Dung lượng 575,98 KB

Nội dung

1 MỤC LỤC PHẦN MỞ ĐẦU Lý chọn đề tài Mục đích nghiên cứu Nhiệm vụ nghiên cứu 4 Những đóng góp khóa luận 4.1 Ý nghĩa khoa học 4.2 Ý nghĩa thực tiễn 5 Cấu trúc khóa luận CHƯƠNG GIẢI THUẬT PHỎNG LUYỆN KIM 1.1 Bài tốn NP-Khó 1.1.1 Bài tốn NP-Khó 1.1.2 Bài toán lập lịch 1.2 Giải thuật luyện kim 1.2.1 Lịch sử vấn đề 1.2.2 Thuật toán 1.2.3 Biểu diến toán học thành phần giải thuật 11 1.2.4 Sơ đồ chung thuật toán luyện kim 15 1.2.5 Một số trường hợp giải thuật 18 1.2.6 Khung giải thuật luyện kim 21 CHƯƠNG GIẢI THUẬT PHỎNG LUYỆN KIM SONG SONG 26 2.1 Song song hóa giải thuật luyện kim 26 2.2 Di chuyển song song cho giải thuật luyện kim 28 2.2.1 Cơ di chuyển song song 28 2.2.2 Mơ hình thực 29 2.3 Khung thuật toán luyện kim song song 34 CHƯƠNG THỬ NGHIỆM GIẢI BÀI TOÁN LẬP LỊCH THI ĐẤU BẰNG GIẢI THUẬT PHỎNG LUYỆN KIM 36 3.1 Bài toán lập lịch thi đấu 36 3.1.1 Vấn đề lập lịch thi đấu thể thao 36 3.1.2 Giới thiệu toán 37 3.2 Giải toán lập lịch thi đấu với giải thuật luyện kim 38 3.2.1 Định nghĩa toán 38 3.2.2 Thuật toán luyện kim cho toán lập lịch thi đấu 40 3.3 Cài đặt thuật toán 49 3.3.1 Hàm đọc vào liệu toán 49 3.3.2 Khởi tạo lời giải 50 3.3.3 Sinh lời giải láng giềng 52 3.3.4 Tính số ràng buộc 53 3.3.5 Hàm sức khỏe 55 3.4 Kết thực nghiệm 57 PHẦN KẾT LUẬN 59 TÀI LIỆU THAM KHẢO 60 DANH MỤC HÌNH VẼ Hình 1.1: Sơ đồ bước nhảy không gian lời giải 10 Hình 1.2: Sơ đồ thuật tốn 11 Hình 1.3: Chu trình nhiệt độ T 13 Hình 1.4: Giá trị hàm sức khỏe tăng nhiệt độ giảm 13 Hình 2.1: Biểu đồ hoạt động mơ hình đồng tồn cục 30 Hình 2.2: Biểu đồ thực cho mơ hình khơng đồng tồn cục 31 Hình 2.3: Cấu trúc gói di chuyển lân cận 33 Hình 3.1: Giả mã thuật tốn SA cho toán lập lịch thi đấu 42 Hình 3.2: Giả mã hàm khởi tạo lời giải 51 Hình 3.3: Bảng kết toán lập lịch thi đấu môi trường 58 PHẦN MỞ ĐẦU Lý chọn đề tài Trong thực tế, ta gặp khơng tốn khơng có giải thuật để giải có giải thuật để giải độ phức tạp tính tốn lại q lớn Khi người ta phải áp dụng phương pháp tính tốn phi truyền thống Với giải thuật này, thường ta đạt nghiệm chấp nhận khả đạt nghiệm tối ưu Giải thuật luyện kim giải thuật Bài toán lập lịch thi đấu thể thao toán thuộc loại NP-Khó Với giải thuật thơng thường khơng thể có lời giải phạm vi thời gian thực tế cho phép Có thể có nhiều cách giải phi truyền thống để tìm lời giải chấp nhận cho tốn Trong khn khổ luận văn thạc sỹ, chọn cách giải giải thuật luyện kim nhằm minh họa cho phần lý thuyết Tên đề tài luận văn: “Thuật toán luyện kim với toán lập lịch thi đấu thể thao” Mục đích nghiên cứu Mục đích nghiên cứu đề tài: tìm hiểu thuật tốn luyện kim, cải tiến thuật tốn thích hợp để giải tốn lập lịch thi đấu nhằm tìm kết tốt cho tốn Từ đó, đưa ứng dụng để giải toán lập lịch thi đấu thể thao Nhiệm vụ nghiên cứu Những nhiệm vụ việc nghiên cứu đề tài này: - Nghiên cứu tổng quan thuật tốn mơ luyện kim - Tìm hiểu khung thuật tốn luyện kim - Trên sở khung thuật tốn tìm hiểu, viết cải tiến hàm để sử dụng cho toán lập lịch thi đấu Tối ưu cách giải đề đưa lời giải tốt Những đóng góp khóa luận 4.1 Ý nghĩa khoa học - Tìm hiểu thuật tốn meta – heuristic cụ thể thuật toán luyện kim để giải tốn tối ưu khó - Giải toán ứng dụng thực tế toán lập lịch thi đấu 4.2 Ý nghĩa thực tiễn Áp dụng toán giải vào việc lập lịch thi đấu thực tế để đem lại hiệu doanh thu cho kinh tế Cấu trúc khóa luận Cấu trúc khóa luận bao gồm phần: Phần mở đầu: Giới thiệu lý chọn đề tài, cấu trúc đề tài, nhiệm vụ kết đề tài Phần nội dung: Trình bày nội dung cụ thể đề tài, bao gồm chương: CHƯƠNG Giải thuật luyện kim Giới thiệu tổng quan tốn NP-Khó, thuật tốn luyện kim CHƯƠNG Giải thuật luyện kim song song Tìm hiều giải thuật luyện kim song song: Song song hóa giải thuật luyện kim, Di chuyển song song cho giải thuật luyện kim, Khung thuật toán luyện kim song song CHƯƠNG Thử nghiệm giải toán lập lịch thi đấu giải thuật luyện kim Áp dụng khung thuật toán luyện kim chương để giải toán lập lịch thi đấu Phần kết luận: Đưa kết luận hướng phát triển cho luận văn CHƯƠNG GIẢI THUẬT PHỎNG LUYỆN KIM 1.1 Bài toán NP-Khó 1.1.1 Bài tốn NP-Khó 1.1.1.1 Lớp tốn P Định nghĩa Ta Chúng ta gọi P lớp tốn giải thời gian đa thức, NP lớp toán định mà để xác định câu trả lời “yes” đưa chứng ngắn gọn dễ kiểm tra, co-NP lớp toán định mà để xác định câu trả lời “no” đưa chứng ngắn gọn dễ kiểm tra Ví dụ: Bài tốn khung nhỏ giải nhờ thuật toán Prim với thời gian 0(n2) thuộc lớp toán P 1.1.1.2 Lớp toán NP Định nghĩa Ta gọi NP lớp toán định mà để xác nhận câu trả lời ‘yes’ ta đưa chứng ngắn gọn dễ kiểm tra Ví dụ: Bài tốn kiểm tra tính hợp số: “Có phải n hợp số không?”, để xác nhận câu trả lời ‘yes’ cho đầu vào n ta đưa ước số b (1< b < n) n Để kiểm tra xem b có phải ước số n hay khơng ta thực phép chia n cho b sau thời gian đa thức Trong ví dụ dễ thấy b chứng ngắn gọn (b> (istream& is, Problem& pbm) { int l; is >> pbm._n; //đọc vào số đội toán //đọc vào ma trận đường pbm._k = pbm._n*(pbm._n*2-2); pbm._matrix = new int*[pbm._n]; for (int i = 0; i < pbm._n; i++) { pbm._matrix[i] = new int[pbm._n]; for (int j = 0; j < pbm._n; j++) { is >> l; pbm._matrix[i][j] = l; } } return is; } 3.3.2 Khởi tạo lời giải Khởi tạo lịch trình ngẫu nhiên S lời giải ban đầu, cho S lịch trình khả thi Lịch trình S bao gồm: n dịng n đội thi đấu 2*n-2 cột 2*n-2 vịng đấu 51 Dưới giả mã để khởi tạo lịch trình ban đầu RANDOMSCHEDULE() { Q  {(t, w) | t ϵ Teams&w ϵ Weeks}; GENERATESCHEDULE(Q, S); return S; } bool GENERATESCHEDULE(Q, S) { if Q =  then return true; end if select t, w ϵ Q such that  t ' , w' ϵ Q : t ' , w'  t, w ; Choise  {1, -1, …, t – 1, - (t - 1), t +1, - ( t+1),…, n, -n}; 10 forall o ϵ Choise inradom order 11 if o, w  Q then 12 S[t, w]  o; 13 if o > then S[o, w]  -t; 14 15 else S[-o, w]  t; 16 17 end if 18 if GENERATESCHEDULE(Q\{ t, w , | o |, w }, S) then 19 return true; 20 end if 21 end if 22 end forall 23 return false; 24 } Hình 3.2: Giả mã hàm khởi tạo lời giải 52 Sử dụng tập hợp Q bao gồm tất vị trí (Team, Week) để hồn thành lịch trình Đầu tiên, khởi tạo tập hợp Q sau gợi đến thủ tục đệ quy GENERATESCHEDULE Trong thủ tục đệ quy GENERATESCHEDULE: lựa chọn vị trí , theo thứ tự từ điển thử tất trường hợp thực cách lựa chọn ngẫu nhiên với đội đá sân nhà sân khách Nếu đối thủ o không w lịch trình S cập nhật thuật toán gọi đệ quy với tập hợp Q mà bị xóa Quá trình gọi đệ quy kết thúc Q rỗng Khi đó, lịch trình S sinh 3.3.3 Sinh lời giải láng giềng Sử dụng phương pháp tìm kiếm lân cận SwapHomes(S, Ti, Tj) sinh lời giải láng giềng S’ cách đổi sân nhà thành sân khách (và ngược lại) đội i, j void DefaultMove::Apply (Solution& sol) coust { //Body of operator int n = sol.pbm().n(); int i, j; srand(time(NULL)); i = rand()%n; j = rand()%n; while(i==j) { j=rand()%n; } 53 sol.change(I,j); } Hàm Apply() sinh lời giải cách: chọn i, j ngẫu nhiên từ 1n, loại trường hợp i = j Sau gọi đến hàm đổi chỗ change() để thực việc đổi sân nhà sân khách đội i, j void Solution::change(const int i, const int j) { int n = _pbm.n(); int k = 2*n-2; int tg, tg1, tg2, so = 0; for (int t=0; t : lịch trình khơng khả thi - Nếu số ràng buộc = : lịch trình khả thi int Solution ::nbv()const { int i, j, n ; 54 n = _pbm.n() ; int dem = ; //đếm số ràng buộc lịch trình S // tính số ràng buộc H1 : đội chơi liên tiếp sân nhà sân //khách lần (k>3) tăng biến dem for (i=0 ;i3) dem++; else k=1; } } if(k>3) dem++; } //tính số ràng buộc H2: đội i chơi sân nhà vòng j chơi //trên sân khách vịng j+1 tăng biến dem for(i=0;i

Ngày đăng: 09/12/2016, 17:22

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Quách Tuấn Ngọc, Ngôn ngữ lập trình C++, Nhà xuất bản thống kế Tài liệu Tiếng Anh Sách, tạp chí
Tiêu đề: Ngôn ngữ lập trình C++
Nhà XB: Nhà xuất bản thống kế Tài liệu Tiếng Anh
1. D.T. Connelly (1992). General Purpose Simulated Annealing. Journal of Operations Research, 43, 1992 Sách, tạp chí
Tiêu đề: D.T. Connelly (1992). General Purpose Simulated Annealing. "Journal of Operations Research
Tác giả: D.T. Connelly
Năm: 1992
2. K. Easton, G. Nemhauser and M.Trick (2001), The traveling tournament problem description and benchmarks. In Seventh International Confernce on the Principles and Practice of Constraint Programming (CP’99), 580–589, Paphos, Cyprus, 2001.Springer-Verlag, LNCS 2239 Sách, tạp chí
Tiêu đề: Seventh International Confernce on the Principles and Practice of Constraint Programming (CP’99)
Tác giả: K. Easton, G. Nemhauser and M.Trick
Năm: 2001
3. S. Krikpatrick, C. Gelatt and M. Vecchi (1983). Optimization by Simulated Annealing. Science, 220: 671-680, 1983 Sách, tạp chí
Tiêu đề: Science
Tác giả: S. Krikpatrick, C. Gelatt and M. Vecchi
Năm: 1983
4. T. Benoist, F. Laburthe, and B. Rottembourg. LagrangeRelaxation and Constraint Programming Collaborative Schemes for Travelling Tournament Problems. In CP-AI-OR’2001, Wye College (Imperial College), Ashford, Kent UK, April 2001 Sách, tạp chí
Tiêu đề: CP-AI-OR’2001
5. Juan A. D’iaz and Elena Fern andez. A tabu serch heurustic for the generalized assignment problem. European Journal of Operational Research, 132(1): 22-38, July 2001 Sách, tạp chí
Tiêu đề: European Journal of Operational Research
6. F. Glover and M. Laguna. Tabu Search. Kluwer Academic Publishers, 1997 Sách, tạp chí
Tiêu đề: Tabu Search
7. M. Laguna, J.P. Kelly, Gonzalez-Velarde, and F. Glover. Tabu search for the multilevel generalized assignment problems.European Journal of Operational Research, 42:667-687, 1995 Sách, tạp chí
Tiêu đề: European Journal of Operational Research

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w