导航:首页 > 源码编译 > 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车辆调度算法相关的资料

热点内容
python解释器里如何换行 浏览:410
python编写格式 浏览:574
用python做出来的软件 浏览:469
服务器指示灯代表什么 浏览:702
做一个单片机销售需要知识 浏览:777
怎样去连接加密wifi 浏览:682
有什么app自带拍摄模板的 浏览:435
登录相亲网为什么要下载app呢 浏览:545
加密货币和主权货币撮合 浏览:683
哪里能学app 浏览:445
spline怎么看源码 浏览:18
桂妃app哪里下载 浏览:236
android代码格式化快捷键 浏览:829
如何判断服务器的硬盘 浏览:654
云服务器挑选顺序 浏览:887
卡银家平台源码 浏览:417
怎么样设置服务器的ip地址 浏览:900
泡沫APP在哪里下载 浏览:937
简述高级语言进行编译全过程 浏览:39
管家婆辉煌2加密狗挪到另一台电脑 浏览:760