Báo cáo đồ án trí tuệ nhân tạo: Xây dựng chương trình mô tả không gian trạng thái của toán chiếc balô loại 2 giải quyết theo giải thuật Gene với phương pháp chọn Rank

10 1.3K 4
Báo cáo đồ án trí tuệ nhân tạo: Xây dựng chương trình mô tả không gian trạng thái của toán chiếc balô loại 2 giải quyết theo giải thuật Gene với  phương pháp chọn Rank

Đang tải... (xem toàn văn)

Thông tin tài liệu

Giới thiệu Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là vấn đề được các nhà khoa học máy tính đặc biệt rất quan tâm. Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ưu nhất cho bài toán trong thời gian nhỏ nhất. Các thuật toán như tìm kiếm không có thông tin / vét cạn (tìm kiếm trên danh sách, trên cây hoặc đồ thị) sử dụng phương pháp đơn giản nhất và trực quan nhất hoặc các thuật toán tìm kiếm có thông tin sử dụng heurictics để áp dụng các tri thức về cấu trúc của không gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm được sử dụng nhiều nhưng chỉ với không gian tìm kiếm nhỏ và không hiệu quả khi tìm kiếm trong không gian tìm kiếm lớn. Tuy nhiên, trong thực tiễn có rất nhiều bài toán tối ưu với không gian tìm kiếm rất lớn cần phải giải quyết. Vì vậy, việc đòi hỏi thuật giải chất lượng cao và sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán có không gian tìm kiếm lớn. Thuật giải di truyền (genetic algorithm) là một trong những kỹ thuật tìm kiếm lời giải tối ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng. Hiện nay, thuật toán di truyền cùng với logic mờ được ứng dụng rất rộng rãi trong các lĩnh vực phức tạp. Thuật toán di truyền kết hợp với logic mờ chứng tỏ được hiệu quả của nó trong các vấn đề khó có thể giải quyết bằng các phương pháp thông thường hay các phương pháp cổ điển, nhất là trong các bài toán cần có sự lượng giá, đánh giá sự tối ưu của kết quả thu được. Chính vì vậy, thuật giải di truyền đã trở thành đề tài nghiên cứu thú vị và đem đến nhiều ứng dụng trong thực tiễn. Tuy giải thuật Gene (GA) có thể chậm hơn một số thuật toán khác song GA lại có một vài ưu điểm nổi trội như: dễ thể hiện, không bị rơi vào trạng thái cực trị địa phương, dễ thay đổi hàm thích nghi, … Vì vậy, thuật toán Gene là một lựa chọn thích hợp cho dạng bài toán quyết định. Ví dụ như bài toán tìm đường, bài toán balô, … Trong khuôn khổ của đề tài này, em xin trình bày nội dung của giải thuật Gene và ứng dụng của nó trong việc giải quyết bài toán Chiếc ba lô loại 2 (Knapsack 2) với phương pháp lựa chọn Rank Selection.

4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo BỘ MÔN KHOA HỌC MÁY TÍNH– KHOA CNTT HỌC VIỆN KỸ THUẬT QUÂN SỰ BÀI TẬP LỚN MÔN TRÍ TUỆ NHÂN TẠO Đề bài: Xây dựng chương trình tả không gian trạng thái của toán chiếc balô loại 2 giải quyết theo giải thuật Gene với phương pháp chọn Rank. Sinh viên thực hiện: Nguyễn Thị Thanh Huyền Lớp: Tin học 5A Khóa 5 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo Hà Nội, 2010 Giới thiệu Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là vấn đề được các nhà khoa học máy tính đặc biệt rất quan tâm. Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ưu nhất cho bài toán trong thời gian nhỏ nhất. Các thuật toán như tìm kiếm không có thông tin / vét cạn (tìm kiếm trên danh sách, trên cây hoặc đồ thị) sử dụng phương pháp đơn giản nhất và trực quan nhất hoặc các thuật toán tìm kiếm có thông tin sử dụng heurictics để áp dụng các tri thức về cấu trúc của không gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm được sử dụng nhiều nhưng chỉ với không gian tìm kiếm nhỏ và không hiệu quả khi tìm kiếm trong không gian tìm kiếm lớn. Tuy nhiên, trong thực tiễn có rất nhiều bài toán tối ưu với không gian tìm kiếm rất lớn cần phải giải quyết. Vì vậy, việc đòi hỏi thuật giải chất lượng cao và sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toánkhông gian tìm kiếm lớn. Thuật giải di truyền (genetic algorithm) là một trong những kỹ thuật tìm kiếm lời giải tối ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng. Hiện nay, thuật toán di truyền cùng với logic mờ được ứng dụng rất rộng rãi trong các lĩnh vực phức tạp. Thuật toán di truyền kết hợp với logic mờ chứng tỏ được hiệu quả của nó trong các vấn đề khó có thể giải quyết bằng các phương pháp thông thường hay các phương pháp cổ điển, nhất là trong các bài toán cần có sự lượng giá, đánh giá sự tối ưu của kết quả thu được. Chính vì vậy, thuật giải di truyền đã trở thành đề tài nghiên cứu thú vị và đem đến nhiều ứng dụng trong thực tiễn. Tuy giải thuật Gene (GA) có thể chậm hơn một số thuật toán khác song GA lại có một vài ưu điểm nổi trội như: dễ thể hiện, không bị rơi vào trạng thái cực trị địa phương, dễ thay đổi hàm thích nghi, … Vì vậy, thuật toán Gene là một lựa chọn thích hợp cho dạng bài toán quyết định. Ví dụ như bài toán tìm đường, bài toán balô, … 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo Trong khuôn khổ của đề tài này, em xin trình bày nội dung của giải thuật Gene và ứng dụng của nó trong việc giải quyết bài toán Chiếc ba lô loại 2 (Knapsack 2) với phương pháp lựa chọn Rank Selection. I. Giải thuật di truyền (Genertic Algorithm - GAs) 1. Giới thiệu: GAs (John Holland, 1975) phỏng tiến hóa tự nhiên (Darwinian Evolution) ở mức gen sử dụng tư tưởng của survival of the fittest (chọn lọc tự nhiên). Một cá thế (chromosome) tả một lời giải ứng viên của bài toán. Một tập các cá thể “alive”, gọi là quần thể (population) được tiến hóa từ thế hệ này tới thế hệ khác phụ thuộc vào sự thích nghi của các cá thể. Thế hệ sinh ra sẽ chứa lời giải của bài toán. • Giải thuật: - Khởi tạo quần thể P(0) - chỉ số i chỉ thế hệ thứ i - Lặp đến khi quần thể hội tụ hoặc đạt đến tiêu chuẩn kết thúc + Đánh giá độ thích nghi của mỗi cá thể trong P(i) + Lựa chọn các cha từ P(i) dựa trên độ thích nghi của chúng trong P(i). + Áp dụng các toán tử Gen (crossover, mutation) từ các cha đã chọn để sinh ra các con + Đạt được thế hệ tiếp theo P(i + 1) gồm các cá thể con và cha P(i) 2. Các thành phần cơ bản của Gas a. Khởi tạo (Initializetion) 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo Tạo ngẫu nhiên một số cá thể chấp nhận được để được một quần thể phù hợp với kích thước quần thể được quy định sẵn b. Hàm thích nghi (Fitness Function) Gán giá trị thích nghi cho mỗi cá thể. Giá trị thích nghi càng sát với thực tế thì độ chính xác càng cao. c. Lựa chọn để kết hợp lại (Selection For Recombine) Có nhiều kiểu lựa chọn + roulette wheel selection + Boltzman selection + Tournament selection + rank selection + steady state selection + Elitism d. Mã hóa Mã hóa chuỗi gene của mỗi cá thể thành dạng thích hợp (nhị phân, mã hóa giá trị, mã hóa hoán vị) e. Lai ghép Sau khi chọn được các cặp NST dùng để lai, ta tiến hành cắt ghép để tạo được các NST mới (con mới). Có nhiều hình thức lai ghép: lai 1 điểm, lai nhiều điểm, lai bằng các phép toán nhị phân, … f. Đột biến Sau khi lai ghép, để tạo sự đa dạng quần thể, ta làm phép đột biến đối với một vài cá thể. Trên chuỗi gene, tại 1 vài vị trí, làm thay đổi giá trị của 1 đoạn gene nào đó. g. Đánh giá Khi đã có quần thể mới, ta tiến hành kiểm tra đánh giá xem cá thể nào tốt nhất, cá thể nào tồi. Loại bỏ bớt những cá thể tồi để lặp lại các bước trên đó h. Tiêu chuẩn kết thúc 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo Không có quá trình nào là không thể kết thúc. Quá trình tiến hóa có thể dừng lại sau một khoảng tgian được quy định(một số thế hệ) hoặc sau khi đã hội tụ (không thể tìm thêm được cá thể tốt hơn) II. Bài toán Ba lô 2 1. Phát biểu bài toán: Bạn chuẩn bị đi du lịch và bạn cần chuẩn bị một số thứ. Tuy nhiên, bạn không thể đem tất cả đi được vì sức người có hạn. Bạn phải đem theo đồ gì, số lượng mỗi loạibao nhiêu để đạt được tổng giá trị là lớn nhất nhưng vẫn trong khả năng có thể đem theo được. 2. Ứng dụng Gas để giải quyết bài toán: a. Các bước thực hiện: * Khởi tạo đồ vật và trọng lượng tối đa ba lô: - Tạo ra x đồ vật với khối lượng và giá trị khác nhau (ngẫu nhiên) - Ấn định khối lượng tối đa của túi * Khởi tạo quần thể: Tạo ra n chiếc ba lô, mỗi ba lô chứa số lượng các vật là khác nhau, không ba lô nào bị quá tải. Số lượng mỗi vật trong balô là một số ngẫu nhiên trong khoảng từ 0 → KL balô/KL vật Tìm balô tốt nhất * Lựa chọn: Xếp các balô từ thế hệ trước theo thứ tự và được xếp rank Thứ tự Quá tải Không quá tải Giá trị tăng dần Giá trị tăng dần Rank 1 2 … maxRank Tính tổng các rank Xác định số cá thể con định tạo ra 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo Lặp đến khi đủ số cá thể con Lấy ngẫu nhiên 1 số thuộc khoảng (1; tổng Rank) Cộng các Rank đến khi đc giá trị > giá trị ngẫu nhiên Xác định Gene được chọn và đưa vào mảng để lai * Mã hóa: Với các Gene được chọn để đem lai, mã hóa chúng thành dạng chuỗi bằng phương pháp mã hóa giá trị * Lai: Phương pháp lai được chọn là lai 2 điểm. Chuỗi gen được chia thành 3 phần, phần 1 có độ dài = ¼ chuỗi gene, phần 2độ dài = ½ chuỗi gene, phần 3 là phần còn lại Cách lai: Bố a b c Con1 a b’ c Mẹ a’ b’ c’ Con2 a’ b c’ * Đột biến Dựa vào tỉ lệ đột biến → số lần đột biến → số cá thể đột biến Chọn 3 vị trí để đột biến. Giá trị đột biến = vị trí * Đánh giá Giải mã gene: Từ chuỗi mã hóa đưa về dạng knapsack → Sau quá trình lai ghép, quần thể gồm cả các cá thể cha và con. Vì quần thể có kích thước cố định nên phải đánh giá để chọn ra n cá thể tốt cho thế hệ kế tiếp * Lặp lại các bước trên đến khi quần thể hội tụ hoặc sau k thế hệ 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo III. Ứng dụng phỏng bài toán: 1. Môi trường xây dựng ứng dụng: - Framework:.Net 3.5 - IDE: Microsoft Visual Studio 2008 2. Cấu trúc ứng dụng: Ứng dụng được chia thành 2 phần: - Core: Chứa các file class tả thuật toán - Presentation: Chứa các file tả giao diện 3. Một số thành phần của chương trình: Class Item tả vật chứa trong túi Knapsack tả chiếc balô (cá thể) GAs thuật toán Gas Properties và Methods in class Item ItemWeight Khối lượng vật ItemValue Giá trị vật Knapsack knapsackMaxWeight KL tối đa của túi KnapsackCurrentWeight KL hiện tại của túi KnapsackValue Giá trị hiện tại Rank Rank trong quần thể 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo ListItemAmount Mảng chứa sl mỗi vật overload() Kiểm tra túi quá tải showItem() Hiển thị sl các vật dạng string GAs KnapsackWeight KL tối đa của túi knapsackAmount SL túi trong 1 thế hệ mutationProp tỉ lệ đột biến listItem dsách các đồ vật listKnapsack dsách các cá thể trong 1 thế hệ newListKnapsack danh sách cá thể cũ và mới ksBestCurrent chiếc túi tốt nhất maxValue giá trị của túi tốt nhất goodGeneration thế hệ có túi tốt nhất encodedListKnapsack mảng các gene đc mã hóa initialize() khởi tạo quần thể selectionFor NewGeneration() chọn từ quần thể sau khi sinh ra các cá thể tốt selectionFor Recombination() các cặp được đem lai encoding() mã hóa các cặp sẽ lai với nhau crossover() lai ghép mutation() đột biến evaluation() giải mã và tổng hợp cá thể gene() tổng hợp các bước 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo 4. Giao diện Kết quả hiển thị là quần thể sau khi tiến hóa (con mới sinh và cha) 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo . lớn môn trí tuệ nhân tạo BỘ MÔN KHOA HỌC MÁY TÍNH– KHOA CNTT HỌC VIỆN KỸ THUẬT QUÂN SỰ BÀI TẬP LỚN MÔN TRÍ TUỆ NHÂN TẠO Đề bài: Xây dựng chương trình mô tả không gian trạng thái của toán chiếc balô. Bài tập lớn môn trí tuệ nhân tạo 4. Giao diện Kết quả hiển thị là quần thể sau khi tiến hóa (con mới sinh và cha) 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo . lựa chọn thích hợp cho dạng bài toán quyết định. Ví dụ như bài toán tìm đường, bài toán balô, … 4 Nguyễn Thị Thanh Huyền – TH5A Bài tập lớn môn trí tuệ nhân tạo Trong khuôn khổ của đề tài này,

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

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan