1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 668,5 KB

Nội dung

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.

Trang 1

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ô 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

Trang 2

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á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ô, …

Trang 3

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) mô 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) mô 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

Trang 4

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

Trang 5

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ại là bao 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

Giá trị tăng dần Giá trị tăng dần

Tính tổng các rank

Trang 6

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 có độ dài = ½ chuỗi gene, phần 3 là phần còn lại Cách lai:

* Độ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ệ

Trang 7

III Ứng dụng mô 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 mô tả thuật toán

- Presentation: Chứa các file mô tả giao diện

3 Một số thành phần của chương trình:

Class

Properties và Methods in class

Item

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

Trang 8

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

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

evaluation() giải mã và tổng hợp cá thể

Trang 9

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)

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w