UA SIE545 优化理论基础9 优先与分治策略1 文件的最优存储顺序
UA SIE545 优化理论基础9 优先与分治策略1 文件的最优存储顺序
- 单磁带存储
- 相同查询频率
- 相同文件长度
- 查询频率与文件长度均不同
单磁带存储
相同查询频率
这一章介绍优先策略与分治策略,我们从一个简单的例子开始介绍优先策略。考虑非常简单的磁带存储问题:如果我们把nnn个文件存储在磁带上,那么这nnn个文件只能按存储顺序进行读写,假设Li,i=1,⋯,nL_i,i=1,\cdots,nLi,i=1,⋯,n表示第iii个文件长度,假设查询每个文件的概率相同,求最优的文件存储顺序。
假设σ\sigmaσ表示一个nnn阶的排列,即σ∈Pn\sigma \in P_nσ∈Pn。我们可以用排列来表示文件存储的顺序,即σ(1),⋯,σ(n)\sigma(1),\cdots,\sigma(n)σ(1),⋯,σ(n),其中σ(i)∈{1,⋯,n}\sigma(i) \in \{1,\cdots,n\}σ(i)∈{1,⋯,n}表示第iii个文件被存放在第σ(i)\sigma(i)σ(i)个位置,记j=σ(i)j=\sigma(i)j=σ(i),则第iii个文件前面还有j−1j-1j−1个文件,读完第iii个文件需要的总长度为
∑k=1jLσ−1(k)\sum_{k=1}^{j}L_{\sigma^{-1}(k)}k=1∑jLσ−1(k)
基于这个发现,我们可以计算给定一个排列,查询一次文件平均需要读的长度,并且以此定义寻找最优存储顺序的最优化问题:
minσ∈Pn1n∑j=1n∑k=1jLσ−1(k)\min_{\sigma \in P_n} \frac{1}{n}\sum_{j=1}^{n}\sum_{k=1}^{j}L_{\sigma^{-1}(k)}σ∈Pnminn1j=1∑nk=1∑jLσ−1(k)
因为查询每个文件的概率相同,直觉上我们应该把小文件放前面,大文件放在后面,也就是σ\sigmaσ要满足
Lσ−1(1)≤⋯≤Lσ−1(n)L_{\sigma^{-1}(1)} \le \cdots \le L_{\sigma^{-1}(n)}Lσ−1(1)≤⋯≤Lσ−1(n)
证明
注意到σ−1\sigma^{-1}σ−1也是一个nnn阶排列,记τ=σ−1,τ∈Pn\tau = \sigma^{-1},\tau \in P_nτ=σ−1,τ∈Pn。定义
S(τ)=∑j=1n∑k=1jLτ(k)=∑k=1n(n−k+1)Lτ(k)S(\tau)=\sum_{j=1}^{n}\sum_{k=1}^{j}L_{\tau(k)} = \sum_{k=1}^n(n-k+1)L_{\tau(k)}S(τ)=j=1∑nk=1∑jLτ(k)=k=1∑n(n−k+1)Lτ(k)
假设τ\tauτ使得字长满足
Lτ(1)≤⋯≤Lτ(n)L_{\tau(1)} \le \cdots \le L_{\tau(n)}Lτ(1)≤⋯≤Lτ(n)
如果交换τi\tau_{i}τi与τj\tau_{j}τj (j>ij>ij>i),即定义τ′\tau'τ′满足
τ′=(1⋯i⋯j⋯nτ(1)⋯τ(j)⋯τ(i)⋯τ(n))\tau' = \left( \begin{matrix} 1 & \cdots & i & \cdots & j & \cdots & n \\ \tau(1) & \cdots & \tau(j) & \cdots & \tau(i) & \cdots & \tau(n)\end{matrix} \right)τ′=(1τ(1)⋯⋯iτ(j)⋯⋯jτ(i)⋯⋯nτ(n))
那么这会导致SSS增加
S(τ′)−S(τ)=[(n−i+1)Lτ(j)+(n−j+1)Lτ(i)]−[(n−i+1)Lτ(i)+(n−j+1)Lτ(j)]=(j−i)(Lτ(j)−Lτ(i))>0S(\tau')-S(\tau) = [(n-i+1)L_{\tau(j)}+(n-j+1)L_{\tau(i)}]\\ -[(n-i+1)L_{\tau(i)}+(n-j+1)L_{\tau(j)}] = (j-i)(L_{\tau(j)}-L_{\tau(i)})>0S(τ′)−S(τ)=[(n−i+1)Lτ(j)+(n−j+1)Lτ(i)]−[(n−i+1)Lτ(i)+(n−j+1)Lτ(j)]=(j−i)(Lτ(j)−Lτ(i))>0
因此
τ=arg minσ∈Pn1n∑j=1n∑k=1jLσ−1(k)\tau = \argmin_{\sigma \in P_n} \frac{1}{n}\sum_{j=1}^{n}\sum_{k=1}^{j}L_{\sigma^{-1}(k)}τ=σ∈Pnargminn1j=1∑nk=1∑jLσ−1(k)
证毕
相同文件长度
假设nnn个文件长度相同,但查询频率分别为f1,⋯,fnf_1,\cdots,f_nf1,⋯,fn,其中
f1+⋯+fn=1f_1+\cdots+f_n = 1f1+⋯+fn=1
则最优存储顺序为查询频率高的文件放在前面,查询频率低的文件放后面。
证明
同样用nnn阶排列表示存放顺序,并且不失一般性,用1表示文件长度,则读完第iii个文件需要的总长度为
∑k=1j1=j\sum_{k=1}^{j}1 = jk=1∑j1=j
对应的频率是fσ−1(j)f_{\sigma^{-1}(j)}fσ−1(j),因此这时的最优化问题变成了
minσ∈Pn∑j=1njfσ−1(j)\min_{\sigma \in P_n} \sum_{j=1}^{n} jf_{\sigma^{-1}(j)}σ∈Pnminj=1∑njfσ−1(j)
记τ=σ−1,τ∈Pn\tau = \sigma^{-1},\tau \in P_nτ=σ−1,τ∈Pn。定义
S(τ)=∑j=1njfτ(j)S(\tau)=\sum_{j=1}^{n} jf_{\tau(j)}S(τ)=j=1∑njfτ(j)
假设τ\tauτ使得查询频率满足
fτ(1)≥⋯≥fτ(n)f_{\tau(1)} \ge \cdots \ge f_{\tau(n)}fτ(1)≥⋯≥fτ(n)
沿用上一个证明对τ′\tau'τ′的证明,计算
S(τ′)−S(τ)=[ifτ(j)+jfτ(i)]−[ifτ(i)+jfτ(j)]=(j−i)(fτ(i)−fτ(j))>0S(\tau')-S(\tau) = [if_{\tau(j)}+jf_{\tau(i)}] -[if_{\tau(i)}+jf_{\tau(j)}] \\= (j-i)(f_{\tau(i)}-f_{\tau(j)})>0S(τ′)−S(τ)=[ifτ(j)+jfτ(i)]−[ifτ(i)+jfτ(j)]=(j−i)(fτ(i)−fτ(j))>0
证毕
查询频率与文件长度均不同
假设nnn个文件长度不同,并且查询频率也不同,最优存储顺序为平均每字查询频率高的文件放在前面,平均每字查询频率低的文件放后面。
证明
证明方法与前文完全一样。读完第iii个文件需要的总长度为
∑k=1jLσ−1(k)\sum_{k=1}^{j}L_{\sigma^{-1}(k)}k=1∑jLσ−1(k)
对应的频率是fσ−1(j)f_{\sigma^{-1}(j)}fσ−1(j),因此最优化问题可以写成
minσ∈Pn∑j=1nfσ−1(j)∑k=1jLσ−1(k)\min_{\sigma \in P_n} \sum_{j=1}^{n}f_{\sigma^{-1}(j)}\sum_{k=1}^{j}L_{\sigma^{-1}(k)}σ∈Pnminj=1∑nfσ−1(j)k=1∑jLσ−1(k)
记τ=σ−1,τ∈Pn\tau = \sigma^{-1},\tau \in P_nτ=σ−1,τ∈Pn使之满足
fτ(1)/Lτ(1)≥⋯≥fτ(n)/Lτ(n)f_{\tau(1)}/L_{\tau(1)} \ge \cdots \ge f_{\tau(n)}/L_{\tau(n)}fτ(1)/Lτ(1)≥⋯≥fτ(n)/Lτ(n)
用前两个证明的思路,可以说明τ\tauτ是最优解。
证毕
根据上面的论述,在计算上,我们把最优存储问题变成了排序问题,这就是优先策略的体现,因为我们是按照平均每字查询频率优先的原则对文件进行排序的。对于这一类找最优pecking order的问题,优化的目标是最大化gain或者最小化cost,在确定pecking order的时候,我们应该按每一次pecking的marginal gain最大、或者marginal cost最小的原则进行,这就是优先策略的思想。
UA SIE545 优化理论基础9 优先与分治策略1 文件的最优存储顺序相关推荐
- UA SIE545 优化理论基础5 搜索与整数规划1 DFS算法
UA SIE545 优化理论基础5 搜索与整数规划1 DFS算法 DFS方法基础 邮票问题 这部分的主要目标是建立求解整数规划的方法,早期解决整数规划需要穷举,后来人们把搜索技术应用到整数规划中,极大 ...
- UA SIE545 优化理论基础1 例题1 常见的凸集
UA SIE545 优化理论基础1 例题1 常见的凸集 一些例题 在优化理论中,我们主要讨论下面几种凸集: 超平面:{x:pTx=β}\{x:p^Tx=\beta\}{x:pTx=β} 半空间:{x: ...
- UA SIE545 优化理论基础 用Farkas定理证明Farkas类的结论
UA SIE545 优化理论基础 用Farkas定理证明Farkas类的结论 Farkas定理 AAA是一个m×nm\times nm×n的矩阵,下面两个系统有且仅有一个有解: I:Ax≤0,cTx& ...
- UA SIE545 优化理论基础 函数凸性的一些有趣的判断方法
UA SIE545 优化理论基础 函数凸性的一些有趣的判断方法 Convex function f:S→Rf:S \to \mathbb{R}f:S→R where SSS is a nonempty ...
- UA SIE545 优化理论基础 例题 对偶函数的凸性与次梯度计算
UA SIE545 优化理论基础 例题 对偶函数的凸性与次梯度计算 例 考虑对偶函数 θ(u1,u2)=minx12+x22≤4x1(2−u1)+x2(3−u2)\theta(u_1,u_2) = ...
- UA SIE545 优化理论基础2 凸函数 概念 理论 总结
UA SIE545 优化理论基础2 凸函数 概念 理论 总结 凸函数的概念与简单性质 Convex function f:S→Rf:S \to \mathbb{R}f:S→R where SSS is ...
- UA SIE545 优化理论基础3 Fritz-John与Kuhn-Tucker理论总结 带等式约束与不等式约束的极值问题
UA SIE545 优化理论基础3 Fritz-John与Kuhn-Tucker理论总结 带等式约束与不等式约束的极值问题 对于函数f:X→Yf:X \to Yf:X→Y,我们希望XXX是一个凸的度量 ...
- UA SIE545 优化理论基础4 对偶理论简介6 求解对偶问题的梯度算法
UA SIE545 优化理论基础4 对偶理论简介6 求解对偶问题的梯度算法 这一讲我们介绍求解对偶问题的另一个算法--梯度算法(gradient method). 假设原问题为 minx∈Xf(x) ...
- UA SIE545 优化理论基础4 对偶理论简介4 求解对偶问题的割平面算法
UA SIE545 优化理论基础4 对偶理论简介4 求解对偶问题的割平面算法 这一讲我们介绍一个求解对偶问题的算法--割平面算法(cutting plane algorithm). 假设原问题为 mi ...
最新文章
- c语言实验报告管理系统,C语言实验报告-学生信息资管理系统.doc
- 1_itemtele
- Intel Realsense D435 如何设置曝光参数(exposure)
- 机器人学习--ROS/AMCL实现初始化粒子撒满整张地图和分步收敛
- CentosMySQL5.6安装方法
- NOIP2017提高组比赛总结
- JavaScript- 正则表达式匹配汉字
- python代码异常对照表格_Python表格py错误(pandas错误?)
- 电脑dns_win10系统dns错误如何解决「系统天地」
- 肯耐珂萨助力世界500强零售企业在线春招:单次面试3000人
- Win 10 或可以运行安卓APP
- 单片机的最新发展动态_【计算机论文】单片机在节能、语言交流和智能监控上的应用...
- 俯瞰大雾弥漫下的鄱阳湖二桥
- rose-scanning reading
- 方法Method(Java)
- hosts文件修改,文件类型修改
- java开发随记之 Invalidate Caches / Restart
- appium : 查看Android手机自带浏览器内核版本(webview版本)
- 《近匠》 | 探索一站式智能硬件开发的最佳解决方案
- 生鲜配送系统源码功能介绍