0
Tải bản đầy đủ (.pdf) (63 trang)

Văn phạm và ôtômát

Một phần của tài liệu THIẾT KẾ PHẦN MỀM PHÂN TÍCH CÚ PHÁP TIẾNG VIỆT (Trang 27 -29 )

Văn phạm một mặt có thể coi là những định nghĩa cho các câu của một ngôn ngữ, mặt khác còn có thể coi là sự mô tả của một máy trừu tượng có khả năng đoán nhận hoặc sinh những xâu nằm trong ngôn ngữ đó. Những máy này được gọi (một cách trừu tượng) là các ôtômát, và độ phức tạp của những máy này tương ứng với độ phức tạp của các quy tắc sinh trong văn phạm.

Mỗi máy có thể xem là một tập các trạng thái, một thiết bị vào có khả năng truy nhập mỗi lần một ký hiệu vào, và một đơn vị điều khiển có khả năng kiểm tra và đọc đầu vào, chuyển máy sang trạng thái khác. Ngoài ra, những máy này có thể có bộ nhớ, được đơn vị điều khiển truy nhập để lưu giữ hoặc kiểm tra các ký hiệu. Yếu tố quyết định năng lực tính toán của máy là độ phức tạp của bộ nhớ và những thao tác trên bộ nhớ.

Những ôtômát đơn giản nhất là các máy hữu hạn trạng thái hay các ôtômát hữu hạn trạng thái (Finite State Automata -- FSA), các ngôn ngữ mà chúng đoán nhận gọi là các ngôn ngữ chính quy. Ngôn ngữ chính quy có đầy đủ các tính chất của ngôn ngữ phi ngữ cảnh và do đó luôn có thể đoán nhận được bằng một ôtômát với số trạng thái hữu hạn. Các máy hữu hạn trạng thái không có bộ nhớ trong, nên mọi thao tác hoàn toàn được quyết định bởi ký hiệu hiện đang được đọc và trạng thái hiện tại của máy.

Để minh hoạ sự vận hành của các máy nói trên, ta xét văn phạm đơn giản sau: S → aB

B → bB

B → c

Văn phạm này sinh ra ngôn ngữ chính quy abnc. Ôtômát tương đương với nó thường được biểu diễn bằng một sơ đồ trạng thái như hình vẽ sau:

trong đó các nút biểu diễn các trạng thái và các cung biểu diễn các bước chuyển. Nút vuông chỉ rằng đó là trạng thái kết. Với ôtômát này, việc chuyển từ những quy tắc sinh sang sơ đồ trạng thái là: ký hiệu không kết chuyển thành trạng thái, ký hiệu kết chuyển thành bước chuyển.

Sự hoạt động của ôtômát này như sau: việc tính toán bắt đầu từ một trạng thái được xác định trước gọi là trạng thái khởi đầu, ở đây là S; ký hiệu đầu tiên của xâu vào được kiểm tra xem có cung chuyển nào khớp với nó hay không; nếu có thì máy theo cung này chuyển tới trạng thái kế tiếp và tiêu thụ ký hiệu đó, đọc tiếp ký hiệu đứng sau. Quá trình này được tiếp tục cho tới khi máy bị dừng, ví dụ khi không cung chuyển nào là khớp nữa. Nếu máy dừng tại một trạng thái kết và xâu vào đã được tiêu thụ thì ta nói xâu đó đã được đoán nhận.

Nếu ta thêm bộ nhớ hoạt động theo nguyên lý của danh sách vào sau ra trước (LIFO) vào ôtômát (ví dụ một ngăn xếp đẩy xuống), cùng với một số quy tắc điều khiển thì FSA sẽ chuyển thành ôtômát đẩy xuống (Push Down Automaton -- PDA). Các PDA chỉ có thể đoán nhận những ngôn ngữ phi ngữ cảnh.

Nếu bỏ đi hạn chế về tổ chức ngăn xếp trong bộ nhớ trong, chỉ áp dụng ràng buộc quy định kích thước bộ nhớ là hàm tuyến tính theo độ dài của xâu vào, thì ta tạo ra một ôtômát mạnh hơn gọi là ôtômát bị chặn tuyến tính (Linear Bounded Automaton -- LBA). Nếu cần, ta có thể tổ chức bộ nhớ trong sao cho một phần bộ nhớ được tổ chức như một ngăn xếp, phần còn lại là bộ nhớ truy nhập ngẫu nhiên, khi đó sẽ giữ lại được mối liên hệ về mặt cấu trúc với lớp các PDA yếu hơn. Các LBA có khả năng đoán nhận một lớp rất tổng quát của ngôn ngữ, được định nghĩa bởi các văn phạm tuyến tính theo chiều dài, các ngôn ngữ này bao gồm cả các thành phần cấu trúc ngữ pháp cảm ngữ cảnh thường gặp trong ngôn ngữ.

Sau cùng, nếu ta bỏ đi ràng buộc cuối cùng đối với bộ nhớ trong, cho phép nó có kích thước không hạn chế, khi đó ta được lớp ôtômát tổng quát nhất, gọi là các máy Turing (Turing Machines -- TMs). Văn phạm tương đương với nó là hệ thống viết lại không hạn chế, trong đó, các quy tắc sinh được phép viết lại bất kỳ cái gì cũng thành một thứ bất kỳ. Các máy Turing là sự trừu tượng tương tự của các máy tính tuần tự đa nhiệm nguyên thuỷ.

Một trong những vấn đề đầu tiên của lý thuyết các ôtômát là câu hỏi về tính quyết định, được diễn tả hình thức là: có hay không một tiên nghiệm cho phép biết được một lớp các tính toán cho trước có kết thúc trong một thời gian hữu hạn hay không. Cụ thể là, bài toán đoán nhận một xâu không thuộc ngôn ngữ tương ứng với một ôtômát đã cho nói chung không thể quyết định được bởi các TM. Câu hỏi này, về nguyên tắc, là có thể trả lời được đối với các lớp ôtômát yếu hơn.

Một phần của tài liệu THIẾT KẾ PHẦN MỀM PHÂN TÍCH CÚ PHÁP TIẾNG VIỆT (Trang 27 -29 )

×