Giải thuật di truyền

Một phần của tài liệu Mạng nơron nhân tạo và ứng dụng (Trang 29 - 45)

I.12.1. Giới thiệu chung

Các giải thuật di truyền (GAs – Genetic Algorithms) được phát triển dựa trên các quá trình quan sát được trong tiến hoá tự nhiên. Các nguyên lý cơ bản của giải thuật được tác giả Holland công bố lần đầu tiên vào năm 1962. Các nền tảng toán học của giải thuật được tác giả công bố trong cuốn sách “Sự thích nghi trong tự

nhiên và các hệ thống nhân tạo” xuất bản năm 1975. Ban đầu các giải thuật di truyền được sử dụng chính trong hai lĩnh vực: tối ưu hoá và học máy. Các ứng dụng tối ưu hoá sử dụng giải thuật di truyền bao gồm tối ưu hoá hàm, xử lý ảnh, bài toán

người bán hàng và điều khiển. Trong máy học giải thuật được sử dụng để học ngữ nghĩa của luật IF – THEN đơn giản trong môi trường tuỳ ý. Ngày nay giải thuật di truyền được áp dụng cho rất nhiều lĩnh vực từ khoa học đến kinh tế, xã hội.

Thực chất các giải thuật di truyền là các giải thuật tìm kiếm dựa trên các cơ chế của chọn lọc tự nhiên, di truyền học và tiến hoỏ. Chỳng kết hợp sự tồn tại của các cấu trúc chuỗi (nhiễm sắc thể - chromosome) khoẻ nhất và sự tráo đổi thông tin về cấu trúc giữa các chuỗi khoẻ một cách ngẫu nhiên để tạo ra một giải thuật có khả năng tìm kiếm tương tự như sự lựa chọn có chọn lọc trong tự nhiên. Trong mỗi thế hệ, một tập mới các sinh vật được tạo ra từ việc tráo đổi và đột biến ngẫu nhiên cỏc bớt của các cá thể khoẻ nhất từ tập cá thể đã tồn tại. Các giải thuật di truyền khỏc

các giải thuật tìm kiếm ngẫu nhiên ở chỗ chúng sử dụng lựa chọn ngẫu nhiên như một công cụ để chỉ đường khai thác các thông tin trong quá khứ để dự báo các điểm tìm kiếm mới với hy vọng cải thiện sự thể hiện của các cấu trúc chuỗi. Các giải thuật di truyền đã được chứng minh bằng lý thuyết và bán thực nghiệm là các giải

thuật tìm kiếm toàn cục mạnh và hiệu quả trong không gian phức tạp. Các giải thuật này tuy mạnh song việc thực thi của chúng trong máy tính rất đơn giản. Ngoài ra, việc 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 của các đạo hàm và các vấn đề khác. Để thấy rõ tính mạnh và hiệu quả của giải thuật di truyền chúng ta sẽ xem xét các giải thuật tìm kiếm truyền thống đã và đang được sử dụng trong nhiều ứng dụng.

I.12.2. So sánh giải thuật di truyền với các giải thuật tỡm kiếm khác

Các phương pháp tìm kiếm truyền thống gồm có ba loại phương pháp chính đó là các phương pháp đạo hàm (culculus-based methods), các phương pháp liệt kê

(enumerative) và các phương pháp tìm kiếm ngẫu nhiên (random walk).

a. Phương pháp đạo hàm

Các phương pháp đạo hàm đã được nghiên cứu rất kỹ. Chúng có thể được chia nhỏ thành hai lớp là lớp tìm kiếm trực tiếp và lớp tìm kiếm gián tiếp.

• Các phương pháp gián tiế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 không. Vì theo định nghĩa điểm cực trị là điểm tại đó độ dốc bằng không theo mọi hướng.

• Các phương pháp trực tiếp tìm kiếm cực trị bằng việc 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ìm kiếm theo hướng dốc nhất có thể.

Hàm một cực trị, phương pháp đạo hàm áp dụng tốt [11]

Cả hai phương pháp này đã được nghiên cứu rất kỹ và cải tiến liên tục, song chúng không thể vượt qua những hạn chế cố hữu của chúng là:

• Cả hai phương pháp đều mang tính cục bộ địa phương. Các cực trị mà chúng tìm thấy là các cực trị gần cạnh điểm hiện tại. Đối với hàm một cực trị như hình 16các phương pháp đạo hàm cho kết quả rất tốt. Song đối với các hàm đa cực trị như hình 17 nếu điểm xuất phát gần cực trị thấp sẽ bỏ qua cực trị toàn cục cao. Hơn nữa một khi đã được cực trị

thấp thủ tục tìm kiếm sẽ dừng ngay và không có cách nào tìm thấy cực trị toàn cục

Hàm nhiều cực trị, khó khăn khi áp dụng phương pháp đạo hàm [11].

• Các phương pháp đạo hàm phải 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, rất nhiều nhiễu và giả định về sự tồn tại của đạo hàm cũng không tồn tại như hình 18 điều này đã hạn chế khả năng ứng dụng của các phương pháp đạo hàm cho rất nhiều ứng dụng thực tế.

Hàm không phù hợp với các phương pháp truyền thống.

0 f(x)

b. Phương pháp liệt kê

Ý tưởng của các phương pháp liệt kê rất đơn giản như sau: trong không gian tìm kiếm hữu hạn giải thuật tìm kiếm các giá trị của hàm mục tiêu tại tất cả các điểm trong không gian mỗi lần một điểm. Điều đầu tiên chúng ta dễ nhận thấy là chúng không hiệu quả. Thậm chí đối với các sơ đồ được liệt kê tổ chức tốt như lập

trình động (dynamic programming) cũng không thể giải được các bài toán có kích

thước vừa trở lên vì độ phức tạp tính toán quá lớn.

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

Các sơ đồ tìm kiếm ngẫu nhiên là tìm kiếm và giữ lại điểm tốt nhất được phát triển nhằm mục đích khắc phục các thiếu sót của các phương pháp đạo hàm và phương pháp liệt kê. Song cũng như các phương pháp liệt kê chúng không hiệu quả và có thể nhận thấy chúng cũng không tốt hơn các phương pháp liệt kê.

Với các phân tích ở trên chúng ta nhận thấy các phương pháp truyền thống nói chung là cục bộ và không hiệu quả. Điều này không có nghĩa là chúng vô dụng. Rất nhiều hệ lai giữa các phương pháp kể trên đã được áp dụng thành công trong rất nhiều ứng dụng thực tế.

d. Ưu điểm của giải thuật di truyền

Giải thuật di truyền khỏc cỏc phương pháp truyền thống ở bốn điểm cơ bản: • Các giải thuật di truyền làm việc với mã của tập thông số chứ không (adsbygoogle = window.adsbygoogle || []).push({});

làm việc với các giá trị của các thông số.

• Các giải thuật di truyền tìm kiếm từ một quần thể (population) các điểm chứ không phải từ một điểm.

• Các giải thuật di truyền chỉ sử dụng thông tin của hàm mục tiêu chứ không dùng bất cứ thông tin nào khác.

• Các giải thuật di truyền sử dụng các luật chuyển đổi (transition rules) mang tính xác suất (probabilistic) chứ không phải là các luật chuyển đổi mang tính tiền định (deterministic rules).

Giải thuật di truyền yêu cầu các thông số của bài toán tìm kiếm phải được mó

hoỏ thành một chuỗi hữu hạn các ký tự trên một tập hữu hạn các ký tự. Chuỗi này tương tự như các chuỗi gen của các cơ thể sinh vật. Có rất nhiều cỏch mó hoỏ tập thông số. Một cách đơn giản là chúng ta có thể mó hoỏ thành các chuỗi bit trên tập ký tự {0, 1}. Mỗi một chuỗi đại diện cho một điểm tìm kiếm trong không gian. Giải thuật di truyền xuất phát với một quần thể các chuỗi được khởi tạo một cách ngẫu

nhiên sau đó sẽ sản sinh các quần thể tiếp theo thông qua việc sử dụng lựa chọn ngẫu nhiên như một công cụ. Nhờ đó giải thuật di truyền tìm kiếm trên nhiều điểm song song có khả năng leo lên nhiều cực trị cùng một lúc. Thông qua các toán tử của mình, giải thuật trao đổi thông tin giữa các cực trị với nhau, từ đó làm giảm

thiểu khả năng giải thuật kết thúc các cực trị địa phương và bỏ qua mất cực trị toàn cục. Điều này giải thích vì sao giải thuật di truyền mang tính toàn cục.

I.13. Giải thuật di truyền đơn giản

Phần tử cơ bản được xử lý bởi giải thuật di truyền là những chuỗi bit được tạo ra bởi việc cắt dán các chuỗi bít con. Mỗi chuỗi bít đại diện cho một tập các thông số trong không gian tìm kiếm. Do đó mỗi chuỗi bit có thể là một lời giải của bài toán tối ưu hoá. Mỗi chuỗi bit sau đó được giải mã để tính lại tập thông số và qua đó tính được giá trị của hàm mục tiêu tại từng điểm riêng biệt trong không gian tìm kiếm. Giá trị của hàm mục tiêu này, tuỳ từng bài toán là cực tiểu hay cực đại, sau đó được biến đổi thành giá trị sức khoẻ cho từng chuỗi. Quần thể chuỗi ban đầu được khởi động một cách ngẫu nhiên sau đó tiến hoá từ thế hệ này sang thế hệ khác, song tổng số chuỗi trong mỗi quần thể được giữ nguyên. Giải thuật di truyền đơn giản chỉ sử dụng ba toán tử là:

• Tái tạo (reproduction) • Tạp lai (cross-over) • Đột biến (mutation)

I.13.1. Tái tạo (reproduction)

Tái tạo là quá trình trong đó các chuỗi được sao chép lại theo giá trị của hàm mục tiêu. Các nhà sinh vật học gọi hàm này là hàm sức khoẻ (fitness function)

chúng ta có thể coi hàm này như là độ đo của lợi tức, độ tốt,.... mà chúng ta cần cực đại hoá. Việc sao chép các chuỗi theo giá trị sức khoẻ của chuỗi nghĩa là những chuỗi với giá trị hàm mục tiêu lớn 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 chính là một phiên bản nhân tạo của việc lựa chọn tự nhiên theo học thuyết tiến hoá Darwin. Trong các quần thể tự nhiên, sức khoẻ được xác định bởi khả năng sống sót của các cá thể chống lại những trở ngại trong quá trình trưởng thành. Trong giải thuật di truyền giá trị của

hàm mục tiêu là trọng tài quyết định sự tồn tại hay diệt vong của chuỗi.

ii. Các cá thể trong quần thể:

STT Chuỗi Sức khoẻ Tỷ lệ % Tổng chạy

1 01101 169 14.4 169

2 11000 576 49.2 745

3 01000 64 5.5 809

4 10011 361 30.9 1170

Tổng 1170 100.0

Toán tử tái tạo có thể được thực hiện theo nhiều cỏch. Cỏch đơn giản và hiệu

quả nhất là bằng vòng tròn thiên vị Rulet (biased roulette wheel), ở đây mỗi chuỗi trong quần thể chiếm một khe có độ rộng tỷ lệ với sức khoẻ của chuỗi. Độ rộng của

khe được tính theo tỷ lệ phần trăm sức khỏe của chuỗi với tổng sức khoẻ của toàn quần thể là 100%. Ví dụ với quần thể gồm bốn cá thể cho theo bảng 2 chúng ta có vòng tròn Rulet như hình 19. 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.

Vòng tròn Rulet.

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

• Đánh số các cá thể trong quần thể. Tính tổng sức khoẻ của toàn quần thể (sum_fitness) và ứng với mỗi cá thể tính tổng chạy (running_total) bằng tổng sức khoẻ của cá thể đó với sức khoẻ của các cá thể đứng phía trước.

• Sinh một số ngẫu nhiên n trong khoảng từ 0 đến tổng sức khoẻ sum_fitness.

• Cá thể đầu tiên trong quần thể có tổng chạy lớn hơn hoặc bằng n sẽ được chọn. (adsbygoogle = window.adsbygoogle || []).push({});

Ví dụ với số ngẫu nhiên n = 654 thì chuỗi thứ 2 theo bảng trên sẽ được chọn. Một khi được chọn, một bản sao chuỗi 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 toán tử tạp lai tiếp theo. Bằng cách này những chuỗi có sức khoẻ càng lớn 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.

I.13.2. Tạp lai (cross-over)

Toán tử tái tạo hướng sự tìm kiếm về hướng các cá thể tốt nhất (khoẻ nhất)

nhưng không tạo ra các cá thể mới. Trong tự nhiên mỗi cá thể con đều có cha mẹ và thừa hưởng gene của cả hai. Toán tử hoạt động trên gene của cha mẹ chính là toán

tử tạp lai và xảy ra theo với xác suất pc. Quá trình tạp lại diễn ra theo hai giai đoạn: • Hai chuỗi trong quần thể tạm thời được chọn ghép đôi một cách ngẫu

nhiên. 1 14.4% 2 49.2% 3 5.5% 4 30.9

• Sinh một số ngẫu nhiên k trong khoảng [1, L -1] với L là độ dài của chuỗi. Hai chuỗi mới được tạo ra bằng việc sao chép các ký tự 1 đến k và tráo đổi các ký tự từ k+1 đến L.

Ví dụ: Chỳng ta có hai chuỗi bố mẹ là

Hai chuỗi mới được sinh ra là: A1’ = 0 1 1 0 0

A2’ = 1 1 0 0 1

I.13.3. Đột biến (mutation)

Mặc dù toán tử tái tạo và tạp lai tạo ra các chuỗi mới song chỳng khụng đưa vào quần thể những thông tin mới ở mức bít (gene). Toán tử đột biến được đưa vào và áp dụng cho các bit với một xác suất nhỏ pm. Toán tử đột biến biến đổi một cách ngẫu nhiên những bit được chọn trong một chuỗi. Xác suất đột biến nói chung là rất nhỏ vì thực tế toán tử đột biến là toán tử tìm kiếm ngẫu nhiên. Với xác suất pm lớn

giải thuật di truyền trở thành giải thuật tìm kiếm ngẫu nhiên.

Ba toán tử này được tiến hành trong một vòng lặp cho đến khi các chuỗi con chiếm toàn bộ quần thể mới. Quần thể mới bao gồm các cá thể của ba loại: Bị đột biến sau khi tạp lai; tạp lai nhưng không bị đột biến; không tạp lai cũng không bị đột biến mà chỉ đơn giản là sao chép lại.

Trong giải thuật di truyền đơn giản chúng ta cần xác định bốn thông số của giải thuật như sau:

• n = kích cỡ của quần thể hay số cá thể trong quần thể. • Pc = xác suất tạp lai.

• Pm = xác suất đột biến. • G = độ gối của các quần thể.

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 của quần thể cũ. Nó là một số trong khoảng [0, 1] với ý nghĩa như sau:

• G = 1 : tất cả các cá thể của quần thể cũ bị loại bỏ. Quần thể mới chỉ bao gồm các cá thể được sinh ra bởi ba toán tử đã được đề cập ở trên • 0 < G < 1: nG cá thể được chọn để tiếp tục chịu các hoạt động di

truyền. Con cháu được sinh ra qua các 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.

I.13.4. Ví dụ

Với mục đích làm sáng tỏ cách hoạt động của các toán tử trong giải thuật di

truyền chúng ta sẽ xem xét một ví dụ đơn giản đó là: tìm giá trị cực đại của hàm f(x)

A1 = 0 1 1 0 1

A2 = 1 1 0 0 0

= x2. Ở đây x nằm trong khoảng [0, 31]. Chúng ta mó hoỏ biến x thành chuỗi nhị phân với độ dài là 5. Như chuỗi “11000” tương xứng với giá trị nguyên của x là 24.

Hàm sức khoẻ đơn giản chính là hàm f(x).

Các thông số của giải thuật được chọn như sau: n = 4; Pc = 1; Pm = 0.001; G = 1; Quần thể ban đầu được khởi động một cách ngẫu nhiên.

Quá trình tái tạo được cho trong bảng 3. Chúng ta nhận thấy chuỗi 1 và 4 đóng góp một bản copy vào quần thể tạm thời; chuỗi 2 đóng góp 2 bản copy; chuỗi 3 không đóng góp bản nào.

Bảng 4 là thể hiện quá trình và kết quả của quá trình tạp lai. Với xác suất đột biến bé Pm =0.001 chúng ta hy vọng số bít bị đột biến là 4 cá thể x 5 bít x 0.001 = 0.02 bít. Điều này nghĩa là 0.02 bit bị đột biến trong mỗi thế hệ. Trong ví dụ này khụng bớt nào bị đột biến. (adsbygoogle = window.adsbygoogle || []).push({});

iii. Quá trình tái tạo:

STT Quần thể ban đầu x Sức khoẻ f(x)=x2 Tỷ lệ sức khoẻ f / Σf Số copy 1 01001 9 81 0.08 1 2 11000 24 576 0.55 2 3 00100 4 16 0.02 0 4 10011 19 361 0.35 1 Tổng 1034 Giá trị trung bình 259

iv. Quá trình tạp lai:

Quần thể tạm thời Chuỗi ghép đôi Vị trí tạp lai Quần thể mới X X2

01001 2 4 01000 8 64 11000 1 4 11001 25 625 11000 4 2 11011 27 729 10011 2 2 10000 16 256 Tổng 1674 Giá trị trung bình 419 Qua một thế hệ này theo hai bảng trên chúng ta nhận thấy giá trị sức khoẻ

Một phần của tài liệu Mạng nơron nhân tạo và ứng dụng (Trang 29 - 45)