机器学习可以用来提高算法的平均案例复杂度吗?

人工智能 算法 应用 时间复杂度
2021-11-15 11:17:38

我正在开发一种算法,在某个时刻,它必须探索从图表派生的指数数量的对象:

for o in my_graph.getDerivedObjects():
  if hasPropertyX(o):
    process(o)
    break;

如果派生对象之一具有属性X,然后算法对其进行处理然后停止。该理论确保这些派生对象中至少有一个具有属性X. 现在,我强烈怀疑图的某些拓扑方面与哪些派生对象实际上具有属性之间存在很强的相关性X. 我想预测一些具有属性的派生对象X使用机器学习。所以,这个想法是:

  1. 预测派生对象o据说有财产X- 或者也许预测n其中一些n.

  2. 如果其中任何一个有用,我会使用它们。如果没有,我运行指数算法。

当然,这不是算法最坏情况复杂度的优化。另外,我想我还应该开发一些统计测试,以证明预测算法确实有效。

这种类型的优化很常见吗?你能提供一些例子吗?关于这个主题的文献也将不胜感激。

1个回答

据我所知,在这个领域还没有很多学术出版物,可以广义地说属于基于搜索的软件工程以下是我所知道的。

  • 杰瑞·斯旺和内森·伯勒斯。Templar - 模板方法超启发式框架在:遗传编程 - 第 18 届欧洲会议,EuroGP 2015,丹麦哥本哈根,2015 年 4 月 8 日至 10 日,会议记录。2015 年,第 205-216 页。DOI:10.1007/978-3-319-16501-1_17。

    • 本文描述了“Hyper-quicksort”,一种使用机器学习 (ML) 生成枢轴函数的快速排序变体:
  • AEI Brownlee、N. Burles 和 J. Swan。一些泛在算法的基于搜索的能量优化在:IEEE Transactions on Emerging Topics in Computational Intelligence 1.3 (2017),第 188-201 页。

    • 本文使用 ML 生成一些广泛使用的算法的节能变体
  • David R. White、Leonid Joffe、Edward Bowles 和 Jerry Swan。Akka 中并发分治算法的深度参数调优国际标准书号:978-3-319-55792-2。

    • 本文使用 ML 优化 FFT、矩阵乘法和快速排序以实现并发
  • Nathan Burles、Edward Bowles、Alexander EI Brownlee、Zoltan A. Kocsis、Jerry Swan 和 Nadarajen Veerapen。面向对象的遗传改进以改善 Google Guava 中的能源消耗DOI:10.1007/978-3-319-22183-0_20。

    • 这个优化了谷歌番石榴的能源消耗
  • Zoltan A. Kocsis、Geoff Neumann、Jerry Swan、Michael G. Epitropakis、Alexander EI Brownlee、Saemundur O. Haraldsson 和 Edward Bowles。修复和优化 Hadoop hashCode 实现在:基于搜索的软件工程:第 6 届国际研讨会,SSBSE 2014,DOI:10.1007/978-3-319-09940-8_22。

    • 这个通过使用 ML 生成新的来修复损坏的 hashCode

还有一个(我认为来自微软研究院)题为“自我调整数据结构的案例”之类的东西。如果我能找到它,我会添加一个编辑。