zsc2_animat

  //**************************************************************
// File: zcs2-animat.sce
// Authors: Gerd Doeben-Henisch
// Version Start: May-18, 2010
//---------------------------------
// Update May-19-2010-1459
// Update May-19-10-2343
// Update May-27-10-1825     
// Update May-31-10-2005
// Update June-1-10-1743 
// Update June-1-10-2119
// Update June-6-10-1552 
//**********************************************************
// diary('H:\FH\SCILAB\HISTORIES\Date.txt')
//diary('/home/gerd/public_html/uffmm/science-technology/single/themes/computer-science/personal-sites/doeben-henisch/KNOW/GBBLT/SCILAB/HISTORIES/Date.txt')

//******************************************************************
// CONTENT: Necessary code for an ANIMAT2-agent, the successor of the
// ANIMAT0- and ANIMAT1-agent.

//***********************************
// BEHAVIOR FUNCTION WITH CLASSIFIERS
//
// A CLASSIFIER has the structure
// [SE, SI, A, R]
//
// SE := External Sensory Pattern, 8 x 2Bits for the 8 surrounding cells and their propositions
// SI := Internal Sensory Pattern
// A := Action
// R := Collected Reward
//

//CLASSIF0 with a Non-Move !

CLASSIF0 = [
'################'  '0' '0' '000'; 
'11##############'  '0' '1' '000'; 
'##11############'  '0' '2' '000'; 
'####11##########'  '0' '3' '000' ; 
'######11########'  '0' '4' '000' ; 
'########11######'  '0' '5' '000' ; 
'##########11####'  '0' '6' '000' ; 
'############11##'  '0' '7' '000' ; 
'##############11'  '0' '8' '000' ;
'00##############' '0' '1' '000' ; 
'##00############' '0' '2' '000' ; 
'####00##########' '0' '3' '000' ; 
'######00########' '0' '4' '000' ; 
'########00######' '0' '5' '000' ; 
'##########00####' '0' '6' '000' ; 
'############00##' '0' '7' '000' ; 
'##############00' '0' '8' '000';
'################'  '1' '0' '000'; 
'11##############'  '1' '1' '000'; 
'##11############'  '1' '2' '000'; 
'####11##########'  '1' '3' '000' ; 
'######11########'  '1' '4' '000' ; 
'########11######'  '1' '5' '000' ; 
'##########11####'  '1' '6' '000' ; 
'############11##'  '1' '7' '000' ; 
'##############11'  '1' '8' '000' ;
'00##############' '1' '1' '000' ; 
'##00############' '1' '2' '000' ; 
'####00##########' '1' '3' '000' ; 
'######00########' '1' '4' '000' ; 
'########00######' '1' '5' '000' ; 
'##########00####' '1' '6' '000' ; 
'############00##' '1' '7' '000' ; 
'##############00' '1' '8' '000'
]

//CLASSIF without a Non-Move !

CLASSIF = [
'11##############'  '0' '1' '000'; 
'##11############'  '0' '2' '000'; 
'####11##########'  '0' '3' '000' ; 
'######11########'  '0' '4' '000' ; 
'########11######'  '0' '5' '000' ; 
'##########11####'  '0' '6' '000' ; 
'############11##'  '0' '7' '000' ; 
'##############11'  '0' '8' '000' ;
'00##############' '0' '1' '000' ; 
'##00############' '0' '2' '000' ; 
'####00##########' '0' '3' '000' ; 
'######00########' '0' '4' '000' ; 
'########00######' '0' '5' '000' ; 
'##########00####' '0' '6' '000' ; 
'############00##' '0' '7' '000' ; 
'##############00' '0' '8' '000';
'11##############'  '1' '1' '000'; 
'##11############'  '1' '2' '000'; 
'####11##########'  '1' '3' '000' ; 
'######11########'  '1' '4' '000' ; 
'########11######'  '1' '5' '000' ; 
'##########11####'  '1' '6' '000' ; 
'############11##'  '1' '7' '000' ; 
'##############11'  '1' '8' '000' ;
'00##############' '1' '1' '000' ; 
'##00############' '1' '2' '000' ; 
'####00##########' '1' '3' '000' ; 
'######00########' '1' '4' '000' ; 
'########00######' '1' '5' '000' ; 
'##########00####' '1' '6' '000' ; 
'############00##' '1' '7' '000' ; 
'##############00' '1' '8' '000'
]

//**************************************************************
// MATCHSET
//
// Set of Classifiers which have been selected fora  possible action
//

MATCHSET=[] // (13)

//**************************************************************
// ACTIONSET
//
// Set of Classifiers which have been EXECUTED BEFORE
// No.1 = The LAST action
// No.2 = The PRECEDING action
// ....
//

ACTIONSET=[] // (14    )

//*************************************************
// ANIMAT STRUCTURE
// The ANIMAT has a POSITION = (Yanimat, Xanimat)
// and an ENERGY-state ENERGY TOTAL and ENERGY ACTUAL
// The set of CLASSIFIERS is the  PREWIRED KNOWLEDGE
// connecting perceived PROPERTIES; VITAL parameters
// with a proposed ACTION and accumulated REWARDS.
// The ENERGY level  is controlled
// by TIME and by ACTIVITY
// FOOD = adds the amount given in FOODIDX
// NONFOOD = adds a certain negativ amount.
// The threshold VTHRESHOL controls the VITAL state:
// if ABOVE threshold then VITAL=1, otherwise =0
// ACTDEPTH cntrols how many PREDEEDING actions are remembered
// for accumulating REW to actions


FOODIDX = 100 //(10)
NONFOODIDX = -1 // (11)
VTHRESHOLD = FOODIDX/2 // (12)
MATCHSET =[] //(13) 
ACTIONSET =[] //(14)

Xanimat = 3 //(1)
Yanimat = 5 //(2)
ENERGYTotal = FOODIDX //(3)
ENERGYActual = 0 //(4)
ENERGYInput = FOODIDX //(5) Start value, could be different; part of the VITAL dimension of the agent
VITAL = 1 //(6)
ACTOLD = [] //(7) Classifier with last action.
//CLASSIF (8)
ACTDEPTH = 2 //(9)  How many preceding ations can be memorized


ANIMAT = list(Xanimat, Yanimat, ENERGYTotal, ENERGYActual, ENERGYInput, VITAL, ACTOLD, CLASSIF, ACTDEPTH, FOODIDX, NONFOODIDX, VTHRESHOLD, MATCHSET, ACTIONSET )



Gerd Doeben-Henisch 2012-03-31