Il KPC with forfeit pairs è una variante del Knapsack Problem with Conflicts, nella quale le coppie in conflitto possono essere prese con una penalità sul costo finale. Il seguente lavoro, utilizza due solver: OR-tools e Gurobi, per modellare una soluzione ai problemi proposti.
La parte principale del programma è dentro la directory src/.
Il file src/KPCforfeit.py esegue OR-tools per trovare una soluzione al problema presentato, mentre src/KPCforfeit_gurobi.py esegue Gurobi.
I programmi richiedono l'utilizzo di OR-Tools e di Gurobi.
Nota: Se si esegue una pipenv, assicurarsi che la versione di gurobipy coincida con la versione di Gurobi installata (ad esempio, se si è installato Gurobi 12, il comando per installare gurobipy diventa pip install gurobipy=="12.0.1".
Per eseguire il programma con le istanze inserite, si deve clonare il git in locale tramite git clone. A questo punto si deve cambiare la directory di lavoro ed è possibile invocare l'interprete Python per eseguire i due programmi
cd src/
python3 KPCforfeit.py # KPCforfeit_gurobi.py per eseguire la versione con GurobiPer vedere le opzioni da utilizzare:
python3 KPCforfeit.py --help
python3 KPCforfeit_gurobi.py --help