Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
364,12 KB
Nội dung
http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI OBO OK S CO M 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 VÀ Ứ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 : Nguyễn Thị Lụa – K54C KIL Đỗ Văn Quang – K55B Trần Đăng Doanh- K55B http://kilobooks.com 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 tốn Max-sat KIL OBO OKS CO M MỤC LỤC LỜI MỞ ĐẦU……………………………………………………………………2 Chương I : Tổng quan ….……………………………………………………… Tổng quan thuật tốn di truyền ………………………………………………4 1.1 Khái niệm…………………………………………………………………… 1.2 Cấu trúc thuật tốn di truyền …………………………………………….7 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 tốn Max-sat…………………………… 14 Chương II : Xây dựng thuật tốn di truyền …………………………………… 14 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 Khung thuật tốn …………………………………………………….20 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 tốn Maxsat……26 cài đặt tốn Max-sat……………………………………………………… 26 1.1 file cấu hình cfg……………………………………………………………….26 1.2 file đầu vào dat ……………………………………………………………….26 Sử dụng khung thuật tốn di truyền giải tốn Max-sat…………………… 27 Chương III : Kết thực nghiệm ……………………………………………… 28 kết ………………………………………………………………… 28 2.Kết song song……………………………………………………………….28 Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B http://kilobooks.com 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 tốn Max-sat KIL OBO OKS CO M LỜI MỞ ĐẦU Với khả nay, máy tính giúp giải nhiều tốn khó mà trước thường bó tay Mặc dù có số lớn tốn thú vị mà chưa có giải thuật hợp lý để giải chúng Trong tốn tối ưu nững tốn thường gặp thực tiễn Trong thực tiễn, có nhiều tốn tối ưu quan trọng đòi hỏi thuật tốn có chất lượng cao Ví dụ ta dùng phương pháp mơ luyện thép để giải tốn tìm đường ngắn cho xe cứu hỏa hay tốn người du lịch… Cũng có nhiều tốn tối ưu tổ hợp (trong có nhiều tốn chúng minh NP - đủ) giải gần máy tính đại kỹ thuật Monte - Carlo Nói chung tốn tối ưu xem tốn tìm kiếm giải pháp tốt khơng gian vơ lớn giải pháp Khi khơng gian tìm kiếm nhỏ, phương pháp cổ điển đủ thích hợp, 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) kỹ thuật Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B http://kilobooks.com 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 tốn Max-sat KIL OBO OKS CO M CHƯƠNG I : TỔNG QUAN 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 kỹ thuật theo q trình thích nghi tiến hóa quần thể sinh học dựa học thuyết Darwin Tư tưởng thuật tốn di truyền mơ tượng tự nhiên: Kế thừa đấu tranh sinh tồn để 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 giải thích qua thí dụ tiến hóa quần thể thỏ sau: Có quần thể thỏ, có số nhanh nhẹn thơng minh khác Những thỏ nhanh nhẹn thơng minh có xác suất bị chồn cáo ăn thịt nhỏ hơn, tồn dể làm tốt : Tạo thêm nhiều thỏ tốt Dĩ nhiên, số thỏ chậm chạp đần độn sống sót may mắn Quần thể thỏ sống sót bắt đầu sinh sản Việc sinh sản tạo hỗn hợp tốt "ngun liệu di truyền thỏ" Một số thỏ chậm chạp có với thỏ nhanh, số nhanh nhẹn có với thỏ nhanh nhẹn, số thơng minh với thỏ đần độn… Và tất thiên nhiên lại ném vào thỏ "hoang dã" cách làm đột biến ngun liệu di truyền thỏ Những thỏ kết nhanh thơng minh thỏ quần thể gốc có nhiều bố mẹ nhanh nhẹn thơng minh 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 thực bước tương ứng với câu chuyện đấu tranh sinh tồn lồi thỏ Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B http://kilobooks.com 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 tốn Max-sat Thuật tốn di truyền sử dụng thuật ngữ vay mượn di truyền học Ta nói cá thể (hay kiểu gen, cấu trúc) quần thể, cá KIL OBO OKS CO M thể gọi chuỗi hay nhiễm sắc thể Mỗi kiểu gen (ta gọi nhiễm sắc thể) biểu diễn lời giải tốn giải (ý tưởng nhiễm sắc thể cụ thể người sử dụng xác định trước), tiến trình tiến hóa thực quần thể nhiễm sắc thể tương ứng với q trình tìm kiếm lời giải khơng gian lời giải Tìm kiếm cần cân đối hai mục tiêu: Khai thác lời giải tốt khảo sát khơng gian tìm kiếm Leo đồi ví dụ chiến lược cho phép khai thác cải thiện lời giải tốt hành 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 ví dụ điển hình chiến lược khảo sát khơng gian tìm kiếm mà khơng ý đến việc khai thác vùng đầy hứa hẹn khơng gian Thuật tốn di truyền (GA) phương pháp tìm kiếm (độc lập miền) tạo cân đối đáng kể việc khai thác khảo sát khơng gian tìm kiếm Thực ra, GA thuộc lớp thuật giải xuất sắc, lại khác thuật giải ngẫu nhiên chúng kết hợp phần tử tìm kiếm trực tiếp ngẫu nhiên Khác biệt quan trọng tìm kiếm GA phương pháp tìm kiếm khác GA trì xử lý tập lời giải (ta gọi quần thể) Theo đề xuất giáo sư John Holland, vấn đề tốn đặt mã hóa thành chuỗi với chiều dài bit cố định Nói cách xác thơng số tốn chuyển đổi biểu diễn lại dạng chuỗi nhị phân Các thơng số biến hàm hệ số biểu thức tốn học Người ta gọi chuỗi bít mã genome ứng với cá thể, genome có chiều dài Nói ngắn gọn, lời giải biểu diễn chuỗi bít, cá thể quy định gen cá thể Như vậy, thuật giải di truyền, cá thể có Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B http://kilobooks.com 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 tốn Max-sat gen mọt gen phục vụ cho cá thể nhât Do đó, gen cá thể cá thể gen KIL OBO OKS CO M Ban đầu, ta phát sinh số lượng lớn, giới hạn cá thể có gen ngẫu nhiên - nghĩa phát sinh tập hợp chuỗi bit ngẫu nhiên Tập cá thể gọi quần thể ban đầu (initial population) Sau đó, dựa hàm đó, ta xác định giá trị có độ thích nghi - Fitness Giá trị này, để đơn giản cho đơn giản độ "tốt" lời giải hay đọ cao tìm kiếm theo kiểu leo đồi Vì phát sinh ngẫu nhiên nên độ "tốt" lời giải hay tính thích nghi cá thể quần thể ban đầu khơng xác định Để cải thiện tính thích nghi quần thể người ta tìm cách tạo quần thể Có hai cách thao tác thực hệ để tạo hệ khác với độ thích nghi tốt Thao tác chép ngun mẫu nhóm cá thể tốt từ hệ trước đưa sang hệ sau (selection) Thao tác đảm bảo độ thích nghi hệ sau ln giữ mức độ hợp lý Các cá thể chọn thơng thường cá thể có độ thích nghi cao Thao tác thứ hai tạo cá thể cách thực thao tác sinh sản số cá thể chọn từ hệ trước, thơng thường cá thể có độ thích cao Có hai loại thao tác sinh sản: thao tác lai tạo (crossover), hai đột biến (mutalion) Trong thao tác lai tạo, từ gen hai cá thể chọn hệ trước phối hợp với (theo quy tác đó) để tạo thành hai gen Thao tác chọn lọc lai tạo giúp tạo hệ sau Tuy nhiên, nhiều hệ khởi tạo ban đầu có đặc tính chưa phong phú chưa phù hợp nên cá thể khơng rải khơng gian tốn (tương tự trường hợp leo đồi, người leo đồi tập trung dồn vào góc vùng đất) Từ đó, khó tìm lời giải tối ưu cho tốn Thao tác đột biến giúp giải Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B http://kilobooks.com 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 tốn Max-sat vấn đề Đó biến đổi ngẫu nhiên nhiều thành phần gen cá thể hệ trước tạo cá thể hồn tồn hệ sau Nhưng KIL OBO OKS CO M thao tác phép sảy với tần xuất thấp (thường 0.01), thao tác gây xáo trộn làm 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 hiệu Thế hệ tạo lại xử lý hệ trước có cá thể đạt giải pháp mong muốn đạt đến thời gian giới hạn 1.2 Cấu trúc giải thuật di truyền sau: t=0 initialize P(t) Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B http://kilobooks.com 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 tốn Max-sat evaluate while not end 10 in P(t) t=t+1 KIL OBO OKS CO M structures select C(t) from P(t - 1) recombine structures in C(t) forming C'(t) mutate structures in C' (t) forming C'' (t) evaluate structures in replace C''(t) P(t) from C''(t) and/or P (t - 1) Khởi tạo quần thể (initialize): Quần thể khởi tạo cách ngẫu nhiên từ tập hợp cá thể riêng lẻ Kích cỡ quần thể phụ thuộc vào yếu tố tự nhiên tốn, nhìn chung tốn có đến hàng trăm hay hàng nghìn giải pháp hợp lý Tập hợp giải pháp hợp lý cho vấn đề gọi khơng gian tìm kiếm (search space) Trước 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 kết cuối Việc phân tích dựa kết tốt Hàm định nghĩa độ thích nghi (evaluate): Các q trình tiến hóa diễn vòng lặp While, hệ thứ t, thuật tốn di truyền trì tập lời giải P(t) = {xt1, xt2, ,…, xtn } Mỗi lời giải xti đánh giá "độ thích nghi ", hay độ "tốt" lời giải Phép chọn lọc (select): Phép chọn q trình loại bỏ cá thể xấu quần thể để lại quần thể cá thể tốt Phép chọn mơ phỏng: Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B http://kilobooks.com 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 tốn Max-sat Loại bỏ cá thể cuối dãy để giữ lại n cá thể tốt Giả sử quần thể có kích thước cố định n KIL OBO OKS CO M 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): q trình hình thành nhiễm sắc thể sở nhiễm sắc thể cha mẹ cách ghép hay nhiều đoạn gen hai hay nhiều nhiễm sắc thể cha mẹ với Có phương pháp lai ghép sau: o Lai ghép ánh xạ phần (PMX Partial Mapped Crossover) o Lai ghép có trật tự (OX order Crossover) o Lai ghép dựa vị trí (Position Based Crossover) o Lai ghép dựa 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 với xác suất pc, mơ sau: Chọn ngẫu nhiên hay nhiều cá thể quần thể Giả sử nhiễm sắc thể cha mẹ có m gen Tạo số ngẫu nhiên khoảng từ đến m - (được gọi điểm lai) Điểm lai chia chuỗi cha mẹ có độ dài m thành hai nhóm chuỗi với độ dài m1, m2 hai chuỗi nhiễm sắc thể m11 + m12 m21 + m22 Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B http://kilobooks.com 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 tốn Max-sat Đưa hai cá thể vào quần thể để tham gia q trình tiến KIL OBO OKS CO M hóa Ví dụ : Hai nhiễm sắc thể cha mẹ : Parent 1: 1 1 0 1 1 0 1 Parent 2: Thì việc trao đổi chéo nhiễm sắc thể sau gen thứ năm tạo hai con: Child 1: 1 1 1 1 1 0 Child 2: Phép đột biến (mutalion): Phép đột biến tượng cá thể mang (hoặc số) tính trạng có mã di truyền cha mẹ, tức sửa đổi một vài gen nhiễm sắc thể chọn cách thay đổi ngẫu nhiên với xác suất tỷ lệ đột biến Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 10 http://kilobooks.com 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 tốn Max-sat Mục đích tìm giải pháp tối ưu cho tốn Max-Sat tương đối khó khăn KIL OBO OKS CO M đề xuất giải pháp lai ghép gồm có Thuật giải di truyền thuật giải chưa đầy đủ kết hợp với chiến lược đầy đủ đơn vị nhân 2.2 Giải thuật di truyền giải tốn Max-Sat: o Biểu diễn cá thể: Một cá thể biểu diễn bới chuỗi X (n vecto) thành phần Xi nhận giá trị (False) (True) o Lai ghép: phép tốn mục đích xây dựng quần thể (quần thể con) từ quần thể ban đầu o Đột biến: phép tốn dùng phát sinh cá thể CHƯƠNG II : XÂY DỰNG KHUNG THUẬT TỐN DI TRUYỀN Để giải tốn với độ phức tạp lớn tốn có NP-khó giải pháp sử dụng thuật tốn chẳng hạn thuật tốn di truyền Xây dựng khung chương trình (Skeletons) cần thiết cho người muốn áp dụng thuật tốn tiếng để giải tốn khó, giải tốn tương đối giống sử dụng tư tưởng của thuật giải, sử dụng hàm thư viện giống nhau, việc viết viết lại hàm thư viện khiến thời 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 người sau thử nghiệm tốn lập Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 14 http://kilobooks.com 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 tốn Max-sat triển KIL OBO OKS CO M trình song song để hiểu tốn mà chưa cần hiểu sâu code q trình phát Thiết kế khung thuật tốn di truyền Khung thuật tốn di truyền bao gồm hai lớp là: lớp Provides Requies 1.1 Lớp Provides (lớp cung cấpi) làm nhiệm vụ thi hành bên khung tốn, tạo nhiều phương án cho tốn o Hàm Solver: Hiển thị trạng thái, xác suất, xác suất đột biến chọn cha mẹ Solver gồm số hàm: Class Solver { Run() // Thực thi thuật tốn StartUp() // Thiết lập thơng số DoStep() // Thực theo khung thuật tốn newGA, } - Hàm Solver_Sqe: Giải tốn phương pháp chạy máy, đầu vào tốn tham số cài đặt - Hàm Solver_Lan: Giải tốn mơi trường song song chạy kết hợp nhiều máy Bao gồm khởi tạo MPI, thiết lập số hiệu máy, hàm in Solver_lan::pid() cont trả số hiệu máy từ xác định máy khách, máy chủ o Lớp Selection: Hàm lựa chọn phần tử tốt Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 15 http://kilobooks.com 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 tốn Max-sat 1.2 Lớp Requied (lớp u cầu) Các lớp đòi hỏi sử dụng để lưu trữ liệu thuật tốn : tốn, trạng thái khơng gian tìm kiếm vào/ra Cụ KIL OBO OKS CO M thể bao gồm lớp o Bài tốn Problem: Định nghĩa tốn cần giải bao gồm số hàm: Khai báo lớp Problem cho tốn Maxsat Class Problem { Public: int numvar() const; // Số biến đưa vào tốn int numclause() const; // Số mệnh đề tốn int lenclause() const; // Chiều dài mệnh đề private: int _numvar; int _numclause; int _lenclause; int ** _clauses; } Khai báo hàm Problem - istream& operator>> (istream& is, Problem& pbm){}: Nhập vào kích thước, số mệnh đề chiều dài mệnh đề - Problem& Problem::operator= (const Problem& pbm{}: Tạo mảng chiều _clauses gồm số mệnh đề, số phần từ Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B tạo mảng 16 http://kilobooks.com 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 tốn Max-sat chiều kích thước số mệnh đề, độ dài mệnh đề Lưu phần tử mệnh đề vào mảng Tạo biến _dimension Truyền giá trị số mệnh đề KIL OBO OKS CO M pbm.numlause() lớp Pro vào _numclause mảng clause - Direction Problem::direction() const{}: Trả kích thước mệnh đề lớn - int Problem::dimension() const{}: Trả kích thước mệnh đề - int Problem::numclause() const : trả số mệnh đề - int Problem::lenclause() const : trả độ dài mệnh đề - int *Problem::clause(const int i) const:trả giá trị mệnh đề thứ i o Lớp Solution :định nghĩa giải pháp có khả thi hay khơng Khai báo lớp Sulutioncho tốn Maxsat: Class Solution { friend ostream& operator> (istream& is, Solution& sol); // nhận vào thơng số lời giải … void initialize(); // Hàm khởi tạo giá trị ngẫu nhiên cho phần tử lời giải double fitness (); // Hàm tính độ thích nghi làm sở đánh giá lời giải Một số hàm lớp Solution: Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 17 http://kilobooks.com 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 tốn Max-sat - Solution& Solution::operator= (const Solution &sol): Gán giá trị phương thức lớp solution cho biến KIL OBO OKS CO M - bool Solution::operator== (const Solution& sol) const: Lời giải tốn xác định giá trị mệnh đề hay sai, trả giá trị cho mệnh đề - double Solution::fitness(): Hàm đánh giá lời giải tốn - void Solution::to_Solution(char *_string_) : duyệt phần tử mệnh đề - void Solution::add(unsigned long element) :Phương thức thêm vào lời giải phù hợp - void Solution::initialize_feasibles(Feasibles &_feasibles): khởi tạo giá trị ban đầu cho lời giải khả thi Nếu (_freedomV[i] > 0) thêm giá trị vào danh sách lời giải khả thi - void Solution::update(Feasibles &f,unsigned long &selection) : cập nhật lời giải khả thi vào danh sách lời giải khả thi o Lớp kiểm tra điều kiện dừng (StopCondition) Để xác định điều kiện dừng tốn, tốn điều kiện dừng khác nhau, thường vào một vài tham số số hệ, thời gian chạy, điều kiện đặc thù tốn o Lớp chéo hóa Crossover requires class Crossover: public Intra_Operator { public: Crossover(); virtual ~Crossover(); friend ostream& operator cfg; Mở file f2 để đọc “Problem.dat” Đọc file f2>>pbm Thực hàm SetUpParams Solver.run(); // thực hàm run Nếu máy chủ (pid()= =0) { Gọi đến hàm trạng thái (show_state()); Đưa giải pháp tốt nhất; Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 21 http://kilobooks.com 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 tốn Max-sat Đưa ta Độ thích nghi tốt nhất; KIL OBO OKS CO M } 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 điểm: tốc độ chậm Vì lý ta sử dụng mơ hình phần cứng phân tán để việc nói chuyện máy tính dễ dàng Trong mơ hình ta sử dụng thư viện MPI thư viện NetStream nhằm tạo thân thiện với người sử dụng 3.2 Lựa chọn mơ hình phần mềm: Có ba mơ hình phần mềm: - Mơ hình chủ - khách (Master_slave):ở vi xử lý đơn trì việc điều khiển qua vùng chọn sử dụng vi xử lý khác cho việc xử lý chéo, biến đổi giá trị đơn lẻ nhiên giải thuật hữu ích cho số lượng nhỏ vi xử lý số lượng lớn thời gian, mặt khác giao tiếp tốt làm tăng khả xử lý song song Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 22 http://kilobooks.com 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 tốn Max-sat - Mơ hình đảo (Island model): Trong mơ hình vi xử lý chạy giải thuật tiến hóa cách độc lập, sử dụng quần thể phụ riêng biệt vi xử KIL OBO OKS CO M lý hợp tác với việc thay đổi vị trí cách đặn Mơ hình đảo đặc biệt thích hợp cho nhóm máy tính giao tiếp bị hạn chế - Mơ hình khuếch tán (Diffusion model): cá nhân khơng gian xếp kết hợp với cá nhân khác từ mạng nội bên cạnh Khi xử lý song song có nhiều vi xử lý giao tiếp với (như cá nhân giao tiếp với hàng xóm tương tác), giao tiếp nội Vì mơ hình phù hợp với hệ thống máy tính song song lớn với mạng nội tốc độ cao Do ta lựa chọn mơ hình phần mềm mơ hình đảo (Island model) Hàm void Solver_lan:: DoStep() Voi Solver_lan::DoStep() { current_iteration(current_iteration()+1); current_population.evolution(); current_evaluations(current_population.evaluations()); _netstream >cfg; Mở file f2 để đọc “Problem.dat” Đọc file f2>>pbm Thực hàm SetUpParams Solver.run(); // thực hàm run Nếu máy chủ (pid()= =0) { Gọi đến hàm trạng thái (show_state()); Đưa 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 http://kilobooks.com 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 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 KIL OBO OKS CO M Cài đặt tốn Maxsat: 1.1 file cấu hình cfg // số bước chạy độc lập 200 // số cá thể phát sinh 50 //số cá thể 100 //kích thước quần thể lần phát sinh // thay bố mẹ // Hiển thị trạng thái ? Selections // lựa chọn để hiển thị 13 // lựa chọn bố mẹ 20 // lựa chọn Intra-Operators 0.6 1.0 0.01 // tính tốn hiển thị quần thể // khả chéo hóa // khả đột biến Inter-Operators // tính tốn hiển thị quần thể hay quần thể khác 25 5 // tính tốn thành phần, tốc độ số cá thể, lựa chọn cá thể, lựa chọn cá thể LAN-configuration 10 // trả lại trạng thái tồn cục // 0: running in asynchronized mode / 1: running in synchronized mode 1.2 File đầu vào tốn Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 26 http://kilobooks.com 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 tốn Max-sat File đầu vào mảng problem.dat KIL OBO OKS CO M Gồm số biến đưa vào, mệnh đề đưa vào Sử dụng khung thuật tốn newGA để giải tốn Maxsat Sử dụng khung thuật tốn di truyền để giải tốn MaxSat phải đắp thêm code vào lớp khung thuật tốn Bốn lớp là: Đối với Class cụ thể ta thêm sau Class problem Solution nằm File newGA.hh để khai báo thuộc tính phương thức: - Ở lớp Problem ta phải thêm đoạn code sau: istream& operator>> (istream& is, Problem& pbm) { int l,n; is >> pbm._numvar >> pbm._numclause >> pbm._lenclause; n = pbm._lenclause; pbm._clauses = new int*[pbm._numclause]; // read clauses for (int i = 0; i < pbm._numclause; i++) { pbm._clauses[i] = new int[n]; for(int j = 0; j < n;j++) { is >> l; pbm._clauses[i][j] = l; } is >> l; } Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 27 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN - KIL OBO OKS CO M Đề tài: thuật tốn di tuyền song song ứng dụng giải tốn Max-sat Trong hàm initialize lớp Solution thêm vào: void Solution::initialize() { for (int i=0;i 0) && (_var[rl[j]-1] == 1)) ) acum = 1; } fitness += acum; } return fitness; } CHƯƠNG IV: KẾT QUẢ THỰC NGHIỆM (Chương trình chạy chưa đủ máy để chạy song song nên thứ em trình bày sau) Kết Kết song song Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 28 [...]... tốn di tuyền song song và ứ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 KIL OBO OKS CO M chúng ta đề xuất giải pháp lai ghép gồm có Thuật giải di truyền là thuật giải chưa đầy đủ kết hợp với chiến lược đầy đủ của đơn vị nhân bản 2.2 Giải thuật di truyền giải quyết bài tốn Max-Sat: o Biểu di n cá thể: Một cá thể được biểu di n bới chuỗi X (n... http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song và ứng dụng giải quyết bài tốn Max-sat File đầu vào là một mảng problem.dat KIL OBO OKS CO M 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... chính xác và 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 độ khó vừa phải, được định nghĩa bởi tỉ số mệnh đề trên 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ộ và 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... KHUNG THUẬT TỐN DI TRUYỀN Để giải quyết các bài tốn với độ phức tạp rất lớn 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. .. thuộc bài tốn NP- khó Có rất nhiều giải thuật thuật được đề xuất và đã đạt được những tiến bộ quan 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) và 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 và kết nối dựa vào thủ tụ DPLP là một trong những giải thuật. .. ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song và ứ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à vào/ra Cụ KIL OBO OKS CO M 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... 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 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song và ứ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 KIL OBO OKS CO M 1 Cài đặt bài tốn Maxsat: 1.1 file cấu hình... ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song và ứng dụng giải quyết bài tốn Max-sat Đưa ta Độ thích nghi tốt nhất; KIL OBO OKS CO M } 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 và 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ự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 và khơng thỏa mãn lời giải Nói chung, phương pháp đầy đủ đảm bảo được một lời giải tối ưu, nhưng thời gian thực thi của bài tốn thì tỉ lệ thuận với kích thước bài tốn Vì vậy chỉ có những bài toan nhỏ thật sự có thể giải quyết đươc Để giải quyết những bài tốn lớn, chỉ có khả năng giải quyết. .. 2.1 Bài tốn Max-sat Vấn đề bài tốn SAT (SATisfiability) là vấn đề có tính ứng dụng rộng rãi cả trong lý thuyết độ phức tạp, trong Trí tuệ nhân tạo hay những lĩnh vực thực tế khác… Mà cần đưa ra những giải pháp tốt để giải quyết Nguyến Thị Lụa k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 12 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đề tài: thuật tốn di tuyền song song và ứng dụng giải quyết bài ... Trần Đăng Doanh- K55B 13 http:/ /kilobooks. com 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 tốn Max-sat Mục đích tìm giải pháp tối ưu cho tốn Max-Sat tương đối... clause - Direction Problem::direction() const{}: Trả kích thước mệnh đề lớn - int Problem::dimension() const{}: Trả kích thước mệnh đề - int Problem::numclause() const : trả số mệnh đề - int Problem::lenclause()... k54C – Đỗ Văn Quang – Trần Đăng Doanh- K55B 17 http:/ /kilobooks. com 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 tốn Max-sat - Solution& Solution::operator= (const