Cài đặt bộ nhớ imem và cmem

Một phần của tài liệu (LUẬN văn THẠC sĩ) cài đặt máy turing và ứng dụng máy turing đánh giá độ phức tạp thuật toán (Trang 49 - 53)

Ngoài hai cấu trúc ngăn xếp và hàng đợi học viên tổ chức thêm hai bộ nhớ imem và cmem. Hai bộ nhớ này thực chất là một biến nhớ tạm có thể lưu một số (imem) hoặc một kí tự (cmem).

- Một số quy ước:

const char INMEM = '('; // S C (...: Nap Mem const char OUMEM = ')'; // S C )...: Lay tu Mem const char INC = '>'; // S C >...: ++out[ptr] const char DEC = '<'; // S C <...: --out[ptr]

Vậy để sử dụng bộ nhớ imem học viên dùng kí tự “(” để nạp dữ liệu và kí tự “)” để lấy dữ liệu từ bộ nhớ đó.

Với bộ nhớ cmem học viên dùng kí tự “>” để nạp dữ liệu và kí tự “<” để lấy dữ liệu.

Ví dụ:

Bài toán chuyển một số thập phân dương sang (n+1) vạch thẳng “|”. Cách 1 sử dụng máy Turing thuần túy:

% Bieu dien so thap phan n thanh (n+1) | % 10 => ||||||||||| (11 vach)

1 0 | _ 0 // Neu la 0 thi viet |, stop 1 _ _ R 7 // Qua dau phai

7 _ _ R _

7 # | L 2 // Viet | dau tien. Chuan bi tru 1 2 {123456789} $| R 3 // Giam 1

2 0 9 L _ // Tru co nho 3 _ _ R _

3 | _ R _ // Qua dau phai 3 # | L 4 // Them |. Ve trai 4 | _ L _

4 0 _ L 5 // Kiem tra co phai toan 0 4 # _ _ 0

4 _ _ _ 2 5 0 _ L _

5 # _ R 6 // Day toan 0: xoa het 0, stop 6 0 # R _

6 | _ _ 0

5 _ _ R 7 // Con chu so khac 0: Quay ve dau phai 7 _ _ R _

7 | _ L 2 E

Kết quả khi thực hiện chương trình: Input: #12# (2)

Timer = 205

Cách sử dụng bộ nhớ được cải tiến: % Bieu dien so tu nhien sang dang vach % Dung imem

1 _ $< R 2 // Doc vao imem 2 _ _ R _ // To R 2 # : R 3 3 # | R 4 4 _ $I _ 0 6 // imem = 0 ? 0 : 6 6 # | R 7 // Ghi 1 vach 7 _ $- _ 4// --imem E

Kết quả sau khi thực hiện chương trình: Input: #12# (2)

Final output: #12:|||||||||||||# (16) Timer = 41

So sánh kết quả hai cách trên dễ nhận thấy với cách hai, khi sử dụng những cải tiến về bộ nhớ mã lệnh được viết ngắn hơn, số bước chuyển đầu đọc cũng ít hơn, nên kết luận rằng khi cải tiến bộ nhớ cho kết quả tốt hơn.

2.4. Kết luận

Trong chương này học viên đã trình bày chương trình cài đặt máy Turing và các thành phần của máy. Trong quá trình cài đặt học viên đã cải tiến bộ nhớ của máy Turing cụ thể như sau:

- Cài đặt chương trình mô phỏng máy Turing.

- Cài đặt bộ nhớ imem và cmem dùng làm bộ nhớ đệm trong quá trình xử lý.

Chƣơng 3

MỘT SỐ CHƢƠNG TRÌNH ỨNG DỤNG MÁY TURING ĐO ĐỘ PHỨC TẠP THUẬT TOÁN

Trong chương này học viên ứng dụng máy Turing đã được cài đặt ở chương 2 để lập trình một số bài toán, từ đó rút ra được độ phức tạp của các thuật toán đó.

Một phần của tài liệu (LUẬN văn THẠC sĩ) cài đặt máy turing và ứng dụng máy turing đánh giá độ phức tạp thuật toán (Trang 49 - 53)