gpt4 book ai didi

c++ - 在 C++ 中高效评估作为数据给出的任意函数

转载 作者:行者123 更新时间:2023-11-30 05:27:42 29 4
gpt4 key购买 nike

考虑以下目标:

创建一个程序来求解:最小化 f(x) 作为输入提供的任意 fx

如何设计一个 C++ 程序来接收 fx 的描述并高效地处理它?<​​/p>

如果程序实际上是一个 C++ 库,那么可以明确地为 fx 编写代码(可能继承自 f< 的一些基函数类x 的状态类)。但是,如果程序是一个服务,并且用户正在以某种高级表示形式发送 fx 的描述,例如一个 JSON 对象?

想到的点子1- 将 f 转换为内部函数表示(例如基本操作列表)。每当评估 f 时应用那些。问题:效率低下,除非每个操作都是批处理操作(例如,如果我们对大 vector/矩阵进行 vector 或矩阵操作)。

2- 以某种方式生成 C++ 代码并编译用于表示 x 和计算 f 的代码。有没有一种方法可以限制编译,以便只需要编译该代码,而其余代码已经“预编译”了?

最佳答案

mp library 使用的常用方法其他的是创建一个表达式树(或 DAG)并使用某种 nonlinear optimization通常依赖于可以使用自动或数值微分计算的导数信息的方法。

可以使用 generic visitor 有效地遍历表达式树以进行评估图案。使用 JIT 可能有点矫枉过正,除非评估函数所花费的时间占优化时间的很大一部分。

关于c++ - 在 C++ 中高效评估作为数据给出的任意函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37133214/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com