一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于将航班放行任务分配至放行席位的方法及相关装置与流程

2023-01-15 07:08:46 来源:中国专利 TAG:


1.本公开涉及航空领域,并且更具体地,涉及一种用于将航班放行任务分配至放行席位的方法、装置、计算设备和存储介质。


背景技术:

2.航班签派对于航空公司而言是不可或缺的环节。航班签派工作主要包括航班放行任务(在本文中,也可简称为任务),即对航班进行签派放行的任务。一般情况下,会针对航班签派设置许多放行席位(在本文中,也可简称为席位),每个席位都负责一定范围内的任务(例如,有的席位负责国际航班放行任务,有的席位负责国内航班放行任务,等等)。在实际工作中,需要将任务分配至相应的席位(在本文中,也可简称为席位分配),使得每个任务都尽量被完成。由于存在各种各样的任务,每个任务都有相应的放行时间要求和涉及航班类型等,而每个席位的开放时间、支持航班类型等也不尽相同,因此席位分配需要考虑的因素特别多且复杂。传统的席位分配主要依赖于有经验的工作人员来人为分配,但是这样通常会导致工作效率较低、考虑不周、容易出错。而且,一旦出现新的席位/任务变动,重新分配的成本较高。
3.因此,期望一种改进的用于将航班放行任务分配至放行席位的方法。


技术实现要素:

4.根据本公开的第一方面,提供了一种用于将航班放行任务分配至放行席位的方法,包括:
5.接收关于待安排时段内需要被分配至放行席位的航班放行任务的任务数据,关于在待安排时段内开放的放行席位的席位数据,以及用于配置不同类型的航班的放行时间要求的配置数据;
6.基于所述任务数据和所述席位数据分别构建任务集合f、席位集合i、席位组集合g,其中任务f∈f,席位i∈i,席位组g∈g;
7.将每个席位i根据工作时段按时间单位划分为多个席位时间档,从而基于席位数据构建包括所有席位i的所有席位时间档s的席位时间档集合s,其中席位时间档s∈s;
8.定义如下变量:
[0009][0010][0011]wgi
为用于衡量席位i的工作负荷与席位i所在的席位组g的平均工作负荷之差的参数,其中0≤w
gi
≤1;
[0012]
通过以下操作构建整数规划模型:
[0013]
设置如下约束:
[0014]
第一约束,要求对于任意一个任务f满足第一约束,要求对于任意一个任务f满足其中sf是席位时间档集合s中的能够执行任务f的席位时间档s的子集,
[0015]
第二约束,要求对于任意一个席位时间档s满足第二约束,要求对于任意一个席位时间档s满足其中fs是任务集合f中的能够在席位时间档s执行的任务f的子集,tf是任务f的任务时长,ts为席位时间档s的可用工作时长,
[0016]
第三约束,要求对于任意一个席位i满足个席位i满足其中,wli是席位i的工作负荷,fs是任务集合f中的能够在席位时间档s执行的任务f的子集,si是席位时间档集合s中的属于席位i的席位时间档s的子集,tf是任务f的任务时长,ti是席位i的可用工作时长,gi是席位i所在的席位组,ngi是席位组gi中的席位的数量,i

是席位组gi中的席位,
[0017]
设置如下目标函数:
[0018]
min{∑
f∈f
(cf·
yf) ∑
i∈iwgi
},其中cf是任务f未被分配给任何席位时间档的惩罚成本;以及
[0019]
求解所述整数规划模型并根据求解结果将航班放行任务分配至放行席位以获得席位分配结果,所述席位分配结果指示任务f与席位时间档s之间的对应关系。
[0020]
根据本公开的第二方面,提供了一种用于将航班放行任务分配至放行席位的装置,包括:
[0021]
数据处理模块,被配置为:
[0022]
接收关于待安排时段内需要被分配至放行席位的航班放行任务的任务数据,关于在待安排时段内开放的放行席位的席位数据,以及用于配置不同类型的航班的放行时间要求的配置数据;
[0023]
基于所述任务数据和所述席位数据分别构建任务集合f、席位集合i、席位组集合g,其中任务f∈f,席位i∈i,席位组g∈g;
[0024]
将每个席位i根据工作时段按时间单位划分为多个席位时间档,从而基于席位数据构建包括所有席位i的所有席位时间档s的席位时间档集合s,其中席位时间档s∈s;
[0025]
定义如下变量:
[0026][0027][0028]wgi
为用于衡量席位i的工作负荷与席位i所在的席位组g的平均工作负荷之差的参数,其中0≤w
gi
≤1;
[0029]
模型构建模块,被配置为通过以下操作构建整数规划模型:
[0030]
设置如下约束:
[0031]
第一约束,要求对于任意一个任务f满足第一约束,要求对于任意一个任务f满足其中sf是席位时间档集合s中的能够执行任务f的席位时间档s的子集,
[0032]
第二约束,要求对于任意一个席位时间档s满足第二约束,要求对于任意一个席位时间档s满足其中fs是任务集合f中的能够在席位时间档s执行的任务f的子集,tf是任务f的任务时长,ts为席位时间档s的可用工作时长,
[0033]
第三约束,要求对于任意一个席位i满足个席位i满足其中,wli是席位i的工作负荷,fs是任务集合f中的能够在席位时间档s执行的任务f的子集,si是席位时间档集合s中的属于席位i的席位时间档s的子集,tf是任务f的任务时长,ti是席位i的可用工作时长,gi是席位i所在的席位组,ngi是席位组gi中的席位的数量,i

是席位组gi中的席位,
[0034]
设置如下目标函数:
[0035]
min{∑
f∈f
(cf·
yf) ∑
i∈iwgi
},其中cf是任务f未被分配给任何席位时间档的惩罚成本;以及
[0036]
求解分配模块,被配置为求解所述整数规划模型并根据求解结果将航班放行任务分配至放行席位以获得席位分配结果,所述席位分配结果指示任务f与席位时间档s之间的对应关系。
[0037]
根据本公开的第三方面,提供了一种用于将航班放行任务分配至放行席位的计算设备,包括:一个或多个处理器;以及存储计算机可执行指令的存储器,所述计算机可执行指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行根据本公开的第一方面的任一实施例所述的用于将航班放行任务分配至放行席位的方法。
[0038]
根据本公开的第四方面,提供了一种其上存储有计算机可执行指令的非瞬态存储介质,所述计算机可执行指令在被计算机执行时使得计算机执行根据本公开的第一方面的任一实施例所述的用于将航班放行任务分配至放行席位的方法。
[0039]
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。
附图说明
[0040]
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
[0041]
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
[0042]
图1是示出根据本公开的一些实施例的用于将航班放行任务分配至放行席位的方法的流程图;
[0043]
图2是示出根据本公开的一些实施例的用于将航班放行任务分配至放行席位的装置的示意性框图;
[0044]
图3是示出根据本公开的一些实施例的用于将航班放行任务分配至放行席位的计算设备的示意性框图。
[0045]
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0046]
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
具体实施方式
[0047]
现在将参照附图来详细描述本公开的各种示例性实施例。应当注意,除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
[0048]
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本公开的示例性方式,而不是穷尽的方式。
[0049]
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0050]
本公开通过针对航班放行任务的席位分配问题构建并求解整数规划模型,可以利用计算机技术自动进行航班放行任务的席位分配,相比于人工分配具有显著提高的效率。下面将结合附图详细描述本公开的各种实施例。
[0051]
图1是示出根据本公开的一些实施例的用于将航班放行任务分配至放行席位的方法100的流程图。方法100例如可以通过计算机来实现。
[0052]
如图1所示,方法100可以包括:在步骤s102处,接收关于待安排时段内需要被分配至放行席位的航班放行任务的任务数据,关于在待安排时段内开放的放行席位的席位数据,以及用于配置不同类型的航班的放行时间要求的配置数据。可以根据需要将待安排时段设置为任何合适的时间长度。例如,可以将待安排时段设置为未来某一天。所接收的这些数据例如可以是结构化的。
[0053]
在一些实施例中,席位数据可以包括每个席位的识别号、席位组、区域、席位规则,所述席位规则指示支持航班类型以及针对支持航班类型设置的工作时段和席位时间档的可用工作时长;任务数据可以包括每个任务的识别号、区域、起降机场所属航班情报区、往返/联程航班情况、机型、航班类型、起飞时间;配置数据可以包括每种类型的航班的放行工作时长、最早开始放行时间、最晚结束放行时间和计划开始放行时间。
[0054]
区域例如可以是根据航班的目的地和/或航线区域来划分的,同一区域所分配的任务所对应的航班的目的地和/或航线区域相同或相近。作为非限制性示例,通常可以划分三个区域,上海区、北京区、西北区,其中上海区可以负责华东地区的任务,北京区可以负责华北地区的任务,西北区可以负责西北地区的任务,然后每个区域都可以设置有许多席位来处理该区域的任务。
[0055]
席位的工作时段是指席位执行工作所跨越的时段。例如,有的席位是全天席位,其工作时段为当日零时到次日零时;有的席位不过夜,其工作时段为当日六时至二十二时。席
位时间档是指将席位的工作时段按时间单位划分的单位工作时间。在本文中,以时间单位为1小时为例,一个全天席位例如可以有24个席位时间档(00:00~01:00、01:00~02:00、02:00~03:00、
……
22:00~23:00、23:00~24:00)。席位时间档的可用工作时长例如可被设置为不超过所述时间单位的任何合适的工作时长。例如,1小时的席位时间档的可用工作时长不超过60分钟(min),也可以设置为50min、或者40min、或者30min等。席位的可用工作时长例如可被设置为不超过席位的工作时段总时长的任何合适的工作时长。例如,全天席位的可用工作时长可被设置为24小时、或者23.5小时等。
[0056]
席位规则用于限制席位能够处理的任务。作为非限制性示例,航班类型通常可以包括以下五种类型:国际远程(在本文中,也可简称为国远)、一般国际、一般国内、一般涉疆、高高原,其中国远航班主要是指欧美等地区的远程国际航班,一般国际主要是指日韩、东南亚等地区的相对近程的国际航班,一般涉疆航班主要是指新疆等地区的国内航班,高高原航班主要是指涉及高高原机场/航线的国内航班,一般国内航班主要是指除一般涉疆航班和高高原航班以外的国内航班。一般来说,由于存在资质要求等限制,因此要求国远任务、高高原任务、一般涉疆任务必须分别分配到相应的指定席位而不能分配到其它席位,但是这些能够负责国远任务、高高原任务、一般涉疆任务的所述相应的指定席位是可以负责除国远任务、高高原任务、一般涉疆任务以外的其它航班类型的任务的。假设有国远席位、一般国际席位、一般国内席位、一般涉疆席位、高高原席位分别只负责相应的国远任务、一般国际任务、一般国内任务、一般涉疆任务、高高原任务,则这五种席位各自配置有单个席位规则。假设为了减轻上海区的非国远席位的压力,可以允许上海区的国远席位处理某些非国远任务,此时上海区的国远席位可以配置有两个席位规则,其一是负责国远任务,其二例如是负责涉及特殊机型(此额外要求是可选的为了限制非国远任务数量)的非国远任务,比如a350/b777一般国际/一般国内、a330一般国际等。对于同一席位的不同席位规则而言,可以相应设置有不同的工作时段和席位时间档的可用工作时长。例如,上海区的国远席位对于国远任务的工作时段可以为0:00~24:00并且每小时席位时间档的可用工作时长为50min,而对于国远任务的工作时段可以为8:00~20:00并且每小时席位时间档的可用工作时长为40min。通常来讲,可以要求某个区域的某个航班类型的任务分配给该区域的支持该任务的航班类型并且工作时段符合该任务的放行时间要求的席位。
[0057]
利用配置数据可以方便地设置不同类型的航班的放行时间要求。举例来讲,可以要求各种类型的航班的最早开始放行时间为起飞时间前180min,最晚结束放行时间为起飞时间前60min。每种类型的航班的放行工作时长和计划开始放行时间可以不同,例如国远航班的放行工作时长为20min并且计划开始放行时间为起飞时间前120min,一般国际航班的放行工作时长为12min并且计划开始放行时间为起飞时间前90min,一般涉疆航班的放行工作时长为12min并且计划开始放行时间为起飞时间前90min,高高原航班的放行工作时长为15min并且计划开始放行时间为起飞时间前90min,一般国内航班的放行工作时长为10min并且计划开始放行时间为起飞时间前90min。对于席位而言,可分配的任务的航班放行日期需为该席位的开放日期,航班放行时间需安排在该任务的可行开始放行时间区间[起飞时间-最早开始放行时间,起飞时间-最晚结束放行时间-放行工作时长]所横跨该席位的席位时间档内。在一些实施例中,可行开始放行时间区间可替代地设置为[起飞时间-最早开始放行时间,起飞时间-计划开始放行时间],这可以预留更多时间,避免出现某个席位时间档
的任务都集中在临近航班起飞的时候。
[0058]
可以按照各种合适的方式来划分席位组。在一些实施例中,可以按照支持航班类型或者在支持多种航班类型时按照优先安排的航班类型来划分席位组。在一些实施例中,可以按照共同工作时段来划分席位组。在一些实施例中,可以针对不同区域选择不同的席位组划分方式。例如,上海区可以按照支持航班类型或者在支持多种航班类型时按照优先安排的航班类型来划分席位组,比如包括国远席位组、一般国内席位组、一般国际席位组等,而北京区、西北区可以按照共同工作时段来划分席位组,比如包括白班席位组、非白班席位组等。
[0059]
方法100还可以包括在步骤104处,基于所述任务数据和所述席位数据分别构建任务集合f、席位集合i、席位组集合g,其中任务f∈f,席位i∈i,席位组g∈g。任务集合f可以包括在待安排时段内的所有任务f。席位集合i可以包括在待安排时段内开放的所有席位i。席位组集合g可以包括由席位i组成的所有席位组g。
[0060]
方法100还可以包括在步骤106处,将每个席位i根据工作时段按时间单位(在本文中,以1小时为例)划分为多个席位时间档,从而基于席位数据构建包括所有席位i的所有席位时间档s的席位时间档集合s,其中席位时间档s∈s。如前所述,在一些实施例中,当席位i针对不同航班类型设置有不同席位规则时,将席位i针对所述不同席位规则中的每个席位规则分别根据相应的工作时段按时间单位划分为多个席位时间档。例如,上海区的国远席位对于国远任务的工作时段可以为0:00~24:00并且划分为24个席位时间档,而对于国远任务的工作时段可以为8:00~20:00并且划分为12个席位时间档,因此上海区的国远席位一天总共有36个席位时间档。
[0061]
方法100还可以包括在步骤108处,定义如下变量:
[0062][0063][0064]wgi
为用于衡量席位i的工作负荷与席位i所在的席位组g的平均工作负荷之差的参数,其中0≤w
gi
≤1。通常期望同一席位组内的各席位的工作负荷尽量平衡。
[0065]
在进行分配前,一些x
fs
的值就可以已知为0。例如,当不能在席位时间档s执行任务f时,具体地比如当席位时间档s所属的席位i所在的区域与任务f的区域不一致、和/或席位时间档s所属的席位i所支持的航班类型与任务f的航班类型不一致、和/或席位时间档s不满足任务f的可行开始放行时间区间等时,x
fs
=0。
[0066]
在一些实施例中,还可以预先设置要求特定航司代码的任务分配至特定席位或特定区域的席位,例如要求fm的任务分配到e席位,mu的任务分配到上海区等。这样也可以使一些x
fs
的值已知为0,比如对应于非e席位和fm的任务的x
fs
的值已知为0。在另一些实施例中,这也可以不预先设置,而是替代地在后续模型中通过设置相应约束来实现。
[0067]
接下来,方法100还可以包括在步骤110处,通过设置约束和目标函数来构建整数规划模型。
[0068]
在一些实施例中,可以设置第一约束,要求对于任意一个任务f满足
其中sf是席位时间档集合s中的能够执行任务f的席位时间档s的子集。由于当不能在席位时间档s执行任务f时x
fs
=0,因此在一些实施例中可以替代地将第一约束设置为要求对于任意一个任务f满足(∑
s∈s
x
fs
) yf=1。也就是说,无需从席位时间档集合s中挑选出能够执行任务f的席位时间档s的子集sf,而是直接对所有席位时间档s的x
fs
求和即可,反正当不能在席位时间档s执行任务f时x
fs
=0。第一约束可以确保在整数规划模型求解过程中,每个任务f要么被分配给相应一个席位时间档s,要么未被分配给任何席位时间档。
[0069]
在一些实施例中可以设置第二约束,要求对于任意一个席位时间档s满足其中fs是任务集合f中的能够在席位时间档s执行的任务f的子集,tf是任务f的任务时长,ts为席位时间档s的可用工作时长。由于当不能在席位时间档s执行任务f时x
fs
=0,因此在一些实施例中可以替代地将第二约束设置为要求对于任意一个席位时间档s满足∑
f∈f
(tf·
x
fs
)≤ts,其中tf是任务f的任务时长,ts为席位时间档s的可用工作时长。也就是说,无需从任务集合f中挑选出能够在席位时间档s执行的任务f的子集fs,而是直接对所有任务f的(tf·
x
fs
)求和即可,反正当不能在席位时间档s执行任务f时x
fs
=0。第二约束可以确保在整数规划模型求解过程中,不会使席位时间档被安排的任务的总工作时长超过该席位时间档的可用工作时长。
[0070]
在一些实施例中,可以设置第三约束,要求对于任意一个席位i满足
[0071][0072][0073]
其中,wli是席位i的工作负荷,fs是任务集合f中的能够在席位时间档s执行的任务f的子集,si是席位时间档集合s中的属于席位i的席位时间档s的子集,tf是任务f的任务时长,ti是席位i的可用工作时长,gi是席位i所在的席位组,ngi是席位组gi中的席位的数量,i

是席位组gi中的席位。由于当不能在席位时间档s执行任务f时x
fs
=0,因此在一些实施例中可以替代地将第三约束设置为要求对于任意一个席位i满足
[0074][0075][0076]
其中,wli是席位i的工作负荷,si是席位时间档集合s中的属于席位i的席位时间档s的子集,tf是任务f的任务时长,ti是席位i的可用工作时长,gi是席位i所在的席位组,ngi是席位组gi中的席位的数量,i

是席位组gi中的席位。也就是说,无需从任务集合f中挑选出能够在席位时间档s执行的任务f的子集fs,而是直接对所有任务f的(tf·
x
fs
)求和即可,反正当不能在席位时间档s执行任务f时x
fs
=0。第三约束可以使得在整数规划模型求解过程中,尽量避免在同一席位组的各个席位之间的工作负荷分配失衡。
[0077]
对于支持多种类型航班或者说具有多个席位规则的席位(多功能席位)来说,在判断席位间工作负荷分配均衡的问题时,可以只考虑该席位的优先安排的航班类型的任务与其它负责该优先安排的航班类型的任务的席位的工作负荷分配均衡问题,而不考虑该席位的不优先安排的航班类型的任务与其它负责该不优先安排的航班类型的任务的席位的工作负荷分配均衡问题。假设有同时支持第一航班类型的任务f1和第二航班类型的任务f2但是优先安排第一航班类型的任务f1而不优先安排第二航班类型的任务f2的多功能席位i1的席位时间档s1,并且假设席位组g只包括(一个或多个)多功能席位i1和(一个或多个)只支持第一航班类型j1的单功能席位i,将第三约束替代地设置为满足:
[0078][0079][0080]
其中,wl
i1
是席位i1的工作负荷,wli是席位i的工作负荷,s
i1
是席位时间档集合s中的属于席位i1的席位时间档s1的子集,t
f1
是任务f1的任务时长,t
i1
是席位i的可用工作时长,si是席位时间档集合s中的属于席位i的席位时间档s的子集,ti是席位i的可用工作时长,ng是席位组g中的席位的数量,i

是席位组g中的席位(其为优先安排第一航班类型的任务f1的多功能席位或只支持第一航班类型f1的单功能席位)。例如,对于上海区的国远席位来说,优先安排的第一航班类型的任务f1可以是国远任务,不优先安排第二航班类型的任务f2可以是非国远任务,也就是说,在考虑国远席位组中各国远席位的工作负荷分配均衡问题时,虽然可能其中有的国远席位还承担了非国远任务,但是并不将非国远任务的工作量统计在这样的国远席位的工作负荷中。
[0081]
第三约束要求席位组内工作负荷分配均衡,这对于按照不同划分方式得到的席位组可以意味着不同的均衡方式。例如,上海区可以按照航班类型来划分席位组,那么对于上海区而言第三约束相当于要求在各席位支持同一航班类型的席位组内部实现每时间单位工作负荷平均均衡(在本文的示例中,为平均每小时工作负荷均衡)。换言之,在上海区内,不管是席位组内的可用工作时长为16小时的席位还是可用工作时长为24小时的席位,只要这些席位的平均每小时工作负荷均衡,例如都为70%,即可。又例如,北京区、西北区可以按照共同工作时段来划分席位组,那么对于北京区、西北区而言第三约束相当于要求在各席位工作时段相同(相应地,可用工作时长相同)的席位组内部实现交叉时间段每时间单位工作负荷加总均衡(在本文的示例中,为交叉时间段每小时工作负荷加总均衡)。
[0082]
在一些实施例中,方法100还可以包括:基于所述任务数据构建航班情报区集合r,其中航班情报区r∈r;定义如下变量:
[0083][0084]
照此,在一些实施例中,可以设置第四约束,要求对于任意一个任务f并且对于任意一个席位时间档s满足其中rf是任务f涉及的航班情报区,is是席位时间档s所属的席位。第四约束可以在整数规划模型求解过程中,构建变量x与z之间的关系。而且,
在一些实施例中,还可以设置第五约束,要求对于任意一个席位i满足∑
r∈r
(z
ri
)≤fir
i,lmt
,其中fir
i,lmt
是席位i的最多可用航班情报区数量。第五约束可以使得在整数规划模型求解过程中,尽量避免使一个席位所牵涉的航班情报区数量过多,从而降低席位人员的工作复杂度及出错率。
[0085]
应理解,如果一个航班的起飞机场和降落机场分属两个不同的航班情报区,则该航班所对应的任务涉及两个航班情报区。在一些实施例中,可以只对负责一般国内航班的席位设置所述第五约束。在一些实施例中,可以以各种粒度来设置席位的最多可用航班情报区数量。例如,对不同区域的席位、或者对于不同席位组的席位、或者对于不同席位单独设置最多可用航班情报区数量。例如可以将上海区、北京区和西北区的席位的默认最多可用航班情报区数量分别设置为4、5、6。在一些实施例中,当求解整数规划模型超时时,可以将(例如,工作负荷最高的)一个或多个席位i的fir
i,lmt
增加1以更新所述第五约束,然后重新求解所述整数规划模型。例如,可以对每个席位设置航班情报区数量放松上限,比如8,那么在此情况下,当这个席位的最多可用航班情报区数量被逐步放松到8后仍然求解整数规划模型超时,则不再增加这个席位的最多可用航班情报区数量而可以调整其它席位的最多可用航班情报区数量。
[0086]
在一些实施例中,方法100还可以包括定义如下变量:
[0087][0088][0089]
照此,在一些实施例中,可以设置第六约束,要求对于任意一个席位时间档s满足
[0090][0091][0092]
其中fs是任务集合f中的能够在席位时间档s执行的任务f的子集,并且要求对于同一席位上的依次连续的任意三个席位时间档s1、s2、s3满足由于当不能在席位时间档s执行任务f时x
fs
=0,因此在一些实施例中可以替代地将第六约束设置为要求对于任意一个席位时间档s满足
[0093][0094][0095]
并且要求对于同一席位上的依次连续的任意三个席位时间档s1、s2、s3满足也就是说,无需从任务集合f中挑选出能够在席位时间档s执行的任务f的子集fs,而是直接对所有任务f的(tf·
x
fs
)求和即可,反正当不能在席位时间档s
执行任务f时x
fs
=0。或即为席位时间档s的工作负荷。第六约束可以使得在整数规划模型求解过程中,一旦每连续2小时工作负荷未低于80%,就使第3小时工作负荷不高于50%,这可以避免使席位连续高负荷运转。
[0096]
在一些实施例中,由于有的求解器不支持“《”、“》”这样的逻辑符号,而支持“≤”、“≥”这样的逻辑符号,因此可以将第六约束替代地设置为要求对于任意一个席位时间档s满足
[0097]
其中79%≤α《80%,
[0098][0099]
并且要求对于同一席位上的依次连续的任意三个席位时间档s1、s2、s3满足即,可以将α设置为[79%,80%)内的任意值,来实现近似的约束效果。
[0100]
在一些实施例中,可以设置第七约束,要求对于任意一个席位i并且对于任意两个属于往返的任务f1、f2满足其中si是席位时间档集合s中的属于席位i的席位时间档s的子集。第七约束可以使得在整数规划模型求解过程中,往返航班所涉及的任务尽量被分配至同一席位。
[0101]
在一些实施例中,可以设置第八约束,要求对于任意一个席位i并且对于任意两个属于联程的任务f3、f4满足其中si是席位时间档集合s中的属于席位i的席位时间档s的子集。第八约束可以使得在整数规划模型求解过程中,联程航班所涉及的任务尽量被分配至同一席位。
[0102]
在上述约束中,从整数规划模型的角度来看第一约束可以限定对所有任务的覆盖约束,从各种业务目标的角度来看其余约束可以让求解得到的席位分配结果更加合理化。可以在整数规划模型中设置第一约束,可选地还可以设置第二约束至第八约束中的一者或多者。
[0103]
在一些实施例中,可以将目标函数设置为min{∑
f∈f
(cf·
yf) ∑
i∈iwgi
},其中cf是任务f未被分配给任何席位时间档的惩罚成本。这样的目标函数的含义是,使得未被安排给任何席位时间档的任务尽量少(大括号中的第一项),使得同一席位组内各席位的工作负荷尽量均衡(大括号中的第二项)。cf是整数规划模型的可调节参数。不同类型的任务f的重要性或优先级可以不同,例如当某个任务未得到分配会造成的问题的严重性越高时说明该任务的重要性或优先级可以被设置得越高,相应地cf就越高。
[0104]
应理解,可以根据实际需要修改目标函数,以使求解结果朝着期望的席位分配效果的方向。在一些示例中,还可以将上述目标函数修改为min{∑
f∈f
(cf·
yf) ∑
i∈iwgi-∑
f∈f

s∈s
(rev
fs
·
x
fs
)},其中rev
fs
是将任务f分配给席位时间档s的收益。在一些示例中,还可以将上述目标函数修改为min{∑
f∈f
(cf·
yf) ∑
i∈iwgi

f2∈f

s1∈s
(c
f2
·
x
f2s1
)},其中c
f2
是在同时支持第一航班类型的任务f1和第二航班类型的任务f2但是优先安排第一航班类型的
任务f1而不优先安排第二航班类型的任务f2的席位的席位时间档s1安排第二航班类型的任务f2的惩罚成本,因此上述目标函数的大括号中的第三项是为了限制某些支持多种航班类型的任务的多功能席位中不优先安排的的航班类型的任务的数量。例如,对于上海区的国远席位来说,优先安排的第一航班类型的任务f1可以是国远任务,不优先安排第二航班类型的任务f2可以是非国远任务,也就是说,虽然可以让上海区的国远席位来分担非国远席位的压力,但是还是让国远席位优先执行国远任务。在一些示例中,还可以在上述目标函数的大括号中移除一项或多项。
[0105]
继续参考图1,在构建好整数规划模型后,方法100还可以包括在步骤s112处,求解所述整数规划模型并根据求解结果将航班放行任务分配至放行席位以获得席位分配结果,所述席位分配结果指示任务f与席位时间档s之间的对应关系。具体地,求解整数规划模型例如可以求解出每个的值是1还是0,从而可以确定任务集合f中的每个任务f被安排给席位时间档集合s中的哪个席位时间档s还是未被安排给任何席位时间档。当确定每个任务f被安排给席位时间档集合s中的哪个席位时间档s时,就可以确定在哪个席位的哪个时间段处理该航班放行任务。
[0106]
本文不对整数规划模型的具体求解方法作特别限制。可以理解,现在已知的或以后开发的任何合适的用于整数规划模型的求解方法都可以适用于此。例如目前最常用的求解方法有枚举法、割平面法、分支定界法、图论法、二元开发法等。另外,还可以将本文所构建的整数规划模型输入现在已知的或以后开发的任何合适的用于整数规划模型的求解器进行求解,求解器会智能地选择最适合该模型的算法,给出最优解或可行解。求解器通常集成了大多数目前最顶级的算法包,其内部有很多加速求解的小技巧,对于一般的整数规划问题而言往往有着不错的效果。例如目前商业求解器有gurobi、copt、scip/spx、matlab等,开源求解器有cbc、glpk、lp_solve等。
[0107]
在一些实施例中,当根据所述整数规划模型的求解结果获得的席位分配结果中存在未被分配给任何席位时间档的任务时,可以将该任务分配至能够执行该任务的工作负荷最小的席位时间档。
[0108]
在一些实施例中,可以生成需要将航班放行任务分配至放行席位的日期列表;遍历所述日期列表,从而对于所述日期列表中的每个日期作为待安排时段,获得该日期的任务数据、席位数据和配置数据,并通过执行根据上述任一实施例所述的方法100生成该日期的席位分配结果。比如,可以在每月开始前获得未来一个月的日期列表,然后对于未来一个月中的每个日期,获得在该日期需要被分配至放行席位的航班放行任务的任务数据、在该日期内开放的放行席位的席位数据,以及用于配置不同类型的航班的放行时间要求的配置数据;然后基于该日期的任务数据、席位数据和配置数据并通过执行根据上述任一实施例所述的方法100生成该日期的席位分配结果。
[0109]
在一些实施例中,对于所述日期列表中的每个日期,生成该日期的席位分配结果可以包括:生成区域列表,所述区域列表中的不同区域被分配的航班的目的地和/或航线区域不同;遍历所述区域列表,从而对于所述区域列表中的每个区域,获得该区域的所述任务数据、所述席位数据和所述配置数据,并通过执行根据上述任一实施例所述的方法100生成该区域在该日期的席位分配结果。具体地,假设区域列表包括上海区、北京区、西北区,那么
对于所述日期列表中的每个日期,生成该日期的席位分配结果可以包括:对于上海区、北京区、西北区中的每个区域,分别获得该区域在该日期需要被分配至放行席位的航班放行任务的任务数据、该区域在该日期内开放的放行席位的席位数据,以及该区域用于配置不同类型的航班的放行时间要求的配置数据;然后基于该区域在该日期的任务数据、席位数据和配置数据并通过执行根据上述任一实施例所述的方法100生成该区域在该日期的席位分配结果。
[0110]
在一些实施例中,对于所述日期列表中的每个日期,在生成该日期的每个区域的席位分配结果之后,还可以进行如下操作:计算该区域在该日期开放的支持相同航班类型的各个席位的总工作负荷的平均值;基于所述平均值与预设阈值范围的比较,确定是增加还是减少该区域在该日期开放的支持所述相同航班类型的席位的数量,从而生成对该区域在该日期的建议席位调整;基于所述建议席位调整,重新执行所述方法以生成该区域在该日期的建议席位分配结果。比如在基于上海区在某日期的任务数据、席位数据和配置数据生成上海区在该日期的席位分配结果之后,可以计算上海区在该日期开放的各个国远席位的总工作负荷的平均值,如果平均值高于预设阈值范围则可以建议增加上海区在该日期的国远席位数量,如果平均值低于预设阈值范围则可以建议减少上海区在该日期的国远席位数量,如果平均值落入预设阈值范围则可以建议不调整上海区在该日期的国远席位数量。然后,如果存在建议席位调整,则基于更新的席位数据重新执行根据上述任一实施例所述的方法100以生成该区域在该日期的建议席位分配结果。所述预设阈值范围可以是一个或多个值,也可以是值的范围。
[0111]
由此,可以利用方法100确定未来一段日子中的每一天各区域的席位的航班放行任务分配。
[0112]
在一些实施例中,所述任务数据还可以包括关于在待安排时段内但已经预先被分配到相应席位的相应席位时间档的已分配任务的数据,在这种情况下可以按照以下各项中的一者或多者求解所述整数规划模型:指定与所述已分配任务及所述相应席位时间档对应的x
fs
=1;使所述已分配任务不受所述相应席位的支持航班类型和区域的限制;如果属于往返或联程的两个任务均为已分配任务,则不要求所述两个任务被分配至相同席位;如果属于往返或联程的两个任务均为已分配任务并且已经预先被分配到相同席位,则仅在满足所述相同席位的时间约束的情况下使与所述两个任务共同属于往返或联程的任务被分配至所述相同席位;如果未分配任务f的往返任务和联程任务均为已分配任务并且已经预先被分配到不同席位,则使未分配任务f被分配至与往返任务相同的席位;将每个席位的最多可用航班情报区数量设置为该席位的默认最多可用航班情报区数量与该席位的已分配任务所涉及的航班情报区总数量中的最大值;将每个席位时间档的可用工作时长设置为该席位时间档的默认可用工作时长与该席位时间档的已分配任务的总工作时长中的最大值;对于具有已分配任务的席位的依次连续的第一席位时间档、第二席位时间档、第三席位时间档,如果所述第一席位时间档和所述第二席位时间档中的每一者的已分配任务的工作负荷不低于80%并且所述第三席位时间档的已分配任务的工作负荷高于50%,则不再向所述第三席位时间档分配任务。对于未分配任务而言,情况与之前描述的相同,在此不再赘述。这样的实施例例如但不限于适用于如下情况:之前已经按照方法100对未来一段日子中的每一天各区域的席位分配了任务,但是到其中某个日期当天时,临时发生了一些席位/航班/任
务的调整,那么未受该调整波及的任务可以视为已分配任务,而受到该调整波及的任务可以视为未分配任务。
[0113]
由此,方法100可以为航班放行任务的席位分配问题构建整数规划模型,根据任务数据、席位数据和配置数据为模型中的变量赋值,根据各种业务目标为模型设置约束,并根据各种期望分配效果为模型设置目标函数,并且可以通过求解所构建的整数规划模型进行航班放行任务的席位分配,相比于人工分配具有显著提高的效率,不易出错,并且可以灵活应对各种临时调整,重新分配的成本低。
[0114]
下面结合图2来介绍根据本公开的一些实施例的用于将航班放行任务分配至放行席位的装置200。如图2所示,装置200可以包括数据处理模块202、模型构建模块204和求解分配模块206。
[0115]
数据处理模块202可以被配置为:
[0116]
接收关于待安排时段内需要被分配至放行席位的航班放行任务的任务数据,关于在待安排时段内开放的放行席位的席位数据,以及用于配置不同类型的航班的放行时间要求的配置数据;
[0117]
基于所述任务数据和所述席位数据分别构建任务集合e、席位集合i、席位组集合g,其中任务f∈f,席位i∈i,席位组g∈g;
[0118]
将每个席位i根据工作时段按时间单位划分为多个席位时间档,从而基于席位数据构建包括所有席位i的所有席位时间档s的席位时间档集合s,其中席位时间档s∈s;
[0119]
定义如下变量:
[0120][0121][0122]wgi
为用于衡量席位i的工作负荷与席位i所在的席位组g的平均工作负荷之差的参数,其中0≤w
gi
≤1。
[0123]
模型构建模块204可以被配置为通过以下操作构建整数规划模型:
[0124]
设置如下约束:
[0125]
第一约束,要求对于任意一个任务f满足第一约束,要求对于任意一个任务f满足其中sf是席位时间档集合s中的能够执行任务f的席位时间档s的子集,
[0126]
第二约束,要求对于任意一个席位时间档s满足第二约束,要求对于任意一个席位时间档s满足其中fs是任务集合f中的能够在席位时间档s执行的任务f的子集,tf是任务f的任务时长,ts为席位时间档s的可用工作时长,
[0127]
第三约束,要求对于任意一个席位i满足第三约束,要求对于任意一个席位i满足其中,wli是席位i的工作负荷,fs是任务集合f中的能够在席位时间档s执行的任务f的子集,si是席位时间档集合s中的属
于席位i的席位时间档s的子集,tf是任务f的任务时长,ti是席位i的可用工作时长,gi是席位i所在的席位组,ngi是席位组gi中的席位的数量,i

是席位组gi中的席位,
[0128]
设置如下目标函数:
[0129]
min{∑
f∈f
(cf·
yf) ∑
i∈iwgi
},其中cf是任务f未被分配给任何席位时间档的惩罚成本。
[0130]
求解分配模块206可以被配置为求解所述整数规划模型并根据求解结果将航班放行任务分配至放行席位以获得席位分配结果,所述席位分配结果指示任务f与席位时间档s之间的对应关系。
[0131]
装置200的实施例基本类似于前述方法100的实施例,因此在此不再赘述,相关之处可参见方法实施例部分的说明。
[0132]
本公开还提供了一种用于将航班放行任务分配至放行席位的计算设备,其可以包括一个或多个处理器以及存储计算机可执行指令的存储器,计算机可执行指令在被一个或多个处理器执行时使得一个或多个处理器执行根据本公开的前述任一实施例所述的用于将航班放行任务分配至放行席位的方法。如图3所示,计算设备300可以包括(一个或多个)处理器302以及存储计算机可执行指令的存储器304,计算机可执行指令在被(一个或多个)处理器302执行时使得(一个或多个)处理器302执行根据本公开的前述任一实施例所述的用于将航班放行任务分配至放行席位的方法。(一个或多个)处理器302例如可以是计算设备300的中央处理单元(cpu)。(一个或多个)处理器302可以是任何类型的通用处理器,或者可以是专门设计用于将航班放行任务分配至放行席位的处理器,诸如专用集成电路(“asic”)。存储器304可以包括可由(一个或多个)处理器302访问的各种计算机可读介质。在各种实施例中,本文描述的存储器304可以包括易失性和非易失性介质、可移除和不可移除介质。例如,存储器304可以包括以下的任何组合:随机存取存储器(“ram”)、动态ram(“dram”)、静态ram(“sram”)、只读存储器(“rom”)、闪存、高速缓冲存储器和/或任何其它类型的非瞬态计算机可读介质。存储器304可以存储在被处理器302执行时使得处理器302执行根据本公开的前述任一实施例所述的用于将航班放行任务分配至放行席位的指令。
[0133]
本公开还提供了一种其上存储有计算机可执行指令的非瞬态存储介质,计算机可执行指令在被计算机执行时使得计算机执行根据本公开的前述任一实施例所述的用于将航班放行任务分配至放行席位的方法。
[0134]
说明书及权利要求中的词语“左”、“右”、“前”、“后”、“顶”、“底”、“上”、“下”、“高”、“低”等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其它取向上操作。例如,在附图中的装置倒转时,原先描述为在其它特征“之上”的特征,此时可以描述为在其它特征“之下”。装置还可以以其它方式定向(旋转90度或在其它方位),此时将相应地解释相对空间关系。
[0135]
在说明书及权利要求中,称一个元件位于另一元件“之上”、“附接”至另一元件、“连接”至另一元件、“耦接”至另一元件、或“接触”另一元件等时,该元件可以直接位于另一元件之上、直接附接至另一元件、直接连接至另一元件、直接耦接至另一元件或直接接触另一元件,或者可以存在一个或多个中间元件。相对照的是,称一个元件“直接”位于另一元件“之上”、“直接附接”至另一元件、“直接连接”至另一元件、“直接耦接”至另一元件或“直接
接触”另一元件时,将不存在中间元件。在说明书及权利要求中,一个特征布置成与另一特征“相邻”,可以指一个特征具有与相邻特征重叠的部分或者位于相邻特征上方或下方的部分。
[0136]
如在此所使用的,词语“示例性的”意指“用作示例、实例或说明”,而不是作为将被精确复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。
[0137]
如在此所使用的,词语“基本上”意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语“基本上”还允许由寄生效应、噪声以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
[0138]
另外,仅仅为了参考的目的,还可以在本文中使用“第一”、“第二”等类似术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语“第一”、“第二”和其它此类数字词语并没有暗示顺序或次序。
[0139]
还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
[0140]
在本公开中,术语“提供”从广义上用于涵盖获得对象的所有方式,因此“提供某对象”包括但不限于“购买”、“制备/制造”、“布置/设置”、“安装/装配”、和/或“订购”对象等。
[0141]
如本文所使用的,术语“和/或”包括相关联的列出项目中的一个或多个的任何和所有组合。本文中使用的术语只是出于描述特定实施例的目的,并不旨在限制本公开。如本文中使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清楚指示。
[0142]
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其它各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。可以以任何方式和/或与其它实施例的方面或元件相结合地组合以上公开的所有实施例的方面和元件,以提供多个附加实施例。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
[0143]
虽然已通过示例对本公开的一些特定实施例进行了详细说明,但本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献