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

Tìm hiểu giải thuật di truyền và ứng dụng giải quyết bài toán người du lịch

44 39 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 1,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Do đó việc tìm một phương pháp tối ưu mới để giải quyết bài toán tối ưu khi các thông tin đưa ra là không thực sự rõ ràng là cần thiết và có ý nghĩa thực tế.. Giải thuật di truyền GAs là

Trang 1

TRƯỜNG ĐẠI HỌC VINH

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

TRƯỜNG ĐẠI HỌC VINH

KHOA CÔNG NGHỆ THÔNG TIN

Trang 3

LỜI CẢM ƠN

Lời đầu tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo trong khoa Công nghệ Thông tin nói chung, bộ môn Hệ thống Thông Tin nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua

Đặc biệt em xin gửi lời cảm ơn đến cô giáo, ThS Trần Thị Kim Oanh,

cô đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm

đồ án tốt nghiệp Trong thời gian làm việc với cô, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều rất cần thiết cho

em trong quá trình học tập và công tác sau này

Mặc dù đã có nhiều cố gắng nhưng do kiến thức còn hạn chế cùng với

kinh nghiệm chưa có nên không tránh khỏi thiếu sót.Vì vậy em rất mong nhận được những ý kiến đóng góp bổ sung của thầy cô giáo và các bạn để bài làm báo cáo đồ án tốt nghiệp của em được hoàn thiện hơn

Em xin chân thành cảm ơn!

Nghệ An, ngày 08 tháng 1 năm 2017

Sinh viên thực hiện

Nguyễn Bảo Chung

Trang 4

MỤC LỤC

Trang

LỜI CẢM ƠN 1

LỜI NÓI ĐẦU 4

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 5

1.1 Lý do chọn đề tài 5

1.2 Mục tiêu nghiên cứu 5

1.3 Đối tượng, phạm vi và phương pháp nghiên cứu 6

1.4 Nội dung nghiên cứu 6

1.5 Ý nghĩa của đề tài 6

CHƯƠNG 2: TỔNG QUAN NGHIÊN CỨU VỀ GIẢI THUẬT DI TRUYỀN (GENETIC ALGORITHMS) 7

2.1 Giải thuật di truyền 7

2.2 Các tính chất của giải thuật di truyền 7

2.3 Nội dung và cấu trúc của Giải thuật di truyền 8

2.4 Biểu diễn di truyền đối với lời giải tiềm tàng của bài toán 9

2.4.1 Biểu diễn dưới dạng chuỗi nhị phân 9

2.4.2 Biểu diễn dưới dạng hoán vị 10

2.4.3 Mã hoá theo giá trị 11

CHƯƠNG 3: GIẢI THUẬT DI TRUYỀN - PHƯƠNG PHÁP TÌM KIẾM CỰC MẠNH 12

3.1 Phương pháp đạo hàm 12

3.2 Phương pháp liệt kê 13

3.3 Phương pháp tìm kiếm ngẫu nhiên 13

3.4 Giải thuật di truyền đơn giản 14

3.4.1 Tái tạo 15

3.4.2 Lai ghép 16

3.4.3 Đột biến 18

Trang 5

3.5 Giải thuật di truyền cải tiến 20

3.5.1 Các sơ đồ lựa chọn 20

3.5.2 Các toán tử cao cấp 21

3.6 Các ứng dụng của giải thuật di truyền 25

CHƯƠNG 4: ỨNG DỤNG GIẢI THUẬT DI TRUYỀN GIẢI QUYẾT BÀI TOÁN NGƯỜI DU LỊCH (TRAVELLING SALESMAN PROBLEM – TSP) 26

4.1 Phát biểu bài toán 26

4.2 Phân tích độ phức tạp bài toán 27

4.3 Giải thuật đề xuất 27

4.3.1 Mã hóa bài toán 27

4.3.2 Khởi tạo quần thể 28

4.3.3 Lai ghép 28

4.3.4 Đột biến 28

4.3.5 Tính toán độ thích nghi 36

4.3.6 Tiến hóa Error! Bookmark not defined 4.4 Giới thiệu về chương trình 38

4.5 Kết quả thử nghiệm 38

KẾT LUẬN 40

1 Kết quả đạt được 41

2 Hạn chế 41

3 Hướng phát triển 41

TÀI LIỆU THAM KHẢO 42

Trang 6

LỜI NÓI ĐẦU

Giải thuật di truyền xuất hiện từ đầu những năm 50 của thế kỷ XX, khi một số nhà sinh học sử dụng máy tính để tái hiện các hệ thống sinh học trên máy tính Song phải đến gần 30 năm sau đó thì giải thuật di truyền mới gây được sự chú ý, sự quan tâm của các nhà nghiên cứu Giải thuật di truyền xây dựng dựa trên cơ sở học thuyết tiến hoá của ĐacUyn, mô phỏng những gì mà tự nhiên đã làm, đó là sự đào thải, di truyền và tiến hoá Những cá thể tốt sẽ được duy trì, sinh sản ra các cá thể mới, còn những cá thể yếu kém không có khả năng thích nghi sẽ bị diệt vong Sự tiến hoá đã diễn ra không ngừng để tạo ra các thế hệ sau gồm các cá thể khoẻ hơn, dễ thích nghi hơn

Bài toán người du lịch là một trong những bài toán được nghiên cứu sâu nhất trong lĩnh vực tối ưu hóa

Trong khuôn khổ nội dung đề tài này, em đã trình bày tổng quan về giải thuật di truyền, giải thuật di truyền truyền thống và giải thuật di truyền cải tiến, đồng thời trình bày một hướng tiếp cận giải quyết bài toán người du lịch sử dụng giải thuật di truyền Phần cuối của đề tài, em có viết một chương trình đơn giản minh hoạ giải thuật di truyền

Trang 7

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý do chọn đề tài

Hiện nay, tối ưu hóa là một nội dung quan trọng của Tin học ứng dụng,

có liên quan đến nhiều lĩnh vực của tự nhiên, xã hội

Tuy đã có nhiều phương pháp để giải quyết các bài toán tối ưu, nhưng nhìn chung các phương pháp chỉ dừng lại ở lớp các bài toán với thông tin rõ ràng Do đó việc tìm một phương pháp tối ưu mới để giải quyết bài toán tối ưu khi các thông tin đưa ra là không thực sự rõ ràng là cần thiết và có ý nghĩa thực

tế

Giải thuật di truyền (GAs) là một trong những kỹ thuật giúp tìm kiếm lời giải tối ưu đáp ứng được yêu cầu tìm ra lời giải tối ưu nhất cho bài toán với thời gian nhỏ nhất khi mà không gian tìm kiếm rất lớn, điều làm cho giải thuật GAs khác biệt các giải thuật thông thường khác

GAs là phương thức giải quyết vấn đề mô phỏng lại sự tiến hóa thông qua các quy luật tự nhiên Nó tìm ra giải pháp tối ưu hay tốt nhất trong điều kiện thời gian và không gian cho phép Khác với các thuật toán khác, GAs bắt đầu làm việc với một tập lời giải ban đầu, sau đó loại bỏ những lời giải không thích hợp và chọn những lời giải có độ thích nghi cao hơn để tái tạo và đột biến nhằm tạo ra các thế hệ mới có khả năng thích nghi ngày càng cao

Ngày nay, GAs được dùng khá nhiều trong các lĩnh vực của đời sống như khoa học, kinh doanh,… Đầu tiên phải kể đến là các bài toán tối ưu số và bài toán tối ưu tổ hợp đã sử dụng GAs để tìm kiếm lời giải như bài toán người du lịch (Travelling Salesman Problems - TSP), thiết kế và điều khiển robo,…

Với những ưu điểm kể trên, em đã chọn “Tìm hiểu giải thuật di truyền và ứng dụng giải quyết bài toán người du lịch” làm đồ án Tốt nghiệp đại học cho

mình

1.2 Mục tiêu nghiên cứu

- Tìm hiểu về giải thuật di truyền

- Nghiên cứu ứng dụng giải thuật di truyền trong giải bài toán tối ưu

Trang 8

- Viết chương trình mô phỏng giải thuật

1.3 Đối tượng, phạm vi và phương pháp nghiên cứu

- Đối tượng nghiên cứu:

Giải thuật di truyền

 Bài toán người du lịch (Travelling Salesman Problems - TSP)

- Phạm vi nghiên cứu:

 Giải thuật di truyền và ứng dụng giải quyết bài toán người du lịch

- Phương pháp nghiên cứu:

 Nghiên cứu tài liệu

 Sử dụng những gì tìm hiểu được từ giải thuật di truyền áp dụng vào giải quyết bài toán người du lịch

1.4 Nội dung nghiên cứu

Nội dung nghiên cứu của đề tài được chia thành 2 phần chính:

- Tìm hiểu về các kiến thức cơ bản trong giải thuật di truyền,

- Giới thiệu về bài toán người du lịch và đề xuất giải bài toán người du lịch bằng giải thuật di truyền

1.5 Ý nghĩa của đề tài

- Áp dụng giải thuật di truyền vào máy tính là phương pháp áp dụng các quy luật tiến hóa của tự nhiên vào việc giải quyết các bài toán phức tạp mà các giải thuật trước đó không đáp ứng được

- Đề xuất cách giải mới áp dụng vào bài toán người du lịch, đó là áp dụng giải thuật di truyền vào việc biểu diễn, xử lý bài toán

- Ngoài bài toán người du lịch, giải thuật di truyền còn có thể được ứng dụng trong nhiều bài toán tối ưu khác Vì vậy kết quả nghiên cứu của đề tài sẽ tạo nền tảng và cơ sở để tiếp tục nghiên cứu về sau

Trang 9

CHƯƠNG 2: TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN

(GENETIC ALGORITHMS) 2.1 Giải thuật di truyền

Giải thuật di truyền xuất hiện từ đầu những năm 50 của thế kỷ XX, khi một số nhà sinh học sử dụng máy tính để tái hiện các hệ thống sinh học trên máy tính Song phải đến gần 30 năm sau đó thì giải thuật di truyền mới gây được sự chú ý, sự quan tâm của các nhà nghiên cứu Giải thuật di truyền xây dựng dựa trên cơ sở học thuyết tiến hoá của ĐacUyn, mô phỏng những gì mà tự nhiên đã làm, đó là sự đào thải, di truyền và tiến hoá Những cá thể tốt sẽ được duy trì, sinh sản ra các cá thể mới, còn những cá thể yếu kém không có khả năng thích nghi sẽ bị diệt vong Sự tiến hoá đã diễn ra không ngừng để tạo ra các thế hệ sau gồm các cá thể khoẻ hơn, dễ thích nghi hơn

Trong thực tế, đã có nhiều bài toán ứng dụng tin học lý thú mà việc áp dụng các phương pháp giải truyền thống chưa hợp lý, đặc biệt còn rất hạn chế về mặt thời gian Phần lớn, đây là các bài toán tối ưu mà thường là cốt lõi của nhiều ứng dụng thực tế Cuối cùng, con người cũng đã tìm ra được phương pháp giải phù hợp cho các bài toán này Tuy nhiên, kết quả thu được là xấp xỉ tối ưu nhưng chúng ta hoàn toàn chấp nhận nó Một trong những phương pháp đó là giải thuật di truyền của Holland, được công bố vào năm 1975 cùng với sự chứng minh bằng toán học chặt chẽ Holland cho rằng tính hiệu quả và tính dễ thích nghi của sự sống có được là do tiến hoá có chọn lọc tự nhiên Do đó, có thể áp dụng chính các nguyên lý đó trong các hệ thống nhân tạo Giải thuật di truyền ra đời đã giải quyết có hiệu quả hầu hết các bài toán tối ưu và từ đó nhiều ứng dụng tin học cũng được hoàn thành

2.2 Các tính chất của giải thuật di truyền

Giải thuật di truyền (GAs) là giải thuật mô phỏng những gì mà tự nhiên

đã làm dựa trên nền tảng thuyết tiến hoá của ĐacUyn, đó là các cơ chế chọn lọc

tự nhiên, di truyền học và tiến hoá Đối với một bài toán tối ưu, xuất phát từ tập các lời giải ban đầu, qua quá trình chọn lọc, tiến hoá chúng ta sẽ nhận được tập

Trang 10

các lời giải tốt hơn Mục tiêu của GAs không nhằm đưa ra lời giải chính xác tối

ưu mà là đưa ra lời giải tương đối tối ưu

Một cá thể trong GAs sẽ biểu diễn một lời giải của bài toán Tuy nhiên, nếu trong tự nhiên thì một cá thể có thể có nhiều nhiễm sắc thể (NST) thì trong phạm vi GAs, ta quan niệm một cá thể chỉ có một NST Do đó khái niêm cá thể

và NST ở trong GAs coi như là tương đương

Một NST được tạo thành từ nhiều gen, mỗi gen có thể có các giá trị khác nhau để quy định một tình trạng nào đó Trong GAs, một gen được coi như một phần tử trong chuỗi NST

Quần thể là tập hợp các cá thể có cùng một số đặc điểm chung nào đấy

2.3 Nội dung và cấu trúc của giải thuật di truyền

Giải thuật di truyền được mô tả đơn giản như sau:

Giải thích:

Ban đầu, giải thuật di truyền khởi tạo ngẫu nhiên tập hợp các lời giải có thể (nhiễm sắc thể ) P(t) = (xt1 xt2 xtn), trong đó n là số lượng cá thể của quần thể P(t) Mỗi lời giải xti được đánh giá nhằm xác định độ phù hợp của nó Quá

Trang 11

trình chọn lọc tự nhiên, di truyền, tiến hoá bắt đầu ở vòng lặp t+1, một tập hợp mới được hình thành nhờ sự lựa chọn các cá thể phù hợp nhất Một số thành

phần của tập hợp này lại được tái sản xuất nhờ các toán tử “lai ghép” và “đột biến” Ta có tập lời giải mới phù hợp hơn Và cứ thế cho đến khi vòng lặp kết

thúc ta nhận được tập lời giải có chứa lời giải tối ưu hoặc gần tối ưu nhất

Toán tử “lai ghép” kết hợp các đặc trưng của hai nhiễm sắc thể cha và

mẹ nhằm tạo ra 2 con thừa hưởng các điểm tốt của cha mẹ

Toán tử “đột biến” tại một hoặc một số Gene của một nhiễm sắc thể được thực hiện nhờ sự thay đổi ngẫu nhiên Gene đó theo xác suất đột biến

Như vậy, giải thuật di truyền cho một bài toán cụ thể bao gồm 5 vấn đề sau:

1 Biểu diễn di truyền cho lời giải có thể của bài toán

2 Khởi tạo tập lời giải ban đầu P(t)

3 Xác định hàm đánh giá nhằm xác định mức độ phù hợp của từng lời giải

4 Các toán tử di truyền (lai ghép và đột biến)

5 Các giá trị tham số sử dụng trong giải thuật di truyền như kích thước quần thể, các xác suất đột biến, lai ghép

2.4 Biểu diễn di truyền đối với lời giải tiềm tàng của bài toán

Việc biểu diễn di truyền đối với lời giải tiềm tàng của bài toán là rất cần thiết Đối với từng bài toán cụ thể, chúng ta nên tìm cách biểu diễn sao cho phù hợp với các toán tử di truyền Thông thường, lời giải tiềm tàng của bài toán được biểu diễn theo một trong các cách sau:

- Biểu diễn dưới dạng chuỗi nhị phân

- Biểu diễn dưới dạng hoán vị

- Biểu diễn dưới dạng chuỗi giá trị thực

2.4.1 Biểu diễn dưới dạng chuỗi nhị phân

Trong tất cả các phương pháp mã hóa thì phương pháp mã hoá nhị phân là phương pháp mã hoá nhiễm sắc thể đơn giản và ra đời sớm nhất Trong mã hoá nhị phân, mỗi nhiễm sắc thể là một chuỗi nhị phân, mỗi bit trong nó có thể biểu diễn một đặc tính của lời giải

Trang 12

Độ dài của vectơ nhiễm sắc thể là số n nguyên dương nhỏ nhất thoả mãn: (UB - LB)  2n – 1, trong đó UB và LB là cận trên và cận dưới của các miền giá trị

Ví dụ:

Tìm giá trị lớn nhất của hàm số f(x) = −x 2 /10+3x với x nguyên và 0≤x ≤31

Ta thực hiện mã hoá mỗi số nguyên x ∈ [0,31] như một cá thể bởi một số nhị phân có độ dài 5 bits:

2.4.2 Biểu diễn dưới dạng hoán vị

Mã hoá hoán vị có thể được sử dụng trong các bài toán liên quan đến thứ

tự như bài toán du lịch hay bài toán lập lịch

Trong mã hoá hoán vị, mỗi nhiễm sắc thể là một chuỗi các số biểu diễn một trình tự

Ví dụ :

Nhiễm sắc thể 1: 1 5 4 3 2 6 7 9 8 Nhiễm sắc thể 2: 9 1 7 3 8 5 6 4 2

Mã hoá hoán vị phù hợp cho các bài toán liên quan đến thứ tự Đối với các bài toán này, việc thao tác trên các nhiễm sắc thể chính là hoán vị các số trong chuỗi đó làm thay đổi trình tự của nó

Ví dụ:

Trong bài toán người du lịch, để biểu diễn một cách đi của người du lịch thì dùng một nhiễm sắc thể mà trình tự các số trong chuỗi cho biết thứ tự các thành phố mà người du lịch đi qua

Trang 13

2.4.3 Mã hoá theo giá trị

Mã hoá trực tiếp theo giá trị có thể được dùng trong các bài toán sử dụng giá trị phức tạp như trong số thực Trong đó, mỗi nhiễm sắc thể là một chuỗi các giá trị Các giá trị có thể là bất cứ cái gì liên quan đến bài toán, từ số nguyên, số thực, kí tự cho đến các đối tượng phức tạp hơn

Ví dụ:

Nhiễm sắc thể 1: 1.23 5.32 0.34 2.98 3.54

Nhiễm sắc thể 2: (back), (back), (right), (forward), (left)

Mã hoá theo giá trị thường dùng cho các bài toán đặc biệt Trong cách mã hoá này ta thường phải phát triển các toán tử đột biến và lai ghép cho phù hợp với từng bài toán

Trang 14

CHƯƠNG 3: GIẢI THUẬT DI TRUYỀN ĐƠN GIẢN VÀ

GIẢI THUẬT DI TRUYỀN CẢI TIẾN

Vào năm 1975, Holland đã đưa ra khái niệm giải thuật di truyền trong một công trình nghiên cứu của ông và đã đề xuất một phương pháp tìm kiếm mới với các chứng minh toán học chặt chẽ, đó là giải thuật di truyền Đây là phương pháp tìm kiếm dựa trên các cơ chế chọn lọc tự nhiên, di truyền học và sự tiến hoá Chúng kết hợp sự tồn tại của các cá thể khỏe nhất và sự trao đổi thông tin

về cấu trúc giữa các cá thể này để tạo ra các cá thể mới thừa hưởng các điểm tốt của các cá thể cha, mẹ Trong mỗi thế hệ, một tập mới các cá thể được tạo ra nhờ các cơ chế chọn lọc tự nhiên, lai ghép và đột biến từ các cá thể đã tồn tại Giải thuật di truyền đã được chứng minh bằng lý thuyết và thực nghiệm là thuật toán tìm kiếm toàn cực mạnh, song việc thực thi của chúng trên máy tính thì lại đơn giản Ngoài ra, sử dụng giải thuật di truyền cho việc tìm kiếm không bị hạn chế bởi các giả định về không gian tìm kiếm, như tính liên tục, sự tồn tại đạo hàm của hàm giá trị

Để thấy rõ tính mạnh của giải thuật di truyền chúng ta sẽ xét các giải thuật tìm kiếm truyền thống đã và đang sử dụng trong nhiều ứng dụng

Các phương pháp tìm kiếm truyền thống có 3 loại chính là:

- Phương pháp tìm kiếm gián tiếp:

Là phương pháp tìm kiếm cực trị địa phương bằng việc giải hệ phương trình (thường là không tuyến tính) thu được bằng việc đặt Gradient của hàm mục tiêu bằng 0 theo mọi hướng

- Phương pháp tìm kiếm trực tiếp:

Trang 15

Phương pháp này tìm kiếm cực trị bằng cách tính trực tiếp giá trị hàm mục tiêu và di chuyển theo hướng liên quan đến Gradient cục bộ Đó chính là chiến lược “leo đồi” (hill climbing) tức tìm kiếm theo hướng tốt nhất có thể

- Phương pháp này dựa trên sự tồn tại của đạo hàm Trong rất nhiều ứng dụng thực tế, không gian tìm kiếm thường không liên tục, nhiều nhiễu và giả định về sự tồn tại đạo hàm cũng không có Điều này hạn chế khả năng ứng dụng của phương pháp đạo hàm vào các ứng dụng thực tế

3.3 Phương pháp tìm kiếm ngẫu nhiên

Qua việc phân tích trên ta thấy rằng, các phương pháp truyền thống nói chung là cục bộ và không hiệu quả Tuy nhiên, con người thường không áp dụng riêng một phương pháp nào mà thường kết hợp vài, ba phương pháp trong cùng một ứng dụng và đã đạt kết quả tốt Mặc dù vậy, các nhược điểm của các phương pháp truyền thống vẫn chưa khắc phục được Sau khi giải thuật di truyền ra đời, người ta đã nhận thấy các điểm mạnh của nó Giải thuật di truyền khác với các giải thuật tìm kiếm truyền thống ở bốn điểm cơ bản sau:

- Giải thuật di truyền làm việc với mã của tập thông số chứ không làm việc với các giá trị của các thông số

Trang 16

- Giải thuật di truyền tìm kiếm từ một quần thể các điểm chứ không phải

3.4 Giải thuật di truyền đơn giản

Giải thuật di truyền xử lý những chuỗi bit hay những chuỗi giá trị số thực, mỗi chuỗi đại diện cho một tập thông số trong không gian tìm kiếm và được gọi

là lời giải tiềm tàng của bài toán Do đó, trong tất cả các lời giải tiềm tàng có thể tồn tại lời giải tối ưu hoặc gần tối ưu của bài toán Mỗi lời giải tiềm tàng, sau khi khởi tạo sẽ được giải mã thành tập thông số và từ đó tính được giá trị hàm mục tiêu của từng lời giải tiềm tàng Tuỳ vào từng bài toán mà hàm mục tiêu có thể

là cực đại hay cực tiểu Sau đó, mỗi giá trị hàm mục tiêu của từng lời giải tiềm tàng lại được biến đổi thành giá trị đo độ thích nghi của lời giải tiềm tàng đó Quần thể ban đầu được khởi tạo ngẫu nhiên, sau đó được tiến hoá từ thế hệ này sang thế hệ khác nhờ vào các toán tử tái tạo, lai ghép và đột biến, song lực lượng của quần thể không thay đổi Quá trình tiến hoá cứ diễn ra liên tục và đến một thế hệ thứ n nào đó (n đủ lớn) thì quần thể ở thế hệ này sẽ chứa lời giải tối ưu hoặc gần tối ưu của bài toán

Đối với những bài toán không quá phức tạp, chúng ta có thể sử dụng giải thuật di truyền đơn giản Giải thuật di truyền đơn giản chỉ sử dụng ba toán tử cơ bản là:

- Tái tạo

- Lai ghép

- Đột biến

Trang 17

3.4.1 Tái tạo

Tái tạo là quá trình các chuỗi được sao chép lại theo giá trị đo độ thích nghi của từng chuỗi, nhằm biến quần thể ở thế hệ mới thành quần thể ở thế hệ cha Việc sao chép các chuỗi theo giá trị đo độ thích nghi của chuỗi nghĩa là những chuỗi có giá trị đo độ thích nghi lớn sẽ có xác suất lớn trong việc đóng góp một hay nhiều con cháu trong thế hệ tiếp theo Toán tử này mô phỏng hoạt động chọn lọc tự nhiên theo thuyết tiến hoá của ĐacUyn Trong các quần thể tự nhiên, độ thích nghi chính là khả năng sống sót của cá thể, chống lại những khó khăn trong quá trình trưởng thành Trong giải thuật di truyền, giá trị đo độ thích nghi sẽ quyết định sự tồn tại hay diệt vong của chuỗi

Toán tử tái tạo có thể được thực hiện theo nhiều cách, song cách đơn giản

và hiệu quả nhất là sử dụng vòng tròn định hướng Rulet Ở đây, mỗi chuỗi trong quần thể chiếm một dải quạt có độ rộng tỷ lệ với độ thích nghi của chuỗi Độ rộng của dải quạt được tính theo tỷ lệ phần trăm độ thích nghi của chuỗi với tổng mức thích nghi của toàn quần thể là 100% Mỗi lần quay vòng tròn Rulet, chúng ta có một ứng cử viên cho việc tái tạo

Việc quay vòng tròn để chọn ứng cử viên cho việc tái tạo được thực hiện theo các bước sau:

- Đánh số các cá thể trong quần thể

- Tính tổng mức thích nghi của toàn quần thể

- Ứng với mỗi cá thể, ta tính một tổng tích luỹ bằng tổng mức thích nghi của cá thể đó với mức thích nghi của các cá thể đứng trước nó

- Sinh một số ngẫu nhiên n trong khoảng từ 0 đến tổng mức thích nghi

- Cá thể đầu tiên trong quần thể có tổng tích luỹ lớn hơn hoặc bằng n sẽ được chọn

Một khi được chọn, một bản sao của ứng cử viên sẽ được sao chép vào một quần thể tạm thời để thực hiện các toán tử đột biến và lai ghép tiếp theo Theo cách này, những chuỗi có độ thích nghi càng lớn sẽ có xác suất được sao chép càng lớn

và do đó, đóng góp càng nhiều con cháu cho thế hệ tiếp theo

Trang 18

Hình 3.1 Vòng tròn Rulet của quần thể trong bảng 3.1

Với quần thể gồm 4 cá thể từ trong bảng 1, chúng ta có vòng tròn Rulet như

hình 1 Mỗi lần quay vòng tròn Rulet ta có một ứng cử viên cho việc tái tạo Chẳng

hạn, với số ngẫu nhiên là n = 400 thì chuỗi thứ hai trong bảng 1 được chọn

3.4.2 Lai ghép

Lai ghép là toán tử nhằm tạo ra các cá thể mới từ hai cá thể cha và mẹ

theo một xác suất lai ghép Plg, với hy vọng cá thể con sẽ được thừa hưởng những

điểm tốt của cha và mẹ nó

- Với cách biểu diễn lời giải tiềm tàng theo chuỗi nhị phân

Trang 19

Theo cách biểu diễn này, toán tử lai ghép thường được dùng là toán tử lai ghép đơn giản

Lai ghép đơn giản:

Quá trình lai ghép đơn giản diễn ra như sau:

- Hai chuỗi trong quần thể được lựa chọn sẽ đóng vai trò là cha và mẹ

- Sinh một số ngẫu nhiên k trong khoảng [1, l - 1], (l độ dài của chuỗi) và

sẽ là điểm lai ghép Hai con được sinh ra bằng cách:

Con 1: Phần đầu của cha và phần cuối của mẹ

Con 2: Phần đầu của mẹ và phần cuối của cha

- Với cách biểu diễn lời giải tiềm tàng theo giá trị

+ Lai ghép đơn giản:

Giả sử xti = (v1 v2 vk vn) và xtj = (w1 w2 wk wn) được thực hiện lai ghép tại vị trí thứ k Kết quả hai con là:

Trang 20

) (

) /(

) (

) /(

) (

) /(

) (

) (

) (

) (

) (

k k

k x

k

k k

k x

k

k k

k x

k

k k

k x

k

w v

v u

v w

v l

v w

v u

w v

w l

j i i j

t

Toán tử này dùng tham số hệ thống tĩnh đơn giản a (a  [0, 1]) để đảm bảo tính khép kín

3.4.3 Đột biến

- Với cách biểu diễn lời giải tiềm tàng theo chuỗi nhị phân

Với cách biểu diễn này, người ta thường dùng toán tử đột biến cổ điển là toán tử đột biến ngẫu nhiên

Đột biến ngẫu nhiên:

Toán tử này thay đổi một hoặc nhiều Gene với xác suất bằng tỷ lệ đột biến

Ví dụ:

NST A = (11010|01110100101)

Giả sử thực hiện đột biến ở Gene thứ 5 ta có:

Trang 21

NST A’ = (11011|01110100101)

- Với cách biểu diễn lời giải tiềm tàng theo giá trị

Theo cách biểu diễn này, chúng ta có thể sử dụng một số toán tử đột biến cải tiến hơn so với toán tử đột biến cổ điển

+ Đột biến đều:

Được định nghĩa tương tự như đột biến cổ điển Giả sử xt

i = (v1 v2 … vk vn) là một nhiễm sắc thể thì mỗi phần tử vk có cơ hội như nhau để thực hiện

xử lý đột biến Kết quả sau khi đột biến ta thu được vectơ (v1 v2 vk ’

vn), 1 

k  n và vk ’

là một giá trị ngẫu nhiên trong miền tham số tương ứng

+ Đột biến không đều:

Giả sử xti = (v1 v2 vk vn) là một nhiễm sắc thể và phần tử vk được chọn cho đột biến này Miền xác định của vk là [lk, uk], kết quả sau đột biến ta thu được vector xit+1 = (v1 v2 vk ’

)

,

( y t

 = y+( 1- r(1 - t/T))b

trong đó, r là số ngẫu nhiên thuộc [0,1], T là số lần lặp tối đa, b là tham số

hệ thống xác định tính không đông đều

Ba toán tử tái tạo, lai ghép, đột biến được tiến hành trong một vòng lặp Quần thể mới bao gồm các cá thể: bị đột biến sau khi lai ghép, lai ghép nhưng không đột biến, không lai ghép mà cũng không đột biến mà chỉ đơn giản là sao chéo lại

Như vậy, trong giải thuật di truyền ta cần các định 4 thông số sau:

- Lực lượng quần thể pop_size

Trang 22

- Xác suất đột biến Pđb

- Xác suất lai ghép Plg

- Độ gối của quần thể G

Thông số G do tác giả De Jong đưa vào giải thuật di truyền đơn giản năm

1975, cho phép quần thể mới chứa một phần quần thể cũ G thuộc [0, 1], với ý nghĩa sau:

- G = 0: Quần thể cũ bị diệt vong Quần thể mới chỉ bao gồm các cá thể được sinh ra bởi ba toán tử trên

- 0 < G < 1: nG cá thể được chọn tiếp tục di truyền Con cháu được sinh ra qua hoạt động này sẽ được xếp một cách ngẫu nhiên vào quần thể hiện tại

3.5 Giải thuật di truyền cải tiến

Phần trước ta đã đề cập đến giải thuật di truyền đơn giản Trong phần này, dựa trên nền tảng đó, các sơ đồ lựa chọn, các toán tử cao cấp đã được đưa ra nhằm cải tiến các hoạt động của giải thuật di truyền đối với những bài toán phức tạp

3.5.1 Các sơ đồ lựa chọn

Trong giải thuật di truyền đơn giản, việc lựa chọn các cá thể tốt được thực hiện dựa vào vòng tròn định hướng Rulet Sơ đồ này có nhược điểm là có thể xảy ra trường hợp cá thể tốt nhất không được lựa chọn Để khắc phục nhược điểm này người ta đã đưa ra một số sơ đồ thay thế vòng tròn Rulet như sau:

a Ưu tiên cá thể tốt

Mục đích là sao chép cá thể tốt nhất của mỗi thế hệ vào thế hệ tiếp theo Việc làm này tăng tốc độ chiếm ưu thế của các cá thể siêu khoẻ và do đó tăng tốc độ tìm kiếm, song cũng chỉ là sự tìm kiếm cục bộ Tuy nhiên, đây cũng là chiến lược có cải tiến của giải thuật di truyền

b Lấy mẫu tiền định

Theo cách này, xác suất lựa chọn được tính như trong giải thuật di truyền đơn giản, ps = fi / fj Sau đó, số bản sao chép của chuỗi Ai được xác định tiền

Ngày đăng: 01/08/2021, 10:36

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Văn Hiệu, Giải thuật di truyền và một số ứng dụng, Luận văn tốt nghiệp, Viện Đại học mở Hà nội, 2000 Sách, tạp chí
Tiêu đề: Giải thuật di truyền và một số ứng dụng
[2] Nguyễn Đình Thúc, Trí tuệ nhân tạo-Lập trình tiến hóa, NXB Giáo Dục, 2001 Sách, tạp chí
Tiêu đề: Trí tuệ nhân tạo-Lập trình tiến hóa
Nhà XB: NXB Giáo Dục
[3] Hoàng Hữu Việt, Lập trình C# cho ứng dụng cơ sở dữ liệu, Nhà xuất bản Đại học Vinh, 2015 Sách, tạp chí
Tiêu đề: Lập trình C# cho ứng dụng cơ sở dữ liệu
Nhà XB: Nhà xuất bản Đại học Vinh
[4] Zbigniew Michalewicz, Genetic Algorithms + Data Structures = Evolution Programs, Springer Verlag, 1992 Sách, tạp chí
Tiêu đề: Genetic Algorithms + Data Structures = Evolution Programs
[5] Freisleben, P. Mers, New genetic local search operator for the travelling, University of Siegen, 1996 Sách, tạp chí
Tiêu đề: New genetic local search operator for the travelling
[6] David E.Goldberg, Genetic Algorimths in search Optimization and Machine learning Khác
[7] David A.Coley, An Instroduction to Genetic Algorithm Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w