thường trình đầu vào, khởi tạo mô phỏng, thực hiện những lập lại khác nhau, và cuối cùng gọi các thường trình đầu ra
2.4.6 Các giải thuật thiết lập sự kiện
Trong các mô phỏng sự kiện rời rạc, phải đảm bảo rằng các sự kiện xuất hiện trong một trình tự và thời gian thích hợp. Hầu hết ngôn ngữ lập trình đều có chức năng tự động xắp sếp sự kiện này tuy nhiên đối với nhưng mô phỏng được viết bằng ngôn ngữ đa dụng, người lập trình phải thực hiện chức năng này. Đôi khi, đối với những mô phỏng sử dụng ngôn ngữ mô phỏng, nhà phân tích cũng thích sử dụng giải thuật xắp sếp của riêng họ. Ví dụ, trong một số trường hợp, hiệu quả hoạt động của những giải thuật này tiếp kiệm được khoảng 30% tổng tời gian của bộ xử lý Lập lịch sự kiện thường được thực hiện bằng việc giữ các thông báo sự kiện theo một danh sách liên kết có thứ tự. Mỗi thông bao chứa thời gian xẩy ra sự kiện và một con trỏ tới mã có thể phải thi hành tại thời điểm đó. Có hai thao tác cần phải thực hiện thường xuyên trên tập này: Thứ nhất là chèn các sự kiện mới và thứ 2 là tìm sự kiện tiếp theo (xuất hiện sớm nhất) và xoá nó ra khỏi tập. Lựa chọn câu trúc dữ liệu để duy trì tập này ảnh hưởng đến thời gian xử lý cần thiết cho 2 hoạt động này. Một số cấu trúc dữ liệu cần ít thời gian để chèn nhưng yêu cầu xử lý đáng kể để tìm sự kiện tiếp theo. Các cấu trúc dữ liệu khác thực hiện tất cả những công việc tại thời điểm chèn để việc tìm sự kiện tiếp theo không hề phức tạp. Bởi vậy lựa chọn cấu trúc dữ liệu phụ thuộc vào tần suất chèn vào, xoá đi và vào số lượng trung bình của các sự kiện trong tập sự kiện tương lai. Một số cấu trúc dữ liệu đã được đề xuất như sau :
1. Danh sách liên kết theo thứ tự (Ordered Linked List) : Phương pháp phổ biến nhất được sử dụng trong các ngôn ngữ mô phỏng như SIMULA, GPSS, và GASP IV là những phương pháp có danh sách kiên kết theo thứ tự lớn gấp đôi. Đầu vào đầu tiên trong danh sách là sự kiện tiếp theo gần nhất. Đo đó, việc xoá bỏ tương đối dễ dàng Để chèn them sự kiện mới, danh sách được tìm kiếm để tìm ra vị trí thích hợp nhất cho một đầu vào mới. Một số phương pháp tìm kiếm khác đã được đề xuất. Phương pháp phổ biến nhất là tìm kiếm ngược từ giá trị thời gian cao nhất. Lần lượt, danh sách sẽ được tìm kiếm từ đầu vào đầu tiên trở đi. Một số phương pháp khác còn dữ con trỏ ở giữa danh sách, trược hết là xác định nửa danh sách chứa vị trí thích hợp, rồi sau đó tìm quyết định tìm xuôi hay tìm ngược để tìm vị trí đúng
Hình 2.7 Danh sách liên kết theo thứ tự
2. Danh sách chỉ mục tuyến tính (Indexed Linear List): Trong phương pháp này, tập các sự kiện tương lai được chia thành những tập nhỏ. Mỗi tập có độ dài cố định trong khoảng thời gian t