Skip to content

EvoCut: Automatic generation of acceleration cuts for integer programs via evolutionary search and LLMs.

Notifications You must be signed in to change notification settings

milad1378yz/EvoCut

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EvoCut

Python Stars Issues Repo Size Top Language

EvoCut is a Python library that accelerates Mixed-Integer Linear Programming (MILP) by injecting problem-specific cutting planes into the LP relaxation. These cuts reduce the feasible set of the LP relaxation and improve solver efficiency.

Installation

1) (Optional) Create a virtual environment

python -m venv .venv
source .venv/bin/activate    # Windows: .venv\Scripts\activate

2) Install dependencies

pip install -r requirements.txt

Note: Python 3.9 recommended. Requires a licensed MILP solver (e.g., Gurobi).


Configuration

In the configs/ directory:

  1. Copy each file whose name contains _template.
  2. Rename the copy (remove _template).
  3. Fill in credentials and hyperparameters as needed.

Data Preparation

Use the relevant preprocessing script in data/:

python data/data_prepare<suffix>.py

Replace <suffix> with the correct option for your dataset variant (e.g., rand).


Usage

Run EvoCut on a problem instance:

python src/main.py <args>

See all options with:

python src/main.py -h

Verification of Cuts (OSP)

To check the optimal solution preservation rate of generated cuts:

python experiments/OSP_cuts.py <args>

Evaluation on Test Data

Evaluate EvoCut on held-out instances:

python experiments/evaluate_cut.py <args>

Reproducibility

  • Determinism: seeds are configurable in configs or CLI flags.
  • Hardware/solver versions may affect runtime but not correctness.
  • Minimal dependencies ensure reproducibility across machines.

About

EvoCut: Automatic generation of acceleration cuts for integer programs via evolutionary search and LLMs.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages