Than ôi, vấn đề của bạn là không thể giải quyết được. Cách tiếp cận mà tôi vấp phải (có thể là quá căng thẳng, vì vậy bất kỳ ai có cách tiếp cận nhanh hơn nên bước lên!) Trước tiên hãy sử dụng một đối số đường chéo để chứng minh rằng có một CSL đơn phương không thường xuyên (trái ngược với kết quả tích cực đối với CFL đơn phương), và sau đó giảm từ sự cố tạm dừng cho các máy Turing bằng cách đưa ra TM , xây dựng CSG mô phỏng trên một đoạn băng ngắn hơn chuỗi phân tích , nhận ra nếu dừng lại mà không vượt quá giới hạn của nó và không phân tích cú pháp khác, để phân tích thành công tất cảM G M w X M G w ∈ X M L ( G ) X GXMGMwXMGw ∈ Xđủ dài iff dừng lại (do đó khác với chỉ có nhiều chuỗi và do đó không thể đều đặn), nếu không, nhận ra ngôn ngữ trống (rõ ràng là thông thường).ML ( G )XG
Điểm mấu chốt của cách tiếp cận này là quan sát rằng các CSG không chỉ liên quan đến các vấn đề ngữ pháp như cấu trúc cụm từ - thực sự, các chuỗi dẫn xuất CSG có thể thực hiện tính toán giới hạn không gian tùy ý (thực sự cóP S P A C E-Hoàn thành các CSL) trước khi bắt đầu kinh doanh việc căn chỉnh với chuỗi phân tích cú pháp. Điều này được quan sát dễ dàng nhất thông qua các chuyển đổi tiêu chuẩn giữa các CSG và ngữ pháp đơn điệu (vẫn tiếp tục hoạt động khi bị giới hạn trong bảng chữ cái đơn nhất) và sử dụng các sản phẩm đơn điệu đơn giản để mô phỏng các chuyển đổi của máy Turing trên các chuỗi đạo hàm đại diện cho các giai đoạn trong lịch sử tính toán. Trong suốt câu trả lời này, tôi sẽ cho rằng người đọc có thể hiểu được hầu hết các chi tiết khi cần có CSG để mô phỏng một tính toán nhất định. (Tôi cho rằng người hỏi thoải mái với tất cả những điều này, nhưng tôi sẽ giải quyết vấn đề này một cách trọn vẹn. Tuy nhiên, hãy thoải mái yêu cầu làm rõ trong các bình luận.)
Đầu tiên, chúng tôi cần CSG đơn phương không thường xuyên của chúng tôi. ( EDIT: vì vậy, điều này là quá mức cần thiết - các CSL đơn phương không thường xuyên có thể dễ dàng được trình bày, ví dụ như thông qua bổ đề bơm trên bất kỳ ngôn ngữ nào thể hiện cơ bản nhất về tính không đều đặn. Xem các nhận xét để biết ví dụ. giống như mang đầu đạn hạt nhân vào một cuộc đấu dao. Hãy xem qua công trình này nếu bạn tò mò, nếu không thì bỏ qua việc giảm bớt.)
Đặt là một phép liệt kê các DFA trên bảng chữ cái , sao cho số lượng trạng thái trong tăng lên trong . Chúng tôi mô tả CSG về hành vi của nó trong khi phân tích chuỗi :{ 1 } D i i G X 1 n ∈ { 1 } *D1, D2, . . .{ 1 }DTôiTôiGX1n∈ { 1 }*
- Không đặc biệt tạo ra một chuỗi "trống" không phải thiết bị đầu cuối, mà chúng tôi nghĩ là "băng". Một trong những thiết bị đầu cuối trống phải là một thiết bị đầu cuối "trống + đầu đọc ghi + trạng thái bắt đầu" riêng biệt. Nếu chuỗi phân tích không phải là thì việc tạo đạo hàm này sẽ thất bại. Chúng tôi mô tả phần còn lại của quá trình theo tính toán xác định được mô phỏng bởi đạo hàm duy nhất có thể.1 nn1n
- In trên băng một mã hóa theo sau là số ở dạng nhị phân, trong đó và c được chọn để chúng ta luôn có đủ không gian trên băng để làm những gì chúng ta cần. (Điều này là có thể vì không gian cần thiết để mã hóa cả D i và i phát triển logarit trong i .) i i = n - cDTôiTôii = n - ccDTôiTôiTôi
- Đánh giá trên đầu vào 1 i . Điều này không yêu cầu băng đại diện của D i - bạn chỉ có thể lưu trữ một trạng thái duy nhất mà bạn thay đổi theo sự chuyển đổi của D i khi bạn giảm i .DTôi1TôiDTôiDTôiTôi
- Nếu từ chối 1 i , ghi đè lên toàn bộ băng bằng các đầu cuối không tạo ra 1 . Nếu không thì thất bại.DTôi 1Tôi1
Ta lấy . Rõ ràng X ≠ L ( D i ) đối với bất kỳ i , vì 1 i + c ∈ X ⇔ 1 i + c ∉ L ( D i ) .X= L ( GX)X≠ L ( DTôi)Tôi1tôi + c∈ X⇔ 1tôi + c∉ L ( DTôi)
Bước tiếp theo là thiết kế giảm từ vấn đề tạm dừng sang vấn đề của người hỏi. (Nếu bạn bỏ qua phần trên, hãy để là một CSL đơn phương không thường xuyên tùy ý được tạo bởi CSG G X. )XGX
Đặt là một TM tùy ý. Chúng tôi chuyển đổi M thành CSG G hoạt động như sau trên chuỗi phân tích 1 n :MMG1n
- Tạo không đầu cuối trống, đầu cuối bên trái là đầu cuối trống + đầu đọc ghi riêng biệt và cũng tạo ra một đầu cuối "không biên" ở mỗi bên. Một lần nữa, nếu chúng ta tạo sai số lượng thiết bị đầu cuối thì chúng ta thất bại.n - 2
- Mô phỏng trong không gian giữa các ranh giới không đầu cuối. Nếu M chuyển sang một trong các trạng thái biên, chúng ta chấm dứt mô phỏng và cho rằng M không bao giờ dừng lại.MMM
- Nếu tạm dừng, cư xử như G X . Nếu chúng tôi phải chấm dứt mô phỏng, thì thất bại.MGX
Lưu ý rằng nếu quản lý để chạy mãi trong phạm vi ranh giới thì G không bao giờ có thể tạo chuỗi phân tích cú pháp và do đó sẽ thất bại. Nếu M dừng lại, thì có một lượng không gian n đủ để chứa toàn bộ tính toán của M , do đó G phân tích 1 m bất cứ khi nào m ≥ n + 2 và 1 m ∈ X , và do đó X là liên kết của L ( G ) và một ngôn ngữ hữu hạn, từ đó L ( G )MGMnMG1mm ≥ n + 21m∈ XXL ( G )L ( G )không thường xuyên Mặt khác, nếu không bao giờ tạm dừng, sau đó L ( G ) = ∅ rõ ràng là thường xuyên.ML ( G ) = ∅
Một thuật toán để quyết định liệu có thường xuyên hay không sẽ xác định liệu M có dừng lại trên một băng trống hay không , điều này là không thể giải quyết được. Theo sau đó là vấn đề của người hỏi là không thể giải quyết được.L ( G )M