Tính giại được

Một phần của tài liệu Mạng suy diễn tính toán (Trang 29 - 37)

III. Tìm lời giại 3.1 Tính giại được

3.1 Tính giại được

3.1 Tính giại được

ª Định nghĩa “bao đóng”:

• Cho máng suy dieên (M,F), và A là moơt taơp con cụa M. Ta có theơ thây raỉng có duy nhât moơt taơp hợp B lớn

nhât ⊆ M sao cho bài toán A → B là giại được, và taơp hợp B naăy được gĩi là bao đóng cụa A tređn máng

(M,F).

• Ký hieơu bao đóng cụa A là • Closure(A).

ª Định lý:

• Tređn moơt máng suy dieên (M,F), bài toán A → B là giại

được khi và chư khi B ⊆ Closure(A).

ª Meơnh đeă:

• Tređn moơt máng suy dieên (M,F), giạ sử A, B là hai taơp con cụa M. Ta có các đieău sau đađy là tương đương:

• (1) B ⊆ Closure(A).

• (2) Có moơt dãy quan heơ D = {f1, f2, ..., fk} ⊆ F thỏa

các đieău kieơn :

(a) D áp được tređn A.

ª Thuaơt toán tìm bao đóng cụa A tređn máng (M,F).

• 1. B ← A; 2. Repeat B1 ← B;

for f ∈ F do

if ( f đôi xứng and Card (M(f) \ B) ≤ r(f) ) or (f khođng đôi xứng and M(f) \ B ⊆ v(f) )

then

begin

B ← B ∪ M(f);

F ← F \ {f}; // lối f khỏi laăn xem xét sau end;

Until B = B1; 3. Closure(A) ← B;

3.2 Tìm lời giại

3.2 Tìm lời giại

ª Meơnh đeă:

• Dãy quan heơ suy dieên D là moơt lời giại cụa bài toán

A → B khi và chư khi D áp dúng được tređn A và

D(A) ⊇ B.

⇒ Đeơ tìm moơt lời giại ta có theơ làm như sau: Xuât phát từ

giạ thiêt A, ta thử áp dúng các quan heơ đeơ mở roơng daăn taơp các biên được xác định (được biêt); và quá trình naăy táo ra moơt sự lan truyeăn tính xác định tređn taơp các biên cho đên khi đát đên taơp biên B.

ª Thuaơt toán tìm moơt lời giại cụa bài toán A B .

• 1. Solution ← empty;

// Solution là dãy các quan heơ sẽ áp dúng

• 2. if B ⊆ A then

begin

Solution_found ← true;

// biên Solution_found = true khi

// bài toán là giại được

goto bước 4;

end

else

3.

3. Repeat

Aold ← A; Chĩn ra moơt f ∈ F chưa xem xét;

while not Solution_found and (chĩn được f) do begin

if ( f đôi xứng and 0 < Card (M(f) \ A) ≤ r(f) ) or (f khođng đôi xứng and ∅ ≠ M(f) \ A ⊆ v(f)) then begin A ← A ∪ M(f); Solution ← Solution ∪ {f}; end; if B ⊆ A then Solution_found ← true;

Chĩn ra moơt f ∈ F chưa xem xét;

4.

4. if not Solution_found then

Bài toán khođng có lời giại;

else

Solution là moơt lời giại;

° Nhaơn xét:

• khi caăn trình bày quá trình giại (hay bài giại) ta có theơ xuât phát từ lời giại tìm được dưới dáng moơt dãy các quan heơ đeơ xađy dựng bài giại.

• Lời giại (nêu có) tìm được trong thuaơt toán tređn chưa chaĩc là moơt lời giại tôt. Ta có theơ boơ sung theđm cho thuaơt toán ở tređn moơt thuaơt toán đeơ tìm moơt lời giại tôt từ moơt lời giại đã biêt nhưng chưa chaĩc là tôt.

ª Thuaơt toán tìm moơt lời giại tôt cụa bài toán A B .

• Giạ sử {f1, f2, ..., fm} là moơt lời giại cụa bài toán A→ B. Tìm moơt lời giại tôt cho bài toán.

• 1. D ← {f1, f2, ..., fm};

2. for i=m downto 1 do

if D \ {fi} là moơt lời giại then D ← D \ {fi};

3. D là moơt lời giại tôt.

° Lưu ý: ta có theơ tìm moơt lời giại tôt từ moơt lời giại biêt trước baỉng cách laăn lượt xem xét các quan heơ trong taơp lời giại đã biêt và chĩn ra các quan heơ đeơ đưa vào moơt lời giại mới sao cho trong lời giại mới naăy khođng theơ

Một phần của tài liệu Mạng suy diễn tính toán (Trang 29 - 37)

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

(88 trang)