Now set up the model's activation. swarmContext indicates where
we're being started in - typically, this model is run as a
subswarm of an observer swarm.
The ComputationalAssemblerBasic class instances make
computational processes; we have a computationa assembler instance for
each unit
THIS CLASS IS NOT USED DIRECTLY, BUT VIA THE INHERITING CLASS
ComputationalAssembler.java
computational operations with code -1001
this computational code places the numbers
of the recipes to launch from other recipes, via the c step 1002,
in position 0,0 of the received matrixes and set the status to done.
computational operations with code -1100
this computational step acts as generalized matrix loader that places the values
found in unitData0/memoryMatrixContents.txt file in the matrixex and rows and cols
reported in the same file
the number of the matrixes used here must be less or equal to totalMemoryMatrixNumber
(the first m matrixes of these ones); beside this, m has to be less than 10
it is mandatory to enter all the defined matrixes
in their original in the c 1100 m m1 m2 ... command
values in the unitData0/memoryMatrixContents.txt can be in any order
finally it changes the status to done;
computational operations with code -1101 (a code for the jES Open Foundation
extension)
this computational code creates a new random unit in the model stratum
reported in position 0,0 of the unique received matrix, with the probability
set in position 1,0 of the same matrix; finally it changes the
status to done
computational operations with code -1102 (a code for the jES Open Foundation
extension)
this computational code drops the unit the order is in, with the probability
set in position 0,0 of the first received matrix and increases the
position 0,0 of the second received matrix by 1, to count the dropped
units; this computational step must be in the last step of the order, because
the dropped unit cannot send it to the successive one; the computational step,
before setting the unit to be dropped, applies the orderDoneStep() method to
the order, for accounting purposes; finally it changes the status to done
computational operations with code -1103 (a code for the jES Open Foundation
extension)
this computational code creates a copy of the unit the order is in the model
stratum of the original unit, near to it with the standard placement rule, with
the probability set in position 1,0 of the unique received matrix; finally it
changes the status to done
computational operations with code -1999 (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
production done step in Order (it is in the orderRecipe vector,
at the index value in which we find the first 0 in orderState
vector minus 1; if no step has been done, the method returns -999999)
getting the computational specification set related to the nextStep
(the current one, if the order is in a waiting list for next step
to be accomplished)
if no computational specification set exists for the next step,
a null value is returned
the min level of inter-visibility; below this level two units cannot
exchange products; this value is not used in assignment coming from
OrderGenerator; this value can be different from one model to another: that
of the sending unit is used
the number identifying the memory matrix (starting from zero)
this number represents also the posizione of this memory matrix in an
array of memory matrixes created and managed by ESFrameModelSwarm
ActionGroup for holding an ordered sequence of action
(the numbers of the model action names are the same used in the full
jES model, so some are lacking in this version)
ActionGroup for holding an ordered sequence of action
(the numbers of the model action names are the same used in the full
jES model, so some are lacking in this version)
ActionGroup for holding an ordered sequence of action
(the numbers of the model action names are the same used in the full
jES model, so some are lacking in this version)
ActionGroup for holding an ordered sequence of action
(the numbers of the model action names are the same used in the full
jES model, so some are lacking in this version)
This method is used to collect the names of the units and of the end units, so that it can operate the check of
corrispondency between the production phases required by recipes and the phases of production the units can do.
the integer vector containing the unit of time spent for each step
in the recipe; il will determine the tranformation of the orderRecipe1
vector into the orderRecipe2 vector containing the repetitions
of the steps, to reproduce the length of each step in time
NB this formalism is internal to internal (in external formalism
we have 'step s/h/d time'
as an examples
orderRecipe1 contains 1 12 7 3
stepLengthInOrder contains 1 3 2 2
orderRecipe2 contains 1 12 12 12 7 7 3 3
the unit the order come from (null at the beginning, coming from distiller or
generator) NB must be a different unit, i.e. we do not register here the assignnment
to the same unit or to a unit executing the same step
The Unit class instances are micro unit in our virtual enterprise;
i.e. the units where the steps required to build a product (to fulfill
an order) are done
at the beginning of each time tick in the 'day', each unit looks for
the order(s) (if any) to be executed; the production
cycle is 'one unit of time'
in a step of the recipe of an order in a tick of a day;