我有一个逆问题,其中需要确定可变数量的注射的最佳位置。
如果注入的次数是固定的,我可以很容易地想象实现 Simplex 或遗传算法(或实际上任何优化算法)。然而,随着变量数量的变化,Simplex 中的反射和 GA 中的交叉似乎变得不可能。
我可以使用元优化器为给定的注射次数找到最佳位置,并为每次注射次数重复此过程,但这在计算上很昂贵。
对我能做什么有什么想法吗?或者您可以指出我的任何来源(毫不奇怪,搜索“优化可变数量的变量”并不是很有成效)?
我有一个逆问题,其中需要确定可变数量的注射的最佳位置。
如果注入的次数是固定的,我可以很容易地想象实现 Simplex 或遗传算法(或实际上任何优化算法)。然而,随着变量数量的变化,Simplex 中的反射和 GA 中的交叉似乎变得不可能。
我可以使用元优化器为给定的注射次数找到最佳位置,并为每次注射次数重复此过程,但这在计算上很昂贵。
对我能做什么有什么想法吗?或者您可以指出我的任何来源(毫不奇怪,搜索“优化可变数量的变量”并不是很有成效)?
我有一个逆问题,其中需要确定可变数量的注射的最佳位置。
对我能做什么有什么想法吗?或者您可以指出我的任何来源(毫不奇怪,搜索“优化可变数量的变量”并不是很有成效)?
一种潜在的策略是使用混合整数公式,这在热交换网络合成或化学工艺设计等应用中非常常见,其中设计中使用的设备数量是先验未知的,但通常以一些数字(例如,由于成本限制,或一些特定于应用程序的直觉)。
基本的想法是你假设你最多有,比如说,喷射器,并引入整数变量来模拟您拥有的喷射器数量;通常,公式使用二元变量,这可以更容易地“停用”对应于不存在的注入器的约束,以及“激活”对应于当前正在考虑的注入器数量的约束。
如果注入的次数是固定的,我可以很容易地想象实现 Simplex 或遗传算法(或实际上任何优化算法)。然而,随着变量数量的变化,Simplex 中的反射和 GA 中的交叉似乎变得不可能。
我想你的意思是 Nelder-Mead Simplex 算法?理论上,可以在迭代过程中改变决策变量的数量;例如,当在优化问题(例如,SQP 求解器)中使用降阶模型时,就会采用这种策略,尽管它需要对基础数值方法进行一些修改以解释变量数量的变化;您需要考虑的不同维度空间之间的(伪)可逆映射,并且您需要一个使您能够在中间方法中更改变量数量的实现。大多数实现假设一旦指定了初始问题数据,变量的数量就固定了,这从一开始就提出了实现问题。
我认为这种方法对您的应用程序的基本问题是,与模型缩减或自适应网格细化等不同,如何廉价地决定何时更改决策变量的数量以及数量不太清楚。
想到的第一个策略是您建议的策略:
我可以使用元优化器为给定的注射次数找到最佳位置,并为每次注射次数重复此过程,但这在计算上很昂贵。
...正如您所指出的,这种策略会很昂贵。混合整数公式也很昂贵,但如果有一个好的求解器和好的启发式选择,你可能会很幸运。
有大量关于地球物理学中“跨维”马尔可夫链蒙特卡罗方法的文献,其中地球物理模型由多个层组成,反演过程除了调整层的属性外,还会调整层数。这可能与您的问题非常相关。
但是,尚不清楚您的问题是否完全是逆问题-如果您要决定应该在哪里执行一系列注入,那是优化问题而不是参数估计问题,即使优化必须在相对于系统中一些随机参数的随机意义。