开源项目 `learn2branch` 使用教程

开源项目 learn2branch 使用教程

learn2branchExact Combinatorial Optimization with Graph Convolutional Neural Networks (NeurIPS 2019)项目地址:https://gitcode.com/gh_mirrors/le/learn2branch

1、项目介绍

learn2branch 是一个用于精确组合优化的开源项目,它利用图卷积神经网络(Graph Convolutional Neural Networks, GCN)来解决组合优化问题。该项目在 NeurIPS 2019 上发表,并提供了官方实现。主要目标是帮助用户通过机器学习方法来优化组合问题,特别是在分支定界算法中的分支决策。

2、项目快速启动

安装

首先,克隆项目仓库到本地:

git clone https://github.com/ds4dm/learn2branch.git
cd learn2branch

安装必要的依赖:

pip install -r requirements.txt

生成实例

生成 MILP 实例:

python 01_generate_instances.py setcover

生成监督学习数据集:

python 02_generate_samples.py setcover -j 4  # 使用4个CPU

训练模型

训练图卷积神经网络模型:

for i in {0..4}; do
  python 03_train_gcnn.py setcover -m baseline -s $i
  python 03_train_gcnn.py setcover -m mean_convolution -s $i
  python 03_train_gcnn.py setcover -m no_prenorm -s $i
done

训练竞争对手模型:

for i in {0..4}; do
  python 03_train_competitor.py setcover -m competitor_model -s $i
done

3、应用案例和最佳实践

应用案例

learn2branch 主要应用于组合优化问题,如集合覆盖问题(Set Covering)。通过使用图卷积神经网络,项目能够有效地预测分支定界算法中的最佳分支决策,从而提高求解效率。

最佳实践

  • 数据预处理:确保生成的实例和数据集质量高,这对于训练模型的性能至关重要。
  • 模型选择:根据具体问题选择合适的模型架构,如 baseline、mean_convolution 或 no_prenorm。
  • 超参数调优:通过实验调整学习率、批大小等超参数,以获得最佳模型性能。

4、典型生态项目

learn2branch-ecole

learn2branch-ecolelearn2branch 的一个重实现版本,使用 Ecole 库和 PyTorch 框架。它提供了更简洁和高效的实现,并且易于扩展和定制。

安装
git clone https://github.com/ds4dm/learn2branch-ecole.git
cd learn2branch-ecole
pip install -r requirements.txt
使用

生成数据集:

python 02_generate_dataset.py setcover

训练 GNN 模型:

python 03_train_gnn.py setcover

评估模型:

python 04_evaluate.py setcover

通过这些步骤,用户可以快速上手并利用 learn2branchlearn2branch-ecole 解决复杂的组合优化问题。

learn2branchExact Combinatorial Optimization with Graph Convolutional Neural Networks (NeurIPS 2019)项目地址:https://gitcode.com/gh_mirrors/le/learn2branch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹俐莉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值