使用进化算法实现一个产品原型,解决场景问题。
Portfolio Assessment Details
The portfolio is comprised of two elements, one each for agent-based
simulation and evolutionary algorithms. You must complete both elements. In
each element, you must analyse a given problem, design a solution, implement
and test your solution, and write up your results as a report. Formative
feedback will be provided during lab-based practical sessions, where students
will work on weekly-set tasks.
Please note: the page limit for each element report is ten pages. Do not
exceed this limit for either report. Anything over the ten page limit will not
be marked. You should not feel obliged to use the full ten pages per element
report; it is a limit, not a target. Please ensure that you use a sensible
font size (]= 10 pt) and reasonable margins/line spacing.
Element 1: Software Agents
For this portfolio element, you must design an agent-based simulation,
implement it, use your implementation to explore the possibilities afforded by
the simulation, and write a report describing this work (from design through
to analysis).
This element is used to assess learning outcome 3: Formulate and implement
agent-based simulation solutions to specific problems.
Two possibilities for your agent-based simulation are given here. You should
choose one to complete.
Possible Scenarios
- A game of competitive evolution.
For this simulation, you should implement a two-dimensional space as your
world, with agents designed by the game player to populate the world. Agents
have a fixed total number of resources which can be divided among several
characteristics (e.g. attack strength, defence strength, metabolism rate, …),
as specified by the player. The agents then compete in the world to survive.
There are several decisions to be made in the design of this simulation: the
choice of characteristics and how to balance them is the most obvious, but you
should also consider just what the 2D world would be (e.g. does it provide
resources?), how the agents will interact with each other and the world, and
more. - A simulation of energy supplier choice.
For this simulation, you should implement a society of people or households
who can make decisions about their energy supplier (based, for example, on
factors such as price, customer service, reliability, energy type (e.g. green
versus coal-fired electricity). Agents have individual preferences, which may
change over time due to experience and influence of other agents. This
simulation will require a social network of agents (to model influence).
Design decisions include (but are not limited to) how this social network is
constructed, and how agents make decisions regarding supplier switches.
Completion of this Portfolio Element
You will spend the second half of term 1 working on this portfolio element in
lab classes for this unit, and should expect to spend additional time outside
of scheduled classes working on it. Detailed instructions about the various
stages involved in completing this work will be given in class, while an
outline is given on the following pages. Additional support is available with
Dr Norling during scheduled contact hours, or at other times by appointment.
The laboratory classes in the first half of term will introduce the Repast
agent toolkit, which you will use to complete this project. The toolkit comes
with many example simulations, and you may find these useful when considering
the design of your own simulation.
Design
The details of the design will very much depend upon the scenario that you are
modelling, but generally, the design of an agent-based simulation consists of
three key parts:
- The world in which the agents will be situated.
- The agents themselves.
- The presentation of data.
Do not ignore the third point. Agent-based simulations usually evolve over
time. Which data is important to look at over the period of a simulation? How
should it be displayed?
Implementation
You are expected to implement your simulation using the Repast agent toolkit,
which will be introduced in laboratory classes during the first few weeks of
term. Repast provides a wealth of tools to build different types of agents,
and visualise data. Make as much use of these as possible, rather than trying
to reinvent the wheel.
Your code must be submitted for assessment. Please ensure that it not only
performs correctly, but is well-structured and readable. (See details of what
is being looked for in the marking rubric on later pages, and seek formative
feedback from Dr Norling.)
Report
Your report will also be submitted for assessment. See the marking rubric to
ensure that you address all the marking criteria. Your report should include
the following headings:
- Introduction - description of the scenario
Flesh out the scenario that you have chosen, as the introduction to your
report. Essentially here you should be setting out what you would like to
capture in your simulation, and what you would like to achieve with the
simulation. - Design
In this section, describe the design of the three components of your
simulation (world, agents, visualisation of data). - Implementation
In this section, discuss any particularly challenging parts of the
implementation of your simulation, or places in which you had to modify your
design in order to implement your simulation. - Analysis
With your implementation complete, what did you explore, and what were the
results of your exploration. Make sure that you complete your implementation
in a timely manner so that you can get formative feedback in class about what
sort of exploration you should be performing.
Timeline
The suggested timeline for completion of your work is given below. You are
free to start on your work earlier if you wish, but should make sure you
complete the exercises that introduce the Repast agent toolkit before you
start your design, as the design should be influenced by the capabilities of
the toolkit that you are using.
Week (Term 1) | Activity |
---|---|
1-6 | Introduction to Repast and examples. |
7 | Choice of scenario and design. |
8 | Implementation. |
9 | Implementation. |
10 | Implementation/Exploration. |
11 | Exploration. |
12 | Write up and submission. |
Submission
Your work should be submitted via the link provided for this portfolio element
on Moodle, in the area corresponding to the last week of term 1. You should
submit your code and the report as a single archive file (zip, tar or similar)
via the submission link.
Element 2: Evolutionary Algorithms
For this portfolio element, you must design an evolutionary algorithm solution
to a specific problem, implement your solution, use your implementation to
investigate aspects of the problem, and write a report (from design through to
analysis).
This element is used to assess learning outcome 4: Apply evolutionary
algorithms to the solution of specific problems.
Completion of this Portfolio Element
You will spend the second half of term 2 working on this portfolio element in
lab classes for this unit, and should expect to spend additional time outside
of scheduled classes working on it. Detailed instructions about the various
stages involved in completing this work will be given in class, while an
outline is given on the following pages.
Additional support is available from Prof. Amos during scheduled contact
hours, or at other times by appointment. The laboratory classes in term 2 will
introduce evolutionary algorithms in Processing, which you will use to
complete this project.
This element concerns the problem of packing circles into a given space.
Circle packing is a challenging computational problem, which has applications
in a number of different domains (e.g., engineering). For this component of
the coursework, you will be required to solve specific instances of the circle
packing problem, using an evolutionary algorithm approach. A certain
proportion of the marks are allocated to investigations which go beyond the
basic implementation and write-up.
Design
Your design should consider the following elements: (1) the encoding scheme
you will use for the problem, (2) your fitness function, and (3) details of
any local search you deem necessary.
Implementation
You must implement your solution using an evolutionary algorithm written in
Processing, which will be introduced in laboratory classes during the first
few weeks of term. You will be supplied with a number of reference instances
with known solutions (in order that you may benchmark your implementation),
along with a set of test problem instances on which your code must be run.
Your code must be submitted for assessment. Please ensure that it not only
performs correctly, but is well-structured and readable. (See details of what
is being looked for in the marking rubric on later pages, and seek formative
feedback from Prof. Amos.)
Report
Your report will also be submitted for assessment. See the marking rubric to
ensure that you address all the marking criteria. Your report should include
the following headings:
- Introduction - description of the problem: Briefly describe the circle packing problem, and give a short review of existing approaches to its solution.
- Design: In this section, describe your proposed approach to solving the problem, and present a design of the three components of your solution (encoding, fitness function, local search (if applicable)).
- Implementation: Describe how you translated your design into Processing code, with specific reference to the data structures and classes used, how the fitness function and any local search was implemented, and any other salient features of your code.
- Results and exploration
Results: Demonstrate that your solution works correctly on the reference
instances, and give your results for the test instances. Exploration: Give the
result of any investigations you performed with respect to further
optimisations of the code, the effect of different parameter settings on the
speed/quality of your solution, comparison between your code and other
methods, etc.
Timeline
The suggested timeline for completion of your work is given below. You are
free to start on your work earlier if you wish, but should make sure you
complete the exercises that introduce evolutionary algorithms in Processing
before you start your design, as the design should be influenced by what you
learn from completing the labs.
Week (Term 2) | Activity |
---|---|
1-3 | Introduction to evolutionary algorithms in Processing. |
4-5 | Continue introduction, design. |
6-8 | Implementation. |
9-10 | Analysis and exploration. Write-up and submission. |
Submission
Your work should be submitted via the link provided for this portfolio element
on Moodle, in the area corresponding to the last week of term 2. You should
submit your code and the report as a single archive file (zip is preferable,
please do not submit RAR files) via the submission link, with the filename
format Surname_Firstname.zip.