top of page

UK3652

**Evolutionary & Adaptive Computing - COM00037H**

**Open Individual Assessment**

---

### Part 1: Evolution of a Function (50 Marks)

**Scenario**

The goal is to approximate the function predicting the number of e-scooters hired given a particular date, hour, holiday, and weather information. The dataset contains hourly rental counts, weather data, and holiday information.

**Task**

Use an evolutionary algorithm to evolve a function that predicts the number of e-scooters required given time, day, and weather information. Choose either Genetic Programming or a Genetic Algorithm evolving a neural network.

**Implementation Rules:**

1. **Python & DEAP Library:** You must use Python and the DEAP library.
2. **Approach:** Either Genetic Programming or a neural network representation.
3. **Notebook:** Submit a Colab or Jupyter notebook with runnable code for your evolved solution.
4. **Evaluation:** Thoroughly evaluate the performance of the evolved solution in terms of accuracy, precision, etc.

**Data**

The dataset `eScooterDemand.csv` contains the following variables:
1. Date: day/month/year
2. Count: Number of e-scooters rented
3. Hour: Hour of the day
4. Temp: Temperature in Celsius
5. Humidity: %
6. Windspeed: m/s
7. Visibility: 10m
8. Dew point: Celsius
9. Sunshine: MJ/m²
10. Rain: mm
11. Snow: cm
12. Seasons: Winter, Spring, Summer, Autumn
13. Public Holiday: Yes/No
14. HireAvailable: Yes/No

**Tasks to Complete:**

1. **Description of the Algorithm (15 Marks)**
   - Fully describe the chosen representation for individuals and the algorithm.
   - Provide a clear justification for all design choices.

2. **Quality of Code (5 Marks)**
   - Provide runnable code using Python and DEAP.
   - Ensure the code is well-commented and demonstrates competent use of DEAP features.

3. **Investigation of Parameters and Representation (10 Marks)**
   - Systematically investigate the effect of parameters and representation.
   - Present statistics to support decisions about parameters.

4. **Evaluation of Solution (20 Marks)**
   - Thoroughly evaluate your algorithm(s).
   - Present summary statistics and plots in your notebook to support the effectiveness of the solution.
   - Provide appropriate interpretation and discussion of results.

### Marking Criteria

| Criterion                                   | Marks | Sophisticated               | Satisfactory              | Needs Work                    |
|---------------------------------------------|-------|-----------------------------|---------------------------|-------------------------------|
| **Description of the Algorithm**            | 15    | 15-11: Clear, robust design | 10-6: Mostly clear        | 5-0: Unclear or inappropriate |
| **Quality of Code**                         | 5     | 5-4: Runnable, competent    | 3-2: Runnable, basic      | 1-0: Not runnable or unclear  |
| **Investigation of Parameters & Representation** | 10    | 10-7: Clear, linked to principles | 6-4: Some investigation | 3-0: Basic or none            |
| **Evaluation of Solution**                  | 20    | 20-14: Thorough, insightful | 13-8: Partial evaluation  | 7-0: Little or none           |

---

### Part 2: Evolving Herding Dogs (50 Marks)

**Scenario**

Implement a multi-agent environment with two types of agents: sheep and dogs. The environment is a square, two-dimensional, wrapped around an orthogonal grid made of \(N \times N\) patches. At the start, \(S\) sheep and \(D\) dogs are placed randomly. Both types of agents can move in the four cardinal directions or stay in place. The environment updates in rounds where all agents plan their moves, which are executed simultaneously.

**Implementation Tasks:**

1. **NetLogo Files:**
   - `EVAC2-train.nlogo`: Run the evolutionary algorithm with a relevant description in the Info section.
   - `EVAC2-test.nlogo`: Contains evolved behavior for each dog and allows performance testing. Include a report on results and comments in the Info section.

---

### Submission Instructions

**File Requirements:**

- **Single Zip File:** Name the zip file after your exam number, e.g., `Yxxxxxxx.zip`.
- **Part 1:** 
  - `EVAC1.ipynb`: Jupyter or Colab notebook.
  - `EVAC1.pdf`: PDF of the executed notebook.
- **Part 2:** 
  - `EVAC2-train.nlogo`
  - `EVAC2-test.nlogo`
  - Additional image/data files if needed.

**Note:** Discrepancies between the notebook and PDF will result in the notebook being used for marking. Only zip archives are accepted. Ensure auxiliary files are in the same folder as the notebook.

---

### Learning Outcomes

- Evaluate architectural models relevant to the development of enterprise applications.
- Select and apply programming design patterns relevant to a particular application.
- Elucidate and evaluate factors relevant to the security of enterprise applications.
- Elucidate and evaluate factors relevant to interoperability in enterprise applications.
- Evaluate software tools used to support the development of enterprise applications.

**Questions:**

- Use the GitHub team discussion forum for general queries.
- Submit requests as issues through GitHub.
- Email individual questions if necessary.

**Submission Deadline:**

bottom of page