grid-based NetLogo model

61 阅读5分钟

1 Introduction
Your task is to replicate an existing grid-based NetLogo model in Java or Python, perform
experiments to verify that its behaviour matches that of the original model, adapt your model
to answer a new research question, and prepare a report on your findings.
The objectives of this Assignment are to provide you with the opportunity to develop your skills
in implementing a computational model of a complex system, using it to conduct experiments,
reporting on the design of the model and the results of these experiments, and working in a
group context.
2 Motivation: Replication
“Replication is a critical component of the scientific method and a core practice of scientists.”
Wilensky & Rand (2007), JASSS 10(4):2
The idea that a scientific experiment should be reproducible in order to be credible has a long
history in science, dating back to early Greek philosophers. Because computational models of
complex systems are used as the basis of scientific claims about the behaviour of those systems,
it is essential that they are subject to the same level of rigorous evaluation.
Replication of a computational model demonstrates that the results of the original model were
not an exceptional occurrence, helps to increase our confidence in the validity of its behaviour,
and is a first step toward extending the model to address a novel question. Replicating a model
in a different computer language to the original model can also help ensure that model behaviour
is independent of any implementation details specific to a particular programming language.
3 Process

  1. Select 代 写grid-based NetLogo modelone of the following NetLogo models (available from the NetLogo Model Library
    in the File menu of NetLogo):
    ˆ Ethnocentrism (Social Science);
    1
    ˆ Rebellion (Social Science);
    ˆ Muscle Development (Biology);
  2. Explore the behaviour of the NetLogo model you have selected. How does it work? What
    behaviours can this model exhibit? Which outputs of the model can be measured? What
    assumptions does the model make about the system that it represents?
  3. Design and implement an equivalent model in Java or Python. You should start by implementing the simplest possible prototype of the system and ensure that it works well
    before proceeding with more complex designs.
  4. Experiment with your new model. Can you replicate the same behaviours as the original NetLogo model? Why/why not? Your experiments should investigate the effects
    of model parameters on model behaviour. Appropriate statistical analysis of the output
    of both models, the original NetLogo model and the one you implemented, is expected;
    e.g., reporting and comparing some output measures of the models across multiple model
    runs and parameter values; this includes choosing sensible approaches to measuring the
    behaviour of the models by measuring their outputs.
  5. Formulate a question about the NetLogo model you have selected that requires an extension
    to the model in order to be answered (the suggestions in model documentation may provide
    some ideas, but I encourage you to generate your own question). Extend your model
    accordingly by adding a novel feature/behaviour. Design and run one or more experiments
    that enable you to answer the question you formulated. Finally, present and discuss the
    results of the experiments.
  6. Write a report on your Assignment, as described below.
    Please note marks will not be allocated for the development of new libraries or GUI interfaces
    – your model only needs to generate numerical output (e.g., as a CSV file).
    By the proposal deadline, you should have chosen a NetLogo model, done background reading
    on the real world system represented by the model, explored the behaviour of the NetLogo
    model, started thinking about the design of your Java or Python model, and thought about the
    breakdown of tasks and how you will allocate these amongst the members of your group.
    4.1 Proposal submission
    The proposal is to be submitted via LMS by the proposal deadline (above). The proposal
    (named A B C proposal.pdf, where A, B, and C are the last names of each group member) is
    expected to be 1-2 pages (11pt font, reasonable margins) and contain:
    ˆ A descriptive overview of the model you are replicating (e.g., purpose, users);
    ˆ The design of the existing model (e.g., states, update rules);
    2
    ˆ
    ˆ
    The design of your model (e.g., classes, attributes, methods);
    The experiments that you intend to run (optionally, some results from the NetLogo model
    or early results from your model);
    The proposal is worth 0 marks. However, failure to submit it by the deadline will
    incur a 1 mark deduction in your final m ark. T he p roposal w ill a lso c onstitute a ‘first
    draft’ of your report for final assessment.
  7. A zip file (named A B C code.zip, where A, B, and C are the last names of each group
    member, in the same order as in the zip file name) containing:
    ˆ All source code developed in your Assignment.
    ˆ Any scripts required to run the experiments documented in your report.
    ˆ Clear instructions describing how to build and run your model (see note below about
    not requiring 3rd party dependencies).
    Code will be tested in a Java SE 22 or Python 3.12 environment, and hence must be compliant
    with Java SE 22 or Python 3.12. NB: marks will be deducted if it is not clear how to
    build and run your model, or your model does not build and run without external
    dependencies! For example, running your code should not require the use of any
    third party libraries, IDEs, or build tools. If you use an IDE to develop your code,
    you must check to ensure that it can be built and run independently of the IDE.
    3
    1.ˆˆˆˆ
    4
    A Criteria
    A.1 Report
    Note that achieving full marks for a criterion requires that it is satisfied to an exceptional level!
    Criterion Description Marks
    Background & Model You have clearly stated the aims and objectives of your study
    and provided an appropriate review of background material
    on your chosen model, including justifying why the system
    modelled is of interest and is a “complex” system. You have
    clearly described the design of your model, including describing the components and interactions, how the model relates
    to the real world, and how you have designed your Java or
    Python implementation.
    5 marks
    Replication & Extension You have designed and executed appropriate experiments to
    explore and compare the behaviour of your Java or Python
    model and the original NetLogo model. You have described
    a range of scenarios used in your experiments. You have
    designed and implemented an appropriate extension to your
    Java or Python model, specified a question that this extended model allows you to address, and used your model
    to address this question.
    5 marks
    Results & Discussion You have clearly presented the results of your investigations
    using clear and appropriate tables and figures. You have
    interpreted and discussed the results of your experiments,
    the outcome of the replication exercise, and the answer to
    the question addressed by your model extension.
    5 marks
    Writing Your writing is well-expressed, clearly proof-read and
    demonstrates a coherent development of ideas. Your appendix outlines the successes and challenges involved in
    achieving your group’s plan.
    3 marks
    Total 18 marks
    A.2 Code quality
    Criterion Description Marks
    Design The design of the model is of high quality – clear and succinct – and
    is potentially extensible (illustrated by the extension you choose to
    implement)
    3 marks
    Code formatting The implementation adheres to the code format rules (Appendix B). 2 marks
    Executability The submitted code builds and runs, and generates output consistent
    with the results provided in the report.
    2 marks
    Total 7 marks
    5
    B Code format rules
    Your implementation must adhere to the following simple code format rules:
    ˆ Every Java or Python class must contain a comment indicating its purpose.
    ˆ Every function or method must contain a comment at the beginning explaining its behaviour. In particular, any assumptions should be clearly stated.
    ˆ Constants, classes, and instance variables must be documented.
    ˆ Variable names must be meaningful.
    ˆ Significant blocks of code must be commented.
    However, not every statement in a program needs to be commented. Just as you can write
    too few comments, it is possible to write too many comments.
    ˆ Program blocks appearing in if-statements, while-statements, etc., must be indented consistently.Each line should contain no more than 100 characters.
    WX:codinghelp