一種基于聚類和節(jié)約算法的路線優(yōu)化推薦方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設及路線導航領(lǐng)域,更具體地說設及一種基于聚類和節(jié)約算法的為煙草行 業(yè)客戶經(jīng)理拜訪零售戶的路線優(yōu)化推薦方法。
【背景技術(shù)】
[0002] 客戶經(jīng)理是煙草公司與零售客戶的橋梁,客戶經(jīng)理通過客戶拜訪進行信息溝通、 經(jīng)營指導、品牌培育和終端建設等客戶服務,同時,從零售客戶中捜集市場信息,為公司決 策提供依據(jù)。每個客戶經(jīng)理一般負責一、二百個零售戶,每天需要拜訪10-20戶,工作責任 大、任務重,因此合理規(guī)劃客戶經(jīng)理的拜訪路徑對于提高客戶經(jīng)理的拜訪效率和拜訪質(zhì)量 具有重要的研究意義。
[0003] 客戶經(jīng)理拜訪路徑問題實際上是一個旅行商(traveling salesman problem, TSP)問題,客戶經(jīng)理從公司出發(fā),確定一條訪遍預拜訪零售戶的最短路徑,最后返回公司。 TSP問題是一個NP完全難題,求解方法主要采用啟發(fā)式近似算法,例如蟻群算法、遺傳算法 (genetic algorithm,GA)、免疫算法(immune algorithms,IA)、模擬退火算法(Simulated Annealing,SA)、蛙跳算法(Shuffled Rrog Leaping Algorithm,SFLA)等。運些算法大都存 在容易陷入局部最優(yōu)、過早收斂、收斂速度慢、收斂精度低等缺陷。
[0004] 節(jié)約算法由Clarke和Wright于1964年提出,該算法思想簡單,是一種很好的解決 旅行商問題的算法,可W快速得到問題的滿意解。然而目前并沒有利用節(jié)約算法為優(yōu)化推 薦路線方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于聚類和節(jié)約算法的路線優(yōu) 化推薦方法。本發(fā)明通過對煙草行業(yè)客戶經(jīng)理的工作流程及工作特點進行研究分析,通過 利用k-means聚類方法零售戶劃分到不同的區(qū)域,根據(jù)拜訪率、客戶類型、走訪量、路徑最優(yōu) 及其他特殊要求等條件,推薦每天的拜訪客戶,根據(jù)推薦的客戶位置分布或者對于客戶經(jīng) 理自選的拜訪客戶,利用節(jié)約算法規(guī)劃客戶經(jīng)理的拜訪路徑,使得拜訪路徑最優(yōu),拜訪時間 最短,提高了客戶經(jīng)理的工作效率。
[0006] 本發(fā)明提供了一種基于聚類和節(jié)約算法的路線優(yōu)化推薦方法,其特征在于,依次 包括如下步驟:
[0007] 步驟1:建立問題數(shù)學模型:
[000引步驟1.1:把客戶經(jīng)理服務的每個零售戶作為一個點,所有預拜訪客戶構(gòu)成一個集 合:C=I^l, C2,...Cn};
[0009] 步驟1.2:規(guī)劃一條拜訪路線,使得總的拜訪路徑最短,滿足:
[0010] minF(C) =d(S, Ci)+Xd(Ci)Cj )+(Kcj,S)
[0011] 其中d(S,Ci)表示公司S到某一客戶i的距離,Xd(ci,cj)表示從客戶i經(jīng)過其他所 有客戶到達客戶j的路徑距離,cKcj,S)表示客戶j到公司S的距離,i = l'''n, j = l'''n, j辛i, n為大于等于O的整數(shù);
[0012] 步驟2:基于改進K-means聚類算法的煙草零售戶區(qū)域劃分,按照零售戶之間的路 程距離進行聚類,使得每個聚類中的零售戶距離相對最近;
[0013] 步驟3:基于隨機數(shù)字表示法和分層抽樣相結(jié)合的方法進行預拜訪客戶推薦,把k 個聚類劃分看作k層,對每個聚類中的零售戶進行編號,根據(jù)客戶檔次給予不同數(shù)目的編 號,利用隨機數(shù)字法從中選取客戶;
[0014] 步驟4:基于節(jié)約算法優(yōu)化零售戶拜訪路徑,使客戶經(jīng)理拜訪完所有的客戶所需時 間最短,W服務每一個客戶節(jié)點為起始解,根據(jù)=角形兩邊之和大于第=邊的性質(zhì),起始狀
況為每服務一個客戶后便回到原點,拜訪總路程為: 為客戶i與客戶j 之間的距離;
[0015] 而后計算路線間合并后的路程節(jié)約值:
[0016] S (i , J) - doi+dio+山j+djo-(doi+djo+dij) - di〇+山廣cUj,
[0017] 將得到的路程節(jié)約值W降序排序而依次合并路線,最后按照最大的節(jié)約值歸并拜 訪客戶的路徑,得到最優(yōu)拜訪路徑;
[0018] 步驟5:將步驟4中得到的最優(yōu)拜訪路徑W無線/有線的方式發(fā)送到客戶經(jīng)理佩帶 的無線終端,其中無線終端包括顯示裝置,無線終端接收最優(yōu)拜訪路徑后在顯示裝置上顯 示,無線終端能夠W語音的方式播放最優(yōu)拜訪路徑導航信息,客戶經(jīng)理根據(jù)最優(yōu)拜訪路徑 進行拜訪。
[0019] 優(yōu)選地,所述步驟2的具體步驟如下:
[0020] 步驟2.1:從客戶集C中選擇k個客戶cl,C2,…,ck作為初始的聚類中屯、;
[0021] 步驟2.2:把客戶集C中其余的客戶分配到與之距離最近的聚類中,對于每個客戶 Ci,找出一個簇中屯、hm,使得它們之間的距離d(Ci,hm)最小,然后把Cl歸并到第m個聚簇中;
[0022] 步驟2.3:把所有的客戶都劃歸到相應的聚簇之后,根據(jù)聚簇中每個客戶的坐標點 重新計算該聚簇的核屯、點i;
[0023] 步驟2.4:對于每個聚簇,計算每個客戶坐標與核屯、點的坐標距離,找出與之最 接近的客戶點作為該聚簇的核屯、點hi;
[0024] 步驟2.5:循環(huán)執(zhí)行步驟2.2-步驟2.3,直到客戶的劃分不再發(fā)生變化。
[0025] 優(yōu)選地,所述步驟3具體為:
[0026] 采用隨機數(shù)字表法與分層抽樣相結(jié)合的方法,通過步驟2的聚類算法把所有客戶 劃分到k個聚簇中,相當于分為k個分層,在每個分層中按照客戶的重要程度對每個客戶進 行編號,利用隨機數(shù)字表法從中選取一個客戶,則選出P個客戶作為每天要拜訪的客戶,滿 足:
[0027] 1)如果要拜訪的客戶數(shù)P大于聚簇的個數(shù)k,則在k個聚簇中隨機選取p-k個聚簇, 再在運些聚簇中選擇客戶;
[0028] 2)如果要拜訪的客戶數(shù)P小于等于聚簇個數(shù)k,則對k個聚簇隨機選擇P個聚簇,再 在運些聚簇中選擇客戶。
[0029] 優(yōu)選地,所述步驟4具體步驟為:
[0030] 步驟4.1:制作客戶拜訪里程矩陣,列出原點到客戶及客戶間的最短距離;
[0031] 步驟4.2:計算客戶i、j拜訪路程的節(jié)約值s(i,j),構(gòu)建原點到客戶及客戶間的節(jié) 約值矩陣,并從下=角矩陣中選擇出最大節(jié)約值;
[0032] 步驟4.3:檢驗節(jié)約值s(i,j)對應的兩客戶點是否滿足如下條件:
[0033] 步驟4.3.1:若節(jié)約值中對應的兩客戶點i和j均不在已構(gòu)成的線路上,得到線路段 O一 i一 j一O,轉(zhuǎn)步驟 4.4;
[0034] 步驟4.3.2:若節(jié)約值中對應的一客戶點i或j在已構(gòu)成的線路上,且不是線路的內(nèi) 點,即不與原點直接相連,則連接得到線路〇-一1一_1一〇或〇一1一_1^-〇,轉(zhuǎn)步驟4.4;
[0035] 步驟4.3.3:若節(jié)約值中對應的兩客戶點i和j在已構(gòu)成的不同線路上,且均不是內(nèi) 點,則得到線路〇-一1一_]'^-〇,轉(zhuǎn)步驟4.4;
[0036] 步驟4.3.4:若節(jié)約值中對應的兩客戶點i和j在已構(gòu)成的同一條線路上,則不能再 進行連接,轉(zhuǎn)步驟4.4;
[0037] 步驟4.4:去掉節(jié)約值矩陣中第i行和j列,則客戶點i不能再連接到其它客戶點,客 戶點j不能由其它客戶點到達;
[0038] 步驟4.5:待節(jié)約值矩陣中所有元素劃去,則得到一條符合條件的線路,終止;否則 從下=角節(jié)約值矩陣沒有劃去的元素中選擇最大元素,轉(zhuǎn)步驟4.3,如果找不出最大的元 素,轉(zhuǎn)步驟4.6;
[0039] 步驟4.6:對于節(jié)約矩陣中沒有劃去的元素 i和j,在對應的里程矩陣中找到里程值 最小的元素,如果運兩個元素分別在不同的線路上,則連接運兩條線路,轉(zhuǎn)步驟4.4。
[0040] 優(yōu)選地