h******g 发帖数: 33 | 1 min f(x)
subject to g(x)<0
f(x)和g(x)均凸。
但是f(x)不是处处可导
其形式大概为f(x)=0 when xa
谢谢 |
A*******r 发帖数: 768 | 2 分成两个子问题哈
【在 h******g 的大作中提到】 : min f(x) : subject to g(x)<0 : f(x)和g(x)均凸。 : 但是f(x)不是处处可导 : 其形式大概为f(x)=0 when xa : 谢谢
|
h******g 发帖数: 33 | 3 分成两个子问题不行呀。
因为变量x是个多变量,其中每个变量可能小于a,有的可能大于a呀。
请指点。谢谢
【在 A*******r 的大作中提到】 : 分成两个子问题哈
|
D*******a 发帖数: 3688 | 4 f(x)里面是max么?
【在 h******g 的大作中提到】 : min f(x) : subject to g(x)<0 : f(x)和g(x)均凸。 : 但是f(x)不是处处可导 : 其形式大概为f(x)=0 when xa : 谢谢
|
h******g 发帖数: 33 | 5 不是max,是分段线性函数。
就是导数不连续
【在 D*******a 的大作中提到】 : f(x)里面是max么?
|
D*******a 发帖数: 3688 | 6 f(x)是分段线性而且convex,那么可以写成f(x)=max{a_i x + b_i}
然后再变成
min z
s.t. z>=a_i x + b_i for all i
g(x)<=0
matlab里面有fminimax()可以直接解minimax问题,不需要变成z,不过也一样
【在 h******g 的大作中提到】 : 不是max,是分段线性函数。 : 就是导数不连续
|
h******g 发帖数: 33 | 7 我想了一下,好像不行呀。
比如:
max f(x1)+f(x2)+f(x3)
s.t. g(x1)>a;g(x2)>a;g(x3)>a
f(xi)=0 when xib
如何按您的方式化那么就应该表示为如下形式
max(x1 x2 x3 x1+x2 x1+x3 x2+x3 x1+x2+x3)
s.t. g(x1)>a;g(x2)>a;g(x3)>a
可是这样就相当于搜索了呀。复杂度很高呀。
谢谢
【在 D*******a 的大作中提到】 : f(x)是分段线性而且convex,那么可以写成f(x)=max{a_i x + b_i} : 然后再变成 : min z : s.t. z>=a_i x + b_i for all i : g(x)<=0 : matlab里面有fminimax()可以直接解minimax问题,不需要变成z,不过也一样
|
D*******a 发帖数: 3688 | 8 那就用bezier function近似吧
【在 h******g 的大作中提到】 : 我想了一下,好像不行呀。 : 比如: : max f(x1)+f(x2)+f(x3) : s.t. g(x1)>a;g(x2)>a;g(x3)>a : f(xi)=0 when xib : 如何按您的方式化那么就应该表示为如下形式 : max(x1 x2 x3 x1+x2 x1+x3 x2+x3 x1+x2+x3) : s.t. g(x1)>a;g(x2)>a;g(x3)>a : 可是这样就相当于搜索了呀。复杂度很高呀。 : 谢谢
|
l*****a 发帖数: 119 | 9 如果是个solver算 AMPL应该是可以接受这种分段函数的输入
如果只是想知道个算法 应该是subgradient method
个人意见,仅供参考
【在 h******g 的大作中提到】 : min f(x) : subject to g(x)<0 : f(x)和g(x)均凸。 : 但是f(x)不是处处可导 : 其形式大概为f(x)=0 when xa : 谢谢
|