CS734 - Expert Systems - Spring 97


Instructor Dr P Juell
Office 262C IACC
Phone 231-8196
Office hours 2:30 M W 11:30 F
Books [Jackson 90] Introduction to Expert Systems (second edition) [Friederich & Gargano 89] Expert Systems Design and Development Using VP-EXPERT
           Spring 1997
week     S  M Tu  W Th  F  S
  1 Jan           8  9 10 11
  2     12 13 14 15 16 17 18
  3     19  H 21 22 23 24 25 Holiday
  4     26 27 28 29 30 31  1
  5 Feb  2  3  4  5  6  7  8
  6      9 10 11 12 13 14 15
  7     16  H 18 19 20 21 22 Holiday
  8     23 24 25 26 27 28  1
  9  Mar 2  3  4  5  6  7  8
	 Spring Break
 10     16 17 18 19 20 21 22
 11     23 24 25 26 27  H    Holiday
 12         H  1  2  3  4  5
 13  Apr 6  7  8  9 10 11 12
 14     13 14 15 16 17 18 19
 15     20 21 22 23 24 25 26
 16     27 28 29 30  1  2  3
    May  4  5  6  7  8  9 10 Finals

weeks 	READINGS/LECTURE
  1	Part I - Background in Artificial Intelligence
          decision tables, vp-expert, taxonomy trees/decision trees
  2-3	Part II - Theoretical foundations
  4-6   Part III - Knowledge representation
  7-9	Part IV  - Practical Problem solving
 10-11  Part V   - Software tools and architectures
 12-13  Part VI  - Advanced topics in expert systems
 14-16  case based reasoning

DAY WEEK Points
 W   (2)  25     program 1 - vp-expert program (simple)
 W   (4)  25     program 2 - vp-expert large (fancy)
 W   (6)  25     program 3 - OPS5 program
 M   (6) 100     TEST I
 M   (8)  25     program 4 - GRID/FRL program
 W   (9)  25     program 5 - Knowledge Engineering, 
		     Problem statement & proposed solution
 M  (11) 100     TEST II
 W  (11)  10     program 6 - prototype 
			(Initial working system, evaluation, report)
 W  (14)  50     program 7 - Final System
 M  (15) 100     TEST III
 W  (15)  10     program 8 - 'Turn over' report
 -  (11) 200     Final 

Programming Assignments

Program 1
vp-expert program (simple)

Convert the "SEAT BELT INTERLOCK SYSTEMS CHART 1" into a correctly working vp-expert program. DO NOT code the sequential nature of the diagram directly into the code. Convert each box into one or more rules. Then try the program and find the problems. This first version probably will not ask questions in a reasonable order. Add control to order the questions, first by using hierarchies of identification of problems. (i.e. car does not start, starter does not turn, starter does not work).

Program 2
vp-expert program (fancy)

Convert the skin problem table into a vp-expert program. Note that several of the items can be interpreted as ranked descriptions. Also some items will be hard to exactly evaluate. Try to include this as best as possible in your model. This program is to use certainty factors (CF). It is also to use the form, and gauge features of vp-expert. In short, in addition to a well working expert system, it is to have a "user friendly" interface. Simply converting the table directly into rules without reformulation will not produce a reasonable or acceptable system.

Program 3
OPS5 program

You are to write a program in OPS5 of reasonable complexity including Certainty Factors (CF). The program is to have at least 3 conceptual levels. It should have at least 10-15 rules. There must be some interaction between the rules. The program is NOT to be simply a case statement or primarily straight line execution. The CF are to exhibit a range of values, and the CF values are to effect the outcome of the program. An example of three conceptual levels is the levels of the taxonomy of animals (e.g. the top three of: kingdom, phylum, class).

Pick one of the following problems:

(1) Evaluate instructor's performance. Use a variety of criterion and then come up with a single value to indicate how good the instructor is.

(2) You are somewhat familiar with several programming languages. Write a program which requests information about a user's application and then suggests which among at least three programming languages would be most suitable for that application. Your program should consider at least four characteristics of the application (you get this information from the user as answers to your questions), five characteristics of the languages (builtin to the knowledge base of the program) and three characteristics of the language implementations available here (builtin to your knowledge base also).

(3) You soon will be considering job offers from several companies and/or schools. Write an expert system to assist in selecting among those offers. The system will request information about each job offer including salary, location, fringe benefits, opportunities for advancement, working conditions, presence of other NDSU graduates, company size, type of work, etc. The system will evaluate the various offers based on weighting factors and other considerations which you have builtin and give you a ranked list of the offers. Your program must contain at least 10 rules and be able to handle at least 8 job offers.

Program ????
PROLOG program

Write a program to schedule faculty to classes for a year. Each faculty has a total yearly course load, areas of expertise, general time preferences and preferred classes. Classes have number of hours, days meet, meeting hour (assume all class periods are one hour long, and start on even hours) and required expertise. Make sure all classes are covered (if possible) and give the faculty their time and course preferences when possible. Keep the overall program and data both simple and small.

Program 4
GRID/FRL program

Build a knowledge base using the GRID program. Test the knowledge base. When it is as good as the GRID system will permit, get it to create a FRL program. First check that this program works. Then fix the program so the overall system works better and limitations from the original GRID version are overcome. The problem to be handled is to identify animals. Build a tree representing the taxonomy of the animals to be identified. Include at least 9 animals. Be sure to turn in the original decision tree, the formatted GRID table and the final FRL program.
OPTIONAL: You might find it interesting to be able to build this structure under the program's control.

Program 5
KNOWLEDGE ENGINEERING and PROPOSED SOLUTION

You are to have met with your expert and have worked out a general understanding of the problem. You are to turn in a report which describes:
-The problem and how you would expect to attack the problem. It may turn out that you do not find an appropriate problem. It may be too simple, too complex or not appropriate for Expert System methodologies. If the problem is inappropriate, you should explain the types of problems that keep this problem from being a reasonable problem. In some cases, you may want to detail some solutions for problems that you will not be able to solve. You can receive full credit even if the problem is inappropriate. However, you will then need to find another problem to work on.
-The report includes the proposed solution.
-It is also to include the list of resources that can be used. These will include the expert, other experts, reading materials etc.
-You are also to include an example of sample dialog for the proposed system.
-Be sure that you have access to sample solved problems. At least three examples should be included.

Program 6
INITIAL SYSTEM and REPORT

This is to be working prototype of the overall desired system. It is to include a report which details current problem and anticipated solutions.

Program 7
FINAL SYSTEM

The final program is to be at least 3 times more complex than the previous assignments. The program is to be turned in with:
-Problem description
-Program documentation for maintenance including a glossary of all token and their meaning (in English)
-How to run the program
-Example program runs The following formula gives an estimate of program complexity for rule based programs.
terms used
--------------------
n       number of rules
rr(i)   number of rules that can be reached after rule number i
        use a value of 1 for terminal rules (rules that stop or
	for which no further rules can run after
arr     average reachable rules arr =(rr(1) + rr(2) + ... rr(n))/n
pc      program complexity pc = n * arr/n or pc = arr

Program 8
TURN OVER REPORT

This is a report developed by you and approved by the expert with which you have been working. This report is to indicate the scope of the problem solved including a clear problem statement. There is to be an evaluation of the resultant program relative to whether it could be used by the expert for the desired purpose. It is also to include an evaluation of what, if anything, should be done to the program to make it fully functional. This report is to signed by both the programmer and the expert to indicate concurrence of the evaluation. YOU CAN RECEIVE FULL CREDIT EVEN IF THE PROGRAM IS NOT PERCEIVED AS A SUCCESS.