                     VARS.TXT

This file contains a list of the CFS-C variables that can be set at run-time,
using the SET command. For a detailed description of these variables meanings
and use, see the CFS-C documentation.

Variables affecting Bidding and the Bucket Brigade
--------------------------------------------------
 
OneMPerC    If set to 0, each classifier can produce many messages per step
            (up to one for each "match" triple). If set to 1, each classifier
            can produce at most one message per step. For classifiers that have
            many "matches", the match used to produce the new messages is chosen
            at random with probability proportional to the support for each match.

Bid_K       Proportionality constant included in the bid calculation.
BidPow      Strength is raised to this power when biased bid is calculated (default 1).
BRPow       BidRatio is raised to this power when bid is calculated (default 1).
            (Also used when used to allocate rewards--see ShareRew, below).
SuppBid     Set to 0 to have Support NOT used in the bid calculation.
            The default is 1, use the support.
EBRPow      The ``effective bid'' is Bid * BidRatio**EBRPow. 
            (See paper in 1987 Intrnl Conf on GA.)
BtCSB       Bias Bid to "coupled stage-setter" bidders (cond1 start "10").
BtCMB       Bias Bid to "coupled memory" bidders (cond1 start "0#").

HeadTax     Tax rate applied to all classifiers every step.
AHeadTax    A constant removed from the strength of all classifiers each step.
BidTax      Tax applied to classifiers that bid during current step.
FBidTax     Tax applied to classifiers that bid but did NOT produce a message.
PrdTaxMx    Maximum producer tax, applied to classifiers that produce messages.
PrdTaxPw    The producer tax actual tax is:
                tax = PrdTaxMx * ( m / M ) ** PrdTaxPw
            where "m" is the number of messages the classifier produced, 
                  "M" is the number of messages produced by all classifiers.

CfBidMn     Minimum bid allowed (should be >= 0).

CfSuppDf    Support added to a classifier when it has a "NOT" condition that
            is satisfied (i.e., no messages match the NOT condition).

AllPayBid   If set to 0, only classifiers that "post" messages pay their bid
            (where "posted" messages those produced and NOT removed by the
            effector conflict resolution mechanism).
            If set to 1, all classifiers that "produce" messages pay their bids,
            whether those messages are deleted from the new message list or not.
 
FrPayDet    The fraction of a bid-share paid for detector messages.
FrPayNEC    Non-Effector Classifiers are paid FrPayNEC * Reward (default is 1).
DMShare     When classifier pays for messages from detectors and from other 
            classifiers, DMShare=1 means pay both types the same, whereas
            DMShare=0 means pay nothing for detector messages, all to other cfs.

ShareRew    Control how rewards from the Environment are allocated to classifiers.
            ShareRew    Each active classifier (i.e., each that posted a message):
            --------    ---------------------------------------------------------
               0        has FULL reward from the environment added to its strength.
               1        has equal share of reward added to its strength.
               2        like 0, except reward is multiplied by (BidRatio ** BRPow).
               3        like 1, except reward is multiplied by (BidRatio ** BRPow).
/**/
Misc. Variables
---------------

DelHal      Delete Hallucinations (default is 0, don't delete them).

URndSd      Random number generator seed (set to some prime).
CycleStp    Current Cycle Step (in general do not set this).

CfStrMax    Classifier strength maximum.
CfStrMin    Classifier strength minumum.  This should usually be >= 0.
CfStrDf     Classifier strength default.
MsgIntDf    Message Intensity default.

NmIMsgMx    Maximum number of internally generated messages (generated by classifiers).
NmIEMMx     Maximum number of effector messages generated per step.
NmIIMMx     Maximum number of internal (memory) messages generated per step.

NmDMsgMx    Maximum number of detector messages.
            NmIMsgMx + NmDMsgMx should equal the MSGLSTSZ (32).
NmDMsgMn    Minimum number of detector messages. This is normally set once
            by the code that initializes the environment--it is the minimum number
            of places on the message list that should be left for detector messages.

DetectRt    Detector Rate--number of steps between reading messages from the detectors.
EffectRt    Effector Rate--number of steps between generating activity.

GRCFrMC     Generate Random Classifiers--Fraction of "MATCH" conditions generated.
GRCFrNSL    Generate Random Classifiers--Fraction of non-specific loci (#) generated.
            (1 - GRCFrNSL) is the fraction of specific loci, equally 1's and 0's.


Variables to control displays during a run.
-------------------------------------------

Echo        Echo commands.
Log         Log commands and displays to specified file.

AdCfInt     Auto-Display Classifiers, Interval.
AdCfFmt     Auto-Display Classifiers, Format. (1=string,2=stats,21=interpreted)
AdVarInt    Auto-Display Variables, Interval.
AdVarFmt    Auto-Display Variables, Format.
AdEnvInt    Auto-Display Environment, Interval.
AdEnvFmt    Auto-Display Environment, Format. (1=guess,2=performance,3=full)

DsCfLst     Display only specified subset of classifiers. '0' means display all,
            'a' means above ave. strength, 'b' bidders, 'w' winners, 'p' posters,
            '1,id,id,...' means display cfs with specified id's.


LETSEQ specific variables (use ECMD SET var=value for these).
-------------------------------------------------------------
lr          Reward for getting letter right.
tr          Reward for getting letter wrong, but right "type."
wr          Reward for getting letter and type wrong.
e           Effector conflict resolution mechanism:  0 = highest support (bid),
            1 = highest sum of support, 2 = prob. propor. to sum of support.
/**/
Discovery Variables
-------------------

FrNewCfs    Maximum Fraction of classifier list replaced during one step.

NwCfStrV    Specify how to calculate strength of new Classifiers. Strength = 
            1. NwCfStrF * AveCfStr  2. Halfway between average and parent strength.
            3. Average of Parent strengths.    (Default is 1.)

NwCfStrF    For NwCfStrV=1, new strength is NwCfStrF * Average Strength.

CDMsgs      0 to turn Cover Detector Messages operator off. 1 to use "generalize
            minimally nearest match", and 2 to use George's method.
CDMsgsAct   0 to use action from the parent classifier (hi-Str or close match)
            1 to use random action.

CDMsgsRt    If CDMsgs is > 0, and detector message unused, this is probability 
            operator will be applied (default is 1.0).

CEffsRt     Set to 0 to 1.0, it is the probability the CEffs() operator will be
            used when a mistake is made (and CEffs is > 0).

CEffs       Set to 1 or 2 to turn on Cover Effectors operator.
            If set to 1, one new classifier will be generated when a "mistake"
            is made; it will have as its condition (usually) one of the
            classifiers that made the mistake, and as its action some action
            chosen at random. If it is to 2, two new clasifiers are generated.
            The composition of those new classifiers depends on CEffSplz...

CEffSplz    If set to 0, then both new classifiers have actions chosen at random.
            If set to 1, one has action chosen at random and the other has the
            the same action as the parent classifier, but its condition is
            specialized by changing one (random) # to a 0 or a 1.

BkgGARt     Background Genetic Operator Rate (0 to 1), probability the background
            operator will be applied during any given step.

BGASCPr     Background Genetic Operator (BGA), String Cross Probability
            (crossover within one condition or the action).
BGAFCPr     BGA, Full Cross Probability (crossover over full classifier) 
BGANCPr     BGA, No Crossover Probability (just copy the parents).
            Note that these 3 variables define a *cummulative* probability function.
            Current values are:  BGASCPr  0.5,  BGAFCPr  0.5,  BGANCPr  1.0

BGABPPR     Probability use Bidding Classifiers as Parents.

ACPCRt      Probability use Asymchronous Couple Profitable Classifier operator.
ACPCt       ACPC trigger when "profit" > Strength * ACPCt.

CSSRt       Probability use Triggered Coupling Operator (TCO).
            It use ACPCt as trigger, i.e., when "profit" > Strength * ACPCt.
CSSFrM      Fraction of TCO offspring forced to use "memory" message to link.
CSSFrRf     Fraction of TCO offspring forced to use "reflex" linkage.
LTagMx      Max (left) loci of tag-region used by TCO.
RTagMx      Max (right) loci of tag-region used by TCO. Thus the coupled
            action/condition have a random string from LTagMx to RTagMx.

MuPrTot     Mutation Probability, total. Defines Poisson distribution used to 
            decide if new cf has 0,1,2,... mutations.

MuFrNSL     Fraction of mutations that generate non-specific loci (#'s).
            (1-MuFrNSL) generator 1's and 0's (with equal probability).

MuPrCnd1    Probability mutation will be in condition 1.
MuPrCnd2    Probability mutation will be in condition 2.
MuPrAct     Probability mutation will be in action.
MuPrCT2     Probability mutation will be to condition-2 TYPE.
MuPrAT      Probability mutation will be to action type. 
/**/
PrntBPow    Used to bias selection of parents when using strength as criteria.
            Probability classifier i will be selected to be a parent is:

                 Strength(i) ** PrntBPow / sum ( Strength(j) ** PrntBPow )

            Default PrntBPow is 1.
            (See documentation for a description of algorithms used to select
            parents for the Cover Detector Messages and Cover Effectors operators.)

PkPrnWOR    Pick Parent WithOut Replacement. Default is 1 (TRUE).

CrowdFac    Crowding factor (1, 2, ... )
            Classifier actually replaced is picked from a crowd; the one
            picked has genotype most like the new classifier that will replace it.

RandRplc    If set to 1, pick classifiers for the replacable crowd at random.
            If set to 0, pick them with probability biased by 1 / Strength.

RplcBPow    Bias the  probability a classifier will be picked to be in the "crowd"
            from which a classifier will be chosen to be replaced.
            Probability a classifier i will be selected is:

                 Strength(i) ** RplcBPow / sum ( Strength(j) ** RplcBPow )

            Default RplcBPow is 1.

RplCfUBd    Classifiers with Strength >= AveCfStr * RplCfUBd will not be replaced.

RplACUBd    "Active" classifiers with Strength >= AveCfStr * RplACUBd will
RplACSBd    not be replaced, where "active" means post messages in the last
            RplACSBd steps.  Thus setting RplACSBd to 0 and RplACUBd to 100 
            means no active classifiers are protected by this mechanism.
            **** NOT USED ******
