Trí tuệ nhân tạo thường ñược nghiên cứu theo hai hướng, ñó là: sử dụng các kỹ
thuật tin học ñể nghiên cứu các hiện tượng sinh hóa học tự nhiên và sử dụng các quá trình tối ưu tự nhiên trong sinh học ñể giải quyết các bài toán trong tin học. Trong phần này, luận án trình bày một kết quả theo hướng nghiên cứu thứ hai ñể áp dụng giải bài toán lập lịch trong tính toán lưới [9]. Kết quả là ñưa ra một giải thuật lập lịch mới dựa trên kỹ thuật tối ưu theo nhóm bầy (PSO).
Kỹ thuật tối ưu theo nhóm bầy ñược ñưa ra năm 1995 bởi J.Eberhart và R.Kennedy [41]. Kỹ thuật này phỏng theo hành vi của các bầy chim (Bird flocking),
ñàn kiến và các ñàn cá (Fish schooling) [55]. PSO ñã ñược áp dụng ñể giải các bài toán tối ưu khác nhau như bài toán người bán hàng [52], lập lịch cho các tiến trình song song xử lý theo lô [75]. Dựa theo cách biểu diễn vị trí và tốc ñộ của các phần
90
tử trong quần thể ñược trình bày trong [52], luận án ñưa ra một giải thuật mới dựa trên PSO ñể giải bài toán lập lịch cho các hệ thống tính toán lưới. Các kết quả thực nghiệm chỉ ra rằng, giải thuật ñược ñề xuất có hiệu quả tốt như giải thuật lập lịch dựa trên giải thuật di truyền nhưng có thời gian thực hiện nhỏ hơn.
* Tối ưu hóa theo nhóm bầy:
PSO là một kỹ thuật tối ưu hóa ngẫu nhiên dựa trên một quần thểñược phát triển bởi J.Eberhart và R.Kennedy [41], phỏng theo hành vi của các bầy chim hay các ñàn cá. PSO có nhiều sự tương tự như kỹ thuật tính toán tiến hóa dựa trên giải thuật di truyền. Hệ thống khởi tạo quần thể ban ñầu một cách ngẫu nhiên và tìm kiếm giải pháp tối ưu bằng việc cập nhật các thế hệ. Tuy nhiên, không giống như
giải thuật di truyền, PSO không có các thao tác tiến hóa như là lai ghép hay ñột biến.
Để cho dễ hiểu tư tưởng của giải thuật PSO, chúng ta xem xét một kịch bản như sau: Giả sử có một bầy chim ñang tìm kiếm thức ăn trong một vùng nào ñó. Tất cả các con chim ñều không biết thức ăn ở ñâu. Tuy nhiên, chúng biết là thức ăn cách xa bao nhiêu sau mỗi lần bay ñi bay lại. Câu hỏi ñặt ra là: Cách tốt nhất ñể tìm
ñược thức ăn là gì? Câu trả lời là: ñi theo những con chim gần chỗ thức ăn nhất. PSO phỏng theo kịch bản này và sử dụng nó ñể giải các bài toán tối ưu.
Trong PSO, mỗi giải pháp ñơn, trong kịch bản trên là “một con chim”, ñược gọi là một phần tử (particle). Mỗi phần tử có một giá trị thích nghi, ñược ñánh giá bằng hàm ño ñộ thích nghi và một vận tốc ñểñịnh hướng bay - cách tìm kiếm thức
ăn. Các phần tử trong PSO sẽ duyệt không gian bài toán bằng cách ñi theo các phần tử có ñiều kiện tốt nhất hiện thời (ñộ thích nghi lớn nhất).
PSO khởi tạo một nhóm các phần tử một cách ngẫu nhiên, sau ñó tìm kiếm giải pháp tối ưu bằng việc cập nhật các thế hệ. Trong mỗi thế hệ, mỗi phần tử ñược cập nhật bởi hai giá trị: giá trị thứ nhất, gọi là pBest, là giá trị thích nghi của phần tử
91
phần tử tốt nhất trong tất cả các thế hệ từ trước ñến bây giờ. Quá trình cập nhật các phần tử dựa trên hai công thức sau:
v[] = v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[])
(3. 8)
present[] = persent[] + v[] (3. 9)
Trong ñó:
- v[] là vận tốc của phần tử.
- Present[] là vị trí hiện thời.
- pbest[] và gbest[] ñược ñịnh nghĩa như trên
- rand() là một số ngẫu nhiên trong khoảng (0,1).
- c1, c2 là các nhân tố học, chúng thường ñược chọn là c1 = c2 = 2.
Hình 3.6 dưới ñây là mã giả của giải thuật PSO cho bài toán lập lịch.
Bắt_ñầu
1. Lặp với mỗi cá thể Thực_hiện
Khởi tạo cá thể;
2. Hết_lặp
3. Trong_khi (chưa ñạt ñến số thế hệ tối ña cho phép) Lặp
i. Lặp với mỗi cá thể Thực_hiện
- Tính giá trị thích nghi;
- Nếu giá trị thích nghi < pBestThì
pBest = giá trị thích nghi; ii. Hết_lặp
92
iii. Nếu pBest < gBestThì
gBest = pBest ;
iv. Lặp với mỗi cá thể Thực_hiện
- Tính vật tốc của cá thể theo công thức (3.8) ; - Cập nhật vị trí của các thể theo công thức (3.9); v. Hết_lặp
4. Hết_lặp
Kết_thúc
Hình 3. 6. Mã giả của giải thuật PSO cho bài toán lập lịch