Thuật toán leo đồi dốc đứng

Một phần của tài liệu Các kỹ thuật kiểm thử cấu trúc chương trình theo hướng tiếp cận kiểm thử dựa (Trang 29 - 30)

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

2.4.2. Thuật toán leo đồi dốc đứng

Về cơ bản thuật toán leo đồi dốc đứng cũng giống leo đồi cơ bản [12], chỉ khác ở điểm là leo đồi dốc đứng sẽ duyệt tất cả các hƣớng đi có thể và chọn hƣớng đi theo trạng thái tốt nhất trong các trạng thái kế tiếp có thể có (trong khi đó leo đồi chỉ chọn đi theo trạng thái kế tiếp đầu tiên tốt hơn trạng thái hiện thời mà nó tìm thấy).

Tƣ tƣởng

Nếu trạng thái bắt đầu và cũng là trạng thái đích thì thoát và báo là đã tìm đƣợc lời giải. Ngƣợc lại đặt trạng thái hiện thời T(i) là trạng thái khởi đầu T0.

Lặp lại cho đến khi đạt đến trạng thái đích hoặc cho đến khi (Ti) không tồn tại trạng thái hợp lệ tiếp theo (Tk) tốt hơn trạng thái hiện thời (Ti):

Đặt S bằng tập tất cả trạng thái kế tiếp có thể có của (Ti) và tôt hơn (Ti). Xác định Tk max là tốt nhất trong tập S. Đặt Ti = Tk max.

Mã giả

Ti := T0 ;

Stop := FALSE ;

WHILE Stop = FALSE DO BEGIN IF Ti TG THEN BEGIN <tìm đƣợc kết quả> ; Stop := TRUE ; END ELSE BEGIN Best := h’(Ti) ; Tmax = Ti ;

WHILE <tồn tại trạng thái kế tiếp hợp lệ của Ti> DO BEGIN

Tk := <một trạng thái kế tiếp hợp lệ của Ti>; IF <h’(Tk) tốt hơn Best> THEN BEGIN

Best := h’( Tk) ; Tmax = Tk ;

END; END;

IF <Best >Ti> THEN Ti := Tmax ELSE BEGIN <không tìm đƣợc kết quả>; Stop := TRUE; END; END; {ELSE} END ; {WHILE Stop}

Trong đó:

 Ti = trạng thái hiện hành;  T0 = trạng thái khởi đầu;  TG = trạng thái đích;

 Tk = trạng thái hợp lệ kế tiếp của Ti (trạng thái có hàm đánh giá tốt hơn Ti);

 Tk max= trạng thái hợp lệ kế tiếp tốt nhất;  h’() : hàm đánh giá;

 Tmax: trạng thái tốt nhất;

Một phần của tài liệu Các kỹ thuật kiểm thử cấu trúc chương trình theo hướng tiếp cận kiểm thử dựa (Trang 29 - 30)

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

(82 trang)