国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于偏好的有向圖路徑搜索系統(tǒng)設(shè)計與實現(xiàn)

2017-09-09 15:53:32趙曉東方歡陳思宇
軟件導(dǎo)刊 2017年8期
關(guān)鍵詞:有向圖路徑優(yōu)化

趙曉東+方歡+陳思宇

摘 要:利用Java對基于偏好的有向圖路徑搜索系統(tǒng)進(jìn)行了分析和設(shè)計,用來解決以下實際問題:有向圖中邊的權(quán)值是一個區(qū)間[a,b],其中a表示最小代價,b表示最大代價,根據(jù)個人偏好給出有向圖中邊的偏好因子和一個目標(biāo)值F,找出從源點(diǎn)到匯點(diǎn)的所有路徑中滿足邊的偏好權(quán)重值之和小于F的路徑集合。提出的基于偏好的路徑搜索可在相關(guān)優(yōu)化算法中廣泛應(yīng)用。

關(guān)鍵詞:偏好;權(quán)值區(qū)間;有向圖;路徑搜索;路徑優(yōu)化

DOIDOI:10.11907/rjdk.171321

中圖分類號:TP319

文獻(xiàn)標(biāo)識碼:A 文章編號文章編號:1672-7800(2017)008-0108-03

0 引言

路徑搜索問題在很多領(lǐng)域都有其研究價值,很多問題最終都可轉(zhuǎn)化為圖的路徑搜索問題。隨著社會的發(fā)展,有向圖最短路徑搜索研究成果已經(jīng)無法滿足需求。為此,本文設(shè)計一套給定條件下基于偏好的有向圖路徑搜索系統(tǒng)。

實際生活中往往會遇到做一件事情的代價在一定范圍內(nèi)波動的問題,將這種問題轉(zhuǎn)化為圖的問題進(jìn)行解決,引入權(quán)重區(qū)間來表示圖中邊的權(quán)取值范圍。對于同一件事情有不同的解決方法,由于各種因素導(dǎo)致不同的方法有著不同的傾向,于是將問題轉(zhuǎn)化為圖的問題后引入偏好因子來衡量個人對邊的傾向程度,表示對該邊的傾向占整體的比例。實際問題中由于某些因素的限制,會使得問題處理具有一定的局限性。即便問題的處理有多樣性也需要根據(jù)實際選擇解決方法,將這種問題轉(zhuǎn)化為圖的問題引入偏好權(quán)重表示,根據(jù)代價的范圍以及傾向程度決定帶入計算的具體值。為了滿足用戶對圖的邊偏好以及圖中邊權(quán)重的波動需求,通過用戶輸入圖的起點(diǎn)、終點(diǎn)、目標(biāo)值、各邊偏好因子和權(quán)重區(qū)間,在有向圖環(huán)境下搜索出所有滿足目標(biāo)值條件的路徑,很容易得到最短路徑。

1 需求與功能分析

1.1 需求分析

隨著計算機(jī)的普及,人們遇到問題時都希望通過計算機(jī)技術(shù)進(jìn)行科學(xué)合理的解決。諸如房子裝修問題,用戶在一定預(yù)算下對不同的房間裝修喜好要求不一,又如用戶需要在一定時間內(nèi)從地方A到地方B,由于路況等因素,對于不同路線的傾向程度不一樣,考慮限速、堵車等因素,不同路段行駛時間預(yù)計在一定范圍內(nèi),類似上述問題都可以轉(zhuǎn)化為給定條件下基于偏好的有向圖路徑搜索。為了解決這類問題,設(shè)計開發(fā)了給定條件下基于偏好的有向圖的路徑搜索系統(tǒng)。偏好因子采用兩種不同的表示方式,一種是用戶只知道大致的偏好程度無法具體量化,另一種是根據(jù)各邊的部分偏好占整體偏好的比例計算。用戶通過輸入圖的頂點(diǎn)數(shù)、起始點(diǎn)、終點(diǎn)、目標(biāo)值、圖中各邊的偏好因子、成本區(qū)間矩陣,經(jīng)過后臺算法計算,得到限制條件下滿足個人偏好的所有路徑[1]。

1.2 功能分析

圖的路徑搜索系統(tǒng)軟件功能如下:①對滿足目標(biāo)值的所有路徑進(jìn)行顯示;②對于圖的每條路徑的權(quán)重受用戶偏好影響;③用戶的偏好因子采用兩種計算方式,由用戶決定采用哪種;④界面簡單易操作。

偏好的兩種表示方式:

(1)用戶只知道大致的偏好程度無法具體量化。采用A-F選項進(jìn)行選擇,A-F不同選項代表不同區(qū)間,然后從區(qū)間內(nèi)產(chǎn)生一個隨機(jī)數(shù)作為偏好因子[2],選項代表的區(qū)間具體如下:

A選項對應(yīng)區(qū)間為[-1.0,-0.6],B選項對應(yīng)區(qū)間為[-0.6,-0.3],C選項對應(yīng)區(qū)間為[-0.3,0],D選項對應(yīng)區(qū)間為[0,+0.3],E選項對應(yīng)區(qū)間為[+0.3,+0.6],F(xiàn)選項對應(yīng)區(qū)間為[+0.6,+1.0]。

該方式下偏好權(quán)重W為:

W=a+b2+b-a2×d(1)

其中,邊的權(quán)重區(qū)間為[a,b],邊的偏好因子為d。

(2)根據(jù)部分偏好占整體偏好的比例,從起始點(diǎn)到終點(diǎn)的一條路徑上各邊的偏好因子之和為1,該方式下偏好權(quán)重W為:

W=a+b2+b-a2×(2×d-1)(2)

其中,邊的權(quán)重區(qū)間為[a,b],邊的偏好因子為d。

這兩種方式下,當(dāng)偏好因子的取值范圍為0~1時,偏好權(quán)重取值范圍為a~b。

系統(tǒng)包括3大模塊:①界面設(shè)計模塊。該模塊用以設(shè)計各種界面,用來輸入圖的頂點(diǎn)數(shù)、起始點(diǎn)、終點(diǎn)、目標(biāo)值、圖中各邊的偏好因子、成本區(qū)間矩陣,完成各界面之間的數(shù)據(jù)交互以及最終限制條件下滿足個人偏好的所有路徑結(jié)果顯示;②有向圖路徑搜索模塊。根據(jù)界面模塊提供的數(shù)據(jù),基于深度優(yōu)先算法進(jìn)行路徑搜索,得到想要的路徑集合;③結(jié)果顯示截獲模塊。利用Eclipse進(jìn)行Java語言設(shè)計,把控制臺結(jié)果截獲以管道流的形式將輸出結(jié)果在界面中的文本框中顯示[3]。模塊間的聯(lián)系如圖1所示。

2 系統(tǒng)設(shè)計

2.1 功能設(shè)計

為實現(xiàn)用戶與系統(tǒng)的交互功能,考慮實際問題中用戶的偏好問題,由用戶輸入轉(zhuǎn)化后有向圖頂點(diǎn)個數(shù)動態(tài)生成有向圖,輸入起始點(diǎn)、終點(diǎn)、目標(biāo)值、各邊偏好因子等數(shù)據(jù)完成路徑搜索。由于有些用戶的偏好程度無法量化,系統(tǒng)通過偏好程度選項自動生成衡量偏好程度的數(shù)值指標(biāo)。系統(tǒng)界面輸入相關(guān)數(shù)據(jù)和顯示結(jié)果,算法用以求解路徑集合[4]。系統(tǒng)執(zhí)行流程如圖2所示。

2.2 系統(tǒng)界面設(shè)計

(1)主界面設(shè)計。本界面用于輸入頂點(diǎn)個數(shù)、開始頂點(diǎn)、結(jié)束頂點(diǎn)、目標(biāo)值以及顯示最終結(jié)果。單擊輸入成本鄰接矩陣按鈕跳轉(zhuǎn)到成本鄰接矩陣界面,單擊輸入偏好鄰接矩陣(類型一)按鈕跳轉(zhuǎn)到偏好鄰接矩陣(類型一)界面,單擊輸入偏好鄰接矩陣(類型二)按鈕跳轉(zhuǎn)到偏好鄰接矩陣(類型二)界面,單擊顯示滿足條件的路徑(類型一)按鈕,顯示由偏好鄰接矩陣(類型一)界面數(shù)據(jù)得到的結(jié)果,單擊顯示滿足條件的路徑(類型二)按鈕,顯示由偏好鄰接矩陣(類型二)界面數(shù)據(jù)得到的結(jié)果。主界面設(shè)計如圖3所示。

(2)成本鄰接矩陣界面設(shè)計。本界面根據(jù)主界面輸入的頂點(diǎn)個數(shù)動態(tài)生成一個輸入矩陣,用于輸入有向圖中各邊權(quán)重,即兩個相鄰頂點(diǎn)之間需要的代價[5]。由于矩陣的每個元素是一個數(shù)值區(qū)間,為方便用戶輸入,將矩陣中的每個元素輸入界面設(shè)計成圖4樣式。對于矩陣對角線元素默認(rèn)為[0,0],頂點(diǎn)之間不連通的則不用輸入。單擊提交按鈕進(jìn)行提交且關(guān)閉界面。endprint

(3)偏好鄰接矩陣(類型一)界面設(shè)計。本界面根據(jù)主界面輸入的頂點(diǎn)個數(shù)動態(tài)生成一個輸入矩陣,用于輸入有向圖中各邊的偏好指標(biāo)。考慮到有些用戶對于偏好程度無法量化,系統(tǒng)通過偏好程度選項(A-F)自動生成衡量偏好程度的數(shù)值指標(biāo)。

(4)偏好鄰接矩陣(類型二)界面設(shè)計。本界面根據(jù)主界面輸入的頂點(diǎn)個數(shù)動態(tài)生成一個輸入矩陣,用于輸入有向圖中各邊的偏好指標(biāo)。根據(jù)部分偏好占整體偏好的比例進(jìn)行填寫,填寫范圍為0-1。

2.3 軟件測試

進(jìn)行功能測試,主要針對系統(tǒng)的輸入、界面跳轉(zhuǎn)、相關(guān)數(shù)據(jù)求解路徑集合等進(jìn)行測試,每種測試都包括正常和非正常兩種情況。測試的相關(guān)數(shù)據(jù)如表1、表2、表3、表4所示。

根據(jù)上述數(shù)據(jù)運(yùn)行結(jié)果如下:

當(dāng)前的頂點(diǎn)個數(shù):6

目標(biāo)值:70

第V0個節(jié)點(diǎn):V0-V0:0 V0-V1:1 V0-V2:1 V0-V3:0 V0-V4:0 V0-V5:0

第V1個節(jié)點(diǎn):V1-V0:0 V1-V1:0 V1-V2:1 V1-V3:1 V1-V4:1 V1-V5:0

第V2個節(jié)點(diǎn):V2-V0:0 V2-V1:0 V2-V2:0 V2-V3:0 V2-V4:1 V2-V5:0

第V3個節(jié)點(diǎn):V3-V0:0 V3-V1:0 V3-V2:1 V3-V3:0 V3-V4:1 V3-V5:1

第V4個節(jié)點(diǎn):V4-V0:0 V4-V1:0 V4-V2:0 V4-V3:0 V4-V4:0 V4-V5:1

第V5個節(jié)點(diǎn):V5-V0:0 V5-V1:0 V5-V2:0 V5-V3:0 V5-V4:0 V5-V5:0 其中0表示兩個相鄰頂點(diǎn)之間不存在通路,1表示兩個相鄰頂點(diǎn)之間存在通路。

由偏好鄰接矩陣(類型一)界面數(shù)據(jù)得到結(jié)果:

V0→V1→V3→V4→V5 總代價為:69.0

V0→V1→V3→V5 總代價為:61.0

V0→V1→V4→V5 總代價為:60.0

V0→V2→V4→V5 總代價為:64.5

由偏好鄰接矩陣(類型二)界面數(shù)據(jù)得到結(jié)果:

V0→V1→V3→V4→V5 總代價為:62.0

V0→V1→V3→V5 總代價為:52.0

V0→V1→V4→V5 總代價為:55.0

V0→V2→V4→V5 總代價為:59.0

經(jīng)檢驗,上述結(jié)果正確。

性能測試主要是進(jìn)行響應(yīng)時間測試,該測試通過不同數(shù)量的數(shù)據(jù)完成。

3 結(jié)語

采用Java語言設(shè)計并實現(xiàn)了給定條件下基于偏好的有向圖路徑搜索系統(tǒng)。應(yīng)用本系統(tǒng),用戶基于偏好輸入相關(guān)數(shù)據(jù)得到最終想要的路徑集合,很容易得到最短路徑。下一步將對系統(tǒng)進(jìn)行優(yōu)化,更多考慮人性化需求,美化系統(tǒng)操作界面,優(yōu)化路徑搜索算法,提高系統(tǒng)運(yùn)行速度。

參考文獻(xiàn):

[1] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].C語言版.北京:清華大學(xué)出版社,2006.

[2] 方賢文.Java語言程序設(shè)計[M].合肥:安徽科學(xué)技術(shù)出版社,2014.

[3] 李興華.Java開發(fā)實戰(zhàn)經(jīng)典[M].北京:清華大學(xué)出版社,2009.

[4] 馬可,艾倫,維斯.數(shù)據(jù)結(jié)構(gòu)與算法分析:Java語言描述[M].第3版.北京:機(jī)械工業(yè)出版社,2016.

[5] 李剛.瘋狂Java講義[M].北京:電子工業(yè)出版社,2012.endprint

猜你喜歡
有向圖路徑優(yōu)化
極大限制弧連通有向圖的度條件
有向圖的Roman k-控制
超歐拉和雙有向跡的強(qiáng)積有向圖
關(guān)于超歐拉的冪有向圖
基于GEM模型的現(xiàn)代化物流產(chǎn)業(yè)集群競爭力評價和路徑優(yōu)化
信息時代數(shù)控銑削的刀具路徑優(yōu)化技術(shù)
經(jīng)濟(jì)發(fā)展方式轉(zhuǎn)變背景下流通體系路徑優(yōu)化策略探討
山西省異地就醫(yī)直接結(jié)算路徑優(yōu)化研究
CVRP物流配送路徑優(yōu)化及應(yīng)用研究
基于意義建構(gòu)視角的企業(yè)預(yù)算管理優(yōu)化路徑探究
中國市場(2016年33期)2016-10-18 13:36:16
关岭| 扬中市| 通城县| 遂宁市| 大港区| 兴宁市| 甘肃省| 陕西省| 云和县| 新巴尔虎左旗| 姜堰市| 博客| 奉化市| 日喀则市| 岱山县| 施秉县| 桃园市| 黑山县| 台湾省| 芒康县| 阿图什市| 焦作市| 东至县| 仙居县| 尤溪县| 常宁市| 大同市| 黎平县| 光泽县| 榕江县| 博兴县| 冀州市| 渭源县| 三门峡市| 永济市| 蕉岭县| 日土县| 庄河市| 安福县| 闽清县| 于都县|