Machine Learning in the field: An end-to-end architecture ...
State Machine Presentation62 End
Transcript of State Machine Presentation62 End
Thursday, March 18, 2010
Thursday, March 18, 2010
Thursday, March 18, 2010
Thursday, March 18, 2010
public class Creature{ private var amIdead : Boolean; private var doIHaveDelbruckBrain : Boolean; private var doIHaveVictorBrain : Boolean;
public function Creature() { trace(“Ecce Creature”); amIdead = true;
}
public function implant( b : Brain ) { mybrain = b; if( mybrain == DELBRUCK_BRAIN ) // how?? { doIHaveDelbruckBrain = true; doIHaveVictorBrain = false; } else if( mybrain == VICTOR_BRAIN )// again -- how?? { doIHaveDelbruckBrain = false; doIHaveVictorBrain = true; } else { doIHaveDelbruckBrain = false; doIHaveVictorBrain = false; } }
public function zap() { if( amIdead ) { amIdead = false;
} else
{ amIdead = false;
}}
public function talk() { if( amIdead ) { // DO NOTHING -- I’M DEAD
} else
{ if( doIHaveDelbruckBrain ) {
trace(“Listen to this...”); trace(“the secrets of eternity”); } else if( doIHaveVictorBrain ) { trace(“The operation...”); trace(“...did it work?”); } else { trace(“UNNNNNNNH”); }
Thursday, March 18, 2010
public class Creature{ private var amIdead : Boolean; private var doIHaveDelbruckBrain : Boolean; private var doIHaveVictorBrain : Boolean;
public function Creature() { trace(“Ecce Creature”); amIdead = true;
}
public function implant( b : Brain ) { mybrain = b; if( mybrain == DELBRUCK_BRAIN ) // how?? { doIHaveDelbruckBrain = true; doIHaveVictorBrain = false; } else if( mybrain == VICTOR_BRAIN )// again -- how?? { doIHaveDelbruckBrain = false; doIHaveVictorBrain = true; } else { doIHaveDelbruckBrain = false; doIHaveVictorBrain = false; } }
public function zap() { if( amIdead ) { amIdead = false;
} else
{ amIdead = false;
}}
public function talk() { if( amIdead ) { // DO NOTHING -- I’M DEAD
} else
{ if( doIHaveDelbruckBrain ) {
trace(“Listen to this...”); trace(“the secrets of eternity”); } else if( doIHaveVictorBrain ) { trace(“The operation...”); trace(“...did it work?”); } else { trace(“UNNNNNNNH”); }
Thursday, March 18, 2010
public class Creature{ private var amIdead : Boolean; private var doIHaveDelbruckBrain : Boolean; private var doIHaveVictorBrain : Boolean;
public function Creature() { trace(“Ecce Creature”); amIdead = true;
}
public function implant( b : Brain ) { mybrain = b; if( mybrain == DELBRUCK_BRAIN ) // how?? { doIHaveDelbruckBrain = true; doIHaveVictorBrain = false; } else if( mybrain == VICTOR_BRAIN )// again -- how?? { doIHaveDelbruckBrain = false; doIHaveVictorBrain = true; } else { doIHaveDelbruckBrain = false; doIHaveVictorBrain = false; } }
public function zap() { if( amIdead ) { amIdead = false;
} else
{ amIdead = false;
}}
public function talk() { if( amIdead ) { // DO NOTHING -- I’M DEAD
} else
{ if( doIHaveDelbruckBrain ) {
trace(“Listen to this...”); trace(“the secrets of eternity”); } else if( doIHaveVictorBrain ) { trace(“The operation...”); trace(“...did it work?”); } else { trace(“UNNNNNNNH”); }
Thursday, March 18, 2010
public class Creature{ private var amIdead : Boolean; private var doIHaveDelbruckBrain : Boolean; private var doIHaveVictorBrain : Boolean;
public function Creature() { trace(“Ecce Creature”); amIdead = true;
}
public function implant( b : Brain ) { mybrain = b; if( mybrain == DELBRUCK_BRAIN ) // how?? { doIHaveDelbruckBrain = true; doIHaveVictorBrain = false; } else if( mybrain == VICTOR_BRAIN )// again -- how?? { doIHaveDelbruckBrain = false; doIHaveVictorBrain = true; } else { doIHaveDelbruckBrain = false; doIHaveVictorBrain = false; } }
public function zap() { if( amIdead ) { amIdead = false;
} else
{ amIdead = false;
}}
public function talk() { if( amIdead ) { // DO NOTHING -- I’M DEAD
} else
{ if( doIHaveDelbruckBrain ) {
trace(“Listen to this...”); trace(“the secrets of eternity”); } else if( doIHaveVictorBrain ) { trace(“The operation...”); trace(“...did it work?”); } else { trace(“UNNNNNNNH”); }
Thursday, March 18, 2010
public class Creature{ private var amIdead : Boolean; private var doIHaveDelbruckBrain : Boolean; private var doIHaveVictorBrain : Boolean;
public function Creature() { trace(“Ecce Creature”); amIdead = true;
}
public function implant( b : Brain ) { mybrain = b; if( mybrain == DELBRUCK_BRAIN ) // how?? { doIHaveDelbruckBrain = true; doIHaveVictorBrain = false; } else if( mybrain == VICTOR_BRAIN )// again -- how?? { doIHaveDelbruckBrain = false; doIHaveVictorBrain = true; } else { doIHaveDelbruckBrain = false; doIHaveVictorBrain = false; } }
public function zap() { if( amIdead ) { amIdead = false;
} else
{ amIdead = false;
}}
public function talk() { if( amIdead ) { // DO NOTHING -- I’M DEAD
} else
{ if( doIHaveDelbruckBrain ) {
trace(“Listen to this...”); trace(“the secrets of eternity”); } else if( doIHaveVictorBrain ) { trace(“The operation...”); trace(“...did it work?”); } else { trace(“UNNNNNNNH”); }
Thursday, March 18, 2010
Thursday, March 18, 2010
public class Creature{ private var mybrain : Brain;
public function Creature() { trace(“Ecce Creature”); }
public function zap() {}
public function walk() {}
public function talk() {} }
Thursday, March 18, 2010
public class Creature{ private var mybrain : Brain;
public function Creature() { trace(“Ecce Creature”); }
public function zap() {}
public function walk() {}
public function talk() {} }
Thursday, March 18, 2010
public class Brain{
public function zap(){}
public function talk(){}
public function walk(){}
}
Thursday, March 18, 2010
public class DeadDelbruckBrain extends Brain{
public function zap(){}
public function talk(){}
public function walk(){}
}
Thursday, March 18, 2010
public class Creature{ private var mybrain : Brain;
public function Creature() { trace(“Ecce Creature”); this.implant( new DeadDelbruckBrain()); }
public function zap() { mybrain.zap();
}
public function walk() { mybrain.walk();
} public function talk() { mybrain.talk();
} }
Thursday, March 18, 2010
public class Creature{ private var mybrain : Brain;
public function Creature() { trace(“Ecce Creature”); this.implant( new DeadDelbruckBrain()); }
public function zap() { mybrain.zap();
}
public function walk() { mybrain.walk();
} public function talk() { mybrain.talk();
} }
Thursday, March 18, 2010
public class Creature{ private var deadDelbruckBrain : DeadDelbruckBrain;
private var livingDelbruckBrain : LivingDelbruckBrain;
public function Creature(){ trace(“Ecce Creature”);
deadDelbruckBrain = new DeadDelbrookBrain(); livingDelbruckBrain = new LivingDelbrookBrain();
this.implant( deadDelbruckBrain );}
public function zap() { mybrain.zap();
}
public function walk() { mybrain.walk();
} public function talk() { mybrain.talk();
} }
Thursday, March 18, 2010
public class Creature{ private var deadDelbruckBrain : DeadDelbruckBrain;
private var livingDelbruckBrain : LivingDelbruckBrain;
public function Creature(){ trace(“Ecce Creature”);
deadDelbruckBrain = new DeadDelbrookBrain(); livingDelbruckBrain = new LivingDelbrookBrain();
this.implant( deadDelbruckBrain );}
public function zap() { mybrain.zap();
}
public function walk() { mybrain.walk();
} public function talk() { mybrain.talk();
} }
Thursday, March 18, 2010
public class DeadDelbruckBrain extends Brain{
public function zap() {
mycreature.implant( mycreature.livingDelbruckBrain );
}
Thursday, March 18, 2010
public class Creature{ public var deadDelbruckBrain : DeadDelbruckBrain;
public var livingDelbruckBrain : LivingDelbruckBrain;
public function Creature(){ trace(“Ecce Creature”);
deadDelbruckBrain = new DeadDelbrookBrain(); livingDelbruckBrain = new LivingDelbrookBrain();
this.implant( deadDelbruckBrain );}
public function zap() { mybrain.zap();
}
public function walk() { mybrain.walk();
} public function talk() { mybrain.talk();
} }
Thursday, March 18, 2010
public class Creature{ public var deadDelbruckBrain : DeadDelbruckBrain;
public var livingDelbruckBrain : LivingDelbruckBrain;
public function Creature(){ trace(“Ecce Creature”);
deadDelbruckBrain = new DeadDelbrookBrain( this ); livingDelbruckBrain = new LivingDelbrookBrain( this );
this.implant( deadDelbruckBrain );}
public function zap() { mybrain.zap();
}
public function walk() { mybrain.walk();
} public function talk() { mybrain.talk();
}
Thursday, March 18, 2010
public class Brain{
public var mycreature : Creature;
public function Brain( somecreature : Creature ) { mycreature = somecreature; }
Thursday, March 18, 2010
...
public function zap() {
mycreature.implant( mycreature.livingDelbruckBrain );
}...
Thursday, March 18, 2010
public class DeadAbnormalBrain extends Brain{
public function zap(){}
public function talk(){}
public function walk(){}
}
Thursday, March 18, 2010
public class LivingAbnormalBrain extends Brain{
public function zap(){}
public function talk(){}
public function walk(){}
}
Thursday, March 18, 2010
...
public function zap() {
mycreature.implant( mycreature.livingAbnormalBrain );
}...
Thursday, March 18, 2010
...
public function eatSoup() {
...}
...
Thursday, March 18, 2010
Thursday, March 18, 2010
...
public function smokeCigar() {
...}
...
Thursday, March 18, 2010
Thursday, March 18, 2010
...
public function sing() {
...}
...
Thursday, March 18, 2010
Thursday, March 18, 2010
public class HybridVictorAndAbnormalBrain extends Brain{
...
}
Thursday, March 18, 2010
public class HybridVictorAndAbnormalBrain extends Brain{
private var percentageVictor : int;
public function setVictorPercentage( p : int ){ percentageVictor = p;}
Thursday, March 18, 2010
public class HybridVictorAndAbnormalBrain extends Brain{
...
public function talk( ){ if( percentageVictor > 50 ) {...
Thursday, March 18, 2010
Thursday, March 18, 2010
Template Method Pattern
Thursday, March 18, 2010
public class Brain{... public function walk() {
stepWithLeftFoot();stepWithRightFoot();
}...}
Thursday, March 18, 2010
public class Brain{... public function stepWithLeftFoot() {
}
public function stepWithRightFoot() {
}...}
Thursday, March 18, 2010
public class OneLeggedBrain{... override public function walk() {
//stepWithLeftFoot();stepWithRightFoot();
}...}
Thursday, March 18, 2010
public class RogerCobbBrain extends Brain{... override public function stepWithLeftFoot() {
leftFootPosition += strideLength; }
override public function stepWithRightFoot() {
rightFootPosition += strideLength; }...}
Thursday, March 18, 2010
public class EdwinaBrain extends Brain{... override public function stepWithLeftFoot() {
leftFootPosition += strideLength; }
override public function stepWithRightFoot() {
rightFootPosition += strideLength; }...}
Thursday, March 18, 2010
public class EdwinaBrain extends Brain{... override public function stepWithLeftFoot() {
leftFootPosition += strideLength * 2; }
override public function stepWithRightFoot() {
rightFootPosition += strideLength * 2; }...}
Thursday, March 18, 2010
public class EdwinaBrain extends Brain{... public function EdwinaBrain() {
strideLength = 12;rightStrideLength = 24;
}
override public function stepWithRightFoot() {
rightFootPosition += rightStrideLength; }...}
Thursday, March 18, 2010
public class TwoBrainedCreature{... public var rightBrain : RightBrain; public var leftBrain : LeftBrain;...}
Thursday, March 18, 2010
Thursday, March 18, 2010
Many brainsin one creature.
Thursday, March 18, 2010
public class TwoBrainedCreature{... public function walk() {
rightBrain.stepWithLeftFoot();leftBrain.stepWithRightFoot();
}...}
Thursday, March 18, 2010
Thursday, March 18, 2010
One kind of brain,many kinds of creatures.
Thursday, March 18, 2010
public class World{public function World(){ var neo : Hero = new Hero(); var shopper : NormalPerson = new NormalPerson();
var agentOne = new SmithBrain(); var agentTwo = new SmithBrain(); neo.implant( agentOne ); shopper.implant( agentTwo );
}}
Thursday, March 18, 2010
Thursday, March 18, 2010
One actual brain,many creatures.
Thursday, March 18, 2010
Thursday, March 18, 2010
public class World{public function World(){
agentSmithBrain = new AgentSmithBrain(); var neo : Creature = new Creature(); var shopper : Creature = new Creature();
neo.implant( agentSmithBrain ); shopper.implant( agentSmithBrain );
}}
Thursday, March 18, 2010
Dependency Injection
Thursday, March 18, 2010
Thursday, March 18, 2010
<beans> <bean id="edwina" class="EdwinaBrain"> <property name="mycreature" ref=" creature"/> </bean> <bean id="roger" class="RogerCobbBrain"> <property name="mycreature" ref=" creature"/> </bean> <bean id="creature" class="Creature"> <property name="leftBrain" ref="edwina"/> <property name="rightBrain" ref="roger"/> </bean></beans>
Thursday, March 18, 2010
Actual Example
Thursday, March 18, 2010
<game> <level name="demomode" > <sprite id="bigboss" class="FlyingDragon"> <property name="target" ref="hero"/> <property name="inputBrain" class="HeroFollower"/> <property name="movementBrain" class="ClumsyFlying"/> </sprite> <sprite id="hero" class="UnarmedHero"> <property name="inputSource" class="KeyboardInput"/> </sprite> </level></game>
Thursday, March 18, 2010
<game> <level name="demomode" > <sprite id="bigboss" class="FlyingDragon"> <property name="target" ref="hero"/> <property name="inputBrain" class="HeroFollower"/> <property name="movementBrain" class="ClumsyFlying"/> </sprite> <sprite id="hero" class="UnarmedHero"> <property name="inputSource" class="RecordingKeyboardInput"/> </sprite> </level></game>
Thursday, March 18, 2010
<game> <level name="demomode" > <sprite id="bigboss" class="FlyingDragon"> <property name="target" ref="hero"/> <property name="inputBrain" class="HeroFollower"/> <property name="movementBrain" class="ClumsyFlying"/> </sprite> <sprite id="hero" class="UnarmedHero"> <property name="inputSource" class="RecordedKeyboardInput" /> <property name="inputSource" class= "RecordedInputTranslator" data="a7.b3.c22.a42" /> </sprite> </level>
Thursday, March 18, 2010
One Word:
Thursday, March 18, 2010
Thursday, March 18, 2010
Brains.
Thursday, March 18, 2010