CS724 problem 4
EXPERT SYSTEM PROPOSAL
Pick a problem that you understand and that has some complexity. Then pick
a small part of the problem that you are going to solve using a production
system. The resultant problem is to be about the complexity of the bagging
example in the book (pp.169-174). The rules that you develop must
interact. It will not be considered a reasonable problem if the rules are
simply evaluated in a fixed order.
An acceptable problem will:
solve some problem,
be complex enough to require some thinking,
not be too complex,
not be solved using sequential control
have rules that interact with each other
have at least two rules with two or more match items on the left hand side
You are to turn in:
(1) a one page description of the problem solved;
(2) a set of rules, each numbered (suggest you type them on a
computer);
(3) a sample worked problem, showing STM at each step, and
listing the rule causing the STM. (The sample problem
is to show a reasonable part of the rules setup).
Your are to develop a knowledge base using one of the supplied Web based
knowledge engineering tools.
You are then to take the rule.pl expert system from the knowledge engineering
tool and convert it into a more faithful expert system.
If the program does not convert, check with the instructor, and
write a program from scratch in the rules.pl notation.
Develop in WEB GRID system then
refine the PROLOG program
You are to write a small rule set to solve a small but interesting problem.
You are to prepare a one page description of the problem, a set of rules in
production format, and a nontrivial example of solving a problem.
A DRAFT version of the problem statement is due as indicated.
The draft version should include a test description of the problem to
be solved and in initial WEB GRID solving the problem.
You are to take a problem that you understand, take a SMALL but INTERESTING
portion of the problem, and show rules that can solve that problem. An
example problem would be to solve integration for some simple trig forms.
Your problem should be simple enough that it should not require more than a
page of rules. The rules are to be presented in English and/or program
form in the basic format of production rules for the initial problem
statement. The working program will be written using PROLOG.
The following is a short example of what is desired, but for too small of a
problem.
-
If STM has major terms connected with either '+' or '-' THEN add to
STM each individual term from expression (without the +/-).
-
If STM has an expression that contains one X times values (form of C*X
or X*C) THEN add to STM (DX(C*X)-->C)
-
If STM has an expression of the form (C*X^N) THEN add to STM
(DX(C*X^N)-->C*N*X^(N-1)) [read ^ as raise to the power of]
-
If STM has entries of the form (DX(el)-->Del) and there is also an
expression of the form (exp + el) and also an entry of the form (DX(exp)--
>Dexp) (where 'exp' and 'el' are the same throughout THEN add to STM
(DX(exp + el)-->Dexp + Del)
-
Same as (4) but for -
-
If there is in STM a form (DX(exp)-->Dexp) and there is not an 'exp'
larger than 'exp' THEN STOP and list (DX(exp)-->Dexp).