【问题标题】:Best way to do convex optimization in Haskell?在 Haskell 中进行凸优化的最佳方法?
【发布时间】:2020-10-30 07:21:36
【问题描述】:

我希望在 Haskell 中做一些简单的凸优化;没什么太花哨的,只是用一些二次约束最小化线性函数。我遇到了HVX,我只是想知道这是否是为此目的的最佳软件包,或者是否有标准的替代方案。谢谢!

【问题讨论】:

  • HVX 似乎是一个无人维护的学生项目,从未上传到 Hackage。随意使用它,但不要指望任何形式的支持。

标签: haskell mathematical-optimization convex-optimization


【解决方案1】:

ad 包有几个有用的例程和一个或两个梯度下降操作。例如:

$ cabal install --pacakge-env . --lib ad
$ ghci
> import Numeric.AD
> take 1 $ drop 10000 $ gradientDescent (\[x] -> (x-1)^2 + 3) [10]
[[1.0000000000377052]]
> conjugateGradientDescent  (\[x] -> (x-1)^2 + 3) [10]
[[10.0],[1.0]]

我们看到我们正在最小化的函数,作为可遍历的输入(在本例中为列表),以及初始起点 [10]。这是optimization 包的基础包,即使它不能彻底解决您的问题,也应该提供一个良好的开端。

【讨论】:

  • 谢谢!我试试看。
猜你喜欢
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
相关资源
最近更新 更多