Về nguyên tắc, chức năng phức tạp của thuật tốn mơ phỏng có thể được thực hiện bằng các ngơn ngữ lập trình phổ thơng (Pascal, C, ...), các ngôn ngữ này cung cấp khả năng không hạn chế để lập trình, gỡ lỗi và thử nghiệm các mơ hình; Tuy nhiên, nó địi hỏi nỗ lực lớn cho việc xây dựng và lập trình nhiều những thuật tốn mơ phỏng phức tạp, làm việc với danh sách dữ liệu có cấu trúc. Một sự thay thế là sử dụng ngôn ngữ mô phỏng chuyên dụng.
Ngôn ngữ chuyên dụng có phương pháp mơ tả, khai báo cấu trúc và q trình làm việc của hệ thống được mơ phỏng, điều này đem lại sự thuận tiện và làm đơn giản hóa việc lập trình modul mơ phỏng, bởi vì các hàm chức năng cơ bản của thuật tốn khi đó được thực hiện một cách tự động. Chương trình mơ phỏng các mơ hình mẫu viết trên ngôn ngữ chuyên dụng gần với mô tả của hệ thống được mô phỏng trong ngôn ngữ tự nhiên, cho phép kể cả những người dùng khơng phải là lập trình viên chun nghiệp xây dựng mơ hình mơ phỏng phức tạp.
GPSS ngơn ngữ mơ phỏng sự kiện rời rạc, được Geoffrey Gordon (IBM) [7], phát triển chính thức từ những năm 1960, đã đóng góp nhiều khái niệm
29
quan trọng tới sự phát triển của ngôn ngữ mô phỏng. Với tên khai sinh là GPSS – Gordon’s Programmable Simulation System sau này được đổi tên thành GPSS – General Purpose Simulation System như ngày nay. GPSS World là một biến thể của GPSS/PC, một sự triển khai sớm của GPSS cho máy tính cá nhân. Từ khi được giới thiệu vào năm 1984, GPSS/PC và các phiên bản khác nhau của nó đã thu được hàng nghìn đơla từ hàng triệu người sử dụng trên toàn thế giới. Hiện nay, sự triển khai trên Windows của GPSS World đã mở rộng tiềm năng trong môi trường Internet.
GPSS không dùng bước nhảy theo thời gian mà dựa vào việc tạo ra “giao dịch” – Transactions và sau đó quản lý chúng trong các giai đoạn, Blocks khác nhau. Transaction được theo vết và được đặt trên vùng quản lí khác nhau phụ thuộc vào việc hoặc chúng đã sẵn thực thi ngay (Current Event Chain – CEC) [4], hoặc cần chờ một số sự kiện trong tương lai (Future Event Chain – FEC). Khi tất cả sự kiện hiện thời được xử lí, sau đó thời gian được tăng lên và sự mô phỏng tiếp diễn qua một tập CEC mới. Ta có thể xem CEC và FEC để thấy vị trí của Transaction bằng cách sử dụng menu: Window > Simulation Snapshot > CEC/FEC Snapshot khi sự mô phỏng đang vận hành.
Điểm mạnh của GPSS World là tính trong suốt. Tính trong suốt được thể hiện bởi ba lí do. Thứ nhất, việc mô phỏng bằng phương pháp “hộp đen” (Black-Box) là thật sự nguy hiểm vì khơng thể quan sát được cơ chế vận hành bên trong. Điều này không chỉ khơng chắc chắn rằng nó có phù hợp với tình hình thực tại hay khơng mà cịn khó đảm bảo nó sẽ làm việc theo đúng dự kiến. Thứ hai, sự mô phỏng thành cơng rất có ý nghĩa về mặt giá trị và có thời gian tồn tại kéo dài. Những người mới sẽ dễ dàng nắm bắt được cơ chế vận hành bên trong của hệ thống để từ đó tiếp quản cơng việc. Thứ ba, một trong những thuận lợi của việc mơ phỏng tính tốn hiệu quả nhất nhưng ít được đề cập nhất là sự hiểu biết về hành vi của hệ thống đạt được khi một chuyên viên
30
mơ phỏng có kinh nghiệm có thể nhìn thấy cái động bên trong tại các thời gian quyết định trong mô phỏng.
Ưu điểm của GPSS đối với người sử dụng: - Thao tác nhiều nghiệp vụ khác nhau. - Sử dụng bộ nhớ ảo.
- Tương thích với nhiều hệ điều hành.
- Giao diện đồ họa thân thiện với người dùng. - Dễ dàng hình dung được quy trình của mơ hình.
Với những đặc tính và ưu điểm trên, GPSS có thể được áp dụng trên nhiều lĩnh vực trong thực tế. ng dụng chính của GPSS có thể kể đến như: - Giao thông vận tải (phổ biến nhất là mơ hình bảo trì máy bay fleet trong kĩ thuật hàng không và vận tải công ty).
- Công nghệ mạng: Nghiên cứu đánh giá các vùng dữ liệu mạng.
- Thương mại: Hệ thống bán hàng tự động, hệ thống thanh toán tiền trong siêu thị…
- Một số ứng dụng trong công nghiệp: Ứng dụng trong sản xuất kim loại tự động.
Ví dụ một chương trình GPSS đơn giản:
GENERATE 300,100 ;Create next customer. QUEUE BARBER ;Begin queue time. SEIZE BARBER ;Own or wait for barber. DEPART BARBER ;End queue time.
ADVANCE 400,200 ;Haircut takes a few minutes. RELEASE BARBER ;Haircut done. Give up the barber.
31
Chương trình trên mơ tả một quầy phục vụ cắt tóc. Khách hàng đến quầy theo một khoảng thời gian ngẫu nhiên là 300±100 phút. Thời gian để phục vụ một khách hàng (thời gian cắt tóc) là 400±200 phút.