Tải bản đầy đủ (.ppt) (46 trang)

Hệ cơ sở tri thức với JESS

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 (544.64 KB, 46 trang )

Hệ Cơ Sở Tri Thức
Tìm Hiểu Ngôn Ngữ JESS
Giải Quyết Bài Toán Đong Dầu

Giáo viên HD:
TS.Phạm Gia Tiến

Sinh Viên : Lê Duy Thanh
MSSV : B1310453
Khoa học máy tính K39

1


Nội dung báo cáo

1.Sơ lược về JESS.
2. Giới thiệu một số function và xây dựng (JESS Constructs) .
3. Bài toán đong dầu .

2


Phần 1 : Sơ lược về JESS

3


Giới thiệu về JESS

Jess (Java Expert System Shell) ra đời năm 1995.


Jess là một động cơ quy tắc được viết và phát triển trên
nền tảng Java.
Jess sử dụng một phiên bản nâng cao của thuật toán
RETE để xử lý các quy định.
4


Giới thiệu về JESS

 Jess là một công cụ để xây dựng hệ thống chuyên gia.
 Cấu trúc dữ liệu cơ bản là danh sách.
 Tri thức được biểu diễn theo dạng IF-THEN

5


Giới thiệu về JESS

-Ký hiệu :
+ Gồm ký tự chữ cái,chữ số và ký hiệu
:$*=+/<>_?#.
-Số :
+Kiểu float,long,integer,
+ vd : 3 4. 5.643 5654L

6


Giới thiệu về JESS


-Chuỗi :
+Nằm trong cặp “”
+ vd: “kieu chuoi”
-Danh sách :
+Nằm trong cặp ()
+ vd : (“danh sach”)
(+ 12 (-1 2))
7


Giới thiệu về JESS

-Chú thích :
+ Chú thích 1 dòng ;
Và chú thích nhiều dòng /* */
+vd :
;chu thich mot dong
/*chu
thich
Nhieu
Dong*/

8


Giới thiệu về JESS

-Biến :
+cú pháp: ?tenbien
Vd: ?soluong

?x

9


$multifield
+Có thể chứa một danh sách các biến như kiểu mảng trong C
+Tên bắt đầu bằng $
+Chiều dài danh sách : length$ tenbien
+Truy xuất các phần tử : (nth$ ?i ?m)
Trong đó:
?i là vị trí trong danh sách.
?m là $multifield
10


Giới thiệu về JESS

-Biến toàn cục :
+Khởi tạo: (defglobal [?<global-name> = <value>]+)
+vd :
(defglobal ?*x* = 3)
(defglobal ?*tong* = 0)

11


Giới thiệu về JESS

-Điều khiển luồng:

+if,for,while
+vd:
(while (> ?i 0)
(printout t ?i crlf)
(-- ?i))
(if (> ?x 100) then
(printout t "X is big" crlf)
)

12


Giới thiệu về JESS

Phần 2 : Giới thiệu một số hàm và xây
dựng (JESS Constructs) trong JESS

13


Giới thiệu về JESS

-Hàm :
+Cú pháp:
(deffunction <function-name> [<doc-comment>]
(*)<expr>* [<return-specifier>])

+vd:
(deffunction binhphuong (?a )
(return (* ?a ?a))

)
14


Giới thiệu về JESS

printout (in lên màn hình)
+vd :
(printout t “in len man hinh” crlf)
crlf : kí hiệu xuống hàng mới.
15


Giới thiệu về JESS

watch all,facts :
+Hiển thị các thực thi cụ thể của
JESS trong console.
+Hỗ trợ tìm lỗi khi viết chương trình.
+Hiển thị id tương ứng của fact.
16


Giới thiệu về JESS

17


Giới thiệu về JESS
deftemplate (tạo mẫu) :

+Cú pháp đầy đủ :
(deftemplate template-name [extends template-name]
["Documentation comment"] [(declare (slot-specific TRUE |
FALSE)
(backchain-reactive TRUE | FALSE)
(from-class class name)
(include-variables TRUE | FALSE)
(ordered TRUE | FALSE))]
(slot | multislot slot-name
([(type ANY | INTEGER | FLOAT |
NUMBER | SYMBOL | STRING |
LEXEME | OBJECT | LONG)]
[(default default value)]
[(defaultdynamic expression)]
[(allowed-values expression+)])*)
*Phần trong [ ] là tùy chọn không bắt buộc
18


Giới thiệu về JESS

assert (khẳng định/tạo sự kiện mới):
+Sau khi tạo mẫu,ta có thể tạo sự kiện từ mẫu đó.

19


Giới thiệu về JESS
+vd cho defftemplate và assert:


20


Giới thiệu về JESS

Unordered facts (sự kiện không có thứ tự)
+Thứ tự các khai báo không quan trọng,JESS sẽ tự sắp
xếp lại cho tương ứng dựa vào tên slot khi định nghĩa
defftemplate
+Nếu không khai báo cụ thể các giá trị của slot,JESS sẽ
dùng giá trị mặc định hoặc là nil.

21


Giới thiệu về JESS

22


Giới thiệu về JESS

retract (xóa sự kiện)
+Xóa dựa vào id hoặc tên đại diện
cho fact đó
+cú pháp:
(retract <expression>+) Hoặc (retractstring <string>)

23



Giới thiệu về JESS

24


Giới thiệu về JESS
bind (phép gán)
+vd: gán sự kiện thời tiết đã tạo cho biến tt

25


×