基于TRE文章的非线性模型化线性方法
之前写过一篇有关TRE优化模型详解的博文:
这篇文章里面的附录给出了非线性模型化线性的方式,具体内容如下:
- 首先是篇文章的变量和原模型(具体见我上面那篇笔记):


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


我觉得很经典,所以这几天我废了九牛二虎之力推导了这个附录的公式,并复现了它的化线性的过程•́‸ก
一、目标函数
- 目标函数中的非线性项为:
\]
- 引入决策变量:
\]
\]
此时应加入下面约束条件,即式(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}}\):
\]
\]
那么有:\(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}\)
此时,目标函数变为:
\]
目标函数中仍存在非线性项\(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) 的由来:
\]
设\(\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):
\]
\]
\]
\]
\]
\]
\]
\]
\]
二、约束条件
非线性项为\(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
\]
\]
- 此时约束条件(6)、(7)变为:
\]
\]
那么\(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变量的非线性规划问题
\]
其中决策变量\(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) 带分母变量的非线性规划问题
\]
\(s.t.\)
\]
\]
\]
令\(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文章的非线性模型化线性方法的更多相关文章
- 机器学习 —— 基础整理(四)特征提取之线性方法:主成分分析PCA、独立成分分析ICA、线性判别分析LDA
本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...
- ASP.NET Core 实战:基于 Dapper 扩展你的数据访问方法
一.前言 在非静态页面的项目开发中,必定会涉及到对于数据库的访问,最开始呢,我们使用 Ado.Net,通过编写 SQL 帮助类帮我们实现对于数据库的快速访问,后来,ORM(Object Relatio ...
- [信安Presentation]一种基于GPU并行计算的MD5密码解密方法
-------------------paper--------------------- 一种基于GPU并行计算的MD5密码解密方法 0.abstract1.md5算法概述2.md5安全性分析3.基 ...
- 基于TP框架的ThinkCMF,控制器display方法源码分析
昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...
- 基于Delphi的三层数据库系统的实现方法
基于Delphi的三层数据库系统的实现方法 1 引言 当前的数据库应用系统中,按其结构划分为两类,一类是两层结构的数据库应系统,另一类是多层结构的数据库应用系统. 两层结构的数据库应用系统包括客 ...
- 线性方法用于Binary clssification
到现在,我们已经学过三种线性方法:linear classification.Linear Regression.logistic Regression.这三种方法的核心都是,不同点在于:最小化的er ...
- 基于CNN的人群密度图估计方法简述
人群计数的方法分为传统的视频和图像人群计数算法以及基于深度学习的人群计数算法,深度学习方法由于能够方便高效地提取高层特征而获得优越的性能是传统方法无法比拟的.本文简单了秒速了近几年,基于单张图像利用C ...
- 060——VUE中vue-router之路由嵌套在文章系统中的使用方法:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 059——VUE中vue-router之路由嵌套在文章系统中的使用方法:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- asp.net基于windows服务实现定时发送邮件的方法
本文实例讲述了asp.net基于windows服务实现定时发送邮件的方法.分享给大家供大家参考,具体如下: //定义组件 private System.Timers.Timer time; publi ...
随机推荐
- 19.详解AQS家族的成员:CountDownLatch
关注王有志,一个分享硬核Java技术的互金摸鱼侠 欢迎你加入Java人的提桶跑路群:共同富裕的Java人 今天我们来聊一聊AQS家族中的另一个重要成员CountDownLatch.关于CountDow ...
- WakaTime Readme Stats-开源项目翻译
寻找不同语言和地区的翻译 #23 Readme中添加了功能标志的开发指标 眼前一亮的Readme统计数据 你是早起的还是夜间的? 你一天中什么时候工作效率最高? 你用什么语言编写代码? 让我们在你的个 ...
- 加速体细胞突变检测分析流程-系列2(ctDNA等高深度样本)
Sentieon●体细胞变异检测系列-2 Sentieon 致力于解决生物信息数据分析中的速度与准确度瓶颈,通过算法的深度优化和企业级的软件工程,大幅度提升NGS数据处理的效率.准确度和可靠性. 针对 ...
- Batch Normalization及其反向传播及bn层的作用
笔记: Batch Normalization及其反向传播 重点: 在神经网络中,网络是分层的,可以把每一层视为一个单独的分类器,将一个网络看成分类器的串联.这就意味着,在训练过程中,随着某一层分类器 ...
- FPGA学习之乒乓操作
乒乓操作学习记录如下: 乒乓操作" 是一个常常应用于数据流控制的设计思想, 典型的乒乓操作方法如下图 所示: 乒乓操作的处理流程为:输入数据流通过" 输入数据选择单元"将 ...
- 【go语言】2.4.3 Go Modules
Go Modules 是 Go 语言的官方依赖管理工具,自 Go 1.11 版本开始引入.它解决了 Go 语言在依赖管理上的一些问题,如版本控制.依赖隔离等. 初始化一个新的模块 你可以使用 go m ...
- 面试再也不怕问ThreadLocal了
要解决多线程并发问题,常见的手段无非就几种.加锁,如使用synchronized,ReentrantLock,加锁可以限制资源只能被一个线程访问:CAS机制,如AtomicInterger,Atomi ...
- 如何正确使用 ThreadLocal,你真的用对了吗?
引言: 当多线程访问共享且可变的数据时,涉及到线程间同步的问题,并不是所有时候,都要用到共享数据,所以就需要ThreadLocal出场了. ThreadLocal又称线程本地变量,使用其能够将数据封闭 ...
- 关于 LLM 和图数据库、知识图谱的那些事
本文整理自 NebulaGraph 布道师 wey 在「夜谈 LLM」主题分享上的演讲,主要包括以下内容: 背景 LLM RAG Graph 知识抽取 Text2Cypher Graph RAG 未来 ...
- 【故障公告】多年的故障老朋友又来了:数据库服务器 CPU 100%
数据库服务器 CPU 100% 问题几乎每年都要来几次,从来都不事先打一声招呼,今年的第2次在我们正忙着会员救园的时候来了. 今天 13:35 首先收到我们自己的异常告警通知: Execution T ...