NaSch模型及改进的NS模型多车道Matlab代码

标题看着有点乱,其实是单车道NaSch模型和基于NaSch改进的多车道NS模型的代码。单车道的代码我是网上看到的,基于这个代码自己写了多车道的代码。去掉了GUI,输出了自己需要的东西。

对于二车道,最右车道用的是NS模型,左车道用的是FI模型,如果是三车道,那么中间的采用改进的NS模型,也就是把NS模型加速过程改成每次加速2个单位。 Continue reading “NaSch模型及改进的NS模型多车道Matlab代码”

数学建模国赛2011B题交巡警服务平台的设置与调度第五问的算法探讨

前几天培训的时候做了国赛2011B题交巡警服务平台的设置与调度,做完后大家讨论的时候焦点都在第五问的算法究竟如何设计。虽然最后老师给出的评分标准第五问只占15分,但是个人还是觉得第五问才是最精彩的地方。下面先介绍下第五问:就是一个市有若干路口节点,其中一些节点设置了一些交巡警平台,有个犯罪嫌疑人从其中一个平台开始逃跑,跑了三分钟,警察接到报警,然后开始围堵,叫你给出一个最佳的围堵方案。(赛题请见这里Continue reading “数学建模国赛2011B题交巡警服务平台的设置与调度第五问的算法探讨”

层次分析法的Matlab代码

层次分析法是确定权重的一种常用方法,但是由于比较矩阵较难获得,所以没有专家打分或者没有权威数据的情况下一般不用。当然,如果想很主观的用,也是可以的,只不过别人问起来就不好说话了。如果缺乏专家打分等数据,可以尝试使用熵值法,也是一种确定权值的不错的方法,这个现在不说,今天给出层次分析法的Matlab代码。 Continue reading “层次分析法的Matlab代码”

Dijkstra算法的Matlab/C++代码

Dijkstra算法,中文名迪杰斯特拉算法,是图论中最常用的算法之一,用来解决图中一个点到其他所有点的最短路问题。Dijkstra算法的Matlab代码和C++代码其实网上很多,但是我还是给出我自己写的,感觉比网上那些用起来方便多了。C++的是通信网理论基础课上的作业,绝对不会有问题。Matlab的已经经历我多次做题的考验了,从未出现过问题…… Continue reading “Dijkstra算法的Matlab/C++代码”

灰色预测模型的Matlab代码

灰色预测模型可以解决数据量少、信息贫乏情况下的预测问题,其中最简单的模型是GM(1,1),具体的步骤大家可以自行Google,大致就是先对数据进行检验,看其是否符合灰色预测模型的要求,然后进行灰色预测的求解,最后进行残差检验和偏差检验,如果都小于0.2,那么就是符合一般要求,如果都小于0.1,那么符合较高要求。在我实际使用中只要符合灰色预测模型的数据,预测结果都还是挺靠谱的。 Continue reading “灰色预测模型的Matlab代码”

匈牙利算法 Matlab/C++代码

匈牙利算法是为了解决二分图的最大匹配问题。其算法核心,其实就是不停的寻找增广路径,然后进行替换。这里引用Matrix67对其的理解,我觉得很精辟:

说穿了,就是你从二分图中找出一条路径来,让路径的起点和终点都是还没有匹配过的点,并且路径经过的连线是一条没被匹配、一条已经匹配过,再下一条又没匹配这样交替地出现。找到这样的路径后,显然路径里没被匹配的连线比已经匹配了的连线多一条,于是修改匹配图,把路径里所有匹配过的连线去掉匹配关系,把没有匹配的连线变成匹配的,这样匹配数就比原来多1个。不断执行上述操作,直到找不到这样的路径为止。

Continue reading “匈牙利算法 Matlab/C++代码”