何 為,王 浩,劉 全,喻 文 振
(1.長(zhǎng)江勘測(cè)規(guī)劃設(shè)計(jì)研究有限責(zé)任公司,湖北 武漢 430010; 2.武漢大學(xué) 水利水電學(xué)院,湖北 武漢 430072)
隨著計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,水利信息化建設(shè)成為水利現(xiàn)代化的重要組成部分,傳統(tǒng)工程技術(shù)與智能技術(shù)的結(jié)合將逐漸成為今后水利行業(yè)發(fā)展的必然趨勢(shì)[1]。
水電工程對(duì)外交通作為工程建設(shè)的重要組成部分,是保證工程物資供應(yīng)的重要基礎(chǔ)設(shè)施。傳統(tǒng)的對(duì)外交通規(guī)劃方式存在信息采集量大、人力成本高等不足,信息量和設(shè)計(jì)周期的矛盾較大。因此,在對(duì)外交通運(yùn)輸路線規(guī)劃中應(yīng)用信息化技術(shù)開展相關(guān)研發(fā)具有重要的工程實(shí)際意義。
近年來(lái),以WebGIS技術(shù)為載體的智能交通信息技術(shù)被廣泛應(yīng)用于物流配送、交通規(guī)劃、氣象預(yù)報(bào)及災(zāi)害預(yù)警等多個(gè)領(lǐng)域中[2-5]。但專業(yè)GIS系統(tǒng)的開發(fā)成本高、數(shù)據(jù)結(jié)構(gòu)復(fù)雜,應(yīng)用門檻較高。而主流GIS平臺(tái)提供免費(fèi)Web API,可以滿足空間地理信息開發(fā)的需要,成為眾多行業(yè)的應(yīng)用首選[6-9]。
本文針對(duì)水電工程對(duì)外交通運(yùn)輸路徑優(yōu)化問(wèn)題,以旭龍水電站為工程背景,分析了對(duì)外交通網(wǎng)絡(luò)具有的多源、多路徑以及多種運(yùn)輸方式的特點(diǎn),建立了一種多源多層的路徑優(yōu)化模型,并基于最優(yōu)路徑算法求解求優(yōu)。然后,結(jié)合地圖Web API技術(shù)和WebGIS技術(shù)開發(fā)了路徑優(yōu)化設(shè)計(jì)系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)自動(dòng)抓取和管理、運(yùn)輸路徑優(yōu)化及方案優(yōu)選、方案可視化等功能,為大型水電工程施工組織設(shè)計(jì)提供了一定的技術(shù)支持。
(1) 路徑地理信息自動(dòng)抓取。目前水電工程對(duì)外交通規(guī)劃設(shè)計(jì)主要依靠人工對(duì)交通路網(wǎng)、道路里程以及運(yùn)輸條件等數(shù)據(jù)資料進(jìn)行搜集整理,效率低、周期長(zhǎng)、耗時(shí)耗力。隨著物聯(lián)網(wǎng)技術(shù)與GIS技術(shù)的快速發(fā)展,百度地圖、高德地圖等GIS平臺(tái)已經(jīng)具備了完整且豐富的地理信息,并提供了獲取數(shù)據(jù)資源的服務(wù)接口。因此,考慮基于地圖API服務(wù)自動(dòng)獲取數(shù)據(jù),以降低人工成本。
(2) 運(yùn)輸路徑優(yōu)化及方案優(yōu)選。水電工程對(duì)外交通的方案優(yōu)選涉及到大量的數(shù)據(jù)分析計(jì)算工作,包括運(yùn)輸成本、距離以及橋隧比等屬性值的估算,考慮通過(guò)建立合理的數(shù)學(xué)優(yōu)化模型,并借助計(jì)算機(jī)技術(shù),將復(fù)雜的數(shù)學(xué)決策模型采用高級(jí)編程語(yǔ)言轉(zhuǎn)化為簡(jiǎn)單的可視化操作界面,使用計(jì)算機(jī)對(duì)不同方案進(jìn)行大量的計(jì)算、分析和比較,進(jìn)而實(shí)現(xiàn)方案自動(dòng)優(yōu)選。該功能可以提高數(shù)據(jù)處理效率,為該領(lǐng)域工作人員進(jìn)行方案決策提供一定的技術(shù)支持。
(3) 對(duì)外交通方案可視化。傳統(tǒng)的方案展示手段主要是依靠文檔或者CAD圖紙。由于文檔方案缺乏可視性、直觀性,導(dǎo)致工程人員之間方案分享和交互困難。采用百度地圖API技術(shù)與WebGIS技術(shù)相結(jié)合,實(shí)現(xiàn)對(duì)外交通方案的直觀性、可視化展示。
該系統(tǒng)設(shè)計(jì)將地圖Web API技術(shù)與WebGIS技術(shù)相結(jié)合;后臺(tái)服務(wù)器語(yǔ)言采用Python編程,主要完成算法求解功能;數(shù)據(jù)庫(kù)管理系統(tǒng)采用SQL Sever 2000,用于儲(chǔ)存城市地點(diǎn)、運(yùn)輸路徑、工程需求物資以及供應(yīng)廠家等數(shù)據(jù)信息;客戶端瀏覽器采用Ajax技術(shù),包括JavaScript、CSS、XML HTTP等語(yǔ)言,主要完成瀏覽器與Web應(yīng)用服務(wù)器、百度地圖服務(wù)器的通信交互;軟件界面設(shè)計(jì)采用PyQt5語(yǔ)言編程。系統(tǒng)邏輯架構(gòu)如圖1所示。
該系統(tǒng)基于B/S架構(gòu),運(yùn)用地圖Web API技術(shù)與WebGIS技術(shù)相結(jié)合進(jìn)行開發(fā),包含數(shù)據(jù)采集層、數(shù)據(jù)層、業(yè)務(wù)邏輯層與表示層共4個(gè)層級(jí)[10-11],如圖1所示。
(1) 表示層。為用戶對(duì)象提供信息展示窗口,即人機(jī)交互操作界面。采用PyQt5語(yǔ)言編寫界面,并使用QWebEngineView和QWebChannel技術(shù)將Web瀏覽器嵌入軟件框架中,實(shí)現(xiàn)GUI與網(wǎng)頁(yè)的交互操作。該方法將軟件開發(fā)和網(wǎng)頁(yè)開發(fā)結(jié)合在一起,既可以利用Python實(shí)現(xiàn)對(duì)大數(shù)據(jù)的快速處理,也可以基于WebGIS實(shí)現(xiàn)方案的可視化展示。
(2) 業(yè)務(wù)邏輯層。用來(lái)實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯,是數(shù)據(jù)層與表示層數(shù)據(jù)交互的橋梁,主要包括:數(shù)據(jù)的加工處理,使其滿足用戶需求;路徑優(yōu)化模型的程序化,實(shí)現(xiàn)方案屬性值的自動(dòng)計(jì)算以及方案優(yōu)選;基于GIS平臺(tái)的方案繪制,地圖繪制后供可視化平臺(tái)調(diào)用。
(3) 數(shù)據(jù)層。水電工程對(duì)外交通數(shù)據(jù)種類多、邏輯結(jié)構(gòu)復(fù)雜,不同種類數(shù)據(jù)之間都存在聯(lián)系,難以單獨(dú)分類儲(chǔ)存。本文系統(tǒng)在保證數(shù)據(jù)之間的邏輯關(guān)系的條件下采用SQL Server數(shù)據(jù)庫(kù)結(jié)合WBS編碼技術(shù),進(jìn)行分類分區(qū)儲(chǔ)存,提高數(shù)據(jù)庫(kù)的管理和儲(chǔ)存效率。同時(shí),系統(tǒng)還可以基于百度地圖API來(lái)獲取路況等實(shí)時(shí)數(shù)據(jù)。
(4) 數(shù)據(jù)采集層。本文系統(tǒng)的數(shù)據(jù)采集可分為數(shù)據(jù)自動(dòng)抓取和人工采集兩個(gè)部分。其中,數(shù)據(jù)自動(dòng)抓取是基于主流GIS平臺(tái)依據(jù)API技術(shù)實(shí)現(xiàn)的,主要采集公共交通網(wǎng)絡(luò)數(shù)據(jù);人工采集主要包括物資需求信息、供應(yīng)廠家信息以及運(yùn)輸設(shè)備信息等無(wú)法通過(guò)網(wǎng)絡(luò)抓取的部分?jǐn)?shù)據(jù)。
針對(duì)工程實(shí)際需求,該系統(tǒng)主要功能模塊設(shè)計(jì)包括數(shù)據(jù)自動(dòng)獲取與管理、對(duì)外交通運(yùn)輸路徑優(yōu)化以及方案可視化展示3個(gè)部分,如圖2所示。其中,數(shù)據(jù)自動(dòng)獲取和管理模塊是系統(tǒng)的主要數(shù)據(jù)源,也是對(duì)外交通運(yùn)輸路徑優(yōu)化的基礎(chǔ);對(duì)外交通運(yùn)輸路徑優(yōu)化模塊是系統(tǒng)的算法核心,主要負(fù)責(zé)解算優(yōu)化模型,基于當(dāng)前數(shù)據(jù)源優(yōu)選對(duì)外交通方案;方案可視儀展示模塊是系統(tǒng)的人機(jī)交互窗口,對(duì)方案進(jìn)行可視化展示。3個(gè)功能模塊之間依靠數(shù)據(jù)的交互與傳遞緊密聯(lián)系,如圖3所示為系統(tǒng)設(shè)計(jì)的主要流程圖。下面將分別介紹不同功能的技術(shù)特點(diǎn)。
此功能模塊設(shè)計(jì)流程如圖3中步驟1~6所示。主要是利用百度地圖服務(wù)接口的Web服務(wù)API來(lái)獲取物資調(diào)運(yùn)數(shù)據(jù),然后經(jīng)過(guò)解析和整理,提取有用信息,并將其儲(chǔ)存到數(shù)據(jù)庫(kù)中,同時(shí)可以在系統(tǒng)界面對(duì)數(shù)據(jù)進(jìn)行可視化操作。
2.1.1數(shù)據(jù)抓取與解析
水電工程對(duì)外交通運(yùn)輸網(wǎng)絡(luò)主要由各物資供應(yīng)廠家、壩址以及途徑城市地址和經(jīng)緯度坐標(biāo),不同城市之間運(yùn)輸距離以及國(guó)道、省道等交通條件等信息組成,并且在進(jìn)行路徑規(guī)劃時(shí),還應(yīng)該考慮運(yùn)輸成本、橋隧比(橋梁與隧道長(zhǎng)度的比值)等因素。
針對(duì)上述所需數(shù)據(jù),該系統(tǒng)基于百度地圖Web服務(wù)API接口進(jìn)行數(shù)據(jù)提取,包括正逆地理編碼、路線規(guī)劃、批量算路以及坐標(biāo)轉(zhuǎn)換等API服務(wù)。主要獲取方法是利用http傳輸協(xié)議支持的GET請(qǐng)求方式,借助Python的request模塊將拼接好的URL地址發(fā)送至地圖API服務(wù)器,獲取JSON格式的返回參數(shù)作為信息提取的數(shù)據(jù)源。然后針對(duì)返回的數(shù)據(jù)源進(jìn)行解析,利用JSON模塊將數(shù)據(jù)格式轉(zhuǎn)換為Python字典格式,再使用字典、列表或者字符串等操作命令對(duì)數(shù)據(jù)進(jìn)行處理加工,提取獲得目標(biāo)數(shù)據(jù)。
2.1.2數(shù)據(jù)儲(chǔ)存
該系統(tǒng)使用SQL Server 2000結(jié)合WBS編碼技術(shù)進(jìn)行數(shù)據(jù)存儲(chǔ)。編碼是計(jì)算機(jī)信息處理的基礎(chǔ)。對(duì)于水電工程總布置復(fù)雜的信息處理問(wèn)題,建立強(qiáng)健而規(guī)范的編碼是必須的。該系統(tǒng)目前使用的編碼系統(tǒng)中,不同類別的信息有著不同的類別與WBS編碼的編碼,對(duì)應(yīng)關(guān)系如表1所列。目前的編碼結(jié)構(gòu)為項(xiàng)目編碼(3位)+類編碼(3位)+序號(hào)編碼(3位),共9位編碼。
采用PyQt5.QtSql模塊實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接并將解析之后的數(shù)據(jù)寫入數(shù)據(jù)庫(kù)中。為方便寫入與管理,需要將數(shù)據(jù)編譯成固定的格式,通過(guò)在Python語(yǔ)言中執(zhí)行SQL語(yǔ)句來(lái)分區(qū)分類儲(chǔ)存數(shù)據(jù)。
表1 WBS編碼對(duì)應(yīng)關(guān)系Tab.1 WBS code correspondence
2.1.3數(shù)據(jù)顯示與編輯
該功能設(shè)計(jì)目的是為了便于查看和管理數(shù)據(jù)信息,系統(tǒng)也提供了增刪改查等操作,便于維護(hù)更新數(shù)據(jù)源,如圖4所示。該系統(tǒng)采用Model/View結(jié)構(gòu)進(jìn)行數(shù)據(jù)顯示與編輯,由模型(Model)提取數(shù)據(jù),然后在視圖(View)組件上顯示和編輯,并且修改編輯之后的數(shù)據(jù)又通過(guò)模型保存到數(shù)據(jù)庫(kù)中。這種方式將界面組件與數(shù)據(jù)源分離,通過(guò)數(shù)據(jù)模型實(shí)現(xiàn)界面與數(shù)據(jù)源的交互操作,提高了數(shù)據(jù)處理的靈活性。
該模塊主要是系統(tǒng)內(nèi)置算法模塊,主要通過(guò)Python語(yǔ)言將路徑優(yōu)化模型進(jìn)行程序化,通過(guò)計(jì)算機(jī)進(jìn)行大量的計(jì)算、分析和比較,進(jìn)而實(shí)現(xiàn)方案自動(dòng)優(yōu)選。
該方案可視化的方法是根據(jù)路徑優(yōu)化結(jié)果,基于百度地圖Web開發(fā)平臺(tái)的JavaScript API 在地圖上添加點(diǎn)、線、面圖層以及圖片、文字等覆蓋物,圖3中步驟7~11顯示了方案可視化的主要流程。
2.3.1瀏覽器嵌入及數(shù)據(jù)交互
該系統(tǒng)借助QWebEngineView模塊將瀏覽器嵌入到軟件框架中,使用Html、CSS、JavaScript等語(yǔ)言開發(fā)網(wǎng)頁(yè),系統(tǒng)界面如圖5所示。這種方法可以保證系統(tǒng)在離線狀態(tài)仍可使用部分基本功能,使得Web瀏覽器專門負(fù)責(zé)基于GIS平臺(tái)的方案可視化展示,提高系統(tǒng)運(yùn)行效率。這種方式的關(guān)鍵是數(shù)據(jù)交互技術(shù),該系統(tǒng)使用QWebChannel.js對(duì)象,結(jié)合JSON庫(kù),通過(guò)在JavaScript調(diào)用PyQt5代碼,使軟件可以與Web瀏覽器進(jìn)行雙向的數(shù)據(jù)交互。
2.3.2添加覆蓋物及控件
如圖5所示,在Web瀏覽器初始界面中已經(jīng)加載了百度地圖,將其作為對(duì)外交通方案繪制的底圖。其實(shí)現(xiàn)方法是通過(guò)Map類在百度地圖容器中創(chuàng)建一個(gè)地圖實(shí)例,將百度地圖顯示在地圖容器中。
經(jīng)過(guò)路徑優(yōu)化得到的對(duì)外交通方案數(shù)據(jù),包括了物資供應(yīng)廠家名稱和經(jīng)緯度信息、途徑城市名稱及經(jīng)緯度信息以及運(yùn)輸成本、距離等信息。將其編碼成JSON格式傳遞到瀏覽器,再經(jīng)數(shù)據(jù)解析,借助百度地圖的JavaScript API添加運(yùn)輸路線、途徑城市標(biāo)記以及文本標(biāo)注等覆蓋物,如圖6所示??紤]到當(dāng)前百度地圖API提供的路線規(guī)劃僅指公路條件,缺乏鐵路和水路,因此系統(tǒng)采用直線進(jìn)行代替。同時(shí)考慮對(duì)不同物資的運(yùn)輸路線進(jìn)行區(qū)分,采用隨機(jī)顏色進(jìn)行路線繪制;采用文本標(biāo)注的方式顯示城市節(jié)點(diǎn)信息。
為便于用戶瀏覽方案,可以向地圖中添加平移、縮放以及比例尺等控件。
2.3.3疊加方案分析圖層
水電工程對(duì)外交通方案信息豐富,僅采用地圖的形式很難完整展示,因此系統(tǒng)采用地圖結(jié)合文本的形式進(jìn)行聯(lián)合展示。其中文本信息通過(guò)在瀏覽器網(wǎng)頁(yè)中嵌入彈層來(lái)實(shí)現(xiàn),并自定義鼠標(biāo)點(diǎn)擊事件來(lái)觸發(fā)彈層。該彈層所顯示的信息是從全局的角度對(duì)整體方案數(shù)據(jù)進(jìn)行計(jì)算整理,包括方案總投資成本、物資種類、各物資的來(lái)源地、運(yùn)輸里程以及運(yùn)輸類型等信息,然后按照不同物資種類進(jìn)行顯示,如圖6所示。
本文所研究的是將水電工程外來(lái)物資從產(chǎn)地運(yùn)輸?shù)綁沃返倪\(yùn)輸路徑優(yōu)化問(wèn)題。水電工程外來(lái)物資種類多,包括水泥、粉煤灰以及鋼材等,每種物資又有多個(gè)供應(yīng)廠家可選,每個(gè)供應(yīng)地點(diǎn)到壩址又有多條可選路徑以及公路、鐵路或者水路等多種運(yùn)輸方式??梢姡姽こ虒?duì)外交通運(yùn)輸路徑優(yōu)化問(wèn)題具有多源點(diǎn)、多路徑以及多運(yùn)輸條件的特點(diǎn)[12-14]。
在借鑒以往豐富的研究成果基礎(chǔ)上,本文基于網(wǎng)絡(luò)拓?fù)潢P(guān)系結(jié)合最優(yōu)路徑算法對(duì)上述問(wèn)題進(jìn)行研究。參考實(shí)際工程中路徑規(guī)劃的基本原則和通用做法,假設(shè)交通網(wǎng)絡(luò)中各城市之間的運(yùn)輸?shù)缆肪赏ㄐ校豢紤]方向限制和道路管制,將對(duì)外交通網(wǎng)絡(luò)轉(zhuǎn)化為權(quán)連通圖。如圖7所示,以物資供應(yīng)廠家、途經(jīng)城市以及壩址為節(jié)點(diǎn);以城市之間的道路連接為路徑;以優(yōu)化目標(biāo)為邊權(quán)值。
3.2.1自定義優(yōu)化目標(biāo)
路徑優(yōu)化問(wèn)題常見的優(yōu)化目標(biāo)包括運(yùn)輸距離、成本、時(shí)間、風(fēng)險(xiǎn)或者多個(gè)目標(biāo)組合等。選擇不同的優(yōu)化目標(biāo),得到的方案可能存在很大差別,并且不同的決策者,其決策偏好不同,選取的優(yōu)化目標(biāo)也不同。因此本文系統(tǒng)設(shè)置了自定義優(yōu)化目標(biāo)功能,便于決策者對(duì)比分析不同的優(yōu)化目標(biāo)得到的方案之間的區(qū)別。在分析水電工程對(duì)外交通特點(diǎn)的基礎(chǔ)上,選取了運(yùn)輸距離、運(yùn)輸費(fèi)用分別獨(dú)立作為優(yōu)化目標(biāo),同時(shí)還設(shè)置了距離、成本以及風(fēng)險(xiǎn)的多個(gè)目標(biāo)組合。
本文系統(tǒng)基于百度地圖API抓取的數(shù)據(jù),僅有城市節(jié)點(diǎn)之間的距離數(shù)據(jù),缺乏成本和風(fēng)險(xiǎn)數(shù)據(jù),為此本文通過(guò)以下方式進(jìn)行計(jì)算。
(1) 運(yùn)輸費(fèi)用。水電工程外來(lái)物資調(diào)運(yùn)費(fèi)用涉及很多方面,如路橋費(fèi)、物資裝卸費(fèi)、設(shè)備運(yùn)營(yíng)費(fèi)、道路改擴(kuò)建投資等。但部分費(fèi)用對(duì)路徑優(yōu)化影響不大,在路徑優(yōu)化時(shí)可以忽略。而路橋費(fèi)、道路改擴(kuò)建投資以及中轉(zhuǎn)費(fèi)用與道路運(yùn)輸緊密相關(guān),可以很好地反映不同對(duì)外交通運(yùn)輸方案的投資費(fèi)用。因此,路段(i,j)上的運(yùn)輸費(fèi)用cij的計(jì)算方法如式(1)所示。
cij=c1ij+c2ij+c3
(1)
式中:c1ij和c2ij分別表示物資在路段(i,j)上運(yùn)輸時(shí),產(chǎn)生的路橋費(fèi)和道路改擴(kuò)建投資;c3表示物資從產(chǎn)地到壩址的運(yùn)輸過(guò)程中產(chǎn)生的中轉(zhuǎn)費(fèi)用。
(2) 運(yùn)輸風(fēng)險(xiǎn)。水電工程通常地理位置偏僻,道路交通條件差,水文地質(zhì)條件復(fù)雜,導(dǎo)致物資運(yùn)輸風(fēng)險(xiǎn)因素多,來(lái)源復(fù)雜,難以辨別與估計(jì)。因此,本文采用專家打分法對(duì)存在多條可選擇路段的運(yùn)輸風(fēng)險(xiǎn)進(jìn)行經(jīng)驗(yàn)估計(jì),而對(duì)其它運(yùn)輸必然經(jīng)過(guò)的路段不進(jìn)行評(píng)價(jià)。
(3) 多目標(biāo)組合。實(shí)際工程中,決策者往往需要同時(shí)考慮費(fèi)用、距離以及風(fēng)險(xiǎn)等多個(gè)優(yōu)化目標(biāo),通過(guò)期望運(yùn)輸方案能夠同時(shí)達(dá)到費(fèi)用最低、距離最短及運(yùn)輸風(fēng)險(xiǎn)最小,但不同目標(biāo)之間存在矛盾性和不可公度性,很難同時(shí)滿足。因此考慮采用賦權(quán)法來(lái)確定各決策目標(biāo)的權(quán)重。
3.2.2模型構(gòu)建
以旭龍水電站對(duì)外交通網(wǎng)絡(luò)為研究數(shù)據(jù),針對(duì)不同物資,按照?qǐng)D7方式分別建立權(quán)連通圖。考慮到同一條路段可能包括多種交通方式,因此,將交通網(wǎng)絡(luò)按公路、鐵路以及水路進(jìn)行分層,每一層的交通網(wǎng)絡(luò)通過(guò)轉(zhuǎn)運(yùn)站來(lái)連接,即當(dāng)運(yùn)輸方式發(fā)生變化時(shí),則運(yùn)輸路線經(jīng)過(guò)中轉(zhuǎn)站城市節(jié)點(diǎn)。因此本文建立的路徑優(yōu)化模型具有多源點(diǎn)、多路徑、多層級(jí)的特點(diǎn),并且設(shè)定是否經(jīng)過(guò)某路段為約束變量,屬性值為布爾類型,其模型為
(2)
路段的邊權(quán)值綜合反映運(yùn)輸優(yōu)化目標(biāo),它不僅指地理空間意義上的距離,還可以指運(yùn)輸費(fèi)用、風(fēng)險(xiǎn)或者多目標(biāo)組合等優(yōu)化目標(biāo)。
針對(duì)上述建立的路徑優(yōu)化模型,利用最優(yōu)路徑算法達(dá)到求解求優(yōu)的目的。考慮到該模型具有多源點(diǎn)特性,符合Floyd算法求解特點(diǎn)。
Floyd算法是一種從具有正或負(fù)邊緣權(quán)重的加權(quán)圖中,利用動(dòng)態(tài)規(guī)劃的思想尋找多源點(diǎn)之間最優(yōu)解的算法,該算法具有較高的可靠性和求解效率,可以算出任意兩個(gè)節(jié)點(diǎn)之間的最優(yōu)解[15-17]。
針對(duì)本文研究的水電工程對(duì)外交通運(yùn)輸路徑優(yōu)化問(wèn)題,基于優(yōu)化目標(biāo)采用Floyd算法進(jìn)行求解。假設(shè)與第k種物資對(duì)應(yīng)的有N個(gè)可以提供滿足工程物資需求的生產(chǎn)廠家,經(jīng)過(guò)路徑優(yōu)化之后,即可得到N種起點(diǎn)到壩址的運(yùn)輸方案,然后通過(guò)比較不同方案的優(yōu)化目標(biāo)屬性值的大小來(lái)確定最終的優(yōu)化方案。
旭龍水電站位于云南省德欽縣與四川省得榮縣交界的金沙江干流上游河段,為Ⅰ等大(1) 型工程。所需的建筑材料包括:水泥90.1萬(wàn)t、粉煤灰30.0萬(wàn)t、鋼材15.6萬(wàn)t以及永久機(jī)電設(shè)備等。物資來(lái)源地分布廣泛,包括云南省、四川省以及上海市等地。本文以該水電站水泥物資的對(duì)外交通為工程案列,對(duì)系統(tǒng)的具體使用方法步驟進(jìn)行詳細(xì)說(shuō)明。工程相關(guān)資料如下:工程周邊水泥物資生產(chǎn)廠家分別位于樂(lè)山市、攀枝花市、大理州以及麗江市;公路運(yùn)輸費(fèi)率統(tǒng)一為1元/(t·km),裝卸費(fèi)為6元/t;鐵路運(yùn)價(jià)基價(jià)為0.103元/(t·km),發(fā)到基價(jià)為18.6元/t,裝卸費(fèi)為15.1元/t;鐵路轉(zhuǎn)公路中轉(zhuǎn)費(fèi)用為25元/t。
(1) 數(shù)據(jù)自動(dòng)獲取與管理。首先根據(jù)工程相關(guān)資料在系統(tǒng)界面編輯工程地址、周圍關(guān)鍵城市名稱等信息,然后系統(tǒng)根據(jù)操作指令編輯對(duì)應(yīng)的請(qǐng)求URL,基于百度地圖API的路徑規(guī)劃、正/逆地理編碼以及批量算路等相應(yīng)的服務(wù)接口獲取城市地址信息、經(jīng)緯度信息以及運(yùn)輸距離等相應(yīng)數(shù)據(jù)。如圖8所示為基于百度地圖獲取橋隧信息的功能界面。具體流程為輸入起點(diǎn)、終點(diǎn)以及運(yùn)輸車輛等信息——系統(tǒng)編輯請(qǐng)求URL——向百度地圖API的路線規(guī)劃服務(wù)發(fā)送請(qǐng)求——以JSON格式返回結(jié)果參數(shù)——系統(tǒng)提取運(yùn)輸距離、經(jīng)緯度等有效數(shù)據(jù)——返回系統(tǒng)界面,并展示路線信息??梢圆捎猛瑯拥姆椒ǐ@取其他信息,包括工程周圍城市信息、供應(yīng)廠家信息以及公路、鐵路和水路等運(yùn)輸方式信息。
同時(shí),用戶可以根據(jù)需要,在系統(tǒng)的數(shù)據(jù)可視化界面對(duì)數(shù)據(jù)進(jìn)行增刪改查等操作,然后儲(chǔ)存到SQL Server數(shù)據(jù)庫(kù)中,如本文2.1.3節(jié)部分所述。
(2) 基于路徑優(yōu)化模型的方案優(yōu)選。工程周邊交通運(yùn)輸網(wǎng)絡(luò)信息收集整理完畢后,即可按照第3節(jié)所述的模型進(jìn)行路徑優(yōu)化。首先在系統(tǒng)界面選擇物資種類,即水泥。系統(tǒng)經(jīng)過(guò)比選,將滿足工程需要的水泥物資供應(yīng)廠家信息返回界面。然后按照運(yùn)輸距離、成本最低或者多目標(biāo)優(yōu)化等不同的優(yōu)化目標(biāo)進(jìn)行水泥的路徑優(yōu)化,優(yōu)化結(jié)果返回到界面并繪制到百度地圖上,如圖6所示。通過(guò)對(duì)比分析可知:對(duì)于水泥物資的對(duì)外交通運(yùn)輸,從麗江運(yùn)輸?shù)綁沃返倪\(yùn)輸距離最短、運(yùn)輸風(fēng)險(xiǎn)最低;從大理運(yùn)輸?shù)綁沃返倪\(yùn)輸成本最低,但風(fēng)險(xiǎn)和距離都較高。
(3) 方案可視化展示。針對(duì)需要的不同種類外來(lái)物資,與水泥對(duì)外交通方案優(yōu)選的過(guò)程類似,依次重復(fù)上述步驟,直到確定完所有種類外來(lái)物資對(duì)應(yīng)的對(duì)外交通方案,并將其保存到數(shù)據(jù)庫(kù)中。最后將所有外來(lái)物資對(duì)應(yīng)的對(duì)外交通方案全部繪制到一張百度地圖上,如圖9所示。具體實(shí)現(xiàn)原理已在2.2節(jié)闡述。主要運(yùn)用了WebGIS技術(shù)和百度地圖API技術(shù)進(jìn)行地圖繪制:首先加載百度地圖作為底圖,然后將步驟(2)中獲得各物資的優(yōu)化方案,利用JavaScript API技術(shù)按圖層疊加到底圖上,并且為城市節(jié)點(diǎn)添加標(biāo)記和文本。采用彈窗的方式,將方案總成本以及各物資的詳細(xì)運(yùn)輸信息以文本方式輔助進(jìn)行方案展示。
針對(duì)工程實(shí)際需求,通過(guò)將百度地圖API與WebGIS相結(jié)合開發(fā)了水電工程對(duì)外交通運(yùn)輸路徑優(yōu)化系統(tǒng)。通過(guò)數(shù)據(jù)自動(dòng)抓取和管理、基于路徑優(yōu)化模型的方案優(yōu)選、方案可視化展示等功能,實(shí)現(xiàn)了從數(shù)據(jù)收集、方案設(shè)計(jì)到方案展示整個(gè)過(guò)程的自動(dòng)化。與傳統(tǒng)人工方法相比,大大降低了數(shù)據(jù)收集整理復(fù)雜度,提高了數(shù)據(jù)處理效率以及方案展示的直觀性。
該系統(tǒng)建立的路徑優(yōu)化模型充分考慮了水電工程對(duì)外交通網(wǎng)絡(luò)的多源、多路徑以及多種交通方式的特點(diǎn),建立了一種多源多層路徑優(yōu)化模型,采用自定義優(yōu)化目標(biāo)的方式應(yīng)用Floyd算法求解。以旭龍水電站為例進(jìn)行應(yīng)用分析,說(shuō)明了本文建立的優(yōu)化模型符合工程實(shí)際情況,適用性較強(qiáng)。