TAG có giá trị ứng dụng cao đối với xử lý ngôn ngữ tự nhiên, đặc biệt, một điểm mạnh trong cây dẫn xuất của TAG là khi xóa bất kỳ một cây con nào ra khỏi cây dẫn xuất, phần còn lại vẫn là một cây dẫn xuất TAG và là cây hợp lệ. Nói cách khác, cây dẫn xuất trong TAG là cây có thứ phân không cố định. Hệ quả của điều này là khả năng tạo ra các toán tử mới giống như trong các hệ tính toán phỏng tiến hóa sinh học dùng biểu diễn tuyến tính cho nhiễm sắc thể mà vẫn duy trì tính chất ưu việt của biểu diễn dạng hình cây.
Hệ lập trình GEN định hướng bởi văn phạm nối cây (TAG3P) [2] [9] [61] [62] là hệ thống sử dụng văn phạm nối cây để định hướng tiến hóa. TAG3P sử dụng văn phạm nối cây cùng với văn phạm phi ngữ cảnh để đặt ra những ràng buộc về cú pháp cũng như những sai lệch khi tìm kiếm của chương trình tiến hóa. Hệ thống TAG3P có tất cả những thuộc tính của các hệ thống GP thông thường dựa trên các biểu diễn dạng hình cây khác.
Cấu trúc văn phạm được xác định bằng tập hợp các cây α và cây β. Cấu trúc quần thể là các cây dẫn xuất từ văn phạm này. Việc lượng giá độ tốt của mỗi cá thể được thực hiện bằng cách tạo ra các cây dẫn xuất được tương ứng từ
30 cây dẫn xuất TAG, sau đó đánh giá biểu thức trên cây dẫn được (tương tự như trong GP). Không gian tìm kiếm khi đó được xác định bằng văn phạm, tập hợp tất cả các cây biểu thức GP đều do văn phạm cho trước tạo ra với giới hạn về độ phức tạp của cây này. Tuy nhiên, đặc tính thứ nguyên không xác định của cây giúp kiểm soát một cách dễ dàng theo kích thước của cây, do đó, kích thước của cây được sử dụng để kiểm soát độ phức tạp của cây trong TAG3P thay vì theo chiều cao của cây như trong các hệ GP khác.
Cũng giống như trong hệ lập trình GEN chuẩn, TAG3P gồm 5 thành phần là biểu diễn chương trình, khởi tạo quần thể, hàm thích nghi, toán tử di truyền và các tham số. Cụ thể như sau:
a. Biểu diễn chương trình
Trong TAG3P, cấu trúc văn phạm được xác định bằng tập hợp các cây α và cây β, mỗi cá thể trong một quần thể là cây dẫn xuất của Lexicalized TAG (LTAG), được dẫn xuất từ các văn phạm này.
TAG3P sử dụng sự biến đổi giữa kiểu Gen (genotype) và kiểu hình (phenotype). TAG3P có thể giải quyết bài toán với những ràng buộc cú pháp cảm ngữ cảnh, ràng buộc cú pháp phi ngữ cảnh hoặc (như trong GP chuẩn) không có ràng buộc về cú pháp.
Do đó, kiểu hình có thể là một trong ba trường hợp. Trường hợp đầu tiên, Glex có dạng văn phạm LTAG được sử dụng như là ngôn ngữ hình thức cho việc định nghĩa ràng buộc không gian tìm kiếm, trong trường hợp này, kiểu hình là cây dẫn xuất của Glex. Trong trường hợp thứ hai, văn phạm phi ngữ cảnh (CFG) được sử dụng để tạo ra văn phạm Glex, khi dó, cây dẫn xuất của Glex sẽ được sử dụng là kiểu Gen, còn kiểu hình sẽ là cây dẫn xuất của G (cây dẫn được của Glex). Trong trường hợp cuối, tập các hàm GP và ký hiệu kết được sử dụng để tạo ra văn phạm phi ngữ cảnh G [63]. Nó được chứng minh trong [63] là sẽ có sự ánh xạ 1-1 giữa cây dẫn xuất của G và cây biểu thức trong GP.
Dựa vào đây Whigham kết luận rằng GP chuẩn chỉ là một trường hợp đặc biệt của GGGP.
31
Hình vẽ 1.15. Quá trình ánh xạ
b. Khởi tạo quần thể
Thành phần thứ hai trong TAG3P là thuật giải để khởi tạo ngẫu nhiên quần thể (các cây dẫn xuất Glex). Đây là quá trình lặp đi lặp lại việc tạo ra ngẫu nhiên một cá thể (một cây dẫn xuất Glex).
Việc này được thực hiện bằng cách chọn một số ngẫu nhiên trong khoảng cho trước, sau đó lấy ngẫu nhiên cây α từ tập cây cơ sở trong Glex để tạo ra cây dẫn xuất Glex.
Cây dẫn xuất này sẽ được mở rộng bằng phép nối với một cây β được chọn ngẫu nhiên từ tập cây cơ sở. Quá trình này kết thúc khi kích thước cây đạt tới giá trị được chọn ngẫu nhiên ở trên.
c. Hàm thích nghi:
Để đánh giá sự phù hợp của cá thể, đầu tiên ta sẽ chuyển đổi thành cây dẫn xuất được trong Glex (cây dẫn xuất của G trong trường hợp sử dụng G). Sau đó, quá trình tính toán sự phù hợp của cá thể được thực hiện trên cây dẫn xuất được.
d. Toán tử di truyền:
TAG3P cũng có các toán tử di truyền chính như GP chuẩn là lựa chọn, tái tạo, lai ghép và đột biến
Lựa chọn: Trong TAG3P, các cơ chế chọn phổ biến đều có thể được sử dụng. Đặc biệt, hai cơ chế phổ biến nhất được sử dụng là dựa trên độ thích nghi và cơ chế lựa chọn cạnh tranh.
Tái tạo: Cũng giống như các hệ GP khác, một phần của quần thể được chọn dựa trên độ thích nghi và sao chép chúng vào trong thế hệ mới.
KIỂU GEN (Cây dẫn xuất
LTAG)
KIỂU HÌNH TRUNG GIAN (Cây dẫn được LTAG)
KIỂU HÌNH (Cây GP)
32 Lai ghép: Thao tác lai ghép tạo ra hai cá thể mới từ hai cá thể cha mẹ được lựa chọn từ quần thể dựa vào giá trị thích nghi. Đầu tiên, hai cá thể cha mẹ t1 và t2 được chọn thông qua cơ chế lựa chọn.
Quá trình được thực hiện bằng cách chọn hai nút tương thích trong hai cây. Hai nút được xác định là tương thích khi cây con của một nút có thể gắn vào nút cha của nút còn lại trong cây kia và ngược lại. Sau khi đã tìm được hai nút tương thích, quá trình lai ghép được thực hiện bằng cách hoán đổi hai cây con của hai nút đó.
Ngoài ra, trong quá trình lai ghép, một số điều kiện sẽ được kiểm tra như điều kiện ràng buộc về kích thước. Dưới đây là thuật toán thực hiện với toán tử lai ghép trong TAG3P:
1) Chọn ngẫu nhiên một nút n trong cây t1, không phải là gốc. Giả sử trong cây t1, nút n đang được gắn vào nút h ở địa chỉ a1.
2) Chọn ngẫu nhiên một nút m trong cây t2, ngoại trừ phần gốc. Giả sử trong cây t2, nút m đang được gắn vào nút k ở địa chỉ a2.
3) Nếu {Cây cơ bản n có thể được gắn gắn cây cơ bản k ở địa chỉ a2} và {m có thể được gắn vào cây cơ bản h ở địa chỉ a1}
Thì 2 cây con dưới n và m trong t1 và t2 sẽ được hoán đổi. Di chuyển đến bước 5.
4) Lặp đi lặp lại từ bước một đến bước ba với số lần MAXATTEMPT. 5) Kết quả thu được là 2 cây t1, t2 sau khi đã thực hiện toán tử lai ghép.
33 Đột biến:Trong thao tác đột biến, một cây con được chọn ngẫu nhiên . Sau đó, cây con được loại bỏ và thay thế bởi cây con khác có cùng kích thước. Dưới đây là thuật toán thực hiện với toán tử đột biến trong TAG3P:
1) Chọn ngẫu nhiên một nút n trong cây t. Giả sử n hiện tại đang được gắn đến nút h ở địa chỉ a trong cây t. Kích cỡ của t là l.
2) Tính toán kích cỡ l1 của cây con dưới n. 3) Xóa cây con dưới n.
4) Chọn ngẫu nhiên một số dương l2 mà | l1 – l 2 |≤ δ và l − l 1 + l 2 nằm trong khoảng MINSIZE và MAXSIZE.
5) Chọn ngẫu nhiên một cây cơ bản e có thể gắn được với h ở địa chỉ a. 6) Đặt cây T = e.
7) Phát triển một cách ngẫu nhiên T với kích cỡ l l2. 8) Gắn T vào h ở địa chỉ a. h b a h c a Trước khi đột biến Sau khi đột biến
Hình vẽ 1.17. Thao tác đột biến trong TAG3P
Do tính thứ phân không cố định của biểu diễn TAG, nhiều toán tử mới được thiết kế. Việc sử dụng TAG giúp cho TAG3P có được những toán tử hữu ích và phỏng tiến hoá sinh học hơn so với các toán tử của hệ lập trình Gen và hệ lập trình Gen định hướng bởi văn phạm khác . Việc thiết kế các toán tử đó khó
34 có thể thực hiện trên biểu diễn chuẩn của GP với cấu trúc cây cũng như đối với Hệ lập trình Gen định hướng bởi văn phạm sử dụng cấu trúc cây dẫn xuất trong CFG. Một số toán tử được thiết kế như: di chuyển (relocation), sao lưu (duplication), và đặc biệt là hai toán tử chèn (insertion) và xóa (deletion). Những đặc tính năng này mang lại cho TAG3P những ưu điểm trong việc tìm kiếm mô hình để giải quyết các bài toán hồi quy ký hiệu và tích phân. Bên cạnh đó, trong TAG3P còn thiết kế các toán tử đột biến từ vựng.
Chèn: Nếu kích thước của cá thể con nằm trong giới hạn trên cho phép thì thao tác chèn được thực hiện bằng cách thêm nút lá vào cá thể đó.
Hình vẽ 1.18. Toán tử chèn
Xóa: Nếu kích thước của cá thể còn nằm trên giới hạn dưới thì thao tác xoá được thực hiện bằng cách xóa nút lá ra khỏi cá thể đó.
35 Thay thế nút: Do các cây cơ bản được định nghĩa trước và hữu hạn nên ta có thể định nghĩa ra một tập các cây cơ bản có thể sử dụng để thay thế trong văn phạm Glex. Do đó, khi một nút n được lựa chọn để tiến hành thay thế thì nút m sẽ là một trong các nút được chọn trong tập các cây cơ bản
Hình vẽ 1.20. Toán tử thay thế
Di chuyển: Một cây con được ngắt ra khỏi cá thể (cây dẫn xuất Glex) và được gắn ngẫu nhiên vào vị trí khác trong cá thể. Trong GP, việc di chuyển một Gen có thể được coi như là quá trình sắp xếp trong nội bộ của các mã con trong mỗi cá thể.
a
b c
Trước khi di chuyển Sau khi di chuyển a
c b
Hình vẽ 1.21. Toán tử di chuyển
Thế: Hai nút được chọn ngẫu nhiên và có tính phù hợp (có khả năng thay thế vị trí cho nhau), sau đó sẽ tiến hành hoán đổi vị trí hai nút này.
36 Sao lưu: Một cây con được sao chép và được gắn ngẫu nhiên vào vị trí khác trong cá thể.
Hình vẽ 1.22. Toán tử sao lưu
Cắt bỏ: Một cây con được chọn ngẫu nhiên và sẽ được ngắt khỏi cá thể nếu sau khi ngắt thì cây nhận được có kích thước trong giới hạn cho phép.
Hình vẽ 1.23. Toán tử cắt bỏ
e. Các tham số
Các tham số trong TAG3P bao gồm: kích cỡ quần thể, số thế hệ tối đa, kích thước tối đa và tối thiểu của cây, số lần thực hiện tối đa (thực hiện các thao
37 tác di truyền), xác xuất thực hiện các toán tử di truyền, sự sai khác tối đa về kích thước của cây con cũ và mới khi thực hiện thao tác di truyền (lai ghép, đột biến,…).
Có thể nói TAG3P thuộc về lớp các hệ lập trình Gen định hướng bởi văn phạm, nhưng thay vì sử dụng cây dẫn xuất trong văn phạm phi ngữ cảnh như các hệ lập trình Gen định hướng bởi văn phạm khác, TAG3P sử dụng cây dẫn xuất của hệ văn phạm nối cây. Như đã được chỉ ra gần đây, biểu diễn bởi TAG cho phép mở rộng quá trình tìm kiếm tiến hóa so với các trình diễn bằng văn phạm phi ngữ cảnh. Với mô hình này, lợi ích chính của biểu diễn TAG là sự chuyển đổi khoảng cách các điểm không gian tìm kiếm và khả năng sử dụng kích thước cây thay cho chiều cao cây làm độ đo phức tạp cho mỗi cá thể.
TAG3P tốt hơn GP trong một số bài toán hồi quy và tích phân ký hiệu. Trong các nghiên cứu gần đây đã chỉ ra rằng việc biểu diễn dựa trên TAG là tốt hơn các biểu diễn dựa trên văn phạm phi ngữ cảnh trong tiến hóa để thực hiện tìm kiếm tiến hóa mở rộng.
KẾT LUẬN CHƯƠNG
Trong chương này luận án đã trình bày những lý thuyết và các nghiên cứu có liên quan trong lĩnh vực lập trình Gen, lập trình Gen định hướng bởi văn phạm và đặc biệt là hệ lập trình Gen định hướng bởi văn phạm nối cây. Hệ TAG3P sẽ được sử dụng là nền tảng cho các hướng nghiên cứu của luận án.
Bên cạnh những kết quả thu được trong việc triển khai hệ thống TAG3P, một số hướng nghiên cứu được tập trung trong luận án như sau:
1. Trong TAG3P, mặc dù đã có thiết kế nhiều toán tử, tuy nhiên, tính ngữ nghĩa của các cây con chưa được nghiên cứu trên hệ này. Việc định nghĩa tính ngữ nghĩa của các cây con sẽ giúp xác định được tác động của từng cây con trong quá trình tiến hóa.
2. Dựa trên định nghĩa về ngữ nghĩa trong TAG3P, nghiên cứu đề xuất một số toán tử tiến hóa mới. Việc thiết kế và thử nghiệm với các toán tử mới sẽ giúp
38 quá trình tiến hóa được định hướng tốt hơn dựa trên ngữ nghĩa.
3. Với những nền tảng hệ thống TAG3P và toán tử mới, việc ứng dụng vào giải quyết những bài toán thực tế, trong các lĩnh vực khác nhau là sẽ rất hữu ích. Qua đó, một mặt sẽ đánh giá được hiệu quả của việc ứng dụng TAG3P, mặt khác sẽ cung cấp những kết quả, đặc biệt là kết quả của học máy, là điểm mạnh nhất của GP trong các bài toán thực tiễn, có tính ứng dụng cao.
39
CHƯƠNG 2. NGỮ NGHĨA TRÊN HỆ TAG3P
Ngữ nghĩa là một khái niệm khá rộng được nghiên cứu trong xử lý ngôn ngữ tự nhiên, khoa học máy tính. Trong chương này, luận án sẽ trình bày tóm tắt một số kết quả nghiên cứu trước đây về ngữ nghĩa áp dụng trong hệ lập trình Gen. Đồng thời, trên cơ sở hệ TAG3P, luận án sẽ đề xuất ngữ nghĩa của cây con, ngữ nghĩa này sẽ làm cơ sở cho quá trình định hướng tiến hóa.
2.1 NGỮ NGHĨA TRONG LẬP TRÌNH TIẾN HÓA
Từ khi GP ra đời, GP được xem như là phương thức học tự động thông qua quá trình tiến hóa và quá trình này được thực hiện ngẫu nhiên bằng việc tạo ra các quần thể. Những cá thể trong quần thể sẽ được tính độ tốt, là khả năng giải quyết vấn đề của cá thể đó. Các toán tử được thiết kế để các cá thể sinh ra là các cá thể hợp lệ về cú pháp. Tuy nhiên, xét về góc độ chương trình, điều này không hợp lý. Một chương trình máy tính không những bị ràng buộc về cú pháp mà còn bởi ngữ nghĩa. Do đó, một số nghiên cứu đã được thực hiện để giải quyết vấn đề này.
Ngữ nghĩa là một khái niệm khá rộng được nghiên cứu trong xử lý ngôn ngữ tự nhiên, khoa học máy tính. Có nhiều định nghĩa khác nhau về ngữ nghĩa tùy theo từng lĩnh vực, nói chung ngữ nghĩa có quan hệ chặt chẽ so với cú pháp. Cú pháp liên quan đến hình dạng, cấu trúc bên ngoài của biểu thức, ngữ nghĩa liên quan sâu hơn phía bên trong.
Trong khoa học máy tính, ngữ nghĩa được định nghĩa một cách không chính thức là ý nghĩa của một chương trình hoặc một hàm có cú pháp đúng. Hai chương trình có cùng cú pháp thì sẽ có cùng ngữ nghĩa, nhưng ngược lại thì không chắc là như vậy. Một ví dụ đơn giản như sau đây, nếu xét về cú pháp thì hai chương trình khác nhau về cú pháp. Nhưng xét về ngữ nghĩa thì hai chương trình là có cùng ngữ nghĩa.
40 x = 4; y = 3*x; (2.2)
Trong GP, ngữ nghĩa nói chung sẽ được sử dụng để cung cấp thêm định hướng cho GP trong quá trình tìm kiếm. Định hướng ở đây chính là việc, với thông tin ngữ nghĩa đó sẽ biết được từng thành phần cá thể đó có ngữ nghĩa thế nào trong toàn bộ cá thể, qua đó, việc thực hiện các toán tử lai ghép, ngoài việc thực hiện một cách ngẫu nhiên thì sẽ có thêm thông tin ngữ nghĩa để quyết định quá trình thực hiện toán tử tiến hóa. Chẳng hạn như, khi tiến hành lai ghép hai cá thể, nếu hai cây con sẽ thực hiện lai ghép mà có ngữ nghĩa như nhau (hoặc gần tương tự nhau) thì rõ ràng, qua việc thực hiện lai ghép, các cá thể mới thu