处理海量图表-旅行推销员

本文关键字:旅行推销员 处理海 | 更新日期: 2023-09-27 18:19:48

我正在自学如何编程涉及TSP(Djikstra,Kruskal)的算法,我正在寻找一些启动建议。我正在使用C#和SQL。理想情况下,我希望能够在SQL中严格做到这一点,但我不确定这是否可能(我认为在50个顶点之后运行时会很糟糕)。

所以我想问题是,我可以只做SQL吗?如果可以,最好的方法是什么?如果没有,我必须让C#参与进来,那么最好的方法是什么?

处理海量图表-旅行推销员

只建议在SQL中进行简单的计算,比如计算和。SQL中的求和速度更快,因为只返回求和而不是所有记录。复杂的算法,如你心目中的那些,必须在你的c代码中完成!首先,SQL语言不适合此类问题,其次,它针对数据库访问进行了优化,使其在其他类型的使用中速度非常慢。

使用SQL将数据库中的数据读取到c#程序中的适当数据结构中。在那里执行所有与TSP相关的逻辑,如果需要,完成后将结果存储在数据库中。

我将加入SQL。虽然这并不是我真正的第一选择来处理TSP——它仍然可以很容易地做这种事情——当然,假设数据模型对您的工作是最优的。

第一项任务是定义一个数据模型,该模型包含算法所需的信息,然后填充一些样本数据,然后计算出一个可以根据需要检索数组的查询。

最后,您可以决定该查询中的一些简单SQL是否适合您,或者可能是存储过程形式的扩展。

最后,您可以选择将其提取到您选择的其他语言中。

嗯,我不确定SQL是否是实现这一目标的最佳选项,但您可以尝试使用邻接矩阵作为输入。许多已发表的算法都是为这种输入而设计的,之后唯一的问题就是将伪代码放入C#中。看看这个:http://en.wikipedia.org/wiki/Adjacency_matrix.

您将使用二维数组来表示矩阵。