1. Trang chủ
  2. » Công Nghệ Thông Tin

Thuật toán giải bài toán suy diễn tiến

2 10,1K 187
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 29,5 KB

Nội dung

Thuật toán giải bài toán suy diễn tiến

Trang 1

Suy diễn tiến - Một giải thuật thú vị

Lê Nhật Quang

Đã bao giờ bạn muốn xây dựng một chương trình giải toán tự động, chỉ cần nhập một đề toán, sau đó, chương trình trình sẽ đưa ra phương pháp giải, hoặc hơn nữa, chương trình

sẽ tự động tính toán luôn kết quả cho bạn Nếu câu trả lời là ″có″ thì thuật giải này sẽ là công cụ tuyệt vời để hỗ trợ cho bạn đấy! Bây giờ, chúng ta cùng tìm hiểu về thuật giải này:

I/ Giới thiệu thuật giải:

1/ Hệ luật dẫn: là luật phát biểu dưới dạng:

If p1,p2,…,pn then q1,q2,…,qm

Trong đó, các ký hiệu pi,qj là các sự kiện nào đó

VD : - If a>b, b>c then a>c

- If a=b then b=a

2/ Mô hình hệ luật dẫn: Gồm 2 thành phần cơ bản (F,R)

F là tập sự kiện , R là tập luật dẫn, mỗi luật có dạng: A >B (A là giả thiết, B là kết luận của luật)

VD: Các liên hệ suy dẫn trên các yếu tố của một tam giác theo hệ luật dẫn:

(1) Tập sự kiện:

F={a,b,c,A,B,C,R,S,p,ha,hb,hc,…}

Trong đó: sự kiện a tương đương với ″biết cạnh a″

sự kiện b tương đương với ″biết cạnh b″

(2) Tập luật dẫn:

R={ r1 : A,B-> C,

r2: a,b,c->S,

}

3/ Vấn đề suy diễn:

Giả sử có hệ luật dẫn (F,R) Cho trước một tập sự kiện giả thiết GT và một tập sự kiện mục tiêu G

Hỏi có thể suy ra các sự kiện mục tiêu G từ GT hay không?

4/ Suy diễn tiến:

Là quá trình suy ra các sự kiện mới từ những sự kiện đang có dự trên sự áp dụng của các luật dẫn, tập sự kiện xuất phát là các sự kiện trong giả thiết

Quá trình suy diễn kết thúc khi đạt được các sự kiện mục tiêu hoặc khi không suy diễn thêm được sự kiện gì mớidựa trên các luật dẫn

VD: GT={a,b,A} G={S}

Quá trình suy diễn:

- a,b,A -> B (luật a,b,A -> B dựa trên định lý hàm số Sin)

GT1={a,b,A,B}

Trang 2

- A,B-> C (luật A,B->C dựa trên định lý tổng các góc trong tam giác )

- C,a,b->S (luật C,a,b->S dựa theo công thức S=1/2abSinC)

-> từ a,b,A ta suy được S

II/ Thuật giải suy diễn tiến:

Bước 1: Ghi nhận tập sự kiện ban đầu A=giả thiết và mục tiêu là B

Bước 2: Tìm luật dẫn r: GT->KL sao cho GT thuộc A

Bươc 3: if (tìm được luật r) then

3.1 : Ghi nhớ luật r

3.2: Bổ sung luật r (KL của luật r) vào A

3.3 if (B thuộc A) then Kết thúc

end

else Kết thúc: bị bế tắc

Bươc 4: Trở lại bước 2

Sau khi đọc xong thuật giải suy diễn tiến, bạn có thể tự xây dựng một chương trình giải toán đơn giản, ví dụ như giải toán hình học trong hệ luật dẫn tam giác

VD:

Nhập giả thiết: a b c - mục tiêu: hc

Chương trình cho ra kết quả:

âb^c -> S (S=a*b*c/4*R)

S^c -> hc (hc=2*S/c)

Bạn nên tổ chức 1 file dữ liệu chứa tập sự kiện F và tập luật dẫn R Chương trình sẽ dựa trên file dữ liệu này để giải một số bài toán Đây là cấu trúc file dữ liệu đề nghị:

- Dòng 1: Chứa tập sự kiện của tam giác

a b c A B C ha hb hc p r R S

- K dòng tiếp theo chứa các luật dẫn và các chú thích :

ÂB -> C (C=180-B-A)

C,a,b->S (S=1/2abSinC)

Đây là một thuật giải đơn giản và hay,với một chút khéo léo trong việc xử lý, tôi nghĩ bạn

sẽ dễ dàng xây dựng được chương trình này Một điều lưu ý nữa là thuật giải này có thể sẽ làm một số bước dư thừa, bạn có thể dùng phương pháp quay lui hay tìm kiễm theo chiều rộng để tìm ra kết quả một cách tối ưu và công việc này xin nhường lại cho bạn! Nếu có thắc mắc hay cân chưưong trình ví dụ thì xin lien lạc vối tôi tại địa chỉ:

michealnest@hcmc.netnam.vn

Ngày đăng: 07/09/2012, 10:55

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w