Giải thuật di truyền (genetic algorithm):

Một phần của tài liệu Xây dựng game nuôi thú ảo ứng dụng công nghệ blockchain (Trang 87 - 92)

CHƯƠNG 3 CƠ SỞ LÝ THUYẾT

3.9. Giải thuật di truyền (genetic algorithm):

3.9.1. Tổng quan về giải thuật di truyền:

Giải thuật di truyền (Genetic Algorithm) là các thuật tốn tìm kiếm phỏng đốn (heuristic search algorithms), được dựa trên ý tưởng về chọn lọc tự nhiên và mã gene. Đó là những chiến lược tìm kiếm dựa trên dữ liệu trong quá khứ để tìm kết quả tốt hơn trong không gian nghiệm. Giải thuật di truyền thường được sử dụng để đưa ra những lời giải với chất lượng cao cho các bài toán tối ưu và tìm kiếm (GeeksforGeeks, 2021).

Giải thuật di truyền là một kỹ thuật tìm kiếm được lấy cảm hứng từ thuyết tiến hố của Charles Darwin (V. Mallawaarachchi, 2017), là một phương thức tối ưu để giải các bài toán tối ưu phi tuyến tính (non-linear optimisation problems) hoạt động tương đối giống với di truyền sinh học (Springworks Blog, 2017). Giải thuật này phản ánh quá trình chọn lọc tự nhiên với các cá thể phù hợp nhất được lựa chọn để nhân giống (reproduction) nhằm sản sinh ra thế hệ tiếp theo (V. Mallawaarachchi, 2017).

Giải thuật di truyền mơ phỏng q trình chọn lọc tự nhiên, điều đó có nghĩa là những lồi có thể thích ứng với thay đổi về mơi trường sống mới có khả năng tồn tại và tiếp tục sinh sôi đến thế hệ tiếp theo. Nói cách khác, chúng mơ phỏng sự tồn tại của giải pháp tối ưu giữa các thành phần độc lập (cá thể) trong những thế hệ liên tiếp nhau trong quá trình giải quyết vấn đề. Mỗi thế hệ tồn tại một lượng cá thể nhất định, và mỗi cá thể được thể hiện dưới dạng một điểm trong không gian tìm kiếm (và lời giải tiềm năng - possible solution). Mỗi cá thể trong thuật toán mã gen là một chuỗi

kí tự, số nguyên, số hữu tỉ, v.v. có thể được coi như nhiễm sắc thể (GeeksforGeeks, 2021).

Quá trình chọn lọc tự nhiên bắt đầu với việc chọn lọc những cá thể phù hợp nhất trong toàn bộ các cá thể. Chúng sẽ sản sinh ra lứa tiếp theo kế thừa các tính chất của bố mẹ. Bố mẹ càng khoẻ, con của chúng sẽ càng khoẻ, và do đó, có nhiều cơ hội hơn để sống. Quá trình này tiếp tục lặp lại cho đến khi thế hệ với những cá thể tốt nhất được tìm thấy (V. Mallawaarachchi, 2017). Các genes trong cơ thể chứa protein và các nhân tố khác, trong khi đó, giải thuật di truyền biểu diễn chúng dưới dạng những

con số (Springworks Blog, 2017).

Giải thuật di truyền trải qua 5 giai đoạn (V. Mallawaarachchi, 2017):

● Giai đoạn 1: Initial population (Quần thể nguyên thuỷ): Đây là khởi đầu của quá trình với tập các cá thể gọi là Quần thể (Population). Mỗi cá thể là một nghiệm cho bài toán cần giải, được phân loại bởi một tập các tham số (hay còn gọi là Genes). Những tham số này được kết nối thành một chuỗi để tạo thành nhiễm sắc thể (chromosome). Trong giải thuật di truyền, một tập các genes của một cá thể được biểu diễn dưới dạng chuỗi ký tự (string) là các chữ cái hoặc những giá trị nhị phân.

● Giai đoạn 2: Fitness Function: Xác định độ thích hợp của một cá thể (khả năng cạnh tranh của một cá thể với các cá thể khác) với kết quả trả về được gọi là fitness score. Xác suất một cá thể được chọn để nhân giống được tính tốn dựa trên giá trị này.

● Giai đoạn 3: Selection (Chọn lọc): Đây là giai đoạn chọn ra các cá thể phù hợp nhất để truyền genes của chúng cho thế hệ sau. Dựa trên giá trị fitness

score được tính ở trên, hai cá thể với số điểm cao nhất có nhiều cơ hội hơn để được chọn cho quá trình nhân giống.

● Giai đoạn 4: Crossover (Lai giống): Giai đoạn này có thể được coi như giai đoạn quan trọng nhất trong giải thuật di truyền. Ở đây, khi mỗi cặp bố mẹ giao phối, một điểm giao (crossover point) được chọn ngẫu nhiên từ genes. Lứa sau sẽ được tạo dựa trên việc thay đổi các genes của bố mẹ đến khi đạt điểm giao được chọn.

● Giai đoạn 4: Mutation (Đột biến): Khi lứa con được tạo thành, một số trong các genes của chúng có thể bị đột biến (với xác suất thấp). Hay nói cách khác, một số giá trị trong chuỗi có thể bị lật ngược. Đây là nhân tố quan trọng trong việc đảm bảo độ đa dạng trong quần thể và tránh tiến hoá hội tụ sớm (premature convergence).

Về cơ bản, những đối tượng trong MyPuppies là một chuỗi số nguyên dương 256-bit thể hiện mã gen. Việc xử lý mã gen đó (để hiển thị cho người chơi) hiện tại được thực hiện ở phía client của game.

3.9.2. Một số khái niệm trong giải thuật di truyền: 3.9.2.1. Khơng gian tìm kiếm (search space): 3.9.2.1. Khơng gian tìm kiếm (search space):

Quần thể các cá thể được duy trì trong khơng gian tìm kiếm. Mỗi cá thể đại diện cho một lời giải trong khơng gian tìm kiếm cho một vấn đề được đưa ra. Mỗi cá thể được thiết kế dưới dạng một vector có độ dài hữu hạn (tương tự nhiễm sắc thể) các phần tử. Những biến trong đó cũng có thể được hình dung giống các gen. Do đó, một nhiễm sắc thể (của một cá thể) được cấu thành từ nhiều gen (các biến bên trong).

Hình 30. Hình ảnh minh họa cho khơng gian tìm kiếm (search space)

3.9.2.2. Fitness score:

Fitness score (tạm dịch là “điểm đánh giá tính thích nghi”) được dành cho các cá thể, đánh giá khả năng cạnh tranh của cá thể đó. Bài tốn sẽ đi tìm cá thể có fitness score tối ưu (hoặc gần như tối ưu).

Giải thuật di truyền lưu giữ quần thể của n cá thể (có thể được coi như các nhiễm sắc thể hay nghiệm) cùng với fitness score của chúng. Các cá thể có fitness score cao hơn có nhiều cơ hội tái sinh hơn phần cịn lại. Những cá thể có fitness score cao được chọn để phối giống và sản sinh ra thế hệ sau tốt hơn bằng cách kết hợp nhiễm sắc thể của bố mẹ. Kích thước quần thể khơng có khả năng mở rộng, do đó, một số cá thể phải chết đi để nhường chỗ cho các cá thể mới cho đến khi cơ hội phối giống ở quần thể cũ đã cạn kiệt. Thuật tốn này có kỳ vọng là qua những thế hệ nối tiếp nhau, lời giải tốt hơn sẽ xuất hiện, trong khi những lời giải không tốt sẽ mất dần.

Mỗi thế hệ mới có các gen trung bình tốt hơn các cá thể (nghiệm) của thế hệ trước đó. Do đó, các thế hệ mới có nghiệm riêng tốt hơn thế hệ trước đó. Một khi thế hệ con khơng thể sản sinh ra các cá thể có sự khác biệt rõ ràng với thế hệ trước, quần thể đã đi về điểm hội tụ. Khi đó, có thể nói thuật tốn đã đi về điểm hội tụ với một tập các nghiệm cho bài toán.

3.9.2.3. Các toán tử (operators) trong giải thuật di truyền:

Một khi thế hệ ban đầu được khởi tạo, thuật toán phát triển lên các thế hệ tiếp theo nhờ vào các toán tử sau:

- Toán tử chọn lọc (selection operator): chọn ra những cá thể với fitness scores tốt và cho phép chúng đưa gen của mình đến các thế hệ kế tiếp.

- Toán tử giao (crossover operator): toán tử này đại diện cho việc giao phối giữa các cá thể. Hai cá thể được chọn sử dụng toán tử chọn lọc và các điểm giao được lựa chọn ngẫu nhiên. Sau đó, gen ở các điểm giao này được trao đổi để tạo thành cá thể con hồn tồn mới.

Hình 31. Hình ảnh minh họa cho tốn tử giao

- Toán tử đột biến (mutation operator): toán tử này đưa các gen ngẫu nhiên vào cá thể con để đảm bảo tính đa dạng của quần thể và hạn chế khả năng xảy ra hội tụ sớm.

Một phần của tài liệu Xây dựng game nuôi thú ảo ứng dụng công nghệ blockchain (Trang 87 - 92)

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

(141 trang)