CSCS 530 - Project #3 Description --------------------------------- This computer project is mainly designed to give people a chance to "get their feet wet" working with computer models to run systematic experiments. This will involve taking some existing computer model and (a) extending it in some way, (b) running some simple experiments on that extension, and (c) writing a brief (4-8 page) report on your extension and results. The computer model can be any RePast- or Swarm-based model the student chooses (and can get access to). For example, extending any of the basic RePast or Swarm demo models would be an excellent project, as would some extension to a NetLogo, Mason or Ascape model. Note: the "models" and extensions can be very "toylike" for this project. The goal is not (necessarily) to do a significant experiment, but instead to go through the steps of modifying a computer model, running experiments and collecting and analyzing some simple statistics. ("Play" in choice of extension is encouraged.) Similarly, the paper does not need to be stunning scientific prose. It should be of a good "memo" quality: clear and to the point. For example, one possible project would be to extend Heatbugs by making the heatbugs adaptive in some way. Each heatbug could change its own idealTemperature in response to its experienced temperatures, or to the idealTemperatures of agents it meets. You might predict that this will lead to lower average unHappiness. One could track a few aggregate variables, e.g., average experienced temperature (heat), average idealTemperature, and average unHappiness (actually just a function of the other two). Experiments could involve varying parameters (e.g., number of heatugs, or perhaps some learning rate parameter used to change idealTemperatures) and seeing the effects of those different parameter settings on the chosen aggregate variables being measured. And of course you could compare results to the original (non-adaptive) Heatbugs. Some demos from the Repast distribution are located in /appl/repast/repast3.0/repastj/demo and described in the online RePast documentation at um/CSCS. There are also some demo's in /users/rlr/RePast/Demos-3/SugarScape1 /users/rlr/RePast/Demos-3/Tipping1 You might prefer to start from one of the newer demos in /users/rlr/RePast/Demos-3 e.g., heatBugs3, SIR1, SIR1_DS and RandomMoveInGrid as extended for the termites-chips model, or the AntPheromones* programs as extended for the ant-food project. You could also extend a NetLogo model, if you want to see what those are like. A description of the UM Swarm demo applications, as well as some other demo applications which you might use as starting points for this project may be found in the file CSCS-SwarmDemos.txt, along with the sources, in /users/rlr/SwarmStuff/CSCS-Demos/ on the CSCS computers. If you need some help getting started with any of these, please let me know and i can help get you going. For example, if you choose SugarScape1 it may help if I convert it to use our new ModelParameters class, to be consistent with heatBugs3, etc, which you have seen already. Note: - If you start with a demo directly from the Repast distribution, you will have to figure out how to do multiple runs and collect data from them so you can analyze and compare results. - The Demos-2 models mentioned above are only for RePast 2.* and Java 1.4.*, not the newer Repast 3 and Java 1.5 used by the Demos-3 programs. - if you do something starting with AntPheromones1 or one of its derivatives from projects #1 and #2, you have to be sure to do something *new*, of course.) A one to two paragraph description of what you plan to do is required. It should include the model you plan to extend, a rough idea of what you plan to change, and what experiments you plan to run, including some ideas about what you plan to measure and how you will compare results across various parameter settings. The final paper for this project should briefly describe the basic model plus the extensions you chose to make. You should explain what you were expecting to observe and what you measured to test those hypotheses. The paper should describe what programming changes you had to make (in brief, at a general level), including any observations you have on how hard or easy it was to do. Finally, the paper should decribe the experiments you ran and the results you obtained, including appropriate tables, statistical summaries, figures, and so on. Just to repeat: the paper should not dwell on the implementation details; instead it should concentrate on a "conceptual" level description of what changes you made, what you expected, what happened and (at least) some guesses about why it happened. Also, the paper should include descriptions of experiments that involve doing multiple runs at several parameter settings, collecting and comparing some simple statistics, including a table and a plot or two, and not just describing results from single runs. Important dates: 17 Feb: choose project (hand in 1-2 paragraphs). 17 Mar: project due.