February 2005jES Open Foundation1 cover How to Use jES Open Foundation Program (a demo presentation) (February 2005, Pietro Terna) (related to jesopenfoundation tar.gz, How to v )
February 2005jES Open Foundation2 _jESjES O F _______________________________________ jES jES O F _______________________________________
February 2005jES Open Foundation3 From jES … jVE jES java Enterprise Simulator … to jES Open Foundation to simulate multi-model frameworks of system of units or agents
February 2005jES Open Foundation4 _jES basics _______________________________________ jES basics _______________________________________
February 2005jES Open Foundation5 WD, DW, WDW WD side or formalism: What to Do DW side or formalism: which is Doing What WDW formalism: When Doing What Three formalisms
February 2005jES Open Foundation6 dictionary unit= a productive structure; a unit is able to perform one of the steps required to accomplish an order order= the object representing a good to be produced; an order contains technical information (the recipe describing the production steps) recipe=a sequence of steps to be executed to produce a good A dictionary
February 2005jES Open Foundation7 _A flexible scheme _______________________________________ A flexible scheme in jES Open Foundation _______________________________________
February 2005jES Open Foundation8 DW: a flexible scheme Units … DW … on a toroidal space (left and right borders and top and bottom ones are close together) Each unit is able to do a specific step …
February 2005jES Open Foundation9 WD: recipes WD with the recipes of the orders (what to do) expressed as sequences of numbers; orders with recipes are randomly generated with different lengths and structures … … of a recipe
February 2005jES Open Foundation10 moving recipes DW and WD moving around among units ? lack of visibility how to choose Visibility is a metaphorical representation of trustiness and cooperation in a social network; when global visibility increases, we have more social capital
February 2005jES Open Foundation11 visibility and … visibility changes new units appear randomly (enterprise creation) with strategic relationships … … or alone some units are dropped out Visibility increases with the time (initial visibility is randomly chosen)
February 2005jES Open Foundation12 … bars The left (blue) bar of each unit reports the number of waiting orders (do be done) The down (grey) bar of each unit reports the number of consecutive clock ticks in which the unit has been idle If > maxInactivity the unit is dropped out and all unsent products are lost The right (red) bar of each unit reports the number of unsent products, due to the fact that a unit able to do the required step does not exist or is not visible If > maxUnsentProducts the unit is dropped out and all unsent and waiting products are lost
February 2005jES Open Foundation13 jES Open Foundation recipe generator or distiller recipes each unit owns a public matrix recipe generator or distiller recipes each unit owns a public matrix recipe generator or distiller recipes each unit owns a public matrix recipe generator or distiller recipes each unit owns a public matrix many levels built in a parametric way by the Observer The system uses only simple recipes containing computational steps applied to unit matrixes and to general matrixs jES Open Foundation
February 2005jES Open Foundation14 Visibility Visibility between two units Unit a areaUnit b area Unit a Unit b a cannot see b; b can see a
February 2005jES Open Foundation15 memory matrixes Memory matrixes data are reported in a text file (unitData/memoryMatrixes.txt) number(from_0_ordered)_rows_cols Mandatory first line
February 2005jES Open Foundation16 computational steps 1/3 Recipes with computations (recipes are reported in external and intermediate format) External format (remember: step, time specification, time) : 1 s 1 c s 2 3 s 2 1 s 1 c s 2 1 s 1 c s 2 1 s 1 c s 2 time specification: seconds time in seconds step in recipe Intermediate format (remember: each step is repeated for each unit of time) : a step with computation: step 2, requiring 2 seconds, involves computation 1999 with 3 matrixes (those numbered 0, 1, 3 in the previous Figure) after automatic translation, the intermediate format reports the computational processes with a trick (which can be modified, adopting an other translation in OrderDistiller ): we imagine here that the computations require the time reported in their steps; so they are placed at the end of the time, followed by a 0 time step (at the intermediate format level, 0 time step are reported as step a step with computation: step 7, requiring 2 seconds, involves computation 1998 with 1 matrix (that numbered 3 in the previous Figure) Computational steps
February 2005jES Open Foundation17 computational steps 2/3 The Java Swarm code used by the recipes with the example code c 1998 /** computational operations with code (a code for the checking * phase of the program * * this computational code place a number in position 0,0 of the * unique received matrix and set the status to done */ public void c1998(){ mm0=(MemoryMatrix) pendingComputationalSpecificationSet. getMemoryMatrixAddress(0); layer=pendingComputationalSpecificationSet. getOrderLayer(); mm0.setValue(layer,0,0,1.0); mm0.print(); done=true; } // end c1998 Computational steps, Java code
February 2005jES Open Foundation18 computational steps 3/3 The Java Swarm code used by the recipes with the example code c 1999 /** computational operations with code (a code for the checking * phase of the program * * this computational code verifies position 0,0 of the three * received matrixes; only if these positions are all not empty * the code empties them and set the status to done */ public void c1999(){ mm0=(MemoryMatrix) pendingComputationalSpecificationSet. getMemoryMatrixAddress(0); mm1=(MemoryMatrix) pendingComputationalSpecificationSet. getMemoryMatrixAddress(1); mm2=(MemoryMatrix) pendingComputationalSpecificationSet. getMemoryMatrixAddress(2); layer=pendingComputationalSpecificationSet. getOrderLayer(); if(! (mm0.getEmpty(layer,0,0) || mm1.getEmpty(layer,0,0) || mm2.getEmpty(layer,0,0) ) ) { mm0.setEmpty(layer,0,0); mm1.setEmpty(layer,0,0); mm2.setEmpty(layer,0,0); done=true; } } // end c1999 Computational steps, Java code
February 2005jES Open Foundation19 _ preys-predators _______________________________________ preys-predators _______________________________________
February 2005jES Open Foundation20 #Recipes; grassGeneration1c s0; utility100c s0; #Recipes; preysEating11001s0c s0; timeStep23c s0; preysReproducing4c s0; #Recipes; predatorsEating12001s0c s0; timeStep23c s0; predatorsReproducing4c s0; simple spreadsheets recipes
February 2005jES Open Foundation21 #sequence 11*50; #sequence 11*10023*14*100; #sequence 11*3323*14*33; simple spreadsheets sequences
February 2005jES Open Foundation22 units unit_#___prod.phase_# text files
February 2005jES Open Foundation23 preys-predators 1/5 Tutorial, step3b / time 278, look at the complex codetermination of grass, preys and predators
February 2005jES Open Foundation24 preys-predators 2/5 Tutorial, step3b / time 744, another codetermined configuration
February 2005jES Open Foundation25 preys-predators 3/5 Tutorial, step3b / time 1056, another codetermined configuration
February 2005jES Open Foundation26 preys-predators 4/5 Tutorial, step3b / time 1648, another codetermined configuration
February 2005jES Open Foundation27 preys-predators 5/5 Tutorial, step3b / time 3448, predators disappeared at 2132, now we have a simplified two stage model
February 2005jES Open Foundation28 _ workers-skills-firms _______________________________________ workers-skills-firms _______________________________________
February 2005jES Open Foundation29 Version 0, no links between firms and workers
February 2005jES Open Foundation30 Version 1, new workers with skills equal to that of their neighbors
February 2005jES Open Foundation31 Version 2, new workers with skills randomly distributed in the stratum space
February 2005jES Open Foundation32 Version 3, new workers with skills equal to that of their neighbors, but arising in unequal quantities
February 2005jES Open Foundation33 Version 4, new workers with skills randomly distributed in the stratum space, but arising in unequal quantities