THUẬT TOÁN – MỘT PHƯƠNG PHÁP BIỄU DIỄN TRI THỨC?

Một phần của tài liệu Thuật toán_Thuật giải potx (Trang 48 - 49)

Trước khi trả lời câu hỏi trên, bạn hãy thử nghĩ xem, liệu một chương trình giải phương trình bậc 2 có thể được xem là một chương trình có tri thức hay không? ... Có chứ ! Vậy thì tri thức nằm ở đâu? Tri thức về giải phương trình bậc hai thực chất đã được mã hóa dưới dạng các câu lệnh if..then..else trong chương trình. Một cách tổng quát, có thể khẳng định là tất cả các chương trình máy tính ít nhiều đều đã có tri thức. Đó chính là tri thức của lập trình viên được chuyển thành các câu lệnh của chương trình. Bạn sẽ thắc mắc

"như vậy tại sao đưa tri thức vào máy tính lại là một vấn đề ? (vì từ trước tới giờ chúng ta đã, đang và sẽ tiếp tục làm như thế mà?)". Đúng như thế thật, nhưng vấn đề nằm ở chỗ, các tri thức trong những chương trình truyền thống là những tri thức "cứng", nghĩa là nó không thể được thêm vào hay điều chỉnh một khi chương trình đã được biên dịch. Muốn điều chỉnh thì chúng ta phải tiến hành sửa lại mã nguồn của chương trình (rồi sau đó biên dịch lại). Mà thao tác sửa chương trình thì chỉ có những lập trình viên mới có thể làm được. Điều này sẽ làm giảm khả năng ứng dụng chương trình (vì đa số người dùng bình thường đều không biết lập trình).

Bạn thử nghĩ xem, với một chương trình hỗ trợ ra quyết định (như đầu tư cổ phiếu, đầu tư bất động sản chẳng hạn), liệu người dùng có cảm thấy thoải mái không khi muốn đưa vào chương trình những kiến thức của mình thì anh ta phải chọn một trong hai cách là (1) tự sửa lại mã chương trình!? (2) tìm tác giả của chương trình để nhờ người này sửa lại!?. Cả hai thao tác trên đều không thể chấp nhận được đối với bất kỳ người dùng bình thường nào. Họ cần có một cách nào đó để chính họ có thể đưa tri thức vào máy tính một cách dễ dàng, thuận tiện giống như họ đang đối thoại với một con người.

Để làm được điều này, chúng ta cần phải "mềm" hóa các tri thức được biểu diễn trong máy tính. Xét cho cùng, mọi chương trình máy tính đều gồm hai thành phần là các mã lệnh và dữ liệu. Mã lệnh được ví như là phần cứng của chương trình còn dữ liệu được xem là phần mềm (vì nó có thể được thay đổi bởi người dùng). Do đó, "mềm" hóa tri thức cũng đồng nghĩa với việc tìm các phương pháp để có thể biểu diễn các loại tri thức của con người bằng các cấu trúc dữ liệu mà máy tính có thể xử lý được. Đây cũng chính là ý nghĩa của thuật ngữ "biểu diễn tri thức".

Bạn cần phải biết rằng, ít ra là cho đến thời điểm bạn đang đọc cuốn sách này, con người vẫn chưa thể tìm ra một kiểu biểu diễn tổng quát cho mọi loại tri thức!

Để làm vấn đề mà chúng ta đang bàn luận trở nên sáng tỏ hơn. Chúng ta hãy xem xét một số bài toán trong phần tiếp theo.

Một phần của tài liệu Thuật toán_Thuật giải potx (Trang 48 - 49)