Ví dụ minh họa

Một phần của tài liệu Một số phương pháp Heuristic giải bài toán thiết kế mạng viễn thông (Trang 26 - 71)

Trong thực tế GA đã đƣợc dùng để giải quyết những vấn đề phức tạp, tuy nhiên để trình bày về lý thuyết mới, ở đây một ví dụ rất đơn giản, tìm đáp số cho phƣơng trình X2 = 64. Dĩ nhiên bài toán này quá đơn giản không cần đến GA, nhƣng chúng ta sẽ xét đến nhiều ví dụ phức tạp hơn.

Bài toán: Tìm đáp số cho phƣơng trình X2

= 64. (*)

(tức là trị số của X để X2 = 64)

Bước 1: Quy định số lƣợng các đáp số và ấn định ký hiệu cho từng đáp số. Giả sử chúng ta không biết đáp số của bài toán. Nên sẽ chọn 4 số trong những đáp số có thể có cho bài toán. Đồng thời chúng ta chọn mô hình để tƣợng trƣng cho các số phải xét (dùng hệ thống nhị phân để ký hiệu các đáp số).

H/t thập phân 1 2 3 4 5 6 7 8 H/t nhị phân 0001 0010 0011 0100 0101 0110 0111 1000

Bước 2: Chỉ định số đáp số và ký hiệu các đáp số cho bài toán. Sau đây 4 số có thể là đáp số cho bài toán

Thứ tự Nhị phân Thập phân

1 00100 4

2 10101 21

3 01010 10

4 11000 24

Bước 3: Ấn định hàm số thích nghi (fitness function) và tính hệ số thích nghi (fitness) cho từng đáp số. chúng ta có thể chọn bất cứ hệ thức hay hàm số nào để biểu diễn sự thích nghi của các đáp số của bài toán. Kinh nghiệm cho thấy hàm số thích nghi phải có liên hệ đến vấn đề. Bƣớc thứ ba này tƣơng đối phức tạp và khó thực hiện nhất, vì nếu chọn hàm số thích nghi không đúng, kết quả sẽ không có hiệu lực. Trong ví dụ này, chọn hàm số thích nghi bằng 100 – (X2 – 64) và quy định đáp số nào có hệ thích nghi bằng 1000 hay gần 1000 nhất sẽ là đáp số của bài toán.

Trong bảng đây chúng ta sẽ ghi lại chi tiết có trong bảng trên và thêm hệ số thích nghi cho mỗi đáp số:

Thứ tự (1) Nhị phân (2) Thập phân (3) Bình phƣơng của hệ số ở cột (3) trừ 64 Thích nghi 1 00100 4 -48 952 2 10101 21 377 623 3 01010 10 36 964 4 11000 24 312 488

Bước 4: Biến hóa và đáp số để tìm các đáp số có hệ số thích nghi tối ƣu. Nhìn vào bảng dƣới ta nhận thấy đáp số có hệ số thích nghi cao nhất vẫn còn cách xa 1000. Do đó, phải tìm ra những đáp số mới (để có hệ số này ngày càng lớn và bằng hay gần với 1000) bằng cách biến hóa các đáp số cũ.

Vấn đề đặt ra là: Trong 4 số (4, 21, 10, 24) trên, số nào sẽ đƣợc chọn để biến hóa. Nguyên tắc của GA đã trình bày trên là số nào đã đƣợc chọn để biến hóa hơn các số có hệ số thích nghi thấp. Điều này cũng giống với thực tế, chỉ những sinh vật nào thích nghi với hoàn cảnh hơn sẽ tồn tại lâu hơn và dĩ nhiên sẽ có cơ hội tạo sinh và biến hóa nhiều hơn.

Nhìn vào bảng dƣới ta thấy theo thứ tự 10 và 4 có hệ số thích nghi cao hơn do đó chúng sẽ đƣợc chọn để tạo sinh và biến hóa, đồng thời số 21 và 24 có hệ số thích nghi thấp nhất sẽ bị loại (để giữ tổng số các đáp số là 4). Trong ví dụ này chúng ta lai ghép hai số 4 và 10 tại điểm giữa hàng thứ hai và thứ ba, nhƣ trình bày dƣới đây.

) 4 ( 00 001 01000(hay 8) ) 10 ( 10 010 01010 (hay 6)

Bước 5: Tính hệ số thích nghi cho các đáp số vừa có đƣợc kết quả ghi trong bảng dƣới đây.

Thứ tự (1) Nhị phân (2) Thập phân (3) Bình phƣơng của hệ

số ở cột (3) trừ 64 Thích nghi

1 00100 4 -48 952

2 10101 21 36 964

3 01010 10 0 1000

4 11000 24 -28 968

Bước 6: Trƣớc khi trở lại bƣớc 4 và bƣớc 5 nhƣ trình bày trên, chúng ta hãy xét các chi tiết trong bảng trên. May mắn chúng ta có đƣợc đáp số ở hàng thứ 3 là số 8 với hệ số thích nghi bằng 1000. Theo quy định ghi trong bƣớc 3, đây là đáp số

có hệ số thích nghi cao nhất, số này là 01000 (nhị phân) hay 8 (thập phân). Do đó chúng ta không cần trở lại bƣớc 4 và bƣớc 5, chúng ta sẽ báo cáo kết quả là 8.

Bước 7: Kết quả với X = 8, chúng ta sẽ có X2 = 82 =64

1.3.4. C c p n t ức biến đổi của giải thuật

Ba phƣơng pháp sau đây đã đƣợc dùng để biến hóa các giải pháp (adsbygoogle = window.adsbygoogle || []).push({});

* Tạo sinh (reproduction) * Lai ghép ( cross over) * Đột biến (mutation)

a) Tạo sinh: Tạo sinh là dùng những thành phần của thế hệ trƣớc để tạo thêm thành phần của thế hệ sau. Vậy thành phần nào sẽ đƣợc chọn cho việc tạo sinh? Cũng giống nhƣ trong thiên nhiên, những thành phần nào có hệ số thích nghi lớn hơn sẽ có cơ hội đƣợc chọn để thực hiện việc tạo sinh.

b) Lai ghép: Các ví dụ dƣới đây thể hiện các hình thức của lai ghép. Trƣớc khi lai ghép

1001110 (A)

0100011 (B)

Sau khi lai ghép tại vị trí giữa thứ 3 và thứ 4, chúng ta sẽ có

(A)001110 010110(B‟)

(B)01010(10) 1000011 (A‟)

Trƣớc khi lai ghép

1001110 (A)

0100011 (B)

Sau khi lai ghép tại vị trí giữa số thứ 4 và thứ 5, chúng ta có:

(A)1001110 0101110(B‟‟)

Trƣớc khi lai ghép

1001110 (A)

0100011 (B)

Sau khi lai ghép tại vị trí giữa số thứ 2 và 3, giữa số thứ 5 và thứ 6

(A)101110 011110(B‟‟)

(B)010011 100111 (A‟‟)

c) Đột biến: Việc thay đổi trị số của một số trong dãy số, thí dụ 0 thành 1 hoặc thành 0, cho trƣờng hợp dùng dãy số theo hệ nhị phân. So với lai ghép, phƣơng thức biến hóa dựa trên đột biến rất ít xảy ra. Theo kết quả nghiên cứu của Kenneth De Jong thì tỉ lệ lai ghép trung bình là 0.6 trong khi tỉ lệ đột biến là 0.001, phần còn lại 0.399 là tạo sinh.

Lai ghép dùng lại những tin tức có sẵn trong các thành phần của thế hệ trƣớc và truyền lại cho thế hệ sau, trong khi đột biến tạo ra những tin tức hoàn toàn mới.

Ví dụ: 110011 sẽ đƣợc biến đổi thành 110010, trong đó số 1 ở hàng cuối (tính từ trái) đã đƣợc đổi thành 0.

1.3.5. C c n uyên tắc c bản của giải thuật

- GA là phƣơng tiện để giải quyết vấn đề. GA bắt chƣớc những phƣơng thức mà con ngƣời, hay sinh vật nói chung, đã dùng để tồn tại và phát triển, trong những điều kiện do môi trƣờng quy định.

- GA giải quyết vấn đề bằng cách nhìn tổng quát tất cả các giải pháp hiện hữu. Trƣớc tiên xét đến một số những giải pháp rồi biến hóa để cải thiện phẩm chất của chúng, dựa trên hệ số thích nghi của từng giải pháp

- GA giải quyết vấn đề bằng cách dùng rất nhiều phép tính mà trƣớc đây không thể thực hiện đƣợc bằng trí óc và giấy bút, gần đây mới thực hiện với máy tính và chƣơng trình tin học thích hợp. Trƣớc tiên phải tạo mô hình để tƣợng trƣng

các giải pháp bằng ký hiệu, tức là dãy những số thuộc hệ nhị phân hay thập phân, hay chữ và số. Kế đó phải chọn hàm số thích nghi để tính trị số thích nghi cho từng giải pháp.

- Chọn một số giải pháp tiêu biểu, rồi áp dụng những phƣơng thức biến hóa để tìm ra giải pháp có trị số thích nghi tốt hơn. Nếu chƣa đạt đƣợc mục tiêu đề ra thì tiếp tục việc biến hóa trên các giải pháp vừa có, cho đến khi đạt đƣợc mục tiêu hay cho đến khi nào thời gian cho phép chấm dứt.

- Nhƣ vậy GA duyệt xét toàn bộ các giải pháp của vấn đề, thay vì chỉ để ý đến giải đáp chính xác và duy nhất nhƣ toán học giải tích đã dùng trƣớc đây.

- GA dùng những định luật về xác suất để tìm ra giải pháp mới. Nhƣng xác suất trong trƣờng hợp này đƣợc hƣớng dẫn bởi hàm số thích nghi thay vì xác suất không định hƣớng nhƣ trƣờng hợp xác suất Monte Carlo. (adsbygoogle = window.adsbygoogle || []).push({});

- Những thành phần đƣợc chọn để biến hóa và tạo ra giải pháp mới phải có trị số thích nghi cao hơn, các thành phần có trị số thích nghi nhỏ sẽ bị loại bỏ.

- GA cơ bản do JH. Holland đề xuất có cơ sở toán học vững vàng, đã đƣợc chứng minh bởi chính tác giả hay các nhà nghiên cứu khác, nhƣ Kenneth De Jong. Sau này có những biến thể của GA, tuy thành công trong nhiều trƣờng hợp đặc biệt nhƣng chƣa đƣợc kiểm chứng một cách khoa học.

- GA là kỹ thuật rất thích nghi cho việc việc tìm kiếm giải pháp tối ƣu khi chúng ta có quá nhiều giải pháp nhƣng không có giá trị, hay vấn đề quá phức tạp không biết cách nào để giải quyết. Tìm kiếm, hoạch định chƣơng trình hoạt động, phân loại cũng là những lĩnh vực ứng dụng quan trọng của GA.

- Mặc dù đã thành công trong một số trƣờng hợp, GA vẫn còn một lý thuyết tƣơng đối mới mẻ. GA cũng có những khuyết điểm nhƣ những kỹ thuật của trí tuệ nhân tạo nhƣ Hệ chuyên gia, Mạng nơron nhân tạo, là lôgíc mờ. Riêng mỗi một kỹ thuật trên đều có khả năng giải quyết một số vấn đề, tuy nhiên nếu kết hợp phức tạp hơn. Đây chính là một trong những lĩnh vực đang khai phá bởi một số nhà nghiên cứu. Một số thành công sơ khai đã đƣợc báo cáo mở đầu cho những triển vọng đầy hứa hẹn trong tƣơng lai.

1.3.6. Giả bà to n tố u bằng giải thuật di truyền

* Đặt vấn đề

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 mọi lĩnh vực của tự nhiên và xã hội.

Cho đến nay, tuy đã có khá nhiều phƣơng pháp giải quyết bài toán tối ƣu hàm số, nhƣng nhìn chung các phƣơng pháp chỉ dừng lại ở những lớp bài toán với thông tin rõ ràng hoặc với các thông tin bổ trợ khác. Do đó, việc tìm một phƣơng pháp mới giải bài toán tối ƣu hàm nhiều biến tổng quát là cần thiết và có ý nghĩa thực tế.

Nhƣ đã trình bày ở các chƣơng trƣớc, ta nhận thấy hoàn toàn có thể áp dụng Thuật giải di truyền để giải bài toán tối ƣu hàm nhiều biến tổng quát.

Trong chƣơng này, chúng tôi sẽ đề cập chi tiết việc áp dụng Thuật giải di truyền cho bài toán tối ƣu một hàm f có n biến, f (x1, x2… xn). Biết rằng mỗi biến xi có thể lấy các giá trị từ miền Di = [ ai, bi] là tập hợp con của tập các số thực R và yêu cầu độ chính xác là k chữ số thập phân đối với các giá trị biến.

* Biểu diễn các biến nhớ các véc tơ nhị phân

Bƣớc đầu tiên trong Thuật giải di truyền là mã hóa, ánh xạ một xâu với chiều dài hữu hạn sang các tham biến của bài toán tối ƣu.

Tham biến x thuộc [Umin; Umax] sẽ đƣợc biểu diễn bởi chuối nhị phân có chiều dài L. L bit mã hóa x ứng với giá trị trong miền [0; 2L] sẽ đƣợc ánh xạ lên các giá trị thuộc miền xác định [Umin; Umax]. Theo cách này chúng ta có thể kiểm soát miền giá trị của các biến và tính chính xác của chúng. Tỷ lệ dãn của ánh xạ này đƣợc cho bởi:

Ta thấy giá trị x tƣơng ứng với mã string2 sẽ đƣợc xác định theo công thức.

Trong đó decimal (string2) biểu diễn giá trị thập phân của chuỗi nhị phân string2 g đƣợc xác định bởi công thức (1.6)

(1.6)

Ví dụ: decimal (0001) = 1; decimal (0011) = 3

Để mã hóa tập các biến, ta ghép nối mã các biến riêng lẻ lại với nhau. Mỗi mã tƣơng ứng với một chiều dài các bit riêng và các định một giá trị tƣơng ứng của nó nằm trong miền [Umin; Umax]

Mã hóa cho 10 biến đƣợc cho bởi

1111 1100 ... 0101 0001 10 9 2 1U ...U U U

Trong đó thành tố thứ nhất (4 bít đầu tiên) tƣơng ứng với biểu diễn của biến thứ nhất, thành tố cuối cùng (4 bit cuối cùng) biểu diễn biến cuối cùng.

* Toán tử chọn cá thể (select)

Toán tử chọn lọc là thao tác xử lý trong đó mỗi cá thể đƣợc bảo lƣu cho vòng tạo sinh tiếp sau tùy thuộc vào giá trị thích nghi của nói. Toán tử này là một phiên bản mô phỏng của quá trình chọn lọc tự nhiên. Giá trị thích nghi f(i) đƣợc xác định đối với mỗi cá thể trong quần thể. Giá trị này càng lớn thì cá thể đƣợc coi là hợp lý. Hàm thích nghi có thể hàm không liên tục, hàm dƣơng hay phi tuyến. Xử lý chọn lọc các cá thể cha mẹ đƣợc hình thành theo mô hình tái tạo quay trên vòng tròn (roulette weel). Vòng quay của chúng có kích thƣớc khác nhau ứng với những giá trị hợp lý của các cá thể. Kỹ thuật này đƣợc gọi là lựa chọn cha mẹ trên vòng tròn quay (roulette weel parent selection). Mỗi khi cần tạo ra một con cháu, sẽ thực hiện một lần quay trên vòng tròn trọng số nhằm sản sinh ra ứng cử viên cho một tái sản xuất.

Kỹ thuật này có thể thực hiện theo các bƣớc.

Bƣớc 1. Tính tổng giá trị thích nghi của tất cả thành viên quần thể và gọi nó là tổng thích nghi (total fitness).

Bƣớc 2. Phát sinh một số n là số ngẫu nhiên trong khoảng từ 0 đến tổng thích nghi. Bƣớc 3. Trả lại thành viên quần thể đầu tiên mà độ thích nghi của nó cộng với độ thích nghi của các thành viên quần thể trƣớc đấy lớn hơn hoặc bằng n.

Toán tử chọn lọc nhằm tìm ra những cá thể tồn tại nhất nhƣng nó không tạo ra những cá thể mới. Tuy vậy, trong tự nhiên, các con sẽ thừa hƣởng di truyền những đặc tính tốt từ cả hai: Cha và mẹ. Toán tử tác động trên các cá thể cha mẹ để tạo ra những mẹ đƣợc chọn lựa với xác suất lai ghép ký hiệu bởi Pcross. Xác suất này cho chúng ta số lƣợng Pcross * pop – size nhiễm sắc thể đƣợc dùng cho hoạt động lai ghép, ở đây pop – size là kích thƣớc của quần thể đƣợc lai tạo.

Với mỗi nhiễm sắc thể trong quần thể (adsbygoogle = window.adsbygoogle || []).push({});

* Phát sinh một số ngẫu nhiên r trong miền [ 0; 1] * Nếu r < Pcross, chọn nhiễm sắc thể đó để lai ghép

Sau đó, ta kết hợp các nhiễn sắc thể đƣợc chọn một cách ngẫu nhiên:

Mỗi cặp nhiễm sắc thể, chúng ta có thể phát sinh một số ngẫu nhiên pos từ miền [1; L] (L là tổng số bit trong nhiễm thể). Số pos báo hiệu vị trí của điểm lai ghép. Hai nhiễm sắc thể.

(b1b2 … bposbpos + 1 … bL) và (c1c2 … cposcpos + 1 … cl)

Đƣợc thay thế bởi các con cháu (b1b2 … bposcpos + 1 … cL) và (c1c2 … cposbpos + 1 … bL)

Nhƣ vậy xử lý này sản xuất ra hai chuỗi mới, mỗi chuỗi đều đƣợc thừa hƣởng những đặc tính lấy từ cha và mẹ của chúng. Chọn lựa cá thể và lai ghép cho phép Thuật giải di truyền sử dụng những thông tin đã có để tìm kiếm trực tiếp trên những vùng tốt hơn.

* Toán tử đột biến (mutation)

Các toán tử đột biến nhằm tạo ra những thông tin mới trong quần thể lai tạo tại các vị trí bit (gen) nào đó (quần thể đƣợc xem xét có pop – size cá thể, mỗi cá thể đƣợc biểu thị qua L bit /gen). Đột biến đƣợc áp dụng với xác suất pnu. Số lƣợng bit đột biến là pmu*L* pop – size bit. Mỗi bit có cơ hội đột biến nhƣ nhau và đƣợc thay đổi từ 0 thành 1 hay ngƣợc lại. Có thể xử lý theo cách sau:

- Phát sinh một số ngẫu nhiên r trong miền [ 0;1] - Nêu r<pmu, tiến hành đột biến tại bit đó.

Các thao tác xử lý này đƣợc áp dụng lặp lại cho tới khi các cá thể con cháu của chúng tăng cƣờng tới kích cỡ mong muốn của quần thể.

* Hàm thích nghi (Fitness)

+ Ánh xạ giá trị hàm mục tiêu sang giá trị thích nghi.

Vì hàm thích nghi phải nhận giá trị không âm, do đó cần phải xây dựng ánh xạ hàm mục tiêu sang hàm thích nghi thông qua một hoặc nhiều lần ánh xạ. Nếu bài toán tối ƣu là cực tiểu một hàm đánh giá g(x), việc chuyển từ hàm đánh giá sang hàm thích nghi để sử dụng với GA nhƣ sau:

{ á ườ á

Ở đây, Cmax là một tham số đầu vào. Ví dụ, có thể lấy Cmax là giá trị g lớn nhất trong quần thể hiện tại, hoặc lớn nhất sau k vòng lặp. Nói chung Cmax khác nhau tùy

Một phần của tài liệu Một số phương pháp Heuristic giải bài toán thiết kế mạng viễn thông (Trang 26 - 71)