Thuật toán – một phương pháp biểu diễn tri thức bool DK(int L )

Một phần của tài liệu Trí tuệ nhân tạo - Chương 3 - Tri thức và các phương pháp biểu diễn tri thức pps (Trang 27 - 33)

hãy quan sát phiên bản kế tiếp của chương trình

3.2Thuật toán – một phương pháp biểu diễn tri thức bool DK(int L )

bool DK(int L ) { switch (L) { case 1 : DK = (x = = Vx); case 2 : DK = (y = = 0); case 3 : DK = (y>0); } } void ThiHanh(int L) { switch (L){case 1 : x = 0; case 2: y = Vy; case 3 : k = min(Vx-x,y); x = x+k; y = y-k; } } #define SO_LUAT 3; { while ((x !=z) && (y !=z))

{ for (i = 1; i <= SO_LUAT; i++) if (DK(i)) ThiHanh(i);

}} }

3.2 Thuật toán – một phương pháp biểu diễn tri thức

 Bây giờ giả sử rằng ta đã có các hàm đặc biệt sau:

 bool GiaTriBool(String DK);

 void ThucHien(String ThaoTac);

 Hàm GiaTriBool nhận vào một chuỗi điều kiện, nó sẽ phân tích chuỗi, tính toán rồi trả ra giá trị bool của biểu thức này.

 Ví dụ : GiaTriBoolean(‘6<7’) sẽ trả về true.

 Hàm ThucHien cũng nhận vào một chuỗi, nó cũng sẽ

phân tích chuỗi rồi tiến hành thực hiện những hành động được miêu tả trong chuỗi này.

3.2 Thuật toán – một phương pháp biểu diễn tri thức

#define SO_LUAT 3;

struct Luat{ String DK;

String ThaoTac; }; CacLuat DSLuat[SO_LUAT]; void KhoiDong() { CacLuat[1].DK = ‘x = = Vx’; CacLuat[2].DK = ‘y = = 0’; CacLuat[3].DK = ‘y>0’; CacLuat[1].ThaoTac = ‘x = 0’; CacLuat[2].ThaoTac = ‘y = Vy’;

CacLuat[3].ThaoTac= ‘k = min(Vx-x,y), x = x + k, y = y-k’; }

{ while ((x != z) && (y != z))

{ for (i = 1; i<= SO_LUAT; i++) if GiaTriBoolean(CacLuat[i].DK) ThucHien(CacLuat[i].ThaoTac); }

3.2 Thuật toán – một phương pháp biểu diễn tri thức

Khi muốn sửa đổi "tri thức", bạn chỉ cần thay đổi giá trị mảng Luật là xong.

Người dùng vẫn gặp khó khăn khi muốn bổ sung hoặc hiệu chỉnh tri thức.

Họ cần phải nhập các chuỗi đại loại như ‘x = 0’ hoặc ‘k = min(Vx-x,y)’ ...

Chúng ta cần giảm bớt "khoảng cách" này lại bằng cách đưa ra những chuỗi điều kiện hoặc thao tác có ý nghĩa trực tiếp đối với người dùng.

Chương trình sẽ có sự chuyển đổi các điều kiện và thao tác này sang dạng phù hợp với chương trình.

3.2 Thuật toán – một phương pháp biểu diễn tri thức

Một số trạng thái và thao tác cơ bản.

 Trạng thái cơ bản:  Bình X đầy,  Bình X rỗng,  Bình X không rỗng,  Bình X có n lít nước  Thao tác:  Đổ hết nước trong bình,  Đổ đầy nước trong bình,

 Đổ nước từ bình A sang bình B cho đến khi B đầy hoặc A rỗng.

3.2 Thuật toán – một phương pháp biểu diễn tri thức

Lưu ý: không thể có thao tác "Đổ n lít nước từ A sang B"

"Múc đầy X" (adsbygoogle = window.adsbygoogle || []).push({});

"Đổ z lít nước từ X sang Y"

Vì đây là một bài toán đơn giản nên bạn có thể dễ nhận thấy rằng, các trạng thái cơ bản và thao tác chẳng có gì khác so với các điều kiện mà chúng ta đã đưa ra.

3.2 Thuật toán – một phương pháp biểu diễn tri thức

Chương trình truyền thống được cấu tạo từ hai "chất liệu" cơ bản là: "chất liệu" cơ bản là:

 dữ liệu và

 thuật toán

Một phần của tài liệu Trí tuệ nhân tạo - Chương 3 - Tri thức và các phương pháp biểu diễn tri thức pps (Trang 27 - 33)