Cài đặt và biểu đồ luồng dữ liệu của MetaheuristicAlg

Một phần của tài liệu Thuật toán metaheuristic giải bài toán tập phủ đỉnh (Trang 56 - 58)

3. Bố cục của luận văn

4.1.5 Cài đặt và biểu đồ luồng dữ liệu của MetaheuristicAlg

Nhắc lại thuật toán.

Bƣớc 1: Nhập dữ liệu cho G=( V,E).

Bƣớc 2: Khởi tạo giá trị ban đầu cho quần thểbằng random. Bƣớc 3: Lai ghép (thực hiện p*n lần với p là % lai ghép) :

 Chọn ngẫu nhiên 2 cá thể làm cha mẹ.

 Tạo ra 2 cá thể con bằng cắt ngẫu nhiên.

 Kiểm tra gen đƣợc tạo ra có trùng với các gen trong quần thể không, nếu trùng loại gen đó, ngƣợc lại kết nạp cá thể đó vào quần thể.

Bƣớc 4: Đột biến(thực hiện k*n lần với k là % đột biến)

 Chọn ngẫu nhiên 1 cá thể

 Chọn ngẫu nhiên 1 vị trí, đảo ngƣợc giá trị của vị trí đấy (0->1||1->0)

 Xử lý ràng buộc phủ đỉnh cho cá thể đó

 Cho cá thể đó thực hiện leo đồi

 Kiểm tra gen đƣợc tạo ra có trùng với các gen trong quần thể không, nếu trùng loại gen đó, ngƣợc lại kết nạp cá thể đó vào quần thể.

Bƣớc 5: Xây dựng lại quần thể.

 Sắp xếp quần thể theo thứ tự giảm dần của hàm thích nghi

 Kết nạp lại quần thể (lấy 40% cá thể tốt nhất, 30% tồi nhất, 30% lấy ngẫu nhiên trong các cá thể còn lại)

Bƣớc 6: Cập nhật giá trị tốt nhất.

 So sánh giá trị tốt nhất hiện tại với giá trị tốt nhất trƣớc nếu tốt hơn gắn giá trị tốt nhất hiện tại cho giá trị tôt nhất, countNotChange= 0 và thực hiện bƣớc 7, ngƣợc lại tăng biến đếm số lần không tìm đƣợc giá trị tốt hơn (countNotChange) lên 1.

 Nếu (countNotChange> maxCountNotChange) chọn ra 10% số cá thể (5% tốt nhất, 5% ngẫu nhiên số cá thể còn lại) thực hiện Procedure2

trên các cá thể đó, sau đó gán lại countNotChange= 0 và quay lại bƣớc 5. Bƣớc 7: Kiểm tra điều kiện dừng: Nếu số thế hệ đạt đến mức giới hạn thì kết thúc thuật toán, trái lại, tiếp tục bƣớc 3.

Vũ Tiến Khang 57 Lớp CNTT1 - Khoá 2013B

Xây dựng sơ đồ luồng dữ liệu của MetaheuristicAlg.

Hình 4.6 Biểu đồ luồng dữ liệu của MetaheuristicAlg

Begin

Nhập dữ liệu

Khởi tạo quần thể ban đầu P

Lai ghép quần thể Cập nhật lại quần thể. nGen++. Đột biến Vmin>P[0] nEqual+ + Vmin=P[0]. nEqual=0. nEqual=0; Leo đồi chọn lọc 10%. Cập nhật lại quần thể nEqual>=MaxEqual End (nGen>=MAXGEN)> =Kmax)

Kiểm tra và đƣa ra kết quả No No Yes Yes Yes No

Vũ Tiến Khang 58 Lớp CNTT1 - Khoá 2013B

Một phần của tài liệu Thuật toán metaheuristic giải bài toán tập phủ đỉnh (Trang 56 - 58)