BÀI THU HOẠCH MÔN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG ĐỀ TÀI: Mô hình biểu diễn tri thức Mạng Các Đối Tượng Tính Toán Và Ứng dụng giải bài toán hình học trên một số đối tượng hình học cơ bản
Trang 1BÀI THU HOẠCH MÔN:
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
ĐỀ TÀI:
Mô hình biểu diễn tri thức Mạng Các
Đối Tượng Tính Toán
Và Ứng dụng giải bài toán hình học trên một số đối tượng hình học cơ bản
Giảng viên phụ trách: GS.TSKH Hoàng Kiếm
Học viên thực hiện: LÂM HÀN VŨ
Mã học viên: CH1301119
Trang 2MỤC LỤ
Trang 31 TỔNG QUAN VỀ BIỂU DIỄN TRI THỨC 2
2 TỔNG QUAN VỀ CÁC HỆ GIẢI TOÁN VÀ PHẠM VI TIỂU LUẬN 3
II MÔ HÌNH MẠNG TÍNH TOÁN 6
1 ĐỊNH NGHĨA 6
2 CÁC VẤN ĐỀ 7
3 VÍ DỤ 11
III MÔ HÌNH MẠNG CÁC ĐỐI TƯỢNG TÍNH TOÁN 13
1 ĐỊNH NGHĨA 13
2 CÁC VẤN ĐỀ 15
3 VÍ DỤ 20
IV ỨNG DỤNG GIẢI BÀI TOÁN HÌNH HỌC TRÊN MỘT SỐ ĐỐI TƯỢNG HÌNH HỌC CƠ BẢN 21
1 MÔ TẢ BÀI TOÁN 21
2 TỔ CHỨC CƠ SỞ TRI THỨC 22
3 MÔ SỐ QUY ƯỚC TRONG GÓI PHẦN MỀM 22
3.1 Quy ước cho các đối tượng hình học cơ bản 22
3.2 Quy ước cho tên các đối tượng hình học cơ bản 25
4 CÀI ĐẶT VÀ THỬ NGHIỆM 25
V KẾT LUẬN 28
1 CÁC KẾT QUẢ ĐẠT ĐƯỢC 28
2 HẠN CHẾ & HƯỚNG PHÁT TRIỂN 29
Tài liệu tham khảo 30
Trang 4LỜI NÓI ĐẦU
Để có thể hoàn thành tốt bài báo cáo, trước tiên tôi gởi lời chân thành cảm ơn đến PGS TSH Hoàng Kiếm đã tận tình giảng dạy và giúp
đỡ trong thời gian thực hiện bài tiểu luận
Xin gửi lời cảm ơn đến gia đình, cảm ơn các anh chị, bạn bè, những người luôn sát cánh, động viên tôi trên bước đường học tập cũng như trong cuộc sống Xin chân thành biết ơn sự tận tình dạy dỗ và sự giúp đỡcủa tất cả quý thầy cô tại trường Đại học Công Nghệ Thông Tin, đặc biệt
là các thầy cô trong khoa Khoa học Máy tính, cảm ơn các thầy cô thuộc
bộ phận quản trị thiết bị đã tạo điều kiện thuận lợi về mặt tinh thần,
điều kiện học tập trong quá trình học tập môn học Tất cả các kiến thức
mà nhà trường và quý thầy cô đã truyền đạt là hành trang to lớn để tôi mang theo trên con đường học tập, làm việc và nghiên cứu cũng như trong quá trình hoàn thiện nhân cách của mình
TP HCM, ngày 10 tháng 10 năm 2014
Học viênLâm Hàn Vũ
Trang 5I MỞ ĐẦU
1 TỔNG QUAN VỀ BIỂU DIỄN TRI THỨC
Ngày nay khoa học máy tính và Công nghệ Thông tin phát triển mạnh mẽ, thâm nhập vào mọi lĩnh vực hoạt động của con người Trí tuệ Nhân tạo là một lĩnh vực của khoa học máy tính nhằm nghiên cứu phát triển các hệ thống ngày càng thông minh hơn, hỗ trợ tốt hơn cho hoạt động xử lý thông tin và xử lý tri thức, tính toán và điều khiển, Có thể
kể đến một số lĩnh vực áp dụng của Trí tuệ Nhân tạo như:
- Các trò chơi và lý thuyết tìm kiếm heuristic
- Các hệ chuyên gia
- Mô phỏng các hành vi và hoạt động thông minh của con người
- Robotics
- Máy học, đặc biệt là việc khai khoáng dữ liệu để tìm ra tri thức
- Xử lý song song và phân tán, các hệ lập kế hoạch thông minh
Trong quá trình phân tích và thiết kế các hệ thống Trí tuệ Nhântạo người ta quan tâm đến 2 vấn đề cơ bản nhất là:
- Biểu diễn tri thức
- Phương pháp và kỹ thuật tìm kiếm hay suy diễn
Đối với các hệ giải bài toán dựa trên tri thức (hay một cơ sở tri
thức) như các hệ chuyên gia, các hệ giải toán tự động hay bán tự động, thì việc biểu diễn tri thức và chiến lược tìm kiếm đóng vai trò quyết định trong quá trình xây dựng và cài đặt hệ thống Như vậy, nghiên cứu và phát triển các mô hình biểu diễn tri thức và suy diễn tự động trên tri
thức giữ một địa vị rất quan trọng trong khoa học máy tính cũng như trong Trí tuệ Nhân tạo Các kết quả nghiên cứu về biểu diễn tri thức và suy luận tự động dựa trên tri thức sẽ là cơ sở và là công cụ cho việc xây dựng các hệ chuyên gia, các hệ giải bài toán dựa trên tri thức và các hệ
cơ sở tri thức
Trang 6Cho tới nay đã có nhiều phương pháp biểu diễn tri thức khác nhau được các chuyên gia nghiên cứu và đề xuất Chúng ta có thể tham khảo các phương pháp biểu diễn tri thức này trong các sách về Trí tuệ Nhân tạo như trong [1], [2], [3] và [4] Người ta có thể phân loại các phương pháp biểu diễn tri thức thành 4 loại như sau:
- Loại 1: Biểu diễn logic như phương pháp biểu diễn tri thức theologic vị từ cấp 1
- Loại 2: Biểu diễn tri thức thủ tục như phương pháp biểu diễn trithức dạng hệ luật dẫn
- Loại 3: Biểu diễn tri thức dạng mạng như mạng ngữ nghĩa
- Loại 4: Biểu diễn tri thức theo cấu trúc như các frames và cácobject (đối tượng)
Mỗi phương pháp biểu diễn tri thức đều có ưu nhược điểm của nó
và có các công cụ lập trình có thể sử dụng cho việc cài đặt các biểu diễn
và xử lý Chẳng hạn như các ngôn ngữ lập trình PROLOG và LISP có thể
sử dụng tiện lợi cho việc cài đặt xử lý các biểu diễn tri thức theo logic vị
từ Các biểu diễn cấu trúc có thể sử dụng các ngôn ngữ C, C++ hay Javacho việc cài đặt Tuy nhiên, mỗi công cụ lập trình cũng có những ưu
nhược điểm của nó
Cùng với các phương pháp biểu diễn tri thức, các nhà nghiên cứu cũng đề xuất một số phương pháp suy luận và kỹ thuật suy diễn để làm
cơ sở cho việc xây dựng các động cơ suy diễn trong các hệ chuyên gia
và các hệ giải bài toán dựa trên tri thức Một số phương pháp suy diễn chung như suy diễn tiến, suy diễn lùi, suy diễn kết hợp tiến và lùi, suy diễn với các heuristics
2 TỔNG QUAN VỀ CÁC HỆ GIẢI TOÁN VÀ PHẠM VI TIỂU LUẬN
Giáo dục đóng một vai trò rất quan trọng trong việc xây dựng và phát triển đất nước Đầu tư cho lĩnh vực giáo dục luôn được đặt lên hàng
Trang 7đầu Những năm gần đây, việc tin học hóa cho phương pháp học tập và giảng dạy trong giáo dục đang được đầu tư và đẩy mạnh.
Với sự phát triển như vũ bão của tin học thì việc ứng dụng tin học vào các ngành khoa học khác đang phát triển một cách song song Đặc biệt, với toán học là một ngành khoa học được ứng dụng rất nhiều trong các lĩnh vực khác nhau của cuộc sống như kinh doanh, quản lý, giáo
dục… thì việc ứng dụng tin học trong toán học mang lại ý nghĩa vô cùng quan trọng
Hiện nay trên thế giới đã có một số phần mềm dành cho toán học.Một số phần mềm chuyên dụng như: vẽ đồ thị Graph, Geometry,
Mathprof …đến các phần mềm toán học được gọi là “siêu mạnh” như Maple, Mathematica…Các phần mềm toán học này đã giúp ích khá
nhiều trong việc học toán cũng như giải toán, tuy nhiên chúng cũng còn một số hạn chế sau:
- Một số phần mềm chỉ hỗ trợ việc tính toán đơn giản (tính toán số học, tính toántrên các đối tượng cơ bản,…) hay chỉ cung cấp một số công cụ hỗ trợ một yêu cầu
cụ thể nào đó (vẽ đồ thị, cung cấp các công thức toán học,…)
- Một số phần mềm tốt hơn thì hỗ trợ thao tác trên các đối tượng trừu tượng như
ma trận, vector, đạm hàm, tích phân,…nhưng chúng chỉ dừng lại ở việc đưa ra kếtquả hoặc nếu có chỉ là một số bước hướng dẫn nhưng phức tạp
Chính vì vậy, việc xây dựng một chương trình hỗ trợ việc học và giải toán thật sự có ý nghĩa Trong phạm vi của một bài tiểu luận, tôi xintrình bày 2 mô hình biểu diễn tri thức, đó là Mạng Tính Toán và Mạng Các Đối Tượng Tính Toán Từ đó ứng dụng nó vào việc xây dựng 1 gói phần mềm hỗ trợ giải bài toán hình học trên một số đối tượng hình học
cơ bản
Chẳng hạn với bài toán:
Cho tam giác ABC cân tại A có góc A=300 Bên dưới cạnh BC của tam giác ABC có hình vuông BEFH và hình chữ nhật ECDF như hình vẽ
Trang 8Biết hình chữ nhật ECDF có diện tích bằng 30, chiều dài bằng 5 Tính diện tích của tam giác ABC.
Với yêu cầu bài toán như trên, ta có quy ước nhập dữ liệu đầu vào như sau:
Và gói phần mềm sẽ cho kết quả:
Trang 10II MÔ HÌNH MẠNG TÍNH TOÁN
Trang 11trong đó mỗi biến đều có giá trị thuộc tập các số thực dương Giữa các biến ta đã biết có các quan hệ tính toán sau đây:
Bài toán xác định B từ A trên mạng tính toán (M, F) được viết: A
B, trong đó A được gọi là giả thiết, B được gọi là mục tiêu tính toán của bài toán
Định nghĩa 2.1: Giả sử (M,F) là một mạng suy diễn và A là một
tập con của M Một luật suy diễn u v được được gọi là áp dụng được trên A khi u A Một quan hệ suy diễn được gọi là áp dụng được trên A khi nó xác định một luật suy diễn áp dụng được trên A Cho D = f1,
f2, , fk là một dãy các quan hệ suy diễn (hay luật suy diễn) của mạng
Trang 12suy diễn (M,F), ta nói dãy D là áp dụng được trên tập A khi và chỉ khi ta
có thể lần lượt áp dụng được các quan hệ f1, f2, , fk xuất phát từ giả
thiết A
Trong định nghĩa trên, đặt : A0 = A, A1 = A0 M(f1), , Ak = Ak-1
M(fk), và ký hiệu Ak là D(A) Trong trường hợp D là một dãy luật suy
diễn tùy ý ta vẫn ký hiệu D(A) là tập biến đạt được khi lần lượt áp dụng các quan hệ trong dãy D (nếu được) Có thể nói rằng D(A) là sự mở rộng của tập A nhờ áp dụng dãy quan hệ D
Thuật toán tính D(A):
Định nghĩa 2 2 : Ta nói rằng một dãy các quan hệ suy diễn D = f1,
f2, , fk F là một lời giải của bài toán A B nếu như ta lần lượt ápdụng các quan hệ fi (i=1, ,k) xuất phát từ giả thiết A thì sẽ suy ra đượccác biến thuộc B Nói cách khác D là một lời giải của bài toán khi D(A)
B Bài toán A B được gọi là giải được khi nó có một lời giải
Lời giải f1, f2, , fk được gọi là lời giải tốt nếu không thể bỏ bớt một số bước tính toán trong quá trình giải, tức là không thể bỏ bớt một
số quan hệ trong lời giải Lời giải được gọi là một lời giải ngắn nhất khi
Trang 13nó có số bước suy diễn thấp nhất, tức là số quan hệ suy diễn áp dụng trong suy diễn là ít nhất.
Thuật toán 1: Tìm một lời giải cho bài toán A B
Nhập:
+ Mạng tính toán (M,F)+ Tập giả thiết A M+ Tập biến cần tính B M
Xuất: Lời giải cho bài toán A B
if ( f đối xứng and 0 < Card (M(f) \ A) r(f) ) or
( f không đối xứng and M(f) \ A v(f) ) then
begin
Trang 14Until Solution_found or (A = Aold);
4 if not Solution_found then
Bài toán không có lời giải;
Else
Solution là một lời giải;
Thuật toán 2: Tìm một lời giải tốt từ một lời giải đã biết
Nhập:
+ Mạng tính toán (M,F)+ Lời giải f1, f2, , fm của bài toán A B
Xuất: Lời giải tốt cho bài toán A B
Thuật toán:
1 D f1, f2, , fm;
2 for i=m downto 1 do
if D \ fi là một lời giải then D D \ fi;
3 D là một lời giải tốt
Thuật toán 3: Kiểm tra lời giải cho bài toán
Nhập:
+ Mạng tính toán (M,F)+ Bài toán A B
Trang 15if ( fi đối xứng and Card (M(fi) \ A) r(fi) ) or
( fi không đối xứng and M(fi) \ A v(fi) ) then
Để tìm ra lời giải cho bài toán trước hết ta xét mạng suy diễn của tam giác Mạng suy diễn này gồm :
1 Tập biến M = a, b, c, , , , ha, hb, hc, S, p, R, r, ,
trong đó a,b,c là 3 cạnh; , , là 3 góc tương ứng với 3 cạnh; ha, hb, hc
là 3 đường cao; S là diện tích tam giác; p là nửa chu vi; R là bán kính
đường tròn ngoại tiếp tam giác; r là bán kính đường tròn nội tiếp tam giác, v.v
2 Các quan hệ suy diễn thể hiện bởi các công thức sau đây:
f1 : + + = 180
f2 :
asin
bsin
f3 :
csin
bsin
f4 :
asin
csin
f5 : p = (a+b+c) /2
Trang 16Mục tiêu của bài toán là suy ra S (diện tích của tam giác).
Theo đề bài ta có giả thiết: A = a, , , và tập biến cần xác định:
B = S
Áp dụng thuật toán tìm lời giải sẽ được một lời giải cho bài toán làdãy quan hệ suy diễn sau:
f1, f2, f3, f5, f9
Xuất phát từ tập biến A, lần lượt áp dụng các quan hệ trong lời giải
ta có tập các biến được xác định mở rộng dần đến khi S được xác định :
a, , f1
a, , , f2
a, , , , b f3
a, , , , b, c5
f
a, , , , b, c, p f9 a, , , , b, c, p, S
Có thể nhận thấy rằng lời giải này không phải là lời giải tốt vì có bước suy diễn thừa, chẳng hạn là f5 Dùng thuật toán tìm lời giải tốt để tìm ra một lời giải tốt là:
Trang 17Theo lời giải này, ta có quá trình suy diễn như sau :
Mạng các đối tượng tính toán bao gồm:
+ Một tập hợp các đối tượng tính toán
Trang 18Giả sử có 3 đối tượng O1, O2, O3 Giữa thuộc tính a của O1, các thuộc tính
a và b của O2, thuộc tính c của O3 có một quan hệ f xác định bởi hệ thức:
Cho tam giác cân ABC, cân tại A và cho biết trước góc đỉnh , cạnh đáy
a Bên ngoài tam giác có hai hình vuông ABDE và ACFG Tính độ dài EG
Hình 3.2 Một bài toán tính toán hình học.
Bài toán có dạng một mạng các đối tượng tính toán bao gồm :
Trang 191 Bốn đối tượng :
O1 : tam giác cân ABC,
O2 : tam giác AEG,
O3 : hình vuông ABDE,
O4 : hình vuông ACFG,trong đó mỗi tam giác có các biến: a, b, c, GocA, GocB, GocC, ha,
hb, hc, S, p, R, r, và mỗi hình vuông có các biến: a (cạnh), c (đườngchéo), S (diện tích),
2 Các quan hệ giữa các đối tượng :
f1 : O1.c = O3.a // cạnh c của tam giác ABC = cạnh của hình vuôngABDE
f2 : O1.b = O4.a // cạnh b của tam giác ABC = cạnh của hình
Trang 20M = O1.b, O1.c, O1.GocA, O2.b, O2.c, O2.GocA, O3.a, O4.a, O2.a.Lưu ý rằng O2.a (cạnh EG của tam giác AEG) là biến cần tính.
1 Có thể xác định được tập B từ tập A nhờ các quan hệ trong F và
các đối tượng thuộc O hay không? Nói cách khác, ta có thể tính được giátrị của các biến thuộc B với giả thiết đã biết giá trị của các biến thuộc A hay không?
2 Nếu có thể xác định được B từ A thì quá trình tính toán giá trị
của các biến thuộc B như thế nào?
3 Trong trường hợp không thể xác định được B, thì cần cho thêm
điều kiện gì để có thể xác định được B
Tương tự như đối với một mạng tính toán, bài toán xác định B từ A trên mạng (O,F) được viết dưới dạng: A B, trong đó A được gọi là giả thiết,
B được gọi là mục tiêu tính toán của bài toán Trường hợp tập B chỉ gồm
có một phần tử b, ta viết vắn tắt bài toán trên là A b
Tương tự như trong phần 2, ta có thể định nghĩa khái niệm về tính
“áp dụng được” của một dãy D các phần tử trong F O trên một tập
biến A M, và cũng ký hiệu D(A) là tập hợp biến mở rộng từ A nhờ áp dụng dãy D trên mạng Từ đó, chúng ta có thể kiểm chứng dễ dàng
mệnh đề sau:
Trang 21Mệnh đề 3.1: Trên mạng các đối tượng tính toán (O, M, F) cho A
M, một dãy D = t1, t2, , tm F O áp dụng được trên tập hợp A Đặt:
Định nghĩa 3.1: Một dãy t1, t2, , tk gồm các phần tử thuộc F
hay thuộc O được gọi là một lời giải của bài toán A B trên mạng (O, M,
F) nếu như ta lần lượt áp dụng các ti (i=1, ,k) xuất phát từ giả thiết Athì sẽ suy ra được (hay tính được) các biến thuộc B Lời giải t1, t2, , tk
được gọi là lời giải không thừa nếu không thể bỏ bớt một số “bước tính
toán” trong quá trình giải, theo nghĩa là không thể bỏ bớt một số quan
hệ hay đối tượng trong lời giải
Việc tìm lời giải cho bài toán là việc tìm ra một dãy các quan hệ hay các đối tượng để có thể áp dụng tính ra được B từ A Điều này cũng có nghĩa
là tìm ra được một quá trình tính toán để giải quyết bài toán
Lời giải cho bài toán A B trên mạng đối tượng tính toán (M,F)
Thuật toán 1: Tìm lời giải cho bài toán A B
Nhập:
+ Mạng các đối tượng tính toán (O,F)
Trang 22+ Với tập biến là M, tập giả thiết A M
Chọn ra một f F chưa xem xét (trong bước 3 lần nầy);
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 không đối xứng and M(f) \ A v(f) ) then
Trang 23Until Solution_found or (A = Aold);
4 if not Solution_found then
Trang 245 if not Solution_found then
Bài toán không có lời giải;
else
Solution là một lời giải;
Thuật toán 2: Tìm một lời giải tốt từ một lời giải đã biết
Nhập:
+ Mạng các đối tượng tính toán (O,F)
+ Lời giải t1, t2, , tm của bài toán A B
Xuất: lời giải tốt cho bài toán A B
Thuật toán:
1 D t1, t2, , tm;
2 for i=m downto 1 do
Trang 25if D \ ti là một lời giải then
Trang 26Như đã trình bày trong ví dụ 3.2, bài toán có thể được biểu diễntrong một mạng các đối tượng (O, F) bởi GT KL với:
A5 f4
A6 O2
A7trong đó :
A0 = A = O1.a , O1.GocA,
A1 = O1.a , O1.GocA, O2 GocA ,