Tại 1 thời điểm n o đó trong quá trình SD tiến chúng ta có thể dùng nhiều luật cùng một lúc:
TGian = {sự kiện f đã CM}; TG = {GT}
(Mở) THOẢ = {r: left q/ left TGian} tập luật có thể áp dụng (Đóng) VET = {r1… rk} tập những luật đã dùng
25
2 cơ chế chọn: + cứng nhắc (LIFO, FIFO) (sâu, rộng) (max, min)
+ mềm dẻo
Đều l quá trình vét cạn (to n bộ tập luật)
Độ phức tạp 0 (Bh)
Để chọn theo mềm dẻo hàm h_(r) (heurestic)
Max/ min (extremum)
Đánh giá:
- # VET min (c ng ít c ng tốt)
- Dƣ min
VD: (*)
Gt = {a, b, R}, Kl = {p}
{a, b, R} {a, b, R, A} {a b R A B} {a bR AB} {a b RABCc} VET = {r7, r8, r4, r1, r9, r10, r11}
A B C c P Dƣ = 2
Nên theo CS Min VET = {r7, r8, r4, r1, r9, r10, r11} (2) CS Max VET = {r8, r7, r4, r13, r11} (1) FIFO VET = {r7 r8 r4 r11 r13 r9 r10 r11} (3) LIFO VET = {r8 r7 r4 r13 r15 r1 r9 r10 r11} (4) Vậy có cách n o để Dƣ = 0 ?
{a, b, R} {a, b, R, A} {a, b, R, A, B} {a, b, R, A, B, C}…... 7,8
CS min r4 rmin …
26
Đồ thị FPG (Fact Precedence Graph)
Sử dụng để miêu tả mối tƣơng quan giữa điều n y với điều khác Vd (*)
hˆ1(r) = hˆ1(r: left q)
= UL (a, K, L) = kcFPG (a, KL) Chọn r: hˆ1(r) min
NXét: 1) f g FPG thì f đƣợc dùng trực tiếp để suy ra G (r: left g, f left) 2) Có đƣờng đi P: f……g thì đƣợc dùng gián tiếp để suy ra g. {a,b,r}7,8 {a b R A}8 {a b R A B}4{a b R A B C}1,13 …….. hˆ1(r7)=kc(A,p)=3 hˆ1(r8)=kc(B,p)=3 hˆ1(r1)=kc(c,p)=1 hˆ1(r13)=kc(s,p)= hˆ1(r9)=kc(P,p)= hˆ1(r10)=kc(mc,p)= hˆ1(r11)=kc(p,p)=0 Chọn r1 Chọn r11 hc R A B C a b ma c mb mc P p ha S hb r
27
Nhận xét:
#VET +Complexity hˆ x m
ii)Đồ thị RPG(Rule Precedence Graph) RPG=(R,A)
Trong đó R: Tập các đỉnh
A: l tập các cạnh sao cho: r r’, r:left q qleft’ r’:leftq’
VD:Xây dựng đồ thị RPG cho ví dụ trên ta có:
*Xây dụng h m hˆ2 (r)?
hˆ2 (r)=?
RKL={r:left q/q KL}R
hˆ2 (r)=kcRPG(r,RKL)
Chọn r sao cho hˆ2 (r)min
Xét ví dụ sau: GT={a b R}, KL={r} {a,b,r}7,8 {a b R A}8 {a b R A B}4{a b R A B C}1,13 {a b R A B C c}9,10,11 ……..KL hˆ2 (r7)=kcRPG(r7, r16)=3 r5 r13 r6 r4 r1 r+9 r7 r2 r10 r8 r3 r11 r16 r14 r12 r15
28 hˆ2 (r8)=kcRPG(r8, r16)=3 hˆ2 (r8)=kcRPG(r8, r16)=3 hˆ2 (r1)=kcRPG(r1, r16)=2 hˆ2 (r13)=kcRPG(r13, r16)=1 hˆ2 (r15)=kcRPG(r15, r16)= hˆ2 (r10)=kcRPG(r10, r10)=1 hˆ2 (r11)=kcRPG(r11, r16)=1 hˆ2 (r14)=kcRPG(r14, r16)=1 hˆ2 (r16)=kcRPG(r16, r16)=0