tiểu luận lý thuyết tính toán undecidable problems about turing machine

15 535 1
tiểu luận lý thuyết tính toán undecidable problems about turing machine

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG  Đề tài: UNDECIDABLE PROBLEMS ABOUT TURING MACHINE GVHD: PGS.TS PHAN HUY KHÁNH NHÓM HỌC VIÊN: NGUYỄN TUẤN TRUNG LÊ QUỐC DŨNG NGUYỄN VĂN PHÚ MÔN: LÝ THUYẾT TÍNH TOÁN LỚP: CAO HỌC KHÓA 24 CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH Đà Nẵng, tháng 05 năm 2012 MỤC LỤC *** BỘ GIÁO DỤC & ĐÀO TẠO 1 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG 1 MỤC LỤC 1 U 6 M 7 M’ 7 M 10 ML 10 M’ 10 LỜI MỞ ĐẦU Trong thời kỳ phát triển công nghệ cao, thời đại mà thông tin, tri thức trở thành lực lượng sản xuất trực tiếp, thời đại của xã hội thông tin và nền kinh tế tri thức được hình thành trên cơ sở phát triển và ứng dụng rộng rãi công nghệ thông tin và truyền thông. Cuộc cách mạng thông tin cùng với quá trình toàn cầu hóa đang ảnh hưởng sâu sắc đến mọi lĩnh vực trong đời sống kinh tế - xã hội, đưa con người chuyển nhanh từ xã hội công nghiệp sang xã hội thông tin, từ kinh tế công nghiệp sang kinh tế tri thức, ở đó năng lực cạnh tranh phụ thuộc chủ yếu vào năng lực sáng tạo, thu thập, lưu trữ, xử lý và trao đổi thông tin. Máy tính đóng vai trò quan trọng trong cuộc cách mạng này. Lý thuyết tính toán là nền tảng lý thuyết của thông tin và tính toán để tạo ra sự thực thi và các ứng dụng trên hệ thống máy tính. Nó nghiên cứu các khả năng tính toán khi áp dụng trên các loại máy tính hiện hành. Nguyên lý đã được phát triển bởi Alan Turing và những nhà khoa học khác. Nó cung cấp những kiến thức cơ bản về máy tính như: Các máy truy cấp ngẫu nhiên, các ôtômát hữu hạn trạng thái, các ngôn ngữ hình thức và văn phạm được sử dụng, lý thuyết về độ phúc tạp tính toán, lý thuyết ước tính, mô hình máy Turing, các hàm đệ quy, … Trong khuôn khổ đề tài này chúng tôi chỉ trình bày những hiểu biết về một phần của lĩnh vực về máy Turing. Đề tài gồm các phần chính như sau: Phần I: Lý thuyết – Dịch nội dung “ Chapter 9.3: Undecidable Problems About Turing Machine”. Phần II: Bài tập. Chúng tôi xin chân thành cảm ơn PGS.TS. Phan Huy Khánh đã tận tình giảng dạy và hướng dẫn để chúng tôi hoàn thành tiểu luận này. Mặc dù đã nghiên cứu kỹ phần lý thuyết để có được cách giải quyết bài tập đúng đắn nhưng không thể tránh khỏi những thiếu sót, kính mong nhận được sự góp ý của Thầy và các anh chị trong lớp để đề tài được hoàn thiện tốt hơn. Nhóm thực hiện báo cáo: Nguyễn Tuấn Trung (nhóm trưởng) Lê Quốc Dũng Nguyễn Văn Phú Phần I: NỘI DUNG LÝ THUYẾT (Chapter 9.3: Undecidable Problems About Turing Machine) 9.3. Các bài toán không giải được của máy Turing: Chúng ta sẽ sử dụng ngôn ngữ L u và L d liên quan đến ngôn ngữ liệt kê đệ quy và các ngôn ngữ đệ qui để minh họa cho các khả năng không giải được và ngôn ngữ không liệt kê đệ qui. Kỹ thuật rút gọn sẽ được sử dụng để chứng minh. Phần này sẽ liên quan đến việc chứng minh “định lý Rice”, định lý này cho rằng bất kỳ thuộc tính dị thường nào của máy Turing phụ thuộc vào ngôn ngữ mà máy Turing chấp nhận thì ngôn ngữ đó là ngôn ngữ không giải được. 9.3.1. Sự rút gọn: Thông thường, nếu ta có thuật toán để chuyển trường hợp của bài toán P 1 sang trường hợp của bài toán P 2 mà nó cho cùng đáp số thì chúng ta nói P 1 rút gọn xuống P 2 . Chúng ta cũng có thể sử dụng cách chứng minh này để minh họa rằng P 2 dễ hơn P 1 . Vì vậy, nếu P 1 là không đệ qui thì P 2 không thể đệ qui. Nếu P 1 không là liệt kê đệ qui thì P 2 cũng không thể là liệt kê đệ qui. Hình 9.7: Các rút gọn chuyển trạng thái khẳng định sang khẳng định và trạng thái phủ định qua phủ định. Như trong hình 9.7, một sự rút gọn phải chuyển đổi bất kỳ một trạng thái nào của P 1 có trả lời “yes” sang một trạng thái của P 2 cũng phải có trả lời “yes”, và mỗi trạng thái nào của P 1 có trả lời “no” sang một trạng thái của P 2 cũng phải trả lời “no”. Chú ý rằng không cần thiết mỗi trạng thái của P 2 phải là kết quả của một trong các trạng thái của P 1 , và trong thực tế thì thường chỉ một phần nhỏ trạng thái của P 2 là kết quả của sự rút gọn. Thông thường sự rút gọn P 1 thành P 2 là một máy Turing lấy một trạng thái của P1 được ghi trên băng của nó và sẽ dừng tại một trạng thái của P 2 trên băng từ. Trong thực tế, ta thường mô tả các sự rút gọn như là các chương trình máy tính lấy một trạng thái của P 1 như nhập liệu và tạo ra trạng thái của P 2 như phần xuất. Việc tương đương của máy Turing và chương trình máy tính cho phép chúng ta mô tả sự rút gọn bằng hai phương pháp. Sự quan trọng của việc rút gọn được nhấn mạnh bởi định lý sau: * Định lý 9.5: Nếu có một sự rút gọn từ P 1 thành P 2 thì: a. Nếu P 1 không giải được thì P 2 cũng không giải được. b. Nếu P 1 không là liệt kê đệ qui thì P 2 cũng không là liệt kê đệ qui. Chứng minh: Giả sử P 1 không giải được. Nếu ta có thể giải P 2 thì chúng ta có thể kết hợp sự rút gọn P 1 thành P 2 với giải thuật giải bài toán P 2 để xây dựng một giải thuật giải bài toán P 1 . yes no yes no P 1 P 2 Để chi tiết hơn, giả sử rằng ta có thể hiện w của P 1 . Áp dụng thuật toán sau vào w: chuyển w thành trạng thái x của P 2 , sau đó áp dụng thuật toán giải P 2 cho trạng thái x. Nếu thuật toán cho câu trả lời “yes” thì x thuộc P 2 . Do chúng ta rút gọn P 1 thành P 2 nên câu trả lời cho w của P 1 cũng là “yes”, nghĩa là w thuộc P 1 . Ngược lại, nếu x không thuộc P 2 thì w sẽ không thuộc P 1 . Tóm lai câu trả lời “x có thuộc P 2 hay không?” cũng sẽ là câu trả lời cho “w có thuộc P1 hay không?”. Nhưng điều này lại trái với giả thuyết “P 1 không thể giải được”, kết luận “nếu P 1 không thể giải được thì P 2 cũng không thể giải được”. Với phần (b), giả thuyết rằng P 1 là không liệt kê đệ qui và P 2 là liệt kê đệ qui. Ta có thuật toán rút gọn P 1 thành P 2 , nhưng ta chỉ có một thủ tục để nhận dạng P 2 . Đó là: có một máy Turing trả lời “yes” nếu nhập liệu của nó thuộc P 2 nhưng nó có thể không dừng nếu nhập liệu của nó không thuộc P 2 . Như trong phần (a), bắt đầu bằng thể hiện w trong P 1 , chuyển đổi nó bằng giải thuật rút gọn thành thể hiện x trong P 2 và sau đó ứng dụng máy Turing đối với P 2 cho thể hiện x. Nếu x được chấp nhận thì w cũng sẽ được chấp nhận. Thủ tục này mô tả một máy Turing (sẽ không dừng) có ngôn ngữ là P 1 . Nếu w thuộc P 1 thì x thuộc P 2 vì máy Turing này chấp nhận w. Nếu w không thuộc P 1 thì x không thuộc P 2 . Máy Turing này có thể dừng hoặc không nhưng chắc chắn rằng nó không chấp nhận w vì chúng ta giả sử rằng không có máy Turing nào có ngôn ngữ P 1 tồn tại. Như vậy, ta đã chỉ ra được điều trái ngược là không có máy Turing cho ngôn ngữ P 2 tồn tại. Nghĩa là: nếu P 1 không là liệt kê đệ qui thì P 2 cũng là không liệt kê đệ qui. 9.3.2. Các máy Turing chấp nhận ngôn ngữ rỗng: Trong ví dụ rút gọn liên quan đến máy Turing, ta sẽ kiểm chứng hai ngôn ngữ sau L e và L ne . Mỗi ngôn ngữ chứa các chuỗi là số nhị phân. Nếu w là một chuỗi nhị phân thì nó sẽ biểu diễn cho một máy Turing bất kỳ M i trong danh sách các máy Turing đã liệt kê ở phần 9.1.2. Nếu L(M i )=φ, nghĩa là M i không chấp nhận ngôn ngữ nào thì w sẽ thuộc L e . Vì vậy, L e là ngôn ngữ chứa tất cả các mã hóa của các máy Turing có ngôn ngữ là rỗng. Ngược lại, nếu L(M i ) không là ngôn ngữ rỗng thì w sẽ thuộc L ne . Vì vậy L ne là ngôn ngữ chứa tất cả các mã hóa của các máy Turing chấp nhận ít nhất là một chuỗi nhập liệu (không rỗng). Để tiện thì ta xem các chuỗi như là các máy Turing mà nó biểu diễn, do vậy ta có thể định nghĩa cho hai ngôn ngữ vừa đề cập như sau: - L e = {M | L(M) = φ} - L ne = {M | L(M) ≠ φ} Chú ý rằng L e và L ne là hai ngôn ngữ chứa các số nhị phân {01} và một ngôn ngữ sẽ là phần bù của ngôn ngữ kia. * Định lý 9.8: L ne là liệt kê đệ qui. Chứng minh: Ta phải chỉ ra có một máy Turing chấp nhận L ne . Dễ nhất là chỉ ra một máy Turing M không xác định,vì theo định lý 8.11 thì M có thể chuyển thành máy Turing xác định, như hình 9.8. Hình 9.8 : Xây dựng một máy Turing không xác định chấp nhận L ne Họat động của máy M như sau: 1. M lấy nhập liệu như máy Turing M i . 2. Sử dụng khả năng không xác định của nó, M phỏng đoán nhập liệu w mà M i có thể chấp nhận nó. 3. M kiểm tra liệu M i có chấp nhận w hay không? Đối với phần này M có thể mô phỏng máy phổ dụng U chấp nhận ngôn ngữ L u . 4. Nếu M i chấp nhận w thì M chấp nhận nhập liệu của nó (nhập liệu của M i ). Bằng cách này, nếu M i chấp nhận một chuỗi thì M sẽ phỏng đoán chuỗi đó và chấp nhận M i . Tuy nhiên, nếu L(M i ) = φ thì không có phỏng đóan nào cho w dẫn đến việc chấp nhận bởi M i , vì vậy M không chấp nhận M i . Do vậy, L(M)=L ne . Bước kế tiếp chúng ta chứng minh L ne không đệ qui. Để làm việc này, ta rút gọn L u thành L ne . Nghĩa là: Ta sẽ mô tả một giải thuật chuyển đổi một nhập liệu (M,w) thành một dữ liệu xuất M’, một đoạn mã cho một máy Turing khác, sao cho w thuộc L(M) nếu và chỉ nếu L(M’) không rỗng. Nghĩa là: M chấp nhận w nếu và chỉ nếu M’ chấp nhận ít nhất một chuỗi. Thủ thuật ở đây là có một máy Turing M’ bỏ qua nhập liệu của nó thay vì mô phỏng máy Turing M với nhập liệu w. Nếu m chấp nhận thì M’ chấp nhận nhập liệu của nó, do vậy việc chấp nhận w của M tương đương với U Accept Accept Guesed w M i M for L ne L(M’) không rỗng. Nếu L ne là đệ qui thì ta có thể có giải thuật cho biết liệu M có chấp nhận w hay không? Bằng cách xây dựng M’ và kiểm tra L(M’) = φ hay không? * Định lý 9.9: L ne là không đệ qui. Chứng minh: Chúng ta sẽ theo như cách chứng minh ở trên. Ta phải thiết kế một giải thuật để chuyển đổi một nhập liệu theo cặp mã hóa nhị phân (M,w) thành một máy Turing M’ sao cho L(M’) ≠ φ nếu và chỉ nếu M chấp nhận nhập liệu w. Việc xây dựng M’ được minh họa trong hình 9.9. Hình 9.9: Phác họa máy Turing M’ được xây dựng từ (M,w) trong định lý 9.9; M’ chấp nhận nhập liệu bất kỳ nếu và chỉ nếu M chấp nhận w. Nếu M không chấp nhận w thì M’ không chấp nhận nhập liệu của nó. Nghĩa là L(M’) = φ. Tuy nhiên nếu M chấp nhận w thì M’ chấp nhận mọi nhập liệu và vì vậy L(M’) ≠ φ. M’ được thiết kế để thực hiện các công việc sau: 1. M’ không quan tâm đến nhập liệu của chính nó. Hơn nữa, nó thay thế nhập liệu của nó bằng chuỗi biểu diễn cho máy Turing M với nhập liệu w. Do M được thiết kế cho một cặp cụ thể (M,w) có chiều dài n bất kỳ nên ta có thể xây dựng M’ có một chuỗi các trạng thái q 0 , q 1 , …, q n với q 0 là trạng thái đầu tiên. (a) Tại trạng thái q i với i=0,1,…, n-1; M’ sẽ viết (i+1) bit đầu tiên của chuỗi (M,w), chuyển sang trạng thái q i+1 và dịch chuyển sang phải. (b) Tại trạng thái qn, M’ dịch chuyển sang phải, thay thế bất kỳ dữ liệu không rỗng nào bằng khoảng trắng (có thể là sau x nếu nhập liệu đó có chiều dài lớn hơn n). 2. Khi M’ đạt tới khoảng trống trong trạng thái q n , nó sẽ dùng bộ trạng thái tương tự để định vị lại đầu đọc về bên trái cuối cùng của băng. 3. Bây giờ ta sử dụng thêm trạng thái để M’ mô phỏng máy Turing phổ dụng U trên băng từ hiện tại. M Accept Acceptw x M’ 4. Nếu U chấp nhận thì M’ chấp nhận. Nếu U không chấp nhận thì M’ cũng không chấp nhận. Việc mô tả M’ như trên sẽ hiệu quả để chỉ ra rằng ta có thể thiết kế một máy Turing mà nó có thể chuyển đổi mã cho M và chuỗi nhập liệu w thành mã cho M'. Nghĩa là có 1 thuật toán để thực hiện việc rút gọn L u thành L ne . Ta thấy rằng nếu M chấp nhận w thì M’ chấp nhận bất kể nhập liệu x nào trên băng từ. Thực tế x được lờ đi là không thích hợp, việc định nghĩa sự chấp nhận bởi máy Turing cho biết rằng bất kể những gì được đặt trên băng từ là những gì máy Turing chấp nhận. Do vậy, nếu M chấp nhận w thì mã cho M’ sẽ thuộc L ne . Ngược lại, nếu M không chấp nhận w thì M’ sẽ không bao giờ chấp nhận những nhập liệu cho nó. Vì thế, trong trường hợp này mã cho M’ không thuộc L ne . Ta đã thành công trong việc rút gọn L u thành L ne bằng thuật toán xây dựng M’ từ M và w. Ta kết luận rằng do L u không đệ qui nên L ne cũng không đệ qui. Việc tồn tại sự rút gọn này rất có ích để kết luận điều cần chứng minh. Tuy nhiên, để minh họa tác động của việc rút gọn ta sẽ quay lại vấn đề này thêm một lần nữa. Nếu L ne là đệ qui thì ta có thể phát triển một thuật toán cho L u như sau: 1. Chuyển (M,w) thành máy Turing M’ như trên. 2. Dùng thuật toán giả thuyết cho L ne để biết liệu L(M’) = φ hay không? Nếu đúng thì nói rằng M không chấp nhận w, nếu L(M’) ≠ φ thì nói M chấp nhận w. Do định lý 9.6 nói rằng không có thuật toán nào như thế cho L u tồn tại nên điều này trái ngược với giả thuyết rằng L ne là đệ qui. Kết luận: L ne không đệ qui. Bây giờ chúng ta đã biết trạng thái của L e . Nếu L e liệt kê đệ qui thì theo định lý 9.4 cả L e và L ne sẽ đệ qui. Do L ne không đệ qui như định lý 9.9 nên ta kết luận rằng: * Định lý 9.10: L e không liệt kê đệ qui. 9.3.3. Định lý Rice và các thuộc tính của ngôn ngữ liệt kê đệ qui: Trong thực tế các ngôn ngữ L e và L ne không thể giải được là một trường hợp đặc biệt của một định lý có tính tổng quát: Tất cả các thuộc tính không tầm thường của ngôn ngữ không liệt kê đệ qui đều không thể giải được. Một ví dụ về thuộc tính của các ngôn ngữ liệt kê đệ qui là “ngôn ngữ có ngữ cảnh tự do”. Nó không thể giải được bất kể là máy Turing cho trước có chấp nhận ngôn ngữ có ngữ cảnh tự do hay không? Đó là trường hợp đặc biệt của một nguyên lý: Tất cả các thuộc tính không tầm thường của các ngôn ngữ liệt kê đệ qui đều không thể giải được. Một thuộc tính của các ngôn ngữ liệt kê đệ qui hoàn toàn là một tập các ngôn ngữ liệt kê đệ qui. Do vậy, thuộc tính của ngữ cảnh tự do cũng là một tập các ngôn ngữ có ngữ cảnh tự do. Thuộc tính của rỗng là một tập {φ} chỉ chứa ngôn ngữ rỗng.  Chú ý rằng thuộc tính rỗng, φ , khác thuộc tính của ngôn ngữ rỗng, {φ}. * Tại sao các bài toán và phần bù của nó lại khác nhau: Bằng trực giác ta nhận thấy rằng các bài toán và phần bù của nó thực sự giống nhau. Để giải quyết một bài toán này ta có thể dùng thuật toán cho phần bù của nó và tại bước cuối cùng thì phần bù sẽ là dữ liệu xuất: “yes” thay cho “no” và ngược lại. Điều này đúng khi bài toán và phần bù của nó là đệ qui. Tuy nhiên như đã đề cập ở 9.2.2, ta có hai khả năng khác: Đầu tiên, nếu bài toán và phần bù của nó không phải là liệt kê đệ qui thì cả hai sẽ không thể giải được bằng tất cả các loại máy Turing, vì vậy ta thấy chúng giống nhau. Tuy nhiên, trong trường hợp đáng quan tâm đối với L e và L ne thì một ngôn ngữ là RE còn ngôn ngữ kia không RE. Đối với các ngôn ngữ là RE thì ta có thể thiết kế một máy Turing sẽ lấy nhập liệu w và tìm kiếm lý do tại sao w thuộc ngôn ngữ. Do vậy, đối với L ne , cho trước một máy Turing M nhập liệu và ta sẽ cho máy Turing này tìm các chuỗi mà máy Turing M chấp nhận, ngay khi tìm thấy một chuỗi ta chấp nhận ngay M. Nếu M là một máy Turing có ngôn ngữ rỗng thì ta sẽ không bao giờ biết chắc rằng “M không thuộc L ne ” nhưng chúng ta không chấp nhận M và đó là sự phản hồi chính xác từ máy Turing. Mặt khác, đối với bài toán bù là L e không liệt kê đệ qui thì không có cách nào để chấp nhận tất cả các chuỗi của nó. Giả sử rằng chúng ta được cho trước chuỗi M và chúng ta có thể không bao giờ tìm thấy một chuỗi được M chấp nhận, tuy nhiên ta không chắc rằng không có nhập liệu nào mà chúng ta chưa kiểm tra. Do vậy, M có thể không được chấp nhận mặc dù nó cần được chấp nhận. Một thuộc tính là tầm thường nếu nó là rỗng hoặc là các ngôn ngữ liệt kê đệ qui. Ngược lại là các thuộc tính không tầm thường. Ta không thể nhận dạng một tập các ngôn ngữ như các ngôn ngữ của chính nó. Lý do là ngôn ngữ tiêu biểu (không hữu hạn) không thể được viết như là các chuỗi có chiều dài xác định, đó là những chuỗi nhập liệu cho máy Turing. Hơn nữa, chúng ta phải nhận dạng các máy Turing chấp nhận những ngôn ngữ này, mã cho các máy Turing là giới hạn cho dù ngôn ngữ mà nó chấp nhận không hữu hạn. Do vậy, nếu ρ là thuộc tính của các ngôn ngữ liệt kê đệ qui thì ngôn ngữ L ρ là một tập các mã cho máy Turing M i sao cho L(M i ) là một ngôn ngữ trong ρ. Khi ta nói đến khả năng giải được của thuộc tính ρ thì ta cũng nói L ρ có thể giải đựơc. * Định lý 9.11: (Định lý Rice) Mỗi thuộc tính không tầm thường của các ngôn ngữ liệt kê đệ qui là không thể giải được. Chứng minh: Cho ρ là thuộc tính không tầm thường của các ngôn ngữ liệt kê đệ qui. Giả sử bắt đầu từ φ, ngôn ngữ rỗng, không thuộc ρ, ta sẽ trả về trường hợp ngược lại. Do ρ không tầm thường nên phải có một vài ngôn ngữ L không rỗng thuộc ρ, cho M L là máy Turing chấp nhận L. Ta sẽ rút gọn L u thành L ρ , do ta đã chứng minh L ρ không thể giải được, vì vậy L u sẽ không thể giải được. Thuật toán để thực hiện việc rút gọn sẽ lấy nhập liệu là cặp (M,w) và tạo ra một máy Turing M’. Thiết kế của máy Turing M’ được cho như hình 9.10, L(M’)=φ nếu M không chấp nhận w và L(M’)=L nếu M chấp nhận w. Hình 9.10: Xây dựng máy Turing M’ để chứng minh định của Rice. M’ là một máy Turing có 2 băng. Một băng được dùng để mô phỏng M trên nhập liệu w. Chú ý rằng thuật toán để thực hiện việc rút gọn là cho máy M với nhập liệu là w, ta có thể dùng nhập liệu này trong thiết kế các chuyển tiếp của M. Do vậy mô phỏng M trên nhập liệu w là “xây dựng nên” máy M’ và máy M’ không phải đọc các chuyển tiếp của M trên băng của nó. Một băng còn lại của M’ được mô phòng M L trên nhập liệu x cho M’ nếu cần thiết. Các chuyển tiếp của M L được biết như là thuật toán rút gọn và có thể “xây dựng nên” các chuyển tiếp của M’. Máy Turing M’ được xây dựng để làm các việc sau: 1. Mô phỏng M trên nhập liệu w. Chú ý rằng w không nhập liệu cho M’, hơn nữa M’ viết M và w trên một băng của nó và mô phỏng một máy Turing phổ dụng U trên cặp này. M L M Accept Accept x w Accept start M’ [...]... qui (theo định lý 9.3) 9.3.4 Các bài toán liên quan đến đặc tả máy Turing: Tất cả các bài toán về máy Turing đều liên quan đến ngôn ngữ được chấp nhận bởi máy Turing là không thể giải được (theo định lý Rice) Ví dụ các bài toán sau là không thể giải được: 1 Ngôn ngữ được chấp nhận bởi máy Turing là rỗng 2 Ngôn ngữ được chấp nhận bởi máy Turing là hữu hạn 3 Ngôn ngữ được chấp nhận bởi máy Turing là một... máy Turing là ngôn ngữ có ngữ cảnh tự do Tuy nhiên, định lý Rice không có ngụ ý mọi bài toán liên quan đến máy Turing là có thể giải được Ví dụ, các câu hỏi liên quan đến các trạng thái của máy Turing là có thể giải được, còn các ngôn ngữ mà nó chấp nhận thì không thể giải được * Ví dụ 9.12: Nếu máy Turing có 5 trạng thái thì có thể giải được Thuật toán để giải bài toán này là xét đến mã cho máy Turing. .. [1] John C Martin, Introduction to languages and the theory of coputation, The McGraw-Hill Companies, Inc, 1997 [2] PGS.TS Phan Huy Khánh, Giáo trình lý thuyết ngôn ngữ hình thức và Ô tô mat, Đại học Đà Nẵng, 1998 [3] PGS.TS Phan Huy Khánh, Lý thuyết tính toán, Đại học Đà Nẵng, 1999 ... được Ta cần xét đến trường hợp φ thuộc ρ Nếu chúng ta xem xét thuộc tính ρ - tập các ngôn ngữ liệt kê đệ qui không có thuộc tính ρ Như đã đề cập ở trên ρ không thể giải được Tuy nhiên, mỗi máy Turing chấp nhận ngôn ngữ liệt kê đệ qui, Lρ , nên tập mã cho máy Turing không chấp nhận ngôn ngữ trong ρ cũng tương tự như L ρ - tập mã cho máy Turing chấp nhận một ngôn ngữ trong ρ Giả sử Lρ có thể giải được... bất kỳ các chuyển tiếp nào Một ví dụ khác là bài toán tồn tại một nhập liệu sao cho máy Turing chuyển đổi ít nhất 5 trạng thái cũng có thể giải được Thuật toán trở nên hiển nhiên khi ta nhớ rằng nếu một máy Turing có thể chuyển tiếp đến 5 trạng thái thì nó sẽ có 9 ô trên băng liên quan đến vị trí bắt đầu của đầu đọc Do vậy, chúng ta có thể mô phỏng máy Turing có 5 chuyển tiếp trên một số hữu hạn các... ngữ phi ngữ cảnh sẽ dừng sau một thời gian nào đó  có máy Turing chấp nhận nó  ngôn ngữ phi ngữ cảnh là ngôn ngữ liệt kê đệ quy d L(M)=(L(M))R: Ta có thể phát biểu lại như sau: liệu máy Turing có chấp nhận ngôn ngữ bị đảo ngược không? Cho trước một máy Turing M, ta sẽ xây dựng một máy Turing không tiền định (nondeterministic) M’ – đó là máy Turing chấp nhận ngôn ngữ rỗng (vì ngôn ngữ rỗng có ngôn ngữ... thuộc tính ρ nên mã cho M’ không thuộc Lρ 3 Nếu M chấp nhận w thì M’ bắt đầu mô phòng ML trên nhập liệu x của nó Do vậy M’ sẽ chấp nhận ngôn ngữ L Do L thuộc ρ nên mã cho M’ thuộc Lρ Việc xây dựng M’ từ M và w có thể được thực hiện bởi một thuất toán Do thuật toán này chuyển (M,w) thành M’ thuộc L ρ nếu và chỉ nếu (M,w) thuộc Lu, thuật toán này là sự rút gọn Lu thành Lρ và đã chứng minh thuộc tính ρ... bại trong việc đạt đến trạng thái dừng thì ta kết luận rằng máy Turing tạo ra ít nhất 5 chuyển tiếp trên một số nhập liệu PHẦN II: BÀI TẬP * Bài 9.3.2: Để thúc đẩy thị trường đang chùng xuống, tập đoàn Big Computer đã quyết định sản xuất một phiên bản công nghệ cao của máy Turing, gọi là BWTM, được trang bị chuông và còi Về cơ bản BWTM giống như máy Turing bình thường, ngoại trừ mỗi trạng thái của máy... thổi còi Bài giải: Giả sử rằng vấn đề đầu ra có giải pháp với một máy Turing WC, có đầu vào là ρ(M), ρ(w), luôn tạm dừng, và kết quả đầu ra là “Y” nếu M thổi còi với w và “N” nếu nó không thổi còi Bây giờ viết một máy BWTM M’ và một máy Turing R, với đầu vào là chuỗi x và chỉ thổi còi nếu máy Turing dừng lại Sự kết hợp của hai máy Turing có thể được dùng để xác định nếu R tạm dừng với x là không thể... nó - Phỏng đoán nhập liệu cho M - Mô phỏng máy Turing M với nhập liệu w Nếu M chấp nhận w thì M’ sẽ chấp nhận nhập liệu của nó – đó là các chuỗi nhị phân {01} Do vậy, sẽ có 2 trường hợp xảy ra: - Trường hợp 1: Nếu L(M) không rỗng thì M’ sẽ phỏng đoán một số chuỗi mà máy Turing M chấp nhận và vì vậy nó chấp nhận các chuỗi nhị phân {01}  L(M) được máy Turing chấp nhận  L(M) là liệt kê đệ qui - Trường . thu thập, lưu trữ, xử lý và trao đổi thông tin. Máy tính đóng vai trò quan trọng trong cuộc cách mạng này. Lý thuyết tính toán là nền tảng lý thuyết của thông tin và tính toán để tạo ra sự thực. NẴNG  Đề tài: UNDECIDABLE PROBLEMS ABOUT TURING MACHINE GVHD: PGS.TS PHAN HUY KHÁNH NHÓM HỌC VIÊN: NGUYỄN TUẤN TRUNG LÊ QUỐC DŨNG NGUYỄN VĂN PHÚ MÔN: LÝ THUYẾT TÍNH TOÁN LỚP: CAO HỌC. về máy tính như: Các máy truy cấp ngẫu nhiên, các ôtômát hữu hạn trạng thái, các ngôn ngữ hình thức và văn phạm được sử dụng, lý thuyết về độ phúc tạp tính toán, lý thuyết ước tính, mô hình máy Turing,

Ngày đăng: 01/02/2015, 00:21

Từ khóa liên quan

Mục lục

  • MỤC LỤC

Tài liệu cùng người dùng

Tài liệu liên quan