Thang đo độ chênh của cá thể

Một phần của tài liệu Luận án Tiến sĩ Toán học: Một số phương pháp gần đúng giải bài toán lập lịch với tài nguyên giới hạn (Trang 57 - 62)

Với bài toán MS-RCPSP, một tác vụ có thể được thực hiện bởi nhiều tài nguyên khác nhau. Để phục vụ cho việc tính toán và hiệu chỉnh cá thể, chúng ta định nghĩa một thang đo cas the như sau.

Các ký hiệu sử dụng trong thang đo độ chênh:

p: thang đo độ chênh, pi: vector thang độ chênh của tác vụ i. pi,j: giá trị của

phần tử thứ j trên thang đo của tác vụ i; • pS: thang đo của cá thể S;

Si: chỉ số tài nguyên thực hiện tác vụ i trong cá thể S;

• ∆: khoảng cách giữa các phần tử trong thang đo, mỗi phần tử trong thang đo thể hiện chỉ số của một tài nguyên thực hiện tác vụ ∆i: khoảng cách giữa các tài nguyên trong thang đo của tác vụ i;

d: vector độ chênh giữa 02 cá thể, có số phần tử bằng số tác vụ của cá thể.

Định nghĩa 2.1: thang đo cho một tác vụ là một vector thể hiện chỉ số của

0 5 10 15 L2 L1 W1 W2 W4 W3 W5 W6 W10 W8 W9 W7 time 1 2 3 4 6 7 8 9 11 12 13 14 16 17

các tài nguyên có thể thực hiện được tác vụ đó. Thang đo ký hiệu là p.

Ví dụ 2.2: cho bộ dữ liệu của bài toán MS-RCPSP với 10 tác vụ, 3 tài nguyên và khả năng thực hiện của các tài nguyên như sau:

- L1 = {W1, W2, W3, W5, W7, W9, W10 }

- L2 = {W2, W3, W5, W6, W8, W10}

- L3 = { W1, W3, W4, W6, W7 }

Khi đó, thang đo có thể được biểu diễn như bảng 2.2 dưới đây.

Thang đo này sẽ được sử dụng để hiệu chỉnh cá thể mới tạo ra khi các chỉ số tài nguyên sau khi tính toán không nằm trong tập tài nguyên thực hiện của tác vụ.

Bảng 2.2: Thang đo tài nguyên thực hiện tác vụ Thang đo của tác vụ Chỉ số tài nguyên thứ nhất Chỉ số tài nguyên thứ hai Chỉ số tài nguyên thứ ba p1 1 3 p2 1 2 p3 1 2 3 p4 3 p5 1 2 p6 2 3 p7 1 3 p8 2 p9 1 p10 1 2

Biểu diễn độ chênh giữa các cá thể

Định nghĩa 2.2: vector d gọi là vector độ chênh giữa 2 cá thể có số phần tử bằng số tác vụ của cá thể, giá trị của mỗi phần tử được tính theo công thức 2.1.

trong đó: - i: tác vụ i;

- j: vị trí của tài nguyên thực hiện tác vụ i của cá thể 2 trên vector thang đo pi;

- k: vị trí của tài nguyên thực hiện tác vụ i của cá thể 1 trên vector thang đo pi.

Tính độ chênh giữa hai cá thể dựa trên thang đo

Trong bài toán MS-RCPSP, mỗi tác vụ có thời gian thực hiện cố định, không phân biệt tài nguyên thực hiện. Do vậy, khoảng giữa các phần tử của thang đo được tính như công thức 2.2 dưới đây.

∆= 100/(k-1) với k > 1 (2.2) k: số tài nguyên có thể thực hiện tác vụ. Trường hợp chỉ có 1 tài nguyên

(k=1) thì ∆=100.

Khi đó, giá trị của mỗi phần tử trong thang đo được tính như công thức (2.3)

pi,j = ∆* (j-1) (2.3)

j: là vị trí của phần tử trên thang đo của tác vụ i.

Ví dụ 2.3: tác vụ W1 có 6 tài nguyên có thể thực hiện được, lần lượt là: L1, L3, L4, L5, L9, L10.

W1 L1 L3 L4 L5 L9 L10 (adsbygoogle = window.adsbygoogle || []).push({});

Thang đo được biểu diễn như trong hình 2.3.

Hình 2.3. Biểu diễn giá trị trên thang đo

Phép trừ 02 cá thể - tính độ chênh

Phép trừ 02 cá thể tạo ra vector độ chênh được tính theo công thức 2.1.

L1 L3 L4 L5 L9 L10

20 20 20 20 20

Ví dụ 2.4:

Có 2 tác vụ W1 và W2. Tài nguyên có thể thực hiện từng tác vụ được biểu

diễn trong bảng 2.3.

Bảng 2.3: Tài nguyên có thể thực hiện tác vụ

W1 L1 L3 L4 L5 L9 L10

W2 L3 L6 L7 L8 L10

Số tài nguyên thực hiện được W1 là 6, số tài nguyên thực hiện được W2 là

5. Khi đó:

- với tác vụ W1: ∆1 = 100/5 = 20

- với tác vụ W2: ∆2 = 100/4 = 25

Thang đo khoảng cách như trong bảng 2.4 dưới đây. Bảng 2.4: Giá trị vector thang đo

p1 0 20 40 60 80 100

p2 0 25 50 75 100

xét 2 cá thể S1, S2 có tài nguyên thực hiện từng tác vụ được biểu diễn như trong bảng 2.5.

Bảng 2.5: Tài nguyên thực hiện tác vụ của cá thể S1, S2

Cá thể | Task W1 W2

S1 L3 L8

S2 L5 L10

Vector độ chênh d được tính như sau:

d1 =mod(abs(p2,8 – p1,3)) = mod(abs(75-20)) = 55 d2 = mod(abs(p2,10 – p1,5)) = mod(abs(100-60)) = 40

Kết quả thu được vector độ chênh d có giá trị được biểu diễn trong bảng 2.6.

Bảng 2.6: Giá trị của vector độ chênh d

Task W1 W2

Tính độ chênh giữa 2 cá thể được trình bày trong Algorithm 2.1. (adsbygoogle = window.adsbygoogle || []).push({});

Algorithm 2.1. Tính độ chênh giữa 2 cá thể

Input:

- S1,S2: 2 cá thể đầu vào

- taskcount: số lượng tác vụ

Output: vector độ chênh

1 Begin

2 d = {}

3 p = thang đo

4 for i=1 to taskcount

5 j = vị trí tài nguyên thực hiện task i của S1

6 k = vị trí tài nguyên thực hiện task i của S2

7 di = mod(abs(pi,j - pi,k),100)

8 end for

9 return d;

10 End

Phép cộng 02 cá thể - tạo cá thể mới

Phép cộng 02 cá thể tạo ra một cá thể mới, được thực hiện qua các bước như sau:

- Tính độ chênh giữa 02 cá thể

- Cộng thang đo của cá thể 1 với độ chênh

- Cá thể mới nhận được bằng việc tham chiếu kết quả vào thang đo để tìm tài nguyên thực hiện, được thực hiện theo công thức 2.4

Si = index (round(mod((di + pi,j),100)) ) (2.4) Trong đó:

- i: chỉ số của tác vụ

- j: vị trí tài nguyên thực hiện tác vụ trong thang đo

- index: trả về chỉ số tài nguyên ở vị trí tương ứng trên thang đo Trong ví dụ 2.4 ở trên, xét S = S1 + S2, ta có:

S2 = index (round(mod(d2 + p2,8))) = index(round(115)) = 6

Như vậy, ta được phương án mới S với W1 được thực hiện bởi L9, W2 được

thực hiện bởi tài nguyên L6. Chi tiết được thể hiện trong bảng 2.7.

Bảng 2.7: Kết quả cộng hai cá thể Task W1 W2 d 55 40 p 20 75 S1 + p 75 115 S 9 6

Phép cộng 2 cá thể được trình bày trong Algorithm 2.2.

Algorithm 2.2. Cộng 2 cá thể để tạo cá thể mới (adsbygoogle = window.adsbygoogle || []).push({});

Input:

- S1,S2: hai cá thể đầu vào

- taskcount: số lượng tác vụ Output: cá thể mới 1 Begin 2 S = {} 3 p = thang đo 4 d = độ chênh giữa S1 và S2

5 for i=1 to taskcount

6 Si = index (round(mod((di + p1,i),100)) )

7 end for

8 return S;

9 End

Một phần của tài liệu Luận án Tiến sĩ Toán học: Một số phương pháp gần đúng giải bài toán lập lịch với tài nguyên giới hạn (Trang 57 - 62)