Todays topics Java Implementing Decision Trees Upcoming More
- Slides: 11
Today’s topics Java Implementing Decision Trees Upcoming More formal treatment of grammars Reading Great Ideas, Chapter 2
A decision tree yes Selecting a textbook: yes Do you wish a Mathematical Approach? 1 A programming focus instead of theory 0 no yes no A narrow focus instead of an overview of CS 2 Oh! Pascal by D. Cooper Algorithmics by D. Harel 3 4 Karel the Robot by R. Pattis 5 6 no Great Ideas in CS by A. Biermann
Implementing a Decision Tree • Start with a very simple tree • Have just one level of decision • Need only one if statement • Have already done this kind of thing before • No new challenges
Code for Simple Tree public class Simp. Book extends java. applet. Applet implements Action. Listener { Text. Field m. Query, m. Answer; Button b. Yes, b. No; public void init() { m. Query = new Text. Field(70); m. Query. set. Text( "Do you wish a mathematical approach? "); b. Yes = new Button("Yes"); b. No = new Button("No"); m. Answer = new Text. Field(70); b. Yes. add. Action. Listener(this); b. No. add. Action. Listener(this); add(m. Query); add(b. Yes); add(b. No); add(m. Answer); }
Code for Simple Tree (part 2) public void action. Performed(Action. Event event) { Object cause = event. get. Source(); if (cause == b. Yes) { m. Answer. set. Text( "Books by Harel or Cooper are nice. "); } else // must have been the No button { m. Answer. set. Text( "Books by Pattis or Biermann should do. "); } } }
The Full Decision Tree • Now have more levels to worry about • Have picked up an additional problem • Need to keep track of where we are (or have been) • (Almost like exploring a cave -- ) • (-- or putting book marks in a book) • Add a variable which is used to record where we’ve been • Use the numbers on our diagram for reference – (numbers are arbitrary; must be unique) • Named the variable my. Location to suggest use
Code for the Decision Tree public class Book. Pick extends java. applet. Applet implements Action. Listener { Text. Field m. Query, m. Answer; Button b. Yes, b. No; int my. Location; public void init() { m. Query = new Text. Field(70); m. Query. set. Text("Do you wish a mathematical approach? "); b. Yes = new Button("Yes"); b. No = new Button("No"); my. Location = 0; m. Answer = new Text. Field(70); b. Yes. add. Action. Listener(this); b. No. add. Action. Listener(this); add(m. Query); add(b. Yes); add(b. No); add(m. Answer); }
Code for the Decision Tree (p. 2) public void action. Performed(Action. Event event) { Object cause = event. get. Source(); if (my. Location == 0) { if (cause == b. Yes) { my. Location = 1; m. Query. set. Text( "A programming focus instead of theory? "); } if (cause == b. No) { my. Location = 2; m. Query. set. Text( "Narrow focus instead of overview of CS? "); } }
Code for the Decision Tree (p. 3) else if (my. Location == 1) { if (cause == b. Yes) { my. Location = 3; m. Answer. set. Text( "I recommend 'Oh! Pascal' by D. Cooper. "); } if (cause == b. No) { my. Location = 4; m. Answer. set. Text( "'Algorithmics' by D. Harel is a fine book. "); } }
Code for the Decision Tree (p. 4) else if (my. Location == 2) { if (cause == b. Yes) { my. Location = 5; m. Answer. set. Text( "Try 'Karel the Robot' by R. Pattis. "); } if (cause == b. No) { my. Location = 6; m. Answer. set. Text( "Enjoy A. Biermann's 'Great Ideas in CS'"); } }
General Decision Trees • How can we can extend this to any size tree? • Assume we can use yes or no answers all the way through • Notice that at each on the tree we have another tree • At each step we use code similar to our simple tree • Must keep track of where we’ve been • For more general branching (not just yes/no) need a bit more • Not hard to adapt • General ideas the same
- More more more i want more more more more we praise you
- More more more i want more more more more we praise you
- Objectives of decision making
- Investment decision financing decision dividend decision
- Iimarch briefing example
- Decision tree supply chain
- Criterion of realism formula
- Decision trees show the logic structure in a
- Trees
- Minmax java
- Decision tree and decision table examples
- The more you take the more you leave behind