Giải thuật di truyền song song và ứng dụng giải bài toán MAX_SAT

28 563 2
Giải thuật di truyền song song và ứng dụng giải bài toán MAX_SAT

Đ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

Giải thuật di truyền song song và ứng dụng giải bài toán MAX_SAT

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA CƠNG NGHỆ THƠNG TIN BÁO CÁO KHOA HỌC ĐỀ TÀI: GIẢI THUẬT DI TRUYỀN SONG SONG ỨNG DỤNG GIẢI BÀI TỐN MAX- SAT Giảng viên hướng dẫn : Thầy Đỗ Trung Kiên Sinh viên thực hiện : Nguyễn Thị Lụa – K54C Đỗ Văn Quang – K55B Trần Đăng Doanh- K55B THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 2 MỤC LỤC LỜI MỞ ĐẦU……………………………………………………………………2 Chương I : Tổng quan ….……………………………………………………… 3 1. Tổng quan thuật tốn di truyền ………………………………………………4 1.1 Khái niệm…………………………………………………………………… 4 1.2 Cấu trúc của thuật tốn di truyền …………………………………………….7 2. Ví dụ minh họa………………………………………………………………12 2.1 Bài tốn Max-sat …………………………………………………………….12 2.2 Giải thuật di truyền giải qut bài tốn Max-sat…………………………… 14 Chương II : Xây dựng thuật tốn di truyền …………………………………… .14 1. Khung thiết kế thuật tốn di truyền ……………………………………… .15 1.1 Lớp provides – lớp cung cấp……………………………………………… 15 1.2 Lớp Requide – Lớp u cầu ……………………………………………… 16 2. Khung thuật tốn tuần tự …………………………………………………….20 3. Khung thuật tốn song song ………………………………………………….22 3.1 Lựa chọn phần cứng ………………………………………………………….22 3.2 Lựa chọn phần mềm………………………………………………………….22 Chương III : sử dụng khung thuật tốn di truyền giải quyết bài tốn Maxsat……26 1. cài đặt bài tốn Max-sat……………………………………………………… .26 1.1 file cấu hình .cfg……………………………………………………………….26 1.2 file đầu vào .dat ……………………………………………………………….26 2. Sử dụng khung thuật tốn di truyền giải bài tốn Max-sat…………………… 27 Chương III : Kết quả thực nghiệm ……………………………………………… 28 1. kết quả tuần tự ………………………………………………………………… 28 2.Kết quả song song……………………………………………………………….28 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 3 LỜI MỞ ĐẦU Với khả năng hiện nay, máy tính đã giúp giải được rất nhiều bài tốn khó mà trước đây thường bó tay. Mặc dù vậy vẫn có một số lớn các bài tốn thú vị mà chưa có giải thuật hợp lý để giải chúng. Trong đó các bài tốn tối ưu là nững bài tốn thường gặp trong thực tiễn. Trong thực tiễn, có nhiều bài tốn tối ưu quan trọng đòi hỏi những thuật tốn có chất lượng cao. Ví dụ ta có thể dùng phương pháp mơ phỏng luyện thép để giải quyết bài tốn tìm đường đi ngắn nhất cho xe cứu hỏa hay bài tốn người du lịch… Cũng có nhiều bài tốn tối ưu tổ hợp (trong đó có nhiều bài tốn được chúng minh là NP - đủ) có thể giải gần đúng trên máy tính hiện đại bằng kỹ thuật Monte - Carlo. Nói chung bài tốn tối ưu có thể xem như bài tốn tìm kiếm giải pháp tốt nhất trong khơng gian vơ cùng lớn các giải pháp. Khi khơng gian tìm kiếm nhỏ, những phương pháp cổ điển như trên cũng đủ thích hợp, nhưng khi khơng gian tìm kiếm lớn phải dùng kỹ thuật trí tuệ nhân tạo đặc biệt. Thuật giải di truyền (GA) là một trong những kỹ thuật đó. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 4 CHƯƠNG I : TỔNG QUAN 1. Tổng quan thuật tốn di truyền (Genetic Algorithm) 1.1 Khái niệm Thuật tốn di truyền cổ điền là các kỹ thuật phỏng theo q trình thích nghi tiến hóa của các quần thể sinh học dựa trên học thuyết Darwin. Tư tưởng của thuật tốn di truyền là mơ phỏng các hiện tượng tự nhiên: Kế thừa đấu tranh sinh tồn để cái tiến lời giải khảo sát khơng gian lời giải khái niệm kế thừa đấu tranh sinh tồn được giải thích qua thí dụ về sự tiến hóa của một quần thể thỏ như sau: Có một quần thể thỏ, trong đó có một số con nhanh nhẹn thơng minh hơn những con khác. Những chú thỏ nhanh nhẹn thơng minh có xác suất bị chồn cáo ăn thịt nhỏ hơn, do đó cũng tồn tại dể làm những gì tốt nhất có thể : Tạo thêm nhiều thỏ tốt. nhiên, một số thỏ chậm chạp đần độn cũng sống sót vì may mắn. Quần thể những chú thỏ còn sống sót sẽ bắt đầu sinh sản. Việc sinh sản này sẽ tạo ra một hỗn hợp tốt về "ngun liệu di truyền thỏ". Một số thỏ chậm chạp có con với những con thỏ nhanh, một số nhanh nhẹn có con với thỏ nhanh nhẹn, một số thơng minh với thỏ đần độn… trên tất cả thiên nhiên lại ném vào một con thỏ "hoang dã" bằng cách làm đột biến ngun liệu di truyền thỏ. Những chú thỏ con do kết quả này sẽ nhanh hơn thơng minh hơn những con thỏ trong quần thể gốc vì có nhiều bố mẹ nhanh nhẹn thơng minh hơn đã thốt chết khỏi chồn cáo. Khi tìm kiếm lời giải tối ưu , thuật tốn di truyền cũng thực hiện các bước tương ứng với câu chuyện đấu tranh sinh tồn của lồi thỏ. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 5 Thuật tốn di truyền sử dụng các thuật ngữ vay mượn của di truyền học. Ta có thể nói về các cá thể (hay kiểu gen, cấu trúc) trong một quần thể, những cá thể này cũng còn được gọi là chuỗi hay các nhiễm sắc thể. Mỗi kiểu gen (ta gọi là một nhiễm sắc thể) sẽ biểu diễn một lời giải của bài tốn đang giải (ý tưởng của một nhiễm sắc thể cụ thể được người sử dụng xác định trước), một tiến trình tiến hóa được thực hiện trên một quần thể các nhiễm sắc thể tương ứng với một q trình tìm kiếm lời giải trong khơng gian lời giải. Tìm kiếm đó cần cân đối hai mục tiêu: Khai thác những lời giải tốt nhất khảo sát khơng gian tìm kiếm. Leo đồi là một ví dụ về chiến lược cho phép khai thác cải thiện lời giải tốt nhất hiện hành nhưng leo đồi lại bỏ qua việc khảo sát khơng gian tìm kiếm. Ngược lại, tìm kiếm ngẫu nhiên là một ví dụ điển hình của chiến lược khảo sát khơng gian tìm kiếm mà khơng chú ý đến việc khai thác những vùng đầy hứa hẹn của khơng gian. Thuật tốn di truyền (GA) là phương pháp tìm kiếm (độc lập miền) tạo được sự cân đối đáng kể giữa việc khai thác khảo sát khơng gian tìm kiếm. Thực ra, GA thuộc lớp các thuật giải xuất sắc, nhưng lại rất khác những thuật giải ngẫu nhiên vì chúng kết hợp các phần tử tìm kiếm trực tiếp ngẫu nhiên. Khác biệt quan trọng giữa tìm kiếm của GA các phương pháp tìm kiếm khác là GA duy trì xử lý một tập các lời giải (ta gọi là một quần thể) Theo đề xuất của giáo sư John Holland, một vấn đề bài tốn đặt ra sẽ được mã hóa thành các chuỗi với chiều dài bit cố định. Nói một cách chính xác là các thơng số của bài tốn sẽ được chuyển đổi biểu diễn lại dưới dạng các chuỗi nhị phân. Các thơng số này có thể là các biến của một hàm hoặc hệ số của một biểu thức tốn học. Người ta gọi các chuỗi bít này là mã genome ứng với mỗi cá thể, các genome đều có cùng chiều dài. Nói ngắn gọn, một lời giải sẽ được biểu diễn bằng một chuỗi bít, cũng như mỗi cá thể đều được quy định bằng gen của cá thể đó vậy. Như vậy, đối với thuật giải di truyền, một cá thể chỉ có THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 6 một gen duy nhất mọt gen cũng chỉ phục vụ cho một cá thể duy nhât. Do đó, gen chính là cá thể cá thể chính là gen. Ban đầu, ta sẽ phát sinh một số lượng lớn, giới hạn các cá thể có gen ngẫu nhiên - nghĩa là phát sinh một tập hợp các chuỗi bit ngẫu nhiên. Tập các cá thể này được gọi là quần thể ban đầu (initial population). Sau đó, dựa trên một hàm nào đó, ta sẽ xác định được một giá trị có độ thích nghi - Fitness. Giá trị này, để đơn giản cho đơn giản chính là độ "tốt" của lời giải hay đọ cao trong tìm kiếm theo kiểu leo đồi. Vì phát sinh ngẫu nhiên nên độ "tốt" của lời giải hay tính thích nghi của cá thể trong quần thể ban đầu là khơng xác định. Để cải thiện tính thích nghi của quần thể người ta tìm cách tạo ra quần thể mới. Có hai cách thao tác thực hiện trên thế hệ hiện tại để tạo ra một thế hệ khác với độ thích nghi tốt hơn. Thao tác đầu tiên là sao chép ngun mẫu một nhóm các cá thể tốt từ thế hệ trước rồi đưa sang thế hệ sau (selection). Thao tác này đảm bảo độ thích nghi của thế hệ sau ln được giữ ở một mức độ hợp lý. Các cá thể được chọn thơng thường là các cá thể có độ thích nghi cao nhất. Thao tác thứ hai là tạo ra cá thể mới bằng cách thực hiện các thao tác sinh sản trên một số cá thể được chọn từ thế hệ trước, thơng thường cũng là những cá thể có độ thích cao. Có hai loại thao tác sinh sản: một là thao tác lai tạo (crossover), hai là đột biến (mutalion). Trong thao tác lai tạo, từ gen của hai cá thể được chọn trong thế hệ trước sẽ được phối hợp với nhau (theo một quy tác nào đó) để tạo thành hai gen mới. Thao tác chọn lọc lai tạo giúp tạo ra thế hệ sau. Tuy nhiên, nhiều khi do thế hệ khởi tạo ban đầu có đặc tính chưa phong phú chưa phù hợp nên các cá thể khơng rải đều được khơng gian của bài tốn (tương tự như trường hợp leo đồi, các người leo đồi tập trung dồn vào một góc trên vùng đất). Từ đó, khó có thể tìm ra lời giải tối ưu cho bài tốn. Thao tác đột biến sẽ giúp giải quyết được THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 7 vấn đề này. Đó là sự biến đổi ngẫu nhiên một hoặc nhiều thành phần gen của một cá thể ở thế hệ trước tạo ra một cá thể hồn tồn mới ở thế hệ sau. Nhưng thao tác này chỉ được phép sảy ra với tần xuất rất thấp (thường dưới 0.01), vì thao tác này có thể gây xáo trộn làm mất đi những cá thể chọn lọc lai tạo có tính thích nghi cao, dẫn đến thuật tốn khơng còn hiệu quả. Thế hệ mới được tạo ra lại được xử lý như thế hệ trước cho đến khi có một cá thể đạt được giải pháp mong muốn hoặc đạt đến thời gian giới hạn. 1.2 Cấu trúc của giải thuật di truyền như sau: 1. t = 0 2. initialize P(t) THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 8 3. evaluate structures in P(t) 4. while not end do 5. t = t + 1 6. select C(t) from P(t - 1) 7. recombine structures in C(t) forming C'(t) 8. mutate structures in C' (t) forming C'' (t) 9. evaluate structures in C''(t) 10. replace P(t) from C''(t) and/or P (t - 1) Khởi tạo quần thể (initialize): Quần thể đầu tiên được khởi tạo một cách ngẫu nhiên từ tập hợp những cá thể riêng lẻ. Kích cỡ của quần thể đầu tiên phụ thuộc vào yếu tố tự nhiên của bài tốn, nhưng nhìn chung thì một bài tốn có đến hàng trăm hay hàng nghìn giải pháp hợp lý. Tập hợp những giải pháp hợp lý cho vấn đề được gọi là khơng gian tìm kiếm (search space). Trước một bài tốn áp dụng thuật tốn di truyền, ta cần phải xác định rõ nhiễm sắc thể cá thể cho vấn đề, thơng thường đó sẽ là kết quả cuối cùng. Việc phân tích sẽ dựa trên kết quả cơ bản tốt nhất. Hàm định nghĩa độ thích nghi (evaluate): Các q trình tiến hóa diễn ra trong vòng lặp While, tại thế hệ thứ t, thuật tốn di truyền duy trì một tập lời giải P(t) = {x t 1, x t 2, ,…, x t n }. Mỗi lời giải x t i được đánh giá "độ thích nghi ", hay độ "tốt" của lời giải. Phép chọn lọc (select): Phép chọn là q trình loại bỏ các cá thể xấu trong quần thể để chỉ dữ lại trong quần thể các cá thể tốt. Phép chọn được mơ phỏng:  Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 9  Loại bỏ các cá thể cuối dãy để chỉ giữ lại n cá thể tốt nhất. Giả sử ở đây quần thể có kích thước cố định n. Có nhiều phương pháp chọn lọc Nhiễm sắc thể: o Chọn lọc Roulette (Roulett Wheel Selection). o Chọn lọc xếp hạng (Rank Selection). o Chọn lọc cạnh tranh (Tournament Selection) Q trình sinh sản: Có hai loại thao tác sinh sản  Phép lai tạo (Crossover): là q trình hình thành nhiễm sắc thể mới trên cơ sở nhiễm sắc thể cha mẹ bằng cách ghép một hay nhiều đoạn gen của hai hay nhiều nhiễm sắc thể cha mẹ với nhau. Có những phương pháp lai ghép sau: o Lai ghép ánh xạ từng phần (PMX Partial Mapped Crossover). o Lai ghép có trật tự (OX order Crossover). o Lai ghép dựa trên vị trí (Position Based Crossover). o Lai ghép dựa trên thứ tự (Order Base Crossover). o Lai ghép có chu trình (CX cycle Crossover). o Lai ghép thứ tự tuyến tính (LOX Linear order Crossover). Phép lai tạo xảy ra với xác suất p c , được mơ phỏng như sau:  Chọn ngẫu nhiên một 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 (được gọi là điểm lai). Điểm lai chia các chuỗi cha mẹ có độ dài m thành hai nhóm chuỗi con với độ dài m 1 , m 2 hai chuỗi nhiễm sắc thể mới là m 11 + m 12 m 21 + m 22 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 10  Đưa hai cá thể mới vào quần thể để tham gia các q trình tiến hóa tiếp theo. Ví dụ : Hai nhiễm sắc thể cha mẹ : Parent 1: 1 0 1 0 1 1 1 0 0 1 Parent 2: 0 1 1 1 0 0 1 1 1 0 Thì việc trao đổi chéo các nhiễm sắc thể sau gen thứ năm sẽ tạo ra hai con: Child 1: 1 0 1 0 1 0 1 1 1 0 Child 2: 0 1 1 1 0 1 1 0 0 1  Phép đột biến (mutalion): Phép đột biến là hiện tượng cá thể con mang một (hoặc một số) tính trạng có trong mã di truyền của cha mẹ, tức là sự sửa đổi một hoặc một vài gen của một nhiễm sắc thể chọn bằng cách thay đổi ngẫu nhiên với xác suất là tỷ lệ đột biến. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN [...]... tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat File đầu vào là một mảng problem.dat Gồm số biến đưa vào, mệnh đề đưa vào 2 Sử dụng khung thuật tốn newGA để giải quyết bài tốn Maxsat Sử dụng khung thuật tốn di truyền để giải quyết bài tốn MaxSat phải đắp thêm code vào 4 lớp đối với khung thuật tốn Bốn lớp đó là: Đối với từng Class cụ thể ta thêm như sau Class problem Solution... trọng Những giải thuật này được chia thành hai lớp: Giải thuật đầy đủ (chính xác) giải thuật chưa đầy đủ Thuật giải đầy đủ :Giải thuật được coi là tốt dựa trên thủ tục DPLP SAT2 là ví dụ khá nổi tiếng về giải thuật đủ Giải thuật Nhánh cận kết nối dựa vào thủ tụ DPLP là một trong những giải thuật chính xác mạnh nhất để giải quyết bài tốn Max-Sat Giải thuật BnB có thể được vận dụng với mức độ... số biến của bài tốn Max-Sat Giải thuật chưa đầy đủ: Chủ yếu dựa vào tìm kiếm cục bộ giải thuật tiến hóa Tìm kiếm Tabu, mơ phỏng luyện thép, giải thuật di truyền, GRASP, đó là những ví dụ về giải thuật chưa đầy đủ để giải quyết bài tốn Max-Sat Tìm kiếm dựa vào heuristics là phương pháp giải quyết tốt để tìm kiếm giải pháp tương đối cho những bài tốn khơng biết được khơng thỏa mãn lời giải Nói chung,... khác nhau để kết hợp những giải pháp chính xác tìm kiếm heuristics Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 13 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Mục đích tìm giải pháp tối ưu cho bài tốn Max-Sat tương đối khó khăn chúng ta đề xuất giải pháp lai ghép gồm có Thuật giải di truyềnthuật giải chưa đầy đủ kết hợp... hoặc những bài tốn có NP-khó thì một giải pháp là sử dụng các thuật tốn chẳng hạn như thuật tốn di truyền Xây dựng khung chương trình (Skeletons) cần thiết cho những người muốn áp dụng các thuật tốn nổi tiếng để giải bài tốn khó, khi giải quyết những bài tốn tương đối giống nhau cùng sử dụng một tư tưởng của của thuật giải, sử dụng các hàm thư viện giống nhau, việc viết đi viết lại những hàm thư... VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat 1.2 Lớp Requied (lớp u cầu) Các lớp đòi hỏi được sử dụng để lưu trữ dữ liệu cơ bản của thuật tốn : bài tốn, trạng thái khơng gian tìm kiếm vào/ra Cụ thể bao gồm các lớp o Bài tốn Problem: Định nghĩa bài tốn cần giải quyết bao gồm một số hàm: Khai báo lớp Problem cho bài tốn Maxsat Class Problem { Public:... k trả cá thể này về quần thể để tham gia vào q trình tiến hóa tiếp theo NST1 0 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 NST1 Một thuật giải di truyền, giải một bài tốn được cho phải có năm thành phần: Một cấu trúc dữ liệu biểu di n khơng gian lời giải của bài tốn Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 11 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song songứng dụng. .. Gọi đến hàm hiện trạng thái (show_state()); Đưa ra giải pháp tốt nhất; Đưa ta Độ thích nghi tốt nhất; } Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 25 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat CHƯƠNG III SỬ DỤNG KHUNG THUẬT TỐN DI TRUYỀN GIẢI QUYẾT BÀI TỐN MAXSAT 1 Cài đặt bài tốn Maxsat: 1.1 file cấu hình cfg 5 // số bước... ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat Đưa ta Độ thích nghi tốt nhất; } 3 Khung thuật tốn song song 3.1 Lựa chọn mơ hình phần cứng: Có hai mơ hình đó là: mơ hình phần cứng phân tán mơ hình phần cứng dùng chung + Mơ hình phần cứng dung chung: Ưu điểm: tốc độ nhanh Nhược điểm: giá thành cao + Mơ hình phần cứng phân tán: Ưu điểm: dễ cài đặt Nhược... gian cơng sức Xây dựng khung chương trình nhằm giảm thiểu q trình code cho người sau, cho những người sau thử nghiệm bài tốn lập Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 14 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song ứng dụng giải quyết bài tốn Max-sat trình song song để hiểu bài tốn mà chưa cần hiểu sâu về code q trình phát triển 1 Thiết kế khung thuật

Ngày đăng: 27/04/2013, 21:02

Từ khóa liên quan

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

Tài liệu liên quan