Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Genetic Algorithm Meal Optimizer

A nature-inspired optimization project that designs healthy meals meeting multiple nutritional targets using a Genetic Algorithm, and benchmarks it against Cuckoo Search and Ant Colony Optimization.

Originally developed as an academic coursework project.

Overview

Given a dataset of foods — each described by its calorie, vitamin, and mineral content — the system searches for meal combinations that best satisfy a set of nutritional criteria. The core solver is a Genetic Algorithm built with the DEAP framework. Two further nature-inspired metaheuristics, Cuckoo Search and Ant Colony Optimization, are implemented as comparison baselines, and their performance is compared using statistical tests.

The optimization problem

Each candidate meal is scored by a fitness function that rewards meals falling within healthy ranges (thresholds informed by common WHO / NHS / USDA guidance):

Criterion Target range
Calories 500–800 kcal
Water-soluble vitamins ≥ 50 mg
Fat-soluble vitamins 5–25 mg
Beneficial minerals (iron, magnesium, potassium) ≥ 300 mg
Potentially unsafe minerals (sodium) ≤ 200 mg

Approach

  • Representation: linear chromosome, where each gene is one food item
  • Selection: roulette-wheel selection
  • Termination: 100 generations, or no fitness improvement for 10 generations
  • Genetic Algorithm implemented with DEAP, including a custom ("bespoke") mutation operator
  • Parameter tuning and population-diversity analysis
  • Comparison against Cuckoo Search (CSA) and Ant Colony Optimization (ACO), with statistical significance testing via SciPy

Repository structure

File Description
task1_data.py Dataset, Food / Meal classes, train/test split
task2_algorithm_setup.py Fitness function, chromosome encoding, CSV export
task3_genetic_algorithm.py Core Genetic Algorithm (DEAP)
task4_csa.py Cuckoo Search comparison
task5_parameter_tuning.py GA parameter tuning
task6_diversity_analysis.py Population diversity and summary statistics
task7_operator_enhancement.py Enhanced GA with custom mutation
task10.py Ant Colony Optimization comparison
*.csv Result logs and comparison outputs

Requirements

  • Python 3.9+
  • deap, numpy, scipy

Install dependencies:

pip install -r requirements.txt

Running

Run any task from inside the project folder, for example:

python task3_genetic_algorithm.py

The later tasks import from the earlier ones (e.g. the fitness function and dataset), so run them from within the project directory.

Tech stack

Python · DEAP · NumPy · SciPy

Author

Mariam — @mariamharoon17

About

Designs healthy meals against nutritional targets using a genetic algorithm, benchmarked against Cuckoo Search and Ant Colony Optimization.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages