• 基于TRE文章的非线性模型化线性方法


    之前写过一篇有关TRE优化模型详解的博文:

    https://www.cnblogs.com/zoubilin/p/17270435.html

    这篇文章里面的附录给出了非线性模型化线性的方式,具体内容如下:

    • 首先是篇文章的变量和原模型(具体见我上面那篇笔记):

    • 其次这篇文章附录给出的非线性化线性的方法:


      我觉得很经典,所以这几天我废了九牛二虎之力推导了这个附录的公式,并复现了它的化线性的过程•́‸ก

    一、目标函数#

    • 目标函数中的非线性项为:

    MaxtTzZ[PbztwZ(Sbwzt+Sewzt)+PeztwZ(Obwzt+Oewzt)]

    • 引入决策变量:

    Ybzit={1,iftzbi0,else

    Yezit={1,iftzei0,else

    • 此时应加入下面约束条件,即式(A.13)~式(A.14)式(A.28)~式(A.29)

      iIbzitYbzit=1

      iIezitYezit=1

      Ybzit,Yezit{0,1}

    • 引入价格集合(已知量),其中IbztIezt为对应渠道的可选择价格数量,i=1,2,...,Ibzti=1,2,...,Iezt

    Ωbzt={Pbzit}iIbzt

    Ωezt={Pezit}iIezt

    • 那么有:Pbzt=iIbztPbzitYbzitPezt=iIeztPezitYezit

    • 此时,目标函数变为:

    MaxtTzZ[iIbztPbzitYbzitwZ(Sbwzt+Sewzt)+iIeztPezitYezitwZ(Obwzt+Oewzt)]

    • 目标函数中仍存在非线性项YbzitwZ(Sbwzt+Sewzt)YezitwZ(Obwzt+Oewzt)

      所以需要再引入下面决策变量,也就是式(A.6)~式(A.7)

      Vbzit=YbzitwZ(Sbwzt+Sewzt)

      Vezit=YezitwZ(Obwzt+Oewzt)

      此时目标函数变为下式,也就是式(A.8) 的由来:

    MaxtTzZ[(iIbztPbzitVbzit)+(iIeztPezitVezit)]

    wZ(Sbwzt+Sewzt)的上限为awZ(Obwzt+Oewzt)的上限为b,要彻底转换目标函数变为线性,需要增加新的约束如下,包含了式(A.15)-式(A.18)式(A.33)-式(A.34)

    VbzitaYbzit

    VezitbYezit

    VbzitwZ(Sbwzt+Sewzt)

    VezitwZ(Obwzt+Oewzt)

    Vbzit[wZ(Sbwzt+Sewzt)]a(1Ybzit)

    Vezit[wZ(Obwzt+Oewzt)]b(1Yezit)

    Vbzit,Vezit0

    iIbzitVbzit=wZ(Sbwzt+Sewzt)

    iIezitVezit=wZ(Obwzt+Oewzt)

    二、约束条件#

    • 非线性项为Dbzt(Pzt)Dezt(Pzt)

    • 经过上面的转换,有:

      • eβ0z+β1zPbzt=eβ0z+β1ziIbzt(PbzitYbzit)其中,Ybzit是一个0-1变量,所以又可以写成:eβ0z+β1zPbzt=iIbztYbziteβ0z+β1zPbzit.

      • 同理,eβ0z+β1zPezt=iIeztYeziteβ0z+β1zPezit

    • rbzit=eβ0z+β1zPbzit

      rezit=eβ0z+β1zPezit

      式(A.1)~式(A.2),那么有:

      Dbzt(Pzt)=nzt×iIbztYbzitrbzitiIbztYbzitrbzit+iIeztYezitrezit+1

      Dezt(Pzt)=nzt×iIeztYezitrezitiIbztYbzitrbzit+iIeztYezitrezit+1

    • 为了将Dbzt(Pzt)Dezt(Pzt)化为线性,令:

      Rzt=1iIbztYbzitrbzit+iIeztYezitrezit+1

      式(A.3)。那么Dbzt(Pzt)=nztRztiIbztYbzitrbzitDezt(Pzt)=nztRztiIeztYezitrezit,需要明确的是:iIbztYbzitrbzit+iIeztYezitrezit0,故Rzt1

    • 此时仍存在非线性项iIbztRztYbzitrbzitiIeztRztYezitrezit

      令:

      Ubzit=RztYbzit

      Uezit=RztYezit

      式(A.4)-式(A.5)。此时需要新增的约束条件如下,包含了式(A.21)-式(A.27)式(A.32)-式(A.34)

      Ubzit,Uezit0

      Rzt0

      UbzitYbzit

      UezitYezit

      UbzitRzt

      UezitRzt

      UbzitRzt(1Ybzit)

      UezitRzt(1Yezit)

      iIbzitUbzit=Rzt

      iIezitUezit=Rzt

    Rzt+iIbztUbzitrbzit+iIeztUezitrezit=1

    • 此时约束条件(6)、(7)变为:

    wZ(Sbwzt+Sewzt)nztiIbztUbzitrbzit

    wZ(Obwzt+Oewzt)nztiIeztUezitrezit

    • 那么a=nztiIbztUbzitrbzitb=nztiIeztUezitrezit。约束VbzitaYbzitVezitbYezit分别变为:

      Vbzit(nztiIbztUbzitrbzit)Ybzit=nztUbzitiIbztrbzitYbzit

      Vezit(nztiIeztUezitrezit)Yezit=nztUezitiIeztrezitYezit

      • 已知Vbzit0,当Ybzit=0时,上面的第一条约束条件变为Vbzit0,此时Vbzit应为0;当Yezit=1时,上面的约束条件变为VbzitnztUbzitrbzit,此时Vbzit的取值应当为0VbzitnztUbzitrbzit

        综上和同理,在约束Vbzit,Vezit0下,式(A.19)式(A.20) 被推导出:

      VbzitaYbzitVbzitnztUbzitrbzit

      VezitbYezitVbzitnztUbzitrbzit

      • 对于约束条件Vbzit[wZ(Sbwzt+Sewzt)]a(1Ybzit)Vezit[wZ(Obwzt+Oewzt)]b(1Yezit),它们分别变为:

        Vbzit[wZ(Sbwzt+Sewzt)](nztiIbztUbzitrbzit)(1Ybzit)

        Vezit[wZ(Obwzt+Oewzt)](nztiIeztUezitrezit)(1Yezit)

        Ybzit=0时,上面第一条约束条件变为wZ(Sbwzt+Sewzt)nztiIbztUbzitrbzit这与文中式(6)相同;当Ybzit=1时,它则变为Vbzit=wZ(Sbwzt+Sewzt),而这又被约束条件iIbzitVbzit=wZ(Sbwzt+Sewzt)包含。

        综上及同理,约束条件Vbzit[wZ(Sbwzt+Sewzt)]a(1Ybzit)Vezit[wZ(Obwzt+Oewzt)]b(1Yezit)均属于重复约束,可被消除

    由此,所有公式已全部被推出,但还多了两条约束:

    • 对于约束条件UbzitRzt(1Ybzit)有:

      • Ybzit=0时,Rzt0,该约束已存在;Yzt=1时,Ubzit=Rzt,该约束已被iIbzitUbzit=Rzt所包含。

      • 综上及同理,约束条件UbzitRzt(1Ybzit)UezitRzt(1Yezit)属于重复约束,均可被删除

    以上就是这篇论文公式全部的推导,上面是所使用的非线性化线性的方法简例如下。

    三、简例#

    (1) 带有0-1变量的非线性规划问题#

    z=x1x2

    其中决策变量x1{0,1},0x2a

    那么我们可以用下面的方法化为线性规划:

    • 首先设一个新的决策变量y=x1x2,并将问题转化为:

      yax1

      yx2

      yx2a(1x1)

      y0

    • 由此,问题变为了线性问题

    (2) 带分母变量的非线性规划问题#

    minx+2y+34x+5y

    s.t.

    6x+7y8

    9x+10y0

    x,y0

    • z=14x+5y,此时目标函数变为:(x+2y)z+3z,但仍含有非线性项,此时我们又令:xz=u,yz=v,那么可以得到:

      minu+2v+3z

      s.t.

      6u+7v8z

      9u+10v0

      u,v,z0

    • 解上面的线性规划问题,可得到u,v,z的精确解,之后可代入式子解方程,得到x,y的精确解。

  • 相关阅读:
    Jenkins+webhooks-多分支参数化构建-
    如何阻止事件冒泡和默认事件
    Linux c 与 python的互操作
    ipv4正则和ipv6正则
    SpringBoot的使用
    VoLTE端到端业务详解 | 接通问题
    Trino Master OOM 排查记录
    计算机网络 | 第一章 认识计算机网络 | 王道考研笔记自用
    Vue 常用指令
    AMD EPYC(霄龙)Genoa服务器 | 综合评测
  • 原文地址:https://www.cnblogs.com/zoubilin/p/17742680.html