Một lời giải hợp lệ cho PFSP5 công việc 4 máy

Một phần của tài liệu Nghiên cứu các bài toán lịch biểu và ứng dụng (Trang 56 - 58)

Hàm đánh giá độ thích nghi

Hàm đánh giá độ thích nghi của mỗi lời giải được ký hiệu là được xây dựng theo công thức sau:

= − ( )

Trong đó, ( ) là thời gian hoàn thành của mỗi lời giải , là tham số dương được đưa vào sao cho − ( ) > 0 với mọi . Bài toán tìm được chuyển đổi thành bài toán tìm vì thuật toán di truyền chỉ áp dụng trực tiếp cho bài toán tìm

. Nhiệm vụ của bài toán là phải tìm một lịch biểu sao cho = − ( ) đạt giá trị lớn nhất (tức là ( ) nhỏ nhất).

Để khởi tạo _ (cỡ quần thể) lời giải cho thế hệ đầu tiên, chúng ta tiến hành các bước sau:

Bước 1:

+ Xây dựng mảng một chiều _ [1. . ] để lưu số thao tác của mỗi công việc đã được lập lịch. Mảng này gồm phần tử tương ứng với công việc, ban đầu các giá trị của các phần tử của mảng này đều bằng 0.

+ Xây dựng một một mảng một chiều [1. . ], mảng này lưu các công việc chưa được lập lịch xong. Ban đầu gồm phần tử ( công việc), [1] = 1, [2] = 2, … , [ ] = .

Bước 2: Lặp lại quy trình sau cho đến khi = ∅.

1. Chọn ngẫu nhiên một số tự nhiên là một phần tử của (chọn một công việc để lập lịch).

Ví dụ, chọn số ngẫu nhiên là 2, tức là công việc được chọn để lập lịch. 2. Lập lịch cho tất cả các thao tác của công việc vừa được chọn.

3. Xóa công việc này ra khỏi bảng . Lặp lại bước 1. Các toán tử di truyền

+ Toán tử chọn lọc:

Toán tử này nhằm mục đích chọn các lời giải tốt cho thế hệ sau dựa trên giá trị của hàm thích nghi. Về cơ bản, cơ chế của hoạt động của toán tử này tương tự như toán tử chọn lọc trong thuật toán di truyền truyền thống đã được trình bày chương 2. Chọn lọc một cách ngẫu nhiên theo nguyên tắc bánh xe số.

+ Toán tử đột biến:

Toán tử đột biến thực hiện trên một các thể cha, số các cá thể cha được chọn để đột biến theo một tỷ lệ nhất định tùy thuộc vào xác suất đột biến ( ). Phép biến đổi được tiến hành theo các bước sau:

1. Chọn ngẫu nhiên một thao tác (ký hiệu là 1) trong cá thể cha. Xác định công việc chứa thao tác đó (ký hiệu là 1) và vị trí của thao tác đó (ký hiệu là

1).

2. Chọn ngẫu nhiên một thao tác ( 2) trong cá thể cha. Xác định công việc chứa thao tác đó ( 2) và vị trí của thao tác đó ( 2).

3. Nếu 1 ≠ 2 thì tiến hành đột biến bằng cách chèn các thao tác của 1 vào vị trí các thao tác của 2. Chúng ta được cá thể con. Trong quá trình chèn xảy ra hai trường hợp sau:

- Trường hợp 1: 1 > 2, dồn các thao tác của 2 sang phải vị trí để lấy chỗ cho các thao tác của 1.

- Trường hợp 2: 1 < 2, dồn các thao tác của 2 sang trái vị trí để lấy chỗ cho các thao tác của 1.

Ví dụ, các thể cha được chọn để đột biến như trong Hình 3.10:

- 1 = 20 1 = và 1 = 15, 2 = 12 2 = và 2 = 8.

Một phần của tài liệu Nghiên cứu các bài toán lịch biểu và ứng dụng (Trang 56 - 58)