Tiểu luận Thuật toán và phương pháp giải quyết vấn đề THUẬT GIẢI DI TRUYỀN VÀ ỨNG DỤNG TRONG BÀI TOÁN LẬP LỊCH

43 907 7
Tiểu luận Thuật toán và phương pháp giải quyết vấn đề THUẬT GIẢI DI TRUYỀN VÀ ỨNG DỤNG  TRONG BÀI TOÁN LẬP LỊCH

Đ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

Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN o0o THUẬT TOÁN VÀ THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ THUẬT GIẢI DI TRUYỀN THUẬT GIẢI DI TRUYỀN VÀ ỨNG DỤNG VÀ ỨNG DỤNG TRONG BÀI TOÁN LẬP LỊCH TRONG BÀI TOÁN LẬP LỊCH GVHD : PGS. TS. ĐỖ VĂN NHƠN HVTH : NGUYỄN THỊ MAI MÃ HV : CH1301038 LỚP : CH KHÓA 8 Tp. HCM, Thaùng 01 naêm 2014 SVTH: Nguyễn Thị Mai 1 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn MỤC LỤC SVTH: Nguyễn Thị Mai 2 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn LỜI CẢM ƠN Em xin chân thành cảm ơn thầy PGS.TS Đỗ Văn Nhơn đã cung cấp cho em những kiến thức quan trọng, nền tảng, giúp em định hướng tìm tòi, học tập và nắm vững hơn những phương pháp giải quyết vấn đề, những thuật toán cơ bản và mở rộng để ứng dụng vào những bài toán cụ thể trên máy tính và trong thực tế. Trong bài này em xin trình bày nội dung về giải thuật di truyền qua những tìm hiểu từ các giáo trình, bài báo, tài liệu và ứng dụng của thuật giải di truyền vào bài toán lập lịch cho trường đại học. Do thời gian có hạn nên bài viết chưa thực sự hoàn chỉnh, còn nhiều hạn chế và hiểu biết chưa sâu rộng, mong thầy thông cảm. Tp. Hồ Chí Minh, ngày 19 tháng 01 năm 2014 Học viên thực hiện Nguyễn Thị Mai SVTH: Nguyễn Thị Mai 3 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn I. THUẬT GIẢI DI TRUYỀN 1. Tổng quan về thuật giải di truyền 1.1 Giới thiệu Genetic Algorithms tạm dịch là Thuật giải di truyền (viết tắt là GA) bắt nguồn từ ý niệm tiến hóa để tồn tại và phát triển trong tự nhiên. GA là phương thức giải quyết vấn đề mô phỏng theo quá trình chọn lọc tự nhiên. Nó giúp tìm ra giải pháp tối ưu trong điều kiện thời gian và không gian cho phép từ các giải pháp ban đầu, thông qua quá trình chọn lọc, lai ghép và đột biến. Trong thuật giải di truyền, người ta dùng thuật ngữ vay mượn của di truyền học. Trong đó, cá thể biểu diễn một lời giải, giải pháp của bài toán. Ở đây, ta quy ước mỗi cá thể chỉ có một nhiễm sắc thể (NST). NST có thể là một chuỗi tuyến tính. Trong NST có các đơn vị nhỏ hơn là gen. Mỗi gen đại diện cho một thuộc tính, tính chất, có vị trí nhất định trong NST. Quần thể là một tập hữu hạn xác định các cá thể biểu diễn lời giải. Trải qua quá trình tiến hóa, qua mỗi thế hệ, quần thể này tái sinh các lời giải tốt hơn, thích nghi hơn, đồng thời loại bỏ dần các lời giải kém hiệu quả. Như vậy, mục tiêu cuối cùng của GA là tạo ra nhiều giải pháp mới có hệ số thích nghi ngày càng cao. Do đó, ta có thể đánh giá các giải pháp thông qua hệ số thích nghi này. 1.2 Các bước cơ bản giải bài toán bằng thuật giải di truyền Một bài toán được giải bằng thuật giải di truyền thường gồm các bước sau: - Biểu diễn lời giải của bài toán (nhiễm sắc thể) bằng chuỗi nhị phân, chuỗi ký tự, số thập phân, … - Khởi tạo quần thể ban đầu gồm N cá thể một cách ngẫu nhiên. - Xây dựng hàm thích nghi làm tiêu chuẩn đánh giá cá thể - Xác định xác suất lai tạo, xác suất đột biến. - Xây dựng các phép lai tạo, chọn lọc, đột biến. 2. Các thành phần cơ bản của GA Trong GA, một tập các biến của bài toán đưa ra được mã hóa sang một chuỗi (hay một cấu trúc mã hóa khác) tương tự như một nhiễm sắc thể trong tự nhiên. Mỗi chuỗi bao gồm một giải pháp có thể của bài toán. Giải thuật di truyền sử dụng các toán tử được sinh ra bởi sự chọc lọc tự nhiên một quần thể các chuỗi nhị phân (hoặc các cấu trúc khác), mã hóa khoảng tham số trên mỗi thế hệ, khảo sát các phạm vi SVTH: Nguyễn Thị Mai 4 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn khác nhau của không gian tham số, và định hướng tìm kiếm đối với khoảng mà là xác suất cao để tìm kiếm sự thực hiện tốt hơn. Thuật toán di truyền gồm có bốn quy luật cơ bản là lai ghép, đột biến, sinh sản và chọn lọc tự nhiên. Sau đây, ta sẽ đi vào chi tiết từ khâu đầu tiên là biểu diễn các cá thể. 2.1 Biểu diễn các cá thể Biểu diễn cá thể là ánh xạ các tham số của bài toán lên một chuỗi có chiều dài xác định. Khi thực hiện giải bài toán bằng thuật giải di truyền, việc đầu tiên ta cần làm là xác định cách biểu diễn các cá thể. Tùy theo từng bài toán cụ thể mà có những cách biểu diễn khác nhau sao cho phù hợp, thuận lợi khi giải toán. 2.1.1 Biểu diễn nhị phân Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1. Ý nghĩa của các bit này phụ thuộc vào từng tình huống cụ thể. Đây là cách biểu diễn đơn giản nhất và thông dụng nhất. Ví dụ 1: hai NST được biểu diễn dưới dạng nhị phân như sau: Ví dụ 2: Cho bài toán: có n đồ vật với trọng lượng và giá trị khác nhau được cho trước trong một cái túi có trọng lượng đã biết. Yêu cầu: hãy chọn ra các đồ vật để cho vào túi sao cho tổng giá trị các đồ vật trong túi là lớn nhất. Trong trường hợp này, ta đánh số đồ vật từ 1 đến n, mỗi cá thể được biểu diễn bằng một xâu nhị phân độ dài n. Trong đó, bit thứ i bằng 1 có nghĩa là đồ vật thứ i được cho vào túi, bằng 0 là bỏ lại. 2.1.2 Biểu diễn sử dụng hoán vị Biểu diễn hoán vị thường được sử dụng trong bài toán sắp xếp. Mỗi cá thể tương ứng với một hoán vị của tập n ký hiệu nào đó. Mỗi NST là một chuỗi các số thể hiện vị trí trong một dãy. Ví dụ: cách biểu diễn 2 NST dưới đây là biểu diễn hoán vị. SVTH: Nguyễn Thị Mai 5 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn Một ví dụ cụ thể hơn, cách biểu diễn này đã được áp dụng cho bài toán người du lịch: Một thương gia phải đi qua nhiều thành phố (n). Hãy vạch lộ trình đi qua tất cả các thành phố đó sao cho quãng đường đi là ngắn nhất. Biết rằng mỗi thành phố chỉ đi qua một lần. Ký hiệu các thành phố là T 1 , T 2 , …, T n mỗi cá thể sẽ là một danh sách hoán vị của T 1 , T 2 , …, T n biểu diễn lộ trình mà người thương gia đã đi qua. Ví dụ T 8 T 5 T 9 T 3 … là ký hiệu của hành trình từ T 8 T 5 T 9 T 3 … Như vậy, mỗi chuỗi con sẽ biểu diễn cho một đỉnh của không gian tìm kiếm và qua đó thể hiện được cách trả lời có thể có của bài toán. Sau đó, mỗi chuỗi NST sẽ được giải mã lại để trả về các thông số ban đầu của bài toán. 2.1.3 Biểu diễn bằng giá trị Phương pháp này thường được dùng trong các bài toán có chứa những giá trị phức tạp. Trong mã hóa giá trị, mọi NST là một chuỗi chứa những giá trị nào đó. Những giá trị này có thể có dạng bất kỳ liên quan đến bài toán, từ số nguyên, số thực, ký tự cho đến các đối tượng phức tạp hơn. Ví dụ: Ta biểu diễn 3 NST bằng giá trị như sau: NST A được biểu diễn dưới dạng số thực NST B được biểu diễn dưới dạng chuỗi ký tự NST C được biểu diễn dưới dạng danh sách thuộc tính 2.1.4 Biểu diễn dưới dạng cây Mã hóa theo cây được dùng chủ yếu cho các chương trình ( hoặc biểu thức) tiến hóa, cho lập trình gen Trong mã hóa theo cây, mọi NST là một cây chứa các đối tượng như hàm hoặc lệnh trong một ngôn ngữ lập trình nào đó. Dưới đây là 2 NST được biểu diễn bằng phương pháp này. SVTH: Nguyễn Thị Mai 6 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn NST A (Chromosome A) biểu diễn một nhánh công thức toán học NST B (Chromosome B) biểu diễn lệnh trong ngôn ngữ lập trình. Ví dụ: Bài toán tìm hàm từ những giá trị cho trước. Cho trước một số đầu vào và đầu ra. Tìm hàm cho ra kết quả tốt nhất với mọi đầu vào. Mã hóa: NST là các hàm được biểu diễn bằng cây. Sau khi biểu diễn được các cá thể cho bài toán, ta có thể bắt tay ngay vào việc thực hiện giải thuật di truyền theo các bước đã có trong phần trước. Bước đầu là cần có một quần thể ban đầu. Nó có thể có được bằng cách chọn ngẫu nhiên các cá thể hoặc có thể dùng chiền thuật lựa chọn thông qua hàm thích nghi: 2.2 Hàm thích nghi Hàm thích nghi lấy một chuỗi NST là đầu vào và trả về giá trị tượng trưng cho chuỗi NST đó để đánh giá trên vấn đề cần giải quyết. Hàm thích nghi có vai trò tương tự như môi trường sống trong sự tiến hóa của tự nhiên. Vấn đề tương tác giữa một cá thể với môi trường sống được thể hiện qua giá trị của hàm thích nghi trong mỗi cá thể. Giá trị hàm thích nghi là Tối đa hay Tối thiểu tùy theo bài toán sẽ quyết định xác suất của mỗi chuỗi có thể tham gia vào các toán tử di truyền 2.3 Quá trình lai ghép Quá trình này diễn ra bằng cách ghép một hay nhiều đoạn gen từ hai nhiễm sắc thể cha-mẹ để hình thành nhiễm sắc thể mới mang đặc tính của cả cha lẫn mẹ.  Chọn ngẫu nhiên hai (hay nhiều) cá thể bất kỳ trong quần thể. Giả sử các nhiễm sắc thể của cha mẹ đều có m gen.  Tạo một số ngẫu nhiên trong khoảng từ 1 đến m-1 (ta gọi là điểm lai). Điểm lai này sẽ chia hai chuỗi nhiễm sắc thể cha-mẹ thành hai nhóm nhiễm sắc thể con là m 1 và m 2 . Hai chuỗi nhiễm sắc thể con lúc này sẽ là m 11 +m 22 và m 21 +m 12  Đưa hai cá thể mới này vào quẩn thể để tham gia các quá trình tiến hóa tiếp theo. 2.4 Quá trình sinh sản (tái sinh) Phép tái sinh: là quá trình các cá thể được sao chép dựa trên độ thích nghi của nó. Phép tái sinh có thể mô phỏng như sau: SVTH: Nguyễn Thị Mai 7 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn  Tính độ thích nghi của từng cá thể trong quẩn thể hiện hành, lập bảng cộng dồn các giá trị thích nghi (theo số thứ tự gán cho từng cá thể). Giả sử quần thể có n cá thể. Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồn thứ i là Fti, tổng độ thích nghi của toàn quần thể là Fm.  Tạo một số ngẫu nhiên F trong đoạn từ 0 đến Fm.  Chọn cá thể thứ k đầu tiên thỏa mãn F ≥ Ftk đưa vào quần thể của thế hệ mới. Ví dụ: Mỗi cặp bố mẹ sinh hai con theo một trong hai phương pháp sau  Vô tính • Mỗi ấu nhi là một bản sao chính xác từ cha • Mỗi ấu nhi là một bản sao chính xác từ mẹ  Hữu tính (giao nhau) • Một vài bits được sao từ mẹ, vài bits được sao chép từ cha • Cứ tiếp tục sao từ một cặp bố mẹ cho đến chừng nào điểm giao nhau, thì sao chép từ cặp bố mẹ khác. Sinh sản hữu tính giao nhau một nửa Bố Mẹ Ấu nhi 1 Ấu nhi 2 Sinh sản hữu tính giao nhau ba điểm Bố Mẹ Ấu nhi 1 Ấu nhi 2 2.5 Quá trình đột biến SVTH: Nguyễn Thị Mai 8 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn Quá trình tiến hóa được gọi là quá trình đột biến khi một hoặc một số tính trạng của con không được thừa hưởng từ hai chuỗi nhiễm sắc thể cha-mẹ. Phép đột biến xảy ra với xác suất thấp hơn rất nhiều lần so với xác suất xảy ra phép lai. Phép đột biến có thể mô tả như sau:  Chọn ngẫu nhiên một số k từ khoảng 1 ≥ k ≥ m  Thay đổi giá trị của gen thứ k  Đưa nhiễm sắc thể con vào quần thể để tham gia quá trình tiến hóa tiếp theo 2.6 Quá trình chọn lọc Là quá trình loại bỏ các cá thể xấu và để lại những cá thể tốt. Phép chọn được mô tả như sau:  Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần  Loại bỏ các cá thể cuối dãy, chỉ để lại n cá thể tốt nhất. SVTH: Nguyễn Thị Mai 9 11101001000 00001010101 11101010101 00001001000 11111000000 11101001000 00001010101 11001011000 00101000101 00111110000 11101001000 00001010101 10001000100 01101011001 00111110000 11101001000 11101011000 Các chuỗi ban đầu Mặt nạ lai ghép Các cá thể con Lai ghép điểm đơn: Lai ghép điểm kép: Lai ghép đồng nhất: Đột biến điểm: Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn 3. Các toán tử Hình 1. Các toán tử chung cho thuật giải di truyền 3.1 Toán tử chọn lọc Mục đích của việc chọn này nhằm nhấn mạnh sự lọc cá thể trong quần thể và hi vọng tạo ra quần thể con của nó có giá trị thích nghi cao hơn. - Chọn lọc Bánh xe Roulette (Roulette Wheel Selection) Công thức: Trong đó, là giá trị thích nghi của cá thể SVTH: Nguyễn Thị Mai 10 [...]... các giá trị thô ban đầu Tùy theo vấn đề của bài toán mà có cách khởi động khác nhau Trước một bài toán áp dụng thuật giải di truyền, ta cần phải xác định rõ nhiễm sắc thể và cá thể cho vấn đề, và thông thường đó sẽ kết quả cuối cùng Việc phân tích sẽ dựa trên kết quả là cơ bản nhất Giai đoạn 2: Đánh giá cá thể SVTH: Nguyễn Thị Mai 17 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn Chắc... Nhưng, với mỗi giáo viên tương ứng, chúng ta sẽ chọn một giáo viên hợp lệ với môn học SVTH: Nguyễn Thị Mai 24 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn Vấn đề của bài toán khá phức tạp về mặt ràng buộc, nhưng phương pháp chia để trị vẫn là biện pháp hữu hiệu trong mọi vấn đề phức tạp ở đây cũng vậy, theo phân cấp các ràng buộc mà ta giải quyết bài toán xếp thời khóa biểu này thành... lại II BÀI TOÁN LẬP LỊCH 1 Giới thiệu bài toán Lập lịch có thể được định nghĩa là một bài toán tìm kiếm chuỗi tối ưu để thực hiện một tập các hoạt động chịu tác động của một tập các ràng buộc cần phải được thỏa mãn Người lập lịch thường cố gắng thử đến mức tối đa sự sử dụng các cá thể, máy móc và tối thiểu thời gian đòi hỏi để hoàn thành toàn bộ quá trình nhằm sắp xếp lịch. Vì thế bài toán lập lịch là... xếp lịch cơ sở Một lần nữa nói về thời gian thực thi, sẽ mất nhiều thời gian hơn công việc xếp lịch lớp, do số lượng và phạm vi ràng buộc khá lớn và phải đọc dữ liệu trên các file Nhưng về mặt hoạt động không khác nhau Chọn điểm dừng thuật toán Đã được nói ở trong từng giai đoạn của các phần áp dụng thuật giải di truyền vào bài toán, điểm dừng thuật toán dựa trên độ thích nghi của nó Một số bài toán. .. Nguyễn Thị Mai 30 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn Công việc này sẽ tốn rất nhiều thời gian, vì công việc đọc file để kiểm tra, nhưng quần thể sẽ cho ra kết quả đúng nhất về mặt áp dụng bài toán vào thuật giải di truyền Tính độ thích nghi và lựa chọn cá thể Giai đoạn hội tụ cá thể trong quần thể, trên cơ bản việc đánh giá cơ sở tùy theo số lớp, số giờ học và số phòng học... cấu trúc dữ liệu SVTH: Nguyễn Thị Mai 20 Thuật toán và phương pháp giải quyết SVTH: Nguyễn Thị Mai GVHD: PGS.TS Đỗ Văn Nhơn 21 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn 4.2 Các ràng buộc  Ràng buộc cứng:  Một giáo viên chỉ dạy được một lớp trong cùng một quãng thời gian  Các lớp chỉ có một môn học trong cùng một quãng thời gian  Tất cả các bài học của một môn nào đó dạy tại một... tiêu cuối cùng của bài toán Đó là lịch học của các lớp trong một cơ sở Cả hai giai đoạn tuy có mục tiêu và dữ liệu khác nhau, nhưng về cách giải quyết có tính tương tự nhau, nên không khác gì nhiều khi áp dụng vào mô hình thuật giải di truyền Giai đoạn 1 - Xếp lịch học các lớp Chọn mô hình cá thể lớp học Lịch học của một lớp có hai thành phần chính, bao gồm: các môn học và các giờ học trong tuần Việc... lớp đều có một lịch học rõ ràng thì đó có nghĩa là có lịch cơ sở Dựa vào giai đoạn đầu, trên mỗi lớp đã cho ra hàng loạt các lịch học, việc chọn ngẫu nhiên lịch học của một lớp thì không có gì khó khăn Nhìn mô hình cá thể trong lịch lớp ta thấy lớp học trong cơ sở có tính chất như môn học trong lớp, cho nên ta chọn lớp học làm đơn vị của nhiễm sắc thể trong mô hình thuật toán di truyền trong xếp lịch. .. sắc thể từ quần thể hiện hành vào quần thể mới theo cách sau: Phát sinh một số ngẫu nhiên r trong khoảng [0, 1] Nếu r < q1thì chọn nhiễm sắc thể v1, ngược lại chọn nhiễm sắc thể vi (2 ≤ i ≤ kích thước quần thể) sao cho qi-1 < r ≤ qi 6 Cấu trúc giải thuật di truyền SVTH: Nguyễn Thị Mai 16 Thuật toán và phương pháp giải quyết GVHD: PGS.TS Đỗ Văn Nhơn Procedure Giải _thuật_ di_ truyền; Begin t:=0; Khởi tạo... lịch là một vấn đề rất khó để giải quyết Hiện nay có nhiều khả năng để phát triển các kỹ thuật hiện tại để giải quyết bài toán này Những kỹ thuật đó bao gồm: các tiếp cận Trí tuệ nhân tạo như hệ thống tri thức cơ sở (knowledge-based systems), bài toán thoả mãn ràng buộc, hệ chuyên gia, mạng Nơron và các tiếp cận của các Nghiên cứu hoạt động: lập trình tính toán, lập trình động, tìm kiếm nhánh và đường . PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ THUẬT GIẢI DI TRUYỀN THUẬT GIẢI DI TRUYỀN VÀ ỨNG DỤNG VÀ ỨNG DỤNG TRONG BÀI TOÁN LẬP LỊCH TRONG BÀI TOÁN LẬP LỊCH GVHD : PGS. TS tòi, học tập và nắm vững hơn những phương pháp giải quyết vấn đề, những thuật toán cơ bản và mở rộng để ứng dụng vào những bài toán cụ thể trên máy tính và trong thực tế. Trong bài này em xin. dung về giải thuật di truyền qua những tìm hiểu từ các giáo trình, bài báo, tài liệu và ứng dụng của thuật giải di truyền vào bài toán lập lịch cho trường đại học. Do thời gian có hạn nên bài viết

Ngày đăng: 23/05/2015, 00:10

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • I. THUẬT GIẢI DI TRUYỀN

    • 1. Tổng quan về thuật giải di truyền

      • 1.1 Giới thiệu

      • 1.2 Các bước cơ bản giải bài toán bằng thuật giải di truyền

      • 2. Các thành phần cơ bản của GA

        • 2.1 Biểu diễn các cá thể

        • 2.2 Hàm thích nghi

        • 2.3 Quá trình lai ghép

        • 2.5 Quá trình đột biến

        • 2.6 Quá trình chọn lọc

        • 3. Các toán tử

          • 3.1 Toán tử chọn lọc

          • 3.2 Toán tử đột biến

          • 3.3 Toán tử lai ghép

          • 4. Các tham số

          • 5. Công thức

          • 6. Cấu trúc giải thuật di truyền

          • 7. Các giai đoạn của thuật giải di truyền

          • II. BÀI TOÁN LẬP LỊCH

            • 1. Giới thiệu bài toán

            • 2. Khảo sát yêu cầu bài toán

            • 3. Khảo sát, thu thập dữ liệu, thông tin, tri thức (DIK)

            • 4. Hướng giải quyết bài toán

              • 4.1 Ý tưởng

              • 4.2 Các ràng buộc

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

Tài liệu liên quan