Bài toán 2
Bài toán 2
Các tầng trong một tòa nhà được đánh số tuần tự từ 0, 1, 2, , N (N<=15) Trong tòa nhà có tất
cả K (1<=K<=4) thang máy Thang máy được điều khiển từ một trung tâm và chỉ chấp nhận hai lệnh được nhập vào bằng cách bấm nút Các nút ngoài thang máy (một nút ra lệnh lên và một nút
ra lệnh xuống) có ở tất cả các tầng Các nút trong (ra lệnh đến một tầng cụ thể) có trong mỗi thang máy
Hãy viết chương trình mô phỏng quá trình điều khiển thang máy với các lệnh sau:
1 Trong tòa nhà có một thang máy (K=1) và mỗi lần nó chỉ chấp nhận một lệnh
Các lệnh khác chỉ được chấp nhận khi lệnh trước đó được hoàn thành
2 Trong tòa nhà có nhiều thang máy (K>=1) Mỗi thang máy chỉ chấp nhận lệnh từ nút trong nếu không có lệnh nào đang được xử lý Thiết bị điều khiển có thể nhận nhiều lệnh cùng lúc Các lệnh trong luôn được thang máy thực hiện mỗi khi ra lệnh Thiết bị điều khiển sẽ chọn chiếc thang máy đang rỗi phù hợp nhất để thực hiện lệnh ngoài
3 Xét trường hợp tương tự trong yêu cầu 2 với điều kiện các thang máy số chẵn chỉ có thể dừng ở các tầng số chẵn và các thang máy số lẻ chỉ dừng ở các tầng số lẻ Tất cả các thang máy đều có thể dừng ở tầng 0
4 Xét trường hợp trong yêu cầu 3 và giả sử tại mỗi thang máy có nhiều lệnh đang đợi thực hiện Tất cả các lệnh trong đều được chấp nhận dù cho thang máy có rỗi hay không
Gợi ý:
Tất cả các thang máy đều đồng bộ và tại một điểm thời gian, các thang máy đều ở các tầng cho trước nào đó
Trong một khoảng thời gian tiếp theo, một thang máy có thể đi lên đi xuống hay ở nguyên tầng
cũ
Các lệnh có thể nhập vào bất cứ lúc nào, các lệnh có định dạng sau:
a, Lệnh ngoài - <số tầng, hướng di chuyển (lên hoặc xuống)>;
b, Lệnh trong - <số tháng máy, số tầng>
Tại mỗi thời điểm có thể nhập nhiều lệnh hoặc không nhập lệnh nào
Tại mỗi thời điểm chương trình báo vị trí của mỗi chiếc thang máy
Thang máy đủ lớn và không bị quá tải
Chương trình phải điều khiển thang máy sao cho tối ưu nhất