Tải bản đầy đủ (.pdf) (5 trang)

Thuật Toán Và Thuật Giải part 21

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (203.6 KB, 5 trang )




Một ví dụ biểu diễn các đối tượng hình học bằng frame
Các kiểu dữ liệu cơ bản :
Area : numeric; // diện tích
Height : numeric; //chiều cao
Perimeter : numberic; //chu vi
Side : numeric; //cạnh
Diagonal : numeric; //đường chéo
Radius : numeric; //bán kính
Angle : numeric; //góc
Diameter : numeric; //đường kính
pi : (val:numeric = 3.14159)
Frame : CIRCLE (hình tròn)
r : radius;
s : area;
p : perimeter;
d : diameter;
d = 2 ´ r;
s = pi ´ r
2
;
p = 2 ´ pi ´ r;
Frame RECTANGLE (hình chữ nhật)
b
1
: side;
b
2
: side;


s : area;
p : perimeter;
s = b
1
´ b
2
;
p = 2 ´ (b
1
+b
2
);
d
2
= b
1
2
+ b
2
2
;
Frame SQUARE (hình vuông)
Là : RECTANGLE
b
1
= b
2
;
Frame RHOMBUS (hình thoi)
b : side;

d
1
: diagonal;
d
2
: diagonal;
s : area;
p : perimeter;
alpha
1
: angle;
alpha
2
: angle;
h : height;
cos (alpha
2
/2) ´ d
1
= h;
s = d
1
´ d
2
/ 2;
p = 4 ´ b;
s = b ´ h;
cos (alpha
2
/2)/(2´ b) = d

2
;
Chúng ta có thể dễ dàng khai báo các đối tượng hình học khác theo cách này. Sau khi đã
biểu diễn các tri thức về các hình hình học cơ bản xong, ta có thể vận dụng nó để giải các
bài toán hình học, chẳng hạn bài toán tính diện tích. Ví dụ, cho hình vuông k và vòng
tròn nội tiếp c, biết cạnh hình vuông có chiều dài là x, hãy viết chương trình để tính diện
tích phần tô đen.

Dễ thấy rằng, diện tích phần tô đen chính là hiệu giữa diện tích hình vuông và diệ
n tích
hình tròn nội tiếp. Dĩ nhiên là bạn cũng có thể viết một chương trình bình thường để tính
toán, nhưng khi đã "tích hợp" các tri thức về tính diện tích bên trong biểu diễn, chương
trình của chúng ta trở nên rất gọn nhẹ. Bạn hãy lưu ý 3 lệnh được in đậm trong ví dụ
dưới. Lệnh đầu tiên sẽ "đặc tả" lại giả thiết "hình vuông có cạnh với chiều dài x", lệnh kế
tiếp đặ
c tả giả thiết "hình tròn nội tiếp", còn lệnh thứ 3 mô tả việc tính diện tích bằng
cách lấy diện tích hình vuông trừ cho diện tích hình tròn.
VAR x, s : numeric; k : square; c : circle;
BEGIN
<Nhập x>;
k.b
1
:= x;
c.d := x;
s := k.s – c.s;
END.
Như vậy, chương trình máy tính của chúng ta đã hoạt động khá giống như việc "mô tả"
các giải bài toán bằng ngôn ngữ tự nhiên. Hãy nghĩ xa hơn một tí. Các bài toán hình học
thường được mô tả bằng các ngôn từ khá chính xác (chẳng hạn như : cho một tam giác
với chiều cao xuất phát từ đỉnh A là 5, chiều dài cạnh đáy là 6, ....). Do đó, về mặt nguyên

tác, chúng ta vẫn có thể xây dự
ng một chương trình để "hiểu" những đề bài này (theo như
cách mà chúng ta vừa làm). Sau đó, người dùng có thể hoàn toàn nhờ máy tính giải giúp
bài toán cho mình bằng cách mô tả lời giải cho máy tính (chứ không cần phải lập trình).
Bạn có cảm giác điều này thật thú vị không? Đây chính là bước đi đầu tiên trong việc tạo
ra một chương trình trợ giúp cho việc giải các bài toán hình học trên máy tính với giao
tiếp bằng ngôn ngữ tự nhiên!
Để tă
ng thêm sức mạnh cho hệ thống này, người ta thường cài đặt một mạng ngữ nghĩa
ngay bên trong mỗi frame. Chẳng hạn, ta có thể có một frame TRIANGLE, trong đó cài
đặt một mạng ngữ nghĩa (giống như ở ví dụ trong phần mạng ngữ nghĩa) để đặc tả mối
liên hệ giữa các yếu tố tam giác (thay vì sử dụng các công thức liên hệ đơn giản như ví dụ
trên).
XII. BIỂU DI
ỄN TRI THỨC BẰNG SCRIPT
Script là một cách biểu diễn tri thức tương tự như frame nhưng thay vì đặc tả một đối
tượng, nó mô tả một chuỗi các sự kiện. Để mô tả chuỗi sự kiện, script sử dụng một dãy
các slot chứa thông tin về các con người, đối tượng và hành động liên quan đến sự kiện
đó.
Tuy cấu trúc của các script là rất khác nhau tùy theo bài toán, nhưng nhìn chung một
script thường bao gồm các thành ph
ần sau :
Điều kiện vào (entry condition): mô tả những tình huống hoặc điều kiện cần được
thỏa mãn trước khi các sự kiện trong script có thể diễn ra.
 

×