Tiểu luận Lý thuyết Tính toán
Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh MỤC LỤC Phần I:LÝ THUYẾT 3 ĐỆ QUY ĐẾM ĐƯỢC VÀ NGÔN NGỮ ĐỆ QUY 3 .1 Đệ quy đếm được và đệ quy không đếm được 3 .2 Ngôn ngữ không phải đệ qui đếm được 4 .3 Liệt kê một số ngôn ngữ đệ quy 9 Phần II: BÀI TẬP 14 KẾT LUẬN 18 TÀI LIỆU THAM KHẢO 19 Nhóm thực hiện : nhóm 7 trang 1 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh LỜI MỞ ĐẦU Sự phát triển phi thường của các máy tính và những thay đổi sâu sắc trong phương pháp luận khoa học đã mở ra những chân trời mới cho toán học với một tốc độ không thể sánh được trong suốt lịch sử lâu dài của toán học. Những phát triển đa dạng của toán học đã trực tiếp tạo ra “thuở ban đầu” của máy tính và tin học và các tiến bộ trong tin học đã dẫn đến sự phát triển mạnh mẽ một số ngành toán học. Nguyên cứu những phương pháp lập trình này giúp ích rất nhiều cho những ai muốn tìm hiểu về kỹ thuật lập trình trong các lĩnh vực trí tuệ nhân tạo, giao tiếp hệ thống. xử lý ký hiệu, tính toán hình thức, các hệ thống đồ họa… 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 Đệ quy đếm được và đệ quy không đếm được. Đề 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.2. An Undecidable Problem That is Recursively Enumerable p373 – 381” Phần II: Bài tập - Viết chương trình của một máy RAM chuẩn và RAM thô sơ kiểm tra một số nguyên n cho trước có phải là số lẻ (ghi lên băng ra kết quả 1) hay một số chẵn (ghi lên băng ra kết qủa 0). 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 chúng tôi không thể tránh khỏi những thiếu sót, kính mong nhận được sự góp ý kiến của Thầy giáo hướng dẫn PGS. TS. Phan Huy Khánh và các anh chị trong lớp để đề tài được tốt hơn. Nhóm thực hiện : nhóm 7 trang 2 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh Phần I:LÝ THUYẾT ĐỆ QUY ĐẾM ĐƯỢC VÀ NGÔN NGỮ ĐỆ QUY .1 Đệ quy đếm được và đệ quy không đếm được Trong chương này và tiếp theo, chúng ta tập trung vào mặt nhận biết ngôn ngữ của máy Turing, và nghiên cứu chi tiết hơn những ngôn ngữ có thể được đoán nhận bởi máy Turing. Chúng ta sẽ bắt đầu tìm hiểu sự khác nhau giữa accepting và recognizing một ngôn ngữ. Cho 1 máy Turing T, L(T) là ngôn ngữ của những xâu mà T dừng lại. Định nghĩa 1. Cho L ⊆ ∑ * là một ngôn ngữ. Một máy Turing T với bảng chữ vào ∑ thì được gọi là đoán nhận (accept) L nếu L(T) = L. Máy Turing T thừa nhận (recognizes) hay quyết định nhận (decides) L nếu T tính toán hàm đặc trưng χ L : ∑ * → {0,1}. Đối với những từ khác, T thừa nhận L nếu T dừng với mọi xâu x thuộc ∑ *, sản xuất ra 1 nếu x ∈ L, ngược lại xuất ra 0. Một ngôn ngữ L là đệ quy đếm được nếu đó là một máy Turing đoán nhận (accept) L và đệ quy nếu máy Turing thừa nhận (recognizes) L. Mọi ngôn ngữ đệ quy là đệ quy đếm được: nếu T là một máy Turing thừa nhận L thì một máy đã được định nghĩa là phá hủy thay vì xuất ra 0 đoán nhận L. Chúng ta cũng đã sẵn sàng nhận dạng vấn đề tiềm ẩn với sự trực tiếp chuyển đổi. Nếu T là một máy Turing đoán nhận L, có thể xâu không thuộc L làm cho T phá hủy và vì vậy không bao giờ đưa ra được câu trả lời. Trong phần sau của chương này chúng ta sẽ nghiên cứu tỉ mỉ những ngôn ngữ không có khả năng đã bị loại trừ. Bây giờ, chúng ta ghi nhận kết quả từng phần rằng đề nghị là ngôn ngữ tự nhiên. Nó sẽ hữu ích để tổng quát rõ ràng về máy không đơn định. Định lý 9.1: Nếu L được đoán nhận bởi một máy Turing không đơn định T và mọi khả năng di chuyển tuần tự của T cho kết quả dừng hoặc bị phá hủy thì L là đệ quy. Nhóm thực hiện : nhóm 7 trang 3 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh Ở điểm này, thật hữu ích để đặt một số điều kiện đủ cho ngôn ngữ đệ quy đếm được và đệ quy theo một thứ tự định sẵn. Một vài kết quả này phụ thuộc vào cách đặt một máy Turing có thể tái tạo hai máy Turing khác cùng một lúc. Định lý 9.2. Nếu L 1 và L 2 là ngôn ngữ đệ quy đếm được trên ∑ , thì L 1 ∪ L 2 và L 1 ∩ L 2 cũng là đệ quy đếm được. Phép hợp và phép giao cũng giữ lại những thuộc tính của đệ quy; chúng ta sẽ nói chi tiết ở phần bài tập. Đối với ngôn ngữ đệ quy, chúng ta có thể bổ sung thêm các hoạt động để danh sách tốt hơn. Định lý 9.3. Nếu L là đệ quy, thì L’ cũng là đệ quy. Chứng minh. Nếu T là một máy Turing thừa nhận L, chúng ta có thể làm cho nó thừa nhận L’ bằng cách đổi chỗ 2 sản xuất. Chứng minh này không chỉ trực tiếp đến những câu lệnh tương ứng cho ngôn ngữ đệ quy đếm được là sai (mặc dù nó đúng là như vậy); tuy nhiên, kết quả tiếp theo thừa nhận rằng ít nhất là nó đúng. Định lý 9.4. Nếu L là một ngôn ngữ đệ quy đếm được với các thành phần là đệ quy đếm được thì L là đệ quy. .2 Ngôn ngữ không phải đệ qui đếm được Theo như Church-Turing, ngôn ngữ mà không được chấp nhận bởi 1 máy Turing thì không thể được công nhận như một thuật toán có thể hiểu được, bởi vậy Nhóm thực hiện : nhóm 7 trang 4 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh một cách tiếp cận tinh tế được đề xuất. “Tinh tế” là cách hay để mô tả tham số đường chéo trong phần trước, tuy nhiên chúng ta cũng có thể sử dụng nó như 1 tham số ở đây. Trong trường hợp này, chúng ta sử dụng 1 ma trận với các dòng tương ứng với các số nguyên i và các cột được đặt là Aj, và sử dụng phép toán tập hợp để định nghĩa mục vào (i,j). Ở đây đối số có thể …… Đặt bộ TMs như các giá trị đếm được T0, T1, … và coi như mỗi Ti và 1 chuỗi mã hóa e(Ti) ∈ {0,1}*, trong đó e là hàm mã hóa (xem phần 9.7). Sau đó lặp lại các tham số đường chéo trước, với các thay đổi: thay vì i, sử dụng e(Ti); thay vì Aj sử dụng Tj và thay thế “i ∉ Aj” bởi “e(Ti) không chấp nhận bởi Tj”. Bạn có thể muốn ngắt đọc của bạn tại thời điểm này để xem bạn có thể hoàn tất mô tả ngôn ngữ và cho rằng nó có thể không chấp nhận bởi bất kỳ 1 máy TM nào. Định nghĩa chính thức của chúng tôi sẽ hơi khác một phần, bởi vì nó không sử dụng khả năng đếm được của bộ TMs một cách rõ ràng, nhưng chủ yếu là bởi vì nó sẽ thuận lợi trong một số các ứng dụng sau này để xem xét một ngôn ngữ lớn hơn. Định nghĩa 2: Cho NSA (không tự chấp nhận) là tập con của {0,1} * sau: NSA = NSA1 U NSA2 Trong đó: NSA1 = { ∈ ω {0,1} | ω =e(T) cho máy Turing T, và T không chấp nhận ω } NSA2 = { ∈ ω {0,1} | ω khác e(T) cho bất kỳ TM } Đặt SA (tự chấp nhận) là phần mở rộng của NSA trong {0,1}*, sao cho SA= { ∈ ω {0,1} | ω =e(T) cho máy Turing T, và T không chấp nhận ω } Định lý 2 : Ngôn ngữ NSA là không đệ qui đếm được Chứng minh. Như trong tham số đường chéo ở phần trước, ta chứng minh bằng phương pháp phủ định. Giả sử cho 1 máy Turing T0 với L(T0)=NSA. Đặt 0 ω là 1 chuỗi Nhóm thực hiện : nhóm 7 trang 5 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh e(T0). Ta có thể khẳng định TM T0 chấp nhận chuỗi 0 ω . Hay nói cách khác, T0 chấp nhận 1 chuỗi nhập vào w nếu và chỉ nếu ∈ ω NSA. Như vậy, kể từ T0 chấp nhận NSA, 0 ω thuộc NSA. Khi 0 ω được sinh mã bởi 1 máy Turing, và chỉ có 0 ω có thể là NSA. Tuy nhiên, theo định nghĩa của NSA1, nếu 0 ω thuộc NSA1 và 0 ω = e(T0), T0 không thể chấp nhận 0 ω . Do đó, nếu T0 chấp nhận 0 ω thì T0 không thể chấp nhận 0 ω . Ngược lại, nếu T0 không chấp nhận w0 thì w0 thỏa mãn điều kiện là thành viên trong NSA1, và do đó T0 chấp nhận 0 ω vì NSA1 ⊆ NSA = L(T0). Bây giờ ta có 1 mâu thuẫn, Hoặc To chấp nhận hoặc không chấp nhận 0 ω ; tuy nhiên, chúng tôi đã cho thấy rằng cả hai đều không thể. Do đó, ta giả định rằng L(T0) = NSA là sai. Một lần nữa bạn có thể hỏi “Tại sao?” (ít nhất bạn có thể tự do hỏi câu này nếu bạn đã đọc các bằng chứng và hiểu rõ). Ngôn ngữ NSA dường như đặt ra, để nói rằng không phải là ít nhất mà chúng tôi đã biết rằng có rất nhiều ngôn ngữ đệ qui không đếm được. Nó không có vẻ đặc biệt thú vị mà lạ triển khai ngôn ngữ này trong số những ngôn ngữ đệ quy không đếm được. Tuy nhiên, định lý 10.9 ra đời đã giải quyết được một số hệ quả quan trọng. Chúng tôi sẽ có thể sử dụng nó để cho thấy rằng một số vấn đề, kể cả một số không âm thanh như vậy được đặt ra, là "không giải quyết được". Bây giờ, chúng tôi có thể sử dụng nó để sản xuất một ví dụ khác, trong đó làm rõ mối quan hệ giữa đệ qui đếm được và đệ qui. Định lý 3 Nhóm thực hiện : nhóm 7 trang 6 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh SA là ngôn ngữ đệ qui đếm được nhưng không đệ qui. Nói cách khác, dù SA chấp nhận bởi 1 máy Turing, bất kỳ máy TM nào chấp nhận nó sẽ lặp vô tận với ít nhất 1chuỗi nhập vào từ ngôn ngữ. Chứng minh: Phát biểu sau được khẳng định 1 một cách dễ dàng từ định lý 10.9. Nếu SA đã được đệ quy, phần mở rộng của NSA cũng sẽ được đệ quy. Định lý 10.9 cho thấy rằng NSA không thể đệ qui bởi vì nó thậm chí không đệ qui đếm được. Vậy, để chứng minh được, đó đủ để xây dựng 1 máy TM Tsa chấp nhận ngôn ngữ SA. Gọi SA = { ω | ω = e(T) và T chấp nhận ω }. Máy Turing Tsa bắt đầu bằng cách xác định xem ω chuỗi đầu vào là của e(T) cho một vài T. Nếu nó không chấp nhận thì Tsa bị treo. Nếu ω =e(T) thì Tsa mô phỏng các xử lý của ω bởi T và dừng nếu và chỉ nếu T dừng với đầu vào ω . Ta đã có một máy TM để thực hiện bước này lần thứ hai: phổ TM Tu giới thiệu trong phần 9.7, phép toán trên chuỗi ω e( ω ) = e(T) e( ω ). Có nghĩa là Tsa có thể xây dựng các dạng T1Tu. Vấn đề là sau đó giảm xây dựng T1, nghĩa là phá vỡ đầu vào ω nếu không có dạng e(T) và dừng nếu được, để lại chuỗi ω e( ω ) trên băng. Để cho 1 chuỗi ω trở thành e(T) từ 1 vài T, nó phải chứa 1 chuỗi 0 k 1 theo sau là chuỗi có mã hóa TM di chuyển. Đặc biệt, nó phải tương ứng với biểu thức chính quy 0 + 1((0 + 1) 5 ) + Tiếp theo, có thể có nhiều nhất là một trong những di chuyển được chỉ định cho mỗi trạng thái - biểu tượng cho sự kết hợp, có nghĩa là không thể có hai trạng thái “5- tuples” khác nhau với hai phần đầu của một trạng thái này giống với hai phần đầu của trạng thái kia. Thứ 3, phần thứ 5 của mỗi 5-tuple phải là 0, 00, 000, vì thế nó đại diện cho 1 huwongs hợp lệ. Cuối cùng, không có 5-tuple nào cho phép có phần đầu 0 bởi vì 1 TM không cho phép di chuyển từ trạng thái dừng. Bất kỳ chuỗi đầu vào thỏa mãn điều kiện e(T) cho một vài T, thậm chí nếu máy T bị Nhóm thực hiện : nhóm 7 trang 7 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh hỏng đột ngột hoặc bị lỗi vì các lý do khác để thi hành bất kỳ hành động có nghĩa nào. Nhưng phần thứ hai của điều kiện này dễ dàng kiểm tra. Để kiểm tra phần thứ 2, T1 sẽ thực hiện 1 vòng lặp, thi hành bước lặp thứ i vớ Ti ………….Chi tiết được biễu diễn trong hình 9-19, và ta không mô tả thêm bất kỳ điều kiện nào. Nếu tất cả 4 điều kiện cho chuỗi ω là của mẫu e(T) không được đáp ứng, sau đó T1 dừng. Nếu tất cả 4 điều kiện được thỏa mãn thì sau đó T1 phục hồi với đầu vào ω là bản mẫu và thêm vào cuối chuỗi e( ω ). Bởi vì ω bản than nó là chuỗi các bít 0 và 1, tạo ra chuỗi e( ω ) đơn giản. Nó bắt đầu bởi 2 bít 11. Nếu 2 kí tự 0 và 1 là ai và aj, tương ứng trong bảng chữ cái S, mỗi bít 0 trong ω được mã hóa bằng 0i+1 và mỗi bít 1 bằng 0j+1, mỗi chuỗi theo sau bởi 1 bít 1. Ví dụ, 00101 trở thành 110i+110i+110j+110i+110j+11. Sau đó T1 bỏ chuỗi ω e( ω ) trên băng, nó dừng với đầu băng trên hình vuông bít 0. Nhóm thực hiện : nhóm 7 trang 8 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh .3 Liệt kê một số ngôn ngữ đệ quy Một công cụ mạnh mẽ trong việc chứng minh ngôn ngữ thuộc về trong vòng thứ hai của hình. 9.2 (tức là, RE, nhưng không đệ quy) là xem xét bổ sung của ngôn ngữ. Chúng ta sẽ thấy rằng các ngôn ngữ đệ quy được đóng cửa được bổ trợ. Như vậy, nếu một ngôn ngữ L được RE, nhưng L, bổ sung của L, không phải là RE, sau đó chúng tôi Tại sao "đệ quy"? Các lập trình viên ngày nay đã quen thuộc với các chức năng đệ quy. Tuy nhiên, những chức năng tái diễn dường như không có bất cứ điều gì để làm với máy Turing mà luôn luôn ngăn chặn. Tệ hơn nữa, ngược lại - không đệ quy đề cập đến ngôn ngữ mà không thể được công nhận bởi bất kỳ thuật toán, nhưng chúng tôi đã quen với suy nghĩ "không đệ quy" như để tính toán đơn giản như vậy không có nhu cầu cho các cuộc gọi chức năng đệ quy Thuật ngữ "đệ quy" như một từ đồng nghĩa với đi học Toán như hiện hữu trước khi đến các máy tính. dựa trên đệ quy (nhưng không phải lặp đi lặp lại hoặc vòng) thường được sử dụng như là một khái niệm về tính toán. Những ký hiệu, mà chúng ta sẽ không bao gồm ở đây, đã có một số hương vị của tính toán trong chương trình chức năng ngôn ngữ như LISP hay ML. Trong ý nghĩa đó, nói một vấn đề đã được "đệ quy" có ý nghĩa tích cực đó chính là ý nghĩa thực của thuật ngữ ngày hôm nay "nó là đủ đơn giản mà tôi có thể viết một hàm đệ quy để giải quyết nó, và chức năng luôn luôn kết thúc." , kết nối với máy Turing. Biết L không thể được đệ quy. Nếu L là đệ quy, sau đó L cũng sẽ được đệ quy và do đó chắc chắn RE. Bây giờ chúng ta chứng minh tài sản này đóng cửa quan trọng của ngôn ngữ đệ quy. M Accept-~~~ Reject — Định lý 9.3 Nếu L là một ngôn ngữ đệ quy, như vậy là L. Nhóm thực hiện : nhóm 7 trang 9 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh PROOF: Let L = L (M) đối với một số M TM mà luôn luôn tạm dừng. Chúng tôi xây dựng một M TM L = L (M) bằng cách xây dựng đề nghị trong hình. 9.3. Đó là, M cư xử giống như M. Tuy nhiên, M được sửa đổi như sau để tạo ra M: Liệt kê một tập hợp nghĩa là liệt kê từng phần tử một. Do đó, nếu nói rằng một tập hợp là có thể liệt kê được thì nghĩa là có một thuật toán cho việc liệt kê nó. Thật vậy, chúng ta có thể sử dụng ý tưởng này để tiến đến cân bằng việc mô tả tính chất của liệt kê đệ qui và các ngôn ngữ đệ qui. Chúng ta bắt đầu bằng việc mô tả một cách chính xác việc 1 máy turing liệt kê một ngôn ngữ như thế nào. Thật thuận tiện để sử dụng máy với tối thiểu 2 băng, mà 1 trong số đó được chỉ định bởi băng ra. Hình 9.3: Xây dựng một TM chấp nhận bổ sung của một ngôn ngữ đệ quy Kể từ khi M để ngăn chặn, chúng ta biết rằng M cũng được bảo đảm để ngăn chặn. Hơn nữa, M chấp nhận chính xác những chuỗi mà M không chấp nhận. Vì vậy M chấp nhận L. □ Có một thực tế quan trọng khác về bổ sung ngôn ngữ Ther lông ¬ hạn chế trong sơ đồ của hình. 9.2 một ngôn ngữ và bổ sung của nó có thể rơi. Chúng tôi nhà nước hạn chế này trong các định lý tiếp theo. Định lý 9,4: Nếu L một ngôn ngữ và bổ sung của nó RE, sau đó L là đệ quy. Lưu ý rằng sau đó bởi lý 9,3, L là đệ quy là tốt.PROOF: chứng minh được đề xuất bởi hình. 9.4. Hãy L = L {M {) và L = ¿(M2). Cả M \ và M2 là mô phỏng song song M. TM Chúng tôi có thể làm cho M TM hai băng, và sau đó chuyển đổi nó một TM một băng, để làm cho các mô phỏng dễ dàng và rõ ràng. Một băng của M mô phỏng băng của Mi, trong khi các băng khác của M mô phỏng băng của M2. Các tiểu bang của Mi và M2 là mỗi thành phần của nhà nước. Nhóm thực hiện : nhóm 7 trang 10 ∑ ⊆ * [...]... Huy Khánh KẾT LUẬN Qua quá trình nghiên cứu bài giảng của thầy giáo PGS.TS Phan Huy Khánh và các tài liệu liên quan để áp dụng thực hiện bài tiểu luận nhóm này, chúng tôi đã hiểu được rõ thêm bản chất của môn Lý thuyết tính toán, nhất là các ngôn ngữ hình thức, ngôn ngữ đệ quy và đệ quy đếm được 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 Nội dung tiểu luận đã khái... : nhóm 7 trang 16 Tiểu luận: Lý thuyết Tính toán 8: GVHD: PGS.TS Phan Huy Khánh S < 2, 3 > Hoán đổi nội dung của thanh ghi 2,3 D Giảm bớt 1 nội dung thanh ghi R1 (R2,R3) 9: 10: J < 1 > ( 11 , 8 ) Nếu nội dung của R1 là 0 thì nhảy đến nhãn 11, ngược lại thì nhảy đến nhãn 8 11: LOAD 2 12: WRITE 2 Ghi R2 lên băng 13: HALT Nhóm thực hiện : nhóm 7 trang 17 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS... dung tiểu luận đã khái quát sơ lược lý thuyết tính toán, lý thuyết đệ quy, quy trình máy Turing, chương trình máy Ram… Tuy nhóm đã cố gắng nghiên cứu đề tài nhưng không sao tránh khỏi nhiều điều sai sót Kính mong Thầy giáo và các bạn đóng góp ý kiến để bài tập nhóm càng hoàn thiện hơn Xin chân thành cảm ơn! Nhóm thực hiện : nhóm 7 trang 18 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh TÀI... ta thử quyết định dù cho bao gồm x Nhóm thực hiện : nhóm 7 ∈ trang 11 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh trong việc liệt kê bằng cách sử dụng T để xác định với mọi x L Đây là nơi các đối số cần tinh xảo hơn : T có lẽ lặp vô tận trong đầu vào x Sự xây dựng bằng chứng chính thức sẽ có thể nắm được vấn đề Lý thuyết 1: Một ngôn ngữ L ∈ ∑ là liệt kê đệ qui (Ví dụ, có thể chấp nhận.. .Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh Định nghĩa 1: Gọi T là một máy turing k-băng, k>=2, L Ta nói rằng T liệt kê L nếu nó tiến hành để các điều kiện theo sau thỏa mãn - Đầu băng ở băng thứ nhất không bao giờ di chuyển về bên trái - Tại mỗi điểm trong toán tử của T, băng 1 có nội dung : x1 # x2 # xn # y nơi mà n>=0,... nội dung thanh ghi R3 là 1 • Kiểm tra giá trị của R1 + Nếu khác 0 thì thì hoán đổi giá trị của các thanh ghi R2, R3 + Giảm bớt 1 nội dung của thanh ghi R1 Nhóm thực hiện : nhóm 7 trang 15 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh + Kiểm tra giá trị của R1, nếu khác không thì lạp lại, ngược lại thì kết thúc lặp • Đọc giá trị của thanh ghi R2 (0: số chẵn, 1 là số lẻ) • Dừng máy - Biểu... trên chuỗi Chúng ta nhận thứ tự trên ∑ * Nếu ∑ = { a, b} , ví dụ, chuỗi được tạo ra theo thứ tự : Λ , a, b, aa, ab, ba, bb, aaa, aab, …, bbb, aaaa, aaab… Nhóm thực hiện : nhóm 7 trang 12 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh Máy turing T1 tạo một loạt dãy Trong dãy 1, T1 tạo ra chuỗi Λ và bắt chước di chuyển của T ở đầu vào đó Trong dãy 2, T 1 bắt chước 2 bước của T trong đầu vào... lại, nó cũng dễ chỉ ra rằng máy turing liệt kê L theo trật tự, L phải là đệ qui Chúng ta phát biểu kết quả chính thức dưới đây và để chứng minh cho bài tập Nhóm thực hiện : nhóm 7 trang 13 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh Phần II: BÀI TẬP 1 Nội dung bài tập Viết chương trình của một máy RAM chuẩn và RAM thô sơ kiểm tra một số nguyên n cho trước có phải là số lẻ (ghi lên băng... (n); End; - Chương trình máy RAM chuẩn Nhóm thực hiện : nhóm 7 n sẽ nhận 1 trong 2 giá trị (0 hoặc -1) đổi n thành số nguyên nếu n=-1 n kết quả (quy ước n=0 : số chẵn n=1 : số lẻ) trang 14 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh Load A:2 ACC 2 Store 1 R1 Load A:-1 ACC -1 Store 2 R2 LOAD A:n ACC N JGTz Lap Kiểm tra =0 MULT 2 ACC * ; ACC=ACC*(R2) SUB 1 ACC ... chân thành cảm ơn! Nhóm thực hiện : nhóm 7 trang 18 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh TÀI LIỆU THAM KHẢO - [ 1 ] Phan Huy Khánh, Giáo trình Lý thuyết tính toán, Đại học Đà Nẵng 1999 [ 2 ] Phan Huy Khánh, Lý thuyết ngôn ngữ hình thức và ôtômat, Đại học Đà Nẵng 1997 [ 3 ] J.C Martin, Introduction to Languages and the Theory of Computation, The Mac Graw - Hill Companies, Inc . 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 Nội dung tiểu luận đã khái quát sơ lược lý thuyết tính toán, lý thuyết đệ quy, quy trình máy Turing, chương trình. thống. xử lý ký hiệu, tính toán hình thức, các hệ thống đồ họa… 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. . 18 Tiểu luận: Lý thuyết Tính toán GVHD: PGS.TS Phan Huy Khánh TÀI LIỆU THAM KHẢO [ 1 ] Phan Huy Khánh, Giáo trình Lý thuyết tính toán, Đại học Đà Nẵng 1999. [ 2 ] Phan Huy Khánh, Lý thuyết