This repository contains the code, datasets, experiments, and figures developed for the thesis Graph-Generative-Models-for-Optimization-Instance-Generation.
The project investigates the use of graph generative models, with a particular emphasis on diffusion models, for generating instances of combinatorial optimization problems. The main focus is on the Maximum Independent Set (MIS) problem, exploring conditional generation strategies based on structural embeddings and persistent homology.
.
├── Graph_Examples/
├── Instance_Generator/
├── MIS_Generation_Evaluation/
└── README.md
Contains small illustrative examples and figures used in the thesis.
- Maximum Independent Set (MIS)
- Maximum Cut
- Traveling Salesman Problem (TSP)
- Graph Coloring
- Bimodal graph distributions
Graph_Examples/
├── bimodal.py
├── problems.py
└── plots/
These scripts are used primarily for producing figures appearing in the thesis.
The core implementation of the graph generation framework.
Instance_Generator/
├── configs/
├── data/
├── generated/
├── src/
├── tools/
└── scripts/
Training is launched through:
python src/main.pyModel and experiment settings are defined in:
configs/
which contains:
- Dataset configurations
- Model configurations
- Training hyperparameters
- Experiment settings
python src/generate_graphs.pypython src/generate_conditioned_graphs.pyGenerated samples will be stored in:
generated/
This directory contains the experiments and analysis used to evaluate generated graph instances.
MIS_Generation_Evaluation/
├── data/
├── experiment_new/
├── models/
├── create_datasets.ipynb
└── create_plots.ipynb
The folder
experiment_new/
contains figures used in the thesis, including:
- PCA projections
- Kernel density estimates
- Performance comparisons
- Embedding distributions
- Bimodal generation results
- Degeneracy analyses
create_datasets.ipynb
create_plots.ipynb
These notebooks reproduce many of the figures presented in the thesis.
python src/main.pyusing one of the configuration files inside:
configs/
Unconditional generation:
python src/generate_graphs.pyConditional generation:
python src/generate_conditioned_graphs.pyUse the notebooks and scripts inside
MIS_Generation_Evaluation/
to:
- Compare original and generated distributions.
- Visualize embeddings.
- Compute graph statistics.
- Reproduce thesis figures.
This work combines ideas from:
- Graph Generative Models
- Diffusion Models
- Graph Neural Networks
- Combinatorial Optimization
- Maximum Independent Set
- Conditional Generation
- Persistent Homology
- Topological Data Analysis
- Representation Learning
- Distribution Matching