LẬP TRÌNH GEN ĐỊNH HƯỚNG BỞI VĂN PHẠM

Một phần của tài liệu Nghiên cứu ngữ nghĩa trong hệ lập trình Gen định hướng bởi văn phạm nối cây và ứng dụng trong xấp xỉ hàm Q luận án tiến sỹ (Trang 29)

Như đã trình bày ở trên, những yêu cầu về tính đóng làm hạn chế lĩnh vực giải quyết vấn đề của GP. Tuy nhiên, trong thực tế, nhiều vấn đề được đưa ra. Ví dụ bài toán về cây quyết định thực hiện trong khai phá dữ liệu [29], đòi hỏi các thuộc tính phải có các kiểu khác nhau. Hậu quả là không gian cây biểu thức trong GP chuẩn có thể chứa một số các cá thể không hợp lệ. Thậm chí có thể ban đầu xuất phát là các cá thể hợp lệ, qua quá trình tiến hóa, các toán tử di truyền có thể tạo ra các toán tử không hợp lệ.

Một giải pháp đối với ràng buộc nguyên thủy của GP (cả kiểu hàm và kết) là gắn các kiểu vào. Các toán tử di truyền được thiết kế để có thể nhận biết được kiểu của các thành phần nguyên thủy. Nó tạo ra một nhánh của GP gọi là GP

19 theo kiểu (Strongly-Typed GP - STGP), được đưa ra bởi Montana trong [30] [31]. Hình vẽ sau mô tả một ví dụ về biểu diễn và toán tử lai ghép trong GP theo kiểu

Hình v 1.9. Mt cá th trong STGP

Mục tiêu quan trọng của STGP là giảm không gian tìm kiếm bằng cách tránh việc bùng nổ các cá thể không hợp lệ. Do đó, có tăng cơ hội tìm kiếm các lời giải so với hệ GP không theo kiểu. Ví dụ, trong [32] đã chứng minh là bằng việc tìm kiếm trong không gian chỉ gồm các các thể hợp lệ, STGP ưu thế hơn các hệ GP chuẩn. STGP hữu ích trong một số bài toán được trình bày trong [33] [34] [35] [36]. Một hướng mở rộng của STGP bằng cách sử dụng kiểu phân cấp, kiểu kế thừa theo mô hình hướng đối tượng.

Một hướng khác để giải quyết yêu cầu đóng trong GP là sử dụng văn phạm hình thức để ràng buộc cú pháp đối với chương trình. Ngôn ngữ hình thức được sử dụng rộng rãi trong việc định nghĩa ngôn ngữ của một số lĩnh vực, như trong ngôn ngữ lập trình và ngôn ngữ tự nhiên [37]. Đã có một số nghiên cứu về việc sử dụng ràng buộc dựa trên văn phạm áp dụng với GP được gọi là lập trình Gen định hướng bởi văn phạm (GGGP).

Sử dụng văn phạm giúp mã hóa miền tri thức về cấu trúc cú pháp của chương trình. Do miền tri thức ràng buộc cấu trúc lời giải, sử dụng văn phạm sẽ giúp kiểm soát được cấu trúc. Trong [1] một số cơ chế học đơn giản sử dụng để mã hóa cấu trúc cú pháp của lời giải. Hơn thế nữa sử dụng văn phạm hình thức sẽ cung cấp cách thức linh hoạt hơn. Ngoài ra, sử dụng văn phạm sẽ dễ điều hướng về cấu trúc cú pháp của chương trình bằng cách thay đổi văn phạm. Do văn phạm nằm ngoài hệ GP chứ không phải là một thành phần của GP, việc điều

20 hướng có thể thay đổi bằng cách thay đổi văn phạm mà không phải triển khai lại hệ thống. Ngoài ra, việc cài đặt điều hướng trong chương trình dẫn đến việc giảm không gian tìm kiếm, do đó tăng cơ hội tìm kiếm được lời giải. Cuối cùng, việc sử dụng văn phạm để thiết kế các toán tử tương đồng.

Antonisse trong [38] là người đầu tiên sử dụng văn phạm phi ngữ cảnh (CFG) để tạo ra chuỗi Gen dựa trên văn phạm trong GA. Hệ thống GA đầu tiên dựa trên văn phạm sử dụng chuỗi Gen từ ngôn ngữ được tạo ra bởi CFG. Khi toán tử lai ghép được thực hiện giữa hai cá thể, cần phải chuyển đổi vào hai cây dẫn xuất của G và việc lại ghép được thực hiện tương tự như trong GGGP với biểu diễn dạng cây. Với một chuỗi có thể có hơn một cây dẫn xuất nếu văn phạm là nhập nhằng. Do đó, trong [38] thì việc sử dụng văn phạm nhập nhằng là không được phép.

Sau khi Antonisse đề xuất hệ GA sử dụng văn phạm, một số nghiên cứu sử dụng văn phạm để kiểm soát cấu trúc của chương trình trong GP. Stefanski trong [39] đề xuất sử dụng cây cú pháp trừu tượng để khai báo định hướng trong GP. Robston trong [40] có giải thích tại sao văn phạm hình thức được sử dụng để đưa ra ràng buộc trong GP. Mizoguchi và Hemmi trong [41] [42] đề xuất sử dụng luật sinh để tạo ra ngôn ngữ mô tả trong quá trình tiến hóa. Robston sử dụng văn phạm để tạo ra quần thể ban đầu, trong khi các nghiên cứu khác chỉ đưa ra mô tả hình thức. Không có hệ thống nào duy trì cây dẫn xuất của văn phạm, hoặc phân tích ra từ chuỗi (Stefanski) hoặc tổng hợp với STGP (Robston).

Một phần của tài liệu Nghiên cứu ngữ nghĩa trong hệ lập trình Gen định hướng bởi văn phạm nối cây và ứng dụng trong xấp xỉ hàm Q luận án tiến sỹ (Trang 29)