Bài tập cơ sỏ trí tuệ nhân tạo - SGU2009 Trang 4
GTS1(v4) =6 → 4 → 2 → 1 → 5 → 3 → 6
Cost (v4) =5 + 9 + 10 + 6 +21 + 9 = 60.
Kết luận: Hành trình tốt nhất có chi phí là 60 với chi tiết tour như sau:
6 → 4 → 2 → 1 → 5 → 3 → 6
NGUYÊN LÝ THỨ TỰ
Thực hiện hành động dựa trên một cấu trúc thứ tự hợp lý của không gian cần khảo
sát để nhanh chóng tìm được lời giải tốt. Nguyên lý này được sử dụng nhiều trong việc giải
quyết các bài toán lập lịch.
Sau đây là một bài toán điển hình cho nguyên lý thứ tự
Ví dụ
Giả sử có m máy như nhau được ký hiệu từ P1,…,Pm. Có n công việc J1,…,Jn cần
được thực hiện. Các công việc có thể được thực hiện đồng thời và bất kỳ công việc nào
cũng có thể chạy trên một máy nào đó. Mỗi lần máy được cho thực hiện một công việc nó
sẽ làm cho tới khi hoàn chỉnh. Công việc Ji có thời gian thực hiện là Ti
Mục đích của chúng ta là tổ chức cách phân công các công việc được hoàn thành
trong thời gian sớm nhất.
THUẬT GIẢI 1:
Lập một thứ tự L các công việc cần được thực hiện
Lặp lại các công việc sau cho đến khi nào các công việc đều được phân công:
Nếu có máy nào rãnh thì nạp công việc kế tiếp trong danh sách L vào (nếu có 2 hay nhiều
máy cùng rãnh tại một thời điểm thì máy với chỉ số thấp sẽ được phân cho công việc).
Giả sử có 3 máy P1,P2,P3 và 6 công việc J1,J2,J3,J4,J5 J6 Với
Ti=(2,5,8,1,5,1)
L= (J2,J5,J1,J4,J6,J3)
Thì phân công theo phương án này sẽ không tối ưu (thời gian hoàn thành các công việc là
12)
THUẬT GIẢI 2:
Ta hãy quan tâm đến một heuristic đơn giản như sau:
L* là phương án mà các công việc được sắp theo thứ tự thời gian giảm dần. Ap dụng như
thuật giải 1 và lúc này thời gian hoàn thành là 8.
Tuy nhiên heuristic này không chắc đã có một phương án tối ưu.
Ví dụ:
Cho 2 máy P1,P2 và 5 công việc J1,J2,j3,j4,j5. thời gian thực hiện các công việc là
3,2,2,3,2. Thì cách phân công công việc là: