This project implements 4 algorithms (Brute Force, Branch And Bound, Beam Search and Genetic Algorithm) to solve the classic Knapsack Problem.
The Knapsack Problem is a combinatorial optimization problem where you have sets of items, each item having a weight and value. You will be given a capacity, which represents the maximun weights you can take. Your goal is to maximize values while keep the weights within a capacity threshold.
The classic Knapsack have a weight and value labeled with each items. However, this project add a new modification to this problem. Each items will have another attribute called label. Your goal is still the same but with additional threshold is that you have to ensure that all labels exist in this solution.