Cỏc thuật toỏn lập lịch kinh điển

Một phần của tài liệu Lý thuyết lập lịch và ứng dụng giải pháp quyết bài toán lập lịch cho CPU (Trang 32 - 34)

Lý thuyết lập lịch hiện nay đó, đang, và sẽ giải quyết đƣợc cỏc vấn đề: - Phõn loại bài toỏn lập lịch.

- Nghiờn cứu cỏch thức xõy dựng lịch biểu tối ƣu theo một tiờu chuẩn nào đú và hơn nữa làm sao để tạo ra nú thật nhanh (thuật toỏn đơn định, đa thức).

- Với những bài toỏn chƣa tỡm ra thuật toỏn nhanh, xột xem nú cú thuộc lớp NPC hay khụng.

- Với những bài toỏn thuộc lớp NPC thỡ tỡm ra thuật toỏn đa thức để tạo ra lịch biểu gần tối ƣu.

- Tỡm cỏc ứng dụng của bài toỏn lập lịch trong thực tế: cụng nghiệp, giao thụng vận tải, hệ điều hành mỏy tớnh…

a. Thuật toỏn Johnson Bài toỏn :

Mỗi một chi tiết D1,D2,...Dn cần phải đƣợc lần lƣợt gia cụng trờn 2 mỏy A, B. Thời gian gia cụng chi tiết Di trờn mỏy A là ai trờn mỏy B là bi (i=1,2..n). Hóy tỡm lịch biểu (trỡnh tự gia cụng) cỏc chi tiết trờn hai mỏy sao cho việc hoàn thành gia cụng tất cả cỏc chi tiết là sớm nhất.

Thuật toỏn Johnson:

Bƣớc 1: Chia cỏc chi tiết thành 2 nhúm: nhúm N1, gồm cỏc chi tiết Di thoả món ai < bi, tức là min(ai,bi) = ai và nhúm N2 gồm cỏc chi tiết Di thoả món ai >bi tức là min(ai,bi)=bi. Cỏc chi tiết Di thoả món ai =bi xếp vào nhúm nào cũng đƣợc.

33

Số húa bởi Trung tõm Học liệu http://lrc.tnu.edu.vn

Bƣớc 2: Sắp xếp cỏc chi tiết trong N1 theo chiều tăng của cỏc ai và sắp xếp cỏc chi tiết trong N2 theo chiều giảm của cỏc bi nối N2 vào đuụi N1, dóy thu đƣợc (đọc từ trỏi sang phải) sẽ là lịch gia cụng.

b. Thuật toỏn Moore Bài toỏn:

Cú n ụtụ đƣa vào xƣởng sửa chữa đƣợc đỏnh số thứ tự 1, 2.., n. ễtụ phải sửa chữa trong thời gian ti và thời điểm phải bàn giao là di. Mỗi thời điểm xƣởng chỉ sửa chữa một cỏi, xƣởng sửa chữa khụng ngừng và thời điểm bắt đầu sửa chữa là 0. Hóy đƣa ra một thứ tự sữa chữa sao cho số lƣợng ụtụ đỳng hạn là lớn nhất.

Sắp xếp theo thứ tự tăng dần của thời điểm bàn giao, duyệt từ đầu cho đến khi gặp ụtụ quỏ hạn đầu tiờn (Giả sử là ụtụ thứ k). Tỡm từ đầu cho đến ụtụ thứ k, ụtụ nào cú ti lớn nhất (Giả sử đú là ụtụ thứ m). Nếu ụtụ này đó đƣợc chuyển một lần rồi thỡ dừng chƣơng trỡnh, cũn nếu khụng thỡ ta chuyển ụtụ này xuống cuối. Rồi trở lại bƣớc 2.

Thuật toỏn Moore : Tỡm lịch biểu trong thời gian đa thức

Bƣớc 1: Sắp xếp cỏc ụtụ theo thứ tự khụng giảm của cỏc di : Thứ tự cỏc ụtụ x1,x2,…xn mà d1d2 ...dn ta gọi là dóy hiện thời.

Bƣớc 2 : Trờn dóy hiện thời, tỡm ụtụ đầu tiờn quỏ hạn, giả sử đú là ụtụ thứ q. Trong số q ụtụ đầu tiờn hóy loại ra ụtụ nào cú thời gian sửa chữa t nhiều nhất (nếu cú nhiều ụtụ nhƣ vậy thỡ chỉ chọn một).

Bƣớc 3 : lặp lại cho đến khi trong dóy hiện thời khụng cũn ụtụ nào quỏ hạn. Bƣớc 4 : Cỏc ụtụ bị loại ra trƣớc đú đƣợc xếp vào sau dóy hiện thời tại cuối bƣớc 3.

Sau bƣớc 4 ta cú một thứ tự cỏc ụtụ (lịch biểu) cần tỡm.

Độ phức tạp của thuật toỏn phụ thuộc bƣớc sắp xếp cỏc cụng việc.

Túm lại: Cỏc đối tƣợng đƣợc xử lý nhƣ “ụtụ”, “chƣơng trỡnh”… đƣợc quy về

34

Số húa bởi Trung tõm Học liệu http://lrc.tnu.edu.vn

kể cả con ngƣời cú tờn chung là “mỏy” (machine). Khi đú ta cú cỏc quan niệm rộng hơn về bài toỏn lập lịch.

Một phần của tài liệu Lý thuyết lập lịch và ứng dụng giải pháp quyết bài toán lập lịch cho CPU (Trang 32 - 34)