Lời nói đầu
Ngày nay con ngời làm việc với cờng độ và chất lợng cao hơn nhờ sự hỗ
trợ của khoa học kỹ thuật tiên tiến Đặc biệt với sự phát triển nhảy vọt của Công nghệ thông tin đã tác động sâu sắc đến mọi lĩnh vực của xã hội, những ứng dụng của Công nghệ thông tin vào đời sống đã đóng góp to lớn cho sự phát triển của nhân loại
Để giải quyết các vấn đề nhờ máy tính, chúng ta thờng phân tích thuật giải dựa vào các phơng thức sau đây:
1 Dựa trên các công thức toán học, những định luật khoa học 2 Dựa trên những ý kiến của các chuyên gia một lĩnh vực nào đó.
3 Dựa theo sự tiến hoá, bắt chớc lối sống thích nghi mà con ngời hay sinh
vật nói chung đã dùng để tồn tại và phát triển (tiếp cận và thử sai).
Phơng thức 1 thờng mang lại những đáp số rất chính xác (hay có thể nói là chính xác tuyệt đối) Tuy nhiên điểm yếu chính của nó là phải tìm ra công thức hay giả tởng những điều kiện hoạt động cho giống với thực tế Điều này không phải lúc nào cũng có thể thực hiện một cách dễ dàng, đôi khi còn không thể thực hiện đợc.
Trong hơn 20 năm qua, khoa học Trí tuệ nhân tạo đã đợc sử dụng để giúp con ngời giải quyết vấn đề Nguyên tắc cơ bản của phơng thức này là kết hợp kiến thức của các chuyên gia với chơng trình tin học để dùng máy vi tính thay ngời giải quyết vấn đề một cách khôn ngoan Sau này, Mạng nơron nhân tạo, Logic mờ, cùng với Giải thuật di truyền đợc nghiên cứu và áp dụng thành công trong việc giải quyết các trờng hợp phức tạp.
Trong phạm vi của đề tài, tôi xin trình bày về Giải thuật di truyền, trong đó đề cập đến những nguyên tắc cơ bản của GA, những giai đoạn cần thực hiện để giải quyết vấn đề bằng GA, những ứng dụng của GA và một chơng trình minh hoạ viết bằng ngôn ngữ lập trình Visual Basic 6.0 " Tìm cực trị của đa thức bậc n"
Tuy đã nghiên cứu, học hỏi rất nhiều nhng lý thuyết Giải thuật di truyền khá mới mẻ, tài liệu về lý thuyết này chỉ có một vài cuốn sách và các bài tạp chí bằng tiếng Anh Do đó, mặc dù đã cố gắng rất nhiều nhng không tránh khỏi thiếu sót Rất mong đợc sự đón nhận xem xét, đánh giá bổ sung, góp ý kiến của các thầy cô giáo và các bạn.
Trang 2Tôi xin chân thành cảm ơn sự giúp đỡ, hớng dẫn tận tình của cô giáo - thạc
sĩ Trần Thị Kim Oanh, các giáo viên khoa Công nghệ Thông tin trờng Đại
học Vinh và sự động viên, đóng góp ý kiến của nhiều bạn trong quá trình tôi hoàn thành đề tài này.
Vinh, 28 ngày 4 tháng năm 2004
Sinh viên thực hiện:
Trần Bình Giang
Lý do chọn đề tài
Nhìn chung, con ngời và sinh vật đều phải tiến hoá để thích nghi với hoàn cảnh Vào thời kỳ đồ đá, con ngời phải sống trong hang núi, sử dụng các dụng cụ thô sơ Sang thời đại tin học, mọi sinh hoạt đều diễn ra xung quanh máy tính nhiệm màu Tiến hoá cho thích nghi với điều kiện của môi trờng chung quanh để tồn tại và phát triển là việc làm hiển nhiên mà con ngời đã và còn phải thực hiện Tiến hoá cho thích nghi không có nghĩa là luôn tìm ra giải pháp tuyệt đối cho vấn đề, mà có thể chỉ là tơng đối trong điều kiện cho phép.
Genetic Algorithms - Giải thuật di truyền ( gọi tắt là GA) bắt nguồn từ ý
niệm tiến hoá để tồn tại và phát triển trong tự nhiên, đợc xây dựng dựa trên cơ sở học thuyết tiến hoá của Darwin, 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ể không có khả năng thích nghi thì bị diệt vong Thực tế thì 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 T tởng chính của Giải thuật di truyền là thay vì phát
Trang 3sinh một lời giải, ban đầu ta phát sinh một lúc nhiều lời giải cùng lúc Sau đó trong số lời giải đợc tạo ra, chọn ra những lời giải tốt nhất để làm cơ sở phát sinh ra nhóm các lời giải sau với nguyên tắc " càng về sau" càng tốt hơn Quá trình đó tiếp diễn cho đến lúc tìm đợc một lời giải tối u Đó là t tởng sơ khởi ban đầu của GA Càng về sau ngời ta càng hoàn thiện hơn phơng pháp luận của ý tởng này, dẫn đến sự ra đời của một hệ thống hoàn chỉnh các phơng pháp, nguyên lý dùng trong Giải thuật di truyền Tuy nhiên mãi tới những năm 70, GA mới đợc sự quan tâm chú ý của các nhà nghiên cứu Ngời có công đầu trong lĩnh vực này là giáo s John Henry Holland Ông công bố lý thuyết này lần đầu tiên trong một cuốn sách mang tên " Adaptation in Natural and Artificial Systems" năm 1975 Trong vòng 10 năm qua, thế giới đã chú ý đến những thành quả mà lý thuyết này mang lại
Với những lý do trên, đợc sự nhất trí của giáo viên hớng dẫn, tôi chọn đề tài Luận văn cuối khoá là : " Nghiên cứu về Giải thuật di truyền và ứng dụng để tìm cực trị của đa thức bậc n".
Trang 4Ngôn ngữ cài đặt
Lập trình với Visual Basic (VB) ngày càng đợc sử dụng nhiều trong các dự án trong và ngoài nớc VB là sản phẩm phần mềm của Microsoft và là một ngôn ngữ lập trình hớng đối tợng Nó có rất nhiều u điểm nổi bật nh tiết kiệm đợc thời gian và công sức so với một số ngôn ngữ lập trình có cấu trúc khác, dễ chỉnh sửa, tạo giao diện đẹp VB rất mạnh trong quản lý cơ sở dữ liệu và đặc biệt với VB 6.0 cho phép làm việc với các ứng dụng truy cập dữ liệu ở tầm cỡ vĩ mô liên quan đến hàng trăm, hàng nghìn ngời qua mạng Không chỉ nh vậy, VB 6.0 còn có các các cấu trúc điều khiển, modul, hàm, thủ tục, cho phép ngời dùng xây dựng đợc các chơng trình tính toán Đặc biệt là các hàm khởi tạo số ngẫu nhiên rất phù hợp để ứng dụng các lý thuyết của Giải thuật di truyền Vì thế, trong đề tài, sau khi nghiên cứu về Giải thuật di truyền, tôi ứng dụng lý thuyết này để xây dựng chơng trình tìm cực trị của đa thức bậc n và lựa chọn ngôn ngữ lập trình VB 6.0 để cài đặt chơng trình hoàn chỉnh.
Kết quả luận văn đã đạt đợc
Trong khuôn khổ nội dung đề tài " Nghiên cứu về Giải thuật di truyền và ứng dụng để tìm cực trị của đa thức bậc n", tôi trình bày các vấn đề sau:
+ Khoa học Trí tuệ nhân tạo với Giải thuật di truyền
Trang 5+ Tổng quan về Giải thuật di truyền: lịch sử phát triển, khái niệm về GA, các tính chất đặc thù, quá trình tổng quát của GA
+ Nghiên cứu về Giải thuật di truyền : chọn cấu trúc dữ liệu phù hợp, hệ số thích nghi, chọn cá thể, lai ghép, đột biến.
+ Những ứng dụng của Giải thuật di truyền
+ Minh hoạ Giải thuật di truyền với bài toán tìm cực trị của đa thức bậc n + Phần phụ lục là chơng trình cụ thể viết bằng ngôn ngữ lập trình VB 6.0.
Định hớng phát triển đề tài
Giải thuật di truyền đã thu hút đợc nhiều nhà nghiên cứu và ngày càng có vị trí quan trọng Khi bắt đầu xuất hiện, Giải thuật di truyền chủ yếu chỉ áp dụng trong lĩnh vực là tối u hoá Đến nay nó đã áp dụng vào nhiều ngành, nhiều lĩnh vực Hớng phát triển tiếp theo của đề tài: Xây dựng đợc các chơng trình phức tạp ứng dụng Giải thuật di truyền nh bài toán định lộ trình cho công nhân ghi đồng hồ điện, các bài toán vận tải, xử lý ảnh, tìm nghiệm của đa thức bậc n.
Chơng I
Khoa học trí tuệ nhân tạo với Giải thuật Di truyềnI Lịch sử hình thành và phát triển của trí tuệ nhân tạo.
Trí tuệ nhân tạo ( TTNT ) có hai mục tiêu chính Thứ nhất là tạo các chơng trình để máy tính có khả năng hiểu những "suy nghĩ" của con ngời hay nói cách khác là tạo đợc các máy tính thông minh Mục đích của việc này là làm thế nào để máy tính có thể hỗ trợ con ngời trong việc đa ra những quyết định Thứ hai là để phát triển các chơng trình ứng dụng Vấn đề đặt ra là làm thế nào để máy tính hiểu đợc cách thức mà con ngời lu trữ và xử lý kiến thức.
Trang 6Mặc dù mô hình tơng tự của máy tính thông minh đã đợc đa ra từ rất lâu nhng chỉ từ giữa những năm 30, khi Allen Turing công bố những kết quả quan trọng đầu tiên, ngời ta mới nghiên cứu vấn đề TTNT một cách nghiêm túc Phát hiện của Turing cho rằng chơng trình có thể lu trữ trong bộ nhớ để sau đó thực hiện đợc trên cơ sở các phép toán cơ bản thao tác với các đại lợng số 0 và số 1, tạo nên nền tảng của những máy tính hiện đại Việc lu trữ chơng trình trong máy tính cho phép thay đổi chức năng của nó một cách nhanh chóng và dễ dàng thông qua việc nạp một chơng trình mới khác vào bộ nhớ Theo một nghĩa nào đó, khả năng này làm cho máy tính có khả năng học và suy nghĩ Đó cũng là một trong những biểu hiện quan trọng đầu tiên của TTNT
Các năm sau đó, nhiều chơng trình đợc đa ra nh: chơng trình chứng minh các định lý hình học phẳng, chơng trình giải quyết bài toán vạn năng … Và đến khoảng năm 1960, McCathy đa ra ngôn ngữ lập trình đầu tiên dùng cho
TTNT LISP (list processing) Những năm 60 có thể xem là một mốc quan
trọng trong quá trình xây dựng máy tính có khả năng suy nghĩ Tuy nhiên nó cũng còn có một số bế tắc do giới hạn khả năng của các thiết bị, bộ nhớ, thời gian thực hiện.
Cuối những năm 70, một số nghiên cứu cơ bản trong các lĩnh vực nh xử lý ngôn ngữ tự nhiên, biểu diễn tri thức, lý thuyết giải quyết vấn đề đã đem lại diện mạo mới cho TTNT Hệ chuyên gia đợc áp dụng trong các lĩnh vực khác nhau Hệ chuyên gia là phần mềm máy tính chứa các thông tin và tri thức về một lĩnh vực cụ thể nào đó, có khả năng giải quyết những yêu cầu của ngời sử dụng
Cuối những năm 80, thị trờng các sản phẩm dân dụng đã có khá nhiều sản phẩm ở trình độ cao nh máy giặt, máy ảnh … sử dụng TTNT Thế giới đang chuyển mình trong những nghiên cứu về TTNT Tuy nhiên, câu hỏi liệu kỹ thuật TTNT có tạo nên bớc nhảy vọt trong công nghệ tin học, đặc biệt là công nghệ máy tính nh ngời ta mong đợi hay không thì vẫn cha có lời giải đáp thoả đáng.
Sự xuất hiện của máy tính với t cách là một công cụ trợ giúp quá trình xử lý thông tin đã đem lại diện mạo hoàn toàn mới mẻ cho những hoạt động sáng tạo của con ngời Cùng với quá trình nghiên cứu và ứng dụng máy tính trong quản lý xã hội, quản lý kinh tế, ngời ta càng nhận thức sâu sắc vai trò quan trọng của việc tổ chức dữ liệu và thuật giải N.Wirth đã viết một cuốn sách
Trang 7nhan đề : " Cấu trúc dữ liệu + Giải thuật = Chơng trình" Sự xuất hiện của
khoa học TTNT đã làm nảy sinh một công nghệ xử lý thông tin mới dựa trên tri thức Tơng tự nh trên, quá trình giải quyết vấn đề đợc cấu thành bởi hai yếu tố cơ bản: biểu diễn bài toán và tìm kiếm lời giải trong không gian bài toán.
II Các phơng pháp giải quyết vấn đề.
Nh chúng ta đã biết, không thể có phơng pháp giải quyết vấn đề tổng quát cho mọi bài toán Điều này có nghĩa là khi đề cập đến một bài toán, chúng ta phải chú ý đến phơng pháp biểu diễn nó cùng với các phơng pháp tìm kiếm trong không gian bài toán nhận đợc.
1 Biểu diễn vấn đề trong không gian trạng thái và các chiến lợc tìm kiếm
trên đồ thị biểu diễn vấn đề.
Về thực chất cách làm này gắn liền với chiến lợc tìm kiếm thử và sai Quá trình tìm kiếm có thể diễn đạt nh sau: xuất phát từ hình trạng đầu, xây dựng tất cả những hình trạng có thể, nhờ thực hiện một trong các thao tác có thể chấp nhận đợc Sau đó xây dựng tập các hình trạng tiếp theo nhờ áp dụng thao tác khác và cứ tiếp tục nh vậy cho đến khi đạt đến hình trạng đích Để diễn đạt những phơng pháp tìm kiếm nh vậy, một phơng pháp biểu diễn vấn đề phù hợp
là ngời ta đa vào các khái niệm trạng thái (state) và toán tử (operator).
Các hình trạng ban đầu và cuối của bài toán gọi là các trạng thái đầu và cuối tơng ứng Không gian trạng thái đạt đợc từ trạng thái đầu bao gồm tất cả các hình trạng đợc sinh ra nhờ áp các thao tác có thể chấp nhận đợc Các toán tử về thực chất là các phép biến đổi từ trạng thái này sang trạng thái khác Một cách biểu diễn trực quan đối với không gian trạng thái và các toán tử là sử dụng đồ thị Trong đồ thị này các đỉnh tơng ứng với các trạng thái, các cung t-ơng ứng với các toán tử.
* Các phơng pháp tìm kiếm:
+ Tìm kiếm theo chiều rộng + Tìm kiếm theo chiều sâu + Tìm kiếm sâu dần
+ Tìm kiếm cực tiểu hoá giá thành
2 Qui bài toán về bài toán con và các chiến lợc tìm kiếm trên đồ thịVà/Hoặc
Trang 8Cách tiếp cận của bài toán này là tách bài toán thành bài toán con sao cho
lời giải của một tập con nào đó của bài toán con cho phép xác định lời giải của bài toán ban đầu Mỗi bài toán con có thể đợc giải quyết nhờ một phơng pháp nào đó, thậm chí có một bài toán con lại đợc phân tách thành các bài toán con khác Phơng pháp thử và sai đóng vai trò rất quan trọng trong cách tiếp cận dựa vào qui về bài toán con.
* Các phơng pháp tìm kiếm :
+ Tìm kiếm theo chiều rộng + Tìm kiếm theo chiều sâu
+ Tìm kiếm cây lời giải có giá trị nhỏ nhất
3 Biểu diễn vấn đề nhờ Logic hình thức và các phơng pháp suy diễnLogic.
* Logic mệnh đề, Logic vị từ : một mệnh đề p là một phát biểu chỉ có thể
nhận giá trị đúng (True, 1) hoặc sai (False, 0) Các biểu thức mệnh đề đợc xây dựng trên cơ sở các tên mệnh đề ( ký hiệu bởi các chữ cái latinh) và các phép toán logic (phép hội, phép tuyển, phép phủ định, ….) theo những quy tắc, cú pháp nhất định Logic vị từ cho phép diễn đạt hầu hết tất cả các khái niệm và nguyên lý của các khoa học cơ bản, nhất là toán học và vật lý.
* Các phơng pháp suy diễn : Chứng minh định lý nhờ Logic hình thức:
+Thủ tục Wong.H
+ Thủ tục Resolution 1 - hợp giải ( dùng cho Logic mệnh đề) + Thủ tục Resolution 2 - hợp giải ( dùng cho Logic vị từ)
4 Phơng pháp tạo - kiểm tra ( generate and test)
* Các bớc thực hiện của phơng pháp này nh sau:
+ Bớc 1: tạo một lời giải thử nghiệm nào đó.
+ Bớc 2: kiểm tra xem nó có phải là lời giải của bài toán không?
+ Bớc 3: nếu đúng thì dừng quá trình tìm kiếm và đa ra thông báo thành
công Ngợc lại chuyển về Bớc 1.
* Nhận xét: Phơng pháp này rất đơn giản Nếu quá trình tạo lời giải có hệ
thống thì thủ tục này sẽ đa ra đợc lời giải, khi quả thật lời giải này tồn tại Với các bài toán đơn giản thủ tục Tạo - Kiểm tra thờng khá phù hợp Tuy nhiên với các bài toán phức tạp, kỹ thuật này tỏ ra không mấy hiệu quả, có thể "sa lầy" vô hạn, không mang lại lời giải cho bài toán.
Trang 95 Phơng pháp leo đồi ( Hill climbing).
Phơng pháp leo đồi là một biến thể của phơng pháp Tạo - kiểm tra, trong đó thông tin phản hồi khi kiểm tra đợc dùng để trợ giúp quá trình tạo sinh lời giải bớc tiếp theo Các bớc thực hiện phơng pháp này nh sau:
+ Bớc 1: Tạo sinh lời giải thử nghiệm giống nh trong thủ tục Tạo -kiểm tra.
Nếu nó là lời giải thực sự thì dừng và thông báo thành công Ngợc lại thực hiện các bớc tiếp theo.
+ Bớc 2: Xuất phát từ phơng án giả định này, áp dụng một số luật biến đổi
nào đó để tạo ra một tập các lời giải thử nghiệm mới.
+ Bớc 3: Với mỗi phần tử trong tập này ta làm nh sau:
a) Nếu nó là lời giải thực sự thì dừng.
b) Ngợc lại, ta xem phần tử này có phải là phần tử "gần" nhất so với lời giải thực sự cho đến thời điểm đang xét hay không? Nếu đúng, ta giữ phần tử này lại Ngợc lại chuyển sang bớc 4.
+ Bớc 4: Lấy phần tử "tốt nhất " nhận đợc ở bớc trên Đến lợt nó, phần tử
này đợc coi là lời giải thử nghiệm mới và chuyển về bớc 2.
* Nhận xét: Chúng ta có thể tởng tợng một máy tính giải quyết vấn đề bàitoán theo kiểu leo đồi là một ngời leo núi với t tởng "càng leo càng cao" Kiểu
giải quyết này vẫn còn gặp trở ngại cơ bản là nếu vùng đồi có nhiều đồi thấp khác bên cạnh những ngọn đồi cao nhất thì có thể sẽ bị kẹt ở một ngọn đồi thấp nào đó Lúc này thuật toán sẽ bị kẹt ở ngọn đồi thấp Nếu chỉ có một ngời leo đồi thì có khả năng ngời đó sẽ bị "kẹt" lại ở một ngọn núi thấp Nếu có nhiều ngời cùng leo đồi, xuất phát từ nhiều địa điểm khác nhau thì khả năng có ngời leo đến đỉnh đồi cao nhất sẽ tăng lên Vậy tại sao không cho nhiều "thế hệ" ngời leo đồi? Nghĩa là nếu toàn bộ số ngời leo núi đầu tiên - thế hệ 1 ( giả sử 100 ngời) đều không đạt đến đỉnh đồi cao nhất thì ta sẽ cho 100 ngời mới - thế hệ 2 tiếp tục leo Lúc này lại nảy sinh một vấn đề, có khả năng một số ngời trong thế hệ 2 đó lại đi leo lại những ngọn đồi mà nhóm cũ đã leo không thành công Vậy ta hãy làm sao để những ngời leo giỏi nhất - leo cao nhất - ( chẳng hạn 10 ngời) trong thế hệ 1 truyền lại "kinh nghiệm" leo đồi của mình cho thế hệ 2, để họ có thể leo cao hơn Và nếu 100 ngời của thế hệ 2 này thất bại, 10 ngời giỏi nhất trong thế hệ 2 này sẽ lại truyền "kinh nghiệm" cho thế hệ 3 để họ có thể leo cao hơn nữa Tiến trình tiếp tục cho đến khi có một ngời leo đến ngọn đồi cao nhất hoặc hết thời gian cho phép Trong trờng hợp
Trang 10hết thời gian cho phép thì trong toàn bộ các thế hệ, ngời nào leo cao nhất sẽ đ-ợc chọn.
Đến đây, bạn đã hiểu phần nào t tởng chính của " Giải thuật di truyền".
Tức là thay vì phát sinh một lời giải, ban đầu ta phát sinh một lúc nhiều lời giải Sau đó trong số lời giải đợc tạo ra, chọn một số lời giải tốt nhất để làm cơ sở phát sinh ra nhóm lời giải sau với nguyên tắc " càng về sau càng tốt" Quá trình kết thúc cho đến khi tìm đợc một lời giải tối u.
Chơng II
Tổng quan về Giải thuật di truyền I Lịch sử phát triển của Giải thuật di truyền
ý tởng về Giải thuật di truyền đợc một số nhà sinh vật học nêu ra từ thập
niên 50 và 60 thế kỷ XX Ngời ta nhận thấy sự tơng đồng giữa sự tiến hoá của
sinh vật và chơng trình tin học giả tởng về GA Tuy nhiên, John Henry
Holland (Đại học Michigan) mới là ngời triển khai ý tởng và phơng thức giải
quyết vấn đề dựa theo sự tiến hoá của con ngời John Henry Holland sinh năm 1920 tại tiểu bang Indiana, Hoa kỳ Ông bắt đầu bằng những bài giảng và bài báo đăng trên các tạp chí Ông giảng dạy các lớp cao học và chủ khảo cho nhiều luận án tiến sĩ về Giải thuật di truyền Dần dần những ý niệm về GA đ-ợc cô đọng và đúc kết thành sách " Adaptation in Natural and Artificial Systems" xuất bản năm 1975 Ngoài việc tiên phong đề ra những nguyên tắc cơ bản cho GA, Holland còn chứng minh bằng toán học những định lý quan trọng cho lý thuyết này.
Nh vậy, phải mất hơn 20 năm ý tởng bắt chớc quá trình tiến hoá của con ngời và sinh vật để tồn tại và phát triển vào việc giải quyết vấn đề trên máy vi tính mới thành hiện thực Và cũng phải hơn 20 năm sau, thế giới mới nhận thức đợc ý nghĩa của lý thuyết này Sau này lý thuyết Giải thuật di truyền đợc triển khai và chứng minh với các dẫn chứng quan trọng, đa vào ứng dụng trong thực tế.
II Khái niệm Giải thuật di truyền (GA)
Trang 11- Giải thuật di truyền là kỹ thuật chung giúp giải quyết bài toán bằng cách mô phỏng sự tiến hoá của con ngời hay của sinh vật nói chung (dựa trên thuyết tiến hoá của Darwin) trong điều kiện quy định sẵn của môi trờng - GA là một thuật giải, mục tiêu không nhằm đa ra lời giải tối u mà là đa ra lời giải tơng đối tối u.
III Tơng quan giữa sự tiến hoá của sinh vật vàGiải thuật di truyền
Để tìm hiểu thêm về Giải thuật di truyền , chúng ta nên đề cập đến một số
chi tiết quan trọng về sự tiến hoá của sinh vật Di truyền học (Genetics) là
khoa học nhằm tìm hiểu về huyết thống và sự di truyền giữa các thể Các nhà
di truyền học nghiên cứu cách hoạt động của các gen (Gene) và ảnh hởng của
gen trong sự di truyền giữa cha mẹ và con cái Trong cơ thể con ngời và sinh
vật nói chung, các tế bào đều chứa hoá chất liên quan đến tính di truyền, đó là
nhiễm sắc thể (chromosome) Mỗi chủng loại đều có tính chất di truyền đặc
biệt gọi là kiểu di truyền (genotype) Chính kiểu di truyền xác định và giới hạn
khả năng tồn tại cũng nh phát triển của cơ thể Mỗi cá nhân sẽ phản ứng nh thế nào đối với hoàn cảnh sống, đối với môi trờng sống đều đợc định trớc bởi kiểu di truyền này Tính chất đặc biệt giúp cho cá thể tồn tại qua những cuộc
thử thách với thiên nhiên đợc gọi là kiểu hình (phenotype) Trong GA tínhchất này đợc gọi là hệ số thích nghi (fitness)
GA dựa vào một phần đặc tính của sự tiến hoá của con ngời, sinh vật GA vẫn còn rất mới mẻ và cần phải cải tiến nhiều hơn nữa để trở thành một lý thuyết hoàn hảo.
IV Giải thuật di truyền giải quyết vấn đề trên máy vi tính
Nói chung, GA là phơng thức giải quyết vấn đề bắt chớc lối hành xử của con ngời để tồn tại và phát triển trong tự nhiên Nó giúp tìm ra giải pháp tối u nhất hay tốt nhất trong điều kiện thời gian và không gian cho phép GA giải quyết đợc các vấn đề trên máy vi tính nhờ vào chơng trình tin học để thể hiện những ý tởng cơ bản nêu trên
Không giống nh phơng pháp giải tích dựa trên các công thức toán học hay phơng pháp suy luận dựa trên các kinh nghiệm của các chuyên gia, chỉ để ý đến một số giới hạn các giải pháp GA xét đến toàn bộ các giải pháp, bằng cách xét trớc một số giải pháp sau đó loại bỏ những thành phần không thích hợp và chọn những thành phần thích nghi hơn để tạo sinh và tiến hoá nhằm
Trang 12mục đích tạo ra nhiều giải pháp mới có hệ số thích nghi ngày càng cao Nh vậy GA là một hình thức tìm kiếm có tình ngẫu nhiên nhng đợc định hớng bởi hàm số thích nghi (dùng làm tiêu chuẩn đánh giá các giải pháp) GA không thể luôn luôn tìm ra giải pháp tối u nhng chắc chắn sẽ cung cấp những giải pháp tơng đối tốt trên nền tảng vững chắc và trong thời gian nhanh nhất.
V Các tính chất đặc thù của Giải thuật di truyền
- Lập luận của GA mang tính chất ngẫu nhiên (stochastic) thay vì xác định(deterministic) nh toán học giải tích GA tuy dựa trên tính ngẫu nhiên nhng
có hớng dẫn bởi hàm số thích nghi, do đó không có nghĩa là đoán mò nh nhiều ngời hiều lầm Chính hàm số thích nghi là "hoa tiêu" cho GA tìm giải pháp tối u trong rất nhiều giải pháp có thể có Một trong những bớc quan trọng và khó khăn nhất là tìm hàm số thích nghi (fitness function) Hàm số thích nghi phải có liên hệ trực tiếp đến vấn đề cần giải quyết.
- GA duyệt xét toàn bộ các giải pháp, sau đó chọn lấy giải pháp tơng đối tốt nhất dựa trên hệ số thích nghi.
- GA không quan tâm đến chi tiết vấn đề, trái lại chỉ chú ý đến giải pháp, đặc biệt là dãy số tợng trng cho giải pháp hay nói cách khác là mô hình để
t-ợng trng cho các giải pháp Các mô hình này có thể là dãy (string) những số
nhị phân 0 và 1, thập phân, hỗn hợp chữ và số ….
- Vấn đề thích hợp nhất cho GA là tìm điều kiện tối u Tối u ở đây không
nên hiểu là nhất thiết là tuyệt đối, nhng có thể là tơng đối trong hoàn cảnh và thời gian cho phép.
- Một đặc điểm khác của GA là lý thuyết này thích hợp cho những trờng
hợp phải tìm kiếm (search) Nếu chúng ta phải tìm giải pháp trong trăm hay
ngàn đáp số thì GA phải là kỹ thuật đợc chọn trớc nhất
VI Quá trình tổng quát của Giải thuật di truyền
1 Các bớc của Giải thuật di truyền
- Bớc 1: Phát sinh một số lợng lớn, giới hạn các cá thể (individual ) có gen
ngẫu nhiên, cụ thể là phát sinh một tập hợp các chuỗi bit ngẫu nhiên ( nhị
phân, thập phân, hỗn hợp số và chữ … ) Tập các cá thể này đợc gọi là quần
thể ban đầu (initial population).
- Bớc 2: Dựa trên một hàm nào đó để tìm một giá trị gọi là hệ số thích
nghi ( Fitness ) Có thể hiểu giá trị này là độ “tốt” của lời giải.
Trang 13- Bớc 3: Để cải thiện tính thích nghi của quần thể, ngời ta tìm cách tạo ra
quần thể mới dựa trên hệ số thích nghi Có hai thao tác trên quần thể hiện tại
để tạo ra một thế hệ mới có hệ số thích nghi cao hơn.
+Selection (Chọn lọc): Sao chép nguyên mẫu một nhóm các cá thể tốt
từ thế hệ trớc đa sang thế hệ sau Thao tác này đảm bảo hệ số thích nghi của thế hệ sau luôn đợc giữ ở một mức độ hợp lý Thông thờng, ta chọn các cá thể có hệ số thích nghi cao nhất.
+Reproduction (Tái tạo): Tạo các cá thể mới bằng cách thực hiện các
thao tác sinh sản trên một số cá thể đợc chọn từ thế hệ trớc, thờng là các cá thể
có hệ số thích nghi cao Có hai loại thao tác: Lai ghép (cross-over) và Đột
biến (mutation) Trong thao tác lai ghép, từ gen của hai cá thể đợc chọn trong
thế hệ trớc sẽ đợc phối hợp với nhau ( theo một quy tắc nào đó để tạo thành
hai gen mới) Thao tác chọn lọc và lai tạo giúp tạo ra thế hệ sau Tuy nhiên,
nhiều khi do thế hệ khởi tạo ban đầu có đặc tính cha phong phú và cha phù hợp nên các cá thể không rải đều đợc hết không gian của bài toán Từ đó khó tìm đợc lời giải tối u cho bài toán Thao tác đột biến sẽ giúp giải quyết vấn đề
này Đột biến là biến đổi ngẫu nhiên một hoặc nhiều thành phần gen của một
cá thể ở thế hệ trớc tạo ra một cá thể hoàn toàn mới ở thế hệ sau Tuy nhiên, thao tác Đột biến chỉ đợc phép xẩy ra với tần suất rất thấp, vì thao tác này có thể gây xáo trộn và làm mất đi những cá thể đã chọn lọc và lai tạo có tính thích nghi cao, dẫn đến thuật toán không còn hiệu quả.
- Bớc 4: Thế hệ mới lại đợc tạo ra nh thế hệ trớc bao gồm xác định hệ số
thích nghi và tạo thế hệ mới cho đến khi tìm đợc giải pháp tối u hoặc hết thời gian cho phép thì báo cáo kết quả tìm đợc.
2 Sơ đồ tổng quát của thuật giải di truyền.
Trang 14VII ứng dụng
GA đợc ứng dụng trong nhiều lĩnh vực khác nhau, từ khoa học tự nhiên cho đến khoa học nhân văn, từ kỹ thuật sang thơng mại, kinh tế ,tài chính Nói chung, những ứng dụng này có thể chia thành 3 nhóm chính:
+ Tìm mô hình tối u cho vấn đề Điển hình là tìm mối liên hệ giữa chi tiết cung cấp và kết quả có đợc Tìm kiếm và tối u hóa là đề tài thích hợp cho GA.
+ Hoạch định quy trình sản xuất, cách bố trí các bộ phận trong môi tr-ờng,… Những ứng dụng loại này đợc dùng trong ngành giao thông, chế tạo
Trang 15Chơng III
Nghiên cứu về Giải thuật di truyền I Chọn cấu trúc dữ liệu phù hợp.
- Máy tính có thể xử lý những dữ liệu rất đa dạng không cần mang đặc trng của số nh cấu trúc danh sách và các xâu ký hiệu Các xâu ký hiệu cho phép sử dụng tiết kiệm bộ nhớ Các cấu trúc danh sách cho phép nhóm các ký hiệu theo một trật tự khá mềm dẻo.
- Để có thể giải bài toán bằng Giải thuật di truyền, trớc hết ta cần “gen
hoá” cấu trúc dữ liệu của bài toán Ta thờng sử dụng một trong 3 loại cơ sở dữ liệu sau: chuỗi nhị phân, chuỗi số thực, cấu trúc cây.
1 Biểu diễn Gen bằng chuỗi nhị phân:
- Ta sử dụng chuỗi nhị phân một cách tờng minh ( gồm hai chữ số 0 và 1 )
để thể hiện cấu trúc Gen của một cá thể để thực hiện các thao tác lai ghép, đột
biến trên cấu trúc này.
- Giả sử ta muốn biểu diễn số thực x nằm trong miền [min, max] bằng một chuỗi nhị phân A (0 hoặc 1) dài L bit.
A = a0 a1 a2 a3 … aL-2 aL-1 với ai (0,1)
Trang 16Lúc đó ta sẽ ta sẽ chia miền [min,max] thành 2L - 1 vùng Trong đó kích thớc một vùng là:
g = (max - min)/ (2L-1)
Ngời ta gọi g là độ chính xác của số thực đợc biểu diễn bằng cách này ( vì g quy định giá trị thập phân nhỏ nhất của số thực mà chuỗi nhị phân dài L bit có thể biểu diễn đợc).
Lúc đó giá trị của số thực x đợc biểu diễn qua chuỗi nhị phân sẽ đợc tính
- Ví dụ: Cho số thực x nằm trong khoảng [-10 , 10] , đợc biểu diễn bằng
chuỗi nhị phân A= 1 0 1 1 0 1 0 0 dài L= 8 bit Tính giá trị của x.
+ Ưu điểm: đây là dạng biểu diễn cơ bản nhất của Giải thuật di truyền.
Cách biểu diễn này dễ cài đặt trên máy tính, dễ thực hiện các thao tác lai ghép, đột biến…
+ Nhợc điểm: độ chính xác không cao Muốn tăng độ chính xác phải
tăng số lợng bit, do đó làm chậm thuật toán
2 Biểu diễn Gen bằng chuỗi số thực.
- Việc biểu diễn Gen bằng chuỗi nhị phân đôi khi cũng làm cho kiểu Gencủa cá thể quá phức tạp, làm cho quá trình thao tác trên các Gen là kém hiệuquả Khi đó ngời ta sẽ biểu diễn Gen bằng chuỗi số thực Chuỗi số thực đợc
biểu diễn thông qua mảng số thực Theo cách này mỗi chuỗi nhiễm sắc thể đ-ợc biểu diễn là một vectơ các số thực, mỗi phần tử của chuỗi nhiễm sắc thể là một giá trị nghiệm và thuộc một miền xác định.
- Ví dụ: NST A= (2.098 1.234 4.235)
Trang 17- Biểu diễn kiểu Gen bằng số thực phải đảm bảo tiết kiệm không gian nhớđối với từng thành phần Gen.
3 Cấu trúc cây.
- Cấu trúc cây thờng đợc dùng trong trờng hợp bản thân Cơ sở dữ liệu của bài toán cũng có dạng cây Đây là một trờng hợp phức tạp nên rất hiếm khi đ-ợc sử dụng Ngay cả các thao tác trên cây của thuật giải di truyền cũng phụ thuộc vào bài toán đang xét Do đó trong phạm vi của đề tài, chỉ giới thiệu qua để tham khảo.
Khó khăn lớn nhất của cách biểu diễn gen bằng chuỗi số thực và cấu trúc cây là rất khó khăn trong việc ứng dụng vào các thao tác di truyền : lai ghép, đột biến, tái tạo …
II Hệ số thích nghi (fitness).
Nh chúng ta đã biết, một lời giải tốt nhất ở thế hệ hiện tại vẫn có khả năng bị "kẹt" trong các thế hệ sau và một lời giải cha tốt ở thế hệ hiện tại vẫn có khả năng tiềm tàng dẫn đến lời giải tối u Tức là tính tốt của một cá thể ( lời giải) trong một quần thể chỉ là một cơ sở để xác định tính thích nghi của cá thể (lời giải) đó Do đó, ngời ta vẫn xem độ tốt của lời giải là một yếu tố căn bản để xác định tính thích nghi của lời giải Thông thờng hệ số thích nghi của lời giải cũng chính là xác xuất để cá thể đó đợc chọn lọc hoặc lai ghép để sinh ra thế hệ kế tiếp Chúng ta sẽ xét 2 phơng pháp để xác định hệ số thích nghi của một cá thể.
1 Hệ số thích nghi tiêu chuẩn.
- Hàm mục tiêu là hàm dùng để đánh giá độ tốt của một lời giải hoặc cá
thể Hàm mục tiêu nhận vào một tham số là gen của một cá thể và trả ra một
số thực Tuỳ theo giá trị của số thực này mà ta biết độ tốt của cá thể đó Chẳng hạn với bài toán tìm cực đại thì giá trị trả ra càng lớn càng tốt, còn với bài toán tìm cực tiểu thì giá trị trả ra càng bé càng tốt
- Giả sử trong một thế hệ có N cá thể, cá thể thứ i đợc ký hiệu là ai Hàm mục tiêu là hàm F Hệ số thích nghi của các thể ai tính theo hệ số thích nghi tiêu chuẩn (độ tốt) là:
g( ai ) = F (ai ) / F(aj ) ( j= 1,N)
Trang 18- Theo công thức trên hệ số thích nghi tiêu chuẩn là một xác suất, nên hệ số thích nghi luôn có giá trị biến thiên trong khoảng [0,1] Cách tính này khá hiệu quả đối với những quần thể có độ tốt tơng đối đồng đều giữa các cá thể
- Ví dụ: Xét bài toán tìm cực tiểu của đa thức :
f(x) = anxn+ an-1xn-1+ ………+ a1x1+ a0x0
Khởi tạo một quần thể có 5 cá thể (nghiệm) xi với hàm thích nghi f(xi) ( với f(xi) càng bé càng tốt ) lần lợt cho trong bảng 1 nh sau:
Theo công thức trên tổng của tất cả 5 phần tử trên là: 12.7
Hệ số thích nghi của phần tử thứ nhất x1 là g(x1) = 2.4/12.7 = 0.18898
Tơng tự ta có hệ số thích nghi của các phần tử còn lại nh trong bảng 2
2 Hệ số thích nghi xếp hạng.
- Hệ số thích nghi tiêu chuẩn nh trên chỉ thực sự hiệu quả đối với những quần thể có độ tốt tơng đối đồng đều giữa các cá thể Nếu nh ta chọn hàm mục tiêu không tốt có một cá thể có độ tốt quá cao thì nó sẽ tách biệt các cá thể còn lại Do đó làm giảm khả năng dẫn đến lời giải tốt nhất, vì cá thể đặc biệt đó cha chắc đã dẫn đến lời giải tốt nhất
- Phơng pháp hệ số thích nghi xếp hạng loại bỏ hiện tợng di truyền “cục bộ” Nó không làm việc trên giá trị độ lớn của hàm mục tiêu F mà làm việc dựa trên thứ tự của các cá thể trên quần thể sau khi đã sắp xếp cá thể theo giá trị hàm mục tiêu F Do đó ngời ta gọi là hệ số thích nghi xếp hạng.
- Sắp xếp các cá thể của quần thể giảm dần theo thứ tự của giá trị hàm mục tiêu.Với p là một hằng số trong đoạn [0,1] Ta có hệ số thích nghi của cá thể thứ i đợc tính theo công thức:
F(i) = p*(1-p) i - 1
Trang 19- Ví dụ : chúng ta sẽ không sử dụng lại ví dụ ở mục 1 vì ở ví dụ đó độ tốt
của các cá thể là tơng đối đồng đều Cho một quần thể có 5 cá thể và độ tốt t-ơng ứng của chúng, ứng với mỗi giá trị p khác nhau ta sẽ có giá trị thích nghi
Nh vậy ta thấy p càng nhỏ thì hệ số thích nghi càng giảm Dựa vào đặc tính này ta có thể chọn p phù hợp để cân bằng hệ số thích nghi giữa các cá thể trong quần thể.
* L u ý : cần phân biệt hệ số thích nghi và hàm mục tiêu Hệ số thích nghi là
một giá trị đợc xây dựng dựa trên hàm mục tiêu Hệ số thích nghi quy định khả năng đợc chọn lọc vào quá trình sinh sản thế hệ sau Khả năng đợc lựa chọn sẽ đồng biến với hệ số thích nghi.
III 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 lu cho vòng tạo sinh tiếp sau tuỳ thuộc vào giá trị thích nghi của nó Toán tử chọn lọc là một phiên bản mô phỏng tự nhiên theo thuyết tiến hoá của Darwin Trong tự nhiên, hệ số 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 Còn trong Giải thuật di truyền, giá trị đo hệ số thích nghi sẽ quyết định khả năng đợc lựa chọn của cá thể (lời giải) Một khi đợc chọn, các cá thể 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.
Xử lý chọn lọc cá thể cha mẹ đợc tiến hành theo các cách sau đây:
1 Quy tắc chọn lọc xén:
- Chọn lọc xén là cách làm đơn giản và tự nhiên nhất Đầu tiên sắp xếp thứ tự quần thể theo hệ số thích nghi Cá thể có hệ số thích nghi cao nhất sẽ nằm
đầu danh sách Sau đó xác định một ngỡng xén Trunc là một tỉ lệ % Giá trị
Trunc sẽ xác định chọn bao nhiêu % cá thể tốt nhất trong quần thể để tham
Trang 20gia vào quá trình sinh sản thế hệ mới (chọn trên xuống vì ta đã sắp xếp) Những cá thể nằm ngoài ngỡng xén này sẽ không đợc chọn lọc.
- Ngỡng xén này không nhất thiết phải là một hằng số xuyên suốt bài toán mà có thể biến đổi tuỳ thuộc vào hệ số thích nghi chung của quần thể và môi
- Đây là cách làm khá đơn giản và mang lại hiệu quả tơng đối tốt Kỹ thuật này đợc gọi là lựa chọn cha mẹ trên vòng quay Mỗi lần thực hiện một vòng quay ta có một cá thể cho việc tái tạo Mỗi cá thể chiếm một cung trên hình tròn, cá thể có hệ số thích nghi càng cao thì cung ứng với cá thể đó càng lớn Rõ ràng, cá thể có hệ số thích nghi càng cao thì khả năng đợc chọn lọc càng
Trang 21- Với quy tắc chọn lọc bàn Roulete, các cá thể đợc biểu diễn lên hình tròn nh sau:
- Khi chuyển kỹ thuật chọn lọc này thành chơng trình, chúng ta có thể thực hiện theo hai cách :
<*> Cách 1: Dùng cho trờng hợp tổng thích nghi xấp xỉ bằng 1+Bớc 1: Sắp xếp các cá thể theo hệ số thích nghi giảm dần
+Bớc 2: Tính tổng giá trị thích nghi của tất cả các cá thể trong quần thể
và gọi nó là tổng thích nghi Tf (total fitness) Thờng có giá trị =1.
+Bớc 3: Đặt các giá trị thích nghi của các cá thể kề nhau lên đoạn
[0,Tf]
+Bớc 4: Phát sinh một số p là số ngẫu nhiên trong khoảng [0, Tf].
Giá trị của p nằm trong khoảng con nào thì cá thể chiếm khoảng con đó sẽ đợc chọn.
<*> Cách 2: Dùng cho trờng hợp tổng thích nghi lớn hơn 1+Bớc 1: Đánh số các cá thể trong quần thể.
+Bớc 2: Tính tổng giá trị thích nghi của tất cả các cá thể trong quần thể
và gọi nó là tổng thích nghi Tf (total fitness)
+Bớc 3: ứng với mỗi cá thể, ta tính độ thích nghi tích luỹ bằng hệ số
thích nghi của chính nó cộng với hệ số thích nghi của các cá thể đứng trớc nó.
g(i) TL= g(i) + g(i+1)
+Bớc 4: Phát sinh một số p là số ngẫu nhiên trong khoảng [0, Tf] +Bớc 5: Cá thể đầu tiên trong quần thể có hệ số thích nghi tích luỹ lớn
hơn hoặc bằng p sẽ đợc chọn ( g(i) TL n ).
- L u ý : Mỗi cá thể chỉ đợc chọn một lần, nếu chọn nhiều cá thể thì ta phải
phát sinh chuỗi số ngẫu nhiên p1, p2, … 10% 5% 30% 18%
13% 24%
Trang 22- Với ví dụ trên, tổng hệ số thích nghi của các cá thể bằng 1 nên ta chọn cách 1, sắp xếp các cá thể theo thứ tự tăng dần, ta thu đợc hệ số thích nghi tích luỹ của các cá thể nh sau:.
IV Lai ghép ( Crossover).
- Toán tử chọn lọc nhằm tìm ra những cá thể tốt nhất nhng không tạo ra cá thể mới Tuy nhiên, theo tự nhiên thì các con sẽ thừa hởng 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 nên những con lai tốt đợc gọi là lai ghép.
- Phơng pháp này tác động lên các cá thể cha mẹ để tạo nên những cá thể con tốt Bản chất của việc tạo sinh các lời giải mới trong Giải thuật di truyền là sự kết hợp các lời giải “cha mẹ” bằng các toán tử mô phỏng thao tác lai ghép trong sinh học Chúng đợc áp dụng lên cặp cha mẹ đợc lựa chọn ( theo
kỹ thuật Chọn lọc - Select) với xác suất lai ghép ký hiệu là Pcross (hay Plg) Xác suất này cho chúng ta số lợng Pcross * popsize nhiễm sắc thể đợc dùng cho hoạt động lai ghép, ở đây popsize là kích thớc của quần thể đợc lai tạo.
Nh vậy với mỗi nhiễm sắc thể trong quần thể ta phát sinh một số p ngẫu nhiên trong miền [0,1], nếu p lớn hơn Pcross thì tiến hành lai ghép bằng một trong các phơng pháp sau:
1 Lai ghép đơn điểm.
- Cách lai ghép này có thể áp dụng đối với kiểu dữ liệu chuỗi nhị phân lẫn chuỗi số thực.
- Cách làm: Chọn ra hai cá thể A, B đợc lấy ra từ một trong các phơng pháp chọn lọc nói trên Với N là chiều dài của gen, ta xác định một vị trí lai ghép k
Trang 23thuộc đoạn [2, N-1] Tại vị trí k sẽ chia gen của cá thể cha mẹ A, B thành A1, A2 và B1, B2 Hai gen mới đợc tạo ra có dạng (A1, B2) và (A1, B2)
- Ví dụ : Cho hai các thể là hai chuỗi nhị phân nh sau:
2 Lai ghép đa điểm.
- Là một dạng tổng quát của lai ghép đơn điểm Ta chọn m điểm lai ghép k1, k2, k3 ,… km m điểm này sẽ chia A,B thành m+1 đoạn Hai gen mới đợc tạo ra bằng cách ghép các đoạn của A,B theo quy tắc : đoạn có vị trí lẻ giữ nguyên đoạn có vị trí chẵn chuyển đổi
- Ví dụ : Cho hai cá thể A, B là hai chuỗi nhị phân nh sau:
- Quy tắc lai ghép mặt nạ là hình thức tổng quát nhất của Lai ghép.
- Hai cá thể cha mẹ có hai mặt nạ A,B Giả sử hai cá thể này là hai chuỗi nhị phân A, B thì hai mặt nạ mA (liên kết với A) và mB (liên kết với B) thực chất là chuỗi nhị phân đợc sinh ra một cách ngẫu nhiên khi tiến hành lai ghép hoặc thừa kế từ thế hệ trớc Về nguyên tắc thì ngời ta thờng hay dùng cặp mặt nạ đảo nhau mA= Not (mB)
Trang 24
- Quy tắc:
+ Giá trị bit thứ i trong mặt nạ bằng 1 (mAi =1) cho biết : thành phần thứ i trong gen của cá thể con (Ai’) đợc sao chép từ của thành phần gen của cá thể cha mẹ (Ai) liên kết với mặt nạ này.
+ Giá trị bit thứ i trong mặt nạ bằng 0 (mAi =0) cho biết : thành phần thứ i trong gen của cá thể con (Ai’) đợc sao chép từ của thành phần gen của cá thể cha mẹ (Bi) không liên kết với mặt nạ này.
- Ví dụ: Giả sử có hai cá thể đợc chọn lai ghép A, B có gen là hai chuỗi nhị
phân ứng với hai mặt nạ mA, mB sau:
Quy tắc tạo đờng sinh.
- Quy tắc tạo đờng sinh là dạng lai ghép áp dụng cho cách biểu diễn gen
bằng chuỗi số thực.
- Trong tạo đờng sinh, giá trị gen của thế hệ sau đợc chọn nằm trongkhoảng giữa giá trị gen của hai cá thể bố mẹ Nếu 2 cá thể bố mẹ lần lợt là A
và B, cá thể con là C thì thành phần gen của cá thể thứ i của con cháu đ ợc tính theo công thức
Ci = min( Ai, Bi ) + Bi - Ai
+ Ai , Bi , Ci lần lợt là thành phần gen thứ i của cha mẹ A, B và cá thể con C + là hệ số tỉ lệ, đợc chọn ngẫu nhiên trong đoạn [0 , 1].
Trang 25- Với quy tắc tạo sinh này, hai cá thể bố mẹ có thể sinh ra nhiều con cháu
- Phơng pháp này nhằm mở rộng kết quả tìm kiếm đợc quy định bởi thế hệ cá thể trớc, cần áp dụng các toán tử thay đổi giá trị cá thể mô phỏng theo hiện tợng đột biến trong sinh học.
- 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í gen nào đó Quần thể đợc xem xét gồm có nhiều cá thể, mỗi cá thể đợc biểu diễn bởi L bit Đột biến đợc áp dụng với xác suất Pmul
- Nh vậy với mỗi nhiễm sắc thể trong quần thể và mỗi bit trong nhiễm sắc
thể , ta phát sinh một số ngẫu nhiên p thuộc [0,1] Nếu Pmul p thì ta tiến hành đột biến tại bit đó.
- Toán tử đột biến sẽ biến đổi ngẫu nhiên một hoặc nhiều thành phần gen của một cá thể ở thế hệ trớc tạo ra một cá thể hoàn toàn mới Do đó thao tác này chỉ đợc phép xẩy ra với xác suất rất thấp vì thao tác này có thể làm xáo trộn và làm mất đi những cá thể đã chọn lọc và lai tạo có tính thích nghi cao, dẫn đến thuật toán không còn hiệu quả.
1 Đột biến giá trị nhị phân.
- Đối với cá thể kiểu chuỗi nhị phân thì đột biến chỉ là lấy giá trị đối của
một bit nhị phân ngẫu nhiên nào đó trong gen (đổi từ 0 thành 1 và từ 1 thành
- Thờng thì đột biến diễn ra với xác suất thấp, nên ngời ta thờng cho đột
biến trên một thành phần gen tối đa.
Trang 26- Ví dụ: Cho một Gen có chiều dài là 9, đột biến tại vị trí bit 5
2 Đột biến giá trị thực.
- áp dụng đối với các cá thể có kiểu gen là chuỗi số thực.
- Có rất nhiều cách để đột biến trên trị thực Bằng công cụ toán học ngời ta đa ra phơng pháp đột biến nh sau:
Gọi A là giá trị của thành phần gen bị đột biến, giá trị A’ của thành phần gen đó sau khi đột biến sẽ đợc tính theo công thức:
A' = A + s*range*delta
Trong đó:
+ s = -1 hoặc s = 1 (xác suất = 0.5)
+ range:= < độ lớn của miền xác định của thành phần gen bị đột biến> * 0.5 +delta = ai*1/2i trong đó ai = 1 với xác suất 1/20.
Trang 27Chơng IV
những ứng dụng của Giải thuật di truyền
I ứng dụng của Giải thuật di truyền trong khoa học tự nhiên.
1 ứng dụng trong hoá học.
Trong lĩnh vực hoá học, phần lớn là các cuộc thí nghiệm, dù là định giải, phân tích hay tổng hợp đều phải qua hai giai đoạn:
+ Thí nghiệm và thu thập số liệu + Biến chế số liệu và báo cáo kết quả.
Giai đoạn đầu thờng đợc gọi là " wet process" đợc hiểu là dùng dụng cụ thí nghiệm để thu thập số liệu Giai đoạn thứ hai đợc gọi là " dry proces" dùng trí óc, máy tính để chế biến số liệu thành tài liệu báo cáo
Giai đoạn thứ hai có một việc cần làm là tối u hoá các số liệu Tối u hoá ở đây không có nghĩa là sửa đổi, thêm bớt số liệu mà có nghĩa là sử dụng các số liệu đó với những tính chất "nguyên thuỷ" và bằng nhiều phơng pháp chế biến để đa ra những kết quả trung thực và có ý nghĩa Để thực hiện điều này ngời ta thờng sử dụng 3 phơng pháp chính: dùng công thức hay định luật toán học; dùng những kinh nghiệm có từ các chuyên gia; dùng Giải thuật di truyền Hai phơng pháp đầu tuy có thành công trong nhiều trờng hợp nhng không thể giải quyết đợc các vấn đề phức tạp thờng xuất hiện trong thực tế Giải thuật di truyền là phơng pháp hữu hiệu cho những vấn đề bao quát và phức tạp.
ở Việt Nam, Giải thuật di truyền đã đợc ứng dụng trong một số vấn đề thuộc lĩnh vực hoá học nh: bài toán mô phỏng quá trình chiết dung môi hoá học, bài toán tìm điều kiện cân bằng tối u hoá cho các chất.
2 ứng dụng của Giải thuật di truyền trong tin học.
Giải thuật di truyền đã đợc dùng để tìm điều kiện tối u trong việc thiết kế mạng nơron nhân tạo Ngoài ra Giải thuật di truyền cũng còn đợc dùng để thực hiện chơng trình tin học (Genetic Programming - GP), một lĩnh vực đang đợc phát triển để tạo ra những chơng trình tin học đặc biệt gọi là Intelligent Agent Intelligent Agent giúp hớng dẫn, cố vấn cho ngời sử dụng trong các lĩnh vực giáo dục, quản trị, thiết kế, truyền thông.