1

什么是协作算法?有科学可引用的参考吗?


细节:

  • 我发现很多关于协作算法的文章,但没有(或其他网站)有定义。
  • 我实际上正在寻找一个术语来描述分布式算法,其中每个实例在开始时都有所有信息并且可以自己完成整个任务,但是只要它们解决了子问题,实例就会互相帮助,所以其他实例会不必重做工作(因此是“协作”)。我在A Collaborative Approach for Multi-Threaded SAT Solving中使用了这个术语。你认为“协同算法”这个词适合这个吗?如果没有,你知道更好的术语吗?
4

2 回答 2

1

不,没有科学上可引用的参考资料。

从某种意义上说,所有并行/分布式编程都是“协作”的,即多个线程/节点在同一个大任务上进行协作。

分布式算法,其中.. 实例在解决子问题时相互帮助- 甚至某些 Web 应用程序集群也符合您的描述:单个集群节点“解决子问题”并将“解决方案”存储在分布式内存存储中(例如memcached 或 cassandra 或许多其他人)从而互相帮助。

于 2013-11-05T14:44:56.857 回答
0

我认为“协作算法”这个词并不正式。实际上,据我所知,“算法”一词本身并不是很正式。我猜算法可以形式化为“在图灵机上运行的程序”。我想我在某处看到过这个定义。

所以是的,我想你创造的所有术语都是有道理的,但你需要自己定义它(正式或非正式)。

不知道你的背景是什么,但是......好吧,在科学论文中,不同的作者有时使用相同的术语/概念来表示不同的事物,有时他们使用不同的术语来表示相同的事物。

此外,即使计算机科学论文是科学的,也并非其中的所有术语都得到了正式定义。所以我不会根据这些论文得出太多结论,除非我对所有这些论文都非常熟悉,或者除非其中一些被认为非常出色并被广泛接受为特定子领域的事实上的标准,或者场地。

于 2013-11-05T14:55:30.370 回答