107 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| global.TOP='/home/sbosse/proj/jam/js';
 | |
| require(TOP+'/top/module')([process.cwd(),TOP]);
 | |
| var Io = Require('com/io');
 | |
| var Aios = Require('jam/aios');
 | |
| var Nav = Require('com/nav');
 | |
| Aios.lock();
 | |
| 
 | |
| 
 | |
| var ac = function (param1,param2) {
 | |
|   //var self=this;
 | |
|   // Data State
 | |
|   this.param1=param1;
 | |
|   this.param2=param2;
 | |
|   this.x=0;
 | |
|   this.learner={};
 | |
|   // Activities
 | |
|   this.init = function () {
 | |
|     var res;
 | |
|     this.x=-1;
 | |
|     log('init');
 | |
|   };
 | |
|   this.end = function () {
 | |
|     log('finalize');
 | |
|     kill();
 | |
|   };
 | |
|   this.act1 = function () {
 | |
|     var training_data = [
 | |
|         {"color":"blue", "shape":"square", "liked":1},
 | |
|         {"color":"red", "shape":"square", "liked":2},
 | |
|         {"color":"blue", "shape":"circle", "liked":4},
 | |
|         {"color":"red", "shape":"circle", "liked":5},
 | |
|         {"color":"blue", "shape":"hexagon", "liked":1},
 | |
|         {"color":"red", "shape":"hexagon", "liked":1},
 | |
|         {"color":"yellow", "shape":"hexagon", "liked":4},
 | |
|         {"color":"yellow", "shape":"circle", "liked":1}
 | |
|     ];
 | |
| 
 | |
| 
 | |
|     var class_name = "liked";
 | |
|     var features = ["color", "shape"];
 | |
|     log('act1');
 | |
|     this.learner=ml.learn(training_data, class_name, features);
 | |
|     out(['worker',this.param1]);
 | |
|   };
 | |
|   this.act2 = function () {
 | |
|     log('act2');
 | |
|     var test_data = [
 | |
|         {"color":"blue", "shape":"hexagon", "liked":3},
 | |
|         {"color":"red", "shape":"hexagon", "liked":1},
 | |
|         {"color":"yellow", "shape":"hexagon", "liked":3},
 | |
|         {"color":"yellow", "shape":"circle", "liked":5}
 | |
|     ];
 | |
|     log(ml.classify(this.learner,{
 | |
|         color: "yellow",
 | |
|         shape: "square"
 | |
|       }));
 | |
|     log(ml.evaluate(this.learner,'liked',test_data));
 | |
|     inp(['worker',this.param1],function (t) {this.x=t[1];});
 | |
|     //this.learner={};
 | |
|   };
 | |
|   this.act3 = function () {
 | |
|     log('act3');
 | |
|     log(this.x)
 | |
|   };
 | |
|   this.on = {
 | |
|     error : function (e) {
 | |
|       log('Caught exception '+e);
 | |
|     },
 | |
|     exit : function () {
 | |
|       log('Terminating.');
 | |
|     }
 | |
|   };
 | |
|   // Transition network
 | |
|   this.trans = {
 | |
|     init: function () {
 | |
|       return 'act1'; 
 | |
|     },
 | |
|     act1: function () {
 | |
|       return 'act2'; 
 | |
|     },
 | |
|     act2: function () {
 | |
|       return 'act3';
 | |
|     },
 | |
|     act3: function () {
 | |
|       return 'end';
 | |
|     },
 | |
|     end: function () {
 | |
|     
 | |
|     }
 | |
|   }
 | |
|   // Control State
 | |
|   this.next='init';
 | |
| }
 | |
| var world = Aios.World.World([]);
 | |
| var node = Aios.Node.Node({id:'mynode'});
 | |
| world.add(node);
 | |
| 
 | |
| var agent = Aios.Code.create(ac,[1,2]);
 | |
| //Aios.config({iterations:10});
 | |
| Aios.loop();
 | |
| var json = Aios.Code.ofCode(agent);
 | |
| //console.log(json);
 | |
| console.log(json.length);
 | |
| console.log(Aios.current.world.print(true))
 | |
| Nav.Navigator(Aios.current.world);
 | |
| 
 |