c#-4.0 - C# 中有没有直接的方法来优化数学函数或最小化表达式中的参数?

标签 c#-4.0 machine-learning mathematical-optimization

我正在尝试用 C# 实现一种算法,其中包含一些数学函数,例如:

最小化 a ||xu( i ) - Σj aj( i ) bj ||2 + β || a( i ) ||1

但我不确定 C# 中是否有任何直接的优化方法,并且我在论坛中找不到任何内容,或者您​​可以提供任何建议来解决 C# 中的此优化问题!?

最佳答案

有多种具有 C# 绑定(bind)的求解器可能适合您的问题,例如:

  • MS Solver Foundation是 Microsoft 的数学优化平台,为各种问题提供求解器,包括无约束和约束最小二乘法。付出了一些努力来深入研究 API,但作为返回,导数会自动计算等等。
  • ALGLIB提供了大量不同的优化器,可在 C# 中找到。 .
  • 上面阿里的评论中提到了IPOPT。我开发了与IPOPT的C#绑定(bind),可以下载here 。我当然有偏见,但我个人认为 API 相当简单。如果您使用csipopt,则需要手动提供导数。 (实际上还有一个库,其中包含 csipopt 并提供自动导数计算,Funclib。)
  • COBYLA2(如果有非线性约束)和 BOBYQA(如果有约束或无约束)是 Michael Powell 开发的无导数直接搜索方法。我已将这些求解器移植到 C#,100% 托管代码。 C# COBYLA2 项目可用 here ,并且 C# BOBYQA 项目可用 here .

关于c#-4.0 - C# 中有没有直接的方法来优化数学函数或最小化表达式中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12120306/

相关文章:

c# - 使用 LINQ 从两个其他列表中填充单个列表而不重复

machine-learning - 当数据集仅包含一类实例时,机器学习应使用什么方法?

python - 写入 COIN-OR CBC 日志文件

python - 如何使用 Dual_annealing 设置简单的线性约束?

c# - 访问 ControlTemplate 中的控件

c#-4.0 - TabOrder 不起作用

c# - 列表与字典(最大尺寸、元素数量)

machine-learning - OpenAI 健身房 : How do I access environment registration data (for e. g。 max_episode_steps) 来自自定义 OP 环境?

r - R 中的多项式朴素贝叶斯分类器

algorithm - 图中最大化值的最佳路径