6.5 .Bài toán tìm chu trình Hamilton qua tất cả các đỉnh của đồ thị
1. Khái niệm và chức năng của mô phỏng
Mô phỏng thuật toán là quá trình mô tả cấu trúc dữ liệu, các thao tác của một chương trình bằng đồ hoạ [Stasko 1990]. Mô phỏng thuật toán được thiết kế nhằm giúp người dùng hiểu thuật toán, đánh giá thuật toán và gỡ lỗi khi cài đặt chương trình [xem 12]
Một chương trình lập trình trên máy tính sẽ chứa các cấu trúc dữ liệu của thuật toán mà nó sẽ thực hiện. Trong khi thực hiện chương trình đó, giá trị thực của cấu trúc dữ liệu thay đổi dựa trên từng bước hoạt động của thuật toán. Mô phỏng thuật toán sử dụng đồ hoạ để biểu diễn sự thay đổi trạng thái của cấu trúc dữ liệu cho từng bước hoạt động của nó một cách trực quan, khoa học. Trong suốt quá trình biểu diễn, người dùng có thể quan sát việc thực thi thuật toán theo từng bước để có thể biết chi tiết về thuật toán cũng như hiểu một cách tường tận về thuật toán đó.
Ví dụ: Một chương trình mô phỏng thuật toán phân tích LR phân tích trên 1 chuỗi kí tự. Chương trình chứa ba cấu trúc: bảng chuyển, một ngăn xếp (stack) và 1 xâu kí tự. Khi thực hiện, chương trình minh hoạ bằng việc đối sánh các trạng thái trong bảng chuyển và và thực hiện từng thao tác trên ngăn xếp để tách xâu kí tự. Các chỉ dẫn, kí hiệu trên xâu vào và các phần tử trong ngăn xếp ở mỗi trạng thái sẽ lần lượt thay đổi trong khi thực hiện thuật toán. Đây là một công việc khá khó khăn để nắm bắt nếu một học sinh chỉ sử dụng hình vẽ và các xâu kí tự. Mô phỏng thuật toán có thể chỉ ra tất cả các thông tin và sự thay đổi đồng thời ở từng bước bằng đồ hoạ. Ta có thể quan sát bằng hình vẽ dưới đây:
Hình. 1 Mô phỏng một bước hoạt động của thuật toán
Bên cạnh việc giúp người dùng hiểu rõ thuật toán, mô phỏng thuật toán cũng có thể dùng để gỡ lỗi chương trình một cách dễ dàng hơn. Để sử dụng mô phỏng thuật toán trong việc gỡ lỗi, người dùng ghi chú các trạng thái thực trên chương trình của họ để đưa ra các lệnh mô phỏng đầu ra và những bước làm cho thuật toán không cho ra kết quả như mong muốn.