【优化指派】基于matlab禁忌搜索算法求解指派优化问题(耗时最短)【含Matlab源码 2518期】

您所在的位置:网站首页 最小化指派问题是匈牙利问题吗为什么 【优化指派】基于matlab禁忌搜索算法求解指派优化问题(耗时最短)【含Matlab源码 2518期】

【优化指派】基于matlab禁忌搜索算法求解指派优化问题(耗时最短)【含Matlab源码 2518期】

#【优化指派】基于matlab禁忌搜索算法求解指派优化问题(耗时最短)【含Matlab源码 2518期】| 来源: 网络整理| 查看: 265

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划(Matlab) 神经网络预测与分类(Matlab) 优化求解(Matlab) 语音处理(Matlab) 信号处理(Matlab) 车间调度(Matlab)

⛄一、飞机指派模型的建立简介

1 引 言 机场停机位指派是指在给定的作业时间窗内,考虑执行航班的机型、停机位类型及航班时刻等因素,指派航班到有限的停机位上实现停靠,以保证客货的有效衔接,是机场飞行区地面作业的一项核心任务. 合理、高效的停机位指派,不仅能够为到离港航班提供及时、有效的地面服务保障,从而保证航班计划的有效实施,而且,可以大大提高机场 资源的使用效率和机场的运营管理水平,从而保证机场的流畅运作,提高旅客满意率水平。同时,对于降低航空公司地面运行成本也有重要现实意义. 停机位指派问题是典型的 0 - 1 整数规划问题,也是 NP-hard 问题[1]. 国内外学者过去进行了较多研究. 国内研究方面,文军等[2]通过分析航班占用停机位的特性,建立了 GAP( Gate assignment problem) 问题的排序模型,并引入机位标号函数和航班标号函数,设计了一种求解模型的标号算法.王力等[3]以旅客登转机时间和机型—停机位类型匹配为优化目标,设计了求解模型的禁忌搜索算法. 陈欣等[4]通过设计的一种排序模拟退火算法,研究了以旅客总步行距离最短为目标的停机位指派问题. 杨文东等[5]通过构造停机位航班连接树的方法,研究了以航班延误和停机位空闲时间最小 为目标的停机位指派问题. 熊杰等[6]以飞机地面滑行油耗成本最低为优化目标,研究了如何通过优化机位分配降低飞机地面油耗成本的停机位分配问题. 文军[7]通过分析飞机占用停机位时区集合的特点,应用划分时间片算法建立了停机位分配的图论模型. 常钢等[8]详细介绍了停机位分配问题的研究的发展历程、建模技术,以及模型的优化求解方法.

2 停机位综合效能关键因素分析 从机场停机位指派的运行实际看,指派过程涉及三个方面的利益,在这个过程中所产生的成本主要包括: ( 1) 航空公司飞机地面滑行成本.航空燃油成本在航空公司的运营成本中一直占有比较大的比例,近年来,由于国际油价持续攀升,航空公司面临的油耗成本压力也在逐年加大.所以,尽可能的减少油料消耗,节约运输成本一直是航空公司最为关注和着力解决的问题. 在停机位指派问题中,由于停机位的选择直接决定飞机从快速脱离口到停机位的地面滑行距离,从而决定飞机的地面滑行成本. 因此,停机位指派方案对飞机的地面滑行成本具有直接的影响. 尤其是在多跑道机场,飞机穿越跑道停靠机位,对地面滑行成本的影响更为突出. ( 2) 机场停机位利用成本. 停机位是机场的稀缺资源,停机位的利用率越高,它可以服务的航班数量就越多,其高额建设投入产生的经济效益就越大. 因此机场运营管理人员总是尽可能地提高停机位的利用率,或降低停机位空闲率. 停机位空闲率可以定义为机位空闲时间与机位可用时间之比. 机位空闲时间以停靠该机位所有航班的到港和离港时间确定.

旅客满意率水平. 航班到达机场后,旅客提取行李的方便和快捷程度,是旅客衡量机场服务满意程度的重要指标之一. 因此,为了提高旅客对机场服务的满意率水平,机场应尽可能地将航班指派到距离行李提取处最近的停机位. 综上所述,停机位综合效能可以用三个指标进行度量,即飞机地面滑行成本、停机位利用率以及旅客满意率水平. 这三个指标属不同量纲,可都将其转化为成本指标进行研究,即飞机地面滑行成本、停机位空闲时间成本、及旅客从停机位到行李提取处的行走成本.

2 禁忌搜索启发式算法 Step 1 ( 初值设定) 根据贪婪算法生成的初始解 znow,令 zbest =znow,初始化禁忌条件,令 iter = 0; Step 2 ( 终止条件) 如果 iter ≥ max_iter 则中止程序,记录并输出zbest,否则,转入 Step3; Step 3 ( 邻域搜索) 产生当前解 znow 的所有邻域解 ztrial ∈ N( Znow) ; Step 4 ( 藐视准则) 对 znow 的 邻 域 解 ztrial,其 对 应 的 适 配 值 为f( ztrial ) ,记 录 最 小 的 f( ztrial ) ,如 果 有 f( ztrial ) ≤f( zbesr) ,则进行操作 zbest = ztrial ( 藐视准则) ,将 ztrial 与 znow 的交换作为禁忌对象替换最早进入禁忌表的禁忌对象,转 Step6; 否则,继续 Step5; Step 5 ( 分散搜索) 判断邻域解对应得各对象的禁忌属性,在候选解集非禁忌对象中选取使得 f( ztrial ) 最小的邻域解最为 ztrial,进行操作 zbest = ztrial,同时将 ztrial 与 znow的交换作为禁忌对象替换最早进入禁忌表的禁忌对象; Step 6 ( 更新) iter = iter + 1,转至 Step2. 在禁忌搜索算法中禁忌搜索的邻域结构是求解算法中一个关键之处. 在本算法中以每一个停机位的指派方案作为基本结构. 一个邻域结构由任意两个停机位的指派方案构成,并通过插入移动,或交换移动构造新的邻域结构.插入移动将一个航班从一个机位移动到另一个机位,即( i,k) → ( i,l) . 交换移动 将不同机位上的两个航班区间进行交换. 一个航班区间可以包含一个或多个航班,即( a,b,k)→( c,d,l) ,表示将k机位上航班a,b之间的航班串与 l 机位上航班 c,d 之间的航班串交换.

⛄二、部分源代码

%初始化 clear all; %清除所有变量 close all; %清图 clc; %清屏 A=[23,21,16,15,17,18,20,22,19; 20,15,24,18,22,17,21,19,16; 23,17,16,19,21,22,13,20,18; 16,21,17,20,19,23,16,18,32; 12,23,26,17,19,20,13,16,15; 18,13,17,25,21,23,16,15,19; 22,21,18,15,20,16,19,20,17; 23,22,17,19,18,15,20,19,16; 17,22,15,21,19,23,18,16,20]; %9人每项工作用时 N=9; % % % % % 初始化% % % % % % % % % % % % x=[1,2,3,4,5,6,7,8,9]; %给定初始解 % % % % % % 禁忌对象为以互换工作的两人构成的数对% % % % % % % % % % % % TabuL=7; %禁忌长度 Tabu=zeros(TabuL,2); %禁忌表

% 领域的产生为任一交换两个人的任务 CaNum=36; %邻域解的个数=C(2,9) Ca=zeros(CaNum,N); %领域解集合 CaTime=zeros(CaNum,1);

bestx=x; %当前最佳解 BestT=Inf; %当前最短用时

p=1; %迭代次数初始化 G=100; %最大迭代次数

% 禁忌搜索循环 while p



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3