INSTRUCTIONS FOR RUNNING EXP1 - EVOLUTION OF COMMUNICATION LISP VERSION Bruce MacLennan University of Tennessee, Knoxville maclennan@cs.utk.edu December 6, 1990 The three simplest ways to use the simulator are through the procedures batchrun, plotrun and dmrun. BATCHRUN Type (batchrun ), for example (batchrun "901208a" t). The (t or nil) determines whether communication is suppressed (t) or not (nil). The identifies the experiment and is used to generate file names. In this example the simulation log will be written to a file called 'x901208a'. Batchrun is intended for running in the background, since when it completes it calls (exit) to exit from LISP. You can delete this if you want; you also might need to change it for other LISP implementations [e.g., it could be (bye)]. PLOTRUN Type (plotrun ), for example (plotrun "901121b" nil). It does everything batchrun does, but also generates a plot file (called 'p901121b' in this case) that contains lines in the following format: major-cycle smoothed-avg-fitness smoothed-best-fitness comm/emiss-ratio Numbers are separated by tabs, which makes the data acceptable to Cricket-graph, which runs on Macs. A line is produced every plot-interval time steps; this parameter may be changed. You can also change the definition of plotrun to write other data, if you like. DMRUN Type (dmrun ), for example (dmrun "910113" t). It does everything plotrun does, but in addition dumps the final denotation matrix to a file (called 'd910113' in this case). Thus the denotation matrix is available for further analysis. INITIALIZE/RUN For more interactive use, you can invoke the lower level procedures, as follows: 1. Modify any parameters you like (see below). 2. Type (initialize) to create the initial population and data structures. 3. Type (run). The simulation will run for max-gens major cycles. 4. After it completes, you may alter parameters, if you like, and go to step 3 to run the simulation some more, or to step 2 to start with a new population and data structures. PARAMETERS The simulation is controlled by a number of parameters. These parameters may be changed either before a run is started (e.g., before invoking batchrun, plotrun or dmrun) or during a run [e.g., between invocations of (run)]. max-gens the number of major-cycles for the run seed begin by calling random number generator this many times suppress suppress communication (t to suppress) learning enable learning (t to enable) mu mutation rate plot-interval how often to write to plot file disconnect disconnect communication (not very useful) emission-reward points for emitter for successful cooperation reception-reward points for receiver for successful cooperation emiss-corr controls degree of correlation beween local env. and emitted symbol in initial random population generation the current major-cycle number A number of parameters control plotting: plot-af avg. fitness plot-bf best fitness plot-maf smoothed avg. fitness plot-mbf smoothed best fitness plot-cer communication/emission ratio A number of parameters control the display of various information, mostly for debugging purposes. They allows observation of the simulation from a very detailed to a very coarse level. They are all called print-. Look at the code to see exactly what they do. Display of the selection of simorgs to breed/die is controlled by fsearch-monitor. Several parameters control the generation of output files: write-log generate log file log-file-name the log filename write-plot controls writing of plot file plot-file-name the plot filename dump-bodies dumps to a file indices of best and second best simorgs, and transition tables of final population dump-file-name filename for dump-bodies dump-correl dumps final denotation matrix to file correl-file-name filename for dump-correl write-dict writes to a file a reception dictionary and an emission dictionary for each simorg in the final population. dict-file-name filename for write-dict graphics-1 this controls online graphics under TI PCScheme; inoperative under LISP. These parameters are used by (initialize), so they may be set before a run begins, but not in the middle of a simulation: window-size the size of the smoothing window Some of the parameters (such as those controlling the number of states) are used during initialization when the file is loaded or compiled. Thus if you want to change these you must reload or recompile the program. These parameters are: state-size, glo-state-size, loc-state-size, action-size, env-cycles, env-delay, population EXAMPLES Here are some examples of interactive sessions. They assume LISP has been invoked and the program has been loaded. Example 1: Run with comm/no learning; write log file (batchrun "901216a" nil) Example 2: Run with different pop., comm/learning set; gen. plot file (set! seed 17) (set! learning t) (plotrun "901216b" nil) Example 3: Same population, but comm. suppressed/no learning (set! seed 17) (plotrun "901216c" t) Example 4: Change emission reward and run time, show debug info. (set! seed 12) (set! emission-reward 2) (set! max-gens 100) (set! print-fitness-means t) (initialize) (set! write-log nil) (run) (set! print-fitness-means nil) (set! print-signaler t) (set! max-gens 200) (set! write-log t) (run) WARNINGS Setting max-gens less than window-size doesn't work. CONTACT: Bruce MacLennan Department of Computer Science 107 Ayres Hall The University of Tennessee Knoxville, TN 37996-1301 (423)974-0994/5067 maclennan@cs.utk.edu