Lịch sử của mô phỏng thuật toán

Một phần của tài liệu Mô phỏng một số thuật toán trên đồ thị (Trang 33)

Năm 1981 Ronald Baecker tại đại học Toronto đã thiết kế đoạn video “Sorting Out Sorting”. Đây là mốc đánh dấu sự phát triển của lĩnh vực mô phỏng. Từ đó, các giảng viên đã sử dụng hệ thống mô phỏng để giảng dạy các môn thuật toán. Từ những năm 1980 đến đầu những năm 90 của thế kỉ XX, có 2 hệ thống được phát triển đã gây ảnh hưởng đến tất cả những hệ thống về sau đó là BALSA-I (Brown ALgorithm Simulator and Animator) [Brown 1984] và TANGO (Transition-based Animation GeneratiOn) [Stasko 1990].

BALSA – I là hệ thống mô phỏng thuật toán nổi tiếng được biết đến đầu tiên, được viết bởi giáo sư Marc Brown và Robert Sedgewick (Đại học Brown – Mỹ). BALSA – I là chương trình mô phỏng thuật toán tương tác. Nó đưa ra

nhiều khung nhìn về cấu trúc dữ liệu và có thể thực hiện nhiều thuật toán một cách đồng thời. Sự phát triển của nó là động lực thúc đẩy các nghiên cứu khác trong lĩnh vực này.

Một hệ thống khác, TANGO, do John Stasko (Đại học Brown – Mỹ) viết vào đầu những năm 90. Điểm nổi bật của hệ thống này là giới thiệu mô hình chuyển cho thiết kế mô phỏng và framework cho hệ thống mô phỏng thuật toán. Nó giới thiệu một khái niệm mới về framework (sau này có rất nhiều hệ thống sử dụng nó như một cấu trúc cơ bản)

Từ khi hai hệ thống này được công bố, các hệ thống con của nó cũng được phát triển. BALSA – II (1988). TANGO có rất nhiều phiên bản. Một trong số đó là XTANGO và POLKA. POLKA được thiết kế cho các thuật toán chạy song song. Nó là hệ thống mô phỏng thuật toán 2D hướng đối tượng và mở rộng trong 3D, POLKA 3D. POLKA 3D cung cấp cách nhìn 3D và các cơ sở như góc, hình cầu, hình khối…. Người dùng không yêu cầu phải biết kiến thức về đồ họa 3D để sử dụng POLKA 3D. SAMBA là hệ thống mô phỏng tương tác thông dịch, nó đọc các lệnh ASCII và thực hiện các thao tác mô phỏng tương ứng. Phiên bản của SAMBA cài bằng Java và có thể xem chi tiết tại trang web http://www.cc.gatech.due/gvu/softviz/parviz/samba.html.

Một số hệ thống mô phỏng nổi tiếng khác là Zeus, Leonardo, CATAI, Mocha. Zeus (Brown 1991) được phát triển tại đại học Brown cùng với hệ thống BALSA và BALSA – II. Nó được coi là phần mềm tương tác trực quan hóa. Nó hỗ trợ việc đồng bộ các khung nhìn và cho phép người dung chỉnh sửa các khung nhìn này và thay đổi biểu diễn của dữ liệu. Zeus được thực thi trong môi trường đa xử lý và đa tuyến, nó cũng cho phép thực thi các thuật toán song song. Leonardo là hệ thống mô phỏng các chương trình C. Nó tích hợp phát triển với mô phỏng của các chương trình C vào cùng một môi trường. CATAI mô phỏng các chương trình C++. Nó dựa trên kĩ thuật đối tượng phân phối và cho phép nhiều người dùng chia sẻ cùng một mô phỏng thông qua “lớp” ảo. Việc giao tiếp

và đồng bộ giữa các trạm và thuật toán được mô phỏng được đảm bảo bởi server có sử dụng kĩ thuật CORBA. Mocha là mô hình phân phối với kiến trúc client – server, nó phân đoạn một cách tối ưu các thành phần của hệ thống mô phỏng thông thường. Nó vượt qua các tồn tại của X - window và mô hình Java. Trong mô hình Mocha chỉ có mã giao diện được xuất tới máy của người dùng. Khi thuật toán chay trên server thì đoạn mã giao diện lại chạy trên máy người dùng.

Hiện tại, một số lượng lớn các chương trình mô phỏng đã được viết ra. Hầu hết trong số chúng rất phổ biến và sử dụng phức tạp. Các phần mềm này được thiết kế nhằm mục đích giáo dục hoặc các nghiên cứu. Một vài chương trình có cấu trúc phức tạp và yêu cầu hỗ trợ kĩ thuật cao. Rõ ràng, điều này ít thực tế, chúng ta mong muốn một phần mềm nhỏ gọn và linh hoạt, có cấu trúc đơn giản.

Một phần của tài liệu Mô phỏng một số thuật toán trên đồ thị (Trang 33)