基于蟻群算法的地理信息多目標帕累托解的可視化方法
【專利摘要】本發(fā)明公開了一種基于蟻群算法的地理信息多目標帕累托解的可視方法,利用地理信息數(shù)據(jù)和與目標優(yōu)化相關(guān)的統(tǒng)計數(shù)據(jù),包括以下步驟:步驟一、設(shè)定蟻群算法初始時刻的位置,該位置即用戶在想要探索的區(qū)域通過點擊選擇的地點;步驟二、設(shè)定目標條件和約束條件;步驟三、設(shè)定單一目標和相應(yīng)的權(quán)重;步驟四、設(shè)定全局的目標函數(shù);步驟五、執(zhí)行改進蟻群算法;步驟六、計算出帕累托解,并實現(xiàn)可視化表示;步驟七、利用可視化交互操作進行驗證,若所獲得的帕累托解不是理想結(jié)果,則調(diào)整步驟一至步驟三的設(shè)定值,直至獲得理想結(jié)果。本發(fā)明通過交互的算法,提升用戶的個人知識在算法中的人為影響,用戶控制蟻群算法中螞蟻的位置,讓探索區(qū)域可以用戶自定義。
【專利說明】基于蟻群算法的地理信息多目標帕累托解的可視化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及地理信息(GIS)領(lǐng)域和可視化領(lǐng)域的結(jié)合,特別是涉及一種地理信息 多目標帕累托解的可視化方法。
【背景技術(shù)】
[0002] 基于地理信息上的多目標探索決策是一個非常復(fù)雜的問題。如果將傳統(tǒng)方法結(jié)合 一個可視化的分析框架就可解決這類問題,這其中包含了多目標優(yōu)化算法、可視分析和交 互技術(shù)。
[0003] 多目標優(yōu)化算法與數(shù)學(xué)優(yōu)化難題中的多目標函數(shù)優(yōu)化算法相關(guān)聯(lián)而且是相似的。 目標優(yōu)化決策需要在兩個或者多個相互沖突的目標中進行妥協(xié)。然而,這些問題是非常難 解決的。其原因是:首先,如果用戶有多個不同的目標,且這些目標都是非常絕對的、很難量 化和需要實時調(diào)整的;那么,難點包含多目標和多約束都需要被非常合適的規(guī)定,優(yōu)化其中 的任何一個都可能是一個NP難度問題;相關(guān)的技術(shù)挑戰(zhàn)是如何同時考慮到所有的目標和 約束并且在沖突的情形下發(fā)現(xiàn)妥協(xié)的方法。其次,盡管當(dāng)前的分析方法能夠減少算法的復(fù) 雜度,但是仍然存在許多的問題,即優(yōu)化的結(jié)果可能只是局部最優(yōu)的結(jié)果,另一種情形就是 優(yōu)化的算法在利用地理信息的數(shù)據(jù)計算的時候可能是不收斂的。再次,本領(lǐng)域需要一個更 加方便和可以交互的系統(tǒng)。用戶需要可信任算法。
【發(fā)明內(nèi)容】
[0004] 為了克服上述現(xiàn)有技術(shù)存在的問題,本發(fā)明提出了一種基于蟻群算法的地理信息 多目標帕累托解的可視方法,通過改進的蟻群算法對地理信息處理后得出來的帕累托解的 可視化表示,幫助用戶進行基于地理信息方面的決策,提供給用戶一種可以反饋和交互的 優(yōu)化算法方法,并且設(shè)計出一個可視分析的框架來動態(tài)的調(diào)整算法的解來影響最后的結(jié) 果,用戶可以通過可視化的表示來查看結(jié)果,同時通過交互來影響最后算法的結(jié)果。
[0005] 本發(fā)明提出一種基于蟻群算法的地理信息多目標帕累托解的可視方法,利用地理 信息數(shù)據(jù)和與目標優(yōu)化相關(guān)的統(tǒng)計數(shù)據(jù),用可視分析技術(shù)展示多目標優(yōu)化結(jié)果,其特征在 于,該方法包括以下步驟:
[0006] 步驟一、設(shè)定蟻群算法初始時刻的位置,該位置即用戶在想要探索的區(qū)域通過點 擊選擇的地點;
[0007] 步驟二、設(shè)定目標條件和約束條件;
[0008] 步驟三、設(shè)定單一目標和相應(yīng)的權(quán)重;
[0009] 步驟四、設(shè)定全局的目標函數(shù)F,
[0010] F = MAX (condA*Avalue+condB*Bvalue-condC*Cvalue-condD*Dvalue+condE*Eva lue)其中:condA、condB、condC、condD、condE這些變量的值的范圍是0-1,表示的是用戶 限定各個單目標所占全局目標的權(quán)重分布;
[0011] 步驟五、執(zhí)行改進蟻群算法,
[0012] 步驟六、計算出帕累托解,帕累托解的組成是根據(jù)用戶自定義的目標組成的[PFva lue,PAvalue,PBvalue,PCvalue,PDvalue,PEvalue],PFvalue 代表的是目標函數(shù)的最優(yōu)解, 但是有時候并不是目標最優(yōu)就是用戶偏好的最優(yōu),用戶可能會根據(jù)某個維度重新設(shè)置權(quán) 重,獲得更好的最優(yōu)。同時PFvalue的值在蟻群算法進行比較的時候會影響信息素的值,各 個參數(shù)的定義如下:
[0013] PAvalue = condA^Avalue
[0014] PBvalue = condB^Bvalue
[0015] PCvalue = condOCvalue
[0016] PDvalue = condD^Dvalue
[0017] PEvalue = condE^Evalue
[0018] 當(dāng)蟻群算法執(zhí)行結(jié)束之后,我們將根據(jù)計算出結(jié)果的解進行排序,選取出前15% 的記錄,用平行坐標坐標的方式可視化表示,用戶可以直觀查看解,同時再進行調(diào)節(jié)參數(shù)重 新計算。
[0019] 步驟七、利用可視化交互操作進行驗證,若所獲得的帕累托解不是理想結(jié)果,則調(diào) 整步驟一至步驟三的設(shè)定值,直至獲得理想結(jié)果。
[0020] 所述改進蟻群算法,具體包括以下步驟:
[0021] 用戶在指定的地圖區(qū)域內(nèi)用鼠標點選初始螞蟻的位置;
[0022] 用戶在不同的地方點選了 30只螞蟻的位置后,開始執(zhí)行算法:
[0023] 對于30只螞蟻,同時開始進行尋路,當(dāng)每只螞蟻迭代次數(shù)少于500次時,重復(fù)執(zhí)行 以下處理,即根據(jù)信息素溶度隨機出來的隨機數(shù)(1,2, 3, 4, 5, 6, 7, 8),其中每個數(shù)字代表的 是一個方向,1代表向上,2代表向右上,3代表向右,4代表向右下,5代表向下,6代表向左 下,7代表向左,8代表向左上;
[0024] 如果挑選的方向是走不通的,那么重新在挑選一個方向;
[0025] 如果挑選的方向是走得通的,判斷螞蟻走過的地方是否滿足條件:
[0026] 若螞蟻走過的地方滿足條件,那么更新這塊的信息素+0. 001f,然后計算螞蟻的步 長,以跳出局部極值;
[0027] 若螞蟻走過的地方不滿足條件,那么更新這塊的信息素的值-0. 001f然后計算螞 蟻的步長,以跳出局部極值;
[0028] 直至迭代次數(shù)超過500次,算法結(jié)束。
[0029] 與現(xiàn)有技術(shù)相比,本發(fā)明設(shè)計出了在地理信息上優(yōu)化算法和人為交互方法想聯(lián)合 的方法,在這個框架上面,實現(xiàn)以下有益技術(shù)效果:
[0030] 1、克服了算法不收斂的難題,用戶可以強制停止優(yōu)化算法的執(zhí)行過程和減少必要 的時間;
[0031] 2、避免了算法局部最優(yōu)的問題,通過定義初始螞蟻的區(qū)域來讓算法處理的時候跳 出局部最優(yōu)解;
[0032] 3、減少了探索解的空間,增加了用戶領(lǐng)域知識作為算法的初始解;
[0033] 4、在地理信息處理上,改進了蟻群算法,使得更加的適應(yīng)地理數(shù)據(jù);
[0034] 5、多目標的帕累托解的可視化表示方法、
[0035] 6、交互的算法可以提升用戶的個人知識在算法處理過程中增加人為的影響,用戶 可以控制蟻群算法中螞蟻的位置,讓探索的區(qū)域可以用戶自定義化。
【專利附圖】
【附圖說明】
[0036] 圖1為本發(fā)明的一種基于蟻群算法的地理信息多目標帕累托解的可視化方法的 整體流程示意圖;
[0037] 圖2為本發(fā)明實施例的可視化的多目標的帕累托最優(yōu)解跟單目標最優(yōu)解之間的 關(guān)系不意圖;
[0038] 圖3為經(jīng)過小波全局閾值去噪后的脈象信號波形示意圖。
【具體實施方式】
[0039] 下面結(jié)合附圖和實施例對本發(fā)明技術(shù)方案進行詳細描述。
[0040] 本發(fā)明中的地理信息數(shù)據(jù)分為兩種,一種是可以量化的數(shù)據(jù),另一種是不能夠進 行量化的數(shù)據(jù);能夠量化的數(shù)據(jù)中可以選擇值的最大最小值,同時可以設(shè)置權(quán)限;0C,其中 〇是objective的縮寫,表示的是用戶的目標,C是conditional的縮寫,表示的是條件,在 系統(tǒng)中C是必須得滿足的條件,比如:在300米范圍內(nèi)至少有個地鐵站。0是可計算的目標, 比如:26-50歲人口密度最大化,人口密度是可以量化和計算的??梢詫⒛硞€目標設(shè)定為約 束(C),也可以設(shè)置為目標(0)。設(shè)定完約束將用戶的設(shè)定值傳遞給后臺的蟻群算法進行 多目標優(yōu)化的計算,設(shè)定全局的目標函數(shù),目標函數(shù)的定義是:用戶希望根據(jù)自定義的某種 目的從而達到此目的的最大化,具體實例為如果用戶需要在某個區(qū)域進行開超市或者開酒 店,那么用戶的目標就是利潤最大化,那么當(dāng)用戶調(diào)整完各個參量的參數(shù)的時候,提交時將 根據(jù)線性的目標函數(shù),此處的目標函數(shù)是系統(tǒng)開發(fā)人員自定義的,各個領(lǐng)域的計算方法公 式是不同的:
[0041] F = MAX (condA*Avalue+condB*Bvalue-condC*Cvalue-condD*Dvalue+condE*Eva lue)
[0042] 此處:F的值就是全局函數(shù)的目標值。
[0043] condA, condB, condC, condD, condE這些變量的值的范圍是0-1,表示的是用戶限 定各個單目標所占全局目標的權(quán)重分布。
[0044] Avalue:人口密度最大化
[0045] Bvalue: 26-50歲人口密度最大化
[0046] Cvalue:選擇的點的2000米內(nèi)的賓館數(shù)目最少
[0047] Dvalue:選擇點的2000米內(nèi)的星級數(shù)目小于3顆星的賓館數(shù)目最少
[0048] Evalue.選擇點的周圍1500米內(nèi)星級數(shù)目超過4顆星的賓館數(shù)目最多
[0049] 其中所有的Avalue, Bvalue, Cvalue, Dvalue, Evalue的值由于各個指標的量綱是 不同的,為了使數(shù)據(jù)更加的科學(xué)和合理,將他們?nèi)慷細w一化為0-1范圍上的值。
[0050] 如圖2所示,蟻群算法將計算后的結(jié)果以json格式傳遞給前臺,前臺(web)通過 解析json格式的數(shù)據(jù),用可視化中的平行坐標系將蟻群算法跑出來的帕累托解。
[0051] 本發(fā)明的帕累托解的組成是根據(jù)用戶自定義的目標組成的[PFvalue,PAvalue,PB value, PCvalue, FOvalue, PEvalue],PFvalue代表的是目標函數(shù)的最優(yōu)解,但是有時候并不 是目標最優(yōu)就是用戶偏好的最優(yōu),用戶可能會根據(jù)某個維度重新設(shè)置權(quán)重,獲得更好的最 優(yōu)。同時PFvalue的值在蟻群算法進行比較的時候會影響信息素的值,各個參數(shù)的定義如 下:
[0052] PAvalue = condA*Avalue
[0053] PBvalue = condB*Bvalue
[0054] PCvalue = condOCvalue
[0055] PDvalue = condD*Dvalue
[0056] PEvalue = condE*Evalue
[0057] 當(dāng)蟻群算法執(zhí)行結(jié)束之后,我們將根據(jù)計算出結(jié)果的解進行排序,選取出前15% 的記錄,用平行坐標坐標的方式可視化表示,其中的第一列數(shù)據(jù)表示的整體目標PFvalue 是目標函數(shù)的最優(yōu)解,即效益最大化,剩下的列是單個目標的最優(yōu)解PAvalue, PBvalue, PC value, FOvalue, PEvalue。PAvalue:人口密度最大化。PBvalue :26_50 歲人口密度最大化。 PCvalue :選擇的點的2000米內(nèi)的賓館數(shù)目最少。rovalue :選擇點的2000米內(nèi)的星級數(shù) 目小于3顆星的賓館數(shù)目最少。PEvalue :選擇點的周圍1500米內(nèi)星級數(shù)目超過4顆星的 賓館數(shù)目最多。在圖中可以很明顯的看出多目標的帕累托最優(yōu)解跟單目標最優(yōu)解之間的關(guān) 系。
[0058] 如圖3所示,計算的最終結(jié)果得到用蟻群算法找出的目標點區(qū)域和相應(yīng)的帕累托 解的表示,最底層表示的是蟻群算法的執(zhí)行歷史,同時通過迭代的方式展示出來,可以看出 算法的收斂性和局部最優(yōu)的問題。
[0059] 下面以為本發(fā)明實施方式的詳細描述。
[0060] 本發(fā)明主要是基于兩類數(shù)據(jù):地理信息數(shù)據(jù)和統(tǒng)計數(shù)據(jù),地理信息數(shù)據(jù)主要是在 從網(wǎng)絡(luò)資訊獲取。例如:http://www. openstreetmap. org/,其中提供了基本的地理信息,包 括邊界、建筑物、交通、娛樂設(shè)施和支持本發(fā)明需求的基本的數(shù)據(jù)。這些數(shù)據(jù)展示在主要的 地圖上。默認顯示的只有建筑物、道路、海、河信息以便于減少信息的過載。其他的信息只 有當(dāng)需要時才通過點擊按鈕可以查看相應(yīng)的信息。
[0061] 統(tǒng)計信息用于為終端用戶做決策支持。本實施例收集了一些香港的統(tǒng)計數(shù)據(jù),大 部分數(shù)據(jù)是來自香港2011年的人口普查的數(shù)據(jù),它主要包括詳細的人口信息、區(qū)域邊界、 收入水平、教育情況等?;谶@些統(tǒng)計數(shù)據(jù),執(zhí)行蟻群算法為終端用戶進行決策支持。
[0062] 在數(shù)據(jù)的預(yù)處理階段,將上述的統(tǒng)計數(shù)據(jù)分為四類:人口、經(jīng)濟、教育和住房情 況。本發(fā)明中的這些數(shù)據(jù)分別按照兩個層級進行歸納,即第一個層級是區(qū)域總體的情況, 第二個層別是每個區(qū)域詳細的情況。例如:對于收入的數(shù)據(jù),第一個層級表示的是各個區(qū) 域收入的中位數(shù),第二個層級的數(shù)據(jù)包括沒有收入的、月收入不超過6000元的、月收入在 6000-10000元之間的、月收入在10000-20000元之間的、月收入在20000-30000元之間的和 月收入超過30000元。這些統(tǒng)計數(shù)據(jù)和地理數(shù)據(jù)可以共享給終端的用戶。
[0063] 以香港九龍為例作為本發(fā)明實施的關(guān)鍵地:該地區(qū)共有2. 1百萬常駐人口,五個 大分區(qū)和120個子分區(qū)。把傳統(tǒng)的地理信息的矢量數(shù)據(jù)根據(jù)經(jīng)緯度劃分成1000*1000的像 素點,所有的數(shù)據(jù)點代表的是地理信息的一個矢量小方格,為了方便算法運行本發(fā)明就用 這個點來代表這個小塊的區(qū)域,都是蟻群算法所能夠執(zhí)行找到的點。
[0064] 對于一個用戶來說,解決問題主要包含以下幾個步驟:
[0065] 定義目標和約束
[0066] 約束:a.地點在九龍
[0067] b.在300米范圍內(nèi)至少有個地鐵站
[0068] c.區(qū)域中的人的平均月收入至少在14000元 [0069] 目標:a.人口密度最大化
[0070] b. 26-50歲人口密度最大化
[0071] c.選擇的點的2000米內(nèi)的賓館數(shù)目最少
[0072] d.選擇點的2000米內(nèi)的星級數(shù)目小于3顆星的賓館數(shù)目最少
[0073] e.選擇點的周圍1500米內(nèi)星級數(shù)目超過4顆星的賓館數(shù)目最多
[0074] f.在選擇點的300米內(nèi)的公交車站的數(shù)目最多
[0075] g.選擇點離地鐵站的距離最小化
[0076] 增加蟻群算法開始時候的初始解,該步驟具體包括:初始時刻,在用戶想要探索的 區(qū)域通過點擊選擇地點,作為蟻群算法的初始探索解;
[0077] 獲取多目標優(yōu)化的最優(yōu)方法結(jié)合和利用可視交互來驗證帕累托解,該步驟具體包 括:通過蟻群算法返回結(jié)果的json數(shù)據(jù),將帕累托解以平行坐標系和改進直方圖的效果展 示出來,方便用戶對于全局最優(yōu)解和單一最優(yōu)解之間的關(guān)系的探索;
[0078] 調(diào)整一些約束、權(quán)重和初始解直到獲取一個用戶滿意的方案為止。
[0079] 以上所述,僅為本發(fā)明的較佳實施例而已,用于幫助理解本發(fā)明的方法及核心思 想,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有 改變之處,所以本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1. 一種基于蟻群算法的地理信息多目標帕累托解的可視方法,利用地理信息數(shù)據(jù)和與 目標優(yōu)化相關(guān)的統(tǒng)計數(shù)據(jù),用可視分析技術(shù)展示多目標優(yōu)化結(jié)果,其特征在于,該方法包括 以下步驟: 步驟一、設(shè)定蟻群算法初始時刻的位置,該位置即用戶在想要探索的區(qū)域通過點擊選 擇的地點; 步驟二、設(shè)定目標條件和約束條件; 步驟三、設(shè)定單一目標和相應(yīng)的權(quán)重; 步驟四、設(shè)定全局的目標函數(shù)F, F = MAX(condA*Avalue+condB*Bvalue-condC*Cvalue-condD*Dvalue+condE*Evalue) 其中:condA、condB、condC、condD、condE這些變量的值的范圍是0-1,表示的是用戶限定各 個單目標所占全局目標的權(quán)重分布; 步驟五、執(zhí)行改進蟻群算法, 步驟六、計算出帕累托解,帕累托解的組成是根據(jù)用戶自定義的目標組成的[PFvalue, PAvalue, PBvalue, PCvalue, FOvalue, PEvalue],PFvalue 代表的是目標函數(shù)的最優(yōu)解,但是 有時候并不是目標最優(yōu)就是用戶偏好的最優(yōu),用戶可能會根據(jù)某個維度重新設(shè)置權(quán)重,獲 得更好的最優(yōu)。同時PFvalue的值在蟻群算法進行比較的時候會影響信息素的值,各個參 數(shù)的定義如下: PAvalue = condA*Avalue PBvalue = condB*Bvalue PCvalue = condOCvalue PDvalue = condD*Dvalue PEvalue = condE*Evalue 當(dāng)蟻群算法執(zhí)行結(jié)束之后,我們將根據(jù)計算出結(jié)果的解進行排序,選取出前15%的記 錄,用平行坐標坐標的方式可視化表示,用戶可以直觀查看解,同時再進行調(diào)節(jié)參數(shù)重新計 算。 步驟七、利用可視化交互操作進行驗證,若所獲得的帕累托解不是理想結(jié)果,則調(diào)整步 驟一至步驟三的設(shè)定值,直至獲得理想結(jié)果。
2. 如權(quán)利要求1所述的基于蟻群算法的地理信息多目標帕累托解的可視方法,其特征 在于,所述改進蟻群算法,具體包括以下步驟: 用戶在指定的地圖區(qū)域內(nèi)用鼠標點選初始螞蟻的位置; 用戶在不同的地方點選了 30只螞蟻的位置后,開始執(zhí)行算法: 對于30只螞蟻,同時開始進行尋路,當(dāng)每只螞蟻迭代次數(shù)少于500次時,重復(fù)執(zhí)行以下 處理,即根據(jù)信息素溶度隨機出來的隨機數(shù)(1,2, 3, 4, 5, 6, 7, 8),其中每個數(shù)字代表的是一 個方向,1代表向上,2代表向右上,3代表向右,4代表向右下,5代表向下,6代表向左下,7 代表向左,8代表向左上; 如果挑選的方向是走不通的,那么重新在挑選一個方向; 如果挑選的方向是走得通的,判斷螞蟻走過的地方是否滿足條件: 若螞蟻走過的地方滿足條件,那么更新這塊的信息素+0. 〇〇lf,然后計算螞蟻的步長, 以跳出局部極值; 若螞蟻走過的地方不滿足條件,那么更新這塊的信息素的值-o. OOlf然后計算螞蟻的 步長,以跳出局部極值; 直至迭代次數(shù)超過500次,算法結(jié)束。
【文檔編號】G06F17/30GK104156483SQ201410425441
【公開日】2014年11月19日 申請日期:2014年8月26日 優(yōu)先權(quán)日:2014年8月26日
【發(fā)明者】張加萬, 陳輝, 蔣心怡, 康凱 申請人:天津大學(xué)