精华内容
下载资源
问答
  • 我正在研究Python中的一个程序,其中一小部分涉及优化方程/不等式系统.理想情况下,我本来想做的就像在Modelica中一样,写出方程并让解算器处理它.解算器和线性编程的操作有点超出我的舒适范围,但我决定尝试.问题是程序...

    我正在研究

    Python中的一个程序,其中一小部分涉及优化方程/不等式系统.理想情况下,我本来想做的就像在Modelica中一样,写出方程并让解算器处理它.

    解算器和线性编程的操作有点超出我的舒适范围,但我决定尝试.问题是程序的一般设计是面向对象的,组合方程有许多不同的可能性,以及一些非线性,所以我无法将其转化为线性规划问题(但我可能错了).

    经过一些研究,我发现Z3求解器似乎做了我想要的.我想出了这个(这看起来像我想要优化的典型情况):

    from z3 import *

    a = Real('a')

    b = Real('b')

    c = Real('c')

    d = Real('d')

    e = Real('e')

    g = Real('g')

    f = Real('f')

    cost = Real('cost')

    opt = Optimize()

    opt.add(a + b - 350 == 0)

    opt.add(a - g == 0)

    opt.add(c - 400 == 0)

    opt.add(b - d * 0.45 == 0)

    opt.add(c - f - e - d == 0)

    opt.add(d <= 250)

    opt.add(e <= 250)

    opt.add(cost == If(f > 0, f * 50, f * 0.4) + e * 40 + d * 20 +

    If(g > 0, g * 50, g * 0.54))

    h = opt.minimize(cost)

    opt.check()

    opt.lower(h)

    opt.model()

    现在这个工作,并给我我想要的结果,尽管它不是非常快(我需要解决这样的系统数千次).

    但我不确定我是否正在使用正确的工具(Z3是一个“定理证明者”).

    API基本上就是我需要的,但我很好奇其他包是否允许类似的语法.或者我应该尝试以不同的方式制定问题以允许标准LP方法? (虽然我不知道怎么样)

    展开全文
  • 四边形不等式优化

    2018-12-11 08:40:29
    四边形不等式优化

    四边形不等式优化

    在动态规划中,经常遇到形如下式的转台转移方程:
    m(i,j)=min{m(i,k-1),m(k,j)}+w(i,j)(i≤k≤j)(min也可以改为max)
    上述的m(i,j)表示区间[i,j]上的某个最优值。w(i,j)表示在转移时需要额外付出的代价。该方程的时间复杂度为O(N^3)。
    下面我们通过四边形不等式来优化上述方程,首先介绍什么是”区间包含的单调性“和”四边形不等式“
    (1)区间包含的单调性:如果对于i≤i’<j≤j’,有w(i’,j)≤w(i,j’),那么说明w具有区间包含的单调性。(可以形象理解为如果小区间包含于大区间中,那么小区间的w值不超过大区间的w值)
    (2)四边形不等式:如果对于i≤i’<j≤j’,有w(i,j)+w(i’,j’)≤w(i’,j)+w(i,j’),我们称函数w满足四边形不等式。(可以形象理解为两个交错区间的w的和不超过小区间与大区间的w的和)
    下面给出两个定理
    定理一:如果上述的w函数同时满足区间包含单调性和四边形不等式性质,那么函数m也满足四边形不等式性质。
    我们再定义s(i,j)表示m(i,j)取得最优值时对应的下标(即i≤k≤j时,k处的w值最大,则s(i,j)=k)。此时有如下定理
    定理二:假如m(i,j)满足四边形不等式,那么s(i,j)单调,即s(i,j)≤s(i,j+1)≤s(i+1,j+1)。
    好了,有了上述的两个定理后,我们发现如果w函数满足区间包含单调性和四边形不等式性质,那么有s(i,j-1)≤s(i,j)≤s(i+1,j)。即原来的状态转移方程可以改写为下式:
    m(i,j)=min{m(i,k-1),m(k,j)}+w(i,j)(s(i,j-1)≤k≤s(i+1,j))(min也可以改为max)
    由于这个状态转移方程枚举的是区间长度L=j-i,而s(i,j-1)和s(i+1,j)的长度为L-1,是之间已经计算过的,可以直接调用。不仅如此,区间的长度最多有n个,对于固定的长度L,不同的状态也有n个,故时间复杂度为O(N2),而原来的时间复杂度为O(N3),实现了优化!今后只需要根据方程的形式以及w函数是否满足两条性质即可考虑使用四边形不等式来优化了。

    展开全文
  • 等式约束优化不等式约束优化

    千次阅读 2019-01-12 22:18:30
    在学习SVM的原理时,接触到了等式约束优化不等式约束优化,下面是根据相关资料自己总结出来的自己的,希望对大家有所帮助,这是第一篇博客。 1.等式约束优化 1.1.问题描述 当目标函数加上等式约束条件之后,...

    在学习SVM的原理时,接触到了等式约束优化与不等式约束优化,下面是根据相关资料自己总结出来的自己的,希望对大家有所帮助,这是第一篇博客。

    1.等式约束优化

    1.1.问题描述

    当目标函数加上等式约束条件之后,原本的非约束优化变成了等式约束优化,如下:

    \min_{x} f(x)  .....................................................................................(1)

    s.t. \ \ \ h(x)=0  ............................................................................(2)

    因为存在约束条件,所以将f(x)的解限定在了一个可行域的区域,此时可能找不到可以使得\nabla_xf(x)为0的点,但是我们的目的是找到可行域范围内f(x)的最小值即可。

    1.2.解法

    利用拉格朗日乘子法,引入拉格朗日算子 \alpha \in R^m ,构建拉格朗日函数如下:

    L(x,\alpha)=f(x)+\alpha*h(x) ..........................................................(3)

    然后对拉格朗日函数L(x,\alpha)x的偏导,令偏导为0,即:

    \nabla_xL(x,\alpha)=0 ..............................................................................(4)

    对(2)(4)式进行求解即得到此类问题的最优解。

    1.3.解释

    假设我们的目标函数为二维的,即f(x,y),在平面中画出f(x,y)的等高线,如下图的虚线所示

    显而易见,只有当等高线与目标函数的曲线相切时才有可能得到可行解。因此拉格朗日取得极值的必要条件是目标函数与约束函数相切,这时两者的法向量是平行的,即

    \nabla_xf(x)-\alpha\nabla_xh(x)=0 ................................................................(5)

    所以正好可以得到(3)式,需要注意的是,\alpha仅仅要求不等于0即可,正负号不需要确定。

     

    2.不等式约束优化

    2.1.问题描述

    不等式约束优化问题为:

    \min_{x} f(x) ...........................................................................................(6)

    s.t. \ \ \ g(x)\leq0 ..................................................................................(7)

    2.2.解法

    首先构建拉格朗日函数如下:

    L(x,\alpha)=f(x)+\beta *h(x) ...............................................................(8)

    对(8)式关于x求偏导,可得

    \nabla_xL(x,\beta)=0 ...................................................................................(9)

    另外还有KKT条件如下:

            \beta=0 \ and \ h(x)> 0  或者 \beta> 0 \ and \ h(x)=0 .....................(10)

    由(9)(10)两式可以得出最后的最优解。对于(10)式的解释请看2.3节。

    2.3.解释        

    假设我们的目标函数为二维的,下图给出了目标函数的等高线与不等式约束:

    根据上图可知,可行解存在于g(x)< 0或者g(x)=0的区域里取到,存在下列两种情况:

    a)当可行解x落在g(x)< 0的区域内,此时约束条件不起作用,直接极小化f(x)即可,所以(1)式L(x,\alpha)=f(x)+\beta *h(x)中,只需满足\beta=0即可。即上图左侧所示.

    b)当可行解x落在g(x)= 0的区域内,此时等价于等式约束优化问题。即上图右侧所示。此时目标函数的梯度方向为指向中心位置的反方向,而约束函数h(x)由约束区域指向非约束区域。由下图可以看出,在最优解的位置,约束函数的梯度方向于目标函数的梯度方向正好相反,从而有:

     -\nabla_xf(x)=\beta*\nabla_xg(x) ..................................................(11)

    (11)式其实就是(9)式的变形。当然(11)式有一个限制条件 \beta> 0

     

     

    展开全文
  • [最优化]不等式约束的优化问题求解

    万次阅读 2018-06-08 16:31:23
    不等式约束的优化问题求解 与前文讨论的只含等式约束的优化问题求解类似,含不等式约束的优化问题同样可以用拉格朗日乘子法进行求解 对于一般形式的优化问题: minimizef(x)subject&nbsp;toh(x)=0g(x)≤0...

    不等式约束的优化问题求解

    与前文讨论的只含等式约束的优化问题求解类似,含不等式约束的优化问题同样可以用拉格朗日乘子法进行求解
    对于一般形式的优化问题:

    minimizef(x)subject toh(x)=0g(x)0

    其中,f:RnR,h:RnRm,mn,g:RnRp
    引入下面两个定义:

    定义1:对于一个不等式约束gj(x)0,如果在xgj(x)=0,那么称该不等式约束是x处的起作用约束;如果在xgj(x)<0,那么称该约束是x处的不起作用约束。按照惯例,总是把等式约束hi(x)当作起作用的约束

    定义2:x满足h(x)=0,g(x)0,设J(x)为起作用不等式约束的下标集:

    J(x){j:gj(x)=0}

    如果向量
    hi(x),gj(x),1im,jJ(x)

    是线性无关的,那么称x是一个正则点

    下面介绍某个点是局部极小点所满足的一阶必要条件,即KKT条件。
    KKT条件:f,h,gC1,设x是问题h(x)=0,g(x)0的一个正则点和局部极小点,那么必然存在λRmμRp,使得以下条件成立:

    μ0Df(x)+λTDh(x)+μTDg(x)=0TμTg(x)=0h(x)=0g(x)0

    那么在求解不等式约束的最优化问题的时候,可以搜索满足KKT条件的点,并将这些点作为极小点的候选对象。

    二阶充分必要条件

    除了一阶的KKT条件之外,求解这类问题还有二阶的充分必要条件。

    二阶必要条件:在上述的问题中若x是极小点且f,h,gC2。假设x是正则点,那么存在λRmμRp使得

    1. μ0,Df(x)+λTDh(x)+μTDg(x)=0T,μTg(x)=0
    2. 对于所有yT(x),都有yTL(x,λ,μ)y0成立

    二阶充分条件:假定f,h,gC2xRn是一个可行点,存在向量λRmμRp使得

    1. μ0,Df(x)+λTDh(x)+μTDg(x)=0T,μTg(x)=0
    2. 对于所有yT~(x,μ),y0,都有yTL(x,λ,μ)y>0成立

    那么x是优化问题h(x)=0,g(x)0的严格局部极小点

    展开全文
  • 四边形不等式优化dp

    2017-04-14 09:45:00
    今天第一次学习四边形不等式优化dp,感觉优化效果十分给力,不过数学味道比较浓重,证明比较复杂。因此这里删繁就简,给出关于四边形不等式优化必须要明白的地方,以后直接套用条件即可。 四边形不等式优化条件 在...
  • 四边形不等式优化dp专题
  • 1 等式约束优化问题 等式约束问题如下: 2 不等式约束优化问题
  • 的状态i需要从前面(0~i-1)个状态找出最优子决策做转移时 我们常常需要双重循环(一重循环跑状态 i,一重循环跑 i 的所有子状态)这样的时间复杂度是O(N^2)而 斜率优化或者四边形不等式优化后的DP可以将时间复杂度...
  • 四边形不等式dp优化

    2017-07-10 23:24:58
    四边形不等式优化动态规划原理: 1.当决策代价函数w[i][j]满足w[i][j]+w[i’][j’]时,称w满足四边形不等式.当函数w[i][j]满足w[i’][j][i][j’] i时,称w关于区间包含关系单调. 2.如果状态转移方程m为 : m[i]...
  • 四边形不等式优化DP

    2020-04-16 18:29:02
    定义 1.原始定义 假设有一个二元函数w(x,y)w(x,y)w(x,y),如果对于任意a≤b≤c≤da \leq b \leq c \leq da≤b≤c≤d,有 w(a,d)+w(b,c)≥w(a,c)+w(b,d)w(a, d) + w(b, c) ...就说函数www满足四边形不等式 2.等价定义...
  • 南京大学何炳生教授的凸优化与变分不等式的收缩算法,希望对你有帮助。
  • 这大概是跟斜率优化一样神的东西qwq,但是证明复杂一点,以及似乎用到的题目也少一点,毕竟使用条件有点苛刻。 正题 它用来加速类似这样的 dpdpdp:f[i][j]=min⁡k=ij−1{f[i][k]+f[k+1][j]+w(i,j)}f[i][j]=\min_{k=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,727
精华内容 690
关键字:

优化不等式