GGGP với biểu diễn tuyến tính

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 33 - 35)

Cũng như với GP chuẩn, GGGP cũng có những biểu diễn chương trình dưới dạng tuyến tính. Giải pháp chính được sử dụng là ánh xạ giữa kiểu Gen và kiểu hình, trong đó kiểu Gen là chuỗi tuyến tính còn kiểu hình là cây dẫn xuất của văn phạm (G). Trong một số nghiên cứu trước đó [52] [53] [54] [55], kiểu Gen là chuỗi cố định được sử dụng để mã hóa chỉ số của luật dẫn xuất trong văn phạm G. Việc chuyển đổi từ kiểu Gen sang kiểu hình được thực hiện từ trái sang phải và kiểu hình (cây dẫn xuất trong văn phạm G) được hình thành tương ứng. Ở mỗi bước, nếu vẫn còn nhánh chưa kết thúc của kiểu hình được đánh dấu bởi ký tự không kết, một Gen (gồm một số bit) sẽ được đọc và biên dịch như là số nguyên, tương ứng với quy luật trong tập luật P của văn phạm G có nhánh bên trái là A, sẽ được sử dụng để mở rộng cho nhánh của kiểu hình. Nếu kiểu hình đã hoàn thành mà vẫn còn kiểu những Gen chưa sử dụng trong kiểu Gen, nó sẽ bị bỏ qua vì đó là những Gen dư thừa. Trong trường hợp đã sử dụng hết các Gen là kiểu hình vẫn chưa được hình thành đầy đủ thì một số cây dẫn xuất con sẽ được tạo ra ngẫu nhiên để hoàn thành kiểu hình.

Một ví dụ về GGGP sử dụng biểu diễn tuyến tính là tiến hoá văn phạm (Grammatical Evolution – GE) được đưa ra trong [56] [57] [58] [59]. GE là mở rộng của GGGP với biểu diễn tuyến tính với ba cải tiến: độ dài thay đổi, dư thừa

23 sử dụng luật MOD và toán tử đóng gói. Kiểu hình trong GE là có độ dài thay đổi, mỗi Gen là số nhị phân tám bit sử dụng để xác định luật cho ký tự không kết khi nó được mở rộng. Nếu số thập phân biểu diễn bởi Gen lớn hơn số các luật cho các ký tự không kết thì toán tử dư sẽ được sử dụng để tính toán số luật.

Giả sử ta có văn phạm G là văn phạm CFG, G = (∑, , , ), trong đó

∑ = +, −, , là tập các ký hiệu kết, = , là tập các ký hiệu không

kết và tập quy luật sinh như sau: 0: EXP →EXP OP EXP 1: EXP →A

2: EXP →B 0: OP →* 1: OP →/

Hình vẽ sau là ví dụ ánh xạ giữa kiểu Gen và kiểu hình trong GE đối với văn phạm nêu trên

Hình vẽ 1.10 Một ví dụ về ánh xạ giữa kiểu Gen và kiểu hình trong GE

Có hai vấn đề chính đối với biểu diễn GE. Đầu tiên là một kiểu Gen hợp lệ có thể mã hóa ra kiểu hình không hợp lệ (không tính được độ tốt), chẳng hạn như trường hợp trên, nếu kiểu Gen là “0310” sẽ không thể giải mã được vì quá trình đó không bao giờ kết thúc, nó mã hóa ra chuỗi không kết thúc (A-(A-(A-

24 (A-…)))). Việc này có thể xử lý bằng cách gán cho cá thể đó độ tốt thấp, tuy nhiên sẽ là không đơn giản nếu số lượng cá thể kiểu này nhiều.

Vấn đề thứ hai gặp phải là nó không tuân theo luật nhân quả, mặc dù có những toán tử có những thay đổi nhỏ và có thể kiểm soát được những thay đổi trong kiểu Gen, kết quả thay đổi trong kiểu hình là không dự đoán trước được. Một thay đổi nhỏ trong một Gen ở một vị trí có thể thay đổi hoàn toàn của tất cả các Gen theo sau đó, đặc biệt, nó có thể làm thay đổi một kiểu hình từ hợp lệ thành không hợp lệ. Ví dụ như chuỗi Gen “011100001” là chuỗi Gen hợp lệ, nếu đột biến Gen số 4 thành 0, nó sẽ trở thành “011000001”, đây là kiểu hình không hợp lệ.

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 33 - 35)