Questions tagged «implementation»

与算法实现有关的问题

9
强大的算法过于复杂,难以实施
有哪些合法实用程序的算法过于复杂而难以实现? 让我清楚一点:我不是在寻找像当前的渐近最优矩阵乘法算法(Coppersmith-Winograd)这样的算法,该算法可以合理实施,但具有一个常数,使其在实践中毫无用处。我正在寻找一种可能具有实用价值,但很难编码的算法,以至于它们从未实现,仅在极其人为的环境中实现,或者仅针对非常特殊的应用而实现。 还欢迎具有良好渐近性但实际性能可能不佳的几乎不可能实现的算法。

4
目前是否有关于随机抽取器实现的研究?
是否进行过实施随机性提取器构造的研究? 提取器证明似乎利用了Big-Oh,留下了大的隐藏常量的可能性,从而使程序实现可能不切实际。 一些背景:我对使用随机性提取器作为蒙特卡罗模拟中使用的(可证明的)随机数的快速来源感兴趣。我们(ETHZ计算物理小组)从量子随机数生成器中偏向了高熵源,我们希望从中提取随机性。先前的一名学生尝试实施Trevisan构造并遇到了空间复杂性问题。除了那个学生以外,我还没有找到任何尝试实现提取器的人的参考。 注意:我是CS本科生,他是理论CS和随机性提取器领域的新手。



3
实施代码以计算路径宽度(=节点搜索号,顶点分离号,间隔厚度)
我正在寻找一种算法的实现来计算图的路径宽度。众所周知,计算路径宽度等效于计算图的节点搜索数,顶点分离数或间隔厚度。该算法不必很快。我想在最多20个顶点的图形上运行它。我确实需要算法来精确计算路径宽度,而不是给出近似值。 我知道有一些实现可以计算图的树宽(相关概念),但是还没有找到任何实现来计算路径宽。任何指针表示赞赏!


2
可进行预处理的快速稀疏布尔矩阵乘积
将两个非常稀疏的布尔矩阵相乘的最实用的算法是什么(例如,N = 200,并且只有大约100-200个非零元素)? 实际上,我的优势在于,当我将A乘以B时,B是预定义的,并且我可以对它们进行任意复杂的预处理。我也知道乘积的结果总是和原始矩阵一样稀疏。 事实证明,“天真”算法(逐行扫描A;对于A行的每1位,或与B对应行的结果进行扫描)非常高效,仅需几千条CPU指令即可计算单个产品,所以要想超越它并不容易,并且只能以一个恒定的因子被超越(因为结果中有数百个一位)。但是我没有失去希望,并向社区寻求帮助:)

1
执行分区树?
有没有实施过分区树? 在这里,我正在谈论计算几何学中的分区树。最早(接近最佳)的版本是由于Matousek和其他人,以及最近的Timothy Chan: https://cs.uwaterloo.ca/~tmchan/optpt_2_10.pdf 对我来说,这些方法从未实现过,这听起来很疯狂,但是谷歌搜索没有发现任何人曾报告过的实现方法。

3
游戏中超现实数字的实现
康威(Conway)有一个非常好的超现实构造。它们是既包含实数又包含序数的“数字”,它们是完全有序的,并且具有字段的所有属性(除非它们不是一个集合,而是一个类)。 有关简介,请参见此pdf或Wikipedia。 它们甚至可以更广泛地推广到所谓的“游戏”,最初是为了研究组合游戏而引入的。Conway的最初动机是分析Go的游戏,尤其是残局特别适合使用“超现实游戏”进行建模。 我的问题是:您是否知道有人在AI(即计算机播放器)中实施了这种方法来提高其在游戏中的水平?我对Go的情况特别感兴趣,但其他情况也是如此。如果不是,是否有障碍或原因导致它不是一个好主意?

1
太难实现的强大算法-如何确定它们是正确的?
我在这里指的是一个问题:功能强大的算法实在太复杂了。 如果算法功能强大,但实施起来过于复杂,那么如何确定算法正确呢?如果没有实现,您将无法在现实世界中测试该算法,并且这种复杂的算法可能包含错误,可能会使算法无效。 这是我不明白的。如果您具有证明算法正确性的技术,那么您已经有算法可以实现它,不是吗?否则我们如何确定证明技术是正确的? 对不起,我很抱歉! 来自Kaveh的更新(此处转载,因为参数更好!): 如果您可以在像Coq这样的正式系统中正式证明算法的正确性,那么您也可以提取算法(因为实际上已经实现了算法),但是关键事实是,对于大多数算法,我们没有给出对于算法的正确性,我们使用非正式的正确性证明。这些证明可能是错误的,有时会发生,即使是正式的正确性证明也不能使我们完全确定该算法是正确的。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.