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

基于,tre,文章,非线性,模型,线性,方法 · 浏览次数 : 1

小编点评

**非线性规划问题** **(1) 带有0-1变量的非线性规划问题** \min\quad\frac{x+2y+3}{4x+5y}\ s.t.\ 6x+7y\leq{8}\ 9x+10y\geq{0}\ x,y\geq{0}\ **(2) 带分母变量的非线性规划问题** \min\quad{u+2v+3z}\ s.t.\ 6u+7v\leq{8z}\ 9u+10v\geq{0}\ u,v,z\geq{0}\ **(3) 生成内容时带简单的排版** 在生成内容时,需要带简单的排版,例如: * 对决策变量进行排序 * 对目标函数进行排序 * 对非线性项进行排序 * 对约束条件进行排序 **例** 以下是一个包含0-1变量和非线性项的非线性规划问题的排版: ``` z=x_1x_2 6x+7y<=8 9x+10y>=0 x,y>=0 u+2v+3z<=8z 9u+10v>=0 u,v,z>=0 ```

正文

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

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

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

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

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


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

一、目标函数

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

\[Max\quad{\sum_{t\in{T}}}\sum_{z\in{Z}}[P^t_{bz}\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})+P^t_{ez}\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})] \]

  • 引入决策变量:

\[Y^t_{bzi}=\begin{cases} 1,\quad\quad{if\,在t时期z区域渠道b对应的是第i个价格}\\0,\quad\quad{else}\end{cases} \]

\[Y^t_{ezi}=\begin{cases} 1,\quad\quad{if\,在t时期z区域渠道e对应的是第i个价格}\\0,\quad\quad{else}\end{cases} \]

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

    \[\sum_{i\in{I_{bzi}^t}}Y^t_{bzi}=1 \]

    \[\sum_{i\in{I_{ezi}^t}}Y^t_{ezi}=1 \]

    \[Y^t_{bzi},Y^t_{ezi}\in{\{0,1\}} \]

  • 引入价格集合(已知量),其中\(I^t_{bz}、I^t_{ez}\)为对应渠道的可选择价格数量,\(i={1,2,...,I^t_{bz}}或i={1,2,...,I^t_{ez}}\)

\[\Omega^t_{bz}=\{P^t_{bzi}\}_{i\in{I^t_{bz}}} \]

\[\Omega^t_{ez}=\{P^t_{ezi}\}_{i\in{I^t_{ez}}} \]

  • 那么有:\(P^t_{bz}=\sum_{i\in{I^t_{bz}}}P^t_{bzi}Y^t_{bzi}\)\(P^t_{ez}=\sum_{i\in{I^t_{ez}}}P^t_{ezi}Y^t_{ezi}\)

  • 此时,目标函数变为:

\[Max\quad{\sum_{t\in{T}}}\sum_{z\in{Z}}[\sum_{i\in{I^t_{bz}}}P^t_{bzi}Y^t_{bzi}\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})+\sum_{i\in{I^t_{ez}}}P^t_{ezi}Y^t_{ezi}\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})] \]

  • 目标函数中仍存在非线性项\(Y^t_{bzi}\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})\)\(Y^t_{ezi}\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})\)

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

    \[V^t_{bzi}=Y^t_{bzi}\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz}) \]

    \[V^t_{ezi}=Y^t_{ezi}\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz}) \]

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

\[ Max\quad{\sum_{t\in{T}}}\sum_{z\in{Z}}[(\sum_{i\in{I^t_{bz}}}P^t_{bzi}V^t_{bzi})+(\sum_{i\in{I^t_{ez}}}P^t_{ezi}V^t_{ezi})] \]

\(\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})\)的上限为\(a\)\(\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})\)的上限为\(b\),要彻底转换目标函数变为线性,需要增加新的约束如下,包含了式(A.15)-式(A.18)式(A.33)-式(A.34)

\[V^t_{bzi}\leq{a}Y^t_{bzi} \]

\[V^t_{ezi}\leq{b}Y^t_{ezi} \]

\[V^t_{bzi}\leq{\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})} \]

\[V^t_{ezi}\leq{\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})} \]

\[V^t_{bzi}\geq[{\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})}]-a(1-Y^t_{bzi}) \]

\[V^t_{ezi}\geq[{\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})}]-b(1-Y^t_{ezi}) \]

\[V^t_{bzi},V^t_{ezi}\geq{0} \]

\[\sum_{i\in{I^t_{bzi}}}V^t_{bzi}={\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})} \]

\[\sum_{i\in{I^t_{ezi}}}V^t_{ezi}=\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz}) \]

二、约束条件

  • 非线性项为\(D^t_{bz}(P^t_{z})\)\(D^t_{ez}(P^t_{z})\)

  • 经过上面的转换,有:

    • \(e^{\beta_{0z}+\beta_{1z}P^t_{bz}}=e^{\beta_{0z}+\beta_{1z}\sum_{i\in{I^t_{bz}}}(P^t_{bzi}Y^t_{bzi})}\)其中,\(Y^t_{bzi}\)是一个0-1变量,所以又可以写成:\(e^{\beta_{0z}+\beta_{1z}P^t_{bz}}=\sum_{i\in{I^t_{bz}}}Y^t_{bzi}e^{\beta_{0z}+\beta_{1z}P^t_{bzi}}\).

    • 同理,\(e^{\beta_{0z}+\beta_{1z}P^t_{ez}}=\sum_{i\in{I^t_{ez}}}Y^t_{ezi}e^{\beta_{0z}+\beta_{1z}P^t_{ezi}}\)

  • \[r^t_{bzi}=e^{\beta_{0z}+\beta_{1z}P^t_{bzi}} \]

    \[r^t_{ezi}=e^{\beta_{0z}+\beta_{1z}P^t_{ezi}} \]

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

    \[D^t_{bz}(P^t_z)=n^t_z×\frac{\sum_{i\in{I^t_{bz}}}Y^t_{bzi}r^t_{bzi}}{\sum_{i\in{I^t_{bz}}}Y^t_{bzi}r^t_{bzi}+\sum_{i\in{I^t_{ez}}}Y^t_{ezi}r^t_{ezi}+1} \]

    \[D^t_{ez}(P^t_z)=n^t_z×\frac{\sum_{i\in{I^t_{ez}}}Y^t_{ezi}r^t_{ezi}}{\sum_{i\in{I^t_{bz}}}Y^t_{bzi}r^t_{bzi}+\sum_{i\in{I^t_{ez}}}Y^t_{ezi}r^t_{ezi}+1} \]

  • 为了将\(D^t_{bz}(P^t_{z})\)\(D^t_{ez}(P^t_{z})\)化为线性,令:

    \[R^t_z=\frac{1}{\sum_{i\in{I^t_{bz}}}Y^t_{bzi}r^t_{bzi}+\sum_{i\in{I^t_{ez}}}Y^t_{ezi}r^t_{ezi}+1} \]

    式(A.3)。那么\(D^t_{bz}(P^t_{z})=n^t_zR^t_z\sum_{i\in{I^t_{bz}}}Y^t_{bzi}r^t_{bzi}\)\(D^t_{ez}(P^t_{z})=n^t_zR^t_z\sum_{i\in{I^t_{ez}}}Y^t_{ezi}r^t_{ezi}\),需要明确的是:\(\sum_{i\in{I^t_{bz}}}Y^t_{bzi}r^t_{bzi}+\sum_{i\in{I^t_{ez}}}Y^t_{ezi}r^t_{ezi}\geq{0}\),故\(R^t_z\leq{1}\)

  • 此时仍存在非线性项\(\sum_{i\in{I^t_{bz}}}R^t_zY^t_{bzi}r^t_{bzi}\)\(\sum_{i\in{I^t_{ez}}}R^t_zY^t_{ezi}r^t_{ezi}\)

    令:

    \[U^t_{bzi}=R^t_zY^t_{bzi} \]

    \[U^t_{ezi}=R^t_zY^t_{ezi} \]

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

    \[U^t_{bzi},U^t_{ezi}\geq{0} \]

    \[R^t_z\geq{0} \]

    \[U^t_{bzi}\leq{Y^t_{bzi}} \]

    \[U^t_{ezi}\leq{Y^t_{ezi}} \]

    \[U^t_{bzi}\leq{R^t_z} \]

    \[U^t_{ezi}\leq{R^t_z} \]

    \[U^t_{bzi}\leq{R^t_z}-(1-Y^t_{bzi}) \]

    \[U^t_{ezi}\leq{R^t_z}-(1-Y^t_{ezi}) \]

    \[\sum_{i\in{I^t_{bzi}}}U^t_{bzi}=R^t_z \]

    \[\sum_{i\in{I^t_{ezi}}}U^t_{ezi}=R^t_z \]

\[R^t_z+\sum_{i\in{I^t_{bz}}}U^t_{bzi}r^t_{bzi}+\sum_{i\in{I^t_{ez}}}U^t_{ezi}r^t_{ezi}=1 \]

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

\[\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})\leq{n^t_z\sum_{i\in{I^t_{bz}}}U^t_{bzi}r^t_{bzi}} \]

\[\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})\leq{n^t_z\sum_{i\in{I^t_{ez}}}U^t_{ezi}r^t_{ezi}} \]

  • 那么\(a=n^t_z\sum_{i\in{I^t_{bz}}}U^t_{bzi}r^t_{bzi}\)\(b=n^t_z\sum_{i\in{I^t_{ez}}}U^t_{ezi}r^t_{ezi}\)。约束\(V^t_{bzi}\leq{a}Y^t_{bzi}\)\(V^t_{ezi}\leq{b}Y^t_{ezi}\)分别变为:

    \[V^t_{bzi}\leq{(n^t_z\sum_{i\in{I^t_{bz}}}U^t_{bzi}r^t_{bzi}})Y^t_{bzi}=n^t_zU^t_{bzi}\sum_{i\in{I^t_{bz}}}r^t_{bzi}Y^t_{bzi} \]

    \[V^t_{ezi}\leq{(n^t_z\sum_{i\in{I^t_{ez}}}U^t_{ezi}r^t_{ezi})}Y^t_{ezi}=n^t_zU^t_{ezi}\sum_{i\in{I^t_{ez}}}r^t_{ezi}Y^t_{ezi} \]

    • 已知\(V^t_{bzi}\geq{0}\),当\(Y^t_{bzi}=0\)时,上面的第一条约束条件变为\(V^t_{bzi}\leq{0}\),此时\(V^t_{bzi}\)应为0;当\(Y^t_{ezi}=1\)时,上面的约束条件变为\(V^t_{bzi}\leq{n^t_zU^t_{bzi}r^t_{bzi}}\),此时\(V^t_{bzi}\)的取值应当为\(0\leq{V^t_{bzi}}\leq{n^t_zU^t_{bzi}r^t_{bzi}}\)

      综上和同理,在约束\(V^t_{bzi},V^t_{ezi}\geq{0}\)下,式(A.19)式(A.20) 被推导出:

    \[V^t_{bzi}\leq{a}Y^t_{bzi}\quad{}→\quad{}V^t_{bzi}\leq{n^t_zU^t_{bzi}r^t_{bzi}} \]

    \[V^t_{ezi}\leq{b}Y^t_{ezi}\quad{}→\quad{}V^t_{bzi}\leq{n^t_zU^t_{bzi}r^t_{bzi}} \]

    • 对于约束条件\(V^t_{bzi}\geq[{\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})}]-a(1-Y^t_{bzi})\)\(V^t_{ezi}\geq[{\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})}]-b(1-Y^t_{ezi})\),它们分别变为:

      \[V^t_{bzi}\geq[{\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})}]-(n^t_z\sum_{i\in{I^t_{bz}}}U^t_{bzi}r^t_{bzi})(1-Y^t_{bzi}) \]

      \[V^t_{ezi}\geq[{\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})}]-(n^t_z\sum_{i\in{I^t_{ez}}}U^t_{ezi}r^t_{ezi})(1-Y^t_{ezi}) \]

      \(Y^t_{bzi}=0\)时,上面第一条约束条件变为\(\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})\leq{n^t_z\sum_{i\in{I^t_{bz}}}U^t_{bzi}r^t_{bzi}}\)这与文中式(6)相同;当\(Y^t_{bzi}=1\)时,它则变为\(V^t_{bzi}=\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})\),而这又被约束条件\(\sum_{i\in{I^t_{bzi}}}V^t_{bzi}={\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})}\)包含。

      综上及同理,约束条件\(V^t_{bzi}\geq[{\sum_{w\in{Z}}(S^t_{bwz}+S^t_{ewz})}]-a(1-Y^t_{bzi})\)\(V^t_{ezi}\geq[{\sum_{w\in{Z}}(O^t_{bwz}+O^t_{ewz})}]-b(1-Y^t_{ezi})\)均属于重复约束,可被消除

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

  • 对于约束条件\(U^t_{bzi}\leq{R^t_z}-(1-Y^t_{bzi})\)有:

    • \(Y^t_{bzi}=0\)时,\(R^t_z\geq{0}\),该约束已存在;\(Y^t_z=1\)时,\(U^t_{bzi}=R^t_{z}\),该约束已被\(\sum_{i\in{I^t_{bzi}}}U^t_{bzi}=R^t_z\)所包含。

    • 综上及同理,约束条件\(U^t_{bzi}\leq{R^t_z}-(1-Y^t_{bzi})\)\(U^t_{ezi}\leq{R^t_z}-(1-Y^t_{ezi})\)属于重复约束,均可被删除

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

三、简例

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

\[z=x_1x_2 \]

其中决策变量\(x_1\in{\{0,1\}}\),\(0\leq{x_2}\leq{a}\)

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

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

    \[y\leq{ax_1} \]

    \[y\leq{x_2} \]

    \[y\geq{x_2-a(1-x_1)} \]

    \[y\geq{0} \]

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

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

\[min\quad\frac{x+2y+3}{4x+5y} \]

\(s.t.\)

\[6x+7y\leq{8} \]

\[9x+10y\geq{0} \]

\[x,y\geq{0} \]

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

    \[min\quad{u+2v+3z} \]

    \(s.t.\)

    \[6u+7v\leq{8z} \]

    \[9u+10v\geq{0} \]

    \[u,v,z\geq{0} \]

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

与基于TRE文章的非线性模型化线性方法相似的内容:

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

之前写过一篇有关TRE优化模型详解的博文: https://www.cnblogs.com/zoubilin/p/17270435.html 这篇文章里面的附录给出了非线性模型化线性的方式,具体内容如下: 首先是篇文章的变量和原模型(具体见我上面那篇笔记): 其次这篇文章附录给出的非线性化线性的方法

基于 Three.js 的 3D 模型加载优化

作为一个3D的项目,从用户打开页面到最终模型的渲染加载的时间也会比普通的H5项目要更长一些,从而造成大量的用户流失。为了提升首屏加载的转化率,需要尽可能的降低loading的时间。这里就分享一些我们在模型加载优化方面的心得。

基于MindSpore实现BERT对话情绪识别

本文分享自华为云社区《【昇思25天学习打卡营打卡指南-第二十四天】基于 MindSpore 实现 BERT 对话情绪识别》,作者:JeffDing。 模型简介 BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Trans

基于 Vagrant 手动部署多个 Redis Server

环境准备 宿主机环境:Windows 10 虚拟机环境:Vagrant + VirtualBox Vagrantfile 配置 首先,我们需要编写一个 Vagrantfile 来定义我们的虚拟机配置。假设已经在 D:\Vagrant\redis 目录下创建了一个 Vagrantfile,其内容如下:

基于EF Core存储的Serilog持久化服务

前言 Serilog是 .NET 上的一个原生结构化高性能日志库,这个库能实现一些比内置库更高度的定制。日志持久化是其中一个非常重要的功能,生产环境通常很难挂接调试器或者某些bug的触发条件很奇怪。为了在脱离调试环境的情况下尽可能保留更多线索来辅助解决生产问题,持久化的日志就显得很重要了。目前Ser

基于EF Core存储的国际化服务

前言 .NET 官方有一个用来管理国际化资源的扩展包Microsoft.Extensions.Localization,ASP.NET Core也用这个来实现国际化功能。但是这个包的翻译数据是使用resx资源文件来管理的,这就意味着无法动态管理。虽然官方有在文档中提供了一些第三方管理方案,但是都不太

基于FileZilla上传、下载服务器数据的方法

本文介绍FileZilla软件的下载、配置与使用方法。 在之前的博客中,我们提到了下载高分遥感影像数据需要用到FTP(文件传输协议,File Transfer Protocol)软件FileZilla;这一软件用以在自己的电脑与服务器之间相互传输数据,在进行下载科学数据、网站开发等等操作时,经常需要

Vite5+Electron聊天室|electron31跨平台仿微信EXE客户端|vue3聊天程序

基于electron31+vite5+pinia2跨端仿微信Exe聊天应用ViteElectronChat。 electron31-vite5-chat原创研发vite5+electron31+pinia2+element-plus跨平台实战仿微信客户端聊天应用。实现了聊天、联系人、收藏、朋友圈/短

基于 .net core 8.0 的 swagger 文档优化分享-根据命名空间分组显示

之前也分享过 Swashbuckle.AspNetCore 的使用,不过版本比较老了,本次演示用的示例版本为 .net core 8.0,从安装使用开始,到根据命名空间分组显示,十分的有用

跟我一起学习和开发动态表单系统-前端用vue、elementui实现方法(3)

基于 Vue、Element UI 和 Spring Boot + MyBatis 的动态表单系统前端实现解析 在现代企业信息系统中,动态表单是一种非常常见的功能。它可以根据业务需求灵活地调整表单结构,以满足不同的数据收集和展示需求。在本文中,我们将探讨一种基于 Vue、Element UI 和 S