论文笔记《Accelerating Primal Solution Findings for Mixed Integer Programs Based on Solution Prediction》

1. 引言

1.1 背景

  1. 疫情期间,面对收到影响的运输网络,如何规划路由与车线,利用有限的货车资源尽快将积压的包裹运达目的地,这是物流领域典型的组合优化问题,该问题可建模为混合整数规划问题 (Mixed Integer Programing, MIP),并利用求解器进行求解。
  2. 问题:
    (1)快递网络规划问题通常规模很大,包含决策变量和约束条件众多,求解耗时,很难在短时间内求解完成并应用到线上。
    (2)快递网络每天在运转,相似的组合优化问题也需要反复求解,当前尚无处理相似MIP问题的通用方法,每天计算时通常将其视为全新的求解任务

因此,如果能从历史求解中,采用机器学习的方法学习到类似MIP问题的结构特点,则有望大幅提高求解效率。

1.2 文献综述

本文的文献综述主要从两个角度阐述:

  1. 将ML(Machine Learning) 和OR(Operations Research,运筹学) 集成以解决CO(combinatorial optimization,组合优化) 问题的研究情况
  2. 将ML应用到MLP中,以提高MLP(Mixed Integer Programming,混合整数规划) 效果的研究情况

1.3 创新点

基于上述文献综述,引出本文不同于以往工作的两个方面:

  1. 以往研究解决CO问题的方法,都是基于特定的问题结构。本文提出的框架不限于特定的问题类型,而是可以应用到绝大多数的可以用MLP建模的CO问题,即适用范围更大。
  2. 以往研究为提高MLP求解效果,均采用人工特征,并且独立对每个变量进行预测。然而实际上,变量的解与目标函数、约束密切相关,因此我们提出三分图(a tripartite graph) 以表征MIP问题,在不需要人工介入的情况下,基于 graph embedding technique 以提取变量、约束、目标函数之间的相关性。

2. 求解框架

2.1 生成训练数据

针对组合优化问题,产生 p p p 个MIP实例 I = { I 1 , . . . , I p } \mathbb{I}=\left \{I_1,...,I_p\right \} I={ I1,...,Ip},每个 I i I_i Ii 都存有变量特征、约束特征、边界特征,利用迭代近邻搜索方法(the iterated proximity search method)计算每个 I i I_i Ii 中的二元变量的label。

在这里插入图片描述
决策变量的索引集 U : = { 1 , . . . , n } \mathcal{U}:=\left \{1,...,n\right \} U:={ 1,...,n} ,被分割成 ( B , Q , P ) (\mathcal{B,Q,P}) (B,Q,P) ,其中:

  • B \mathcal{B} B:二进制变量
  • Q \mathcal{Q} Q:一般整数变量
  • P \mathcal{P} P:连续变量

这样做的目的是预测 最优情况下 二元变量 x i , j ∈ B x_i, j\in \mathcal{B} xi,jB 取值为1或0的概率。

2.2 GCN模型

针对每个 I i I_i Ii 根据其MIP公式,产生一个三分图。基于已知的特征、label、三分图,训练GCN网络,以求得二元变量预测值。

2.2.1 产生三分图

三分图 G = { V , E } \mathcal{G=\left\{V,E\right \}} G=

<think>好的,我现在需要帮助用户理解如何通过基于树的算法加速t-SNE用于行人重识别。首先,我得先理清楚用户的问题。用户提到了两篇引用,引用[1]和引用[2],分别是关于加速t-SNE的树算法和行人重识别的深度余弦度量学习。用户希望将这两者结合起来,即用树算法加速t-SNE在行人重识别中的应用。 首先,我需要明确t-SNE在行人重识别中的作用。通常,行人重识别会使用深度网络提取特征,比如引用[2]中的方法,得到高维特征向量。为了可视化这些高维数据,t-SNE常被用来降维到2D或3D,帮助分析特征分布。但t-SNE计算复杂度高,尤其是对于大规模数据,所以需要加速方法。 接下来,用户提到的基于树的算法,具体是Barnes-Hut和dual-tree算法。引用[1]中这两种方法将t-SNE的时间复杂度从O(N²)降到O(N log N)。我需要解释这两种算法如何工作,以及它们如何应用到行人重识别的流程中。 然后,结合行人重识别的流程,可能需要将加速后的t-SNE用于特征可视化,帮助调整模型或分析不同摄像头下的特征分布。例如,引用[2]中的网络提取128维特征,用t-SNE降维后,可以观察特征在超球面的分布情况,进而优化模型。 此外,用户可能还关心实际应用中的步骤,比如如何集成树算法到现有的t-SNE实现中,或者是否有现成的库可以使用。比如,引用[3]提到PyTorch和TensorFlow,可能用户使用的框架是PyTorch,是否有相关的库支持加速的t-SNE。 还需要考虑可能的挑战,比如保持降维后的结构准确性,避免加速算法影响可视化效果。同时,行人重识别中的数据规模较大,树算法能有效减少计算时间,但需要调整参数,如Barnes-Hut中的theta值,平衡速度和精度。 最后,生成相关问题时要覆盖性能优化、参数调整、应用场景比较等,帮助用户深入理解。</think>### 通过基于树的算法加速t-SNE用于行人重识别的技术路径 #### 1. **核心原理** - **t-SNE加速方法**:基于树的算法(如Barnes-Hut算法[^1])通过近似计算高维数据点之间的相似性,将计算复杂度从$O(N^2)$降低到$O(N \log N)$。具体来说,Barnes-Hut利用空间划分树(如四叉树或KD树)对远距离数据点进行聚合近似,减少梯度计算量。 - **行人重识别特征分析**:在行人重识别中,深度网络(如引用[2]中的结构)会提取128维的归一化特征向量。通过加速后的t-SNE可将这些高维特征投影到2D/3D空间,辅助分析跨摄像头场景下的特征可分性。 #### 2. **实现步骤** 1. **特征提取**:使用预训练的深度度量学习模型(如基于余弦相似度的网络[^2])生成行人图像的特征向量。 2. **树结构构建**: - 对特征向量构建KD树或Ball Tree,加速近邻搜索 - 通过Barnes-Hut算法优化t-SNE的梯度计算: $$ \frac{\partial C}{\partial y_i} = 4\sum_j (p_{ij} - q_{ij})(y_i - y_j)(1 + \|y_i - y_j\|^2)^{-1} $$ 其中$p_{ij}$为高维相似度,$q_{ij}$为低维相似度 3. **可视化分析**:将加速后的t-SNE嵌入结果用于: - 评估不同摄像头域的特征分布对齐程度 - 验证特征归一化(如超球面投影)的有效性 #### 3. **参数优化建议** | 参数 | 典型值 | 作用 | |------|--------|------| | perplexity | 30-50 | 控制局部/全局结构平衡 | | Barnes-Hut theta | 0.5-0.7 | 平衡精度与速度 | | 迭代次数 | 1000-2000 | 保证收敛稳定性 | #### 4. **性能对比** ```python # 伪代码示例:基于树加速的t-SNE流程 from sklearn.manifold import TSNE import torchvision.models as models # 加载预训练模型(引用[2]结构类似) model = load_pretrained_reid_model() # 提取特征 features = model.extract_features(dataset) # 加速t-SNE嵌入 tsne = TSNE(n_components=2, method='barnes_hut', angle=0.5) # Barnes-Hut参数 embeddings = tsne.fit_transform(features) ``` #### 5. **应用场景** - 跨摄像头特征分布可视化 - 难样本挖掘(Hard Example Mining) - 模型迭代的快速验证
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值