BÁO cáo hệ cơ sở TRI THỨC

33 1.6K 0
BÁO cáo hệ cơ sở TRI THỨC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BÁO CÁO HỆ CƠ SỞ TRI THỨC NGÔN NGỮ JESS - BÀI TOÁN HẬU Lâm Quang Tường B1304520 MỤC LỤC Sơ lược Jess Biểu diễn tri thức Động suy diễn Giải xung đột Bài toán quân hậu Java Expert System Shell • Ra đời vào năm 1995 viết hoàn toàn Java dựa tảng Clips Ernest Friedman-Hill Sandia National Laboratories Canada • Jess gọi hàm API Java ngược lại • Jess sử dụng cú pháp giống Lisp =>biểu diễn danh sách • Jess ngôn ngữ không thủ tục biểu diễn tri thức dựa luật sinh • Có thể truy cập JavaBean Scripting Java with Jess (import javax.swing.*) (import java.awt.*) (import java.awt.event.*) (set-reset-globals FALSE) (defglobal ?*frame* = (new JFrame "Hello You")) (defglobal ?*button* = (new JButton "Click it")) (?*frame* setSize 500 300) ((?*frame* getContentPane) add ?*button*) (?*frame* setVisible TRUE) The Jess API Được tổ chức gói (packages), 64 lớp (classes) • jess - động suy diễn “guts” • jess.awt – GUI wrappers • jess.factory – cho phép mở rộng xâm nhập vào bên jess Using the Jess API… Rete engine = new Rete(); Bean testbean = new Bean(); engine.definstance("bean", testbean, false); engine.defclass("bean", "Bean", null, false); testbean.setName("test"); engine.eval("(facts)"); defclass – tạo deftemplate từ bean definstance – thêm bean vào nhớ làm việc KHÁI NIỆM CƠ BẢN atom số + kí hiệu (chuỗi ký tự) $*=+/_?#, comments (;) atom đặc biệt nil, true, false lists đơn vị cú pháp Jess (a b c), variables (?) + atoms : ?x multivariable $+ variable: $?y (defrule example (grocery-list $?list) => (printout t "i need to buy " $?list crlf)) jess> (assert (grocery-list eggs milk bacon)) global variable : ?*x* or ?*all-values* BIỂU DIỄN SỰ KIỆN TRONG JESS (BỘ NHỚ LÀM VIỆC) • Sự kiện Jess biểu diễn ba: O-A-V (Đối tượng – Thuộc tính – Giá trị) • Một đối tượng có nhiều thuộc tính với kiểu giá trị khác • Một thuộc tính có hay nhiều giá trị Chúng gọi kiện đơn trị (single -valued) hay đa trị (multi-valued) => Linh động việc biểu diễn tri thức cần thiết DEFTEMPLATE • Được sử dụng để định nghĩa sở lập luận (khuôn) (deftemplate pattern “a design pattern.” (slot name) (slot type (default “creation”)) (slot intent) (slot solution)) DEFRULE LHS RHS • LHS chứa kiện để định quy tắc kích hoạt (điều kiện) để so khớp với nhớ làm việc • RHS bao gồm lời gọi hàm Jess> (defrule welcome-toddlers "Give a special greeting to young children" (person {age < 3}) => (printout t "Hello, little one!" crlf)) RETE • Độ phức tạp O(RFP) R số luật, P số kiện rules, F số quy tắc nhớ làm việc • Xây dựng mạng nút, nút đại diện cho nhiều kiểm tra điều kiện LHS luật • Sự kiện thêm xóa khỏi WM xử lý qua mạng đặt vào nút mạng thêm vào RETE • Một mạng RETE bao gồm: ‾ One-input nodes ‾ Two-input ( “join” nodes) ‾ Memory nodes ‾ Terminal nodes • Mỗi nút nhận input từ nút gửi output trở xuống nút • One-input node: kiểm tra quan hệ bên kiện nhờ vào biến (khởi tạo từ nút) • Join nodes kiểm tra mối quan hệ kiện nhờ vào liên hệ biến (khởi tạo từ nút) (watch compilations) (view) RETE • Một join node kiểm tra pattern • • • • Có vài biến dùng nhiều pattern không? Nếu có chúng có giá trị không? Có ràng buộc cho biến không? Kiểm tra điều kiện lưu vào memory node chuyển sang node • • Nếu sai chờ đợi kiện Nếu đến kiện cuối join node thành công luật kích hoạt chuyển sang agenda BACKWARD CHAINING Jess> (deftemplate factorial (declare (ordered TRUE) (backchain-reactive TRUE))) Jess> (do-backward-chaining factorial) Jess> (defrule print-factorial-10 (factorial 10 ?r1) => (printout t "The factorial of 10 is " ?r1 crlf)) BACKWARD CHAINING • Khi tương hợp mẫu với suy diễn lui khởi động lại template, ghi lại quy tắc chèn thêm số quy tắc đặc biệt vào bên LHS thêm vào WM (need-factorial 10 nil) • Phần đầu kiện thêm vào “need-” • Khi luật reset không so khớp với kiện BACKWARD CHAINING • Không có luật kích hoạt • Jess thấy rule-1 kích hoạt có kiện foo thích hợp => sinh yêu cầu (need-foo nil nil) • So khớp LHS create-foo khai hỏa cần kiện bar =>sinh yêu cầu (need-bar nil nil) • So khớp LHS create-bar =>khai hỏa sinh (bar C D) => khai hỏa create-foo sinh (foo A B) =>khai hỏa rule-1 AGENDA (bộ thông dịch) • Chứa luật mà vế trái thỏa mãn • Jess thực hành động bên phải luật ưu tiên cao Quá trình tiếp tục không kích hoạt gặp lệnh dừng lại jess> (agenda) [activation: main::duck f-0 ; time=2 ; salience=0] for a total of activations • Mỗi luật khai hỏa lần SALIENCE (ĐỘ ƯU TIÊN) • Mỗi quy tắc có độ ưu tiên Mặc định salience = zero • Quy tắc kích hoạt có độ ưu tiên cao khai hỏa trước • Để ràng buộc quy tắc khai hỏa hay cuối ta khai báo: Jess> (defrule example-6 (declare (salience -100)) (command exit-when-idle) => (printout t "exiting " crlf)) SALIENCE (ĐỘ ƯU TIÊN) • Gía trị salience số nguyên, biến toàn cục lời gọi hàm • (set-salience-evaluation (when-defined | when-activated | every-cycle)) để thay đổi thiết lập • when-defined : mặc định, xác định độ ưu tiên quy tắc lần khai báo • when-activated: xác định lại độ ưu tiên trước vào agenda • every-cycle: quy tắc xác định lại sau quy tắc khai hỏa CONFLICT RESOLUTION STRATEGY • Depth (LIFO): Các luật kích hoạt đặt luật có độ ưu tiên (salience) • Breadth (FIFO): đặt luật có độ ưu tiên • (set-strategy (depth | breadth)) mặc định depth LIFO FIFO GIẢI QUYẾT BÀI TOÁN HẬU THUẬT TOÁN • Bước 1: Mô tả bàn cờ Khởi tạo tên hậu số thứ tự cột nó, số thứ tự hàng khởi tạo 1, 2, • Bước 2: Khởi tạo bàn cờ 8*8 tìm tất trạng thái quân hậu • Bước 3: Tạo ràng buộc Vị trí hàng cột khác với vị trí hậu lại (8 fact) Vị trí hàng quân hậu cộng thêm k thuộc [1,7] phải khác vị trí hàng quân hậu hàng k (kiểm tra đường chéo) LỜI GIẢI • Bài toán tám quân hậu có 92 lời giải khác • Nếu không phân biệt lời giải ảnh qua phép đối xứng, phép quay bàn cờ chúng có 12 lời giải đơn vị [...]... nodes) ‾ Memory nodes ‾ Terminal nodes • Mỗi nút nhận input từ nút trên và gửi output trở xuống nút dưới • One-input node: kiểm tra quan hệ bên trong sự kiện nhờ vào các biến và hằng (khởi tạo từ 1 nút) • Join nodes kiểm tra mối quan hệ giữa các sự kiện nhờ vào sự liên hệ giữa các biến (khởi tạo từ 2 nút) (watch compilations) (view) RETE • Một join node kiểm tra 2 pattern • • • • Có 1 vài biến được dùng... có thể khai báo: Jess> (defrule example-6 (declare (salience -100)) (command exit-when-idle) => (printout t "exiting " crlf)) SALIENCE (ĐỘ ƯU TIÊN) • Gía trị salience có thể là số nguyên, biến toàn cục hoặc lời gọi hàm • (set-salience-evaluation (when-defined | when-activated | every-cycle)) để thay đổi các thiết lập • when-defined : mặc định, xác định độ ưu tiên của quy tắc 1 lần khi khai báo • when-activated:... hoặc chỉnh sửa fact • Agenda có thể bị thay đổi trong quá trình thực thi=> khai hỏa 1 lần MÔ HÌNH HOẠT ĐỘNG CỦA JESS INFERENCE ENGINE WORKING MEMORY PATTER MATCHER EXECUTION ENGINE RULE BASE AGENDA ĐỘNG CƠ SUY DIỄN • Tìm đường đi đến lời giải • Pattern matching (tương hợp mẫu): so khớp các mẫu • Agenda: chọn quy tắc khai hỏa • Công cụ thực thi: Khai hỏa quy tắc Quá trình suy diễn So khớp các điều kiện

Ngày đăng: 14/11/2016, 13:26

Từ khóa liên quan

Mục lục

  • Slide 1

  • MỤC LỤC

  • Java Expert System Shell

  • Scripting Java with Jess

  • The Jess API

  • Using the Jess API…

  • KHÁI NIỆM CƠ BẢN

  • BIỂU DIỄN SỰ KIỆN TRONG JESS (BỘ NHỚ LÀM VIỆC)

  • DEFTEMPLATE

  • DEFRULE

  • Rule Activation and Execution

  • MÔ HÌNH HOẠT ĐỘNG CỦA JESS

  • ĐỘNG CƠ SUY DIỄN

  • PATTERN MATCHING

  • PATTERN MATCHING

  • Slide 16

  • Slide 17

  • Slide 18

  • RETE

  • RETE

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan