基于时间价值和经济价值的公交线路选择研究
- 格式:doc
- 大小:34.50 KB
- 文档页数:6
基于时间价值和经济价值的公交线路选择研究
在对公交乘客出行心理特征进行分析的基础上,考虑了乘客选择公交线路决策的因素,建立了基于时间价值和经济价值的公交线路选择合理的模型。运用C 语言或方法,把数据库导入内存,基于Dijkstra算法的思想,利用邻接点算法对Dijkstra算法进行了优化,并得到了实现,有较强的实际应用价值。
标签:
时间价值;经济价值;内存Dijkstra算法
0 引言
在此我所设计的公交车查询系统就是为了方便人员在数据查询方面的操作,使得他们在日常生活中都会达到事半功倍的效果,减轻了人力的负担,方便了数据的存储,增加了安全性。
它在不考虑换乘地铁、步行以及其他因素的影响下,可以给乘客提供在起始站与终点站之间,能否直达或者换乘一站、换乘两站及三站的详细信息,最后能准确的显示最优化直达或者换乘路线。
1 系统设计关键技术
1.1 图
图是一种重要且复杂的数据结构。在线形表中,数据元素之间仅有着线性关系,每个数据元素只有一个直接前驱和一个直接后继;在树性结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中多个元素(即其孩子结点)相关,但只能和上一层中一个元素(即其双亲结点)相关;而在图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。
一个图由两部分组成,一部分是结点,图的术语中也称之为顶点(vertex);另一部分是顶点的偶对,称之为边(edge)。通常,图的任意一对顶点间都允许有一条边。
在本文中,我主要用图来表示地图上一组坐标以及坐标之间的距离,以求得最短路径从而对交通网中的公共交通信息进行查询。
1.2 数组
数组在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数
组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
1.3 线性链表
线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。因此,为了表示每个数据元素于其直接后继数据元素之间的逻辑关系,对于数据元素来说,除了存储其本身的信息之外,还需要存储一个指示其直接后继的信息(及直接后继的存储位置)。这两部分信息组成数据元素的存储映像,称为结点。他包括两个域:其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针
域。指针域中存储的信息称作指针或链。 n个结点(a(1≤i≤n)的存储映像)链接成一个链表,即为线性表
(a1,a2,a3,……,an )
的链式存储结构。又由于此链表的每个结点中只包含一个指针域,故又称线性链表或单链表。
2 系统的程序算法实现
2.1 数据库的标准化
当我们开始设计程序时,首先我们要做的就是把手中不甚规则的数据库变成具有统一字段的标准数据库,这样做可方便以后的编程和查询的方便。
2.2 将标准的数据库导入电脑内存
做完上述工作后,接下来要把标准的数据库导入电脑内存,同样,我们要用C语言编写一个程序,把数据导入电脑内存,在这里,我们所需要用到的主要是C语言及C++语言。
以下有硬盘的参数和内存的参数,对比可知,为何要把数据库数据直接导入硬盘中。
当我们把标准的数据库导入内存后,如何才能提高电脑对这些数据查询的速率呢,这时,我们需要把这些大量的数据以数组的形式表示出来,然后再以双链表的特点来进行读取查询,这样,我们就能达到提高电脑对数据库访问速率的目的了。
2.3 最短路径问题
网络分析的理论基础是图论,其典型应用是求最短路径问题。最短路径分析是根据网络的拓扑性质,求图中从一个顶点出发到其他各顶点之间的最短路径或求每对顶点之间的最短路径。
2.3.1 优化Dijkstra最短路径算法
迪杰斯特拉最短路径算法的数据组织基础是构造N*N的邻接矩阵,N是网络的结点数。当网络的结点数很大时,而各结点的邻接结点数又不多的情况下,有大量的元素存在,尤其是对于以真实的地图为对象的GIS实际应用问题,这样将占用大量的存储空间,并且运算也很浪费时间。作者在Dijkstra算法的基础上,采用邻接点算法,以提高运算速度。
2.3.2 邻接点算法基本思想
一个网络中,各结点的邻接结点的最大值称为该网络的最大邻接结点数。取网络的最大邻接结点数作为矩阵的列,网络的结点总数作为矩阵的行,构造邻接结点矩阵来描述网络结构。邻接结点矩阵的行按结点号从小到大顺序排列,与结点i邻接的结点号写在矩阵的第i行,如果结点i的邻接结点数小于最大邻接结点数,则以0填充.直到填满矩阵。对照邻接结点矩阵,把邻接结点矩阵中各元素邻接关系对应的边的权值填在同一位置上(对应0元素),构造相应的初始判断矩阵,邻接结点矩阵节省了存储空间,为在计算机实现过程中进一步提高运算速度,提供了更加有效的网络结构组织方式。
2.3.3 邻接点算法的实现
(1)从数据文件中装载网络数据。
(2)求网络的最大邻接结点数m。
(3)构造邻接结点矩阵,矩阵的行按结点序号由小到大顺序排列成m行,与结点i邻接的结点号写在第i行,如果结点i的邻接结点数小于最大邻接结点数,则以0填充,各行中的结点序号可以前后随意放置。对应邻接结点矩阵各元素,把各元素对应的边的权值填在同一位置,构造初始判断矩阵。
(4)有邻接结点矩阵和初始判断矩阵,就可以求网络中任意两点间的最短路径。若起点S,终点为T。
第一步,初始化标记向量P ,Pi=-1,i=1,2,…,m_iNodesNum,(m_iNodesNum为网络结点总数)。
第二步根据起点S,标记初始判断矩阵的第S行,ps=0 ,记最短距离