Thuaơt toán tìm lời giại tôi ưu:

Một phần của tài liệu Bài giảng biểu diễn tri thức và giải toán tự động (Trang 104 - 112)

IV. Lời giại tôi ưu

Thuaơt toán tìm lời giại tôi ưu:

Bước 1: Khởi táo tráng thái xuât phát.

„ Open H ; // danh sách đưnh mở ban đaău

//chư cĩ đưnh xuât phát

„ Close ; // danh sách đưnh đĩng

„ g(H) 0; // đoơ dài loơ trình đên H là 0

„ f(H) h(H); // đoơ dài loơ trình ước tính từ H

//đên múc tieđu là h(H)

Bước 2:Thực hieơn quá trình laịp đeơ tìm lời giại tơi ưu While (Open ) do

begin

Bước 2.1: Chĩn moơt đưnh N trong Open với ước tính đường đi f nhỏ nhât.

Bước 2.2: Chuyeơn N từ danh sách Open sang

danh sách Close.

Bước 2.3: if (N là moơt múc tieđu) then begin

Found true;

Break; // Kêt thúc quá trình laịp end

„ Bước 2.4: else // N khođng là moơt múc tieđu Begin

Duyeơt qua các đưnh kê S cụa N (tức là cĩ cung r nơi N và S) mà S Close, và xét các trường hợp sau:

1. S Open: Tính

g(S) = g(N) + w(r); f(S) = g(S) + h(S); Boơ sung S vao Open;

2. S Open:

If g(N) + w(r) < g(S) then begin

g(S) g(N) + w(r); f(S) g(S) + h(S);

Caơp nhaơt veă đưnh kê trước cụa S tređn loơ trình; end

End

Bước 3: Kieơm tra kêt quạ vieơc tìm kiêm.

„ If Found then

„ Kêt quạ là tìm được lời giại tơi ưu và

thiêt laơp lời giại

„ Else

„ Kêt quạ là bài tốn khođng cĩ lời giại.

Ví dú:

„ Giạ sử ta cĩ máng suy dieên cĩ trĩng sơ (A, D, w) như

sau: „ A = A, B, C, a, b, c, p, S, ha, hb, hc „ D = „ f1: A + B + C = 180; „ f2: a/sin(A) = b/sin(B); „ f3: b/sin(B) = c/sin(C); „ f4: a/sin(A) = c/sin(C);

„ f5: 2*p = a + b + c; „ f6: S = a*ha/2; „ f7: S = b * hb / 2; „ f8: S = c*hc/2; „ f9: S = sqrt(p*(p-a)*(p-b)*(p-c)); „ f10: ha = b*sin(C); „ f11: hb = a*sin(C); „ f12: hc = b*sin(A) „ .

„ Các trĩng sơ:„ w(f1) = 2; „ w(f1) = 2; „ w(f2) = w(f3) = w(f4) = 2*c2 + 2; „ w(f5) = 3; „ w(f6) = w(f7) = w(f8) = 2; „ w(f9) = c1 + 6; „ w(f10) = w(f11) = w(f12) = c2 + 1.

„ Trong đĩ c1 và c2 là các haỉng sơ dương với c1 >> 1 và c2 >> 1.

„ Xét bài tốn H G với H = a, b, B và G = S .

„ Tređn máng suy dieên (A, D), nêu áp dúng thuaơt tốn tìm

lời giại đã neđu ta cĩ theơ tìm được moơt lời giại S = f2,

f1, f3, f5, f9 .

„ Tređn máng suy dieên cĩ trĩng sơ (A, D, w) lời giại S cĩ trĩng sơ là w(S) = 4*c2 + c1 + 15.

„ Aùp dúng thuaơt tốn tìm lời giại tơi ưu tređn máng (A, D, w) ta cĩ theơ tìm được moơt lời giại S’ = f2, f1, f10, f6 với trĩng sơ là w(S’) = 3*c2 + 7.

Một phần của tài liệu Bài giảng biểu diễn tri thức và giải toán tự động (Trang 104 - 112)

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

(176 trang)