如何在 R 中使用“sann”函数来解决图形问题?

数据挖掘 r 图表
2021-10-05 20:56:58

我在 R 中遇到了一个包,它有一个名为sann模拟退火的函数。

sann分别使用参数fngr优化和选择新点。

对于诸如 max-clique 或 max-stable 集问题之类的问题,fn将是一个求和函数,但不太清楚如何制定gr来修复这些图形计算。在这些情况下,如何gr“选择”?

1个回答

首先,对术语进行一些澄清。

R 中的是定义明确的格式的 R 函数、数据和编译代码的集合。

SANN ( sann) 不是一个包。根据您使用的包,sann可以是函数,或者更常见的是优化函数中使用的方法。

包含sann包括optimtrustOptimconsPlan和的包constrOptim

在 packageoptim中,该sann方法实现为:

> func <- function(x){
+   out <- (x[1]-2)^2 + (x[2]-1)^2
+   return <- out
+   }> 
> optim(par=c(0,0), fn=func, gr = NULL,
+       method = c("SANN"),
+       lower = -Inf, upper = Inf,
+       control = list(), hessian = T)

正如您所说,对于“SANN”(sann)方法gr用于生成新的候选点。如果它为 NULL,则使用默认的高斯马尔可夫内核。

现在,在您的用例中(图的情况),您可能想要做的是使用par并将value值传递给fnandgr这是这个 SANN 实现的一个很好的特性,在这个文档页面optim的一半多一点的地方都有介绍

par是找到的最佳参数集,valuefn对应的值par