📄 changelog
字号:
* ASMModelSwarm.m ([AsmModelSwarm -getModelTime): get
method to allow other classes to find out what Swarm "time step"
the model is on.
2001-02-07 Paul E Johnson <pauljohn@ukans.edu>
* Output.m ([Output -dumpParametersModel:BFAgent:]): New method,
Model can tell it to do this and it will decide whether to use
Lisp or HDF5 and create a time-stamped parameter output file.
* Output.m([Output -createEnd]): runTime is now calculated at
create time, so that any output files can be time stamped.
* main.m (main): Now it will dump parameter values at the end of
the run, whatever Output is supposed to dump, will get dumped,
with a time-stamp.
* ASMModelSwarm.m (buildObjects): get rid of conditional round
output object creation/setting. We are always setting up an output
object, whether or not the user wants to actually output
data. This gets rid of one layer of stupidity.
* ASMModelSwarm.m (initOutputForDataWrite): delete this method and
associated IVAR
* ASMModelParams.m ([ASMModelParams +createBegin:aZone]): added
probe for setOutputData
* asm.scm (cons): added setOutputForData 1 to initialize it.
2001-02-06 Paul E Johnson <pauljohn@ukans.edu>
* BFCast.m: added import of <misc.h>
2000-06-16 Paul Johnson <pauljohn@dellap.pols.ukans.edu>
* main.m (main): lispAppArchiver loading for ASMBatchSwarm
* ASMBatchSwarm.m ([ASMBatchSwarm -buildObjects]): batch model
load parameters from asm.scm. Adjust asm.scm accordingly.
2000-06-08 Paul Johnson <pauljohn@ukans.edu>
* Output.h:Removed the following methods:
-setNumBFagents: (int)BFagents;
-setInitHolding: (float)Holding;
-setInitialCash: (double)initcash;
-setminHolding: (double)holding minCash: (double)minimumcash;
-setIntRate: (double)Rate;
-setBaseline: (double)theBaseline;
-setmindividend: (double)minimumDividend;
-setmaxdividend: (double)maximumDividend;
-setTheAmplitude: (double)theAmplitude;
-setThePeriod: (int)thePeriod;
-setExponentialMAs: (BOOL)aBool;
-setMaxPrice: (double)maximumPrice;
-setMinPrice: (double)minimumPrice;
-setTaup: (double)aTaup;
-setSPtype: (int)i;
-setMaxIterations: (int)someIterations;
-setMinExcess: (double)minimumExcess;
-setETA: (double)ETA;
-setETAmin: (double)ETAmin;
-setETAmax: (double) ETAmax;
-setREA: (double)REA;
-setREB: (double)REB;
-setSeed: (int)aSeed;
-setTauv: (double)aTauv;
-setLambda: (double)aLambda;
-setMaxBid: (double)maximumBid;
-setInitVar: (double)initialVar;
-setMaxDev: (double)maximumDev;
* ASMModelSwarm.m ([ASMModelSwarm): removed parameter setting
activity to separate class called ASMModelParams. That class also
has probes now. So no more need for createBegin. Deleted all
IVARS from ASMModelSwarm.h that are in the param object, use -> to
get params back from parameter object.
* ASMModelSwarm: Removed initParamForWrite. Now archiver can put
shallow and it works fine.
2000-06-02 Paul Johnson <pauljohn@valinux.pols.ukans.edu>
* BFagent.h (Agent): Closed memory leaks by [index drop]. Still
some small leak in the GA code.
2000-06-01 Paul Johnson <pauljohn@ukans.edu>
* BFagent.m : Added BitVector usage, added methods -updateActiveList and
-collectWorldData.
* BitVector.h,m: Created this class, used in both BFagent.m and BFCast.m.
2000-05-31 Paul E. Johnson <pauljohn@dv241s58.lawrence.ks.us>
* BFagent.m: Crossover: added calculation of new forecast's
Strength, based on bfagent code. Tried to sort out
mistake/differences between bfagent and BFagent.
*BFagent.m: moved the "world getting" capability from
+prepareForTrading to -prepareForTrading. Each agent gets its own
copy of the world now. No more need to execute +prepareForTrading
anymore.
* BFagent.m: Use "updateSpecfactor" whenever conditions are changed in a
BFCast.
* BFagent.m: prepareForTrading: commented out previous code to select
activeList on grounds it was false. Instead, created routine to
check forcast's bits, and for each non 00 bit, check if it matches
the world. There's some fat to be removed here, but at least it
is not logically wrong.
* BFCast.m: added "updateSpecfactor" method.
2000-05-30 Paul Johnson <pauljohn@ukans.edu>
* BFagent.m: Found vital flaw in original ASM model--forecasts
were not updated. Dynamics look more persuasive after
fixing. Created "updateForecast" method in BFCast class to do this.
* BFagent.m (prepareForTrading): lActiveList commented out. It is never used!
* ASMModelSwarm.m: [BFagent init] no longer needed.
[BFagent didInitialize] no longer needed.
* BFagent.m: Note makebittables is now moved to BFCast.m.
"free" method removed, now handled by drop method in BFCast.m
Commented out usage of lActiveList, since it is a memory leak and seems to serve no purpose
2000-05-28 Paul E. Johnson <pauljohn@dv241s58.lawrence.ks.us>
* BFCast.m: This is a new class that has the same basic structure
as the BF_Cast struct that used to be in BFagent.h. It has
get/set methods for all the variables. Most importantly, is has
the makebittables() function and the bit management
interface/functions. All bit management is handled by methods
like getConditions, getConditionsBit: , setConditions:
setConditionsBit: To:, and so forth.
* BFagent.m: A complete clarification/reconstruction of the
BFagent code, that eliminates as much as possible any of the
"spaghetti" flavor of the previous BFagent code.
1. Separates into 2 new classes the 2 big structs in BFagent.h,
and creates an interface for putting information into BFCasts (the
bit string forecast class) and BFParams ( the parameter keeping
object). The beauty of this is that almost all (99.5%) of the bit
math is moved into that separate class, and the BFagent can change
the values of bits by just telling a forecast object to do it, as
in
[heyYouForecast setConditionsbit: 22 To: 1];
2. Complete and total elimination of all global variables.
3. Replacement of pointer-based "homemade" linked lists with Swarm
Arrays and Lists. This eliminates the need for "hands on" processing
of dynamic memory.
4. Conversion of the GA functions into Obj-c methods. They do the
same thing, but don't require all those global declarations. Now
more arguments are passed into these methods so they know which
lists to manipulate without having all those global variables
sitting around.
2000-05-25 Paul Johnson <pauljohn@ukans.edu>
* BFagent.m: changed IVAR "p" to "privateParams" to ease editing
and clarify things. There is no current purpose in keeping a
private param object, but at some future time it may be useful,
especially if there are subclasses from BFagent.
([BFagent -performGA]): Everything is as local as possible.
Eliminated all possible global vars.
2000-05-25 Paul E. Johnson <pauljohn@dv241s58.lawrence.ks.us>
* BFagent.m ([BFagent -performGA]): moved GA functions inside
performGA method, so they have automatic access to Ivars and we no
longer need to declare all those global variables or functions. *
* BFParams.m: new object to hold parameters, which were previously
kept in a struct.
2000-05-24 Paul Johnson <pauljohn@ukans.edu>
* BFagent.m: cleared out ^M from Windows
([BFagent +init]): changed probs and bits from class variables to
local arrays in this method. They are only used in this
method. MAXCONDBITS is a compile-time variable, no need for
dynamic memory.
2000-05-07 Paul E. Johnson <pauljohn@dv241s58.lawrence.ks.us>
* ASMModelSwarm.m ([ASMModelSwarm +createBegin:]): This is the
first official entry of the Changelog. Before Brandon Weber
released the ASM code, I was working against a copy of the code
from the SFI's cvs. There are some slight differences, and
figuring them out was not too tough. Anyway, the major idea is to
get rid of as many "ad hoc" do-it-yourself components, replacing
them with off-the-shelf Swarm things. The patch file
"ASMpatch1-pj.txt" implements the changes that bring the random
number usage "up to date" with Swarm.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -