我有6000个英格兰的始发地 - 目的地位置对。对于每对,我需要找到从起点到目的地的最短路径。最短路径算法将基础道路网络的每个链路和一个OD对的细节(节点纬度和经度,道路链路长度和唯一ID)作为输入。
底层道路网络上的链接数量是4091065.我读取道路网络并将其存储在一个结构数组中,每个元素代表一个链接并将其保存在.mat文件中。正如您所看到的,数据的大小变得太大而Matlab的内存不足。
我很感激能够解决这个问题的方法。增加记忆似乎没什么帮助。
由于
答案 0 :(得分:1)
我认为最好的方法是不要在Matlab中完成 - 使用数据库。
如果必须是Matlab,也许你可以用某种方式对数据进行分区 - 也许在县里等。非常确定您也可以找到为每个特定请求排除大量节点的方法。
答案 1 :(得分:1)
最短路径算法将详细信息作为输入(节点纬度 以及每个环节的经度,道路连接长度和唯一ID 基础道路网和一对OD。
当然,您可以限制需要加载的道路网络数量。所有4091065链接都不需要 - 如果您从特鲁罗前往伦敦,最短的路径不太可能绕过约克。
因此,您可以编写一个预处理器来决定给定OD对所需的道路网络子集,并将其加载到您需要的格式(可选择存储然后将该子集存储在&中),而不是只有一个文件。 #39; *。文件或其他格式,如果您认为您想要对同一数据尝试一些算法变体)。