MASON-INTEREST-L Archives

August 2007

MASON-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Monospaced Font
Show HTML Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
"Maciej M. Latek" <[log in to unmask]>
Reply To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Date:
Mon, 20 Aug 2007 10:29:08 -0400
Content-Type:
multipart/alternative
Parts/Attachments:
text/plain (3722 bytes) , text/html (7 kB)
Hi,

I myself found the wrapper approach very convenient. Below is the code for
Wrapper for a simulation of mine called ZIMarket which extends SimState. The
parameters for a given run in this particular case are passed through the
constructor, but you can set them after you have constructed you default
simulation as well. The key part is the block from *.start() to *.finish()
which steps things as long as there is anything scheduled.

Usual caveats apply: I have not used this code in a long time, but it should
work.

Regards

Maciek

Code starts here:
--------------------------------------------

package homework1;

/* This is wrapper for ZIMarket, facilitating running multiple experiments.
*/

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class ZIMarketWrapper {


    public static void main(String[] args) {


        // Statistics for Buyers and Sellers will be saved in the two
separate txt files.

        FileWriter fstream1 = null;
        FileWriter fstream2 = null;

        try {
            fstream1 = new FileWriter("outBuyers.txt");
            BufferedWriter outBuyers = new BufferedWriter(fstream1);

            fstream2 = new FileWriter("outSellers.txt");
            BufferedWriter outSellers = new BufferedWriter(fstream2);

            // Run simulations for 300 times, with different storage
ammounts.

            for (int n = 1; n < 100; n++) {

                for (int t = 1; t <= 5; t = t + 2) {
                    ZIMarket hhw = new ZIMarket(System.currentTimeMillis(),
t, outBuyers, outSellers);
                    hhw.start();

                    while (hhw.schedule.step(hhw)) {
                    }

                    hhw.finish();

                }

                System.out.println("N =" + n);

            }

            outBuyers.flush();
            outBuyers.close();

            outSellers.flush();
            outSellers.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

---------------------------------------------
Code ends here

On 8/20/07, Dr. Steven J. Barrett <[log in to unmask]> wrote:
>
>
> Hi Ed,
>
> ...if all else fails(!), the easiest option might be to run Mason in it's
> batch mode (from the DOS prompt), using a DOS batch (.bat) script for the
> different parameterisation runs?
>
> Rgds,
>
> Steven
>
>
>
>  *"Ed Long" <[log in to unmask]>*
> Sent by: "MASON Multiagent Simulation Toolkit" <
> [log in to unmask]>
>
> 20-Aug-2007 09:39  Please respond to "MASON Multiagent Simulation Toolkit"
> <[log in to unmask]>
>
>           To
> [log in to unmask]  cc
>
>  Subject
> Automating multiple runs
>
>
>
>
>
>
> Hi,
>
> I'm new to both MASON and Java programming so apologies if this is a bit
> simple.
>
> I have a simulation which runs nicely via the GUIState for single runs.
>  In
> order to generate some data for stats analysis I'd like to get it to run
> the simulation multiple times without the GUI, and also pass in an
> automatically numbered filename to take output and a varying parameter
> value.
>
> From what I can see, the doLoop method is what I need but I can't seem to
> get my head round the syntax.  Should I be writing the code within my
> Engine (extension of SimState) class or a wrapper class which calls
> Engine?
>
> Any help much appreciated!
>
> Ed Long
>
>
> -----------------------------------------------------------
> This e-mail was sent by GlaxoSmithKline Services Unlimited
> (registered in England and Wales No. 1047315), which is a
> member of the GlaxoSmithKline group of companies. The
> registered address of GlaxoSmithKline Services Unlimited
> is 980 Great West Road, Brentford, Middlesex TW8 9GS.
> -----------------------------------------------------------
>
>


ATOM RSS1 RSS2