Một DFA hoặc NFA đọc qua một chuỗi đầu vào với một đầu duy nhất, di chuyển từ trái sang phải. Có vẻ tự nhiên khi tự hỏi về các máy trạng thái hữu hạn có nhiều đầu , mỗi đầu di chuyển qua đầu vào từ trái sang phải, nhưng không nhất thiết phải ở cùng một vị trí trong đầu vào như các đầu vào khác.
Hãy để chúng tôi xác định một máy trạng thái hữu hạn với đầu như sau:
Một NFA đầu k là một tuple , trong đó:
Như thường lệ, là một tập hợp hữu hạn của các quốc gia, là một bảng chữ cái hữu hạn, là một trạng thái ban đầu, và là một tập hợp của các quốc gia chấp nhận. Hãy biểu thị tập hợp ký tự bao gồm cả chuỗi rỗng.
là mối quan hệ chuyển tiếp: một sự chuyển tiếp có nghĩa rằng, nếu máy ở trạng thái , nó có thể đọc trong mà là ký tự tiếp theo cho đầu (hoặc nếu đầu mà không di chuyển), và sau đó chuyển sang trạng thái .
Việc chạy loại máy này (bất kỳ đường dẫn nào bắt đầu từ trạng thái bắt đầu và kết thúc ở trạng thái chấp nhận) dẫn đến không phải một chuỗi, mà là chuỗi khác nhau (được hình thành bằng cách nối các ký tự dọc theo đường chạy). Sau đó, chúng tôi nói rằng việc chạy là hợp lệ nếu các chuỗi là giống hệt nhau.
Các ngôn ngữ của máy là tập hợp các chuỗi như rằng có tồn tại một hoạt động hợp lệ của máy mà chuỗi sản xuất cùng chạy được tất cả bằng .
Câu hỏi: Lớp ngôn ngữ được công nhận bởi các máy như vậy là gì? Nó đã được nghiên cứu?
Một quan sát đầu tiên là các máy như vậy tạo ra một lớp lớn hơn các ngôn ngữ thông thường. Ví dụ, ngôn ngữ
(Ở đây, một cạnh dán nhãn với biểu thị một sự chuyển tiếp của mẫu .)
Tuy nhiên, một quan sát thứ hai là không phải tất cả các ngôn ngữ không ngữ cảnh đều được công nhận; ví dụ, dường như ngôn ngữ Dyck không thể được nhận ra bởi các máy head này.