6

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

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

4

3 回答 3

6

只建议在 SQL 中进行简单的计算,例如计算总和。在 SQL 中求和更快,因为只返回总和而不是所有记录。必须在您的 c# 代码中完成您所想到的复杂算法!首先,SQL 语言不适合此类问题,其次它针对 db 访问进行了优化,因此对于其他类型的使用来说速度非常慢。

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

于 2012-01-08T15:54:43.837 回答
1

好吧,我不确定 SQL 是否是完成此任务的最佳选择,但您可以尝试使用邻接矩阵作为输入。许多已发布的算法都是为这种输入设计的,之后唯一的问题是将伪代码放入 C#。看看这个: http ://en.wikipedia.org/wiki/Adjacency_matrix 。

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

于 2012-01-08T15:48:38.977 回答
1

我要插话SQL。虽然在 TSP 上工作并不是我的第一选择——它仍然可以轻松地做这种事情——当然假设数据模型最适合你的工作。

第一项工作是定义一个数据模型来保存算法所需的信息,然后填充一些样本数据,然后制定一个可以根据需要检索数组的查询。

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

最后,您可以选择将其拉出到您选择的备用语言。

于 2012-01-08T16:21:33.570 回答