Sử dụng văn phạm để biểu diễn ngữ nghĩa

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 52 - 54)

Như đã trình bày trong chương 1, sử dụng văn phạm trong GP mang lại nhiều lợi ích như đảm bảo tính đóng, thuận tiện trong việc mã hóa miền giải quyết của bài toán và định hướng cấu trúc cú pháp của chương trình thông qua việc thay đổi văn phạm. Tuy nhiên, việc sử dụng văn phạm phi ngữ cảnh sẽ khó để tích hợp được ngữ nghĩa vào trong GP. Nhiều nghiên cứu đã được thực hiện theo hướng sử dụng văn phạm thuộc tính, văn phạm logic,…

Văn phạm thuộc tính:

Văn phạm thuộc tính được định nghĩa bởi Donald Knuth năm 1968 để hình thức hóa ngữ nghĩa của văn phạm phi ngữ cảnh [85]. Văn phạm thuộc tính được xem như là mở rộng của văn phạm phi ngữ cảnh bằng cách sử dụng các thuộc tính để cung cấp cảm ngữ cảnh. Các cá thể GP được biểu diễn dưới dạng cây văn phạm thuộc tính có thể tích hợp thông tin ngữ nghĩa, có thể hạn chế những cá thể xấu (cá thể có độ tốt kém) từ quần thể [66] hoặc tránh việc tạo ra các cá thể không hợp lệ như trong [64] [65] [67] [46] [47]. Thuộc tính được sử dụng để thể hiện ngữ nghĩa nói chung sẽ phụ thuộc vào bài toán và không phải lúc nào cũng xác định được thuộc tính của một vấn đề.

Hình vẽ 2.1 Văn phạm thuộc tính

Mỗi một biểu tượng phân biệt trong văn phạm thuộc tính có một tập hữu hạn, có thể rỗng các thuộc tính. Mỗi thuộc tính có miền giá trị. Các quy tắc và

42 điều kiện đánh giá được gắn vào mỗi biểu tượng để thay đổi giá trị thuộc tính của nó hoặc kiểm tra xem cây dẫn xuất là hợp lệ hay không.

Văn phạm thuộc tính bên phải trong hình vẽ 2.1 ở trên là tương tự như văn phạm phi ngữ cảnh ở hình bên trái. Điểm khác biệt nằm ở chỗ nó có 21 thuộc tính để lưu trữ các giá trị của biểu thức. Thông tin ngữ nghĩa được sử dụng trong bài toán này để kiểm tra xem một cá thể có đúng với hàm mục tiêu trong một số mẫu hay không. Nếu một cá thể không đúng với hàm mục tiêu, nó sẽ bị loại bỏ khỏi quần thể hoặc được gán độ tốt rất kém. Thông qua việc gắn các thông tin ngữ nghĩa sẽ giúp cải thiện hiệu năng của hệ thống.

Một mở rộng của văn phạm thuộc tính là văn phạm Christiansen [86]. Đây là văn phạm thuộc tính mà các thuộc tính đầu tiên liên quan đến tất cả các biểu tượng. Đây là dạng văn phạm tương thích trong đó tập quy luật của nó có thể thay đổi trong quá trình dẫn xuất. Rosal và cộng sự đã sử dụng văn phạm Christiansen để đưa ngữ nghĩa vào hệ văn phạm tiến hóa nhằm giải quyết các bài toán logic.

Văn phạm logic:

Văn phạm logic được sử dụng như là phương pháp để gắn thông tin ngữ nghĩa vào trong GP. Đây là văn phạm phi ngữ cảnh được bổ sung thêm khả năng cảm ngữ cảnh. Về cơ bản nó giống như văn phạm thuộc tính ngoại trừ các biểu tượng của nó.

Hình vẽ 2.2 Văn phạm logic

Trong văn phạm logic, mỗi biểu tượng, bao gồm cả ký hiệu kết và không kết đều có các tham số. Tham số có thể là một biến logic, một hàm hay một hằng số.

43 Các biến, hàm hay hằng số được gọi là các số hạng. Một biến có dạng dấu chấm hỏi ? theo sau bởi một chuỗi các ký tự hoặc số. Một hàm được biểu diễn bởi một biểu tượng theo sau bởi một tập các số hạng trong ngoặc vuông. Một hằng thì đơn giản là một hàm không có tham số.

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 52 - 54)