• 数据结构课程设计


    20. 公交线路上优化路径的查询 

    问题描写叙述 

    最短路径问题是图论中的一个经典问题,当中的Dijkstra算法一直被觉得是图论中的好算法,但有的时候须要适当的调整Dijkstra算法才干完毕多种不同的优化路径的查询。 

    对于某城市的公交线路,乘坐公交的顾客希望在这种线路上实现各种优化路径的查询。设该城市的公交线路的输入格式为: 

    线路编号:起始站名(该站坐标);经过的网站1(该站坐标);经过的网站2(该站坐标);……;经过的网站n(该站坐标);终点站名(该站坐标)。该线路的乘坐价钱。该线路平均经过多少时间来一辆。车速。 

    比如:63A(32,45)B(76,45)C(76,90);……;N(100,100)1元。5分钟。1/每分钟。 

    假定线路的乘坐价钱与乘坐站数无关,假定不考虑公交线路在路上的交通阻塞。 

    对这种公交线路,须要在其上进行的优化路径查询包含:不论什么两个网站之间最廉价的路径;不论什么两个网站之间最省时间的路径等等。 

     基本要求 

     依据上述公交线路的输入格式,定义并建立合适的图模型。 

     针对上述公交线路,能查询获得不论什么两个网站之间最廉价的路径,即输入站名ST后,能够输出从ST的最廉价的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。共花费x元。 

     针对上述公交线路,能查询获得不论什么两个网站之间最省时间的路径(不考虑在中间站等下一辆线路的等待时间),即输入站名ST后,能够输出从ST的考虑在中间站等下一辆线路的等待时间的最省时间的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。共花费x时间。 

     针对上述公交线路,能查询获得不论什么两个网站之间最省时间的路径(要考虑在中间站等下一辆线路的等待时间),即输入站名ST后,能够输出从ST的考虑在中间站等下一辆线路的等待时间的最省时间的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。共花费x时间。 

    (4) 实现提示 

    需深入考虑,应依据不同的应用目标,即不同的优化查询来建立合适的图模型。 

     

    github地址:

    https://github.com/Findxiaoxun/Busmap

    devlog




    2014年03月19日 13时57分12秒 正式開始,前两个问题的算法已经有了头绪,今天就先把这两个实现。
    还是先考虑下数据的读入和存储问题吧。以免后期大修改。
    路线用vector,联通否直接用二维数组,每一个点都标序号
    class node应该包括的东西:
    网站序列,网站经过的线路号,
    class route :
    线路经过的网站
    线路车速,价格,
    等待的时间。


    文件的操作放到server上。同一时候文件的处理,对路线等的读入和初步处理在server上。
    採用多线程来计算,同一时候,主意在屏幕提示状态
    结果的保存格式?选择的点及用的路线。按顺序存储
    2014年03月26日 10时32分08秒 尽管scanner巨慢无比,我还是先选用scanner看看吧http://zhidao.baidu.com/link?url=lQFBknkSa43YWkq8gxWtQfQbdg
    DS5raKmZBnqQdgpYdI1XUkv_RrjY97Wf9fjr3taj80DKjJNjs1hkaHZ10wTK
    新建一个client来处理吧,先,至于用不用server再说吧,用的话,还须要下载文件。这样也行。
    进度条:http://blog.csdn.net/kakashi8841/article/details/6388797
    http://bbs.csdn.net/topics/340076988
    进度条先放一放,client载入数据用最后.thread 和runnable的差别http://blog.chinaunix.net/uid-20665441-id-310538.html
    文件的工作放到
    rmi传输文件:http://www.cnblogs.com/qytan36/archive/2010/03/28/1698885.html




    仅仅写本地的!!!
    version 0.3
    数据格式:
    线路号 网站数 站1 x1 y1 站2 x2 y2 站3 x3 y3 站4 x4 y4 ...  价格 周期 车速
    搜集数据


    2014年04月02日 10时35分05秒 把数据格式定下来,同一时候准备做主界面(開始有个页面的消失动画)


    version 0.6
    更新了主界面。准备今晚先写算法,然后准备更新的东西。
    最省时间的那个算法:
    首先先把数据读入进去。也不要处理。读入的是每条线路的经过的点,这条线路的价格。等等。然后再循环每条线路,更新经过的点的passRoute,还有就是点与点之间的是否通(后期能够通过两个点的共同的路线来确定路线。)
    14:46 2014/4/23
    version 0.7 完好界面,同一时候測试第一个算法功能
    后期目标:接入语音功能,能够弹出结果的选择界面
    Node:
    index:节点序号passRoute[]:经过它的线路号len经过它的线路数量x,y:节点坐标
    getPassRoute()获取通过的线路号
    getIndex()获取节点号
    addPassRoute()加入经过的线路,用户在初始加入线路的时候


    Route:
    speed:速度index线路号price价格time多长时间来一趟len经过的节点数passNode经过的节点号
    addPassNode()加入经过的节点号
    getPassNode()获取该线路的节点集合
    getSpeed()获取速度
    getPassNodelen()获取经过的节点数量

    16:37 2014/4/27 抓紧时间完好啊!!!
    9:15 2014/5/4 goal:完好測试第一个
    version 0.8 文件读入结束,界面设计70%,准备開始測试第一个
    findbutton按下,直接调用dijkstra的方法
    最省时间的:先不考虑换成的车号
    全部的点都从1開始!!nodelen有意义
    15:56 2014/5/5 version 0.9 debug。。。。
    12:24 2014/5/6 version 1.0 正在进行第一个的调试,还是读入的问题啊!!!
    while(scan2.hasNext()){
    Route b=new Route();
    这里的b一定要在里面new啊@@@@@
    version 1.1 已经完好了第一个功能。并且測试通过。准备加入第二个算法。



    我就斗胆传上来了,终于实现的效果非常烂。。。花的时间太少了,倒是数据库的那个课程设计感觉做的还不错。http://blog.csdn.net/findxiaoxun/article/details/22265575

  • 相关阅读:
    测试EF6.1.3和OrmLite性能
    MVC自定义分页(附表跳转页Loading提示)
    仿京东手机充值进度导航
    PTA(Advanced Level)1052.Linked List Sorting.
    用双指针法巧解——PTA(Advanced Level)1032.Sharing
    PTA(Advanced Level)1022.Digital Library
    PTA(Advanced Level)1071.Speech Patterns
    PTA(Advanced Level)1054.The Dominant Color
    PTA(Advanced Level)1100.Mars Numbers
    PTA(Advanced Level)1060.Are They Equal
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/3771064.html
Copyright © 2020-2023  润新知