Capital Budgeting
Company X is considering a list of six construction projects and the top management needs to eventually decide which construction project(s) to invest in order to maximize the total return. These six proposed construction projects, each of which runs for three years and has the following characteristics. The available budget is 2.5 millions for year 1 and year 2 respectively, and 1.5 millions for year 3.

You are required to develop a Genetic Algorithm (GA) to help the top management in deciding which construction project(s) to invest in order to maximize the total return. The proposed GA must cover the following aspects:
1. Variables and representation scheme (10 marks).
2. Parents and offspring population management models (10 marks).
3. Parent and survivor selection mechanism (10 marks).
4. Crossover and mutation operators (10 marks).
5. Initialization (10 marks).
6. Fitness function design and constraints management (10 marks).
7. Termination criteria (10 marks).
8. Parameter tuning (10 marks).
This assignment can be implemented using any of the programming languages, but preferably Java.
Use a maximum of 50 fitness function evaluations for each run, and report your results averaged over 20 runs (20 marks).