Phương pháp duyệt nhánh cận

Một phần của tài liệu một số thuật toán lập lịch để phân phối tài nguyên trong hệ thống tính toán lưới (Trang 42 - 43)

Trong phương pháp này, nếu chọn cận với thời gian cho phép hợp lí, lời giải thường ñạt kết quả gần tối ưu. Một số lưu ý khi áp dụng:

- Sắp theo chiều tăng hoặc theo chiều giảm của bộ dữ liệu dựa trên một khóa giá trị nào ñó.

- Cận là ngưỡng ñể tránh duyệt các nhánh không dẫn tới ñích. Cận càng chặt, càng nhanh chóng tới kết quả. Cần phân tích ñể tránh trường hợp bị mất nghiệm, do ñặt cận quá chặt.

Chẳng hạn với bài toán: Cho N công việc. Với mỗi công việc ta biết: tiền công thu ñược sau khi thực hiện công việc, thời gian ñể hoàn thành, thời ñiểm cuối cùng phải kết thúc. Hãy xếp lịch thực hiện sao cho tổng tiền công thu ñược nhiều nhất.

Áp dụng phương pháp nhánh cận, ta thực hiện như sau:

- Xếp bộ dữ liệu theo chiều tăng của thời ñiểm cuối cùng phải kết thúc công việc.

- Xác ñịnh cận: {Tổng tiền k công việc} + {Giá trị tối ña các công việc còn lại} > {Tổng tiền của phương án tốt nhất ñã có}.

Chú ý rằng, khi thử chọn công việc k, có thể dẫn tới sự kiện hàng loạt công việc khác bị loại vì việc hoàn thành công việc k sẽñẩy lùi thời ñiểm có thể bắt ñầu thực hiện các công việc này, dẫn ñến ñẩy lùi thời ñiểm hoàn thành chúng và do ñó có thể làm cho một số công việc không xong trước thời hạn kết thúc ñã qui ñịnh. Ngược lại, nếu không chọn công việc k nữa thì lại tạo ñiều kiện có thể thực hiện những công việc bị loại do chọn k.

Ngoài ra, có thể ñưa ra một cận thứ 2 là: {Thời ñiểm bắt ñầu công việc k} +

44

Một phần của tài liệu một số thuật toán lập lịch để phân phối tài nguyên trong hệ thống tính toán lưới (Trang 42 - 43)