2.1.1. Giới thiệu
Trong ngành khoa học máy tính, tìm kiếm lời giải tối ƣu cho các bài toán là vấn đề đƣợc các nhà khoa học máy tính đặc biệt rất quan tâm.Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ƣu nhất cho bài toán trong thời gian nhỏ nhất. Các thuật toán nhƣ tìm kiếm không có thông tin/vét cạn (tìm kiếm trên danh sách, trên cây hoặc đồ thị) sử dụng phƣơng pháp đơn giản nhất và trực quan nhất hoặc các thuật toán tìm kiếm có thông tin sử dụng Heurictics để áp dụng các tri thức về cấu trúc của thông gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm đƣợc sử dụng nhiều nhƣng chỉ với không gian tìm kiếm nhỏ và không hiệu quả khi tìm kiếm trong không gian tìm kiếm lớn.
Trong thực tiễn có rất nhiều bài toán tối ƣu với không gian tìm kiếm rất lớn cần phải giải quyết.Vì vậy, việc đòi hỏi thuật giải chất lƣợng cao và sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán có không gian tìm kiếm lớn.Giải thuật di truyền là một trong những kỹ thuật tìm kiếm lời giải tối ƣu đã đáp ứng đƣợc yêu cầu của nhiều bài toán và ứng dụng.
Từ những năm 1962, tại Mỹ, J.H.Holland đã đƣa ra các khái niệm đầu tiên của giải thuật di truyền.Tại Đức, vấn đề đƣợc nghiên cứu dƣới tên gọi giải thuật tiến hóa bởi các nhà nghiên cứu Rechenberg và Schwefel.Tuy có tên gọi và đƣợc tiếp cận với cách khác nhau nhƣng các nghiên cứu trên đều bắt nguồn từ các nguyên tắc tiến hóa của tự nhiên.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 2.1: Giải quyết vấn đề bằng giải thuật di truyền. 2.1.2. Các tính chất quan trọng của giải thuật di truyền
Giải thuật di truyền lập luận mang tính chất ngẫu nhiên để tìm giải pháp tối ƣu cho những vấn đề phức tạp, thay vì xác định nhƣ toán học giải tích. Tuy nhiên đây là hình thức ngẫu nhiên có hƣớng dẫn bởi trị số thích nghi.Chính hàm số thích nghi giúp giải thuật di truyền tìm giải pháp tối ƣu trong rất nhiều giải pháp có thể có.
Giải thuật di truyền không chú ý đến chi tiết vấn đề, trái lại chỉ chú ý đến giải pháp cho vấn đề, hay tìm điều kiện tối ƣu cho việc điều hành, và phân nhóm những giải pháp có đƣợc.
Giải thuật di truyền đƣợc sử dụng đặc biệt cho những bài toán yêu cầu tìm kiếm tối ƣu toàn cục với không gian tìm kiếm lớn và không thể kiểm soát nhờ khả năng duyệt qua không gian tìm kiếm đại diện mà không thực sự đi qua từng điểm của toàn bộ không gian.
Ƣu điểm của giải thuật di truyền là tính song song. Giải thuật di truyền duyệt trong không gian tìm kiếm với nhiều đơn thể, vì thế hiếm khi chúng bị tắc nghẽn ở cực trị cục bộ nhƣ những phƣơng pháp khác. Chúng còn dễ cài đặt, một khi bạn có
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
một giải thuật di truyền nào đó, bạn chỉ cần viết nhiễm sắc thể mới để giải bài toán khác.Với cùng cách mã hoá, chỉ việc thay đổi hàm thích nghi ta cũng có thể giải bài toán.Tuy nhiên, việc chọn cách mã hoá và hàm thích nghi có thể khó khăn.
Nhƣợc điểm của giải thuật di truyền là thời gian tính toán.Chúng có thể chậm hơn các phƣơng pháp khác.Nhƣng với máy tính ngày nay thì đây không phải là vấn đề quá lớn.
2.1.3. Cơ sở sinh học của giải thuật di truyền
Giải thuật di truyền đƣợc xây dựng từ lý thuyết tiến hoá của Darwin, nguyên lý cơ bản của những giải thuật này là duy trì một quần thể các gen có cấu trúc xác định làm đại diện cho các phƣơng pháp giải quyết một vấn đề. Quần thể này đƣợc phát triển trên cơ sở cạnh tranh lẫn nhau trong điều kiện biến động có kiểm soát, bao gồm sự tái tổ hợp hay còn gọi là lai giống, và đột biến gen của các cá thể trong quần thể. Quá trình này tạo ra sự tiến hóa của các quần thể với một tính chất quan trọng là: thế hệ sau luôn thích nghi với môi trƣờng tốt hơn so với thế hệ trƣớc. Những cá thể có độ thích nghi cao hơn sẽ đƣợc lựa chọn cho thế hệ sau.Khi giải thuật kết thúc, ngƣời ta đã chứng minh đƣợc rằng những cá thể ƣu tú nhất, có mức độ thích nghi cao nhất với yêu cầu của bài toán sẽ đƣợc chọn. Các hoạt động lai ghép và đột biến gen sẽ góp phần tạo ra những bộ gen mới, làm thay đổi bộ mặt của quần thể. Tuy xảy ra với tần số thấp, nhƣng với số lƣợng cá thể lớn và kéo dài qua nhiều thế hệ, những hoạt động này bảo đảm sẽ không bỏ sót những giải pháp tối ƣu không đƣợc tạo ra ngay ban đầu.
2.1.4. Sơ đồ thực hiện giải thuật di truyền
Giải thuật di truyền đơn quần thể:
Giả sử chúng ta đã có phƣơng pháp mã hóa di truyền cho bài toán và xây dựng hàm lƣợng giá độ thích nghi cho các cá thể. Giải thuật di truyền bao gồm các bƣớc sau:
Bước 1: Khởi tạo quần thể ban đầu.
Bước 2: Lƣợng giá hàm mục tiêu hay tính độ thích nghi cho từng nhiễm sắc thể trong quần thể.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Bước 3: Kiểm tra điều kiện tối ƣu. Nếu điều kiện tối ƣu đƣợc thỏa mãn thì chuyển sang bƣớc 5. Nếu không chuyển sang bƣớc 4.
Bước 4: Thực hiện tạo quần thể mới bằng cách thực hiện các cơ chế di truyền nhƣ chọn lọc, lai ghép, đột biến. Các cá thể mới sinh ra đƣợc thay thế cho các cặp cha mẹ trong quần thể cũ.
Bước 5: Khi điều kiện tối ƣu đƣợc thoả mãn, giải thuật dừng và trả lại cá thể tốt nhất.
Hình 2.2: Sơ đồ giải thuật di truyền.
Mô phỏng giải thuật di truyền:
Thỏa Điều kiện tối ƣu Không Đánh giá hàm thích nghi Bắt đầu Tạo quần thể Cá thể tốt nhất Chọn lọc Lai ghép Đột biến Kết thúc
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Cấu trúc của một giải thuật tiến hóa nói chung và của một giải thuật di truyền nói riêng có dạng nhƣ trên. Ở bƣớc lặp t, giải thuật di truyền duy trì một quần thể các lời giải.Mỗi lời giải đƣợc đánh giá để biết đƣợc độ thích nghi của nó.Ở mỗi quần thể mới (tức ở lần lặp thứ t + 1) đƣợc hình thành bằng cách chọn và giữ lại những cá thể thích nghi nhất.Một số cá thể của quần thể này trải qua những biến đổi nhờ lai ghép và đột biến hình thành nên những lời giải mới.
Một quá trình đơn quần thể nhƣ trình bày trên là khá mạnh và có thể đƣợc áp dụng tốt cho một lớp lớn các bài toán. Tuy nhiên chúng ta có thể thu đƣợc kết quả tốt hơn nếu nhƣ sử dụng không chỉ một mà là nhiều quần thể, hay còn gọi là các quần thể con. Mỗi quần thể con sẽ tạo ra một vài thế hệ cô lập trƣớc khi có sự trao đổi một hay nhiều cá thể giữa các quần thể với nhau. Lúc này, giải thuật di truyền đƣợc gọi là đa quần thể và việc mô phỏng sẽ gần gũi với tự nhiên hơn giải thuật đơn quần thể.
Begin
t = 0; // biến lưu trữ giá trị quần thể thứ t Khởi tạo quần thể ban đầu P(t);
Tính độ thích nghi cho các cá thể thuộc P(t); Lặp (Khi chưa thỏa điều khiển dừng)
t = t + 1;
Tái sinh P’(t) từ P(t); // Replication Lai ghép Q(t) từ P(t-1); // Crossover Đột biến R(t) từ R(t-1); // Mutation Chọn lọc P(t) từ P; // Selection Kết thúc lặp
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2.1.5. Ứng dụng
Giải thuật di truyền mặc dù mới đƣợc phát triển trong thời gian gần đây nhƣng đã thu đƣợc những thành công lớn ở nhiều ngành khác nhau, cả trên lý thuyết và thực tiễn, trong các lĩnh vực nhƣ khoa học, kinh doanh và giải trí. Đặc biệt ngƣời ta có thể kết hợp giải thuật di truyền với những giải thuật khác để tạo thành một cơ chế điều khiển tự động nhiều tầng, cho phép giải những bài toán tối ƣu phức tạp một cách nhanh chóng với độ chính xác có thể chấp nhận đƣợc.
Một số lĩnh vực giải thuật di truyền đã đƣợc ứng dụng thành công: - Phân tích dữ liệu và mô hình dự báo.
- Thiết kế mạng nơron. - Quy hoạch chiến lƣợc. - Quỹ đạo cho ngƣời máy. - Lập trình di truyền.
- Tìm dạng của các phân tử protein
- Bài toán ngƣời du lịch (Travelling Salesman Problems) và lập thời gian biểu. - Giải những bài toán khó.
2.2. Các khái niệm chung về giải thuật di truyền2.2.1. Chuỗi nhiễm sắc thể 2.2.1. Chuỗi nhiễm sắc thể
Giải thuật di truyền là giải thuật tìm kiếm dựa trên sự mô phỏng di truyền học tự nhiên thông qua các cơ chế chọn lọc tự nhiên và sự tiến hóa của các gen. Các gen liên kết với nhau tạo thành chuỗi nhiễm sắc thể.
Một chuỗi nhiễm sắc thể S là một xâu có độ dài cố định thành lập trên bảng mã di truyền A nhƣ sau:
S = (d0, d1, …dn) SAn,diA
Trên tập hợp các chuỗi nhiễm sắc thể ta định nghĩa các hàm.
* Hàm len trả lại độ dài của chuỗi
S = (d0, d1, …dn) =>lenSnS
* Hàm thực hiện ghép hai chuỗi
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
B = (b1, b2, … bm)
AB(a1, a2, … an, b1, b2, … bm)
Nói chung, trong giải thuật di truyền các chuỗi nhiễm sắc thể là các chuỗi bit nhị phân. Khi đó
A = {0,1}
* Khoảng cách Hamming giữa hai chuỗi A và B là | | ) , ( 1 n i i i B A B A
H with lenA = lenB = n
2.2.2. Các cá thể
Mỗi cá thể là một phần tử của quần thể, là đối tƣợng thực hiện các quá trình tiến hóa nhƣ lai ghép, đột biến, sinh sản và chọn lọc tự nhiên.Mỗi chuỗi nhiễm sắc thể đặc trƣng về mặt di truyền cho một cá thể.
2.2.3. Phương pháp mã hóa
Mỗi cá thể I có một bộ gen S thể hiện bởi chuỗi nhiễm sắc thể của I. Tƣơng ứng với mỗi bộ gen S thì cá thể I có một kiểu hình M nhất định. Trong khi đó, các bài toán chúng ta cần giải quyết đều đƣợc biểu diễn thông qua kiểu hình của cá thể trong quần thể. Do đó cần phải có phƣơng pháp chuyển đổi từ M sang S. Phƣơng pháp này còn gọi là phƣơng pháp mã hóa di truyền cho bài toán.
2.2.4. Quần thể
Các giải thuật di truyền không làm việc với các cá thể đơn lẻ mà thực hiện trên toàn bộ quần thể gồm nhiều cá thể. Khi thực hiện giải thuật di truyền, các quần thể sẽ trải qua các quá trình tiến hóa đƣợc mô phỏng theo tiến hóa tự nhiên. Bắt đầu từ quần thể ban đầu P0 lần lƣợt các thế hệ đƣợc sản sinh nối tiếp nhau và thông qua quá trình tiến hóa thì thế hệ sau càng có tính thích nghi cao hơn so với thế hệ trƣớc.Đây là đặc tính quan trọng nhất, là cơ sở hình thành nên giải thuật di truyền.
Quần thể ban đầu có thể khởi tạo bằng cách tạo ra p xâu ngẫu nhiên bất kỳ có độ dài l đóng vai trò chuỗi nhiễm sắc thể của các cá nhân ban đầu. Hoặc chúng ta có thể khởi tạo quần thể bằng cách tạo ra các cá thể có kiểu hình nhất định rồi từ đó tìm ra kiểu gen của từng cá thể. Tuỳ theo bài toán phƣơng pháp đƣợc sử dụng là
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
khác nhau nhƣng đều phải đƣa đến kết quả là tạo ra quần thể ban đầu P0 có chất lƣợng tốt nhằm tối thiểu hóa thời gian tính toán.
2.2.5. Hàm thích nghi
Hàm thích nghi f(I) là hàm lƣợng giá khả năng thích nghi của cá thể I đối với môi trƣờng. Hàm thích nghi f(I) đƣợc sử dụng để định hƣớng, điều khiển quá trình tiến hóa của cả quần thể theo một hƣớng nhất định.
2.2.6. Lai ghép, đột biến, tái sinh và chọn lọc
Một cá thể mới sinh ra trong quá trình tiến hóa có thể mang những đặc tính, tính trạng của cha mẹ hoặc có thể mang những đặc tính hoàn toàn mới.Tuy nhiên hiện tƣợng đột biến xảy ra với xác suất nhỏ hơn rất nhiều so với hiện tƣợng di truyền nhƣng di truyền và đột biến là hai cơ chế có vai trò quan trọng nhƣ nhau trong quá trình tiến hóa. Các thuật toán tiến hóa đều mô phỏng bốn quá trình cơ bản sau: Lai ghép, đột biến, sinh sản và chọn lọc.
* Lai ghép: Lai ghép là quá trình hình thành nhiễm sắc thể trên cơ sở các nhiễm sắc thể cha mẹ bằng cách ghép một hay nhiều đoạn gen của hai hay nhiều nhiễm sắc thể cha mẹ với nhau. Quá trình lai ghép đƣợc mô phỏng: Chọn ngẫu nhiên hai hay nhiều cá thể bất kỳ trong quần thể. Giả sử các nhiễm sắc thể của cha mẹ đều có m gen. Tạo một số ngẫu nhiên trong khoảng từ 1 đến m-1 ta gọi là điểm lai. Điểm lai chia các chuỗi cha mẹ dài m thành hai nhóm chuỗi con dài m1 và m2. Hai chuỗi nhiễm sắc thể con mới sinh sẽ là m11 + m22 và m21 + m12. Đƣa hai cá thể này vào quần thể để tham gia quá trình tiến hóa tiếp theo.
* Đột biến: Đột biến là hiện tƣợng cá thể con mang một số tính trạng không có trong mã hóa di truyền của cha mẹ. Phép đột biến đƣợc mô tả: Chọn ngẫu nhiên một cá thể bất kỳ trong quần thể có m gen. Tạo một số ngẫu nhiên k trong khoảng từ 1 đến m. Thay đổi gen thứ k của cá thể và trả cá thể này về quần thể để tham gia quá trình tiến hóa tiếp theo.
* Tái sinh: Tái sinh là quá trình trong đó các cá thể đƣợc sao chép trên cơ sở độ thích nghi của nó. Mô tả: Tính độ thích nghi của từng cá thể trong quần thể hiện hành f(I), cộng dồn độ thích nghi ký hiệu là Fm. Tạo một số ngẫu nhiên F trong đoạn
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
từ 0 đến Fm. Chọn một cá thể thứ k thỏa mãn F ≥ Fk đƣa vào quần thể của thế hệ mới.
* Chọn lọc: là quá trình loại bỏ các cá thể xấu trong quần thể để chỉ giữ lại trong quần thể các cá thể tốt. Mô tả: Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần. Loại bỏ các cá thể cuối dãy để chỉ giữ lại các cá thể tốt nhất mong muốn.
2.3. Các phép toán di truyền. 2.3.1. Mã hóa 2.3.1. Mã hóa
Giải thuật di truyền bắt đầu với quần thể, tập của nhiều cá thể (nhiễm sắc thể).Nhiễm sắc thể bằng cách nào đó chứa thông tin về nghiệm mà nó biểu diễn.
Mã hóa nhiễm sắc thể là một trong những vấn đề cực kỳ quan trọng khi chúng ta bắt đầu giải quyết bài toán bằng giải thuật di truyền.Sự mã hóa các biến phụ thuộc vào từng bài toán, làm sao để chọn ra một phƣơng pháp mã hóa tốt để giải quyết bài toán là vấn đề khó. Ta đƣa ra hai nguyên tắc để chọn mã trong giải thuật di truyền là: nguyên tắc các khối xây dựng có ý nghĩa và nguyên tắc ký tự tối thiểu.
Nguyên tắc các khối xây dựng có ý nghĩa nhƣ sau: “Ngƣời dùng nên chọn một mã sao cho các sơ đồ ngắn, bậc thấp thì thích hợp đối với bài toán cơ bản và không liên quan tới vị trí cố định khác”.
Nguyên tắc ký tự tối thiểu: “Ngƣời dùng nên chọn những bộ ký tự tối thiểu cho phép thể hiện đƣợc tính tự nhiên của bài toán”
Phần này giới thiệu một vài phƣơng pháp mã hóa đã sử dụng thành công.
2.3.1.1 Mã hóa nhị phân
Cách đƣợc dùng phổ biến nhất để mã hóa nhiễm sắc thể là dùng chuỗi nhị phân. Mỗi nhiễm sắc thể chứa một chuỗi nhị phân, ký hiệu bằng các chuỗi bit 0 và