Giải thuật PSO

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 88 - 91)

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.

* Ti ưu hóa theo nhóm by:

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 ca gii thut PSO cho bài toán lp lch

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 88 - 91)