文章編號:2096-1472(2022)-02-26-03
DOI:10.19644/j.cnki.issn2096-1472.2022.002.007
摘? 要:收益管理是航空公司在航班銷售期間合理分配有限的航班座位,以期在競爭環(huán)境下獲得最大收益的有效經營策略。本文首先介紹了座位分配常用的兩種算法;然后給出了算法的實現方法,并特別強調了在不同應用環(huán)境下開發(fā)算法動態(tài)鏈接庫的方法;最后對兩種算法的計算結果和計算時間進行了細致的比較分析。結果表明,兩種算法在座位分配效果上無明顯差異,但第二種算法有明顯的計算時間優(yōu)勢,可為航空公司業(yè)務實踐提供指導。
關鍵詞:收益管理;座位分配;期望邊際座位收益;動態(tài)鏈接庫
中圖分類號:TP311.1? ? ?文獻標識碼:A
Implementation and Analysis of Flight Seat Control Model
WANG Hongjian
(Xiamen Airlines, Xiamen 361006)
wanghongjian@xiamenair.com
Abstract: Revenue management is an effective business strategy for airlines to reasonably allocate limited flight seats during flight sales in order to obtain maximum revenue in a competitive environment. Firstly, two commonly used algorithms for seat allocation are introduced. Then this paper proposes to realize an algorithm implementation method, and particularly emphasize the method of developing algorithm dynamic link library in different application environments. Finally, the calculation results and calculation time of the two algorithms are compared in detail. Results showed that there is no obvious difference between the two algorithms in seat allocation effect, but the second algorithm has obvious advantages in computing time and provides guidance for airline business practices.
Keywords: revenue management; inventory control; expected marginal seat revenue; dynamic link library
1 ?引言(Introduction)
中國民航運輸業(yè)務隨著國家經濟規(guī)模的持續(xù)增長而迅速增長,但也帶來各航空公司之間持續(xù)不斷的激烈競爭。航空公司之間競爭的焦點是服務與價格的組合競爭,而解決這一競爭的重要技術之一是已被世界上超過80%的航空公司采用的收益管理理論與方法[1]。收益管理的主要目標是在航班銷售周期內,針對固定數量的航班物理座位,動態(tài)劃分和控制不同價格的不同艙位的實際可利用座位數,以使這種易逝類商品能分別以較高的價格出售,達到航班收入最大化的目標[2]。多年來,這一方法為世界范圍內的大中型航空公司每年增加數億元的額外收入,是航空公司經營過程中普遍采用的重要方法。在大數據及人工智能蓬勃發(fā)展的今日,這一方法已經擴展到酒店、出租車、高鐵等多個行業(yè)[3],產生了巨大的社會經濟效益。
國內有關收益管理方法的研究,早期更關注國外相關概念的全盤引入[4],或基于基礎概念在多航段應用場景下的擴展[5]。由于座位分配的基礎算法[6-7]需要大量的積分運算,在實際工程應用中有一定的實現難度,且對運行時間要求很高,因此國內航空公司主要采用國外的軟件系統(tǒng),在核心算法的實現上缺少自主研發(fā)且實際投入使用的類似系統(tǒng)。
為此,本文給出了兩種主流座位分配算法的軟件設計與實現方法,并分析比較了這兩種算法的適應場景,為國產化同類軟件系統(tǒng)的研究與開發(fā)進行了有益嘗試。
2? ?航班座位控制算法(Flight seat control algorithm)
航班銷售過程統(tǒng)計數據表明,一般高價艙位旅客會晚于低價艙位旅客購票,因此,航班座位控制的關鍵是在已知剩余座位數和各艙位預測需求的情況下,針對各艙位的可銷售座位數的設定,可銷售座位數稱為AU(Available Unit, AU)。假設航班目前共有100 個剩余座位,有Y、P、E共3 個價格從高到低的艙位可供銷售,設定AU數依次為100、80、50。該設定允許低價艙位旅客購買高價艙位機票,反之,則受到限制。當E艙位銷售數超過50時,就要關閉該艙,僅容許銷售Y和P兩個更高價艙位,當P艙和E艙的銷售數之和大于80(30+50)時,就要關閉P艙和E艙,僅保留Y艙銷售。由此可見,AU的設置首先需要計算高價艙位對低價艙位的座位保護數[6],此例中,Y艙對P艙和E艙的保護座位數為20,P艙對E艙的保護座位數為30。這樣的座位控制策略可以保證預期高價艙位旅客的訂座需求,從而達到航班銷售收入最大化的目的。實際使用中,一般假定各艙位旅客的需求服從正態(tài)分布,先得到各艙位的訂座需求預測結果,然后采用期望邊際座位收益(Expected Marginal Seat Revenue, EMSR)模型進行各艙位的保護數計算。EMSR的方法最早由麻省理工學院的PETER提出,稱為EMSRa模型[6],后又經改進,稱為EMSRb模型[7]。這兩種模型,特別是后期提出的EMSRb模型,已經成為收益管理的基準座位分配模型,在學術界得到長期關注,在產業(yè)界得到廣泛應用。
2.1? ?EMSRa模型
顯然,EMSRb模型和EMSRa模型相比,可明顯減少積分運算次數。
3? ?算法實現(The implementation of the algorithm)
3.1? ?算法實現流程
依據前面介紹的算法模型,假設給定Y、Q、E、P共4 個從高價到低價的艙位。本文設計了EMSRa和EMSRb的模型計算流程圖,分別如圖1和圖2所示。在圖1的公式(1)計算和圖2的公式(6)計算步驟,需要依據輸入得到的各艙位需求預測的均值和標準差按照正態(tài)分布進行積分運算,以獲得相應公式中的概率。
3.2? ?動態(tài)鏈接庫
由于上述EMSR算法實現較為復雜,且在航空公司的實際應用中往往需要在多個相關應用系統(tǒng)調用,滿足不同編程語言環(huán)境使用的需求,因此,借鑒其他研究者在類似應用環(huán)境下的編程經驗[8-9],本文采用動態(tài)鏈接庫實現兩個算法,并用C++編程實現。
動態(tài)鏈接庫有宏定義和模塊定義兩種實現方法,宏定義在函數調用時,需在宿主語言進行預聲明,使用起來較為麻煩;模塊定義方式在宿主語言中的使用較為簡潔,因此本文選擇模塊定義的方式實現。
動態(tài)鏈接庫的編寫過程如下:
(1)創(chuàng)建一個源文件作為定義的dll應用程序的入口,并在該源文件中依次用非托管的方法編寫EMSR算法,然后將得到的座位分配數作為返回值依次輸出;
(2)宏定義extern "C" __declspec(dllexport),以便于在編寫應用程序時通過DllImport調用非托管的C++編寫的dll文件;
(3)編寫def模塊,并編譯項目,在Debug目錄生成dll文件;
(4)將生成的dll文件放到應用程序項目文件夾下bin目錄中的Debug目錄下;
(5)在應用程序中添加對“System.Runtime.InteropServices”的引用,以調用DllImport;
(6)用DllImport作為C#中對C++編寫的dll文件的導入入口特征,并通過static extern與dll文件中宏定義的extern "C"進行對應,完成對動態(tài)鏈接庫的調用。
4? ?算法分析與比較(Algorithm analysis and comparison)
為了比較算法的有效性,本文選取三種典型情況進行計算結果分析。取價格從高到低Y、Q、E、P共4 個艙位,總需求在下面說明范圍內較小浮動,AU數(AUY、AUQ、AUE、AUP)為分別采用EMSRa和EMSRb算法得到的決策結果,即在航班剩余座位數已知的情況下,如何給上述4 個艙位合理分配可銷售座位數。座位分配遵從高價包含低價的原則,分配給低價艙的座位可同時被高價艙銷售,因此,AUY、AUQ、AUE、AUP逐次變小。航班剩余的所有座位數都可供最高票價的Y艙銷售,所以AUY等于航班當前剩余座位數??偸找嬷冈贏U數確定的情況下,航班上所有剩余座位能獲得的期望座位收益總和,該值越大,說明AU數的分配越理想。
(1)情形1:在各艙價格差異較大、需求均勻增長的情況下,如Y艙價格高于2,000且其余各艙位價格差距大于500,各艙位需求從高到低在10、20、30、30左右,標準差在10%左右時,計算結果如表1所示??梢?,兩種算法的總收益無明顯差異,EMSRa稍高。
(2)情形2:在各艙價格差異較大、高價艙與低價艙需求皆旺盛的情況下,如各艙價格同情形1,但艙位需求都在45左右變化時,計算結果如表2所示。此時可見EMSRa的P艙的分配數較EMSRb低,其E艙分配數比EMSRb稍高,但EMSRb的總收益稍高。
(3)情形3:價格同上情況下,高價艙需求較少,低價艙需求旺盛時,EMSRa總收益稍高,如表3所示。各艙位需求從高到低在3、4、10、80左右變動。
從上述分析可見,兩種模型在各種情況下總收益相距甚微,但計算時間相差較大。上述情形2和3,是航空公司實際運行中經常面臨的場景,且情形2對最低價艙位預留座位數較少,次低價艙位則保留了較多的座位數,這不利于需求整體旺盛時,和其他航空公司的低價競爭,因此應用場景下建議航空公司采用EMSRb算法。
5? ?結論(Conclusion)
針對航空公司收益管理中航班剩余座位分配的兩種算法EMSRa和EMSRb,本文首先介紹了兩種算法的計算原理;然后,分別給出了兩種算法的實現流程,并特別強調了用C++語言將算法編寫為動態(tài)鏈接庫的方法,以期在不同應用開發(fā)環(huán)境下得到軟件復用。本文在不同應用場景下仿真比較了兩種算法的座位分配結果和計算實踐,結果表明,兩種算法的座位分配結果并無明顯差異,但后者的計算效率明顯優(yōu)于前者。本文的研究結果可直接為航空公司相關業(yè)務實踐提供指導。
參考文獻(References)
[1] 李豪,彭慶,譚美容.面向乘客策略行為的航空公司艙位控制與動態(tài)定價模型[J].控制與決策,2018,33(07):1295-1302.
[2] 秦瑛,霍佳震,陳軍,等.基于需求轉移的航空公司座位分配博弈模型[J].統(tǒng)計與決策,2016,32(02):56-60.
[3] 閆振英,韓寶明,李曉娟,等.考慮旅客選擇行為的高鐵席位動態(tài)控制策略[J].交通運輸系統(tǒng)工程與信息,2019,19(01):118-124.
[4] 衡紅軍,黃小榮,王治寶.EMSR在航空收益管理系統(tǒng)中的應用[J].計算機工程,2003(12):139-141.
[5] 樊瑋,蘇秋波.基于分布估計算法的多航段座位分配模型[J].信息與控制,2012,41(06):774-778,785.
[6] PETER P B. Application of a probabilistic decision model to airline seat inventory control[J]. Operation Research, 1989, 37(02):183-197.
[7] GUILLERMO G, HUSEYIN T. Revenue management and pricing analytics[M]. New York: Springer, 2019:23-47.
[8] 張正,賈小林.面向NB-IOT智能設備動態(tài)鏈接庫的遠程技術研究及應用[J].計算機應用與軟件,2021,38(06):170-175.
[9] 劉琴.大數據分析下分布式數據流處理技術研究[J].軟件工程,2019,22(12):44-46.
作者簡介:
王洪建(1966-),男,碩士,高級工程師.研究領域:計算機應用,智能優(yōu)化.
1276500520206