Chương trình có thể mở rộng ra để biễu diễn và tính toán các công thức, các định luật, định lý trong hình học phẳng, hình học không gian.. I.1.2 Cấu trúc của hệ giải toán dựa trên tri th
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
-[ \ -
TIỂU LUẬN MÔN HỌC:
LẬP TRÌNH SYMBOLIC
ĐỀ TÀI:
HỆ SUY DIỄN TIẾN
VÀ GIẢI TAM GIÁC BẰNG MAPLE
GVHD : PGS.TS Đỗ Văn Nhơn Người thực hiện : Nguyễn Hoàng Sỹ
Mã số : CH1101037
Lớp : CH06
Tp.HCM, tháng 01 năm 2013
Trang 2MỤC LỤC
MỤC LỤC 1
LỜI NHẬN XÉT 3
LỜI MỞ ĐẦU 4
Chương I: CƠ SỞ LÝ THUYẾT 5
I.1 TỔNG QUAN: 5
I.1.1 Khái niệm: 5
I.1.2 Cấu trúc của hệ giải toán dựa trên tri thức: 7
I.1.3 Các thành phần chính của hệ thống trong việc giải toán: 7
I.2 HỆ SUY DIỄN: 8
I.2.1 Khái niệm: 8
I.2.2 Suy diễn tiến: 8
I.2.3 Suy diễn lùi: 9
I.2.4 Suy diễn hỗn hợp: 10
I.3 HỆ LUẬT – ĐỊNH LÝ GIẢI TAM GIÁC : 11
I.3.1 Khái niệm : 11
I.3.2 Các hệ thức cơ bản giữa các yếu tố của tam giác: 12
I.3.3 Các hệ thức cơ bản giữa các yếu tố của tam giác cân : 14
I.3.4 Các hệ thức cơ bản giữa các yếu tố của tam giác vuông : 15
I.3.5 Các hệ thức cơ bản giữa các yếu tố của tam giác vuông cân : 16
Trang 3I.3.6 Các hệ thức cơ bản giữa các yếu tố của tam giác đều : 17
Chương II: PHẦN CHƯƠNG TRÌNH 19
PHẦN A: XÂY DỰNG HÀM SUY DIỄN TIẾN 19
A.1 Giới thiệu ý tưởng: 19
A.2 Thuật giải : 19
A.3 Viết thủ tục chương trình: 20
PHẦN B: XÂY DỰNG HÀM GIẢI TAM GIÁC 22
B.1 Giới thiệu ý tưởng: 22
B.2 Thuật giải: 22
B.3 Viết thủ tục chương trình: 24
Chương III: DEMO CHƯƠNG TRÌNH GIẢI TAM GIÁC BẰNG MAPLE 26
III.1 Giới thiệu phạm vi: 26
III.2 Yêu cầu cài đặt: 26
III.3 Demo bằng Maple: (đính kèm) 26
III.3.1 Hàm Suy diễn tiến: 26
III.3.1 Hàm Suy diễn tiến giải tam giác: 27
KẾT LUẬN 30
TÀI LIỆU THAM KHẢO 31
Trang 4LỜI NHẬN XÉT
Trang 5
LỜI MỞ ĐẦU
Từ trước đến nay, vấn đề biểu diễn tri thức, tin học hóa các ngành nghề trong cuộc sống của con người Biểu diễn các dạng ngữ nghĩa, các dạng tri thức trên máy tính là một đề tài hết sức hấp dẫn, luôn được các nhà khoa học và những người làm tin học nghiên cứu
và ứng dụng Một trong những ngành khoa học được ứng dụng nhiều nhất đó chính là ngành toán học
Điển hình trong toán học, lĩnh vực hình học về giải tam giác là một chủ đề được rất nhiều nhà toán học quan tâm Trong suốt quá trình phát triển, họ không ngừng đưa ra được các định lý, các nguyên lý, các định luật về hình học tam giác Đến ngày nay, các định lý các định luật, các công thức về tam giác được tìm ra, được phát minh tương đối đầy đủ và được phổ cập trong các bậc học phổ thông
Tuy nhiên việc biểu diễn các định lý, định luật trên mới được sử dụng bằng phương pháp truyền thống, và việc truyền đạt lại cho thế hệ sau vẫn còn gặp một số khó khăn nhất định Để giúp cho người dạy, người học có thể dễ truyền đạt, dễ hiểu Trong tiểu luận
này, tôi sẽ áp dụng môn học “LẬP TRÌNH SYMBOLIC GIẢI TAM GIÁC BẰNG
MAPLE” cùng với thuật giải ”SUY DIỄN TIẾN”
Chương trình có thể mở rộng ra để biễu diễn và tính toán các công thức, các định luật, định lý trong hình học phẳng, hình học không gian
Tôi chân thành cảm ơn Thầy PGS.TS Đỗ Văn Nhơn đã truyền đạt những kiến thức quý báu về khái niệm, ý nghĩa, các tài liệu, mô hình và cơ chế suy diễn, thiết thực hơn, nâng cao hiểu biết, cung cấp kiến thức mở rộng phục vụ cho quá trình nghiên cứu về sau vào từng lĩnh vực ứng dụng đặc thù với những đặc trưng riêng./
Trang 6Chương I: CƠ SỞ LÝ THUYẾT
I.1 TỔNG QUAN:
I.1.1 Khái niệm:
Khái niệm: Tri thức (knowledge) là sự hiểu biết về một lĩnh vực của chủ đề Lĩnh vực: miền chủ đề được chú trọng Tri thức thường bao gồm các khái niệm, các loại sự kiện, các luật,
Phương pháp biểu diễn tri thức bằng luật sinh được phát minh bởi Newell và Simon trong lúc hai ông đang cố gắng xây dựng một hệ giải bài toán tổng quát Đây là một kiểu biểu diễn tri thức có cấu trúc Ý tưởng cơ bản là tri thức có thể được cấu trúc bằng một
cặp điều kiện & hành động : "NẾU điều kiện xảy ra THÌ hành động sẽ được thi hành"
- Chẳng hạn :
NẾU đèn giao thông là đỏ THÌ bạn không được đi thẳng,
NẾU máy tính đã mở mà không khởi động được THÌ kiểm tra nguồn điện, v.v… Ngày nay, các luật sinh đã trở nên phổ biến và được áp dụng rộng rãi trong nhiều hệ thống trí tuệ nhân tạo khác nhau Luật sinh có thể là một công cụ mô tả để giải quyết các vấn đề thực tế thay cho các kiểu phân tích vấn đề truyền thống Trong trường hợp này, các luật được dùng như là những chỉ dẫn (tuy có thể không hoàn chỉnh) nhưng rất hữu ích để trợ giúp cho các quyết định trong quá trình tìm kiếm, từ đó làm giảm không gian tìm kiếm
- Một ví dụ khác là luật sinh có thể được dùng để bắt chước hành vi của những chuyên gia Theo cách này, luật sinh không chỉ đơn thuần là một kiểu biểu diễn tri thức trong máy tính mà là một kiểu biễu diễn các hành vi của con người
* Một cách tổng quát luật sinh có dạng như sau:
P 1 P 2 Pn Q
Tùy vào các vấn đề đang quan tâm mà luật sinh có những ngữ nghĩa hay cấu tạo khác nhau :
Trang 7- Trong logic vị từ : P1, P2, , Pn, Q là những biểu thức logic
- Trong ngôn ngữ lập trình, mỗi một luật sinh là một câu lệnh
IF (P1 AND P2 AND AND Pn) THEN Q
- Trong lý thuyết hiểu ngôn ngữ tự nhiên, mỗi luật sinh là một phép dịch:
Ví dụ : Cho 1 cơ sở tri thức đƣợc xác định nhƣ sau :
Trang 8I.1.2 Cấu trúc của hệ giải toán dựa trên tri thức:
Hình: Cấu trúc của một hệ giải toán thông minh
I.1.3 Các thành phần chính của hệ thống trong việc giải toán:
Hệ giải toán thông minh có thể giải được các dạng bài toán tổng quát trong một miền tri thức
- Cơ sở tri thức (Knowledge Base) Đây là trái tim của hệ thống, trong đó chứa các kiến thức cần thiết cho việc giải các bài toán
- Bộ suy diễn (hay mô tơ suy diễn) Bộ suy diễn sẽ áp dụng kiến thức được lưu trữ trong cơ sở tri thức để giải quyết hay tìm lời giải cho các bài toán đặt ra
Sự tách biệt: tính độc lập tương đối giữa cơ sở tri thức và bộ suy diễn
Trang 9- Cho phép cùng một chiến lược điều khiển và giao tiếp có thể được sử dụng cho nhiều hệ thống khác nhau
- Sự tách biệt của kiến thức giải bài toán và bộ suy diễn còn giúp ta có thể thử nghiệm nhiều chiến lượt điều khiển khác nhau trên cùng một cơ sở tri thức
I.2 HỆ SUY DIỄN:
I.2.1 Khái niệm:
Một tập hợp các công thức liên hệ tính toán trên các yếu tố của tam giác Suy diễn nhằm vận dụng kiến thức đã biết trong quá trính lập luận giải quyết vấn đề trong đó quan trọng nhất là các chiến lược điều khiển giúp phát sinh những sự kiện mới từ các sự kiện đã có Suy diễn tự động: Quá trình suy diễn được thuật giải hóa và có thể cài đặt thành chương trình máy tính
Các kỹ thuật suy diễn cơ bản:
- Suy diễn tiến
- Suy diễn lùi
I.2.2 Suy diễn tiến:
Phương pháp: Suy dẫn từ giả thiết đi đến kết luận
Chiến lược này được bắt đầu bằng tập sự kiện đã biết, rút ra các sự kiện mới nhờ dùng các luật mà phần giả thiết khớp với sự kiện đã biết, và tiếp tục quá trình này cho đến khi thấy trạng thái đích, hoặc cho đến khi không còn luật nào khớp được các sự kiện đã biết hay được sự kiện suy luận
Trong áp dụng cụ thể phương pháp thường sử dụng kết hợp với các qui tắc heuristic trong việc chọn luật
Ví dụ: tiếp theo các luật trên
Sự kiện ban đầu : H, K
R3 : H A {A, H K } R1 : A E { A, E, H, K }
Trang 10R5 : E K B { A, B, E, H, K }
R2 : B D { A, B, D, E, H, K } R6 : D E K C { A, B, C, D, E, H, K }
I.2.3 Suy diễn lùi:
Phương pháp: Truy ngược từ kết luận trở về giả thiết
Phương pháp này được tiến hành bằng cách truy ngược từ mục tiêu cần đạt được trở về phần giả thiết của bài toán bằng cách áp dụng các luật trong cơ sở tri thức
Quá trình suy diễn lùi này sẽ phát sinh một sơ đồ cây mục tiêu kèm theo một cơ chế quay lui và lời giải sẽ được tìm thấy khi tất cả các mục tiêu ở các nút lá của cây mục tiêu đều thuộc về những sự kiện đã biết
Trong áp dụng cụ thể phương pháp thường sử dụng kết hợp với các qui tắc heuristic trong việc chọn luật
Trang 11R2 Nếu (điện vào máy là "có") và ( (âm thanh đọc ổ cứng là "không") hoặc tình trạng đèn ổ cứng là "tắt")) thì (ổ cứng "hỏng")
R3 Nếu (điện vào máy là "có") và (tình trạng đèn màn hình là "chớp đỏ") thì (cáp màn hình "lỏng")
Để xác định được các nguyên nhân gây ra sự kiện "không sử dụng được máy tính", ta phải xây dựng một cấu trúc đồ thị gọi là đồ thị AND/OR như sau :
Ví dụ câu hỏi "Bạn kiểm tra xem có điện vào máy tính không (kiểm tra đèn nguồn)?
(C/K)" Để thực hiện được cơ chế suy luận lùi, người ta thường sử dụng ngăn xếp (để
ghi nhận lại những nhánh chưa kiểm tra)
Hình: Cơ chế suy diễn của suy diễn lùi
I.2.4 Suy diễn hỗn hợp:
Phương pháp: Kết hợp 2 quá trình suy diễn tiến và suy diễn lùi nhằm khắc phục khuyết điểm của mỗi phương pháp và nâng cao hiệu quả của quá trình suy diễn trong áp dụng
cụ thể
Nhược điểm của suy diễn tiến: Không cảm nhận được sự gần tới đích
Nhược điểm của suy diễn lùi: thường dẫn tới sự phân nhánh lớn và không cảm nhận được sự cần chuyển hướng dòng suy nghĩ
Trang 12I.3 HỆ LUẬT – ĐỊNH LÝ GIẢI TAM GIÁC :
I.3.1 Khái niệm :
Về mặt tính toán, chúng ta có thể xem tam giác là một mạng tính toán (hay một đối tượng tính toán) bao gồm các biến ghi nhận giá trị của các yếu tố trong tam giác, và các quan hệ là các công thức thể hiện mối liên hệ tính toán giữa các yếu tố đó
Kiến thức về một tam giác cần thiết cho việc giải bài toán tam giác có thể được biểu diễn gồm:
Một tập hợp các biến thực, mỗi biến đại diện cho một yếu tố của tam giác
Tập các biến trong tam giác gồm :
a, b, c : 3 cạnh của tam giác (Hình 1.1)
, , : 3 góc đối diện với 3 cạnh tương ứng trong tam giác (Hình 1.1)
ha, hb, hc : 3 đường cao tương ứng với 3 cạnh của tam giác (Hình 1.2a)
ma, mb, mc : 3 đường trung tuyến tương ứng với 3 cạnh của tam giác (Hình 1.2b)
pa, pb, pc : 3 đường phân giác trong tương ứng với 3 cạnh của tam giác
S : diện tích tam giác
p : nửa chu vi của tam giác
R : bán kính đường tròn ngoại tiếp tam giác
r : bán kính đường tròn nội tiếp tam giác
ra, rb, rc : các bán kính của các đường tròn bàng tiếp tam giác
Hình 1.1
Trang 13Hình 1.2a 3 đường cao Hình 1.2b 3 đường trung tuyến
I.3.2 Các hệ thức cơ bản giữa các yếu tố của tam giác:
f6 : c
sin
b sin
f7 : a
sin
c sin
Trang 15Trong các công thức trên, có một số công thức có thể đƣợc suy ra từ các công thức khác
Do đó ta có thể bỏ bớt một số công thức Hơn nữa, chúng ta có thể nêu lên một thuật toán để làm tối thiểu hóa các công thức (hay các quan hệ) theo một thứ tự ƣu tiên nào
đó Tuy nhiên, nếu có thể nhớ đƣợc trực tiếp nhiều công thức thì việc tính toán sẽ có lợi hơn
I.3.3 Các hệ thức cơ bản giữa các yếu tố của tam giác cân :
Tam giác cân (không làm mất tính tổng quát, ta giả sử cân tại A) là một tam giác có các
tính chất sau đây:
g1 : b = c
g2 : =
g : h = h
Trang 16I.3.4 Các hệ thức cơ bản giữa các yếu tố của tam giác vuông :
Không làm mất tính tổng quát, ta giả sử tam giác vuông có cạnh huyền là a Nhƣ thế,
ngoài những hệ thức đã biết trong tam giác nói chung ta còn có :
g1 : = /2 ( đã xác định)
Ngoài ra một số quan hệ có thể đƣợc viết lại nhƣ sau:
Trang 17I.3.5 Các hệ thức cơ bản giữa các yếu tố của tam giác vuông cân :
Tam giác vuông cân (với cạnh đáy tam giác cân là a) là một tam giác có :
Trang 18I.3.6 Các hệ thức cơ bản giữa các yếu tố của tam giác đều :
Tam giác đều là một tam giác có :
g1 : a = b
g2 : b = c
Tất cả các quan hệ từ f1 đến f36 có thể đƣợc thay thế bởi các quan hệ sau :
f1 : = /3 (radian)
Trang 20Chương II: PHẦN CHƯƠNG TRÌNH
PHẦN A: XÂY DỰNG HÀM SUY DIỄN TIẾN
A.1 Giới thiệu ý tưởng:
Hệ suy diễn tiến là suy diễn tiến trên "hệ luật dẫn cơ bản" (gồm tập sự kiện và tập luật dẫn)
Giả sử có tập giả thiết cho trước H (H là tập con F), ta muốn suy ra 1 tập mục tiêu G (G
là tập con của F) Tìm dãy các luật để từ H suy ra được G (hay còn gọi là tìm lời giải cho bài toán suy diễn)
- Phần giả thiết phải nằm trong H
- Phần kết luận không nằm trong H
Mỗi khi tìm được luật áp dụng ghi nhớ luật đó, đồng thời ghi nhận sự kiện mới áp dụng suy ra từ đó Cứ lặp lại cho đến khi tập sự kiện ta có trùng với tập G Có trường hợp dừng khi tìm luật không có
+ Biến (với kiểu dữ liệu nhất định): giả thiết F(Facts), R(Rules), H(GT), G(KL)
Biến tìm lời giải solution(Sol): danh sách các luật được áp dụng
Trang 21Biến Facts_known(Known): lưu lại tập sự kiện đã biết, kiểu dữ liệu là tập sự kiện
Bước 1: Khởi tạo các biến
Solution:= [];
Facts_known:= H;
Bước 2:
while (chưa đạt được mục tiêu G) do
2.1 Tìm luật r thuộc R có thể áp dụng trên Facts_known nhằm sinh ra sự kiện
mới (gt(r)Facts_Known, và kl(r) không nằm trong Facts_Known.)
Cho kết quả tìm được lời giải Solution nếu có, list rỗng nếu không tìm thấy
A.3 Viết thủ tục chương trình:
Giả sử đã có (F,R), biến toàn cục
Trang 23PHẦN B: XÂY DỰNG HÀM GIẢI TAM GIÁC
B.1 Giới thiệu ý tưởng:
Chương trình hỗ trợ việc dùng các định lý của tam giác, tạo thành tập các công thức để giải tam giác với:
Ý tưởng: Trong tam giác, giả sử ta biết 1 số thuộc tính tam giác
, ta có thể tính thêm một hoặc các thuộc tính còn lại của tam giác (theo định lý của tam giác)
Giá trị đầu vào
(Input)
Tập luật (Formula)
& Hệ luật suy diễn
Giá trị đầu ra (Output)
Phát sinh thêm các tập luật mới (dùng suy diễn tiến), nhằm tạo thêm giá trị cho việc tính toán theo yêu cầu của đề bài tam giác
Ví dụ:
Tính S; R
B.2 Thuật giải:
Ta định nghĩa:
+ Biến (với kiểu dữ liệu nhất định) và sử dụng các cấu trúc điều khiển
+ Solution: danh sách các công thức được áp dụng
+ Facts_known: tập các đẳng thức để tính và lưu lại tập sự kiện các biến đã biết
Bước 1: Khởi tạo các biến
Trang 24while (G không nằm trong map(x->lhs(x), Facts_known)) do
2.1 Tìm 1 công thức f thuộc tập Fomula có thể áp dụng trên tập Facts_known
(Tìm công thức nào có đúng 1 biến chưa biết trong công thức để tính.)
Ví dụ :
cạnh a=5, b=4, c=3 công thức nào áp dụng được?
> nữa chu vi: p=(a+b+c)/2, lúc đó tập Facts_known là { a=5, b=4, c=3, p=6} Từ đó tính được S ; qua công thức S = sqrt(p*(p-a)*(p-b)*(p-c))
2.2 if (không tìm được f) then
Dừng: không tìm được lời giải
2.3 (Ý tưởng: Từ công thức f, thay thế và giải phương trình để tính ra biến mới
(thủ tục subs và solve), làm sao biến nào biến mới (check tập biến công thức "hàm indets" hiệu với tập biến trong facts_known tồn tại là biến mới))
Thêm f vào Solution;
Xác định biến mới sẽ tính ra: Vnew=V(f) - V(Facts_known);
Thay thế và giải: Newfact:=solve (subs(Facts_known, f), Vnew));
Facts_known := Facts_known union Newfact;
end do;
Bước 3:
Cho kết quả tìm được lời giải Solution nếu có, list rỗng nếu không tìm thấy
Trang 25B.3 Viết thủ tục chương trình:
Trang 27Chương III: DEMO CHƯƠNG TRÌNH GIẢI TAM GIÁC BẰNG MAPLE
III.1 Giới thiệu phạm vi:
Chương trình hỗ trợ giải tam giác từ các công thức, định lý của tam giác Người dùng nhập thông tin đầu vào: ví dụ như các cạnh, chương trình sẽ suy diễn tiến (từ các tập luật khởi tạo ban đầu của hệ thống) tạo ra các thông tin còn thiếu để suy ra kết luận mong muốn
III.2 Yêu cầu cài đặt:
Kiến thức các định lý về tam giác theo sách giáo khoa chương trình phổ thông
Máy tính có cài đặt chương trình Maple 14 trở về sau
III.3 Demo bằng Maple: (đính kèm)
III.3.1 Hàm Suy diễn tiến: