Thuật toán di truyền (Genetic algorithms):

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin ứng dụng mô hình job shop linh động để hỗ trợ lập lịch sản xuất cho một công ty (Trang 35)

c. Sản xuất theo dự án: (Open shop)

2.5.3. Thuật toán di truyền (Genetic algorithms):

Trong phân lớp của thuật toán là tối ưu hóa xác suất được lấy cảm hứng từ sự

tiến hóa sinh học. Nó sử dụng khái niệm "chọn lọc tự nhiên và thừa kế di truyền" [7] và đã được phát triển bởi Jon Holland vào năm 1975 [13]. Trong phương pháp này, dân số của ứng cử viên phát triển tốt hơn cho một vấn đề nhất định.

Sự tiến hóa bắt đầu từ dân cư trong mỗi thế hệ và sự thích hợp của tất cả các cá thểđược đánh giá. Trong sự thích hợp của họ, một số cá thể được lựa chọn một cách ngẫu nhiên từ dân số. Những cá thểđó được kết hợp lại, đôi khi có những đột biến để tạo thành một quần thể mới. Thế hệ mới này sẽđược sử dụng như là một cơ

sở cho vòng lặp tiếp theo. Thuật toán kết thúc khi chấm dứt tình trạng đã đạt được. Hình 2.8 cho thấy các chu kỳ sinh sản của GA.

Hình 2.8: Chu kỳ sinh sản trong một giải thuật di truyền

Giai đoạn sinh sản là giai đoạn thứ 3 .Trong số các cá thể lựa chọn, cha mẹ được lựa chọn và kết chéo để đột biến để tạo ra một đứa con. Đứa trẻ này thường chia sẻ nhiều đặc điểm với cha mẹ. Hoạt động này được lặp đi lặp lại cho dân số

thích hợp mới được tạo ra. Đây dân số mới, khác nhau với dân số đầu tiên và thường tăng ở mức trung bình. GA sử dụng hai khai thác khác để thay đổi gen của trẻ :

− Sự giao nhau: một toán tử di truyền kết hợp hai nhiễm sắc thể của cha mẹđể sản xuất một nhiễm sắc thể mới có tốt nhất từ các đặc tính của mỗi cha mẹ.

− Đột biến: một toán tử di truyền làm thay đổi một hoặc nhiều giá trị gen trong nhiễm sắc thể từ trạng thái ban đầu của nó.

Thủ tục này có thể xây dựng quần thể tốt hơn bằng cách lặp đi lặp lại, quá trình này được lặp đi lặp lại cho đến khi một điều kiện chấm dứt đã đạt được. Điều kiện chấm dứt thông thường là:

− Một giải pháp được tìm thấy rằng đáp ứng tiêu chuẩn tối thiểu

− Một số cốđịnh của các thế hệđã đạt được

− Phân bổ ngân sách (tính toán thời gian / tiền ) đã đạt được

− Sự thích hợp cao nhất của bảng xếp hạng giải pháp đã đạt được sao cho lặp đi lặp lại liên tiếp mà không còn kết quả sản xuất tốt hơn

− Sự kết hợp những điều trên.

Một cách tiếp cận lời giải hữu hiệu là việc mã hóa lời giải. Mỗi lời giải x ∈

X được mã hóa thành một vector z ∈ Rm (x ∈ Rn). tùy vào từng bài toán cụ thể, ta có những cách mã hóa khác nhau. Các quá trình chọn lọc và cá thể được áp dụng trên những lời giải đã được mã hóa.

Giải thuật di truyền:

1 Phát sinh một quần thể khởi tạo gồm N nghiệm xi , i=1,2,…,N; Nghĩa là P0={ z1,z2,…,zN}, với xiđược mã hóa thành zi, i=1,2,…,N.

2 Iter=0; niter=0; P=P0; stop=false; z* là nghiệm tốt nhất trong P0, nghĩa là 3 Trong khi not stop bắt đầu

4 inter := iter+1; niter := niter +1;

5 Áp dụng thao tác chọn lựa; {chọn ra các cặp cha mẹ} 6 Áp dụng thao tác sinh sản; { để sinh ra các nghiệm con} 7 Thao tác đột biến; { làm tăng độđa dạng của quần thể} 8 Thao tác chọn lọc; { một quần thể mới P’}

9 P := P’;

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin ứng dụng mô hình job shop linh động để hỗ trợ lập lịch sản xuất cho một công ty (Trang 35)

Tải bản đầy đủ (PDF)

(103 trang)