3. Bố cục của luận văn
2.5.6. Sinh các ứng cử viên hàng xóm
TSG sinh ra 4*n ứng cử viên hàng xóm của CS, n là số lƣợng đầu vào của chƣơng trình. Theo đó, thuật toán sẽ tạo ra 2 kiểm thử hàng xóm gần và 2 kiểm thử hàng xóm xa từ CS. Nói cách khác, nếu CS là (v1, v2, … , v3), TSG sẽ duy trì các giá trị cho tất cả các vk mà đảm bảo k i và sinh ra bốn giá trị mới cho vi
vk’ = vk + s(λ) vk’’ = vk - s(λ) vk’’’ = vk + s(µ) vk’’’’ = vk - s(µ)
Trong đó
s(λ): chiều dài của bƣớc nhảy ngắn s(µ): chiều dài của bƣớc nhảy dài
giá trị s(λ) và s(µ) phụ thuộc vào dạng của biến đầu vào.
Mỗi vòng lặp, TSG sẽ áp dụng một trong bốn trƣờng hợp điều chỉnh tự động của các bƣớc:
Khởi tạo: sử dụng để bắt đầu việc tìm kiếm một vùng mới Tăng: sử dụng để mở rộng việc tìm kiếm một vùng gần CS
Centring: sử dụng để lấy tâm việc tìm kiếm trong một vùng gần CS
Tăng cƣờng: sử dụng để tăng cƣờng việc tìm kiếm trong vùng gần CS nhất. Trong trƣờng hợp này, các giá trị thực, độ dài bƣớc nhỏ hơn 1
Với mỗi hàng xóm Cv đƣợc tạo ra, TSG sẽ xác minh xem nó có là kiểm thử Tabu và từ chối nó. Nếu không phải, nó sẽ thực hiện với chƣơng trình kiểm thử và nếu nó là kiểm thử tốt nhất (BS and/or BKS) cho các nút đến đƣợc, nó sẽ đƣợc chứa trong CFG cùng với giá trị hàm cost.
Nếu các ứng cử viên sinh ra mà bao phủ nút subgoal, TSG sẽ thay đổi nút subgoal trong vòng lặp tiếp theo. Trong bất cứ trƣờng hợp nào, quá trình lựa chọn nút subgoal,sự thành lập CS và sinh các ứng cử viên hàng xóm sẽ đƣợc lặp lại cho đến khi TSG đạt dừng.