Thuật toán Minimum Completion Time

Một phần của tài liệu Bài toán lập lịch phân bổ tài nguyên trong môi trường điện toán đám mây (Trang 54)

Thuật toán lập lịch công việc thời gian hoàn thành tối thiểu (Minimum Completion Time - MCT) với tưởng gán các tác v cho tài nguyên sẵn có nào thực thi tác v đó trong thời gian ít nhất. Thuật toán xem xét toàn bộ các tài nguyên sẵn có, tính toán thời gian xử lý với từng tác v , sau đó lựa chọn tài nguyên cho từng tác v c thể.

Hình 22 thể hiện quá trình gán các tác v cho các tài nguyên của một lu ng công việc g m 7 tác v (T1 đến T7) cho 4 tài nguyên (H1 đến H4) theo thuật toán MCT. Thuật toán thực hiện công việc gán tác v bằng cách lần lượt duyệt qua tất cả các tác v từ T1 đến T7, đối với từng tác v tính toán thời gian thực hiện nếu thực hiện trên từng tài nguyên và chọn tài nguyên tính có thời gian tính toán ít nhất. C thể với tác v T1, thuật toán tính thời gian thực hiện tác v T1 trên tài nguyên H1 là 3 giây, trên tài nguyên H2 là 5 giây, trên tài nguyên H3 là 2 giây, và trên tài nguyên H4 là 8 giây. Như vậy thời gian tính toán tác v T1 trên tài nguyên H3 là ít nhất. Thuật toán sẽ tiến hành gán tác v T1 cho tài nguyên H3. Tương tự như vậy các tác v T2 sẽ được gán cho tài nguyên H4 với thời gian thực hiện ít nhất là 3 giây, tác v T3 được gán cho tài nguyên H1, tác v T4 được gán cho tài nguyên H2, tác v T5 được gán cho tài nguyên H1, tác v T6 được gán cho tài nguyên H4, tác v T7 được gán cho tài nguyên H4.

Đầu vào của giải thuật g m 2 tập: tập các tác v (tasks) và tập các tài nguyên (hosts). Giải thuật tiến hành xem xét toàn bộ các tài nguyên sẵn có, tính toán thời gian xử lý với từng tác v , sau đó lựa chọn tài nguyên cho từng tác v c thể dựa vào tiêu chí thời gian thực thi ít nhất.

Trong thuật toán Minimum Completion Time, chỉ số index của tài nguyên được lựa chọn cho tác v hiện thời được tính toán dựa trên hàm round robin sử d ng phương trình sau:

index ← Min{host.getready() +task.length/host.speed| hostϵ hosts},

với:

o index : chỉ số tài nguyên sẵn có được chọn o hosts: các tài nguyên sẵn có

H1: 3s H2: 5s H3: 2s H4: 8s H1: 5s H2: 9s H3: 4s H4: 3s H1: 4s H2: 1s H3: 6s H4: 4s H1: 8s H2: 2s H3: 4s H4: 5s H1: 1s H2: 4s H3: 5s H4: 3s H1: 3s H2: 7s H3: 2s H4: 1s H1: 9s H2: 6s H3: 3s H4: 2s T1 T2 T3 T4 T5 T6 T7 H1 H2 H3 H4

Thuật toán thực hiện các bước như sau:

Input: tasks: Danh sách các tác v

hosts: danh sách các tài nguyên

Output: Phương án lập lịch các tác v cho các tài nguyên

1. Initialization; 2. Notask ← tasks.size(); 3. Nohost ← hosts.size(); 4. index ← 0; 5. for j ← 0 to Notask do 6. task ← tasks.get(j); 7. min ← +∞; 8. for i ← 0 to Nohost do 9. host ← hosts.get(i);

10.if min > (host.getready() + task.getlength()/host.speed) then

11. min ← host.getready() + task.getlength() host.speed; 12. index ← i; 13. end 14. end 15. host ← host.get(index); 16. stagein ← TransferTime(task,host,in); 17. stageout ← TransferTime(task,host,out); 18. exec ← ExecuteTime(task,host)

19.if(task.AT + stagein + exec +stageout + host.RT ≤host.DL) then

20. sendjob(task,host); 21. update(host); 22. else 23. Drop(host); 24. FailedJobs; 25. end

CHƢƠNG 4: GIẢI THUẬT ĐỀ UẤT

Chương này trình bày tổng quan về thuật toán tối ưu bầy đàn và phát triển thuật toán tối ưu bầy đàn ứng d ng để giải bài toán lập lịch và phân bổ tài nguyên trong môi trường điện toán đám mây.

4.1 Sơ đ tổng quát thuật toán tối ƣu ầy đàn (Par ica Swar O i iza i – PSO)

Từ năm 1990 các thuật toán lấy cảm hứng từ các hành vi sinh học lần lượt được đề xuất. Các thuật toán này được ứng d ng quan trọng trong tất cả các lĩnh vực mà ở đó đòi hỏi phải giải quyết các bài toán tối ưu hóa như: bài toán du lịch, bài toán đ thị, định tuyến mạng, khai phá dữ liệu, công việc lập lịch…..

PSO là một kỹ thuật tối ưu dựa theo mô hình hành vi xã hội ở động vật hoặc côn trùng được giới thiệu vào năm 1995 tại một hội nghị của IEEE bởi James Kenedy và kỹ sư Russell C.Eberhart[15].

Kể từ khi ra đời PSO ngày càng phổ biến và được phát triển một cách nhanh chóng với nhiều nghiên cứu trong việc cải tiến các tham số và trở thành một kỹ thuật mạnh mẽ và hiệu quả để giải quyết các vấn đề tối ưu khó khăn như tối ưu hóa không ràng buộc (Unconstrained Optimization), tối ưu hóa ràng buộc (Constrained Optimization), tối ưu đa m c tiêu (Multi Objective Optimization)…..

Thuật toán bầy đàn có thể có một số điểm tương đ ng với giải thuật di truyền và giải thuật đàn kiến nhưng nó đơn giản hơn vì không sử d ng đột biến/lai ghép chéo hoặc pheromone (đánh dấu đường đi). Thay vào đó giải thuật bầy đàn sử d ng ngẫu nhiên số thực và thông tin liên lạc toàn cầu giữa các cá thể trong bầy đàn. Theo đó việc thực hiện cũng dễ dàng hơn vì không có mã hóa hay giải mã các thông số thành các chuỗi nhị phân như trong thuật toán di truyền (có thể sử d ng chuỗi số thực).

PSO được khởi tạo bằng một nhóm cá thể ( Nghiệm) ngẫu nhiên và sau đó tìm nghiệm tối ưu bằng cách cập nhật các thế hệ. Trong mỗi thế hệ, mỗi cá thể được

thời điểm hiện tại, gọi là Pbest. Một nghiệm tối ưu khác mà cá thể này bám theo là nghiệm tối ưu toàn c c Gbest, đó là nghiệm tốt nhất mà cá thể lân cận cá thể này đạt được cho tới thời điểm hiện tại. Nói cách khác, mỗi cá thể trong quần thể cập nhật vị trí của nó theo vị trí tốt nhất của nó và của cá thể trong quần thể tính tới thời điểm hiện tại.

M c đích là để tìm nghiệm tốt nhất hiện nay cho đến khi m c tiêu không còn cải thiện được nữa hoặc sau một số nhất định các bước lặp đã được thực hiện. Xu hướng di chuyển của các cá thể được biểu diễn như hình dưới Pbesti là giá trị tốt nhất hiện tại của cá thể i và Gbest≈ min{f(xi )} (i=1,2,…n) là giá trị tốt nhất toàn c c.

trong đó:

Xik: vector vị trí cá thể thứ i tại thế hệ thứ k

Vik: vector vận tốc cá thể i tại thế hệ thứ k

Xik+1: vector vị trí cá thể thứ i tại thế hệ thứ k +1 (adsbygoogle = window.adsbygoogle || []).push({});

Vik+1: vector vận tốc cá thể i tại thế hệ thứ k +1

Pbesti: Vị trí tốt nhất của cá thể thứ i cho đến thời điểm hiện tại

Gbesti: Vị trí tốt nhất của cá thể trong quần thể cho đến thời điểm hiện tại.

Vik+1 Vigbest Vik Xik Xik+1 Gbesti Pbesti ViPbest

Hình 23: Sơ đồ di chuyển của một cá thể i trong PSO, di chuyển teo hướng tốt nhất toàn cục Gbest và tốt nhất hiện nay Pbesti cho mỗi cá thể i

Vận tốc và vị trí của mỗi cá thể được tính như sau:

Vik+1 = .vik+c1 . rand1().(pbesti – xik) + c2.rand2().(gbest – xik) xik+1 = xik + vik+1i (vik=0= 0)

Trong đó:

- : trọng số quán tính

- c1, c2 : các tham số học hoặc hệ số gia tốc đặc trưng cho kinh nghiệm và tính xã hội của các cá thể trong quần thể (có thể lấy c1≈c2≈2 hoặc c1 + c2 ≤ 4 )[15]

- rand1, rand2 : hai vector ngẫu nhiên mỗi thành phần lấy giữa 0 và 1 được sinh ra tại mỗi bước lặp.

Giả mã giải thuật PSO – Partical Swarm Optimization[15] - - - - - - - -

Giải thuật PSO: function f(x), x = (x1, ..., xp)T Khởi tạo vị trí xi và vận tốc vi của n cá thể Tìm Gbest = min{f(x1), ..., f(xn)} (tại t = 0)

while ( điều kiện lặp )

t = t + 1 (thời gian hoặc số lần lặp)

for loop n cá thể và d

Tính vận tốc t+1 mới vit+1

Cập nhật vị trí t+1 mới xit+1= xit+ vit+1 Tính giá trị thích nghi fitness tại vị trí xit+1 Cập nhật giá trị tốt nhất với từng cá thể i Pbesti

end for

Cập nhật cá thể tốt nhất Gbest

end while

Lưu đ giải thuật PSO:

Một số thuật ngữ sử dụng:

- Cá thể (particle): Một cá thể biểu diễn một lời giải khả d ng của bài toán nhưng chưa là lời giải tối ưu. Bài toán lập lịch thực thi sẽ sử d ng kiểu mã hóa hoán vị, kích thước của mỗi cá thể là số tác v có trong lu ng công việc.

Bắt đầu

Khởi tạo:

- Kích thước quần thể N - Trọng số quán tính w - Hệ số gia tốc c1, c2

Khởi tạo các cá thể với vị trí và vận tốc ngẫu nhiên Tính các giá trị thích nghi Cập nhật pbest và gbest Cập nhật vị trí, vận tốc của các cá thể Tiêu chu n dừng Dừng Thỏa Chưa

- Quần thể: là tập hợp các cá thể tức là tập hợp các lời giải của bài toán (không gian nghiệm). Các cá thể trong quần thể có thông tin về cá thể tốt nhất và được đánh giá thông qua giá trị của hàm m c tiêu.

- Vị trí: Bài toán tối ưu có một không gian lời giải, không gian đó có thể là một hoặc nhiều chiều. Mỗi lời giải trong bài toán có thể coi như một vị trí trong không gian đó. Vị trí được cập nhật theo phương trình cập nhật vị trí. Mỗi vị trí có số chiều là số chiều của một cá thể. (adsbygoogle = window.adsbygoogle || []).push({});

- Vận tốc: trong PSO mỗi cá thể có thể có vận tốc riêng, vận tốc này dùng để tính vị trí tiếp theo của cá thể trong không gian bài toán. Mỗi cá thể có thể di chuyển trong không gian bài toán để tìm ra lời giải tối ưu, vận tốc của một cá thể n chiều cũng có n chiều. Hàm vận tốc là một trong những tham số quan trọng bậc nhất trong giải thuật PSO và được cập nhật thông qua phương trình vận tốc.

- Hàm mục tiêu: là hàm đánh giá lời giải để hướng đến yêu cầu bài toán. Trong bài toán lập lịch thực thi thì hàm m c tiêu là hàm đánh giá chi phí thực thi.

4.2 Giải thuật PSO giải bài toán lập lịch và phân bổ ài nguy n r n i rƣờng điện n đ y

4.2.1 Mã hóa cá thể

Bài toán lập lịch được biểu diễn dưới sạng đ thị DAG theo trình tự topo, mỗi n t tương ứng với một nhiệm v , mỗi nhiệm v tương ứng với một chiều của các thể. Số chiều của các thể d bằng số tác v n. Giá trị của mỗi chiều trong cá thể đại diện cho một tài nguyên tương ứng. Trong quá trình tìm kiếm, các giá trị của mỗi chiều của cá thể trong hệ thống tài nguyên thay đổi và tái xây dựng một các thể mới sau khi tiến hóa theo vị trí mới của mỗi chiều.

Ví d hình dưới xây dựng một cá thể. Cá thể có 10 chiều đại diện cho 10 tác v , giá trị của mỗi chiều đại diện cho tài nguyên được lựa chọn để thực hiện tác v đó.

Task 1 2 3 4 5 6 7 8 9 10

Host 2 3 1 0 3 5 4 6 2 5

Mã hóa cá thể tương ứng:

Partical 2 3 1 0 3 5 4 6 2 5

4.2.2 Khởi tạo quần thể

Các cá thể được khởi tạo ngẫu nhiên với vận tốc ngẫu nhiên. Vị trí mỗi chiều của các cá thể sẽ nhận giá trị ngẫu nhiên từ [1…host_numbers] và mỗi chiều vận tốc sẽ nhận giá trị [0…1]. Để đảm bảo không gian giải pháp có thể tìm kiếm đầy đủ, số lượng của các thể tuân theo nguyên tắc đó là không ít hơn hai lần số lượng các tác v .

4.2.3 Hà đ độ thích nghi

Thuật toán PSO tương tự như các giải thuật tiến hóa khác. Trong PSO, các cá thể được khởi tạo một cách ngẫu nhiên, mỗi cá thể sẽ có 1 giá trị thích nghi (fitness), giá trị thích nghi được tính dựa trên hàm đo độ thích nghi (fitness function) – phương trình 2.5:

Minimize (Cost(M)) với Cost(M) = max(Ctotal(M)j ) 4.2.4 Hàm vận tốc

Chuyển động của mỗi cá thể trong quần thể là sự tổng hợp của 3 yếu tố: tốc độ hiện tại, ảnh hưởng từ kinh nghiệm của cá thể trong quá khứ, xu hướng của xã hội (bầy đàn).

Hàm tính vector vận tốc:

Vik+1 = .vik+c1 . rand1().(pbesti – xik) + c2.rand2().(gbest – xik) ,

- vik+1 : Chuyển động tại bước k+1 - vik: Chuyển động hiện tại tại bước k

- : trọng số ảnh hưởng của chuyển động tại bước k lên chuyển động tại bước k+1

- c1 . rand1().(pbesti – xik): chuyển động theo vị trí tốt nhất của các thể xi trong quá khứ (theo kinh nghiệm)

- c2.rand2().(gbest – xik) : chuyển động theo vị trí tốt nhất của quần thể

4.2.5 Cập nhật vị trí tốt nhất của cá thể và quần thể

Trong giải thuật PSO, sử d ng biến Gbest (global best – vị trí tốt nhất (lời giải tốt nhất và cả đàn đã tìm thấy )) làm biến đại diện cho cả quần thể đ ng thời cũng đóng vai trò như là biến môi trường trong việc xác định vị trí, phương hướng của các cá thể trong lần lặp tiếp theo. Thông qua giá trị Gbest các cá thể trong đàn tương tác với nhau và với cả đàn để quyết định bước di chuyển tiếp theo của mình. Gbest đóng vai trò quan trọng trong việc định hướng quần thể. Tương tự như quần thể sinh vật, các bầy đàn trong tự nhiên luôn có xu hướng đi theo cá thể tốt nhất để mong muốn có được Gbest tốt hơn.

Sau mỗi vòng lặp giá trị tốt nhất của cả quần thể mới được cập nhật lại, giá trị mới này sẽ tác động đến cá thể trong vòng lặp mới.

Giả mã việc cập nhật Gbest sau từng vòng lặp

Foreach Pi ϵ P(n) Begin Tính vị trí mới của cá thể Pi Cập nhật giá trị tốt nhất của cá thể Pi End Cập nhật giá trị Gbest

4.2.6 Cập nhật vị trí của các cá thể theo từng vòng lặp

Vị trí của mỗi cá thể sau mỗi lần lặp được cập nhật theo công thức:

xik+1 = xik + vik+1(vik=0= 0), (adsbygoogle = window.adsbygoogle || []).push({});

trong đó:

- xik+1: là vị trí của cá thể i trong lần lặp thứ k+1 - xik : là vị trí của cá thể i trong lần lặp thứ k - vik+1: là vận tốc của cá thể i trong lần lặp thứ k+1

Trong mỗi vòng lặp, giá trị các chiều của vector vận tốc là liên t c vì vậy giá trị vị trí cũng là liên t c. Để chuyển đổi các giá trị liên t c của cá thể về giá trị rời rạc sử d ng quy tắc làm tròn số. Tức là dựa theo nguyên tắc này các vị trí Xi(t)={xi1(t), xi2(t), .. xiN(t)} sẽ nhận được giá trị làm tròn và chuyển sang các giá trị số nguyên rời rạc tương ứng với chỉ số của các tài nguyên bằng công thức:

m t X Round t Xi( ) ( i( ))mod

trong đó m là số tài nguyên và Xi(t) = m nếu Xi(t) =0.

Một cá thể đại diện cho một phương án khả d ng, số chiều của cá thể là số tác v (task), mỗi chiều đại diện cho một tác v . Giá trị của mỗi chiều của các thể là chỉ số của tài nguyên tương ứng. Ví d về phương pháp làm tròn và cập nhật vị trí của các cá thể trong từng vòng lặp với cá thể có 5 tác v và 3 tài nguyên với các chỉ số là (1,2,3). Khi đó m = 3. Công thức cập nhật giá trị vị trí của các thể theo từng chiều sẽ là: Xi(t)Round(Xi(t))mod 3

Tác v Task 1 Task 2 Task 3 Task 4 Task 5

Giá trị thực 2.1 4.4 6.7 1.3 3.6

Giá trị làm tròn 2 4 6 1 3

Tài nguyên tương ứng 2 1 3 1 3

4.2.7 Giải thuật Heuristic dựa Particle Swarm Optimization (HPSO)

Giải thuật lập lịch Heuristic dựa PSO[18] cung cấp một phương án ánh xạ các tác v với một tập các tài nguyên dựa trên giải thuật PSO. Trong đó chi phí

thực thi của tất cả các tác v trên tất cả các tài nguyên tính toán được tính bằng chi phí thực hiện của mỗi tác v trên từng tài nguyên. Chi phí tính toán được thể hiện bởi ma trận TH (Task - Host).

Chi phí truyền thông dữ liệu giữa các tài nguyên (dựa trên một đơn vị dữ liệu) được thể hiện trong ma trận HH (Host – Host).

Chi phí tính toán tỉ lệ nghịch với thời gian tính toán, chi phí sẽ cao hơn với

Một phần của tài liệu Bài toán lập lịch phân bổ tài nguyên trong môi trường điện toán đám mây (Trang 54)