在高维二进制数据空间中搜索的算法

计算科学 优化 机器学习
2021-12-05 05:41:02

是否有任何算法可以有效地学习/搜索长度为 1 和 0 的最佳序列n达到一定的性能?搜索是在高维二进制数据空间中执行的。这意味着搜索空间为2n在哪里n通常是数百个数量级。我知道离散粒子群优化、模拟退火或遗传算法可用于此目的,但我担心它们往往会陷入局部最优和/或无法在高维空间中有效工作。

2个回答

您可以将您的问题表述为二进制整数程序,尽管它们通常是 NP 难的,但某些实例可以通过分支和切割算法非常快速地解决(如果问题是线性的)。如果您的问题是非线性的,那么 MINLP 求解器可以为您提供最佳答案。尽管如此,我必须说,如果你的问题特别难,最合适的方法将是元启发式。

我建议您尝试对问题进行线性或二次公式化,并尝试一些可用的 MILP/MIQP 求解器。如果您在此框架中制定问题时遇到问题,请查看一些线性编程/整数编程建模书籍或在此处发布问题。

这个问题可以搜索为(几乎多项式)n-SAT 算法的模拟,但目前没有这样的算法可用(或者如果 P <> NP 可能永远不会),所以像SAGA这样的优化方法应该是根据您的要求的最佳选择

另外,有一种称为确定性退火(DA的算法在许多情况下都表现得很好,也许检查一下