Mối quan hệ của độ phức tạp thuật toán và lớp automata


8

Tôi đã không thể tìm thấy một biểu đồ mô tả hoặc văn bản trả lời câu hỏi sau: Có mối quan hệ trực tiếp giữa độ phức tạp của thuật toán (chẳng hạn như trường hợp tốt nhất / tồi tệ nhất của sắp xếp nhanh) và lớp automata có thể thực hiện thuật toán. Ví dụ, có một phạm vi phức tạp đẩy xuống automata có thể thể hiện? Nếu câu trả lời là có cho câu hỏi đã nói có tài nguyên miêu tả mối quan hệ không? Cảm ơn!


1
"lớp automata có thể thực hiện thuật toán" - trong số đó được đặt ra? Thường sẽ không có một loại duy nhất. Ngoài ra, google "sở thú phức tạp".
Raphael

Câu trả lời:


7

Vâng, có nhiều mối quan hệ trong nhiều trường hợp!

Ví dụ, người ta biết rằng bất kỳ ngôn ngữ nào được chấp nhận bởi các máy đếm ngược giới hạn đều ở (xem tại đây ).P

Tương tự, chúng ta biết rằng tất cả các ngôn ngữ thông thường đều bằng , vì có thuật toán thời gian đa thức để xác định xem NFA có chấp nhận một từ nhất định hay không.P

Có quá nhiều thứ để liệt kê ở đây, nhưng nói chung, các mô hình tính toán hạn chế hơn nằm trong các lớp phức tạp dễ dàng hơn.


1
Ngoài ra, các ngôn ngữ không ngữ cảnh nằm trong P ( thuật toán CYK )
vonbrand

9

Dưới đây là một số kết quả được biết đến:

  1. , trong đó R E GREG=DSPACE(1)=NSPACE(1)=DSPACE(o(loglogn))=NSPACE(o(loglogn))REGlà tập hợp các ngôn ngữ thông thường. Đối với chứng minh, hãy xem trang Wikipedia trên DSPACE .

  2. , trong đó D C F L là tập hợp các ngôn ngữ không có ngữ cảnh xác định và S Clớp của Steve. Xem trang Wikipedia trên D C F L .DCFLSCDCFLSCDCFL

  3. , nơi L O G C F L là tập hợp các ngôn ngữ logspace khử sang ngôn ngữ bối cảnh tự do. Xem trang Wikipedia trên L O G C F L , cũng cung cấp một số ngôn ngữ hoàn chỉnh cho L O G C F L trong phần giảm logspace.NLLOGCFLAC1LOGCFLLOGCFLLOGCFL

  4. , trong đó C S L là tập hợp các ngôn ngữ nhạy cảm theo ngữ cảnh. Xem trang Wikipedia trên C S L .CSL=NSPACE(n)CSLCSL

  5. Lớp ngôn ngữ được chấp nhận bởi các thiết bị không định hình xác định là và lớp ngôn ngữ được chấp nhận bởi các thiết bị không định dạng không xác định là N S P A C E ( n 2 ) . Xem trang Wikipedia trên PDA .DSPACE(nlogn)NSPACE(n2)

  6. Máy tự động hai ngăn có sức mạnh tương đương với máy Turing, nhưng hạn chế kết quả của máy tự động trong các mẫu yếu hơn. Xem một báo cáo kỹ thuật của San Pietro.


3

Có mối quan hệ trực tiếp giữa độ phức tạp của thuật toán (chẳng hạn như trường hợp tốt nhất / xấu nhất của sắp xếp nhanh) và lớp automata có thể thực hiện thuật toán.

Câu hỏi mà lớp automata nào có thể thực hiện một thuật toán nhất định như sắp xếp nhanh là rất khó, bởi vì không rõ điều gì sẽ được tính là việc thực hiện thuật toán đó. Để sắp xếp nhanh, các so sánh được thực hiện chắc chắn phải giống nhau, nhưng phải theo thứ tự so sánh xảy ra cũng giống nhau? Điều gì về thứ tự truy cập đọc vào các yếu tố cụ thể của đầu vào? Thứ tự của các hoạt động sao chép, di chuyển và trao đổi cho các yếu tố cụ thể?

Bạn sẽ phải xác định khá một số thầy mo đối với những hoạt động mà quan trọng với bạn, nhưng sau đó bạn đã có trong một tình huống rất cụ thể dựa trên các thuật toán, và khá xa từ các lớp học chung của automata thường nghiên cứu. Cách giải quyết vấn đề nan giải này là nói về các vấn đề thay vì thuật toán và chính thức hóa các vấn đề bằng cách nói về các ngôn ngữ.

Ví dụ, có một phạm vi phức tạp đẩy xuống automata có thể thể hiện?

Không thực sự, bởi vì một automata đẩy xuống có thể đọc đầu vào của nó chỉ một lần và chỉ theo hướng chuyển tiếp. Tuy nhiên, nếu bạn chia máy thành một phần được phép đọc đầu vào tiến và lùi theo ý muốn và duy trì số lượng con trỏ hữu hạn cho các vị trí đầu vào cụ thể (NL) và một phần là tự động đẩy xuống nhận được đầu vào của nó từ phần khác, sau đó bạn nhận được lớp phức tạp LOGCFL , bằng với SAC 1 (một lớp mạch).

Nếu bạn không tách hai bộ phận và chỉ cần thêm một ngăn xếp để NL, sau đó bạn sẽ có được lớp automata AuxPDA , tương đương với lớp phức tạp P . Nhưng nếu bạn quyết định giới hạn thời gian chạy của automata đó (với bộ lưu trữ phụ trợ stack và logarit) theo thời gian đa thức, thì bạn nhận được NAuxPDA P , một lần nữa bằng với LOGCFL. (Và nếu bạn nhấn mạnh vào thời gian chạy đa thức xác định, loại bỏ ngăn xếp, nhưng cho phép lưu trữ phụ trợ polylogarithmic, thì bạn nhận được SC .)

Mặt khác, nếu bạn giữ hạn chế rằng automata chỉ có thể đọc đầu vào của nó một lần và chỉ theo hướng chuyển tiếp, và yêu cầu thêm rằng nó chỉ có thể sử dụng ngăn xếp của mình theo cách rất xác định trực tiếp dựa trên đầu vào (tức là ký hiệu đầu vào xác định xem automata có đẩy thứ gì đó trên ngăn xếp, bật thứ gì đó từ ngăn xếp hay không để ngăn xếp ngăn xếp), sau đó bạn kết thúc với một automata đẩy xuống rõ ràng, có thể nhận ra chính xác các ngôn ngữ được lồng vào nhau , cũng có thể được nhận ra trong không gian logarit xác định .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.