我们考虑在由独立飞机服务提供商运营的维修机库中安排一组飞机的问题。 停车场布局的总体安全裕度需要在有限的可用空间内最大化,通过每架飞机的单个离散安全裕量的加权和进行测量。 建立了一个混合整数线性规划模型,飞机的位置由位置控制二进制变量决定,该变量与一组修正的无位多边形(NFP)相关联。 由于飞机的非凸不规则形状,该模型涉及大量与修正的NFP相关的二进制变量。 默认的分枝定界算法在求解此类模型时效率低下,因为默认方法无法直接利用先前访问的解的不可行信息来更新边界。 开发了一种启发式算法来提供实际解决方案,并利用搜索过程中发现的中间不可行解来生成有效的近似不等式,从而缩小了最优性差距。 计算结果表明,在满足停止准则的情况下,不等式的添加提高了求解大量实例的计算效率,并缩小了最优性差距。
1.简介 由于飞机库维修活动越来越多地外包给独立的飞机服务公司,因此出现了在维修库中安排不同尺寸的飞机的问题[ 1 , 2 ]. 飞机维修问题可以从不同的角度来看待,包括航空公司、航线维修服务提供商、机库维修服务提供商和军事任务部门[ 2 – 12 ]. 从飞机服务公司的角度来看,在收到多个客户的飞机维护请求后,需要考虑在规划期间为哪一部分维护请求提供服务,以实现最大利润, 以及制定飞机停放布局,以将飞机移动操作期间的碰撞风险降至最低。 在实际操作中,从业者通常会一批收集具有类似维修时间的飞机子集,然后在维修库中安排该批次,以便于维修程序。 在单一航空公司运营的飞机维修基地背景下,有关维修计划问题的文献很少考虑机库容量的变化[ 13 ]即,在规划期间,由于飞机库设计阶段由于要维护的飞机类型有限,停机位已经预先确定,因此可以同时容纳在飞机库中的飞机数量。 然而,由于维修服务公司运营的维修基地在规划期内接收不同尺寸的飞机,机库容量不时变化,因此在规划期内优化机库空间至关重要。 飞机停机位安排问题(PSAP)旨在最大限度地提高机库利用率,并使机库中的飞机具有最大的总体安全余量。 在确定飞机停放在机库中后,我们的目标是通过以最大安全余量安排飞机停放来最终确定飞机停放布局[ 14 ]. 考虑到问题的复杂性,我们旨在提高先前研究中使用的启发式算法的计算效率[ 14 ]在启发式搜索过程中,通过建立基于中间不可行解的不等式组来确定具有最大总体安全余量的最优停车布局,或缩小具有挑战性的问题的最优差距。 给定一组飞机 为了解决这一问题,该问题的目标是最大化由每架飞机的单个安全裕度加权和测得的总体安全裕量,防止在机库维护操作前后批量移动操作期间发生碰撞的总体风险。
PSAP在文献中没有得到广泛研究,我们所知道的最密切相关的参考文献是指不规则的物品包装问题[ 14 ]根据Wäscher等人的分类[ 15 ]. 这里研究的问题可以看作是固定尺寸容器中二维不规则物品包装问题的扩展[ 15 , 16 ],因为飞机需要建模为不规则多边形,以准确测量容纳飞机的机库容量。 PSAP不同于一般的包装问题,后者旨在将物品尽可能紧凑地排列。 相反,PSAP旨在优化安排飞机的停放位置,同时在每对飞机之间保留适度的距离。 二维空间中的物品切割和包装问题因其在各个行业中的实际应用而在文献中得到了广泛的研究,此类包装问题可以分为规则物品包装问题或不规则物品包装[ 15 , 17 – 24 ]. 文献中提出了许多解决不规则物品包装问题的数学公式[ 25 – 30 ]. 非匹配多边形(NFP)广泛用于检测两个不规则项是否重叠[ 31 , 32 ],而其他方法也存在[ 33 ]. 处理不规则形状项目问题的主要困难在于,确定集装箱中每对飞机之间相对位置的大量二进制变量。 通常,使用当前方法解决包含10个以上不规则项目的实例会变得非常困难[ 26 ]. 在我们的问题中,我们假设每架飞机必须在允许的离散范围内选择一个单独的安全裕度 和 . 在这方面,有许多 NFP涉及提议问题的每个问题实例,使用现有方法非常具有挑战性。
许多启发式算法都是为了利用搜索过程中发现的不可行解而开发的。 例如,一些研究人员专注于二维空间中具有装卸约束的车辆路径问题(VRP),采用不可行解来开发启发式算法,并且与本文研究的问题有一些相似之处。 具体来说,这两个问题都有大量的候选解决方案需要探索,只有在确定所有决策后才能检查候选解决方案的可行性。 为了比较这两个问题,VRP必须首先确定每辆车的路线,而停机位安排问题必须首先确定每个飞机的单独安全裕度。 然后,有一组决策变量决定了两个问题中要放置在容器中的项目的位置。 由于这两个问题中的项目都安排在二维空间中,解决方案的可行性不能像经典指派问题那样由单个资源约束直接检查,而是需要用一组几何约束来检查,包括非重叠约束和边界约束。 为了利用在搜索过程中确定的这些不可行解决方案,可以消除一组未访问的、没有希望的候选解决方案,这些候选解决方案与那些确定的不可行解决方法具有相同的模式。 特别是,确定的不可行解决方案记录在列表中; 然后根据列表中的信息生成相应的不等式并输入到数学模型中,以消除具有相同模式的未访问的无希望解。 例如,Felipe等人[ 34 ]在启发式算法中使用中间不可行解来分散搜索过程,解决具有优先权和装载约束的车辆路径问题。 Iori等人[ 35 ]提出了一种基于分枝切割算法的求解二维约束车辆路径问题的精确方法。 记录可行性检查过程中确定的不可行路线,并将其转换为路堑,添加到原始问题中。 Hokama等人[ 36 ]开发了一种分支切割算法来处理主问题生成的可解包路径。 他们使用哈希表来记录先前访问的路线或子路线的可行性信息。 可以通过比较路线中的要素来检查暂定路线的可行性。 如果试探性路由与散列表中记录的不可行子路由具有相同的元素,则可以将试探性路径称为不可行路由,而无需使用分枝定界算法进行进一步检查。 存在一些启发式搜索策略来检测包装问题中给定解决方案的可行性,例如基于序列的启发式搜索[ 37 ],稳健的超启发式算法[ 38 ]矩形排样问题的递推算法[ 39 , 40 ]. 然而,随着多边形复杂性的增加,使用这些方法可能会导致陷入局部最优。 技术路线图组织如下:首先提出了一个数学模型,以制定飞机维修服务提供商背景下的飞机停机位安排问题。 由于涉及到大量的二元变量,数学模型只能在合理的时间内将小问题实例求解到最优,而仅凭数学模型,中大型实例是难以解决的。 为了给数学模型提供一个温暖的开始,并缩小数学模型的边界,开发了一种以数学模型为基础的针对大规模实例的启发式算法。 具体来说,启发式算法首先确定一个候选解,然后在启发式算法中引入基于分支和边界的可行性检查方法,以检查机库中待维护飞机组的单个安全裕度给定组合的可行性。 为了检验试探性解决方案的可行性,可行性检查方法将试探性解输入数学模型,并在模型中固定所有与安全边际相关的决策变量,然后实施模型以检查不可行性是否返回。 如果先前的候选解不可行,则启发式调整候选解,并且数学模型的热启动解将在启发式结束时确定。 在可行性检查过程中,在开始运行原始模型之前,记录识别出的不可行解,通过添加几种形式的不等式来排除不可行组合,从而进一步删减不可行解集,以提高数学模型的效率。 具体来说,开发了一组不等式来转换在启发式搜索过程中识别为模型中约束的记录的不可行解。 开发的方法已经在一家飞机维修服务公司的实际情况中的问题实例上进行了广泛测试。
本文的其余部分组织如下。 章节 2 描述了问题以及数学模型的符号和公式,这是启发式和不等式的基础。 此外,本节还进一步分析了问题的复杂性。 章节 三 给出了启发式方法和在启发式搜索过程中由不可行解导出的不等式。 章节 4 检查计算结果,并在第节中得出结论 5 .
2.飞机停机位安排问题 2.1. 问题描述 提出的问题可以定义为:我们得到了在短规划期内要维修的不同形状飞机的子集,这些飞机可以在满足最低安全裕度要求的给定维修机库中进行可行的安排; 即,每对飞机之间的最短距离至少等于或大于最小安全裕度。 图 1 介绍了一个由独立的飞机基地维修公司运营的典型维修机库,为不同的客户提供服务,并容纳不同形状和尺寸的飞机。 在这个问题中,每架飞机都必须选择一个单独的安全裕度,以利用机库中未使用的空间,从而将移动和维护操作期间的碰撞风险降至最低。 两个机库布局都可以容纳同一组飞机,但每架飞机的指定位置不同。 在图中 1 (a) ,即使有很多未使用的空间(图中的阴影区域 1 (a) )。 在这方面,本文研究的问题旨在扩大每架飞机的安全裕度,以便充分利用空余空间(图 1 (b) )。 安全裕度定义为机库中两架飞机之间的最短距离,该问题旨在通过放置在机库中的每架飞机的单个安全裕量的加权和来测量最大的总体安全裕值,如[ 14 ]. 在实际情况下,与中小型飞机相比,大型飞机更容易发生碰撞,因为大型飞机的机动性不如小型飞机。 在这方面,在实际操作中,较大飞机在保留较大安全裕度方面具有更高的优先级,目标函数中单个安全裕量的权重与每架飞机的面积相关。 在开发的数学模型中,为了在精度和计算效率之间进行权衡,对飞机安全裕度进行了离散化,我们还规定了各个下限( )和上限( )安全裕度分别代表最小安全要求和最大安全裕度,这两个安全裕度分别贡献了总体安全裕量,因为安全裕度太高不一定有助于总体安全,但只会增加解决问题时的二进制变量数量。
防止不规则项目重叠的方法是指无位多边形的机制[ 31 , 32 , 41 – 43 ],如图所示 2 (a) :P1和P2是两个简单的多边形,为了便于说明,我们将多边形P2的左下角表示为其参考点。 为了在P1和P2之间生成NFP,多边形P2在与P1保持接触的同时沿多边形P1的边界滑动,多边形P2的参考点的轨迹被记录为这两个多边形之间的非匹配多边形。 为了防止重叠,P2的参考点必须放置在无位多边形的外部或边界上。 为了在线性规划模型中描述NFP,将NFP外的区域划分为若干水平切片,每个水平切片由若干直线组成,这些直线可用线性方程表示。 因此,方程式 用于表示 英尺 形成 第k个 NFP外的切片[ 25 , 27 ]. 如果多边形的参考点 j个 放置在切片上 k个 ,则有以下几种形式的约束 ,表示切片 k个 被激活以施加相对位置要求。 对于每对飞机之间的非匹配多边形,由于其对称形状,我们通过飞机底部边缘的中间表示飞机的参考点。 为了在每对飞机之间实施规定的安全裕度,我们向外移动原始NFP的边缘,距离等于规定的安全裕度(图 2 (b) )和飞机参考点 j个 必须放置在修订后的NFP的外部或边界上。 对于一对飞机,用于分隔它们的安全裕度由该对飞机中安全裕量较大的飞机确定,如图所示 2 (b) ●●●●。 飞机 j个 个人安全裕度大于飞机 我 因此,与飞机安全裕度相关的修订NFP被激活,以分离这一对。
2.2. 问题的MILP公式 我们列出了问题公式的符号和决策变量。
符号 : 机库宽度 : 机库长度 : 飞机面积i : 飞机宽度i : 飞机长度i
决策变量 : 二进制决策变量,取值为1 if aircraft 我 放置在机库中,并留有安全余量 n个 ,否则为0 : 飞机参考点位置 我 关于二维空间中的x轴 : 飞机参考点位置 我 二维空间中的y轴 : 如果飞机的参考点为1,则取值为1的二进制决策变量 j个 放入切片中 , 否则为0 : 辅助决策变量,如果飞机之间的最短距离为1 我 和 j个 是 n个 和 激活,否则为0。
目标 :最大化总体安全裕度 不锈钢。 在问题公式中,目标函数( 1 )最大化整体安全边际。 约束集( 2 )-( 4 )是绑定约束。 约束( 5 )是按安全裕度分隔每对飞机的非重叠约束 n个 .变量 是二进制的,如果 在分离飞机时激活 我 和 j个 .约束( 12 )规定每架飞机必须在每对飞机的规定界限内取得安全裕度值。 是用于激活/停用具有安全裕度的修订NFP的辅助变量 n.(名词)。 约束( 11 )规定了一个条件,即只应激活一个修改后的NFP,以分离每对飞机。 根据问题描述,用于分隔飞机的安全裕度 我 和 j个 由这对中较大的单个安全裕度和约束条件决定( 7 )–( 10 )暗示 与修订的NFP相关,具有安全裕度 n个 当且仅当一架飞机具有安全裕度时激活 n个 另一个的安全裕度小于或等于 n个 ; then约束( 6 )使用二进制变量激活/停用相应修订的NFP , 分别。 约束条件( 14 )-( 15 )表明 和 是二进制变量。 约束( 13 )为了避免重复解决方案,规定属于同一机型的飞机的安全裕度按递减顺序排列: .
3.解决方法 3.1. 启发式算法 试探性解决方案的可行性(给定的安全裕度组合 ))通过固定一组位置控制二进制变量来确定 对于机库中放置的每一对飞机。 当问题规模变得更大时,由CPLEX等求解器提供的默认分支和界限将变得效率低下,因为优化器将尝试找到一组安全裕度 作为一个有前途的初步解决方案,这将实现最大的总体安全余量,而这种初步解决方案在每对飞机之间预留的距离太大,超出了机库的容量。 然而,试探性解决方案的不可行性只能由分支和界限来确认 每对飞机的价值都已被测得; 然而,对于上述大规模实例,这种搜索过程非常耗时。 在这方面,首先提出了一种启发式算法,以在实际情况下的合理时间内为问题提供切实可行的解决方案; 然后,通过记录中间解来收紧数学模型,以便以后在发展不等式时使用,并提供一个适度的安全裕度上限,即安全裕量阈值。 因此,启发式为后面讨论的不等式的发展提供了基本信息。
启发式算法的符号和流程如表所示 1 和图 三 分别是。
程序如图所示 三 可以概括为三个步骤。 通过创建MIP模型来检查给定的暂定解决方案的可行性 可行性检查 该公司试图将所有飞机按照一组安全裕度确定的修改后的NFP放置。 如果 可行性检查 模型能够容纳所有飞机 , 那么这个机库对于这个问题是可行的。 否则,这种试探性的解决方案是不可行的,因为在试探性解决方案中给定的安全裕度下,至少有一架飞机无法放置在机库中。 启发式算法包括三个主要步骤。
步骤1。 算法首先调用 可行性检查 并将飞机放置在 具有安全余量的组合 对于 .每架飞机的初始单个安全裕度最初设置为单个飞机安全裕量的下限 我 ( 磅 我 ). 如果返回可行的解决方案,则相应的目标值( 1 )由本迭代中检查的试探性解决方案确定,可以更新为第节中模型的下限 2.2 之后,所有这些飞机的安全裕度都会增加,直到返回一个不可行的解决方案,这个不可行解决方案中的最高个体安全裕量被定义为当前问题的安全余度阈值。
第2步。 一些飞机的安全裕度需要降低,以便再次获得可行的停车计划。 步骤 2 称为个人安全裕度降低和增加阶段。 首先,根据飞机的物理尺寸分配每架飞机的优先级(较大的飞机分配较高的优先级),在启发式搜索过程中,每架飞机优先级值保持不变。 为了便于理解,我们可以简单地将每架飞机的优先级值视为与其大小相等 . 之后,所有飞机都进入 被放入集合 优先级列表 、和 优先级列表 作为单个安全裕度的调整顺序。 根据目标函数的表达式,每架飞机贡献的单个飞机安全裕度的权重取决于物理尺寸( )每架飞机。 因此,大型飞机在获得更大的安全裕度以对目标函数作出更大贡献方面具有更高的优先级,在降低优先级较低且没有可行解决方案回报的飞机的安全余度后,应考虑最终降低最大型飞机的安全裕度。 在这方面,第一种调整策略是 优先级列表 首先递减,直到返回可行解,或者飞机被移动到等待列表集,即。, 8月列表 。如果它达到了与该飞机相关的安全裕度的下限,则算法会选择另一架优先级最低的飞机 优先级列表 而不是。 在减量后获得可行解后,算法从 优先级列表 并检查了初步解决方案的可行性。 如果不可行的解决方案返回,则不再考虑此类飞机的进一步增强。 此步骤中的算法将继续执行,直到 优先级列表 为空。
步骤3。 步骤之后 2 ,算法再次在等待列表中获得一组待增加安全裕度的飞机 8月列表 .本步骤中的调整策略是: 8月列表 首先增加,直到不可行的解决方案返回,并且这样的飞机从 8月列表 进一步考虑安全裕度增加。
3.2. 问题的不等式 3.2.1. 有效不等式 我们利用启发式搜索得到的不可行解,并提出四个不等式来缩小问题的上界。 在介绍了不等式之后,我们提供了相应的示例来说明各个不等式的思想。 成套设备 R(右) 和 问 在启发式算法的参数列表中,表示步骤下的不可行解 2 (单个安全裕度减少/增加 优先级列表 设置)和步骤 三 (个人安全裕度增加 8月列表 集合)。 作为从步骤的不可行解导出的不等式 2 和 三 在启发式算法中给出了不同的表达式,我们使用集合 R(右) 和 问 分别区分不等式2和3中输入的不可行解。 我们发现,当安全裕度在整体增强阶段达到相对较大的值,即阈值时,并非子集中的所有飞机都可以放置在机库中。 因此,大于或等于阈值的安全裕度无法获得可行的停车计划。 不等式1表示为( 17 )即阈值不等式,用于去除超过阈值的不可行解。 例子 1 显示了不等式1如何消除超过阈值的不可行解的集合。
示例1。 假设一个有三架飞机的实例在为所有飞机的安全裕度赋值时有一个可行的停车计划 n个 ,但是 可行性检查 当所有安全裕度都增加到一个值时,无法找到可行的解决方案 n+1 。在这种情况下,值 n+1 是增加的阈值。 因此,可以从解决方案空间中排除一组组合。 明确地, , , 和 (括号中的数字表示三架飞机的各自安全裕度)可以排除在外。 然而,由于阈值不等式1只消除了不可行解,使得每个安全裕度都超过了阈值,因此在解空间中仍然存在大量的不可行解。 因此,我们进一步提出两个不等式2和3,表示为( 18 )-( 19 )当发现不可行解时,在个别调整阶段删除不可行解。 不等式2是在步骤中安全裕度减小/增加阶段的过程中导出的 2 启发式的。 我们表示在步骤中单个安全裕度降低/增加期间确定的不可行解决方案集 2 作为 R(右) 当每架飞机的安全裕度达到阈值,并且从 可行性检查 ,安全裕度开始下降,飞机 我 中优先级最低的 优先级列表 首先递减。 因此,我们可以推断,在获得可行的解决方案之前,任何飞机安全裕度的增加都是不可行的,我们表示 秒 作为该迭代中的安全裕度集。 同样,在 优先级列表 用步骤中不可行的解决方案增加安全裕度 2 也意味着任何飞机安全裕度的增加都是不可行的。 此外,在步骤中的单个安全裕度增加中确定了不等式3 三 :具有最高优先级的飞机的安全裕度 8月列表 首先增加(表示为 我 英寸( 19 )). 如果飞机的安全裕度 我 具有最高优先级的扩展为 以及 可行性检查 发现它不可行,则任何大于 用于飞机 我 无法产生可行的解决方案,我们表示 问 作为在单个安全裕度增加阶段确定的一组不可行解决方案。 例子 2 展示了不等式2和不等式3如何在启发式算法的单个安全裕度减少和增加阶段利用中间访问的不可行解来消除未访问的不可行性解。
示例2。 假设一个有三架飞机的实例具有阈值 n+1 .在步骤中降低安全裕度 2 例如,在多次单独降低安全裕度后,可以找到一个可行的解决方案,并且假定安全裕量为 . 如果这三架飞机的优先级是递增的,我们可以推断,当第三架飞机安全边际为 n+1, 并且第一架和第二架飞机的安全裕度分别大于1和3是不可行的,因此建议不等式2来删除这些组合以及在步骤中增加安全裕量期间确定的不可行解决方案 2 类似地,当在步骤中的个别增强阶段发现不可行解时,建议不等式3来删除不可行解 三 。我们假设 可行性检查 为决策找到可行的解决方案 三架飞机的优先级依次递减。 在步骤中的单个增强阶段 三 ,第一架飞机的安全裕度增加到 k个 一开始。 如果 可行性检查 发现该解在增强后是不可行的,即。, , 则第一架飞机的安全裕度的任何其他值大于或等于 k个 不可行,另外两架飞机的安全裕度保持不变。
3.2.2. 近似不等式 直观地看,这个问题可以被视为一个嵌套问题,将“放大”的飞机放置在机库中,飞机的放大面积由每架飞机的安全裕度决定。 不等式4表示为( 20 )由上述含义导出:由飞机安全裕度确定的飞机“扩大”面积之和不能超过飞机库的容量。 由于飞机形状不规则,计算结果显示,数值示例中获得的机库空间最高利用率约为50%(即机库使用面积/机库总面积)(表 2 )在第节中 4.2 因此,限制机库面积扩大面积之和并不能有效限制飞机的安全裕度。 测量机库容量的另一种方法是采用启发式算法得出的阈值:机库容量近似等于阈值确定的“扩大”飞机面积之和,即 可行性检查 当所有飞机的安全裕度都大于阈值时,无法找到可行的解决方案。 我们想指出,该问题中的潜在假设是,飞机的“缓冲区”允许重叠,因为成对飞机中较大的安全裕度会激活相应的修订NFP,从而将两架飞机分开(图 2 (b) )。 然而,不等式4将飞机的缓冲区视为飞机的一部分,因为不等式计算了放大飞机的面积之和,并将其限制在一个定义值内(由阈值确定的面积之总和)。 因此,对不等式4的解释如下:飞机面积扩大后的面积之和不能超过由第节中的启发式算法得出的阈值所确定的相应值 4.2 在不等式4中, 指扩大的飞机面积 我 与安全裕度相关 n个 .
4.计算结果 本节介绍了根据香港一家飞机维修公司提供的真实数据对实例进行的计算实验的结果。 前几节中描述的所有过程都在Visual Studio 2010中使用C#进行编码,并在配备Intel Core i7处理器的计算机上运行,频率为3.6 GHz,内存为32 Gb。混合整数线性编程由CPLEX 12.7串行模型解决。
4.1. 实例说明 我们从香港的一家飞机基地维修服务提供商那里收集数据,并根据他们的实际数据生成问题实例。 我们研究的维修公司有50多个客户,包括航空公司、公务机公司和通用飞机公司。 特别是香港国际机场飞机维修区的维修机库由该公司经营。 收集了与预计到达时间(ETA)、起飞时间(ETD)、飞机类型以及客户的每个维修订单的维修请求相关的信息。 我们进一步计算出每天需要安排的飞机数量、频率和安排的飞机数,如图所示 4 。每天在机库中安排大、中、小型飞机的组合是典型的,据报道,用人工方法同时规划7架飞机具有挑战性。 在这方面,我们根据观察到的高峰期情景采用了40个测试实例,这些实例中的飞机维修订单数量从6个到12个不等,这也在Qin等人中使用[ 14 ]. 我们向感兴趣的读者推荐秦等人[ 14 ]用于计算实验中使用的完整实例数据集。 将实际情况中观察到的高峰日情景用作初始实例; 然后调整了小型、中型和大型飞机的比例,并增加了新的维修订单,以便在实验中创建具有挑战性的实例。
在实例集中,我们有10种小型(即G200、CL600、CL605、F900LX、F2000EX、F2000LX、ERJ135、F7X、G450和GIV)、11种中型(即GL5T、G550、G5000、G6000、G650、A318、ERJ190、A319、A320、B738和A321)和2种大型(即A332和A333)机型, 其中包括大型民用飞机、中型民用飞机以及商务飞机。 飞机模型的分类基于其面积。 为了更好地展示结果,根据大多数飞机类型,将40个实例分为四组,如下所示: 实例中的大多数飞机都是小型飞机, 实例中的大多数飞机都是中型飞机, 实例中的大多数飞机都是大型飞机,并且 实例中不同类别的飞机数量相等。 关于安全裕度范围,我们规定了最低个人安全裕量 在我们的计算实验中,所有小型飞机的安全距离为1米,中型飞机为2米,大型飞机为3米,这与大型飞机应该具有更高的安全距离的观点一致。 参照公司采用的做法,所有类型飞机的最大个人安全裕度规定为8米。
4.2. 问题的计算结果 用于确定问题中每对飞机之间相对位置的二进制变量的数量由两个因素决定: 机库容纳的飞机数量,以及 问题中的安全裕度范围。 据报道,带有 水平分层 MIP模型可以最优地解决最多14件带凸形和非凸形件的开放式嵌套问题[ 25 ]. 为了将问题规模控制在中等水平,安全裕度的上限由本节启发式算法得出的阈值确定,结果如表中的第五列所示 2 考虑到该问题与嵌套问题类似 块(ub和lb代表安全裕度的上界和下界),这样的问题规模具有挑战性,所以我们参考了文献中采用的停止准则。 Alvarez-Valdes等人[ 25 ]设置几个时间里程碑(1小时、2小时、5小时和10小时)来解决涉及12个以上复杂不规则项目的难题。 因此,我们选择并规定每个实例的时间限制为18000秒(5小时),安全裕度的上限由启发式得出的阈值确定。
表 2 显示了该问题的计算结果。 第三栏显示了机库中总利润最大、安全边际最小的飞机数量。 由于不等式2和不等式3在启发式搜索过程中充分利用了中间解的信息,因此这两个不等式被认为是提高计算效率最全面、最强大的不等式。 因此,我们分析了所提出的启发式算法的有效性,其中不等式2和不等式3用于提供初始解并在分支定界算法之前删除不可行解。 CPLEX求解这些实例的计算结果源自[ 14 ]用于比较。 我们能够最优地解决21个实例,安全边际的上限由启发式阈值确定。 我们发现,在许多情况下,启发式算法提供的初始解在某些情况下经过穷尽搜索后,被精确算法证明是最优的。 此外,在12个实例中(这些启发式值为 粗体和下划线 )在21个解为最优的解中,发现启发式算法提供的解是最优的,这证明了所开发的启发式方法的适用性。 虽然在某些情况下,分支定界算法的目标函数值会增加,但搜索过程需要很长时间。 在该问题中,最佳整数和上界之间的差值对应于每架飞机的待定安全裕度。 要更新分支界限的上限,必须证明待定安全裕度的不可行性,它对应于单个 可行性检查 。虽然最终布局在实际操作中显示出令人满意的结果,但在包装布局的实例中记录到了较大的间隙,因为更新我们研究的问题中的边界比仅使用一个NPF来分隔每对飞机的模型要困难得多。
此外,模型的性能和计算时间差异很大,即使将同一实例组中的两个实例与问题中布置的飞机数量相同进行比较。 以实例23和24为例,满足最小安全裕度要求的机库中放置的飞机数量与启发式算法得出的阈值相同,两个实例中涉及的二进制变量数量相似, 对于类似的问题设置(三架大型飞机和三架小型/中型飞机),而精确算法需要更多的时间来解决实例23的优化问题。 研究发现,在原始模型中加入不等式可以拉紧上界,但不一定会加快分枝定界算法的搜索过程。 为了确保分支与切割算法的效率,必须考虑切割计划的生成和分支之间的平衡。 搜索过程可能会因在原始LP中添加太多不等式而受阻,尽管更好的边界会导致更少的搜索节点[ 30 ],这也可以在第节的计算结果中观察到 4.3 .
第节中的计算结果 4.2 证明了与原始MIP模型相比,在许多情况下,在启发式算法提供的温启动条件下插入不等式2和3,可以缩短获得最优解的计算时间,或者在无法在时间限制内获得最优解时缩小最优性差距, 而不添加不等式并且通过启发式算法提供暖启动。 对于较大的实例36-40,与原始模型相比,使用启发式算法的不等式2和不等式3能够获得更好的解,实例38可以求解到最优。 此外,考虑到启发式算法提供的下限值,在插入不等式后记录下限的改进。
4.3。 比较问题的不等式 为了比较所提出的不等式的有效性,我们选择了在18000秒内解决了第节中的问题的实例 4.2 ,安全余量上限小于8米。 在本节中,我们在MIP公式和启发式算法中将安全边际上限放宽到原点上限(8米),以发现目标值的改进,以及所提不等式在收紧上限方面的有效性。 表 三 显示了所提出的启发式算法的结果以及第节中描述的四个不等式之间的比较 3.2 第一列表示第节中最优解决的测试实例 4.2 每个策略的性能由四个值表示:下界(最佳解)、上界、最优间隙和计算时间。 每个测试实例的时间限制为18000秒,本节中最著名的解决方案的布局可以在附录中找到。
表中的结果 三 表明不存在在所有实例中始终占主导地位的不平等。 我们发现,在某些情况下,不等式1的性能会抑制不等式2和3的性能。 我们注意到,基于将“放大的”飞机放入机库的想法,提出的近似不等式4能够消除大量大大超过机库容量的安全裕度组合,并在某些情况下收紧上限。 虽然将“扩大”飞机置于问题中的想法是控制安全裕度组合和收紧上限的一种方法,但由于“扩大”的重叠,因此需要精确计算“扩大”面积之和,以避免删除可行的解决方案 根据安全裕度的定义和适用于单独飞机的方法,允许每对飞机之间的零件。 第节中进行的计算实验 4.3 关注通过放宽第节中求解到最优的实例的安全裕度上限而产生的具有挑战性的实例 4.2 因此,我们主要关注插入不同不等式后记录的最终最优缺口。 结果表明,不等式4能够收紧问题的上限,但不一定对所有情况都有效,因此我们只考虑插入不等式4来处理大型实例,并提供维修库极限的近似估计。
5.结论 在本文中, 我们研究了维修服务公司在计划期间在维修机库维修飞机时,在允许的安全裕度范围内确定最佳个人安全裕量的问题,以便将飞机移动操作和维修期间的碰撞风险降至最低 过程。 这一问题是随着客户越来越多的外包维修请求而出现的,维修公司必须有效利用其有限的维修基地空间来满足不同客户的需求。 首先,考虑到飞机的精确形状,提出了飞机停机位布局问题的一个完整的混合整数线性规划模型,然后结合一组修正的NPF来强制每对飞机之间的离散安全裕度。 为了处理模型中涉及的大量二进制变量,我们开发了一种启发式方法,以在合理的时间内提供实际解决方案。 此外,在实现CPLEX提供的分枝定界算法之前,还提出了一组不等式,将启发式搜索过程中记录的不可行解转换为要添加到数学模型中的割集。 以香港某飞机维修公司为例进行了计算实验,计算结果表明,所提出的方法对实际问题是适用的和有益的。 对于未来的研究,我们的模型可以扩展到包括其他现实考虑因素,例如技术人员和维护设备的可用性,以及在满足客户的维护要求时在实际情况中遇到的不确定性。
附录 对于第节中测试的实例的最知名停车场布局 4.3 ,见图 5 .
数据可用性 用于支持本研究结果的数据可向相应作者索取。
利益冲突 作者声明,本论文的出版不存在利益冲突。
致谢 本文所述的工作得到了香港理工大学研究委员会(项目编号G-YBFD和G-YBN1)的内部资助; 中国自然科学基金资助项目(批准号71471158); 辽宁省教育厅拨款(批准号:LN2017QN006); 以及学生账户代码RUF1下的补助金。