Thuật toán di truyền này khác hoàn toàn với các thuật toán di truyền mô tả trước đó, vì nó sử dụng một quần thể cấu trúc với chỉ 13 các thể riêng lẽ. Thủ tục này được phát triển dựa trên các giải thuật tiến hoá được đề xuất cho bài toán phân vùng số, trình bày bởi Berretta và Moscato (1999).
Cấu trúc quần thể là 1 cây bậc 3 hoàn chỉnh với 3 mức, trong đó 1 cá thể sử dụng 2 NST : Pocket và Current. Trong cấu trúc này, một mối quan hệ thứ phân cấp được duy trì giữa chất lượng của các nghiệm được thể hiện bởi các NST Pocket và Current: NST Pocket luôn cho nghiệm tốt hơn NST Current. Cũng duy trì 1 mối quan hệ giữa các NST Pocket: NST Pocket dẫn xuất cho 1 nghiệm tốt hơn NST Pocket phụ thuộc vào chính nó. Do đó, nghiệm chứa trong NST Pocket của cá thể 1 là nghiệm tốt nhất trong các NST Pocket, nghiệm chứa trong NST Pocket cá thể 2 là tốt hơn các nghiệm trong NST Pocket 5, 6 ,7 và cứ tiếp tục như vậy.
Mã giả cho thuật toán di truyền này được cho trong thủ tục FOUTHAPPROACH(), trong đó 6 thủ tục được trích dẫn: Init_Pop(), Eval_Sol(), Swap_Pop(), Cros_Sol(), Mut_Sol(), Imp_Sol(). Thủ tục Init_Pop() khởi tạo quần thể, Cros_sol() và Mut_Sol() sử dụng để thực thi các toán tử di truyền, Imp_Sol() cố gắng cải thiện chất lượng của 1 nghiệm. Thủ tục Eval_sol() giống như đã được đề cập ở 4.3. Thủ tục Swap_Pop() chỉ sử dụng để so sánh chất lượng của các NST và chuyển đổi chúng nếu cần thiết, nhằm duy trì mối quan hệ phân cấp giữa các NST Current và Pocket. Hàm Diver_Pop() đo sự đa dạng của quần thể. Trong các thuật toán, chúng ta thiết lập quần thể mất tính đa dạng khi các NST Pocket dẫn xuất trong mức 2 của cây, có tất cả cùng kiểu gen, trong 25% các vị trí chọn ngẫu nhiên và đưa ra thông số C.
Hình 4.1. Cấu trúc quần thể là 1 cây bậc 3 hoàn chỉnh với 3 mức