gpt4 book ai didi

c++ - 仿真设计——数据流、耦合

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:01:37 27 4
gpt4 key购买 nike

我正在编写一个模拟,需要一些关于设计的提示。基本思想是生成给定随机过程的数据,然后将其用于各种计算。例如对于 1 次迭代:

  • 进程 1 -> 为源 1 生成数据:x1
  • 进程 2 -> 为源 1 生成数据:x2
  • 等等

稍后我想对源 2 的输出应用一些转换,例如 x2a、x2b、x2c。所以最后得到以下 vector :[x1, x2a, x2b, x2c]。

我有一个问题,关于 N 多元随机过程(代表例如多重相关现象)我必须一次生成 N 维样本:

  • 进程 1 -> 为源 1...N 生成数据:x1...xN

我正在考虑允许结构化模拟代码并提供灵 active 而不影响性能的简单架构。

我在想一些类似的事情(伪代码):

class random_process
{
// concrete processes would generate and store last data
virtual data_ptr operator()() const = 0;
};

class source_proxy
{
container_type<process> processes;
container_type<data_ptr> data; // pointers to the process data storage
data operator[](size_type number) const { return *(data[number]);}
void next() const {/* update the processes */}
};

不知何故,我不相信这种设计。例如,如果我想使用样本 vector 而不是单次迭代,那么上面的设计应该改变(例如,我可以让进程用数据填充传递给它们的代理矩阵的子矩阵,但是再次不确定这是否是个好主意——如果是,那么它也很适合单次迭代的情况)。欢迎任何意见、建议和批评。

编辑:

以上文字的简短总结,总结重点,阐明情况:

  • random_processes 包含生成一些数据的逻辑。例如,它可以使用给定的均值和相关矩阵从多元随机高斯中抽取样本。例如,我可以使用 Cholesky 分解 - 结果我将得到一组样本 [x1 x2 ... xN]
  • 我可以有多个 random_processes,具有不同的维度和参数
  • 我想对 random_processes 生成的单个元素进行一些转换

这是数据流图

random_processes                    output   x1    --------------------------> x1                               ----> x2ap1 x2    ------------transform|----> x2b                               ----> x2c   x3    --------------------------> x3p2 y1    ------------transform|----> y1a                               ----> y1b

输出被用来做一些计算。

最佳答案

当我读到这篇文章时,“答案”并没有出现在我的脑海中,而是一个问题:

(这个问题是市场上各种工具供应商已经创建可配置解决方案的一类问题的一部分。)

您“必须”写这篇文章,还是可以投资于久经考验的技术来让您的生活更轻松?

在 Microsoft 的工作中,我与高性能计算供应商合作,其中有几家拥有数学库。这些公司的人比我更能理解这个问题。 :)

干杯,格雷格·奥利弗 [MSFT]

关于c++ - 仿真设计——数据流、耦合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/579806/

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