Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (315.61 KB, 54 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b><small>Lời nói đầu</small></b>
<b> 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ỗ</b>
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:
<b> 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 đó.</b>
<b> 3. Dựa theo sự tiến hố, bắt chớc lối sống thích nghi mà con ngời hay sinh</b>
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.
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">Tô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
<i><b>sĩ Trần Thị Kim Oanh, các giáo viên khoa Công nghệ Thông tin trờng Đại</b></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 hồn thành đề tài này.
<i> Vinh, 28 ngày 4 tháng năm 2004</i>
Sinh viên thực hiện:
<b> Trần Bình Giang</b>
<b><small>Lý do chọn đề tài</small></b>
Nhìn chung, con ngời và sinh vật đều phải tiến hố để 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 hố 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 hố cho thích nghi khơng có nghĩa là ln 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.
<b> Genetic Algorithms - Giải thuật di truyền ( gọi tắt là GA) bắt nguồn từ ý</b>
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 hố 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
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">sinh 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. Q 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".
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b><small>Ngôn ngữ cài đặt</small></b>
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 tố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 hồn chỉnh.
<b><small>Kết quả luận văn đã đạt đợc</small></b>
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
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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ù, q trình tổng qt 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.
<b><small>Định hớng phát triển đề tài</small></b>
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 hố. Đế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 tốn vận tải, xử lý ảnh, tìm nghiệm của đa thức bậc n.
<b>Chơng I</b>
<b><small>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.</small></b>
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.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">Mặ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 tố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
<i>TTNT LISP (list processing). Những năm 60 có thể xem là một mốc quan</i>
trọng trong q 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 q trình xử lý thơng tin đã đem lại diện mạo hồn tồ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
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><i>nhan đề : " Cấu trúc dữ liệu + Giải thuật = Chơng trình". Sự xuất hiện của</i>
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 tốn.
<b><small>II. Các phơng pháp giải quyết vấn đề.</small></b>
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 tố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 tốn nhận đợc.
<b> 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</b>
<b>trên đồ thị biểu diễn vấn đề.</b>
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. Q 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
<i>là ngời ta đa vào các khái niệm trạng thái (state) và toán tử (operator).</i>
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 tố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ử.
<i> * Các phơng pháp tìm kiếm:</i>
+ 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
<b>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</b>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><b> Cá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</b>
lời giải của một tập con nào đó của bài tố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 tố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.
<i> * Các phơng pháp tìm kiếm :</i>
+ 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
<b>3. Biểu diễn vấn đề nhờ Logic hình thức và các phơng pháp suy diễnLogic.</b>
<i> * Logic mệnh đề, Logic vị từ : một mệnh đề p là một phát biểu chỉ có thể</i>
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ý.
<i> * Các phơng pháp suy diễn : Chứng minh định lý nhờ Logic hình thức: </i>
+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ừ)
<b>4. Phơng pháp tạo - kiểm tra ( generate and test)</b>
<i> * Các bớc thực hiện của phơng pháp này nh sau:</i>
<b> + Bớc 1: tạo một lời giải thử nghiệm nào đó.</b>
<b> + Bớc 2: kiểm tra xem nó có phải là lời giải của bài tốn khơng?</b>
<b> + 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</b>
cơng. Ngợc lại chuyển về Bớc 1.
<i> * 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ệ</i>
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 tốn.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>5. Phơng pháp leo đồi ( Hill climbing).</b>
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> + 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.</b>
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> + 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</b>
nào đó để tạo ra một tập các lời giải thử nghiệm mới.
<b> + Bớc 3: Với mỗi phần tử trong tập này ta làm nh sau:</b>
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> + 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ử</b>
này đợc coi là lời giải thử nghiệm mới và chuyển về bớc 2.
<i> * 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àitố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</i>
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 tố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
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">hết thời gian cho phép thì trong tồn bộ các thế hệ, ngời nào leo cao nhất sẽ đ-ợc chọn.
<i><b> Đến đây, bạn đã hiểu phần nào t tởng chính của " Giải thuật di truyền".</b></i>
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.
<b>Chơng II </b>
<b><small> 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 .</small></b>
<i><b> ý 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</b></i>
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
<i>sinh vật và chơng trình tin học giả tởng về GA. Tuy nhiên, John Henry</i>
<i>Holland (Đại học Michigan) mới là ngời triển khai ý tởng và phơng thức giải</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 tố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 q trình tiến hố 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ế.
<b><small>II. Khái niệm Giải thuật di truyền (GA)</small></b>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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.
<b><small>III. Tơng quan giữa sự tiến hoá của sinh vật vàGiải thuật di truyền </small></b>
<i><b> Để 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ố</b></i>
<i>chi tiết quan trọng về sự tiến hoá của sinh vật. Di truyền học (Genetics) là</i>
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à
<i>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</i>
<i>gen trong sự di truyền giữa cha mẹ và con cái. Trong cơ thể con ngời và sinh</i>
vật nói chung, các tế bào đều chứa hố chất liên quan đến tính di truyền, đó là
<i>nhiễm sắc thể (chromosome). Mỗi chủng loại đều có tính chất di truyền đặc</i>
<i>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</i>
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 hồ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
<i>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). </i>
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.
<b><small>IV. Giải thuật di truyền giải quyết vấn đề trên máy vi tính</small></b>
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 tố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 hố nhằm
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">mụ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ể ln ln 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.
<b><small>V. Các tính chất đặc thù của Giải thuật di truyền .</small></b>
<i> - Lập luận của GA mang tính chất ngẫu nhiên (stochastic) thay vì xác định(deterministic) nh tốn học giải tích . GA tuy dựa trên tính ngẫu nhiên nhng</i>
có hớng dẫn bởi hàm số thích nghi, do đó khơng có nghĩa là đố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 để
<i>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ố</i>
nhị phân 0 và 1, thập phân, hỗn hợp chữ và số ….
<b> - 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</b>
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.
<b> - 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</b>
<i>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</i>
ngàn đáp số thì GA phải là kỹ thuật đợc chọn trớc nhất.
<b><small>VI. Quá trình tổng quát của Giải thuật di truyền .</small></b>
<b> 1. Các bớc của Giải thuật di truyền .</b>
<i><b> - Bớc 1: Phát sinh một số lợng lớn, giới hạn các cá thể (individual ) có gen</b></i>
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ị
<b>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</b>
<i><b>thể ban đầu (initial population).</b></i>
<b> - 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</b>
<i><b>nghi ( Fitness ) . Có thể hiểu giá trị này là độ “tốt” của lời giải.</b></i>
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><b> - 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</b>
<b>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</b>
để tạo ra một thế hệ mới có hệ số thích nghi cao hơn.
<i><b>+Selection (Chọn lọc): Sao chép nguyên mẫu một nhóm các cá thể tốt</b></i>
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.
<i><b>+Reproduction (Tái tạo): Tạo các cá thể mới bằng cách thực hiện các</b></i>
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ể
<i><b>có hệ số thích nghi cao. Có hai loại thao tác: Lai ghép (cross-over) và Đột</b></i>
<i><b>biến (mutation). Trong thao tác lai ghép, từ gen của hai cá thể đợc chọn trong</b></i>
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
<i>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,</i>
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 tố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 đề
<i>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</i>
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 tốn khơng cịn hiệu quả.
<b> - 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ố</b>
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.
<b>2. Sơ đồ tổng quát của thuật giải di truyền.</b>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><b><small>VII. ứng dụng. </small></b>
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
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><b>Chơng III</b>
<b><small>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.</small></b>
- 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.
<b> - Để có thể giải bài tốn bằng Giải thuật di truyền, trớc hết ta cần “gen</b>
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.
<b> 1. Biểu diễn Gen bằng chuỗi nhị phân:</b>
- Ta sử dụng chuỗi nhị phân một cách tờng minh ( gồm hai chữ số 0 và 1 )
<i>để 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</i>
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 = a<small>0</small> a<small>1</small> a<small>2</small> a<small>3</small> ….. a<small>L-2</small> a<small>L-1</small> với a<small>i</small> (0,1)
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">Lúc đó ta sẽ ta sẽ chia miền [min,max] thành 2<small>L</small> - 1 vùng. Trong đó kích thớc một vùng là:
<b>g = (max - min)/ (2<small>L</small>-1)</b>
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
<b> - Ví dụ: Cho số thực x nằm trong khoảng [-10 , 10] , đợc biểu diễn bằng</b>
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.
<i>+ Ư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.</i>
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…
<i>+ Nhợc điểm: độ chính xác khơng cao. Muốn tăng độ chính xác phải</i>
tăng số lợng bit, do đó làm chậm thuật toán.
<b>2. Biểu diễn Gen bằng chuỗi số thực.</b>
<i> - 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</i>
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.
<b> - Ví dụ: NST A= (2.098 1.234 4.235)</b>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><i> - 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.</i>
<b>3. Cấu trúc cây.</b>
- 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 tố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 …
<b><small>II. Hệ số thích nghi (fitness).</small></b>
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ể.
<b>1. Hệ số thích nghi tiêu chuẩn.</b>
- 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á
<i>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</i>
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 tố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 tố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à a<small>i</small>. Hàm mục tiêu là hàm F. Hệ số thích nghi của các thể a<small>i</small> tính theo hệ số thích nghi tiêu chuẩn (độ tốt) là:
<b> g( a<small>i</small> ) = F (a<small>i</small> ) / F(a<small>j</small> ) ( j= 1,N)</b>
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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 ln 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ể .
<b> - Ví dụ: Xét bài tốn tìm cực tiểu của đa thức :</b>
f(x) = a<small>n</small>x<small>n</small>+ a<small>n-1</small>x<small>n-1</small>+ ………+ a<small>1</small>x<small>1</small>+ a<small>0</small>x<small>0</small>
Khởi tạo một quần thể có 5 cá thể (nghiệm) x<small>i</small> với hàm thích nghi f(x<small>i</small>) ( với f(x<small>i</small><i><b>) càng bé càng tốt ) lần lợt cho trong bảng 1 nh sau:</b></i>
<b> Theo công thức trên tổng của tất cả 5 phần tử trên là: 12.7</b>
<b> Hệ số thích nghi của phần tử thứ nhất x</b><small>1</small> là g(x<small>1</small>) = 2.4/12.7 = 0.18898
<i><b> 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</b></i>
<b>2. Hệ số thích nghi xếp hạng.</b>
- 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:
<b>F(i) = p*(1-p)<small> i - 1</small></b>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><b> - Ví dụ : chúng ta sẽ khơng sử dụng lại ví dụ ở mục 1 vì ở ví dụ đó độ tốt</b>
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ể.
<b> * 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à</b>
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.
<b><small>III. Chọn cá thể ( select)</small></b>
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ó. Tố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 q 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:
<b>1. Quy tắc chọn lọc xén:</b>
- 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
<i>đầu danh sách. Sau đó xác định một ngỡng xén Trunc là một tỉ lệ %. Giá trị</i>
<i>Trunc sẽ xác định chọn bao nhiêu % cá thể tốt nhất trong quần thể để tham</i>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">gia 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 ngồ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 tố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
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="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 :
<b><*> 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>
<b>+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ể</b>
và gọi nó là tổng thích nghi Tf (total fitness). Thờng có giá trị =1.
<b>+Bớc 3: Đặt các giá trị thích nghi của các cá thể kề nhau lên đoạn</b>
[0,Tf]
<b>+Bớc 4: Phát sinh một số p là số ngẫu nhiên trong khoảng [0, Tf].</b>
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.
<b><*> 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>
<b>+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ể</b>
và gọi nó là tổng thích nghi Tf (total fitness).
<b>+Bớc 3: ứng với mỗi cá thể, ta tính độ thích nghi tích luỹ bằng hệ số</b>
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ó.
<b>g(i) <small>TL</small>= g(i) + g(i+1)</b>
<b>+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</b>
hơn hoặc bằng p sẽ đợc chọn. ( g(i) <small>TL </small> n ).
<i><b> - 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</b></i>
phát sinh chuỗi số ngẫu nhiên p<small>1</small>, p<small>2</small>, … 10% 5% 30% 18%
13% 24%
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="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:.
<b><small>IV. Lai ghép ( Crossover).</small></b>
- 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 tố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
<i>kỹ thuật Chọn lọc - Select) với xác suất lai ghép ký hiệu là P</i><small>cross</small> (hay P<small>lg</small>) . Xác suất này cho chúng ta số lợng P<small>cross</small> * 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 P<small>cross</small> thì tiến hành lai ghép bằng một trong các phơng pháp sau:
<b>1. Lai ghép đơn điểm.</b>
- 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
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">thuộc đoạn [2, N-1] . Tại vị trí k sẽ chia gen của cá thể cha mẹ A, B thành A<small>1</small>, A<small>2</small> và B<small>1</small>, B<small>2</small> . Hai gen mới đợc tạo ra có dạng (A<small>1</small>, B<small>2</small>) và (A<small>1</small>, B<small>2</small>).
<b>- Ví dụ : Cho hai các thể là hai chuỗi nhị phân nh sau:</b>
<b>2. Lai ghép đa điểm.</b>
- 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 k<small>1</small>, k<small>2</small>, k<small>3</small> ,… k<small>m</small> . 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ữ ngun đoạn có vị trí chẵn chuyển đổi .
<b> - Ví dụ : Cho hai cá thể A, B là hai chuỗi nhị phân nh sau:</b>
- 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).
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">
- Quy tắc:
+ Giá trị bit thứ i trong mặt nạ bằng 1 (mA<small>i</small> =1) cho biết : thành phần thứ i trong gen của cá thể con (A<small>i</small><sup>’</sup>) đợc sao chép từ của thành phần gen của cá thể cha mẹ (A<small>i</small>) liên kết với mặt nạ này.
+ Giá trị bit thứ i trong mặt nạ bằng 0 (mA<small>i</small> =0) cho biết : thành phần thứ i trong gen của cá thể con (A<small>i</small><sup>’</sup>) đợc sao chép từ của thành phần gen của cá thể cha mẹ (B<small>i</small>) không liên kết với mặt nạ này.
<b> - Ví dụ: Giả sử có hai cá thể đợc chọn lai ghép A, B có gen là hai chuỗi nhị</b>
phân ứng với hai mặt nạ mA, mB sau:
<b>Quy tắc tạo đờng sinh.</b>
<i> - Quy tắc tạo đờng sinh là dạng lai ghép áp dụng cho cách biểu diễn gen</i>
bằng chuỗi số thực.
<i> - 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</i>
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
<b>C<small>i</small> = min( A<small>i</small>, B<small>i</small> ) + B<small>i</small> - A<small>i </small></b>
+ A<small>i</small> , B<small>i</small> , C<small>i</small> 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].
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="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 P<small>mul</small>.
<b> - 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</b>
thể , ta phát sinh một số ngẫu nhiên p thuộc [0,1] . Nếu P<small>mul</small> p thì ta tiến hành đột biến tại bit đó.
- Tố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ể hồn tồ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 tốn khơng cịn hiệu quả.
<b>1. Đột biến giá trị nhị phân.</b>
- Đố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
<i>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</i>
- 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
<i>biến trên một thành phần gen tối đa.</i>
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><b> - Ví dụ: Cho một Gen có chiều dài là 9, đột biến tại vị trí bit 5</b>
<b>2. Đột biến giá trị thực.</b>
- á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ụ tố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<small>’</small> của thành phần gen đó sau khi đột biến sẽ đợc tính theo cơng thức:
<b>A<small>'</small> = A + s*range*delta</b>
<i>Trong đó:</i>
+ 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 = a<small>i</small>*1/2<small>i</small> trong đó a<small>i</small> = 1 với xác suất 1/20.
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27"><b>Chơng IV</b>
<b><small>những ứng dụng của Giải thuật di truyền .</small></b>
<b><small>I . ứng dụng của Giải thuật di truyền trong khoa học tự nhiên.</small></b>
<b>1. ứng dụng trong hoá học.</b>
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 hố ở đâ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 "ngun 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 tốn học; dùng những kinh nghiệm có từ các chun 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 hố học nh: bài tốn mơ phỏng q trình chiết dung mơi hố học, bài tốn tìm điều kiện cân bằng tối u hoá cho các chất.
<b>2 . ứng dụng của Giải thuật di truyền trong tin học.</b>
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.
</div>