Giải thuật tiến hóa

Một phần của tài liệu Thuật toán di truyền giải bài toán cây khung truyền thông tối ưu (Trang 39)

2.1.1 Lịch sử phát triển

Tính toán tiến hóa (Evolutionary Computation) là các kỹ thuật tìm kiếm theo xác suất có ý tưởng xuất phát từ nguyên lý “chọn lọc tự nhiên” trong học thuyết về sự tiến hóa của Darwin, và các kỹ thuật về gen. Các kỹ thuật này được áp dụng cho một quần thể bao gồm các cá thể nhân tạo, chúng chiến đấu trong cuộc đấu tranh sinh tồn trong đó các cá thể thích nghi nhất sẽ sống sót và cho phép sản sinh ra các cá thể mới.

Tính toán tiến hóa được giới thiệu vào đầu những năm 1960 trong “Các chiến lược tiến hóa” của I. Rechenberg. Vào giữa những năm 1970, Holland cùng các sinh viên và đồng sự đã đưa ra giải thuật di truyền (Genetic algorithms – GA) và giới thiệu nó trong cuốn sách “Sự thích nghi trong tự nhiên và trong các hệ thống nhân tạo”. Năm 1992, John Koza đã sử dụng giải thuật di truyền để giải quyết một số bài toán và gọi phương pháp này là “Lập trình di truyền – Genetic Programming”.

Tính toán tiến hóa là ngẫu nhiên, nhưng không phải là ngẫu nhiên một cách đơn thuần. Nó duyệt qua không gian tìm kiếm, sử dụng các thông tin đã có để đoán xem chỗ nào có thể sẽ có kết quả tốt hơn. Các giải thuật tiến hóa rất thích hợp cho các bài toán chưa có lời giải tối ưu. Đặc biệt, đối với các bài toán NP-khó, giải thuật di truyền là phương pháp giải quyết tốt nhất hiện tại được biết đến. Theo thời gian, giải thuật di truyền đã được sử dụng để giải rất nhiều bài toán như là bài toán người du lịch, sắp xếp thời khóa biểu,… Hình 2.1 cho ta thấy mối liên hệ giữa các kỹ thuật tìm kiếm

31

Hình 2.1. Mối liên hệ giữa các kỹ thuật tìm kiếm

Chiến lƣợc tiến hoá (Evolutionary Algorithm – EA) do T. Baeck, F.H.Hofmeister và H.P.Schwefel đề xuất. Thuật toán này dựa trên một số chiến lược ban đầu, tiến hoá để tạo ra những chiến lược mới phù hợp với môi trường thực tế một cách tốt nhất.

Giải thuật di truyền (Genetic Algorithm – GA) do John Holland đưa ra và được ông phát triển cùng với các đồng nghiệp và sinh viên vào những năm 1970. Cuốn sách "Sự thích nghi trong các hệ tự nhiên và nhân tạo” (Adaption in Natural and Artificial Systems) xuất bản năm 1975 đã tổng hợp các kết quả của quá trình nghiên cứu và phát triển đó.

Năm 1992, John Koza đã dùng GA để xây dựng các chương trình giải quyết một số bài toán và gọi phương pháp này là "Lập trình di truyền" (Genetic Programming).

2.1.2 Các phƣơng pháp khác

Có 3 dạng cơ bản của bài toán tìm kiếm, đó là:

i. Tìm kiếm trong dữ liệu đã được lưu trữ. Ở đây, chúng ta cần thực hiện việc tìm kiếm sao cho có hiệu quả để lấy được thông tin từ một cơ sở dữ liệu lớn, được lưu trữ trong bộ nhớ máy tính chẳng hạn.

Các kỹ thuật tìm kiếm

Dựa trên tính toán Ngẫu nhiên Đếm

Trực tiếp Gián tiếp

Fibonacci New ton Tham lam

Quy hoạch động Giải thuật tiến hóa

Giải thuật luyện thép

Chiến lược tiến hóa Lập trình tiến hóa Giải thuật di truyền (GA)

GA tuần tự GA song song

Song song tự động

(nhờ trình dịch)

Song song hạt thô Song song hạt tinh Song song toàn cục

32

ii. Tìm kiếm đường đi tới đích. Trong dạng này, chúng ta cần tìm kiếm một tập các bước đi hay tập các trạng thái để đi từ trạng thái khởi tạo ban đầu đến trạng thái đích đã được chỉ ra từ trước. Đây là hướng tiếp cận cơ bản trong ngành trí tuệ nhân tạo.

iii. Tìm kiếm phương án. Đây là dạng tổng quát nhất, ta cần có phương pháp tìm kiếm hiệu quả để tìm ra phương án cho một bài toán với không gian giả thuyết rộng.

Thuật toán tiến hoá nói chung và thuật giải di truyền nói riêng thường được áp dụng cho các bài toán ở dạng thứ 3 này, tức là những bài toán có dạng:

Không gian tìm kiếm rộng:

Nếu không gian giả thuyết cần tìm kiếm là rộng và phải xét nhiều khía cạnh thì EA sẽ được ưa thích vì EA có khả năng khắc phục những khía cạnh rộng lớn đó và dễ dàng kết hợp với tính toán song song nên hiệu quả đạt được là khá tốt.

Hàm đối tƣợng (hàm thích nghi) phức tạp:

Nếu bài toán có hàm đối tượng phức tạp ví dụ như không tuyến tính, không chuyển hoá được hay không liên tục thì nên sử dụng EAEA có thể làm việc với những trường hợp không có công thức gần đúng với hàm đối tượng và chất lượng của các phương án giả thuyết có thể tính toán bằng mô phỏng.

Các mẹo tìm kiếm không thực sự có hiệu quả:

EA thích hợp với những bài toán khó hiểu, đó là do việc tiến hoá mà không cần đến những kiến thức chuyên môn, định hướng đơn thuần chỉ bởi hàm thích nghi của không gian giả thuyết, và việc tính toán hàm thích nghi lại khá đơn giản. Tuy nhiên, nếu có mẹo tìm kiếm có hiệu quả nào đó thì ta cũng có thể sử dụng kết hợp với giải thuật tiến hoá.

Phƣơng án tốt nhất không nhất thiết phải quá chính xác:

EA luôn tìm ra một tập các phương án tốt nhưng nó không đảm bảo đó là phương án tốt nhất. Nó cũng không cung cấp thêm về mối liên hệ giữa phương án tìm được với giá trị tối ưu toàn cục.

33

Thời gian chạy không cố định:

Tuỳ thuộc số thế hệ mà ta xét và kích thước quần thể mà thời gian chạy EA

có thể thay đổi.

Ràng buộc phức tạp:

EA áp dụng tốt với những bài toán tối ưu thông dụng nhưng cũng có khả năng giải quyết những vấn đề khó với những ràng buộc phức tạp và có nhiều đối tượng

Những phƣơng án mạnh thực sự cần thiết:

Trong môi trường có nhiễu (có nhiều tối ưu cục bộ chẳng hạn) thì những phương án mạnh là thực sự cần thiết. EA luôn giữ lại những phương án như vậy và luôn tỏ ra thích nghi trong môi trường thay đổi.

Có một số phương pháp cũng có thể áp dụng để giải quyết những vấn đề như trên. Đó là một số phương pháp tìm kiếm mà nên lưu ý:

Mô phỏng tôi luyện

Sự khác biệt chính của phương pháp này so với phương pháp tìm kiếm cục bộ là các láng giềng được xem xét một cách ngẫu nhiên và thỉnh thoảng những láng giềng "xấu" lại được chấp nhận. Bằng cách chấp nhận những phương án "xấu" thì những giá trị tối ưu cục bộ được bỏ qua để đạt đến những giá trị tối ưu toàn cục. Qua thời gian, xác suất lựa chọn những phương án "xấu" có thể giảm xuống bằng 0. Xác suất này cũng liên quan đến sự khác nhau trong việc lựa chọn các phương án mới. Khả năng lấy một phương án "khá tồi" sẽ cao hơn khả năng lấy những phương án "quá tồi". Khi phương án cuối cùng không phải là phương án tốt nhất đã biết thì phương án tốt nhất đã biết sẽ được giữ lại.

Tìm kiếm Tabu

Tìm kiếm Tabu cũng là một kĩ thuật tối ưu hoá tổ hợp khác khá phổ biến. Ý tưởng về cơ bản thì giống như tìm kiếm cục bộ nhưng do không chấp nhận những điểm đã được thăm trước đó mà quá trình tìm kiếm không chỉ dừng lại ở những giá trị tối ưu cục bộ.

34

Các giải thụât mang tính sáng tạo

Phương pháp thường được biết đên nhất trong dạng này là tối ưu hoá bầy kiến, bắt nguồn từ những phản ứng có cấu trúc của những con kiến. Nó cho hiệu quả đặc biệt trong việc định tuyến. Một phương pháp mang tính sáng tạo khác là dựa trên hành vi của những con ong và thường được áp dụng trong những hệ thống miễn dịch.

Các phƣơng pháp đặc biệt khác

Rất nhiều các phương pháp khác tồn tại như giải thuật tham lam Greedy, leo đồi, tìm kiểm rải, phương pháp tái liên kết và một số giải thuật chỉ áp dụng cho những bài toán riêng biệt.

2.2 Các thành phần chính trong giải thuật di truyền 2.2.1 Nhiễm sắc thể 2.2.1 Nhiễm sắc thể

Các sinh vật sống đều cấu tạo từ các tế bào, và tất cả các tế bào này đều bao gồm một tập hợp các nhiếm sắc thể giống nhau. Các nhiễm sắc thể (NST) hay còn gọi là cá thể là một chuỗi các ADN, quy định đặc tính của cả cá thể. Mỗi NST bao gồm rất nhiều GEN, mỗi gen quy định một trạng thái nào đó.

Trong bài toán tối ưu, cá thể tương ứng với một lời giải tiềm tàng. Việc mã hóa và giải mã gen, biến đổi giữa kiểu gen và kiểu hình được quyết định bởi tính chất của bài toán.

2.2.2 Quần thể, thế hệ, tiến hóa

Quần thể (population) trong tự nhiên là một tập hợp các cá thể có một số điểm chung nào đó. Trong giải thuật di truyền thì quần thể là tập các phương án tại từng thưòi điểm nào đó.

Khái niệm quần thể gắn chặt với khái niệm thế hệ (generation). Một thế hệ được xác định bởi một quần thể chưa tham gia vào quá trình tiến hóa tiếp theo.

35

Quá trình tiến hóa (evolution) là việc áp dụng các toán tử di truyền lên các cá thể, chuyển quần thể từ thế hệ này sang thế hệ tiếp theo, với các cá thể đã bị biến đổi.

2.2.3 Hàm thích nghi

Trong tự nhiên, chỉ có những cá thể nào thích nghi được với môi trường thì mới tồn tại, không nó sẽ bị diệt vong. GA đưa ra khái niệm hàm thích nghi (hay còn gọi là hàm lượng giá- Fitness Function) để đánh giá một cá thể so với quần thể. Dựa vào giá trị hàm thích nghi của mỗi cá thể, thuật toán di truyền mới có thể chọn lựa được các cá thể tốt cho các thế hệ sau. Hàm thích nghi cũng là một tiêu chí đánh giá mức độ tiến hóa của quần thể.

2.2.4 Các toán tử di truyền

Các toán tử di truyền được coi là trung tâm trong thuật toán di truyền, mô hình đơn giản của GA đưa ra các loại toán tử: chọn lọc, lai ghép, đột biến

(mutation) và tái tạo quần thể mới.

Chọn lọc

Trong tự nhiên, quá trình chọn lọc đảm bảo những cá thể tốt có thể tồn tại và sinh sản. Các cá thể không thích nghi được với điều kiện sống thì dần mất đi. Dựa vào quá trình chọn lọc và đấu tranh sinh tồn trong tự nhiên, chọn lọc trong GA

chính là cách chọn lựa các cá thể có độ thích nghi tốt để đưa vào các thế hệ tiếp theo hoặc để mang đi lai ghép, với mục đích là sinh ra các cá thể mới tốt hơn. Tuy nhiên, quá trình chọn lọc mang rất nhiều yếu tố ngẫu nhiên. Có rất nhiều cách chọn lọc nhưng cuối cùng đều là để đạt được mục tiêu là các cá thể tốt sẽ có khả năng được chọn cao hơn nhằm tăng chất lượng của quần thể.

Lai ghép

Lai ghép trong tự nhiên là sự kết hợp các tính trạng của bố mẹ để sinh ra thế hệ con. Trong giải thuật di truyền, lai ghép được coi là một sự tổ hợp lại các tính chất (thành phần) trong hai lời giải cha mẹ nào đó để sinh ra lời giải mới với đặc

36

tính mong muốn là tốt hơn thế hệ cha mẹ. Đây là quá trình chủ yếu của giải thuật di truyền.

Đột biến

Đột biến là sự biến đổi tại một (hay một số) gen của NST ban đầu để tạo ra một NST mới. Đột biến có thể tạo ra một cá thể mới tốt hơn hoặc xấu hơn cá thể ban đầu. Tuy nhiên, trong giải thuật di truyền thì ta luôn muốn tạo ra những phép đột biến cho phép cải thiện lời giải qua từng thế hệ. Đột biến cũng mang tính chất ngẫu nhiên.

Tái tạo quần thể mới

Quá trình tái tạo quần thể mới là quá trình trong đó các NST của quần thể cha và các NST mới được sao chép đưa vào quần thể mới dựa trên cơ sở độ thích nghi của nó.

2.2.5 Các thông số khác của giải thuật di truyền Kích thƣớc quần thể Kích thƣớc quần thể

Kích thước quần thể không nên quá nhỏ hoặc quá lớn. Nếu quá nhỏ thì quá trình lai và đột biến thực hiện ít và chỉ trên một phần nhỏ của không gian tìm kiếm, còn lại sẽ là phần không được xét tới. Nhưng nếu kích thước quần thể quá lớn thì thuật toán chạy lâu, hiệu quả thấp mà còn chưa chắc thu được kết quả tốt hơn.

Kích thước quần thể cho biết có bao nhiêu cá thể trong một quần thể (trong một thế hệ). Tuy nhiên không phải khi nào kích thước càng lớn thì hiệu quả càng cao. Qua các nghiên cứu cũng như các thực nghiệm đã cho thấy kích thước quần thể không nên quá bé cũng như không quá lớn. Nếu quần thể có quá ít cá thể thì không gian tìm kiếm nhỏ nên thường chỉ đạt được các kết quả cục bộ. Như vậy sẽ dễ xảy ra trường hợp bỏ qua các lời giải tốt, các thế hệ sẽ thoái hóa dần theo quá trình. Nhưng quá nhiều cá thể cũng không tốt vì GA sẽ chạy chậm đi, ảnh hưởng đến hiệu quả của giải thuật. Các nghiên cứu cũng đã chỉ ra không có lợi khi tăng kích thước quần thể lên quá một giới hạn cho phép. Việc quyết định kích thước quần thể phụ thuộc khá lớn vào phương pháp mã hóa cá thể.

37

Xác suất lai ghép

Xác suất lai ghép là pc, chính là tỷ lệ số cá thể con trong quần thể mới được lai ghép từ các cá thể cha mẹ của quần thể hiện tại. Nếu xác suất lai ghép pc =100% thì tất cả các con sinh ra đều là do lai ghép từ các cá thể của quần thể hiện tại, còn nếu xác suất lai ghép pc =0% thì quần thể mới là sự sao chép chính xác quần thể cũ.

Xác suất đột biến

Xác suất đột biến cho biết các gen của nhiễm săc thể thay đổi thường xuyên như thế nào. Xác suất đột biến là pm, khả năng để mỗi gen của một NST bất kỳ bị đột biến là pm. Nếu pm = 100%, toàn bộ NST đều bị đột biến, nếu pm = 0%, không gen nào thay đổi. Toán tử đột biến có tác dụng ngăn ngừa giải thuật di truyền rơi vào tình trạng cực trị địa phương. Tuy nhiên nếu thực hiện đột biến với xác suất quá cao sẽ biến giải thuật di truyền thành giải thuật tìm kiếm ngẫu nhiên.

Điều kiện dừng của giải thuật

GA không phải là lặp lại vô tận, sinh sản liên tục, mà nó còn cần có điều kiện dừng để kết thúc giải thuật và chọn ra lời giải tốt nhất.

Kết thúc cưỡng bức: Ta sẽ thực hiện GA để sinh ra số thế hệ đúng bằng một số đã được cho trước. GA sẽ dừng khi đã tạo đến thế hệ cuối cùng. Sử dụng phương pháp cưỡng bức có thể gây ra lãng phí thời gian nếu như các thế hệ sau gần như không tốt lên. Tuy nhiên, cơ chế kiểm soát không phức tạp.

Kết thúc tự nhiên: Đến một thế hệ nào đó mà hàm thích nghi cho các con trong thế hệ đó không tốt hơn thì ta sẽ dừng giải thuật.

f(P(t+1) ) - f(P(t)) ≤ ε

Phương pháp kết thúc này có cơ chế kiểm soát phức tạp hơn nhưng không biết chính xác khi nào kết thúc giải thuật.

Tùy theo điều kiện của bài toán mà ta sẽ chọn một trong 02 điều kiện dừng của giải thuật.

38

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

Một giải thuật di truyền đơn giản có thể mô phỏng như sau:

1. [Khởi tạo quần thể] Sinh ngẫu nhiên một quần thể gồm n cá thể (là n lời giải cho bài toán).

2. [Thích nghi] Ước lượng độ thích nghi của mỗi cá thể x trong quần thể.

3. [Quần thể mới] Tạo quần thể mới bằng cách lặp lại các bước sau cho đến khi quần thể mới hoàn thành:

a. [Chọn lọc] Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích nghi của chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn).

b. [Lai ghép] Với một xác suất lai ghép được chọn, lai ghép hai cá thể bố mẹ để tạo ra một cá thể mới.

c. [Đột biến] Với một xác suất đột biến được chọn, biến đổi cá thể mới. d. [Chấp nhận] Thay con mới vào quần thể.

4. [Thay thế] Sử dụng quần thể mới cho quá trình tiếp theo của thuật toán.

5. [Kiểm tra điều kiện dừng] Nếu điều kiện dừng được thỏa mãn thì thuật toán

Một phần của tài liệu Thuật toán di truyền giải bài toán cây khung truyền thông tối ưu (Trang 39)

Tải bản đầy đủ (PDF)

(119 trang)