Báo cáo đồ án trí tuệ nhân tạo: Không gian trạng thái được mô tả là bài toán n- queens. Xây dựng chương trình giải quyết bài toán theo giải thuật gene với phương pháp chọn là Elitism

11 1.2K 0
Báo cáo đồ án trí tuệ nhân tạo: Không gian trạng thái được mô tả là bài toán n- queens. Xây dựng chương trình giải quyết bài toán theo giải thuật gene với phương pháp chọn là Elitism

Đ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

Mở Đầu Bài báo cáo gồm các phần: 1. Giải thuật Gene với phương pháp chọn Elitism. 2. Ý tưởng của bài toán N-queens. 3. Mô tả thuật toán. 4. Chương trình DEMO 5. Chương trình được viết bằng: +Ngôn ngữ:C-sharp. +Trình biên dịch: Microsoft Visual Studio 2005. +Nền tảng.net frame work 3.5 1.Giải thuật Gene với phương pháp chọn Elitism: a) Giải thuật Gene: Trong khoa học máy tính, Thuật toán Gene (GAs) là 1trong các phương pháp tìm kiếm có sử dụng thông tin. Thuật toán này mô phỏng tiến hóa tự nhiên (Dawinian Evolution) ở mức gene sử dụng tư tưởng của survival of the fittest(chọn lọc có tự nhiên), tức là một cá thể trong tự nhiên, các cá thể khỏe, có khả năng thích nghi tốt với môi trường sẽ được tái sinh và nhân bản ở các thế hệ sau. Mỗi cá thể có cấu trúc gene đặc trưng cho phẩm chất của cá thể đó. Trong quá trình sinh sản, các cá thể con có thể thừa hưởng các phẩm chất của cả cha và mẹ, cấu trúc gene của nó mang một phần cấu trúc gene của cha và mẹ. Ngoài ra, trong quá trình tiến hóa, có thể xảy ra hiện tượng đột biến, cấu trúc gene của cá thể con có thể chứa các gene mà cả cha và mẹ đều không có. Trong giải thuật Gene, mỗi cá thể được mã hóa bởi một cấu trúc dữ liệu mô tả cấu trúc gene của cá thể đó, ta sẽ gọi nó là nhiễm sắc thể (chroniosome). Mỗi nhiễm sắc thể được tạo thành từ các đơn vị được gọi là gene. Chẳng hạn, trong các thuật toán gene cổ điển, các nhiễm sắc thể là các chuỗi nhị phân, tức là mỗi cá thể được biểu diễn bởi một chuỗi nhị phân. Thuật toán gene sẽ làm việc trên các quần thể gồm nhiều cá thể. Một quần

Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo BỘ QUỐC PHỊNG HỌC VIỆN KỸ THUẬT QUÂN SỰ ****************** Báo Cáo Đề Tài Nhập Mơn Trí Tuệ Nhân Tạo Đề Tài: Khơng gian trạng thái mơ tả tốn nqueens Hãy xây dựng chương trình giải tốn theo giải thuật gene với phương pháp chọn Elitism Giảng viên hướng dẫn : Ngô Hữu Phúc Người thực Lớp : Nguyễn Như Nam : Tin học 5A Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo Hà Nội- 2010 Mở Đầu Bài báo cáo gồm phần: Giải thuật Gene với phương pháp chọn Elitism Ý tưởng toán N-queens Mơ tả thuật tốn Chương trình DEMO Chương trình viết bằng: +Ngơn ngữ:C-sharp +Trình biên dịch: Microsoft Visual Studio 2005 +Nền tảng.net frame work 3.5 Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo 1.Giải thuật Gene với phương pháp chọn Elitism: a) Giải thuật Gene: Trong khoa học máy tính, Thuật tốn Gene (GAs) 1trong phương pháp tìm kiếm có sử dụng thơng tin Thuật tốn mơ tiến hóa tự nhiên (Dawinian Evolution) mức gene sử dụng tư tưởng survival of the fittest(chọn lọc có tự nhiên), tức cá thể tự nhiên, cá thể khỏe, có khả thích nghi tốt với môi trường tái sinh nhân hệ sau Mỗi cá thể có cấu trúc gene đặc trưng cho phẩm chất cá thể Trong q trình sinh sản, cá thể thừa hưởng phẩm chất cha mẹ, cấu trúc gene mang phần cấu trúc gene cha mẹ Ngoài ra, q trình tiến hóa, xảy tượng đột biến, cấu trúc gene cá thể chứa gene mà cha mẹ khơng có Trong giải thuật Gene, cá thể mã hóa cấu trúc liệu mơ tả cấu trúc gene cá thể đó, ta gọi nhiễm sắc thể (chroniosome) Mỗi nhiễm sắc thể tạo thành từ đơn vị gọi gene Chẳng hạn, thuật toán gene cổ điển, nhiễm sắc thể chuỗi nhị phân, tức cá thể biểu diễn chuỗi nhị phân Thuật toán gene làm việc quần thể gồm nhiều cá thể Một quần thể ứng với giai đoạn phát triển gọi hệ b) Phương pháp chọn Elitism: ý tưởng: Phương pháp Elitism cho phép copy cá thể tốt (hoặc vài cá thể tốt) sang quần thể Thành phần lại quần thể tạo từ cách khác Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo  Phương pháp Elitism tăng tốc cho GA, Nó khác với số phương pháp khác ngăn khơng làm cá thể tốt Ý tưởng tốn n-queens giải thuật Gene: • u cầu toán N-queens: Hãy xếp N quân hậu vào bàn cờ n*n, cho số lượng quân hậu ăn (hay tức khơng có qn hậu ăn cả) Hãy giải toán thủ thuật gene với phương pháp chọn Elitism • Ý tưởng: Ta tiến hành xếp N hậu lên vị trí ứng với trạng thái bàn cờ ta mã hóa chúng thành gen (gọi mảng chiều) cho gen lai ghép vói để tạo gen kiểm tra số gen xem có gen trạng thái kết thúc chưa(trạng thái chứa lời giải) có dừng vịng lặp, chưa cho lai ghép tiếp Trong trình kiểm tra số gen sử dụng phương pháp chọn Elitism để cop cá thể tốt phù hợp với yêu cầu số lượng qn hậu ăn Mơ tả thuật toán: Từ hệ ban đầu tạo phương pháp mã hóa nhị phân, thuật tốn gene bắt chước chọn lọc tự nhiên di truyền để biến đổi hệ Cấu trúc thuật toán sau: procedure Genetic_Algorithm; begin t ← 0; Khởi tạo hệ ban đầu P(t); Đánh giá P(t) (theo hàm thích nghi); repeat t ← t + 1; Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo Sinh hệ P(t) từ P(t-1) -Chọn lọc -Lai ghép Đánh giá P(t); until điều kiện kết thúc thỏa mãn; end; • Để giải vấn đề thuật toán Gene, cần thực bước sau đây: Trước hết ta cần mã hóa (Encoding)các đối tượng cần tìm cấu trúc liệu Ở ta tiến hành phương pháp mã hóa phi nhị phân, với bàn cờ n*n có N quân hậu đặt vào N vị trí khác bàn cờ, ta mã hóa N quân hậu phương pháp mã hóa phi nhị phân Ví dụ: với bàn cờ 8*8 ta đặt qn hậu vào vị trí bàn cờ hình ta được: Vị trí cột: Cá thể thứ nhất(Chromosome): 8, sau mã hóa ta được:ở tương ứng với vị trí quân hậu bàn cờ Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo Tiến hành khởi tạo quần thể (innitial population generation) với cá thể (Chromosome) tương ứng với cách xếp N quân hậu bàn cờ b) Thiết kế hàm thích nghi (fitness Function) Trong tốn tối ưu, hàm thích nghi xác định dựa vào hàm mục tiêu: Ở ta cần xây dựng hàm thích nghi, hàm loại bỏ cá thể vi phạm luật, tức sau xếp quân hậu nên bàn cờ tương ứng với cá thể quần thể Nếu cá thể khơng thỏa mãn hàm thích nghi cá thể khơng chọn bị loại(Tức có quân hậu ăn nhau) c) Lựa chọn cho kết hợp lại (Selection for recombination): - Các nhiễm sắc thể chọn từ quần thể cha cho lai ghép (crossover) Vấn đề lựa chọn nhiễm sắc thể nào? - Theo thuyết tiến hóa Darwin cá thể tốt chọn để tạo (offspring) - Có nhiều phương pháp để chọn nhiễm sắc thể tốt Ở ta lấy phương pháp chọn Elitism Sau so sánh cá thể với hàm thích nghi ta có cá thể tốt quần thể, sau ta xây dựng hàm Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo Elitism để copy cá thể tốt để từ tạo quần thể tạo thành quần thể (có phương pháp xếp quân hậu cách tốt bàn cờ) d) Trên sở cấu trúc nhiễm sắc thể, thiết kế toán tử di truyền (lai ghép, đột biến) cho phù hợp với vấn đề cần giải e) Xác định cỡ quần thể khởi tạo quần thể ban đầu f) Xác định xác suất lai ghép pc xác suất đột biến Xác suất đột biến cần xác suất thấp Người ta (Goldberg, 1989) khuyên nên chọn xác suất lai ghép 0,6 xác suất đột biến 0,03 Tuy nhiên cần qua thử nghiệm để tìm xác suất thích hợp cho vấn đề cần giải g) Thuật toán dừng quần thể hội tụ, i.e cá thể tốt quần thể giống với kết mong muốn Kết thúc số hệ sinh đạt đến số sinh trước Kết thúc thể trở lên giống Kết thúc cá thể tốt quần thể không thay đổi theo thời gian => Trong thủ tục trên, điều kiện kết thúc vòng lặp số hệ đủ lớn đó, độ thích nghi cá thể tốt hệ khác khơng đáng kể Khi thuật tốn dừng, cá thể tốt hệ cuối chọn làm nghiệm cần tìm Chương trình DEMO: a)Giao diện: Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo Giao diện chương trình gồm phần:  Khu vực bàn cờ khu vực thể kết lai ghép  Kết lai ghép: kết mã hóa, Số quân hậu ăn nhau,quần thể  Các nút chức năng: Giới thiệu, khởi tạo quần thể (innitial population generation),Value(số quân hậu ăn nhau), Elitism Gene(quần thể mới, kết vị trí quân hậu)  Các Button chính: -Nút “giới thiệu”: ấn nút xuất Form2 chứa thông tin người thực hiện, tên đề tài, giảng viên hướng dẫn… -Nút “create initial population”: ấn nút chương trình tiến hành mã hóa phi nhị phân bàn cờ hiển hị thông tin lisview1 -Nút “Value”: cho ta thông tin số quân hậu ăn nhau, tìm cá thể có số qn hậu ăn =0 cá thể tốt -Nút “Elitism Gene”: ấn vào nút chương trình tiến hành cop cá thể tốt (tương ứng với số quân hậu ăn hay =0) hiển thị cá thể Listview4 vị trí đặt tương ứng bàn cờ (trên Picturebox1) Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo b) class chính: - Taomang(Tự xây dựng)//các process tốn n-queens Gene(xây dựng thuật toán) Form1(dẫn xuất từ Form) // Giao diện chương trình from2(dẫn xuất từ Form) // hiển thị thông tin đề tài ● Các namespace sử dụng(18 namespace) ▪ System; ▪ System.Collections.Generic; ▪ System.ComponentModel; ▪ System.Data; ▪ System.Drawing; ▪ System.Drawing.Drawing2D; ▪ System.Drawing.Printing; ▪ System.Drawing.Imaging; ▪ System.IO; ▪ System.Linq; ▪ System.Text; ▪ System.Windows.Forms; ▪ System.Collections; ▪ Microsoft.VisualBasic; ▪ System.Threading; Nguyễn Như Nam Lớp :Tin 5A b) Các hàm xử lý: Báo cáo : Nhập mơn trí tuệ nhân tạo * Class Taomang: class taomang { public int[] arrqueens; public taomang(int N) { arrqueens = new int[N]; for (int i = 0; i < N; i++) { arrqueens[i] = i; } } public taomang(int[] arr) { arrqueens = new int[arr.Length]; arr.CopyTo(arrqueens, 0); } } Hàm tạo giao diện bàn cờ: Graphics g; Bitmap bm; Pen p; float W, H; Random r; //cac bien dung cho thuat toan int N; public gene(int n) { N = n; p = new Pen(Color.Black); } //cac ham tao giao dien public void Drawqueensandboath(System.Windows.Forms.PictureBox ptbView, int[] ketthucmang) { W = (float)Math.Round((decimal)ptbView.Width /N,5); H = (float)Math.Round((decimal)ptbView.Width /N,5); bm = new Bitmap(ptbView.Width, ptbView.Height); g = Graphics.FromImage(bm); H/2, W/2); for (int i = 0; i < N; i++) { g.DrawLine(p, i * H, 0, i * H, H * N); g.DrawLine(p, 0, i * W, W * N, i * W); g.DrawEllipse(p, i * W + W /4, ketthucmang [i] * H + H /4, } Nguyễn Như Nam Lớp :Tin 5A Báo cáo : Nhập mơn trí tuệ nhân tạo ptbView.Image = bm; } public void mahoa(taomang st) { r = new Random(); int k; st = new taomang(st.arrqueens); for (int i = 0; i < N; i++) { st.arrqueens[i] = r.Next(0, N); } } else str += tmp.ToString(); } return str; } ... 5A Báo cáo : Nhập mơn trí tuệ nhân tạo Hà Nội- 2010 Mở Đầu Bài báo cáo gồm phần: Giải thuật Gene với phương pháp chọn Elitism Ý tưởng tốn N-queens Mơ tả thuật tốn Chương trình DEMO Chương trình. .. 5A Báo cáo : Nhập mơn trí tuệ nhân tạo  Phương pháp Elitism tăng tốc cho GA, Nó khác với số phương pháp khác ngăn khơng làm cá thể tốt Ý tưởng tốn n-queens giải thuật Gene: • Yêu cầu toán N-queens:... Báo cáo : Nhập mơn trí tuệ nhân tạo b) class chính: - Taomang(Tự xây dựng) //các process toán n-queens Gene (xây dựng thuật toán) Form1(dẫn xuất từ Form) // Giao diện chương trình from2(dẫn xuất

Ngày đăng: 25/03/2014, 22:18

Từ khóa liên quan

Mục lục

  • b) Các hàm xử lý:

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

Tài liệu liên quan