Đây là một minh họa cho thấy các thuộc tính có thể được sử dụng như thế nào trong cấu trúc bộ nhớ recency-based. Xem một vấn đề tìm cây tối ưu trên đồ thị với các nút được đánh số từ 1 đến 7. Và 3 đồ thị sau thể hiện cho đồ thị ở bước
2 , 1 ,k + k +
k trong quá trình tạo ra các trạng thái để tìm lời giải. Với quy định là khi
Cấu trúc bộ nhớ
Chất lượng (Quality)
Mới xảy ra (Recent)
Thường xuyên (Frequency)
Ảnh hưởng (Influence)
một phép chuyển được thực hiện sẽ bao gồm một cạnh được lấy ra và một cạnh được thêm vào để giữ nguyên cây.
Hình 3 – Bài toán cây tối ưu minh họa
Phép chuyển áp dụng ở bước k để tạo ra một cây ở bước k+1 bao gồm việc gỡ cạnh (1,3) và thêm vào cạnh (4,6). Được thể hiện ở hình 2, là cạnh được đánh dấu và cạnh đứt nét. Ở bước thứ k, cạnh (1,3) và cạnh ảo (4,6) trong cây được xem là hai thuộc tính lời giải (solution attribute) khác nhau, và được gọi là (1,3) trong và (4,6) ngoài. Các thuộc tính này được xem là tabu-active, được dùng để định nghĩa ra trạng thái tabu (tabu status) của các phép chuyển ở các bước tiếp theo.
Ví dụ trong bộ nhớ recency-based ta có thể cho cạnh (1,3) trong là tabu- active trong 3 bước, để giữ cho cạnh (1,3) không bị thêm lại vào cây hiện tại trong những bước này. Do đó cạnh (1,3) chỉ có thể thêm vào cây ở bước gần nhất là bước
4 +
k . Tương tự, nếu cho cạnh (4,6) ngoài tabu-active trong 1 bước để giữ cho cạnh (4,6) khỏi bị gỡ ra trong 1 bước. Những điều kiện này giúp cho việc thực hiện các phép chuyển tránh lặp lại những lần chuyển ở những bước trước.
Số bước mà một cạnh trong trạng thái tabu-active được gọi là “tabu tenure”. Nếu giá trị tabu tenure quá lớn sẽ làm cho chất lượng của lời giải không được cải thiện. Nhưng nếu tabu tenure quá nhỏ sẽ làm cho hàm mục tiêu lặp lại theo chu kỳ.
Trong ví dụ trên, khi bộ nhớ hiện mở rộng các lời giải hàng xóm trong khi tìm kiếm cục bộ (bằng cách nhớ các lời giải tốt), thì bộ nhớ thuộc tính làm giảm các lời giải đó (bằng cách giữ hoặc cấm các phép chuyển có chọn lọc).
Ngoài ra còn có một loại bộ nhớ đặc biệt được tạo ra bằng cách thực hiện hàm băm. Loại này được xem như là một loại “bộ nhớ bán hiện” (semi-explicit memory) có thể được dùng để thay cho bộ nhớ thuộc tính.