Thuật toán và giải thuật - Hoàng Kiếm Part 8 - Pdf 68

Sưu tầm bởi: www.daihoc.com.vn
50
END;
END;
CONST SO_LUAT = 3;
BEGIN
WHILE (x<>z) AND (y<>z) DO BEGIN
FOR i:=1 TO SO_LUAT DO
IF DK(L) THEN ThiHanh(L);
END;
END.
Đoạn chương trình chính cũng thi hành bằng cách lần lượt xét qua 3 lệnh IF như
chương trình đầu tiên. Tuy nhiên, ở đây, biểu thức điều kiện được thay thế bằng hàm
DK và các hành động ứng với điều kiện đã được thay thế bằng thủ tục ThiHanh. Tính
chất "mềm" hơn của chương trình này thể hiện ở chỗ, nếu muốn bổ sung "tri thức",
ta chỉ phải điều chỉnh lại các hàm DK và ThiHanh mà không cần phải sửa lại chương
trình chính.
Bây giờ hãy giả sử rằng ta đã có hàm và thủ tục đặc biệt sau :
FUNCTION GiaTriBool(DK : String) : BOOLEAN;
PROCEDURE ThucHien(ThaoTac : String) ;
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ị BOOLEAN của biểu thức này.
Ví dụ : GiaTriBoolean(‘6<7’) sẽ trả ra FALSE
Thủ tục 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.
Với hàm và thủ tục này, chương trình của chúng ta sẽ như sau :
CONST SO_LUAT = 3;
TYPE

Delphi đều cho phép điều này). Với chương trình này, khi muốn sửa đổi "tri thức",
bạn chỉ cần thay đổi giá trị mảng Luat là xong.
Tuy nhiên, 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)’ ...Các chuỗi
này, tuy có ý nghĩa đối với chương trình nhưng vẫn còn khá xa lạ đối với người dùng
bình thường. 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ưu tầm bởi: www.daihoc.com.vn
52
sẽ có chuyển đổi lạ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.
Để làm được điều trên. Chúng ta cần phải liệt kê được các trạng thái và thao tác cơ
bản của bài toán này. Sau đây là 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.
Lưu ý rằng ta không thể có thao tác "Đổ n lít nước từ A sang B" vì bài toán đã
giả định rằng các bình đều không có vạch chia, hơn nữa nếu ta biết cách đổ n
lít nước từ A sang B thì lời giải bài toán trở thành quá đơn giản.
"Múc đầy X"
"Đổ 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.
Kế tiếp, ta sẽ viết các đoạn chương trình cho phép người dùng nhập vào các luật

thống. Chúng ta sẽ đề cập đến những phương pháp này trong phần tìm hiểu về các
luật dẫn.
Hình ảnh trên tóm tắt cho chúng ta thấy cấu trúc chung nhất của một chương trình
trí tuệ nhân tạo.
B. CÁC PHƯƠNG PHÁP BIỄU DIỄN TRI THỨC TRÊN MÁY TÍNH
V. LOGIC MỆNH ĐỀ
Sưu tầm bởi: www.daihoc.com.vn
54
Đây có lẽ là kiểu biểu diễn tri thức đơn giản nhất và gần gũi nhất đối với chúng ta.
Mệnh đề là một khẳng định, một phát biểu mà giá trị của nó chỉ có thể hoặc là đúng
hoặc là sai.
Ví dụ :
phát biểu "1+1=2" có giá trị đúng.
phát biểu "Mọi loại cá có thể sống trên bờ" có giá trị sai.
Giá trị của mệnh đề không chỉ phụ thuộc vào bản thân mệnh đề đó. Có những mệnh
đề mà giá trị của nó luôn đúng hoặc sai bất chấp thời gian nhưng cũng có những
mệnh đề mà giá trị của nó lại phụ thuộc vào thời gian, không gian và nhiều yếu tố
khác quan khác. Chẳng hạn như mệnh đề : "Con người không thể nhảy cao hơn 5m
với chân trần" là đúng khi ở trái đất , còn ở những hành tinh có lực hấp dẫn yếu thì
có thể sai.
Ta ký hiệu mệnh đề bằng những chữ cái la tinh như a, b, c, ...
Có 3 phép nối cơ bản để tạo ra những mệnh đề mới từ những mệnh đề cơ sở là phép
hội ( ), giao( ) và phủ định ( )
Bạn đọc chắn hẳn đã từng sử dụng logic mệnh đề trong chương trình rất nhiều lần
(như trong cấu trúc lệnh IF ... THEN ... ELSE) để biểu diễn các tri thức "cứng" trong
máy tính !
Bên cạnh các thao tác tính ra giá trị các mệnh đề phức từ giá trị những mệnh đề con,


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status