你能解释一下我以下运行时的现象吗?

1视图(30天)
你好,
我写我的国家考试论文对算法求解最短路径问题的图表。
论文的核心算法是Dijkstra算法和A *。
有一章对两种算法的比较。比较是扫描/关闭节点的数量,需要单独的步骤和所需的运行时。为此,我写了一个脚本,该脚本创建了250图根据计划。(见图1, )
(图1)
在另一个脚本,我有Dijkstra算法计算最短路径 和一个最短路径 为每个250图。脚本测量了三个参数。
我创建的图后测量参数:图2显示了扫描节点的数量。
(图2:蓝色的序列=最短路径 橙色的序列=最短路径 )
根据图(和数据),序列似乎广场。下一个图显示所需的运行时。
(图3:蓝色的序列=最短路径 橙色的序列=最短路径 )
令人惊讶的是,有一个运行时“跳”。
根据测量数据,运行时 是蓝色的30秒左右,橙色的56秒左右。
然后,测量运行时 是蓝色的大约68秒,橙色的大约121秒。
因此,运行时几乎翻了一倍。
我有检查Dijkstra算法的图形和脚本,没有问题。的运行时也会发生“跳”* 。(见图4)
(图4:蓝色= Dijkstra´s最短路径序列 橙色的序列= *´s最短路径 )
在论文的讨论,我想解释这一现象,需要你的帮助。(可能是一个软件问题?)
我的计算机科学知识是非常有限的但我想理解它。
2的评论
奥利弗Grutzenmacher
奥利弗Grutzenmacher 2021年2月18日
你好dpb,
坦克你的答案。
我´已经运行的A * - script 这个日志。(图5)
有memoy问题吗?我´中发现 这个答案 每个内存typ的描述:
分配的内存=函数中分配的内存的总量和任何它调用。
释放内存=函数内的全部内存的释放和任何它调用。
自我记忆=函数所使用的内存的数量,但不包括任何函数调用。
峰值内存=最大内存的使用在任何时候在函数的执行。
´但我不知道,这个问题到底是什么。

登录置评。

答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!