A growing collection of small projects and notebooks using Genetic Algorithms (GAs) to solve various problems.
Notebook | Description |
---|---|
evolving_a_string | Evolves a random string into a target word or sentence using basic GA principles. |
knapsack_problem | Solves the classic Knapsack Problem with comparison to the brute force approach. |
Genetic Algorithms are optimization techniques inspired by natural selection. They evolve a population of cadidate solutions through:
- Selection - choosing the best individuals for reprodution
- Crossover - combining parts of parents to create offspring
- Mutation - introducing random changes to maintain diversity
- Fitness Evaluation - scoring how well each solution performs
They are particularly useful for problems where brute-force or exact methods are computationally impractical.
- Clone this repo
git clone [email protected]:goncalooliveirasilva/genetic-algorithms.git
cd genetic-algorithms
- Create and activate Conda environment (optional)
conda env create -f environment.yml
conda activate ga-env
- Launch Jupyter
jupyter lab
This project is licensed under the MIT License. See the LICENSE file for details.