火车调度问题PROJECT

合集下载

同轨多天车调度算法研究

同轨多天车调度算法研究

同轨多天车调度算法研究1.引言1.1 概述概述在铁路运输领域,同轨多天车调度算法是一个极具挑战性的问题。

此算法旨在有效地安排多辆列车在同一轨道上的运行,以确保其之间的运行安全和效率。

该问题的复杂性来自于多个因素:列车之间的相互冲突、车辆之间的运行速度差异、车辆的不同运行模式等。

为了解决这一问题,许多研究人员和学者针对同轨多天车调度算法进行了广泛的研究。

他们提出了各种各样的调度策略和优化方法,以寻求最佳的列车运行方案。

其中,一些算法基于图论和优化理论,利用数学模型来描述列车之间的关系,并通过建立目标函数和约束条件来求解最优解。

其他方法则采用启发式算法和元启发式算法,通过模拟运行过程或者遗传算法等方式来搜索最优解。

本文旨在对同轨多天车调度算法进行深入研究和分析。

首先,我们将介绍调度算法的基本原理和常用的调度策略。

然后,我们将详细分析同轨多天车调度问题的特点和挑战,包括列车冲突的处理、列车速度的优化、车辆运行模式的选择等。

接下来,我们将综述已有的调度算法,并分析它们的优缺点。

最后,我们将总结研究结果,并展望未来该领域的发展方向。

通过对同轨多天车调度算法的研究,我们可以为铁路运输系统提供更加安全高效的调度方案,降低运行成本和提升运输能力。

此外,该研究也可以对其他领域的调度问题提供参考和借鉴。

我们相信,通过不断的努力和创新,同轨多天车调度算法将在未来取得更加显著的进展。

1.2文章结构文章结构分为以下几个部分:1. 引言- 1.1 概述:对同轨多天车调度算法的背景和重要性进行简要介绍。

- 1.2 文章结构:概述文章的整体结构和各个部分的内容安排。

- 1.3 目的:明确研究同轨多天车调度算法的目标和意义。

2. 正文- 2.1 调度算法介绍:介绍常见的调度算法(如先来先服务、最短作业优先等),以及它们在同轨多天车调度中的应用情况。

- 2.2 同轨多天车调度问题分析:对同轨多天车调度问题进行详细分析,包括问题的定义、约束条件、目标函数等。

高铁列车多目标优化调度模型研究

高铁列车多目标优化调度模型研究

高铁列车多目标优化调度模型研究一、引言高铁列车作为当前交通领域的明星产品,以其高速、高效、舒适的特点成为出行的首选方式。

高铁列车的运行管理需要通过对列车的优化调度来实现高效率、低成本、安全可靠的运行。

高铁列车的多目标优化调度模型对高铁列车的运行管理具有重要意义。

本文将阐述高铁列车多目标优化调度模型的研究。

二、高铁列车多目标优化调度模型高铁列车多目标优化调度模型主要是以时间、车辆、人员等多个方面为关键指标建立的一种优化模型。

它可以帮助高铁列车运营方实现列车的高效运行和更好的运营管理。

1. 时间目标高铁列车多目标优化调度模型中的时间目标主要是针对列车在运行过程中的时间效率和到达时间等因素。

针对这些时间目标,调度管理人员需要对列车的运行情况、出发时间和到站时间等作合理规划和调度,从而使列车实现更好的时间效率和更好的到站时间。

2. 车辆目标对高铁列车车辆的调度和管理是现代化高铁运营体系的重要组成部分。

高铁列车多目标优化调度模型中的车辆目标主要是针对车辆的运行情况、载客量等因素。

在高铁列车的运营管理中,调度人员需要进行合理的车辆规划和调度,以满足车辆的运载要求和提高载客量,从而提高整个高铁运营系统的效率。

3. 人员目标高铁列车多目标优化调度模型中的人员目标主要是针对列车员工的工作效率和工作质量等因素。

这就要求调度人员在制定方案时,要考虑到员工工作的科学性、合理性和稳定性,并尽可能避免因员工因素造成的失误和事故。

对于员工的调度和管理对于高铁列车运营管理的决策和实施都有重要作用。

三、高铁列车多目标优化调度模型实践研究高铁列车多目标优化调度模型的研究实践在高铁列车运营管理中得到广泛应用。

对于高铁列车的实际运行,如果不对列车的运行情况、载客量、员工工作等方面进行合理规划和调度,则难以实现各种目标的平衡和兼顾。

在高铁列车的运营管理中,通过优化调度模型来实现列车的高效率、低成本、安全可靠的运行是迫在眉睫的需求。

实践研究中,高铁列车多目标优化调度模型可帮助运营管理人员对列车运行进行规划和管理,在运营过程中实现多目标优化。

列车调度知识点总结

列车调度知识点总结

列车调度知识点总结一、列车调度的概念及作用1、列车调度的概念列车调度是指对列车的开行计划、线路选择、车次编组、排队等工作的组织和管理。

它通过对列车运行进行计划、协调、指挥、控制和监督,保证列车正常运行并达到预定的运输结果。

2、列车调度的作用列车调度是铁路运输的核心环节,它直接影响到列车的安全、运行效率和运输能力。

列车调度的主要作用包括:(1)保证列车的安全运行;(2)提高列车的运行效率;(3)合理利用铁路资源,提高铁路的运输能力;(4)为旅客和货物提供准时、可靠的运输服务。

二、列车调度的组成部分列车调度由许多组成部分构成,主要包括列车运行计划、车次编组、道岔调车和运行控制等环节。

具体包括以下几个方面:1、列车运行计划列车运行计划是列车调度的基础,它是根据铁路线路、信号设备和车辆情况制定的运行方案。

列车运行计划要考虑列车的始发地、途经站和终到地,以及线路的运输能力和行车安全等因素。

2、车次编组车次编组是指根据列车运行计划,将不同始发地、途经站和终到地的车辆编组成列车的工作。

车次编组要考虑列车的始发地、途经站和终到地之间的距离、线路的运输能力和列车的通行能力等因素。

3、道岔调车道岔调车是指对列车进出站、通过站和调车站进行操作的一项工作。

道岔调车要根据列车的始发地、途经站和终到地,按照列车运行计划和车次编组,合理设置道岔,保证列车的正常进出站和通行。

4、运行控制运行控制是列车调度的最核心环节,它包括对列车运行进行指挥、控制和监督的一系列工作。

运行控制要根据列车的运行计划和实际运行情况,及时调整列车的运行方向、速度和停站,保证列车的正常运行。

三、列车调度的方法和技术列车调度涉及到许多方法和技术,包括列车调度系统、计算机辅助调度、列车自动控制等。

这些方法和技术对于提高列车调度的效率和精度起到了关键作用。

1、列车调度系统列车调度系统是通过计算机设备和通信网络,实现列车运行计划、车次编组、道岔调车和运行控制等功能的系统。

调度问题总结

调度问题总结

调度问题总结引言调度问题是在计算机科学和操作管理领域中非常重要的一个概念。

它涉及到如何高效地分配资源、管理任务和优化系统性能等问题。

在本文中,我们将总结一些常见的调度问题及其解决方案。

调度问题的定义调度问题是指如何合理地安排和分配资源,以最大限度地优化系统的性能和效率。

在计算机领域中,调度问题通常涉及到任务的排序、分配和执行等方面。

具体而言,调度问题可以分为以下几类:1.作业调度问题:如何安排任务的执行顺序和优先级,以最大限度地减少总执行时间或提高系统吞吐量。

2.资源调度问题:如何合理地分配有限的资源,以满足不同任务的需求,并尽量减少资源的浪费。

3.进程调度问题:如何合理地分配和管理进程,以最大限度地提高系统的响应能力和资源利用率。

常见的调度问题及解决方案1. 作业调度问题作业调度问题是指如何安排任务的执行顺序和优先级,以最大限度地减少总执行时间或提高系统吞吐量。

常见的作业调度算法包括:•先来先服务(FCFS):按任务到达的顺序进行调度,适用于短作业或无特定要求的情况。

•最短作业优先(SJF):按任务的执行时间进行排序,先执行执行时间最短的任务。

•最高响应比优先(HRRN):根据任务的等待时间和执行时间之比进行排序,执行响应比最高的任务。

•时间片轮转(RR):将任务划分为若干时间片,按照轮转的方式执行任务。

2. 资源调度问题资源调度问题是指如何合理地分配有限的资源,以满足不同任务的需求,并尽量减少资源的浪费。

常见的资源调度算法包括:•静态优先级调度:为每个任务分配一个固定的优先级,根据优先级进行资源分配。

•动态优先级调度:根据任务的实时需求和系统状态进行优先级的动态调整。

•最大最小公平(Max-Min Fairness):以公平的方式分配资源,以满足每个任务的最小需求。

3. 进程调度问题进程调度问题是指如何合理地分配和管理进程,以最大限度地提高系统的响应能力和资源利用率。

常见的进程调度算法包括:•轮转调度:按轮转的方式分配CPU时间片给就绪队列中的进程,可以提高系统的响应速度和公平性。

列车调度问题优化算法研究与应用

列车调度问题优化算法研究与应用

列车调度问题优化算法研究与应用引言:列车调度是铁路运输系统中的重要环节,影响着列车运行效率和客流体验。

针对列车调度问题,优化算法的研究与应用具有重要意义。

本文将介绍列车调度问题的优化算法研究进展,包括基于遗传算法、蚁群算法、模拟退火算法等的优化方法,并探讨其在实际应用中的效果。

一、列车调度问题概述列车调度问题是指如何合理安排列车的发车时间、运行路线和停站,以实现最优化的列车运输效果。

这个问题的复杂性主要体现在:列车之间的相互制约关系、列车与车站之间的时间窗口、列车运行速度和限速要求等多方面因素的综合考虑。

二、遗传算法优化调度问题遗传算法是一种模拟自然进化过程的优化算法。

在列车调度问题中,可以将列车的发车时间、运行路径等视为种群中的个体,通过交叉、变异等操作,生成新的个体,以找到最优解。

遗传算法的优点是能够快速找到解空间中的全局最优解,并且可以灵活地应用于不同的列车调度问题。

三、蚁群算法优化调度问题蚁群算法是模拟蚂蚁觅食行为的优化算法。

在列车调度问题中,可以将列车视为蚂蚁,车站之间的路径视为路径图,而蚂蚁在路径图上寻找最优路径。

蚁群算法通过模拟蚂蚁在路径上释放信息素,并根据信息素浓度来决定下一步的移动方向,以找到最优解。

蚁群算法的优点是能够实现全局搜索,并且具有较强的自适应性。

四、模拟退火算法优化调度问题模拟退火算法是一种模拟固体退火过程的优化算法。

在列车调度问题中,可以将列车的运行路径视为固体的状态,通过不断降温来消除能量。

模拟退火算法通过接受次优解的概率来避免困在局部最优解中,以求得全局最优解。

模拟退火算法的优点是能够在一定程度上避免陷入局部最优解,具有较好的全局搜索能力。

五、优化算法的应用案例优化算法在列车调度问题中的应用已经取得了一定的成果。

例如,在某高速铁路的列车调度中,通过遗传算法优化列车的发车间隔和速度,使得列车在满足时刻要求的情况下,实现了发车间隔的最小化和客流的最大化。

在另一个列车广播系统中,蚁群算法被用于优化车站之间的列车运行路径,以减少运行时间和提高效率。

车厢调度试题及答案

车厢调度试题及答案

车厢调度试题及答案1. 单选题:以下哪种调度策略最适合处理紧急货物的运输需求?A. 先到先服务(FCFS)B. 最短作业优先(SJF)C. 轮询(Round Robin)D. 优先级调度(Priority Scheduling)答案:B2. 多选题:在车厢调度中,哪些因素可能影响调度效率?A. 货物的重量B. 货物的体积C. 货物的紧急程度D. 车厢的容量答案:A、B、C、D3. 判断题:车厢调度系统不需要考虑货物的装卸时间。

答案:错误4. 填空题:在车厢调度中,通常使用______算法来优化货物的装载顺序。

答案:贪心5. 简答题:描述车厢调度中常用的几种调度算法,并简要说明它们的优缺点。

答案:车厢调度中常用的调度算法包括:- 先到先服务(FCFS):优点是简单易实现,缺点是不考虑任务的紧急程度,可能导致紧急任务等待时间过长。

- 最短作业优先(SJF):优点是能够快速处理短任务,减少平均等待时间;缺点是在长任务较多的情况下可能导致“饥饿”现象。

- 轮询(Round Robin):优点是公平性好,每个任务都能得到处理;缺点是可能造成资源的不必要切换。

- 优先级调度(Priority Scheduling):优点是能够优先处理紧急任务;缺点是需要合理设置优先级,否则可能导致低优先级任务长时间得不到处理。

6. 计算题:假设有5个车厢需要调度,每个车厢的容量分别为10、15、20、25、30吨。

现有3批货物,重量分别为5吨、10吨、20吨,请问如何调度才能使车厢的利用率最高?答案:首先调度重量为20吨的货物使用30吨的车厢,然后调度重量为10吨的货物使用20吨的车厢,最后调度重量为5吨的货物使用10吨的车厢。

这样安排可以使车厢的利用率最高。

铁路调度指挥问题及对策分析

铁路调度指挥问题及对策分析随着铁路运输的日益发展,铁路调度指挥问题也日益凸显出来。

铁路调度指挥是指对列车运行进行合理安排、控制和指挥的工作。

在铁路交通中,调度指挥是非常重要的环节,它直接关系到列车的运行安全、准点率和运行效率。

当前存在着一些铁路调度指挥问题,为了更好地解决这些问题,需要对其进行深入分析,提出科学的对策措施。

一、铁路调度指挥问题1.调度指挥系统老化随着铁路交通的发展,原有的调度指挥系统已经逐渐老化,存在着一些技术装备陈旧、性能不稳定、操作不便等问题。

这使得调度指挥工作受到一定的影响,无法满足日益增长的列车运行需求。

2.信息化水平不高目前,铁路调度指挥还存在着信息化水平不高的问题,主要表现在信息化设备不完善、信息共享不畅、数据分析能力不足等方面。

这导致了调度指挥工作的效率和质量无法得到有效提升。

3.运行标准不统一由于铁路调度指挥工作在不同地区、不同线路、不同车站之间存在着一定的差异,导致了运行标准不统一的情况。

这使得列车在运行过程中遇到一些问题时,无法做到及时有效的处理和协调。

4.应急处理能力不足由于铁路调度指挥工作存在一定的复杂性,一旦出现突发事件或者意外情况时,调度指挥部门的应急处理能力往往显得不足。

这给列车运行安全和准点率带来了一定的风险。

二、铁路调度指挥对策分析1.加快更新系统设备针对调度指挥系统老化的问题,应加快更新系统设备,引进新的调度指挥技术和设备,提升系统性能和稳定性。

同时要积极推进信息化建设,提高系统的智能化水平,实现数据共享和协同运行。

2.提升信息化水平要针对信息化水平不高的问题,加强信息化设备的更新和完善,提高信息的全面性和准确度。

加强信息系统之间的联通和数据交换,提高数据分析能力,实现信息共享和资源整合,以提升调度指挥的工作效率和质量。

3.规范运行标准要加强对不同地区、线路、车站的运行标准的统一管理,制定统一的调度指令和运行规程,提升列车运行的流畅度和有序性。

铁路运输调度工作—车流调整(铁路行车组织)

2.分界站接入某去向的重车不足或增多时,应首先采 取增加或减少自局装往该去向装车数量。如重车不足 或增多延续时间较长,自局调整又有一定困难时,应 将情况及时报总公司,由总公司统一调整。
重车调整 限制装车或停止装车
1.装车数超过区段通过能力或编组站作业能力时。 2.装车数超过卸车地的卸车能力时。 3.因自然灾害、事故,线路封闭中断行车时。 4.因其他原因发生车辆积压或堵塞时。
3.各种备用车的状况,均需经备用车基地检车员检 查。
当货流、车流发生变化或 重车流增加时,在不影响接空 局重点物资装车需要的前提 下,经总公司批准,依据下达 的日计划命令可采取以规定排 空车种相同的重车顶替一部分 空车,在分界站按同车种的重 车和空车总数计算的综合调整 方法。
为保证特殊紧急运输任务
需要所采取的非常措施。
10-2-3备用车调整的方法
备用车调整
远期车流推算
1.总公司调度处每日6:00将全路昨日各铁路局去向 别装车通知各铁路局。
2.各局根据其他局到本局和通过本局的装车数及运 行期限,结合本局自装自卸和自装交出车流,制定 远期车流推算表。
车流动态掌握
近期车流推算
局调度所计划调度员在第一班结束后,根据各分 界站实际出入车数和列车运行计划推算全日预计出入 车数、预计全日的装卸车数,推算出18:00预计结存 的管内工作车、空车和各分界站需要移交的重车数等 车流资料,报总公司。
10-2-1 重车车流调整
重车调整
重车在全路运用车总数中约占2/3左右,数量较 大;重车的流向又决定了空车的流向。因此重车车调 整是整个车流工作的重点。
去向别装车调整
重车调整的 主要方法
限制装车或停止装车 变更车流输送径需要增加或减少日均装车计划时, 应首先调整自铁路局管内装车数量;如需增加或减少 外铁路局的装车时,须经总公司批准。

铁路信号系统中的列车调度优化方法

铁路信号系统中的列车调度优化方法在现代铁路交通系统中,列车调度是一个非常关键的环节。

它涉及到如何合理安排列车的行驶路线、保证列车的安全运行以及提高铁路运输的效率。

为了实现这些目标,铁路信号系统中采用了一系列的列车调度优化方法,本文将介绍其中的一些主要方法。

一、列车优先级管理列车优先级管理是列车调度优化的重要一环。

在铁路系统中,不同类型的列车(如客运列车、货运列车、高速列车等)具有不同的优先级。

为了提高系统的整体效率,需要对不同优先级的列车进行合理的排序和调度。

常用的列车优先级管理方法有以下几种:1. 根据载货量的不同:将货运列车的优先级设置为高于客运列车,这样可以保证货运列车的正常运行,减少运输延误。

2. 根据列车等级的不同:将高速列车的优先级设置为高于普速列车。

由于高速列车的速度更快,运输效率更高,因此应该给予它们更高的优先级。

3. 根据列车班次的不同:将定期班次的列车优先级设置为高于非定期班次的列车,这样可以保证定期班次的正常运行。

通过合理设置列车优先级,可以提高列车调度的效率,减少列车之间的冲突,提高铁路运输的整体效益。

二、列车路径选择在铁路系统中,合理选择列车的行驶路径也是列车调度优化的一个关键因素。

在实际中,需要考虑到如下几个方面:1. 最短路径选择:为了减少列车行驶的距离和时间,应优先选择最短路径。

这样可以减少列车在轨道上的停留时间,提高运输效率。

2. 交通状况考虑:考虑到影响列车行驶的因素,如信号灯、隧道、站台等,应根据实际情况进行路径选择。

例如,在高峰期,应避开拥挤的区域,选择空闲的路段行驶,以避免堵塞和延误。

3. 能源效率优化:在路径选择中,可以考虑最小化列车的能耗,以节约能源和减少碳排放。

通过合理规划列车的行驶路线,可以选择较平坦或下坡的路段,减少能耗,提高运输效率。

通过合理的路径选择,可以减少列车之间的冲突,提高运输效率,达到列车调度优化的目标。

三、列车停站控制在铁路系统中,合理控制列车的停站也是列车调度优化的一个重要环节。

火车调度问题---数学模型

火车调度问题摘要近年来随着铁路交通的发展飞速发展,无论是铁道部门还是旅客都希望缩短登车时间,这样铁路部门可以赢得更多时间用于行驶获得丰厚利润,旅客也可以缩短旅途时间。

然而随着乘坐火车的旅客越来越多以及火车的容量不断增加,使得登车时间却在不断加长。

如何缩短登车时间这一问题亟待解决。

针对各种列车的调度顺序问题,文章将以某车站各列车调度为例建立一个状态模型,在此基础上展开并用于实际情况中。

状态模型的主要思想是:假设各列车在某时间段内将驶离车站,通过安排驶离顺序使铁路部门利益与旅客对铁路的满意度达到一种理想化状态,使铁路紧张问题得到适当的缓解。

关键字:线性函数满意度退票费火车调度问题问题:某火车站有三个停靠站台,通常是用“先来后到”普通旅客列车(以下简称普通)让行普通快速旅客列车(普快),普快让行快速旅客列车(快速k),快速让行特快(T),特快让行直达旅客列车(直达Z),直达让行动车(D或C)”原则来分配进站出站所分配停靠站台,上行与下行线路分开,及当一列火车准备进站和出站时,调度中心负责电告该列火车所进站台。

假设调度中心可以得到每列火车的如下信息:(1)预计驶离站台时间(2)预计停靠站台时间(动车2分,直达3分,特快6分,快速8分,普快10分,普速12分)(3)实际驶离站台时间(4)火车乘客人数(5)预定在下一站下车人数(6)预定在本站上课人数(7)到达下一站的预定时间(8)从上一站驶出时间又设共有上行与下行上述旅客列车各一列,乘客数量分别为1600人(普通)、1400人(普快),1200人(快速、特快)1000人(直达)800人(动车)试开发一种能使乘客和铁路公司双方满意的数学模型(2)假设1)铁路调度中心上有一个快速反应的数据库,该库中存贮着每一列火车的正点起行时间,正点抵达目的地的时间,乘客数量,行驶距离等信息,其他一些有用的参数,可以根据数据库中已有数据估计出来.2)忽略不同类型火车停靠站台时间,这样可以把时间划分成间隔为△的起行时段.3)标号为i 的火车在第j 个时段起行所需费用与先前起行的火车无关,仅与其安排的次序有关.这一假设使我们可以把总费用作为火车调度排序的线性函数. 4)由于各种火车行驶速度不一样,为使问题解单化,此处只设出平均速度及最大行驶速度.5)记τ为使火车尚能正点到达目的地所推迟起行的最长时间.同时假定,当火车的误点时间超过τ时,则火车将以最大的安全速度行驶.6)如果火车推迟起行的时间超过τ,则车上所有的乘客都将耽误到站. 7)因晚点而要求退票的费用对每一个乘客都是相同的且为平均退票费. (3)记号及意义 △: 火车的时间间隔;t 最早起行的火车离站时间;dt : 正点起行的时间;A T : 正点到达目的地的时间; t: 晚点时间;τ: 最大允许晚点起行的时间;k: 各种类型的火车晚点起行而引起耗油的费用常数;V: 平均行驶速度;m ax V : 最大的行驶速度;π: 晚点而造成退票的退票率; m : 票价P : 乘客总数; w : 乘客出现退票的时间点: 由于晚点起行所引起的乘客不满意程度的增长率;a: 全体乘客由于火车晚点起行所引起的不满意度折合成人民币的折合率; b: 退票乘客不满意度折合成人民币的折合率. ★分析与建模若有n 列火车都要在正点时刻驶离该火车站(即为从上火车站有n 列火车几乎同时将到达该站).我们以总费用最小作为目标来安排火车起行的次序.总费用由三部分组成,即铁路部门的费用、退票费和乘客不满意程度所折合的费用. 设ij c 为标号i 的火车在第j 个起行时段起行的费用,,则总费用为∑∑===n i nj ijij x c Z 11由假设条件可知,ij c 与ij x 无关,因而总费用C 是一个线性函数.这是一个调度问题.假定每隔△时间只有一列火车停靠在该站加入到请求起行的行列中,这样就保证总有火车请求起行.每隔△时间,执行一次程序,以安排在当前状态下最优的起行次序.这里需要说明一点,该程序运行时间极短,不到一分钟便可完成,因此,如果数据发生变化时,如火车晚点进站(视为晚点起行)等,几乎可以立即决策.★下面来分析费用系数的确定问题.总费用应包括铁路部门的费用、退票费和乘客的不满意度所折合的费用.首先把基本费用视为0,即设火车在正点起行时的费用为0,仅考虑由于火车晚点起行所导致的额外费用.铁路部门的费用主要由两部分组成.一部分为额外的汽油费,这个费用主要是由于火车晚点起行时,要在快速行驶所额外消耗的汽油费;另一部分为晚点起行造成乘客退票的退票费.若火车晚点起行,为了正点抵达目的地,它必须以最快速度行驶,这样由于风阻力的增大和其它因素,就要增加汽油的消耗.我们不太清楚速度的增加如何引起耗油费和增加,但当加速过程结束,在路上以最大安全速度行驶时,额外的耗油费将是一个常数.为简单起见,选用线性函数来表示额外的油耗费,其公式为:⎩⎨⎧><=τττt k t kt t F ,,)(其中,t 为火车晚点起行的时间,显然当火车正点起行时,t =0,若t 0为首列起行的时刻,d t 为正点起行的时刻,△为起行的时间间隔,则第j 个起行的火车晚点起行的时间为:d t j t t -∆-+=)1(0由于τ为最长的晚点起行时间,即当晚点起行的时间超过τ以后,即使在路途中以最大速度行驶,也不能正点抵达目的地,因此max V d t T d A --=τ其中A T 为正点抵达目的地的时刻,d 为行驶距离, m ax V 为最大的安全行驶速度.d 可用公式来表示Vt T d d A )(-=其中d t 为正点起行时刻, V 为正点起行时平均行驶速度.常数k 与油价、单位晚点时间油耗的增加率及最大安全行驶速度有关,同时还应与行驶距离有关,当然行驶距离越长,额外的油耗就越大.由于行驶距离为V t t )(0-,则有:⎩⎨⎧>-<-=ττττt V t k t t V t t k t F ,)(,)()(00下面再计算乘客由于火车晚点起行而退票的退票费用为:%80)()(⋅=pm t u k t R πΠ为晚点而造成退票的退票率; u(t)乘客出现退票的时间段即:()()⎩⎨⎧≥--<=0u(t)w,t t 0u(t)0,u(t)0d 费用系数中还应考虑乘客的不满意程度.一般地,火车晚点起行的时间越长,旅客就越抱怨,其不满意程度就越大.如果晚点时间只有1~2分钟,旅客就不会太不满意.但是,随着晚点时间的增加,旅客会非常生气,而不满意度会急骤增加,因此我们选用指数函数描述旅客的不满意程度.这个不满意程度对车上每一旅客都是如此,但对要退票的乘客,还需要追加另外的不满意度,用D(t)表示总的不满意程度所折合的费用,则)()1()(t u b e ap t D t πα+-=p 为乘客总数,π为乘客退票率,为了保证在正点起行时乘客的不满意度为0,因而采用了)1(-t e α的形式,显然t=0时,D(0)=0. α为乘客不满意度的增长率,a,b 为折合率,)1(-t e ap α代表全体乘客不满意度折合的费用, )(t u b π为退票乘客追加的不满意度所折合的费用,这一项只有当d t t ≥才起作用.综上所述,费用系数ij c 应为额外油耗费、赔偿费、及不满意度所折合的费用之和)()()(t D t R t F c ij ++=⎪⎪⎪⎩⎪⎪⎪⎨⎧≥⋅++-+-<≤⋅++-+-<≤+-+-<=τππτττπππαααt t u k t u b e ap V t k t w t u k t u b e ap t V t t k wt t t u b e ap t V t t k t t c tt d t dij %,80)()()1()(%,80)()()1()(),()1()(,0000t 和τ由下式给出max0)()1(v V t T t T j t t t avd A d A d ---=∆-+-=τ2)计算实例为了执行简单,再作一些假设。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Project1火车车厢重排调度年级:2014级学院:电子与信息工程学院班级:智能科学与技术、自动化姓名:*** 14350046 姓名:*** 14350045 姓名:*** 14350069【题目要求】1.问题:一列火车要将n节车厢分别送往n个车站,车站按照n,n-1,…,1的编号次序经过车站。

假设车厢的编号就是其目的地车站的编号。

2.要求:给定一个任意的车厢排列次序。

重新排列车厢,使其按照从1到n的次序排列。

规定重排调度时车厢只能从入轨到缓冲铁轨,或者从缓冲铁轨到出轨。

【数据结构与算法】本程序将栈的空间设为25(可以通过全局常量maxstack直接修改),栈的最大数量设为100(可以直接修改)。

可以处理任意少于100个任意次序车厢的火车重排调度问题。

流程图如图1:图1 总流程图【测试数据、结果及分析】实验1:顺序输入车厢节数:10车厢顺序:1 2 3 4 5 6 7 8 9 10测试结果如图2。

图2 实验1测试结果测试序列重排成功,使用0个栈,返回值正常,实验程序运行良好。

实验2:倒序输入车厢节数:10车厢顺序:10 9 8 7 6 5 4 3 2 1测试结果如图3。

图3实验2测试结果测试序列重排成功,使用1个栈,实验程序运行良好。

实验3:乱序输入车厢节数:10车厢顺序:3 2 4 5 7 8 9 6 1 10测试结果如图4。

图4实验3测试结果测试序列重排成功,使用7个栈,实验程序运行良好。

实验4:乱序输入车厢节数:25车厢顺序:25 2 6 4 5 3 7 23 9 19 11 12 16 14 15 13 17 18 10 22 21 20 8 24 1测试结果如图5。

图5 实验4测试结果测试序列重排成功,使用13个栈,实验程序运行良好。

实验五:乱序输入车厢节数:50车厢顺序:46 47 50 38 32 29 21 39 1 37 12 22 2 30 11 31 41 3 20 36 19 23 5 14 44 4 45 1335 8 24 40 7 28 43 16 27 34 6 42 15 26 10 17 9 33 18 25 49 48测试结果如下(由于太长无法完全截图,只能粘贴):请输入火车车厢的个数:50请输入火车车厢次序(中间有间隔):46 47 50 38 32 29 21 39 1 37 12 22 2 30 11 31 41 3 20 36 19 23 5 14 44 4 45 1335 8 24 40 7 28 43 16 27 34 6 42 15 26 10 17 9 33 18 25 49 48将第46车厢移动到缓冲轨道1将第47车厢移动到缓冲轨道2将第50车厢移动到缓冲轨道3将第38车厢移动到缓冲轨道1将第32车厢移动到缓冲轨道1将第29车厢移动到缓冲轨道1将第21车厢移动到缓冲轨道1将第39车厢移动到缓冲轨道2将第1车厢从入站轨道移动到出站轨道将第37车厢移动到缓冲轨道2将第12车厢移动到缓冲轨道1将第22车厢移动到缓冲轨道2将第2车厢从入站轨道移动到出站轨道将第30车厢移动到缓冲轨道3将第11车厢移动到缓冲轨道1将第31车厢移动到缓冲轨道4将第41车厢移动到缓冲轨道5将第3车厢从入站轨道移动到出站轨道将第20车厢移动到缓冲轨道2将第36车厢移动到缓冲轨道5将第19车厢移动到缓冲轨道2将第23车厢移动到缓冲轨道3将第5车厢移动到缓冲轨道1将第14车厢移动到缓冲轨道2将第44车厢移动到缓冲轨道6将第4车厢从入站轨道移动到出站轨道将第45车厢移动到缓冲轨道7将第5车厢从缓冲轨道1移动到出站轨道将第13车厢移动到缓冲轨道2将第35车厢移动到缓冲轨道5将第8车厢移动到缓冲轨道1将第24车厢移动到缓冲轨道4将第40车厢移动到缓冲轨道6将第7车厢移动到缓冲轨道1将第28车厢移动到缓冲轨道5将第43车厢移动到缓冲轨道7将第16车厢移动到缓冲轨道3将第27车厢移动到缓冲轨道5将第34车厢移动到缓冲轨道6将第6车厢从入站轨道移动到出站轨道将第42车厢移动到缓冲轨道7将第7车厢从缓冲轨道1移动到出站轨道将第15车厢移动到缓冲轨道3将第8车厢从缓冲轨道1移动到出站轨道将第26车厢移动到缓冲轨道5将第10车厢移动到缓冲轨道1将第17车厢移动到缓冲轨道4将第9车厢从入站轨道移动到出站轨道将第33车厢移动到缓冲轨道6将第10车厢从缓冲轨道1移动到出站轨道将第18车厢移动到缓冲轨道5将第11车厢从缓冲轨道1移动到出站轨道将第25车厢移动到缓冲轨道6将第12车厢从缓冲轨道1移动到出站轨道将第49车厢移动到缓冲轨道8将第13车厢从缓冲轨道2移动到出站轨道将第48车厢移动到缓冲轨道8将第14车厢从缓冲轨道2移动到出站轨道将第15车厢从缓冲轨道3移动到出站轨道将第16车厢从缓冲轨道3移动到出站轨道将第17车厢从缓冲轨道4移动到出站轨道将第18车厢从缓冲轨道5移动到出站轨道将第19车厢从缓冲轨道2移动到出站轨道将第20车厢从缓冲轨道2移动到出站轨道将第21车厢从缓冲轨道1移动到出站轨道将第22车厢从缓冲轨道2移动到出站轨道将第23车厢从缓冲轨道3移动到出站轨道将第24车厢从缓冲轨道4移动到出站轨道将第25车厢从缓冲轨道6移动到出站轨道将第26车厢从缓冲轨道5移动到出站轨道将第27车厢从缓冲轨道5移动到出站轨道将第28车厢从缓冲轨道5移动到出站轨道将第29车厢从缓冲轨道1移动到出站轨道将第30车厢从缓冲轨道3移动到出站轨道将第31车厢从缓冲轨道4移动到出站轨道将第32车厢从缓冲轨道1移动到出站轨道将第33车厢从缓冲轨道6移动到出站轨道将第34车厢从缓冲轨道6移动到出站轨道将第35车厢从缓冲轨道5移动到出站轨道将第36车厢从缓冲轨道5移动到出站轨道将第37车厢从缓冲轨道2移动到出站轨道将第38车厢从缓冲轨道1移动到出站轨道将第39车厢从缓冲轨道2移动到出站轨道将第40车厢从缓冲轨道6移动到出站轨道将第41车厢从缓冲轨道5移动到出站轨道将第42车厢从缓冲轨道7移动到出站轨道将第43车厢从缓冲轨道7移动到出站轨道将第44车厢从缓冲轨道6移动到出站轨道将第45车厢从缓冲轨道7移动到出站轨道将第46车厢从缓冲轨道1移动到出站轨道将第47车厢从缓冲轨道2移动到出站轨道将第48车厢从缓冲轨道8移动到出站轨道将第49车厢从缓冲轨道8移动到出站轨道将第50车厢从缓冲轨道3移动到出站轨道共用8个缓冲轨道结果分析:本程序可对少于100个任意次序车厢的火车进行调度。

进行多次乱序重排,实验程序均成功运行,且结果全部与人工计算相符合,实验程序满足实验要求。

【分工、贡献%、自我评分】王金顶:算法设计,主程序,调试,实验报告 34% 100分王帆:算法设计,栈程序,测试,实验报告 33% 100分张宇航:算法设计,流程图设计,实验报告 33% 100分【项目总结】本次题目较为简单,考察了我们对栈的学习与理解情况,同时也让我们复习了类的相关知识。

大家都为终于能够解决实际问题而感到开心。

在算法设计中也遇到了很多问题,如我们发现标准库中的栈占用内存过大,因此导致程序在处理车厢数很大时经常崩溃。

因此我们自己写了一个简单的栈,节省了大量内存,因此能够处理更加复杂的问题。

我们也增加了好几处错误处理代码,增加了程序的容错性。

如栈满、栈空现象等。

但是该程序在处理不连续序列时会出现问题,这也是我们一直在改进的地方,但是输出一直不稳定,有时正确有时错误,因此在程序清单中删除了这一部分。

总体而言,本次的实验让我们对自己有了更大的信心。

【程序清单】1.stack.h/*文件名:stack.h作用:栈的类定义*/#ifndef STACK_H#define STACK_Hconst int maxstack=25;class Stack{public:Stack();bool empty() const;bool full() const;int top() const;void push(int item);void pop();private:int count;int entry[maxstack];};#endif2.stack.cpp/*文件名:stack.cpp作用:栈的类成员函数的实现*/ #include<iostream>#include"stack.h"using namespace std;void Stack::push(int item){if (count<maxstack){entry[count++]=item;}}void Stack::pop(){if (count>0){--count;}}int Stack::top() const{if (count>0){return entry[count-1];}elsereturn 0;}bool Stack::empty() const{if(count>0) return false;return true;}bool Stack::full() const{if(count==maxstack) return true;return false;}Stack::Stack(){count=0;3.train.cpp/*文件名:train.cpp作用:主程序*/#include<iostream>#include"stack.h"using namespace std;int main(){int n, now_out=1;int stack_count=0;cout<<"请输入火车车厢的个数:" <<endl; //输入数据并储存cin>>n;int array[n];cout<<"请输入火车车厢次序(中间有间隔):"<<endl;for (int i=0; i<n; i++){cin>>array[i];}//输入部分Stack stack_array[100];for (int i=0; i<n; i++){if (array[i]==now_out) //判断当前车厢数是否恰好满足输出条件{cout<<"将第"<<now_out<<"车厢从入站轨道移动到出站轨道"<<endl; //如果满足直接输出now_out++;continue;}else //不满足则将数压入合适的栈{for (int j=0; j<stack_count+1; j++){if (stack_array[j].empty()){cout<<"将第"<<array[i]<<"车厢移动到缓冲轨道"<<j+1<<endl;stack_array[j].push(array[i]);if (j==stack_count){stack_count++;}break;}else if (stack_array[j].full()) //栈满时另找新栈{continue;}else if(array[i]<stack_array[j].top()){cout<<"将第"<<array[i]<<"车厢移动到缓冲轨道"<<j+1<<endl;stack_array[j].push(array[i]);break;}else;}}for (int s=0; s<stack_count; s++)//遍历各个栈顶是否有满足输出条件的数{if (stack_array[s].top()==now_out){cout<<"将第"<<now_out<<"车厢从缓冲轨道"<<s+1<<"移动到出站轨道"<<endl;stack_array[s].pop();now_out++;break;}}}for (int m=now_out; now_out<=n; m++){for (int s=0; s<stack_count; s++)//遍历各个栈顶是否有满足输出条件的数{if (stack_array[s].top()==now_out){cout<<"将第"<<now_out<<"车厢从缓冲轨道"<<s+1<<"移动到出站轨道"<<endl;stack_array[s].pop();now_out++;break;}}}cout<<"共用"<<stack_count<<"个缓冲轨道"<<endl;return 0;}。

相关文档
最新文档