1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

126 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 126
Dung lượng 1,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 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 văn tốt nghiệp thạc sĩ

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN ÁN TIẾN SĨ HỆ THỐNG THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC

Hà Nội - 2014

Trang 3

MỤC LỤC

LỜI CAM ĐOAN vi

LỜI CẢM ƠN vii

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT viii

DANH MỤC CÁC BẢNG ix

DANH MỤC CÁC HÌNH ẢNH, ĐỒ THỊ x

GIỚI THIỆU CHUNG 1

MỤC ĐÍCH 1

MỤC TIÊU NGHIÊN CỨU 3

PHƯƠNG PHÁP NGHIÊN CỨU 3

CÁC ĐÓNG GÓP CHÍNH 3

TỔNG QUAN VỀ CẤU TRÚC CỦA LUẬN ÁN 5

CHƯƠNG 1 TỔNG QUAN 6

1.1 GIẢI THUẬT TIẾN HÓA 6

1.2 GIẢI THUẬT DI TRUYỀN 7

1.3 LẬP TRÌNH GEN 9

1.3.1 Lập trình Gen chuẩn có cấu trúc cây 10

1.3.2 Một số vấn đề với lập trình Gen chuẩn có cấu trúc cây 14

1.3.3 GP với biểu diễn tuyến tính 15

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

1.4.1 GGGP với biểu diễn dạng cây 20

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

1.4.3 Một số vấn đề gặp phải với GGGP 24

1.5 VĂN PHẠM NỐI CÂY VÀ LẬP TRÌNH GEN ĐỊNH HƯỚNG BỞI VĂN PHẠM NỐI CÂY (TAG3P) 25

1.5.1 Văn phạm nối cây (Tree-Adjoining Grammar – TAG) 25

1.5.2 Hệ lập trình Gen định hướng bởi văn phạm nối cây 29

KẾT LUẬN CHƯƠNG 37

CHƯƠNG 2 NGỮ NGHĨA TRÊN HỆ TAG3P 39

Trang 4

2.1 NGỮ NGHĨA TRONG LẬP TRÌNH TIẾN HÓA 39

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

2.1.2Sử dụng phương pháp hình thức 43

2.1.3Sử dụng ngữ nghĩa dựa trên biểu diễn của GP 43

2.2 NGỮ NGHĨA TRONG TAG3P 45

2.2.1 Định nghĩa ngữ nghĩa của cây con trong TAG3P 45

2.2.2 Đặc điểm ngữ nghĩa cây con trong TAG3P 52

KẾT LUẬN CHƯƠNG 54

CHƯƠNG 3 TOÁN TỬ DI TRUYỀN DỰA TRÊN NGỮ NGHĨA 55

3.1 TỔNG QUAN VỀ TOÁN TỬ DI TRUYỀN DỰA TRÊN NGỮ NGHĨA 55 3.2 TOÁN TỬ LAI GHÉP DỰA TRÊN NGỮ NGHĨA TRONG HỆ TAG3P 59

3.2.1Toán tử lai ghép dựa trên ngữ nghĩa trong TAG3P 59

3.2.2Thử nghiệm 62

3.2.3Toán tử lai cặp cây con có tổng giá trị ngữ nghĩa dương lớn nhất 68

3.2.4So sánh kết quả với các toán tử tương tự 68

3.3 TOÁN TỬ ĐỘT BIẾN DỰA TRÊN NGỮ NGHĨA TRONG HỆ TAG3P 73 3.3.1Toán tử đột biến dựa trên ngữ nghĩa trong TAG3P 73

3.3.2Thử nghiệm 76

KẾT LUẬN CHƯƠNG 79

CHƯƠNG 4 ỨNG DỤNG 80

4.1 BÀI TOÁN HỌC XẤP XỈ HÀM Q VÀ HÀM NGƯỢC Q 80

4.1.1Hàm Q 80

4.1.2Một số dạng xấp xỉ do chuyên gia đề xuất 82

4.1.3Hàm ngược Q 83

4.2 ỨNG DỤNG HỌC XẤP XỈ HÀM Q 84

4.2.1Xác định hàm thích nghi với bài toán học xấp xỉ hàm Q 84

4.2.2Thiết kế thử nghiệm 88

4.2.3Kết quả và nhận xét 91

4.3 ỨNG DỤNG HỌC XẤP XỈ HÀM NGƯỢC Q 96

Trang 5

4.3.1Xác định hàm thích nghi với bài toán học xấp xỉ hàm ngược Q 96

4.3.2Thiết kế thử nghiệm và kết quả 97

KẾT LUẬN CHƯƠNG 101

KẾT LUẬN 102

HƯỚNG NGHIÊN CỨU VÀ PHÁT TRIỂN CỦA LUẬN ÁN 104

DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN 105

TÀI LIỆU THAM KHẢO 106

Trang 6

LỜI CAM ĐOAN

Tôi xin cam đoan luận án là công trình nghiên cứu của riêng tác giả Các kết quả được công bố với các tác giả khác đều được sự đồng ý của đồng tác giả trước khi đưa vào luận án Các kết quả trong luận án là trung thực và chưa từng được công bố trong bất kì công trình nào khác

Tác giả

Trang 7

LỜI CẢM ƠN

Luận án được hoàn thành tại Viện Công nghệ thông tin và Truyền thông, trường Đại học Bách khoa Hà Nội Để hoàn thành luận án này, tác giả đã nhận được sự chỉ bảo tận tình, sự động viên khích lệ, cùng những yêu cầu của GS.TS Nguyễn Thanh Thủy và PGS.TS Nguyễn Xuân Hoài, những người Thầy đã truyền đạt rất nhiều kiến thức quí báu cũng như những kinh nghiệm nghiên cứu khoa học trong suốt thời gian tác giả theo học nghiên cứu sinh Lời đầu tiên, tác giả xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới các Thầy

Tác giả xin chân thành gửi lời cảm ơn về sự chia sẻ kiến thức khoa học của GS Bob McKay, GS Costi và TS Nguyễn Quang Uy đã giúp ích và hỗ trợ rất nhiều cho tác giả trong suốt quá trình nghiên cứu

Tác giả xin chân thành cảm ơn Ban lãnh đạo Viện Công nghệ thông tin và Truyền thông, Viện Đào tạo Sau đại học, trường Đại học Bách khoa Hà Nội, Ban giám đốc Sở Thông tin và Truyền thông Hà Nội đã tạo điều kiện thuận lợi cho tác giả trong quá trình học tập, nghiên cứu để hoàn thành luận án

Qua đây, cho phép tác giả xin cảm ơn Quỹ Phát triển Khoa học và Công nghệ Quốc gia đã tài trợ một phần cho nghiên cứu này

Tác giả xin cảm ơn các Thầy, Cô trong Bộ môn Hệ thống thông tin - Viện Công nghệ thông tin và Truyền thông, Trường Đại học Bách khoa Hà Nội

Luận án này, như một món quà tinh thần, xin đáp lại những niềm quan tâm, mong mỏi của mọi thành viên trong gia đình, đó là một trong những nguồn động viên để tác giả nỗ lực học tập, nghiên cứu

Trang 8

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

Kí hiệu

viết tắt Kí hiệu đầy đủ Diễn giải

programming

Lập trình Gen định hướng bởi

văn phạm

Grammars

Văn phạm nối cây cấu trúc

từ vựng

based Crossover

Toán tử lai ghép dựa trên ngữ nghĩa tương tự nhất

Crossover

Toán tử lai ghép dựa trên ngữ

nghĩa tương tự

Genetic Programming

Lập trình Gen định hướng bởi văn phạm nối cây

Trang 9

DANH MỤC CÁC BẢNG

Bảng 4.7 So sánh trung bình thời gian huấn luyện của các thử

nghiệm

101

Trang 10

DANH MỤC CÁC HÌNH ẢNH, ĐỒ THỊ

Trang 11

Hình vẽ 2.5 Một ví dụ về cây cơ bản trong văn phạm TAG 47

Hình vẽ 4.2 Lỗi tương đối của các xấp xỉ tìm được khi sử dụng hàm

thích nghi MAE và xấp xỉ OPBCS

86

Hình vẽ 4.3 Lỗi tương đối của các xấp xỉ tìm được khi sử dụng hàm

thích nghi RAE và xấp xỉ OPBCS

Trang 12

GIỚI THIỆU CHUNG

Trong mục này, luận án sẽ giới thiệu khái quát về mục đích của việc nghiên cứu, mục tiêu, phương pháp nghiên cứu, các đóng góp chính của luận án

và cuối cùng là bố cục các phần của luận án

MỤC ĐÍCH

Lập trình Gen (Genetic Programming – GP) được đề xuất bởi Koza [1], từ khi ra đời đã được xem như một phương pháp học máy có tiềm năng Chính vì vậy GP đã được áp dụng rộng rãi để giải quyết thành công nhiều bài toán, trong

đó phần nhiều là các bài toán liên quan đến học máy GP có thể dùng để giải quyết những bài toán học khi độ phức tạp cấu trúc của lời giải là không biết trước, GP đòi hỏi ít tri thức nền của bài toán, và cho lời giải dưới dạng tường minh (cách tiếp cận hộp trắng) cho người dùng

Có nhiều phương pháp học máy được sử dụng như: cây quyết định, mạng nơron nhân tạo, máy vectơ hỗ trợ,… Các phương pháp được tiếp cận theo hai

mô hình là hộp đen (Blackbox) và hộp trắng (Whitebox) hoặc lai ghép giữa hai

mô hình trên Mạng nơ-ron hay máy véctơ hỗ trợ là một ví dụ về mô hình hộp đen, do lời giải thích cho kết quả quá phức tạp để có thể hiểu được Trong khi

đó, lập trình Gen tiếp cận theo mô hình hộp trắng với lời giải có tính giải thích

và ở dạng đóng So với các mô hình học máy khác thì GP có khá nhiều lợi điểm Thứ nhất, GP là phương pháp học quan hệ có khả năng học các tri thức dưới dạng các chương trình máy tính

Thứ hai, GP sử dụng cách tiếp cận hộp trắng cung cấp lời giải dưới dạng tường minh, dễ hiểu hơn đối với người dùng (so với các kĩ thuật học dùng hộp đen như mạng Neural, máy vector hỗ trợ, mô hình đồ thị,…, trong đó lời giải thường ẩn trong các trọng số hay xác suất) Sự tường minh của lời giải trong nhiều trường hợp là cần thiết

Thứ ba, khi so sánh với các mô hình học hộp trắng, GP sử dụng ít tri thức nền của bài toán hơn (trong nhiều trường hợp tri thức này không thể thu nạp dễ

Trang 13

dàng) và tìm kiếm rộng (toàn cục) hơn trên không gian tìm kiếm

Hệ lập trình Gen định hướng bởi văn phạm nối cây TAG3P (Tree-Adjunct Grammar Guided Genetic) được đề xuất trong [2] là hệ thống sử dụng văn phạm nối cây để định hướng quá trình 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

Ngữ nghĩa là một khái niệm được sử dụng nhiều trong xử lí ngôn ngữ tự nhiên và trong lĩnh vực khoa học máy tính Trong thời gian gần đây, vấn đề

nghiên cứu ngữ nghĩa và áp dụng ngữ nghĩa trong các hệ lập trình Gen là hướng

nghiên cứu rất được quan tâm để cải tiến, định hướng cho quá trình tiến hóa

của các cá thể

Mặc dù vậy, khái niệm ngữ nghĩa chưa được nghiên cứu và đề xuất trong

hệ lập trình Gen định hướng bởi văn phạm nối cây Do đó, đây là hướng nghiên cứu cần tiếp tục được thực hiện đối với TAG3P như: nghiên cứu về ngữ nghĩa cây con, thiết kế toán tử di truyền dựa trên ngữ nghĩa

Trong lĩnh vực viễn thông, các nhà nghiên cứu giả thuyết rằng hệ thống nhiễu có dạng biến Gaussian ngẫu nhiên Tuy nhiên, hàm Q chỉ duy nhất được định nghĩa dưới dạng tích phân suy rộng, điều này sẽ gây nhiều khó khăn cho những phân tích sau này đối với với các hệ thống viễn thông Do đó, rất cần thiết phải tìm ra các biểu diễn tường minh (dạng giải tích) của hàm Q Đến thời điểm này, chưa có giải pháp chính xác tuyệt đối cho dạng tường minh của hàm Q, và

do đó, các hàm xấp xỉ là lựa chọn duy nhất

Mặc dù có nhiều hàm xấp xỉ dạng tường minh của hàm Q đã được đề xuất bởi các chuyên gia, nhưng do tính chất quan trọng và phổ biến của hàm Q trong lĩnh vực viễn thông, việc tìm kiếm các hàm xấp xỉ tốt hơn, có dạng giải tích và

có nhiều đặc điểm quan trọng (chẳng hạn như sự đơn giản, tính khả tích,…) vẫn

Trang 14

tiếp tục được thực hiện Thực tế cho thấy, các nhà khoa học vẫn không ngừng

tìm kiếm các dạng xấp xỉ mới, đơn giản hơn, tốt hơn của hàm Q, cụ thể là

trong những năm gần đây, các công trình khoa học tiếp tục đăng tải các dạng

xấp xỉ mới tìm thấy

Với đặc điểm của hệ lập trình Gen nói chung và hệ TAG3P sẽ phù hợp với bài toán tìm xấp xỉ, do đó, trong luận án sẽ ứng dụng các kết quả nghiên cứu mới để tìm kiếm các dạng xấp xỉ mới, đơn giản hơn, tốt hơn của hàm Q Đây là

là kết quả ứng dụng thực tế và rất có ý nghĩa, đặc biệt trong lĩnh vực viễn thông

MỤC TIÊU NGHIÊN CỨU

Đề tài nghiên cứu được triển khai trên cơ sở hệ TAG3P với mục tiêu:

cơ sở để định hướng quá trình tiến hóa của các cá thể

“Ngữ nghĩa”

tế có tính ứng dụng cao là bài toán học xấp xỉ hàm Q và hàm ngược Q

PHƯƠNG PHÁP NGHIÊN CỨU

Đề tài nghiên cứu được triển khai trên với phương pháp nghiên cứu sau:

có liên quan, từ đó nghiên cứu, đề xuất các nội dung nghiên cứu lí thuyết mới

nghiệm để so sánh kết quả và đánh giá hiệu quả ứng dụng trong bài toán thực tế

CÁC ĐÓNG GÓP CHÍNH

Các đóng góp chính của luận án bao gồm:

Trang 15

1 Đề xuất khái niệm “Ngữ nghĩa” của các cây con trong hệ TAG3P Trong

hệ TAG3P trước đây khái niệm ngữ nghĩa chưa được nghiên cứu, đề xuất, chính

vì vậy, việc nghiên cứu và đề xuất khái niệm ngữ nghĩa là sự mở rộng của hệ TAG3P

xuất toán tử lai ghép, toán tử đột biến dựa trên ngữ nghĩa Việc thiết kế với các toán tử mới sẽ giúp quá trình tiến hóa được định hướng tốt hơn dựa trên ngữ nghĩa Kết quả thực nghiệm cho thấy, toán tử di truyền được thiết kế dựa trên ngữ nghĩa thu được kết quả cải tiến so với toán tử thông thường trên TAG3P

học xấp xỉ hàm Q và học xấp xỉ hàm ngược Q, trong đó:

học xấp xỉ hàm Q, hàm ngược Q

và đặc biệt là có độ chính xác rất cao Điều này rất có ý nghĩa bởi bài toán tìm các dạng xấp xỉ của hàm Q có một vai trò quan trọng trong lĩnh vực viễn thông, nó cũng được các nhà khoa học không ngừng nghiên cứu nhằm tìm ra các xấp xỉ mới tốt hơn, đơn giản hơn Kết quả này rất quan trọng vì kể từ khi xấp xỉ OPBCS được đưa ra năm 1979 đến nay, chưa có một xấp xỉ nào tốt hơn được tìm ra Hơn thế nữa, xấp xỉ tìm được này lại có dạng hàm mũ nên rất đơn giản trong quá trình tính toán, phù hợp với đặc điểm sử dụng trong phân tích hệ thống viễn thông

những công bố về dạng tường minh của hàm ngược này

Các kết quả của luận án đã được công bố bao gồm: 02 bài đăng tại các tạp chí có uy tín (trong đó có 01 tạp chí nước ngoài thuộc danh mục ISI), 03 bài báo được đăng tại kỷ yếu hội thảo quốc tế (trong đó có 02 hội nghị quốc tế thuộc danh mục ISI Proceeding) Ngoài ra, một số công trình nghiên cứu của các tác

Trang 16

giả thuộc lĩnh vực viễn thông đã trích dẫn và sử dụng các kết quả nghiên cứu này

TỔNG QUAN VỀ CẤU TRÚC CỦA LUẬN ÁN

Luận án sẽ được trình bày như sau:

Giới thiệu chung: Phần này sẽ trình bày mục đích của việc nghiên cứu, các mục tiêu của luận án đặt ra, phương pháp nghiên cứu, các kết quả đóng góp chính của luận án và cấu trúc các chương trong luận án

Chương 1: Các nội dung lí thuyết và các nghiên cứu trước đây có liên quan sẽ được trình bày, bao gồm: 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 – TAG3P 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

Chương 2: Chương này sẽ trình bày khái quát về các định nghĩa ngữ nghĩa và các toán tử di truyền dựa trên ngữ nghĩa trong một số nghiên cứu gần đây Trên cơ sở đó, khái niệm về ngữ nghĩa của cây con trong hệ TAG3P được

đề xuất Các đặc điểm của ngữ nghĩa trong hệ TAG3P cũng được phân tích trong chương này

Chương 3: Dựa trên ngữ nghĩa, các toán tử di truyền mới đã được thiết kế

và một số thử nghiệm đã được tiến hành để đánh giá kết quả và so sánh hiệu quả của toán tử di truyền dựa trên ngữ nghĩa so với toán tử di truyền thông thường trên TAG3P và với hệ GP khác

Chương 4: Ứng dụng những kết quả nghiên cứu mới để giải quyết bài toán ứng dụng thực tế là bài toán học xấp xỉ hàm Q và hàm ngược của Q

Tiếp theo là danh mục các kết quả đã công bố, hướng nghiên cứu tiếp theo, danh mục tài liệu tham khảo

Trang 17

CHƯƠNG 1 TỔNG QUAN

Chương này sẽ trình bày tổng quan những nghiên cứu trước đây 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 sẽ trình bày chi tiết về hệ lập trình Gen định hướng bởi văn phạm nối cây

Trên cơ sở đó, luận án đưa ra một số hướng nghiên cứu mở rộng cũng như khả năng áp dụng vào các bài toán thực tế

1.1 GIẢI THUẬT TIẾN HÓA

Giải thuật tiến hóa (Evolutionary Algorithms – EA) là tập các giải thuật tìm kiếm mô phỏng quá trình tiến hóa [3]

Sự mô phỏng này được thực hiện theo ba mặt: một là EA sử dụng quần thể gồm tập hợp các cá thể; hai là các cá thể đó cạnh tranh với nhau, dựa trên thuyết chọn lọc tự nhiên của Darwin để tái tạo; ba là quá trình tiến hóa được thực hiện ngẫu nhiên

EA dựa trên quan niệm "Quá trình tiến hoá tự nhiên là quá trình hoàn hảo nhất, hợp lí nhất và tự nó đã mang tính tối ưu" Quá trình tiến hoá thể hiện tính tối ưu ở chỗ thế hệ sau bao giờ cũng tốt hơn thế hệ trước

Năm 1975, giải thuật Gen do John Holland phát minh và được phát triển bởi ông cùng với các đồng nghiệp Đến năm 1992, Koza đã dùng GA để xây dựng các chương trình giải quyết một số bài toán mà kích thước lời giải không được xác định trước và gọi phương pháp này là "Lập trình Gen"

Mặc dù vậy, thuật toán của các EA đều rất giống nhau và được thể hiện như hình vẽ sau:

Trang 18

Kết thúc

Đúng

Hình vẽ 1.1 Sơ đồ khối của thuật giải EA

1.2 GIẢI THUẬT DI TRUYỀN

Giải thuật di truyền (GA) nguyên thủy đã được đề xuất bởi Holland

và là giải thuật tiến hóa khá phổ biến và được sử dụng rộng rãi Đồng thời, nó được nghiên cứu và áp dụng cho nhiều bài toán thực tế

Hệ GA nguyên thủy có sử dụng chuỗi nhị phân tuyến tính và có độ dài cố định để biểu diễn chuỗi Gen Hình vẽ sau đây là ví dụ một chuỗi Gen của hệ giải thuật di truyền:

Hình vẽ 1.2 Biểu diễn cá thể trong GA

Trang 19

Từ khi Holland [4] phát minh ra hệ GA đầu tiên, đến nay đã có một số biến thể GA được đề xuất và sử dụng các biểu diễn khác nhau như: sử dụng mã thực, mã gray, chuỗi Gen với độ dài thay đổi và tương tự như vậy

Hình vẽ 1.3 Các toán tử cơ bản trong GA chuẩn

Điều quan trọng cần lưu ý ở đây là tất cả các biểu diễn trên đều sử dụng biểu diễn chuỗi Gen dạng tuyến tính Tính tuyến tính này tạo thuận lợi cho việc thiết kế các toán tử di truyền khác nhau Với ba toán tử ban đầu, ngày nay nhiều

Trang 20

toán tử di truyền mới và phỏng sinh học đã được đưa ra [4] [5] [6] Hơn nữa, sẽ không khó khăn đối với GA khi sử dụng biểu diễn chuỗi Gen tuyến tính để thiết

kế ra các toán tử mà tạo ra các thay đổi nhỏ khi áp dụng Nói cách khác, nếu có một cấu trúc đồ thị trong chuỗi Gen biểu diễn tuyến tính, nó dễ dàng thiết kế toán tử di truyền để duy trì cấu trúc này Ví dụ như trong GA sử dụng biểu diễn nhị phân tuyến tính, nếu chúng ta sử dụng khoảng cách Hamming để định nghĩa cấu trúc lân cận trong không gian biểu diễn Gen của GA, toán tử đột biết sẽ làm thay đổi nhỏ về khoảng cách Hamming

1.3 LẬP TRÌNH GEN

Lập trình Gen (GP) được định nghĩa như là phương pháp học máy để tạo

ra các chương trình thông qua quá trình tiến hóa [7], là một công nghệ tính toán tiến hóa tự động giải quyết bài toán, không đòi hỏi phải biết dạng thức hay cấu trúc của lời giải [8] [2] [9] [10] GP được kế thừa từ GA và đôi khi được xem như là một nhánh nghiên cứu của GA

GP có thể khái quát là phương thức có hệ thống và độc lập với bài toán để

tự động giải quyết bài toán từ những định nghĩa cấp cao GP dựa trên ý tưởng chính là các chương trình máy tính có khả năng tự tiến hóa để thực hiện một công việc nào đó, được đưa ra bởi Koza vào năm 1992 [1] Kĩ thuật này cung cấp một nền tảng cho việc tạo ra những chương trình máy tính một cách tự động Lập trình Gen đạt được mục đích này bằng việc phát sinh ra một quần thể các chương trình máy tính, sử dụng thuyết tiến hóa của Darwin chọn ra chương trình tốt nhất để thực hiện công việc

GP khác những thuật toán tiến hóa khác ở phạm vi ứng dụng Những thuật toán tiến hóa khác thường được áp dụng cho các bài toán tìm lời giải tối

ưu, trong khi GP được xếp vào nhóm các thuật toán học máy để tìm mô hình phù hợp nhất dựa trên dữ liệu đưa vào

Sự khác biệt giữa GA và GP cơ bản nằm ở mục đích của nó, trong khi GA chủ yếu sử dụng cho bài toán tối ưu thì GP lại được sử dụng cho việc học GA được sử dụng để thực hiện việc tối ưu hóa một hàm dựa trên định nghĩa của hàm

Trang 21

đó, trong khi GP được sử dụng để học một hàm dựa trên tập dữ liệu học Đây là điểm khác biệt nhất giữa GA và GP Ngoài ra, còn một điểm phân biệt khác giữa

GA và GP là GP thường sử dụng biểu diễn chuỗi Gen linh hoạt với kích cỡ và cấu trúc thay đổi Điều này càng cho thấy rõ là GA phù hợp với tối ưu hóa tham

số khi mà cấu trúc đã được biết trước, trong khi GP phù hợp với bài toán học và tìm kiếm về cả nội dung cùng cấu trúc của lời giải và GP đã thành công trong việc giải quyết nhiều bài toán thực tế [7]

1.3.1 Lập trình Gen chuẩn có cấu trúc cây

Mặc dù đã có số lượng các nghiên cứu gần với GP, nhưng trong lĩnh vực

GP lần đầu tiên được đưa ra bởi Koza trong [1], là tài liệu đầu tiên trên thế giới nói về khả năng của GP và đặt nền móng cho lĩnh vực nghiên cứu này Trong tài liệu này, Koza đã đưa ra hệ thống GP dựa trên cơ chế chọn lọc tự nhiên của Darwin, trong tài liệu này sẽ được gọi là hệ GP chuẩn

Quá trình tiến hóa của GP bắt đầu với việc tạo ra ngẫu nhiên quần thể gồm các cá thể (chương trình) Ở mỗi thế hệ, độ tốt của mỗi cá thể chương trình được đánh giá trên cơ sở mức độ tốt của chương trình trong việc giải quyết bài toán đặt ra Do đó, các cá thể sẽ được lựa chọn thông qua các toán tử di truyền (lai ghép, đột biến,…) để tạo ra các cá thể con trong thế hệ tiếp theo Quá trình này lặp đi lặp lại cho đến khi lời giải được tìm ra hoặc khi gặp một số điều kiện dừng nào đó [11] GP phát sinh ra những chương trình máy tính để giải quyết bài toán bằng việc thực hiện các bước sau:

hiệu kết của bài toán

o Thực thi từng chương trình trong quần thể và gán cho nó một giá trị thích nghi dựa vào hàm tính giá trị thích nghi

sau:

 Tái tạo: Sao chép chương trình được chọn vào quần thể mới

Trang 22

 Lai ghép: Tạo ra hai chương trình mới từ hai chương trình có sẵn bằng việc hoán vị một phần chương trình ban đầu tại một nút được chọn ngẫu nhiên trong từng chương trình

 Đột biến: Tạo ra một chương trình mới từ một chương trình có sẵn bằng cách thay thế một phần chương trình được chọn ngẫu nhiên

thuật toán Đây chính là lời giải của bài toán

Hệ lập trình GEN chuẩn sẽ gồm 5 thành phần: 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

Chương trình trong GP được biểu diễn dưới dạng cây, trong đó mỗi nút được gán nhãn là một kí hiệu thuộc tập hàm (F) hay tập kí hiệu kết (T) (trong trường hợp biểu thức tính toán, đó là các toán hạng)

Hình vẽ 1.4 Biểu diễn chương trình GP

b Khởi tạo quần thể

Để tạo một cấu trúc cây, GP lựa chọn ngẫu nhiên một phép tính hay một kí hiệu kết từ tập các phép tính và tập các kí hiệu kết của bài toán Tuy nhiên, việc lựa chọn cũng phải dựa vào tập các tham số điều khiển và phương pháp để phát sinh một cá thể Có các phương pháp khởi tạo quần thể sau:

Full: Phương pháp này tạo nên những cây đầy đủ, là những cây có tất cả các

kí hiệu kết ở mức lớn nhất của cây

Trang 23

Grow: Lựa chọn ngẫu nhiên các phép tính và các kí hiệu kết cho nút gốc Nếu nút gốc là một kí hiệu kết, một kí hiệu kết ngẫu nhiên sẽ được chọn Nếu nút gốc là một phép tính, một phép tính ngẫu nhiên sẽ được chọn, và nút này sẽ

có số lượng nhánh con bằng với số lượng đối số của phép tính Với mỗi nhánh con này, thuật toán grow sẽ lại bắt đầu cho đến khi nhánh con ở mức lớn nhất của cây Trong trường hợp này, nhánh con sẽ được tạo thành bằng cách chọn một kí hiệu kết ngẫu nhiên

Half–and–Half: Phương pháp này là sự kết hợp của 2 phương pháp trên

c Hàm thích nghi:

Để lựa chọn các cá thể cho thao tác lai ghép, tái tạo và đột biến, cũng như đánh giá độ thích nghi (sau đây gọi là độ tốt) của từng cá thể trong việc giải quyết bài toán, hàm tính giá trị thích nghi (gọi tắt là hàm thích nghi) là phương pháp để đánh giá độ tốt của từng cá thể trong quần thể

Độ tốt này được xác định trên cơ sở đánh giá chương trình so với kết quả tập

dữ liệu học Độ tốt của mỗi cá thể thường được chuẩn hóa trước khi được lựa chọn cho các phép toán di truyền Quá trình chuẩn hóa trong GP chuẩn được

trình bày trong [1]

d Toán tử di truyền:

Theo thuyết tiến hóa của Darwin, một quần thể sẽ trải qua nhiều thế hệ, và các cá thể của thế hệ mới là kết quả của sự kết hợp các cá thể trong thế hệ trước Nói cách khác, đó là sự chuyển giao các cá thể cho thế hệ mới trong quần thể, sử dụng các thao tác di truyền Lựa chọn, lai ghép, đột biến, và tái tạo là các toán tử

di truyền được sử dụng để tạo nên các cá thể mới trong mỗi thế hệ

Lựa chọn: Là việc chọn ra các cá thể từ quần thể để phục vụ cho các thao tác

di truyền Có nhiều phương pháp khác nhau [12] để thực hiện việc lựa chọn nhưng phổ biến nhất vẫn là cơ chế lựa chọn dựa vào xác suất độ tốt của cá thể và lựa chọn cạnh tranh Trong cơ chế lựa chọn dựa trên độ tốt của cá thể, mỗi

∑ , trong đó fi là độ tốt

Trang 24

của cá thể thứ i Còn trong trường hợp lựa chọn cạnh tranh, m cá thể sẽ được lựa chọn ngẫu nhiên từ quần thể để tiến hành cạnh tranh, và cá thể thắng cuộc (xét dưới góc độ độ tốt) sẽ được lựa chọn

Tái tạo: Là toán tử thực hiện thông qua việc lựa chọn các các thể và sao chép nguyên mẫu chúng vào quần thể mới

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 độ tốt của cá thể Trong mỗi cấu trúc cây cha mẹ, một nút ngẫu nhiên sẽ được chọn, và những nhánh con bên dưới nút được chọn sẽ được hoán

vị để tạo thành 2 cây mới Như hình vẽ sau vị trí lai ghép là cây con được chỉ bởi mũi tên có nét gạch đứt

Hình vẽ 1.5a Hai cây ban đầu

Hình vẽ 1.5b Hai cây mới tạo ra sau khi thực hiện thao tác lai ghép

Đột biến: Tạo ra một cá thể mới từ một cá thể có sẵn trong quần thể bằng việc thay thế một nút của cây bằng một nút khác trong tập tương ứng

Trang 25

Hình vẽ 1.6.a Cây ban đầu Hình vẽ 1.6.b Cây sau đột biến

Ngoài ra, trong [1], Koza có đưa ra hai điều kiện mà GP phải đáp ứng để phù hợp với một số vấn đề đặc biệt như tính đầy đủ và tính đóng Tính đầy đủ đòi hỏi GP phải có tập nguyên thủy đủ (tập hàm và tập kết) để biểu diễn giải pháp Tính đóng là yêu cầu tất cả các hàm, kí hiệu kết phải cùng kiểu để đảm bảo kết quả toán tử luôn là biểu diễn hợp lệ Do đó, miền các vấn đề giải quyết bởi GP chuẩn hạn chế trong những vấn đề không liên quan đến kiểu Hạn chế này là cơ sở thúc đẩy cho lập trình Gen định hướng bởi văn phạm

1.3.2 Một số vấn đề với lập trình Gen chuẩn có cấu trúc cây

Được xem như là hậu thế của GA, GP kế thừa nhiều đặc tính của GA như quá trình tiến hóa, sử dụng các toán tử di truyền,… Tuy nhiên, việc biểu diễn chuỗi Gen của GP chuẩn là cây biểu diễn bậc cố định, so với biểu diễn tuyến tính (kích cỡ cố định) của GA thì nó phức tạp hơn nhiều

Trang 26

Trong GA, quá trình tiến hóa chỉ ảnh hưởng đến nội dung của Gen trong chuỗi Gen còn trong GP chuẩn dựa trên cấu trúc cây, quá trình tiến hóa thực hiện theo 3 hướng: nội dung, hình dạng và kích thước Với cấu trúc cây, không

có gì đảm bảo là các toán tử phỏng sinh học như chèn, xóa, đúp, di truyền có thể thực thi được trên GP như là trên GA

Trong GP không chắc chắn về tính tự nhiên của cấu trúc hình học trong không gian tìm kiếm [13], hoặc về việc thiết kế các toán tử đảm bảo cấu trúc hình học Thiếu tính tự nhiên của các cấu trúc và thiếu những toán tử tạo ra những thay đổi đóng trong không gian hình học, nghĩa là sẽ khó khăn hơn trong

GP khi nghiên cứu liên quan đến khái niệm lân cận, liền kề, bao gồm cả các nghiên cứu về toàn cảnh độ tốt, ứng dụng chiến lược tìm kiếm tri thức, điều đòi hỏi phải có định nghĩa về cấu trúc, đối tượng liền kề,…

Toán tử lai ghép và đột biến trong GP chuẩn nhìn chung rất dễ bị phá vỡ Do

đó, ngay từ đầu nhiều nghiên cứu đã chỉ ra rằng lai ghép trong GP chuẩn là rất yếu [14] [15] Một số nghiên cứu sau đó chỉ ra rằng lai ghép trong GP chuẩn gần như hoạt động như một toán tử đột biến [16] Tuy nhiên, xét về góc độ đột biến,

có thể thấy sự khác biệt giữa GA và GP chuẩn Trong GA đột biến cấu trúc lại chuỗi Gen một cách tự nhiên và thường làm thay đổi nhỏ trong kiểu Gen [17] Trong khi đó, trong GP chuẩn, toán tử đột biến cây con có tính phá vỡ và mức

độ thay đổi không đóng, nhiều khi rất khó dự đoán Nếu thực hiện đột biến ở lá thì cây con mới tạo ra là nhỏ và mức độ thay đổi là nhỏ Còn nếu cây con thực hiện đột biến ở gốc, nó có thể làm thay đổi hoàn toàn cấu trúc cây Những vấn

đề nêu trên cũng sẽ gặp phải với các biểu diễn khác như biểu diễn đồ thị,… [18] [19]

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

Một số hệ GP biểu diễn tuyến tính đã được đưa ra và chia thành ba nhóm:

GP dựa vào ngăn xếp, GP dựa vào mã máy và lập trình biểu thức Gen

Trong GP dựa vào ngăn xếp [20] [21] [22], mỗi chương trình sẽ lấy tham

số từ ngăn xếp, sau khi thực hiện tính toán, nó đẩy kết quả ngược lại ngăn xếp

Trang 27

Để đảm bảo khỏi tràn và trống ngăn xếp, một số điều kiện kiểm tra được thực hiện Nếu phát hiện ra những nguy cơ thì nó cho phép chương trình tiếp tục tiến hành bằng cách cung cấp giá trị mặc định để tránh làm trống ngăn xếp và loại bỏ

dữ liệu khỏi tràn ngăn xếp

Trong GP dựa vào mã máy [7] [23], dữ liệu được chứa trong thanh ghi Mỗi câu lệnh được đọc ra từ một thanh ghi và ghi lại vào một thanh ghi khác

Dữ liệu được ghi vào trong thanh ghi trước khi chương trình được tiến hành, và kết quả của nó được đưa ra bởi dữ liệu cuối của một hoặc nhiều thanh ghi Các câu lệnh là các đoạn mã máy trực tiếp, làm cho GP tuyến tính tiến hành nhanh hơn các hệ GP khác

Còn với lập trình biểu thức Gen (GEP), ánh xạ giữa kiểu Gen và kiểu hình được sử dụng Kiểu hình là cây biểu diễn GP chuẩn , còn kiểu Gen được biểu diễn như sau: đầu tiên, tất cả các đơn vị nguyên thủy (hàm và kết) được sử dụng

để giải quyết bài toán trong GP chuẩn được đánh chỉ mục bởi một số nguyên Kiểu Gen là một chuỗi tuyến tính có độ dài cố định các số nguyên trong đoạn 0; , trong đó n là số lượng các thành phần của tập nguyên thủy Sau đó,

nó được chia thành 2 phần, phần đầu tiên và bên trái được điền đầy bởi các số nguyên đại diện cho hoặc là hàm hoặc là kí hiệu kết Phần còn lại, bên phải được điền đầy bởi số nguyên đại diện chỉ cho các kí hiệu kết Độ dài của phần đầu là

l, độ dài phần 2 là h x l, do đó độ dài của chuỗi Gen là (h + 1) x l, với l là số nguyên được định nghĩa trước và h là số lượng tham số lớn nhất của các thành phần nguyên thủy

Việc ánh xạ từ kiểu Gen sang kiểu hình, là cây biểu diễn trong GP chuẩn, được thực hiện từ trái sang phải Ở mỗi bước, một thành phần nguyên thủy (hàm hoặc kết) được thể hiện bởi Gen hiện tại được lấy ra để điền vào nhánh chưa hoàn thành tiếp theo của kiểu hình theo thứ tự từ trên xuống dưới và trái qua phải

Trang 28

Quá trình này sẽ kết thúc khi cây biểu diễn được xây dựng từ kiểu Gen hoàn thành Nếu vẫn còn Gen chưa được sử dụng khi kiểu hình đã hoàn thành,

nó sẽ được bỏ qua và coi như những thành phần dư thừa (là phần của kiểu Gen nhưng không được sử dụng để mã hóa kiểu hình) Vào thời điểm hoàn thành, ở phần bên trái của chuỗi Gen, có thể có l hàm chưa điền đầy tham số, và mỗi hàm

có ít nhất h tham số, do đó, có thể có ít nhất h x l tham số chưa hoàn thành khi phần bên phải được khởi tạo Do phần bên phải được điền chỉ với tập kết và độ dài của nó là h x l, nó không thể sử dụng hết trong quá trình ánh xạ kiểu Gen sang kiểu hình Do vậy, mỗi kiểu Gen hợp lệ, kiểu hình được tạo ra bởi quá trình ánh xạ

Hình vẽ sau mô tả một ví dụ về cấu trúc kiểu Gen và ví dụ việc ánh xạ từ kiểu Gen sang kiểu hình trong GEP

Hình vẽ 1.7 Kiểu Gen và kiểu hình trong GEP, với OR=0,

AND=1, NOT=2, a=3, b=4, c=5

Như được đề cập trong [24] [25] việc biểu diễn tuyến tính của GEP là một thuận lợi chính của nó so với GP Nó cho phép GEP thiết kế và thử nghiệm với một loạt các toán tử phỏng sinh học để xem khả năng của nó trong GP Nó cũng

có khả năng đạt được yêu cầu đóng và thay đổi nhỏ trong kiểu Gen như trong

GA

Tuy nhiên, một vấn đề với biểu diễn tuyến tính của GEP đó là việc ánh xạ giữa kiểu Gen và kiểu hình vi phạm mối quan hệ cho biểu diễn của thuật toán

Trang 29

tiến hóa [26] [27] [28] đã nêu ra rằng những thay đổi nhỏ trong kiểu Gen sẽ làm thay đổi nhỏ trong kiểu hình Điều đó có nghĩa là nếu muốn duy trì tính cục bộ thì cần duy trì không gian ánh xạ kiểu Gen và kiểu hình Mặc dù thay đổi nhỏ trong kiểu Gen có thể là đóng và nhỏ thì ảnh hưởng với kiểu hình cũng rất khó kiểm soát Ví dụ, nếu Gen đầu tiên của chuỗi Gen được đột biến, kiểu hình có thể thay đổi hoàn toàn

Hình vẽ 1.8 Ví dụ về việc thay đổi hoàn toàn của kiểu hình

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

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

Trang 30

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 Một 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 đó, nó 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

Trang 31

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)

1.4.1 GGGP với biểu diễn dạng cây

Những nghiên cứu đầu tiên gần như được đưa ra cùng một lúc bởi một số nhà nghiên cứu Whigham [43] đề xuất sử dụng hệ CFG với văn phạm phi ngữ cảnh sử dụng để tạo ra quần thể là cây dẫn xuất trong CFG Schultz trong [44]

sử dụng hệ GGGP để học các qui tắc trong hệ chuyên gia

Trang 32

Hệ này tương tự như Whigham, chỉ khác nhau ở thuật toán khởi tạo quần thể [45] [46] [47] [48] [49] [50] đề xuất sử dụng hệ LOGENPRO sử dụng văn phạm mệnh đề nhất định (DCG), một kiểu văn phạm logic trong LISP để tạo ra chương trình DCG có tính biểu diễn cao hơn CFG, có khả năng tạo ra các ngôn ngữ cảm ngữ cảnh hơn

Đây là điểm khác nhau giữa các hệ thống Với ba hệ thống tương tự nhau, luận án trình bày ở đây chi tiết hơn về CFG-GP trong [43] Năm thành phần cơ bản của GGGP cũng tương tự như hệ GP thông thường Tuy nhiên, có một số đặc điểm lưu ý sau:

a Biểu diễn chương trình

Mỗi một chương trình là cây dẫn xuất được tạo ra bởi văn phạm G (CFG đối với hệ thống của Whigham và Schultz, văn phạm logic DCG đối với hệ của Wong)

b Khởi tạo quần thể

Trong [43], một thuật toán đơn giản được đề xuất để tạo ra cây dẫn xuất ngẫu nhiên với giới hạn về độ sâu dựa trên thủ tục gắn nhãn chương trình Bohm

và Schultz đưa ra thuật toán để khởi tạo quần thể dựa trên phân phối chuẩn của bước dẫn xuất Còn thủ tục khởi tạo trong LOGENPRO kế thừa cơ chế trong PROLOG [51]

Trang 33

hiện tượng tương đồng là hai cây dẫn xuất bắt nguồn từ cùng một kí tự không kết

Toán tử đột biến được thực hiện bằng cách lựa chọn một nút trong một cách ngẫu nhiên Kí tự không kết trong nút này được đánh dấu và cây dẫn xuất phía dưới sẽ được xóa đi Một cây dẫn xuất mới được tạo ra có gốc là kí tự không kết giống như trên thay thế vào cây dẫn xuất đã bị xóa

e Các tham số

Các tham số trong GP chuẩn bao gồm: kích cỡ quần thể, số thế hệ tối đa,

độ sâu tối đa của cá thể và xác suất thực hiện các toán tử di truyền

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

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

mà 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

Trang 34

sử dụng luật MOD và toán tử đóng gói Kiểu hình trong GE 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

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-

Trang 35

(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ệ

Còn đối với hệ GGGP biểu diễn tuyến tính, một phần vấn đề được giải quyết liên quan đến việc thiết kế các toán tử thay đổi nhỏ, đóng và các toán tử phỏng sinh học Tuy nhiên, sự không tuân theo luật nhân quả trong quá trình ánh

xạ giữa kiểu Gen và kiểu hình, có nghĩa là ảnh hưởng của những thay đổi nhỏ và đóng sẽ không xuất hiện trong không gian của kiểu hình

Trang 36

1.5 VĂN PHẠM NỐI CÂY VÀ LẬP TRÌNH GEN ĐỊNH HƯỚNG BỞI

VĂN PHẠM NỐI CÂY (TAG3P)

1.5.1 Văn phạm nối cây (Tree-Adjoining Grammar – TAG)

Văn phạm nối cây [60] đã và đang trở thành loại văn phạm quan trọng trong

xử lí ngôn ngữ tự nhiên (Natural Language Processing – NLP) Mục đích của TAG là chỉ ra một cách trực tiếp cách tạo cấu trúc của các ngôn ngữ tự nhiên so với các hệ viết lại trên xâu thuộc các lớp văn phạm Chomsky Cụ thể là, TAG chỉ ra được quá trình hình thành các câu phức trong ngôn ngữ tự nhiên từ một tập câu đơn giản thông qua việc thêm vào chúng các cấu trúc câu phụ

Trong văn phạm phi ngữ cảnh (Context Free Grammar – CFG) (lớp Chomsky – loại 2), mối quan hệ giữa câu đầu và câu cuối chỉ có thể được phân biệt bằng cách phân tích chi tiết các cây dẫn xuất của chúng Song, trong biểu diễn TAG, cây dẫn xuất tiếp sau được mở rộng trực tiếp từ cây dẫn xuất trước

đó Nói cách khác, việc tạo ra sự khác nhau giữa các cây dẫn xuất trong biểu diễn TAG đơn giản và dễ dàng hơn nhiều so với biểu diễn CFG

Cấu trúc văn phạm của TAG được hình thành bởi hai tập hợp cây con, cây khởi tạo hay còn gọi là cây α, tương ứng với các thành phần cơ bản của ngôn ngữ và cây bổ trợ hay còn gọi là cây β tương ứng với các nhân tố có thể chèn thêm của ngôn ngữ Các cây con này còn được gọi là các cây cơ bản

Cũng giống như đối với các văn phạm Chomsky, các nút của cây được gán bằng các kí hiệu kết (terminal symbols) và không kết (non-terminal symbols), trong đó các nút bên trong phải được gán bằng các kí hiệu không kết, các nút lá

có thể được gán bằng cả hai loại kí hiệu kết hoặc không kết

Văn phạm TAG là một bộ năm thành phần (Σ, N, I, A, S), trong đó:

- Σ: tập hữu hạn các kí hiệu kết

Trang 37

- I: tập các cây khởi tạo Trong cây khởi tạo, các nút bên trong phải được gán bằng các kí hiệu không kết, các nút lá có thể được gán bằng cả hai loại kí hiệu kết hoặc không kết thúc Nút lá có kí hiệu không kết có đánh dấu ↓ thể hiện khả năng thực hiện phép thế tại các nút đó

hiệu không kết Mỗi cây đều có chứa một nút lá trùng tên với nút gốc (mang kí hiệu không kết) Ở nút lá này được đánh dấu bằng kí hiệu * và được gọi là nút chân của cây phụ trợ Mỗi cây phụ trợ chỉ có một nút chân

Trang 38

Hình vẽ 1.12 Phép nối cây trong TAG

Trong phép thế cây, một nút không kết thúc X của cây khởi tạo hoặc cây dẫn xuất được được thay thế bởi một cây khởi tạo dạng X Các cây dẫn xuất được hoàn chỉnh trong TAG (cây dẫn xuất có các nút lá đều được dãn nhãn bởi các ký

tự kết) tương ứng trực tiếp với những cây dẫn xuất được tạo ra trong lớp ngôn ngữ Chomsky

Trang 39

Hình vẽ 1.13 Phép thế cây trong TAG

Đối với văn phạm phi ngữ cảnh, nhìn vào cây dẫn xuất ta biết được ngay các quy tắc viết lại đã thực hiện Đối với văn phạm TAG, từ cây dẫn được ta không thể biết cụ thể các phép viết lại đã được thực hiện để tạo nên cây đó, chính vì vậy, trong hệ hình thức TAG, người ta cần dùng một cấu trúc đặc biệt gọi là cây dẫn xuất để ghi lại các thao tác tạo nên cây phân tích từ các cây cơ bản Mỗi nút trên cây dẫn xuất là tên của một cây cơ bản, mỗi cung biểu diễn một phép kết nối (nét liền) hoặc một phép thay thế (nét đứt) Ngoài ra, mỗi nút tại đó có áp dụng thao tác viết lại được đánh dấu bằng một địa chỉ Gorn

Trang 40

Hình vẽ 1.14 Ví dụ về cây dẫn xuất và cây phân tích trong TAG

1.5.2 Hệ lập trình Gen định hướng bởi văn phạm nối cây

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ừ

Ngày đăng: 30/04/2021, 11:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w