導航:首頁 > 源碼編譯 > java車輛調度演算法

java車輛調度演算法

發布時間:2022-08-27 03:30:51

1. 車輛優化調度理論與方法

國外車輛優化調度研究已廣泛用於生產、生活的各個方面,如報紙投遞及線路的優化、牛奶配送及送達線路的優化、電話預訂貨物的車輛載貨和線路設計、垃圾車的線路優化及垃圾站選址優化、連鎖商店的送貨及線路優化等等。目前,研究水平已有很大發展,其理論成果除在汽車運輸領域外,在水運、航空、通訊、電力、工業管理、計算機應用等領域也有一定的應用,還用於航空乘務員輪班安排、輪船公司運送貨物經過港口與貨物安排的優化設計、交通車線路安排、生產系統中的計劃與控制等多種組合優化問題。 在國內,該問題的系統研究還不多見。近年來本書作者及課題組成員承擔了國家自然科學基金《城市貨運汽車的科學調度》、《貨運車輛調度優化理論及應用研究》和四川省重點軟科學課題《城市貨運卡車集中優化調度研究》等項目的研究工作,對車輛優化調度的基礎理論及各類問題進行了較為系統的研究,開發了基於地理信息系統的可視化物流配送車輛優化調度系統軟體包,2000年11月在深圳第二屆中國高新技術成果交易會上發布,受到好評和重視;發表了三十多篇相關論文;獲得過一項省部級科技進步二等獎。2001年又獲得了國家自然科學基金項目《不確定信息條件下動態車輛路徑》。

本書展示的主要是國家自然科學基金項目《貨運車輛調度優化理論及應用研究》(編號79700019)的研究成果,在多項課題的研究中,取得一批成果,這本書反映的僅僅是一個側面。在課題的研究和書稿的寫作過程中,參閱了大量的國內外文獻,書稿也反映了相關方面目前國際的前沿動態。該領域的研究內容非常廣泛,本書還有許多方面未涉及,期望在新的課題研究中取得突破。

作者:李軍

出 版 社:中國物資出版社

作者簡介:李軍,1967年生,管理學博士,西南交通大學經濟管理學院教授。主要教學和科學研究領域為物流工程、決策分析、博弈理論及應用。主持和完成國家自然科學基金資助項目及其他省部級以上項目10餘項,並獲得省科技進步二等獎一項,發表論文30餘篇。主編、參編教材三本,獲得鐵道部優秀教材一等獎、二等獎各一項。

目錄

第一章 緒論
1.1 物流配送車輛優化調度的概述
1.2 物流配送車輛優化調度的研究動態和水平
1.3 貨運車輛優化調度問題的分類

第二章 基本理論
2.1 組合優化與計算復雜性
2.2 啟發式演算法理論
2.3 遺傳演算法理論

第三章 基本問題
3.1 圖的基本概念
3.2 最小生成樹
3.3 最短路問題
3.4 最大流問題
3.5 最小費用流問題
3.6 中國郵遞員問題
3.7 旅行商問題

第四章 集貨或送貨非滿載車輛優化調度啟發式演算法
4.1 引言
4.2 模型分析
4.3 C—W節約啟發式演算法
4.4 分派啟發式演算法
4.5 多車場多車型問題

第五章 集貨和送貨一體化非滿載車輛優化調度啟發式演算法
5.1 引言
5.2 網路啟發式演算法
5.3 組合啟發式演算法

第六章 非滿載車輛優化調度遺傳演算法
6.1 自然數編碼遺傳演算法理論研究
6.2 旅行商問題的遺傳演算法
6.3 一般車輛優化調度問題的遺傳演算法
6.4 時間窗車輛優化調度問題的遺傳演算法

第七章 單車型滿載車輛的優化調度
7.1 引言
7.2 調度解的獲得
7.3 解的調整
7.4 解的連通化
7.5 線路的組織與調整

第八章 多車型滿載車輛的優化調度啟發式演算法
8.1 概述
8.2 演算法分析
8.3 實例分析

第九章 車輛優化調度演算法的計算機實現
9.1 系統基礎數據
9.2 系統演算法實例

第十章 基於地理信息系統的物流配送可視化車輛優化調度系統
10.1 系統基礎設計
10.2 系統集成結構設計
10.3 系統總體設計
參考文獻

2. 求大神!!基於java車隊調度信息管理系統

這位同學,我是你們課程設計的老師,請獨立完成

3. 29、Java中用到的線程調度演算法是什麼

操作系統的核心,它實際就是一個常駐內存的程序,不斷地對線程隊列進行掃描,利用特定的演算法(時間片輪轉法、優先順序調度法、多級反饋隊列調度法等)找出比當前佔有CPU的線程更有CPU使用權的線程,並從之前的線程中收回處理器,再使待運行的線程佔用處理器。

4. 基於java企業內部車輛調度系統屬於什麼專業

當然是Java軟體開發專業了,想企業內部車輛調度系統是是用java開發 b/s架構的系統。大致功能系統登錄、車輛政策法規、車輛調度、車輛管理及維修保養、車輛責任人信息、車輛采購、車輛保險、許可權設置等。

5. 求一個先來先服務調度演算法的程序 java編的

import java.util.ArrayList;
import java.util.List;

public class Question {
// 調度總站
class DiaoDuZhan{
private List<Client> list;
public Client getClient(){ // 獲得客戶
if(list != null && list.size() > 0){
Client client = list.get(0);
list.remove(client);
return client;
}else{
return null;
}
}
public void addClient(Client client){
if(list == null){
list = new ArrayList<Client>();
}
list.add(client);
}
}
// 客戶
interface Client{
public void setService(Service service);
public Service getSerive();
}
// 服務
interface Service{
public void doService();
}
// 服務員
class waiter{
DiaoDuZhan diaozhan;
public DiaoDuZhan getDiaozhan() {
return diaozhan;
}
public void setDiaozhan(DiaoDuZhan diaozhan) {
this.diaozhan = diaozhan;
}
public void doNext(){
Client client = diaozhan.getClient();
if(client != null)
client.getSerive().doService();
}
}
}

6. 用c語言或者Java設計出一個任務調度器。。。

公眾:類PrivilegeProcess {
公共靜態無效的主要(字串[] args){

MyQueue的MyQueue的新MyQueue的();/ /聲明隊列

印刷電路板[PCB = {新的PCB(001 ,8,1),新的PCB(002,7,9),新的PCB(003,3,8),新的PCB(004,1,7),新的PCB(005,7,4)};
> PCB段=新的PCB();

(INT I = 0; <pcb.length; + +){/ /初始化先進行排序,選擇排序這里使用的是高優先順序的一線隊

(J =我; <pcb.length; J + +){

(PCB [I]。特權<PCB [J]。特權){

段= PCB [1];

PCB [I] = PCB [J];

PCB [J] =段;

}

}

}

體系。通過out.println(「入隊後第一時間的進程的順序:」);

(INT I = 0; <pcb.length; + +){

的System.out調用println(第一次入隊#程序名稱:「+ PCB [我]。名稱+ totaltime:」+ PCB [I]。totaltime +「的」特權「+ PCB [我]。特權); }

();

myqueue.start(PCB);

}

}

類MyQueue的{

INT指數= 0;

PCB [] PC =新的PCB [5];

PCB [] PC1 =新的PCB [4];

PCB溫度=新的PCB() BR />公共無效排隊(PCB工藝){/ /排隊演算法

(指數== 5){

(「出界!」);

返回

}

PC [索引] =進程;

指數+ +;

}

公共:PCB DEQUEUE(){/ /出隊演算法(索引== 0)

返回空;

(INT I = 0; <pc1.length; + +){

PC1 [I] = PC [ +1];

}

指數 -

溫度= PC [0];

(INT I = 0; <pc1.length; + +){ BR /> PC [I] = PC1 [I];

}

回報條件;

}

公共無效啟動(PCB [] PC){/ /進程表演算法

(PC [0]。isNotFinish ==真| | PC [1 isNotFinish ==真| | PC [2 isNotFinish ==真| | PC [3]。時isNotFinish ==真| | PC [4]。isNotFinish ==){

/ / *注:| |運算符都是假的,所有的表達式結果為假,否則真

(INT I = 0; <PC長度; + +){

PC [I]。運行(這一點); />} 的System.out.println();

(INT I = 0; <pc.length; + +){/ /處理每個運行一次運行的時間片的長度重新排序優先一旦

(J =我; <pc.length; J + +){

如果(PC [I]特權<PC [J]。特權){

溫度= PC [I];

PC [I] = PC [J];

PC [J] =溫度;

}

}

}

}

}

}

類PCB {/ /聲明過程級

和int名,totaltime ,運行時特權;

布爾isNotFinish的;

公眾PCB(){

}

公開PCB(名稱,詮釋totaltime特權){

this.name =的名稱;/ /進程名

this.totaltime = totaltime ;/ /

this.privilege =特權;/ /總時間優先 this.runtime = 2 ;/ /時間片值是2

this.isNotFinish =真;/ /是否執行完成

(「初始值:程序名稱:」+名+「totaltime:」+ totaltime +「特權」+特權);

System.out的。調用println();

}

MyQueue的MQ公共無效的run(){/ /處理的基礎上實施的時間片演算法

(totalTime> 1){ totaltime =運行;/ /總時間大於1,總時間=總時間 - 時間片

特權 -

(「程序名稱:」+姓名+「 remaintime:「+ +」特權「+特權); totaltime

的} else if(totaltime == 1){

totaltime - ;/ /總時間為1時,執行時間為1
>特權 -

(「程序名稱:」+姓名+「remaintime:」+ totaltime +「特權」+特權);

}其他{

isNotFinish =假;/ / 0,將isNotFinish標志設置為假

}

如果(isNotFinish ==真){br mq.deQueue(); mq.enQueue(本); }

}
}

7. 怎樣用java實現CPU的調度要用到什麼類

cpu調度及內存分配演算法
寫的一個操作系統的實驗,篇幅原因,只給了內存分配和回收代碼.

/**
單 位:中南大學軟體學院0501班
文 件:CpuScheler.java
項 目:操作系統cpu調度演算法模擬程序
作 者:劉欣
創建時間:2007年5月14日
**/

public static void InitMem(){
MemTable = new memory();
MemTable.Setmem_beg(0);
MemTable.Setmem_size(100);
MemTable.Setmem_state(0);
}
public boolean InitMemory(Pcb temp){
memory mem_temp,last,now;
last = MemTable;
mem_temp = new memory(temp.GetName(),temp.Getmem_size());
boolean flag = true;
if(mem_temp.Getmem_size() > 100 ){
c.tcpuinfo.setText(mem_temp.GetPcd_name()+"is too big");
flag = false;
}
if(MemTable == null){
return flag;
}

if(mem_temp.Getmem_size() + nowsize > 100){
c.tcpuinfo.setText("memory has been full please wait");
flag = false;
}

if(MemTable.Getmem_state() == 0){// if the first is empty;
if(MemTable.Getmem_size() > mem_temp.Getmem_size()){
mem_temp.next = MemTable;
mem_temp.Setmem_beg( last.Getmem_beg() );
mem_temp.Setmem_state(1);
MemTable.Setmem_beg(mem_temp.Getmem_beg() + mem_temp.Getmem_size());
MemTable.Setmem_size( MemTable.Getmem_size()-mem_temp.Getmem_size() );
MemTable = mem_temp;
nowsize += mem_temp.Getmem_size();
return flag;
}
if (MemTable.Getmem_size() == mem_temp.Getmem_size()){
// MemTable.SetPcd_name(mem_temp.GetPcd_name());
mem_temp = MemTable;
mem_temp.Setmem_state(1);
mem_temp.next = MemTable;
nowsize += mem_temp.Getmem_size();
return flag;
}
}
// begin obtain the other;
if(last != null){
now = last.next;
while(now != null){// search the teble for sutible memory;
if(now.Getmem_state() == 0){// if the first is empty;
if(now.Getmem_size() > mem_temp.Getmem_size()){
mem_temp.next = now;
mem_temp.Setmem_beg( now.Getmem_beg() );
mem_temp.Setmem_state(1);
now.Setmem_beg(mem_temp.Getmem_beg() + mem_temp.Getmem_size());
now.Setmem_size( now.Getmem_size()-mem_temp.Getmem_size() );
last.next = mem_temp;
nowsize += mem_temp.Getmem_size();
return flag;
}
else if (now.Getmem_size() == mem_temp.Getmem_size()){
now.SetPcd_name(mem_temp.GetPcd_name());
mem_temp = now;
mem_temp.Setmem_state(1);
last.next = mem_temp;
nowsize += mem_temp.Getmem_size();
return flag;
}
}
last = now;
//if(last != null){
now = now.next;
//}
}
}
return flag;
}

public void ReleaseMem(Pcb Temp){
memory mem_temp,last,now;
mem_temp = new memory(Temp.GetName(),Temp.Getmem_size());
if(MemTable == null){
c.tcpuinfo.setText("無內存可釋放");
//return false;
}
last = MemTable;
now = last.next;
if (MemTable.GetPcd_name() == mem_temp.GetPcd_name()){//如果第一個就是要釋放的分區;
MemTable.Setmem_state(0);
MemTable.SetPcd_name(null);
if(now != null && now.Getmem_state() == 0 ){//如果後鄰接分區也是空閑的;
MemTable.Setmem_size(MemTable.Getmem_size() + now.Getmem_size());

MemTable.SetPcd_name(null);
nowsize -= mem_temp.Getmem_size();
MemTable.next = null;
// return true;
}
}
while (now != null){//在鏈表中尋找要釋放的分區;
if(now.GetPcd_name() == mem_temp.GetPcd_name()){//找到;
nowsize -= mem_temp.Getmem_size();
now.Setmem_state(0);
if(now.next != null && now.next.Getmem_state() == 0){//查看後面相鄰結點是否有空閑;
last.next = now.next;
now.next.Setmem_beg(now.Getmem_beg());
now.next.Setmem_size(now.Getmem_size() + now.next.Getmem_size());
now = last.next;
now.SetPcd_name(null);
}
if(last.Getmem_state() == 0){//查看前面相鄰結點是否有空閑;
last.next = now.next;
last.Setmem_size(last.Getmem_size() + now.Getmem_size());
last.SetPcd_name(null);
now = last.next;
// now.SetPcd_name(null);
}
}
last = now;
now = now.next;
}
}

8. java 車輛跑偏演算法

這個要看需求中跑偏的定義。

有個想法可以參考下。
如果一輛車從當前位置到達目的地,如果他不跑偏速度也平均。那麼他到達目的地的時間是一定的。反之,如果車輛走路沒有走預定的路。那麼他到達目的地就只有兩個結果。比預計的更快或者更慢。把這個預計到達時間和實際需要的時間做下對比。就知道偏差多少。

呵呵,顯然這個不太符合GPS定義的。但是我覺得更符合人的理性。還有。如果通過某個路段總是有反映有更短的線路可以比系統預計更快的到達目的地。同樣這個線路可以上傳到伺服器作為新的線路。也實現了自動更新。相反道路修理或改到原先的路稱所用的預計時間完全不夠用。那麼信的線路也是一個好的補充。不至於引入死路然後還需要返回。

進一步設計。計算的頻率和更新的頻率如果足夠快和准確也可以解決市內堵車問題。

9. 計算機信息管理專業的畢業論文題目有哪些

論文寫作步驟:選定選題方向、查相關治資料、確定論文論點、寫出論文大綱、寫出論文初稿、請指導老師審議、按指導老師意見修改(可多做幾遍、總體體完成後,再送指導老師驗收、論文答辯。我是在職碩士不懂可以問我。

10. 尋求明白人java編一下客運車輛管理系統

你還是自己努力吧!強烈抵制這種問問題的方式!這不是在問,是在要東西。
不說分多少的問題,自己學過的話哪地方遇到問題的話大家幫你解決具體的。哪有這么乾的?服了!

閱讀全文

與java車輛調度演算法相關的資料

熱點內容
放管伺服器怎麼辦理 瀏覽:627
手機號碼如何加密 瀏覽:424
沈陽程序員培訓學校 瀏覽:538
一般伺服器如何配置 瀏覽:895
圖片怎樣加密發郵件 瀏覽:619
萬虹電腦文件夾密碼忘記了怎麼辦 瀏覽:631
rc108單片機 瀏覽:867
戰雷如何改變伺服器 瀏覽:674
mactelnet命令 瀏覽:51
壓縮袋壓縮了拿出來 瀏覽:401
安卓手機相機怎麼設置許可權 瀏覽:121
美女程序員轉行做主播 瀏覽:671
辦理解壓房產 瀏覽:575
道路工程概論pdf 瀏覽:389
超棒數學速演算法大全 瀏覽:937
小米易語言登錄源碼 瀏覽:31
磚牆內加密鋼筋 瀏覽:993
鄉關何處pdf 瀏覽:85
小豬領贊小程序源碼 瀏覽:336
python曲線如何原路返回 瀏覽:432