亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種可視化廠車調(diào)度方法及系統(tǒng)與流程

文檔序號(hào):12721702閱讀:267來源:國知局
一種可視化廠車調(diào)度方法及系統(tǒng)與流程

本發(fā)明涉及信息技術(shù)技術(shù)領(lǐng)域,特別是一種可視化廠車調(diào)度方法及系統(tǒng)。



背景技術(shù):

目前,許多工廠為了方便員工上、下班,向員工提供了廠車服務(wù)。但是,由于員工眾多,采用人工管理信息和線路站點(diǎn)的方式不僅使效率低下管理混亂,也無法基于員工的需求對(duì)運(yùn)行線路做出及時(shí)調(diào)整。智能化和可視化的廠車調(diào)度系統(tǒng)成為值得研究的應(yīng)用點(diǎn)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)的不足而提供一種可視化廠車調(diào)度方法及系統(tǒng),本發(fā)明采用信息技術(shù)手段,將機(jī)器學(xué)習(xí)中兩種經(jīng)典算法遺傳算法及K-means聚類算法應(yīng)用到解決廠車調(diào)度問題中,既能滿足乘車人員的需求,又能在此基礎(chǔ)上節(jié)省資源,達(dá)到良好的效果。

本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:

根據(jù)本發(fā)明提出的一種可視化廠車調(diào)度方法,包括以下步驟:

步驟1、確定所需安排的站點(diǎn)數(shù)目K;

步驟2、根據(jù)用戶提供的地點(diǎn)信息,隨機(jī)生成K個(gè)初始站點(diǎn);

步驟3、計(jì)算所有地點(diǎn)到該K個(gè)初始站點(diǎn)的距離,將距離最近的地點(diǎn)和站點(diǎn)劃分為一簇;

步驟4、取每簇里地理位置的均值作為新站點(diǎn);

步驟5、判斷新站點(diǎn)到步驟2中初始站點(diǎn)的距離是否到達(dá)預(yù)設(shè)的閾值,若到達(dá),則選取新站點(diǎn)作為最優(yōu)站點(diǎn);若未到達(dá),則返回步驟3;

步驟6、初始化最初線路群,令迭代次數(shù)t=1;

步驟7、計(jì)算線路群中每條線路的適應(yīng)度及每條線路的累計(jì)概率;

步驟8、保留適應(yīng)度最高的線路到下一次迭代線路群,其他線路基于預(yù)設(shè)概率變異;

步驟9、判斷迭代次數(shù)是否達(dá)到預(yù)設(shè)的最大迭代次數(shù),若達(dá)到則取適應(yīng)度最高路線作為最優(yōu)路線,若未達(dá)到則令t=t+1,返回步驟7;

步驟10、根據(jù)最優(yōu)站點(diǎn)和最優(yōu)線路,利用百度API實(shí)現(xiàn)站點(diǎn)、線路的可視化。

作為本發(fā)明所述的一種可視化廠車調(diào)度方法進(jìn)一步優(yōu)化方案,線路的適應(yīng)度表示為:該線路的總距離+(運(yùn)行該線路所需要派的車輛數(shù)-最大限制車輛數(shù))*懲罰因子。

基于一種可視化廠車調(diào)度方法的系統(tǒng),包括用戶界面層、服務(wù)層、業(yè)務(wù)邏輯層和數(shù)據(jù)層;其中,

用戶界面層,用于提供與用戶交互的界面,并將功能操作傳遞到服務(wù)層進(jìn)行處理;界面的功能包括:1)用戶注冊(cè)和登錄;2)修改員工、車輛、路線、站點(diǎn)和排班信息;3)查詢車輛、路線和站點(diǎn)信息;4)基于地圖的信息展示;5)車輛和站點(diǎn)信息的數(shù)據(jù)統(tǒng)計(jì)圖;6)車輛和站點(diǎn)乘車人員名單查詢;7)設(shè)置站點(diǎn)和線路;

服務(wù)層包括站點(diǎn)安排服務(wù)模塊、線路優(yōu)化服務(wù)模塊、排班更新服務(wù)模塊、百度地圖可視化服務(wù)模塊和用戶管理模塊;其中,

站點(diǎn)安排服務(wù)模塊,用于向用戶提供站點(diǎn)安排的功能接口;

線路優(yōu)化服務(wù)模塊,用于向用戶提供實(shí)時(shí)運(yùn)行的線路乘坐率情況以及員工乘車信息的功能接口;

排班更新服務(wù)模塊,用于向用戶提供實(shí)時(shí)車輛排班的功能接口;

百度地圖可視化服務(wù)模塊,用于接收到業(yè)務(wù)邏輯層對(duì)最優(yōu)線路和最優(yōu)站點(diǎn)的計(jì)算結(jié)果,利用百度API實(shí)現(xiàn)站點(diǎn)、線路的可視化,提供基于地圖的站點(diǎn)和線路查詢功能;用戶管理模塊用于提供對(duì)用戶的注冊(cè)、登錄驗(yàn)證和查詢功能;

業(yè)務(wù)邏輯層,用于根據(jù)員工上車的地理位置信息,采用K-means聚類算法將地點(diǎn)進(jìn)行聚類從而找到最優(yōu)站點(diǎn)的計(jì)算結(jié)果,并將其反饋到百度地圖可視化服務(wù)模塊;根據(jù)從服務(wù)層獲取的實(shí)時(shí)運(yùn)行的線路乘坐率情況以及員工乘車信息,利用遺傳算法得到最優(yōu)線路的計(jì)算結(jié)果,也將其反饋到百度地圖可視化服務(wù)模塊;用于將員工、站點(diǎn)、廠車、線路和排班信息存儲(chǔ)在數(shù)據(jù)層的數(shù)據(jù)庫中,并輸出員工上車的地理位置信息至服務(wù)層的站點(diǎn)安排服務(wù)模塊中,輸出線路乘坐率情況以及員工乘車信息至服務(wù)層的排班更新模塊中;

數(shù)據(jù)層,用于保存用戶數(shù)據(jù)、站點(diǎn)、車輛、線路和排班。

作為本發(fā)明所述的一種可視化廠車調(diào)度方法的系統(tǒng)進(jìn)一步優(yōu)化方案,用戶界面層提供給用戶的具體功能包括:用戶的注冊(cè)與登錄、修改信息、查詢車輛站點(diǎn)線路、在百度地圖上顯示站點(diǎn)線路運(yùn)行情況和生成數(shù)據(jù)統(tǒng)計(jì)圖。

作為本發(fā)明所述的一種可視化廠車調(diào)度方法的系統(tǒng)進(jìn)一步優(yōu)化方案,業(yè)務(wù)邏輯層包括基于Ruby on Rail框架的業(yè)務(wù)處理模塊、基于Active Record框架的數(shù)據(jù)持久化機(jī)制和SQLite的數(shù)據(jù)庫操作模塊;其中,基于Ruby on Rail框架的業(yè)務(wù)處理模塊,負(fù)責(zé)對(duì)信息的增、刪、改、查操作,進(jìn)行業(yè)務(wù)處理并將實(shí)時(shí)運(yùn)行中的乘車數(shù)據(jù)傳遞給相應(yīng)的服務(wù);基于Active Record框架的數(shù)據(jù)持久化機(jī)制,用于對(duì)員工信息、線路信息、排班信息進(jìn)行增、刪、改、查或統(tǒng)計(jì);SQLite的數(shù)據(jù)庫操作模塊,用于將用戶實(shí)時(shí)乘車的統(tǒng)計(jì)數(shù)據(jù)寫入數(shù)據(jù)庫。

作為本發(fā)明所述的一種可視化廠車調(diào)度方法的系統(tǒng)進(jìn)一步優(yōu)化方案,基于Ruby on Rail框架的業(yè)務(wù)處理模塊使用Rails向上層模塊提供服務(wù),基于Active Record框架的數(shù)據(jù)持久化機(jī)制使用Active Record封裝對(duì)于SQLite的操作放入內(nèi)存中,下次直接從內(nèi)存中讀取,達(dá)到對(duì)數(shù)據(jù)的持久化存儲(chǔ)。

本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:本發(fā)明采用信息技術(shù)手段,將機(jī)器學(xué)習(xí)中兩種經(jīng)典算法—遺傳算法及K-means聚類算法應(yīng)用到解決廠車調(diào)度問題中,既能滿足乘車人員的需求,又能在此基礎(chǔ)上節(jié)省資源,達(dá)到良好的效果。

附圖說明

圖1為本發(fā)明的體系架構(gòu)圖。

圖2為本發(fā)明的數(shù)據(jù)流圖。

圖3為本發(fā)明的系統(tǒng)模塊劃分圖。

圖4為本發(fā)明中的K-means算法的流程圖。

圖5為本發(fā)明中的遺傳算法的流程圖。

具體實(shí)施方式

下面結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說明:

圖1為本發(fā)明的體系架構(gòu)圖,一種可視化廠車調(diào)度系統(tǒng)。系統(tǒng)使用SQLite作為數(shù)據(jù)應(yīng)用環(huán)境,使用高性能的HTTP和反向代理服務(wù)器nginx作為HTTP層的代理服務(wù)器,同時(shí)配置靜態(tài)資源緩存機(jī)制實(shí)現(xiàn)動(dòng)靜分離,保證在較大訪問量和流量的情況下服務(wù)器的性能和穩(wěn)定性始終處于較優(yōu)狀態(tài)。對(duì)于讀取頻繁的數(shù)據(jù)庫數(shù)據(jù),通過分布式的高速緩存系統(tǒng)Memcached進(jìn)行緩存,以減少讀取數(shù)據(jù)庫的次數(shù),減輕數(shù)據(jù)庫的負(fù)荷,有效提高系統(tǒng)的訪問速度和穩(wěn)定性。采用Node.js來提供線路優(yōu)化、站點(diǎn)安排及排班更新的算法的API接口,因?yàn)镹ode.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的平臺(tái),可用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。其數(shù)據(jù)流圖如圖2所示。圖3為本發(fā)明的系統(tǒng)模塊劃分圖。

主要步驟如下:

步驟101:創(chuàng)建基于Express的node.js初始應(yīng)用程序。該程序主要對(duì)外提供廠車調(diào)度服務(wù)的API。

步驟102:設(shè)置訪問限制token的申請(qǐng)和獲取程序。該token作為是否有權(quán)獲取服務(wù)的認(rèn)證。

步驟103:設(shè)計(jì)路由(Dispatcher)。該路由作為對(duì)外開放的API,包括站點(diǎn)生成路由和線路規(guī)劃路由。

步驟104:基于K-means聚類算法實(shí)現(xiàn)站點(diǎn)劃分功能,算法原理如圖4所示,其步驟是:(1)隨機(jī)生成K個(gè)質(zhì)心;(2)計(jì)算樣本點(diǎn)到各個(gè)質(zhì)心的距離,選擇距離最近的質(zhì)心組成一簇;(3)計(jì)算樣本點(diǎn)到各個(gè)質(zhì)心距離的距離,選擇距離最近的質(zhì)心組成一簇;(4)取每簇均值作為新質(zhì)點(diǎn);(5)判斷新質(zhì)點(diǎn)到步驟(2)中初始站點(diǎn)的距離是否到達(dá)預(yù)設(shè)的閾值,若到達(dá),則選取新站點(diǎn)作為最優(yōu)站點(diǎn);若未到達(dá),則返回步驟(2)重新計(jì)算。其中,每個(gè)質(zhì)點(diǎn)對(duì)應(yīng)于站點(diǎn)。

步驟105:基于遺傳算法實(shí)現(xiàn)線路規(guī)劃功能,算法如圖5所示。其算理步驟如下:(1)初始化種群;(2)計(jì)算種群中每條染色體的適應(yīng)度;(3)計(jì)算每條染色體累計(jì)概率;(4)保留適應(yīng)度最高染色體到下一種群,其他染色體一定概率下變異;(5)判斷是否達(dá)到規(guī)定進(jìn)化的最大次數(shù),若是,將適應(yīng)度最高染色體進(jìn)行解碼然后結(jié)束,否則從新執(zhí)行步驟(2)。

用戶需要使用基于B/S架構(gòu)的Web服務(wù)管理廠車以及獲取廠車調(diào)度服務(wù),有Brower/Client客戶端發(fā)送請(qǐng)求。實(shí)現(xiàn)服務(wù)的主要步驟如下:

步驟201:創(chuàng)建基于Rails框架的Ruby初始應(yīng)用程序。該程序?yàn)橛脩魧?shí)際使用的Web服務(wù)。

步驟202:引入Chart.js。Chart.js可以在Web端實(shí)時(shí)生成圖表進(jìn)行展示。

步驟203:根據(jù)需求編寫Chart.js圖表展示模塊。該模塊可以在Web端,根據(jù)需求生成自定義圖表。

步驟204:引入百度地圖API。該API可以在Web端高亮展示站點(diǎn)和線路信息。

步驟205:實(shí)現(xiàn)業(yè)務(wù)邏輯模塊。該模塊包含對(duì)用戶、站點(diǎn)、廠車、線路和排班等信息的錄入、修改和刪除等。

步驟206:申請(qǐng)并設(shè)置私有token。該token作為向廠車調(diào)度服務(wù)提供方獲取服務(wù)的認(rèn)證。

步驟207:管理員向廠車調(diào)度服務(wù)提供方發(fā)送服務(wù)請(qǐng)求。廠車調(diào)度服務(wù)提供方根據(jù)請(qǐng)求類型和參數(shù)返回相應(yīng)服務(wù)信息。

創(chuàng)建基于Express的node.js廠車調(diào)度服務(wù)應(yīng)用:

步驟301:創(chuàng)建基于Express的node.js初始應(yīng)用程序。

步驟302:添加mongoose組件。該組建用于連接node.js程序和SQLite數(shù)據(jù)庫。

步驟303:設(shè)置訪問限制token的申請(qǐng)和獲取模塊,該模塊為服務(wù)使用方提供私有token。

步驟304:創(chuàng)建后臺(tái)程序管理員模塊,該模塊擁有服務(wù)提供方管理員賬號(hào),可以通過該模塊設(shè)置某token的權(quán)限。

步驟305:創(chuàng)建服務(wù)提供模塊,該模塊需驗(yàn)證服務(wù)請(qǐng)求者的token并決定是否提供服務(wù)。

步驟305:設(shè)置站點(diǎn)劃分和線路規(guī)劃的API路由。

步驟306:分別使用K-means聚類算法和遺傳算法實(shí)現(xiàn)站點(diǎn)劃分功能和線路規(guī)劃功能。

創(chuàng)建基于Rails的Ruby廠車調(diào)度管理應(yīng)用:

步驟401:創(chuàng)建基于Rails的Ruby初始應(yīng)用程序。

步驟402:添加數(shù)據(jù)庫驅(qū)動(dòng)組件,具體的驅(qū)動(dòng)根據(jù)使用的數(shù)據(jù)庫而定。

步驟403:設(shè)計(jì)數(shù)據(jù)庫表。該數(shù)據(jù)庫至少包含用戶表、站點(diǎn)表、廠車表和線路表。

步驟404:使用Rails的活動(dòng)記錄Active Record將數(shù)據(jù)表映射為對(duì)象,做持久化處理,并添加限制條件。

步驟405:引入Chart.js。Chart.js可以在Web端實(shí)時(shí)生成圖表進(jìn)行展示。

步驟406:根據(jù)需求編寫Chart.js圖表展示模塊。該模塊可以在Web端根據(jù)需求生成自定義圖表。

步驟407:引入百度地圖API。該API可以在Web端高亮展示站點(diǎn)和線路信息。

步驟408:實(shí)現(xiàn)業(yè)務(wù)邏輯模塊。該模塊包含對(duì)用戶、站點(diǎn)、廠車、線路和排班等信息的錄入、修改和刪除等。

步驟409:在廠車調(diào)度服務(wù)應(yīng)用中申請(qǐng)并設(shè)置私有token。該token作為向廠車調(diào)度服務(wù)提供方獲取服務(wù)的認(rèn)證。

步驟410:管理員錄入用戶、站點(diǎn)、廠車等信息。

步驟411:管理員向廠車調(diào)度服務(wù)提供方發(fā)送站點(diǎn)劃分請(qǐng)求。站點(diǎn)劃分請(qǐng)求需要符合廠車調(diào)度服務(wù)提供方的API規(guī)范,并將私有token添加指請(qǐng)求頭中。

步驟412:獲取廠車調(diào)度服務(wù)提供方返回的已劃分站點(diǎn)信息,并在百度地圖上高亮顯示。

步驟413:管理員向廠車調(diào)度服務(wù)提供方發(fā)送線路規(guī)劃請(qǐng)求。線路規(guī)劃請(qǐng)求需要符合廠車調(diào)度服務(wù)提供方的API規(guī)范,并將私有token添加至請(qǐng)求頭中。

步驟414:獲取廠車調(diào)度服務(wù)提供方返回的已規(guī)劃線路信息,并在百度地圖上高亮顯示。

顯然,以上所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1