d*******2 发帖数: 340 | 1 要优化一个问题,希望目标函数g(x)越大越好,同时要求某一特征值min[f(x)]要大于
某一个值M0。优化的时候如果把目标函数定义为
g(x)+c*min[f(x)],其中c为一个权重系数。当c很小的时候,最后得到的min[f(x)]太
小;增大c的话,优化结果就面目全非。
如果把目标函数定义为
g(x)+c*Ave[f(x)<2*M0] 或者g(x)+c*Ave[f(x)<3*M0],其中Ave为取平均值的意思,最
后得到的min[f(x)]也还是太小。请问大家有什么好办法吗?
先谢了! |
m**a 发帖数: 53 | 2 注意到你说的这句:“当c很小的时候,最后得到的min[f(x)]太小;增大c的话,优化
结果就面目全非。”这里的c从“太小”增大到结果“面目全非”,中间总得有点连续
性吧?或者说,你说c“太小”的时候是相对于什么值而言?
看起来你要单独优化g(x)或是min[f(x)]都没问题,目前你真正需要找的是一个让你满
意的c值。
【在 d*******2 的大作中提到】 : 要优化一个问题,希望目标函数g(x)越大越好,同时要求某一特征值min[f(x)]要大于 : 某一个值M0。优化的时候如果把目标函数定义为 : g(x)+c*min[f(x)],其中c为一个权重系数。当c很小的时候,最后得到的min[f(x)]太 : 小;增大c的话,优化结果就面目全非。 : : 如果把目标函数定义为 : g(x)+c*Ave[f(x)<2*M0] 或者g(x)+c*Ave[f(x)<3*M0],其中Ave为取平均值的意思,最 : 后得到的min[f(x)]也还是太小。请问大家有什么好办法吗? : : 先谢了!
|
d*********6 发帖数: 1972 | 3 如果是数值问题不妨试试随机优化
1.确定合理的x区间
2.在区间内随机选取大量的x数值
3.对于每一个x 计算g(x)和min[f(x)]
4.if min[f(x)]
5.剩余x里面g(x)最大的应该是lz需要的x
这是最基本的,然后你还可以根据函数的特性取non-linear grid
然后你还可以多次optimization 你的grid大小也可以渐渐变小
最后得到一个很好的x
【在 d*******2 的大作中提到】 : 要优化一个问题,希望目标函数g(x)越大越好,同时要求某一特征值min[f(x)]要大于 : 某一个值M0。优化的时候如果把目标函数定义为 : g(x)+c*min[f(x)],其中c为一个权重系数。当c很小的时候,最后得到的min[f(x)]太 : 小;增大c的话,优化结果就面目全非。 : : 如果把目标函数定义为 : g(x)+c*Ave[f(x)<2*M0] 或者g(x)+c*Ave[f(x)<3*M0],其中Ave为取平均值的意思,最 : 后得到的min[f(x)]也还是太小。请问大家有什么好办法吗? : : 先谢了!
|