Trong hình vẽ 2.4 ở trên, có thể thấy là ngữ nghĩa của cây con là hoàn toàn độc lập với cá thể vì việc tính toán ngữ nghĩa của cây con đó (cây biểu thức) được thực hiện độc lập (có thể hiểu là thực hiện bằng cách tách rời cây biểu thức của cây con đó ra để thực hiện việc tính toán ngữ nghĩa). Hay nói cách khác, ngữ nghĩa của cây con sẽ không nói lên được sự liên quan của nó với phần còn lại và với toàn bộ cá thể.
Trong khi đó, theo định nghĩa ngữ nghĩa trong hệ TAG3P, ngữ nghĩa của cây con là mức độ đóng góp của cây con đó trong tổng thể độ tốt của cá thể. Và như phân tích ở trên ngữ nghĩa của cây con có thể là một trong 3 trường hợp:
- Ngữ nghĩa có giá trị âm: tương ứng với trường hợp cây con đó có ảnh hưởng tốt với cá thể.
- Ngữ nghĩa có giá trị dương: tương ứng với trường hợp cây con đó có ảnh hưởng xấu với cá thể.
- Ngữ nghĩa có giá trị bằng không: tương ứng với trường hợp cây con đó không có ảnh hưởng gì đối với cá thể.
Như vậy, ngữ nghĩa được đưa ra ở đây có tính chất cảm ngữ cảnh, nó phản ánh được mối quan hệ của nó (ảnh hưởng xấu, tốt hay không có ảnh hưởng gì) trong ngữ cảnh của một cá thể.
Đó là đặc điểm khác biệt của ngữ nghĩa được định nghĩa trong TAG3P so với các ngữ nghĩa trước đây, đặc biệt trong hệ GP sử dụng biểu diễn dạng cây và để giải quyết bài toán thực.
52 cứu, thí nghiệm để có thể định hướng, sử dụng hiệu quả giá trị ngữ nghĩa thu được của các cây con trong quá trình thực hiện tiến hóa (thông qua các toán tử tiến hóa).
- Với những cây con có giá trị ngữ nghĩa bằng không: trong quá trình tiến hóa hoặc cuối quá trình tiến hóa có thể xem xét loại bỏ các cây con này ra khỏi cá thể. Việc loại bỏ này sẽ không làm thay đổi độ tốt của các thể nhưng lại góp phần làm đơn giản hóa cấu trúc của cá thể. Điều này rất có ý nghĩa trong việc tìm kiếm những lời giải có cấu trúc đơn giản.
- Với những cây con có giá trị ngữ nghĩa là âm, tương ứng là trường hợp cây con có ảnh hưởng tốt. Do ngữ nghĩa có tính quan hệ, điều đó có nghĩa là cây con (đoạn gen) này cần được duy trì trong cấu trúc của cá thể.
Thông qua việc tính toán được ngữ nghĩa cây con, trong quá trình thực hiện tiến hóa (thực hiện các toán tử di truyền) có thể tránh thao tác (lai ghép, đột biến,….) trên các cây con có ngữ nghĩa này để không làm thay đổi hay loại bỏ cây con này khỏi cá thể.
- Với những cây con có giá trị ngữ nghĩa là dương, tương ứng là trường hợp cây con có ảnh hưởng xấu. Do ngữ nghĩa có tính quan hệ, điều đó có nghĩa là cây con (đoạn gen) này cần được xem xét loại bỏ hoặc cấu trúc lại trong cá thể đó.
Thông qua việc tính toán được ngữ nghĩa cây con, trong quá trình thực hiện tiến hóa (thực hiện các toán tử di truyền) có thể tiến hành các thao tác (đột biến, lai ghép, di chuyển,….) trên các cây con có ngữ nghĩa này với mong muốn góp phần cải thiện độ tốt của của cá thể.
KẾT LUẬN CHƯƠNG
Trong chương này luận án đã trình bày những nghiên cứu trước đây về ngữ nghĩa áp dụng trong hệ lập trình Gen.
Trên cơ sở đó, luận án đã đề xuất khái niệm “Ngữ nghĩa” trên hệ lập trình Gen định hướng bởi văn phạm nối cây.
53 Điểm đặc biệt là ngữ nghĩa của cây con trong hệ TAG3P là ngữ nghĩa có tính cảm ngữ cảnh, nó phản ánh được mối quan hệ của nó trong ngữ cảnh của một cá thể.
Trong chương tiếp theo, luận án sẽ trình bày một số toán tử di truyền được thiết kế dựa trên khái niệm ngữ nghĩa của cây con và các thí nghiệm đánh giá hiệu quả của các chúng.
54
CHƯƠNG 3. TOÁN TỬ DI TRUYỀN DỰA TRÊN NGỮ NGHĨA
Trong chương này, luận án sẽ trình bày một số toán tử di truyền được thiết kế dựa trên khái niệm ngữ nghĩa của cây con đề xuất ở chương 2. Trên cơ sở đó, một số thí nghiệm đã được tiến hành để đánh giá hiệu quả của các toán tử.
3.1 TỔNG QUAN VỀ TOÁN TỬ DI TRUYỀN DỰA TRÊN NGỮ NGHĨA
Toán tử lai ghép là toán tử chính trong GP [91]. Trong toán tử lai ghép chuẩn (Standard Crossover - SC), hai cây cha, mẹ được lựa chọn, và hai cây con được lựa chọn từ các cây cha, mẹ đó. Một thủ tục được thực hiện để kiểm tra xem hai cây con đó có hợp lệ để lai ghép không (tính đóng, độ sâu của cây,…). Nếu hợp lệ thì hai cây con sẽ được hoán đổi cho nhau và hai cây mới tạo ra sẽ được đưa vào thế hệ tiếp theo.
Các toán tử lai ghép là các hướng được quan tâm trong nhiều nghiên cứu và có thể được phân thành ba nhóm: Lai ghép dựa vào cú pháp, Lai ghép dựa vào ngữ cảnh, Lai ghép dựa vào ngữ nghĩa.
Đa số các thay đổi, điều chỉnh đối với toán tử lai ghép chuẩn là dựa trên cú pháp [1] [92] [93]. Koza đề xuất toán tử lai ghép trong đó 90% tập trung vào các nút hàm và 10% tập trung vào các nút kết. Mặc dù phương pháp này sẽ hướng tới việc hoán đổi lớn giữa các cá thể, nhưng nó sẽ dẫn tới hiện tượng tràn mã, do đó sẽ khó điều chỉnh lại cá thể trong các thế hệ tiếp theo.
O’Reilly và Oppacher [93] đưa ra toán tử lai ghép có độ cao tương tự, theo đó, độ cao của hai cây cha, mẹ được lưu lại và một độ cao được lựa chọn ngẫu nhiên, khi đó vị trí lai ghép được lựa chọn tại cây cha, mẹ sẽ bị giới hạn bởi độ cao đó. Poli và Langdon [92] đưa ra toán tử lai ghép tại một điểm và lai ghép đồng nhất, theo đó, hai cây cha mẹ được lựa chọn để thực hiện lai ghép sẽ được căn chỉnh dựa trên hình dạng của nó.
Bằng cách đó, hình dạng chung của cây cha, mẹ sẽ được xác định và điểm lai ghép sẽ được lựa chọn từ những nút có hình dạng chung. Toán tử lai ghép
55 kiểu này thường đặc biệt có hiệu quả với các bài toán logic. Nó sẽ tạo ra các thay đổi lớn trong các thế hệ đầu tiên và sẽ điều chỉnh dần trong các thế hệ tiếp theo (khi mà phần hình dạng chung lớn hơn).
Ngữ cảnh cũng được sử dụng như thông tin để lựa chọn vị trí thực hiện lai ghép [94] [95]. Nhóm toán tử lai ghép này khá gần với các toán tử lai ghép dựa trên ngữ nghĩa. Altenberg [94] đưa ra toán tử lai ghép mới, theo đó hai cây cha mẹ được lựa chọn và N toán tử lai ghép ngẫu nhiên được thực hiện để tạo ra 2N cá thể con, sau đó chúng được tính toán độ tốt và hai cá thể con tốt nhất sẽ được đưa vào thế hệ tiếp theo, toán tử này được đặt tên là Soft Brood Selection (SBS). Majeed và Ryan [95] đề xuất toán tử lai ghép Context Aware Crossover (CAC). Theo CAC, sau khi hai cây cha mẹ được lựa chọn để lai ghép, một cây con được chọn ngẫu nhiên từ cây cha đầu tiên và nó sẽ thực hiện lai ghép với tất cả các vị trí có thể của cây thứ hai, và cá thể tạo ra có độ tốt nhất sẽ được lựa chọn.
Trong khi Beadle và Johnson so sánh ngữ nghĩa của hai cây biểu thức logic bằng việc sử dụng Cây quyết định nhị phân thứ tự, McPhee và đồng nghiệp đã trích xuất thông tin ngữ nghĩa từ cây biểu thức logic bằng cách đánh số tất cả các khả năng đầu vào của mỗi cá thể [79]. Theo phương pháp này, họ quan tâm đến ngữ nghĩa của hai thành phần trong cây là cây con và ngữ cảnh, trong đó ngữ cảnh là phần còn lại của cây sau khi loại bỏ cây con.
Một phương pháp khác sử dụng cách đánh giá độ tốt của cá thể [89]. Theo đó, bằng cách xác định ngữ nghĩa của ngữ cảnh có thể biết được cây con sẽ ra sao nếu việc lai ghép được thực hiện ở vị trí cây con bị loại bỏ. Thông tin này sẽ được sử dụng để tính độ tốt và được gọi là hàm độ tốt tiềm năng.
Tuy nhiên, đối với các bài toán hồi qui tuyến tính với các hàm giá trị thực, việc tính toán chính xác ngữ nghĩa là không khả thi, do đó, có một phương pháp là tính toán xấp xỉ, được đề cập trong [90]. Theo đó, ngữ nghĩa của hai cá thể được gọi là tương đương khi thực hiện so sánh chúng trên một tập mẫu ngẫu nhiên các giá trị đầu vào. Hai cá thể được gọi là tương đương nếu lỗi trung bình của chúng trong tập mẫu ngẫu nhiên là nhỏ hơn một giá trị nhỏ tùy ý nào đó.
56 Krawiec và Lichocki đề xuất phương pháp tính ngữ nghĩa của cá thể dựa trên các dữ liệu học [78], khi đó, ngữ nghĩa sẽ được định nghĩa là véc tơ trong đó mỗi thành phần là đầu ra tương ứng với giá trị đầu vào của dữ liệu học. Ngữ nghĩa này định hướng quá trình lai ghép và được gọi là toán tử lai ghép xấp xỉ không gian (Approximating Geometric Crossover – AGC).
Tiếp theo đó, toán tử lai ghép khác được đưa ra bởi Krawiec trong [96], được gọi là lai ghép ngữ nghĩa không gian cục bộ (Locally Geometric Semantic Crossover - LGX). Trong đó, hai cây con được lựa chọn ngẫu nhiên từ hai cây cha mẹ. Một thủ tục được tiến hành để tìm một cây trong tập hợp định nghĩa trước mà có ngữ nghĩa là trung bình của hai cây con được chọn. Sau đó, cây con này sẽ được thay thế vào hai cây con kia.
Gần đây, Moraglio và cộng sự đề xuất một hướng nghiên cứu mới để thiết kế toán tử lai ghép dựa trên ngữ nghĩa [97]. Bắt nguồn từ biểu diễn không gian, một toán tử lai ghép dựa trên ngữ nghĩa được đưa ra với tên gọi là lai ghép không gian ngữ nghĩa (Geometric Semantic Crossover - GSC) để tìm kiếm trực tiếp trong không gian ngữ nghĩa của các hàm, chương trình.
Đối với các bài toán trên miền giá trị thực, Uy và cộng sự [81] đã đề xuất toán tử lai ghép được gọi là Semantics Aware Crossover (SAC) với mục đích để đẩy mạnh việc đa dạng hóa ngữ nghĩa. SAC được triển khai dựa trên việc kiểm tra độ tương đồng giữa hai cây con. Nếu hai cây con được lựa chọn cho lai ghép mà có sự tương đồng về ngữ nghĩa, chúng sẽ bị bỏ qua và tiếp tục chọn ngẫu nhiên hai cây con khác.
57 +
+
sin X
X
Cây con 1 Cây con 2
* + 1 1 + X X * + X 0 2
Hình vẽ 3.1. Cây con tương đồng được lựa chọn
Hình vẽ 3.2. Cây con được tạo ra bởi lai ghép hai cây con tương đồng
Trong hai hình vẽ trên có thể thấy nếu hai cây con được lựa chọn cho lai ghép mà có sự tương đồng về ngữ nghĩa thì hai cây mới được tạo ra sau khi lai ghép sẽ không có sự thay đổi gì.
Tiếp theo đó, SAC được mở rộng thành Semantic Similarity Based Crossover (SSC) trong [80]. SSC khác SAC ở điểm là nó sẽ kiểm tra xem hai cây con có ngữ nghĩa tương tự nhau không (chứ không phải là tương đồng), đồng thời SSC sẽ thực hiện nhiều phép thử.
58 Cuối cùng, phiên bản cải tiến mới nhất là Most Semantically Similar Crossover (MSSC) [98] , bằng cách chọn ngẫu nhiên N cặp cây con và chọn cặp có khoảng cách ngữ nghĩa là nhỏ nhất để tiến hành lai ghép.
Bên cạnh toán tử lai ghép cũng có một số toán tử đột biến dựa trên ngữ nghĩa. Chẳng hạn như trong [99], Uy có đề xuất toán tử đột biến Semantic Aware Mutation (SAM) và Semantic Similarity-based Mutation (SSM). SAM được thực hiện bằng cách chọn ngẫu nhiên một vị trí để tiến hành đột biến và tạo ra một cây con mới, nếu cây con mới được tạo ra có ngữ nghĩa khác với ngữ nghĩa của cây con ở vị trí tiến hành đột biến thì thao tác đột biến được thực hiện bằng cách thay thế cây con mới tạo ra vào vị trí tiến hành đột biến, còn trong trường hợp ngược lại sẽ không thực hiện thao tác đột biến (vì cá thể không có sự thay đổi gì sau khi tiến hành đột biến).
SSM thì được thực hiện bằng cách chọn ngẫu nhiên một vị trí để tiến hành đột biến và tạo ra một cây con mới, nếu cây con mới được tạo ra có ngữ nghĩa tương tự với ngữ nghĩa của cây con ở vị trí tiến hành đột biến thì thao tác đột biến được thực hiện bằng cách thay thế cây con mới tạo ra vào vị trí tiến hành đột biến, còn trong trường hợp ngược lại sẽ không thực hiện thao tác đột biến (vì cá thể không có sự thay đổi gì sau khi tiến hành đột biến).
3.2 TOÁN TỬ LAI GHÉP DỰA TRÊN NGỮ NGHĨA TRONG HỆ TAG3P 3.2.1 Toán tử lai ghép dựa trên ngữ nghĩa trong TAG3P
Với định nghĩa ngữ nghĩa của một cây con được xác định là độ đóng góp của cây con đó đối với toàn bộ cây (cá thể) như đã được đề xuất ở chương 2 và với một số đặc điểm của khái niệm ngữ nghĩa này, khi tiến hành thiết kế toán tử lai ghép, vấn đề đặt ra là làm sao lựa chọn được các cây con có ngữ nghĩa phù hợp để tiến hành lai ghép với mong muốn các cá thể mới thu được sau khi lai ghép sẽ tốt hơn cả thể ban đầu.
Toán tử lai ghép thông thường trước khi tiến hành sẽ thực hiện việc lựa chọn cặp hai cây con ngẫu nhiên từ hai cá thể cha mẹ, trên cơ sở hai cây con này sẽ tiến hành hoán đổi vị trí để tạo thành hai cá thể mới.
59 Với việc tính toán được ngữ nghĩa của mỗi cây con, giá trị ngữ nghĩa sẽ cung cấp thêm thông tin về cây con đó, điều này sẽ giúp ích trong việc lựa chọn các cặp cây con phù hợp để tiến hành lai ghép.
Với hệ TAG3P và định nghĩa ngữ nghĩa được đề xuất, giả sử trường hợp sẽ tiến hành chọn ngẫu nhiên N cặp cây con để trên cơ sở đó lựa chọn một cặp tiến hành lai ghép. Trong số các cặp cây con được lựa chọn ra sẽ một số trường hợp xảy ra như sau:
1. Cặp cây con đều có giá trị ngữ nghĩa là âm.
Trường hợp này cả hai cây con đó có ảnh hưởng tốt với cá thể cha, mẹ tương ứng. Xét về mặt lý thuyết, nếu một cây con có ảnh hưởng tốt với cá thể thì ta nên giữ lại cây con đó trong cá thể. Nếu tiến hành lựa chọn lai ghép ở vị trí cây con này, đồng nghĩa với việc sẽ loại bỏ cây con đó ra khỏi cá thể.
Khi tiến hành chọn ngẫu nhiên N cặp cây con để tiến hành lai ghép, trong số các cặp mà 2 cây con đều có giá trị ngữ nghĩa là âm, một số lựa chọn như sau có thể được thực hiện:
- Chọn cặp bất kỳ mà 2 cây con đều có giá trị ngữ nghĩa là âm để thực hiện lai ghép. Trường hợp lựa chọn này được ký hiệu là TAG3P_GG_RD.
- Chọn cặp mà 2 cây con đều có giá trị ngữ nghĩa là âm nhưng có tổng giá trị ngữ nghĩa là nhỏ nhất.Do ngữ nghĩa của các cây con có giá trị âm nên tổng giá trị ngữ nghĩa là nhỏ nhất có nghĩa là ở trường hợp này chúng ta chọn cặp cây con có tổng ảnh hưởng nhiều nhất để tiến hành lai ghép. Trường hợp lựa chọn này được ký hiệu là TAG3P_GG_MAX.
- Chọn cặp mà 2 cây con đều có giá trị ngữ nghĩa là âm nhưng có tổng giá trị ngữ nghĩa là lớn nhất.Do ngữ nghĩa của các cây con có giá trị âm nên tổng giá trị ngữ nghĩa là lớn nhất có nghĩa là ở trường hợp này chúng ta chọn cặp cây con có tổng ảnh hưởng ít nhất để tiến hành lai ghép. Trường hợp lựa chọn này được ký hiệu là TAG3P_GG_MIN.
60
2. Cặp cây con đều có giá trị ngữ nghĩa là dương.
Trường hợp này cả hai cây con đó có ảnh hưởng xấu với cá thể cha, mẹ