Chương 3 Các mạng chuyển
3.1. Văn phạm và ôtômát
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 đố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 tố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 đố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 đó ln có thể đố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 tố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 đố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ể đố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 đố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 qt 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 tố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 tốn đố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.