There are three points to this lab. Firstly, you should be able to
understand decision trees and implement them in a rule based fashion.
Secondly, the concept of symmetry is explored and you should be able
to implement rules to handle symmetric functions. Thirdly, the concept
of transitivity is explored and you should implement rules to handle
transitive functions.
Decision Trees
- Decision Trees are Trees where each node is a question, each
branch is an answer to a question, and each leaf is a result.
- Here is a decision Tree:
- Roughly, the idea is that depending of how many of the item (say
paper) you have in stock, you make different decisions. If you
don't have much, you buy at any cost. If you have a lot you only
buy if it is inexpensive.
- First make three rules to handle the root node and its answers.
- Now add rules for the left branch. How does the rules for
this branch know they're for it, and not the other branches.
- Now add rules for the central branch.
- Now add rules for the right branch.
- Symmetric and Transitive Rules and Facts
- Symmetry allows you to reorder the operands (arguments).
- For example, addition is symmetric because A+B = B+A
- Subtraction is not symmetric.
- You can make rules to add symmetric facts; for example if
(door A B) then (door B A). That is if there is a door from
A to B, then there is a door from B to A; most doors behave this
way.
- Make a rule for door that adds the symmetric fact.
- Now make up another symmetric rule for a different symmetric
function.
- Another mathematical property is transitivity. It involves three
operands. If f(X,Y) and f(Y,Z) then f(X,Z). An example
of this is less than. If X < Y, and Y < Z then X < Z.
- Make a rule to add transitive facts based on less than.
- Now come up with another transitive function and implement
the rule or rules.
- When would you use decision trees?
- When would you use symmetric and transitive functions?