考虑爬坡约束的油井间抽批调度问题
2019-04-12郎劲唐立新
郎劲 唐立新
石油是不可再生资源,是关系到国家安全的重要战略资源.随着近年来对石油的连续开采,部分油井已进入开采的中后期,油层出现明显的供液不足,许多低产油井仍在继续采油,表现出低渗、低压、低产、低效的特征.而石油的开采所用的油井设备是非常耗电的,油井电费支出占原油生产成本的20%∼40%.因此,为了避免能源浪费和设备的损耗而采用间抽的方法进行采油[1].油井间抽就是当油井出现供液量不足或者空抽时,关闭油井,等待一段时间进行蓄油.当动液面达到抽油压力的最低要求时,再启动油井继续采油.对油井进行间抽调度,能够提高油田的采油率,增加电机的运行寿命和工作效率,降低能耗和生产成本,对实现油田的精细化管理具有重要的意义.
生产实际中手工作业难以实现精细化的生产.因此如何科学制定出合理的间抽调度方案,以达到降低能耗、提高油井采油率,是目前开采中后期迫切需要解决的问题,该问题已经引起了国内外专家的广泛关注.据作者目前所知,关于油井间抽调度问题的研究主要有:Aronofsky等[2]研究了石油开采的经济调度问题,针对多个油藏和多个油井系统,考虑井底压力对开采影响因素,建立了线性规划模型.Carvalho等[3]考虑油藏地质特性,研究了多时段的油井生产调度问题,以最小化生产运行成本为目标,决策油井多时段的启停状态和采油量.Carvalho等[4]针对海上油田的开采提出了混合整数线性规划模型,决策油井平台的布局及油井的采油量,保证达到采油量的需求.Kosmidis等[5]考虑油藏的非线性特性、油藏的多相流和地面设施的约束,建立了混合整数规划模型,以确定油井的开关机状态、油井的采油量和气举井的位置.Bohannon[6]针对油田设计和生产计划问题建立了混合整数规划模型.Iyer等[7]针对海上油田的生产计划进行研究,考虑了平台和油井的生产能力、每个时段油井的采油量和开采油藏的选择等生产工艺约束,以一般的最优性优化决策指标为目标,建立了多阶段混合线性规划模型,并设计了分支定界算法进行求解.Ray等[8]以油田开采中气举采油的方式为背景,确定注入油井的气体的量,保证油藏的最大化的采油量.考虑问题的复杂性和难度,设计了进化算法进行求解.Gunnerud等[9]针对油田实时生产优化问题,利用分段线性的方法把问题进行线性化,建立了混合整数线性规划模型,并利用拉格朗日松弛算法和Dantzig-Wolfe相结合的算法进行求解.de Souza等[10]针对连续开采气举采油的计划调度问题进行研究,以压缩机年均成本、燃料等生产运行成本为目标,建立了非线性数学规划模型.Gunnerud等[11]针对大规模油田生产网络优化系统进行研究,提出了基于列生成的分支定价算法获得问题的最优解.Tavallali[12]等针对油田油井的布局及油井生产计划问题进行研究,并利用更加缜密的流体动力学的方法对地下情况进行分析,可以不需要预先固定油井的位置进行优化.Knudsen等[13]针对页岩气中的多个油井系统为背景,确定油井的关机次数.针对问题的特征,设计了拉格朗日松弛算法进行求解.刘安枕[14]提出了基于优化算法的油井间抽调度,目标是在满足采油需求的同时,油井停机时间最长,开机时间最短.李军亮等[15]通过观测关井阶段和开井阶段的液面高度变化,然后采用GM(1,1)模型建模.根据灰色系统理论中的“新信息优先”原理,实现了模型的实时调整及间抽周期的实时预测.
本文的井网机组间抽调度问题与已有的研究问题相比具有如下特点:1)问题本身在考虑传统油藏储量的同时,以批的方式对油井进行调度.2)考虑了油井运行稳定性和降低维修率要求,增加了运行过程中的爬坡约束和最小开关机时间约束,使油井前后时段的抽油量圆滑过渡,无大波动的冲击,有利于增加油井的使用寿命.3)在求解方法方面,本文构造了拉格朗日松弛算法进行求解.针对分解后的带有爬坡约束的单机组子问题,开发了动态规划方法进行求解,并进一步提出了用特征点代表同一阶段具有相同性质节点群的状态空间约简策略,使动态规划搜索节点的复杂度从O(n4)降到O(n2),显著提高算法的搜索效率.
1 油井采油工艺和管理背景
一个油田是由很多油藏组成的,一个油藏里面又包含了很多油井,油井之间有的是在一个油层进行开采,有的是连接了相同的集输管道不同油层进行开采.油井的间抽调度跟油井井底和油藏的压差值密切相关.当油井关机后,井底的动液面会不断上升,即井底的流动压力不断恢复,当恢复到最低采油需求的值时,可以开机进行采油.当油井开机后,井底的压力随着石油的产出,井底的动液面不断降低,即井底的流动压力不断减少,当油井井底压力比采油要求压力值低时,需要对油井进行停抽.
油井的开关机状态虽然在设计上是可以随时切换的,但是在实际生产运行中,如果油井采油量在相邻时段上升或者下降的速率过快,或频繁对油井进行启停操作,将会增加维修成本,影响油井电机的使用寿命.因此在油井运行时考虑了爬坡约束,即油井在单位时间采油量允许上升和下降的速率.在油井间抽调度中,同时考虑了油井开关机持续时间的限制约束.即如果油井开机,则必须开机一定的小时数,才可以允许关机.同样,如果油井关机,则必须关机一定的小时数,才可以允许开机,以提高整机寿命,尤其是油泵的寿命,减少机械故障,提高可靠性.
2 问题描述及数学模型
2.1 批建模策略及参数聚合方法
针对大规模油井调度问题,本文提出了批建模策略.批建模的思想主要是根据油井间物理位置分布的相近性以及连通性,将相同集输管道的、型号相同的油井进行聚合组批.图1为某油田的一个油藏示意图,其中,每一个圆代表一个油井.根据批建模策略,具有相同颜色的油井群可以聚合成一个批.相应的油藏总体采油量的需求转化为对井批采油量的需求.
图1 油井批聚合示意图Fig.1 The process of well divided into batching
通过分析批模型参数与单机模型参数的关系,批划分后提出了参数聚合方法.设批聚合前油井w最大最小采油量为:;批聚合后油井i的最大、最小采油量为:.批聚合前油井w最大、最小允许压力值;批聚合后油井i最大、最小允许压力值.批聚合前油井w在t时刻开始、结束时油井井底压力为:;批聚合后油井i在t时刻开始、结束时油井井底压力为:表示批聚合前油井w的运行费用系数;γi表示批聚合后油井i运行费用系数.|Ωk|表示第k批的油井的个数,Ω1∪Ω2∪···∪Ωk=Ω,Ωi∩Ωj= Φ,i=1,2,···,K,j=1,2,···,K,.其参数聚合规则如下:
3)油井其他参数值聚合规则为:聚合后的参数为任取批聚合前批内油井的参数值.如:第k个批内,运行费用系数聚合规则为:γi=w,∀w∈Ωk.
2.2 问题描述
油田机组间抽批调度问题描述如下:给定一个油藏,油藏内有n个油井,把n个具有相同集输管道且型号相同的油井归结为k个批.以批建模策略和方法,满足油田采油需求和油井爬坡约束、最小开关机时间约束、采油量限制等约束,确定未来一定期间内油井各时刻的启停状态及开机运行时的采油量以达到最小化采油成本的目的.
2.3 基于批建模策略的数学模型
根据上述参数聚合方法,直接利用批聚合后的模型参数和决策变量建立油井间抽调度批模型数学规划模型.
模型参数:
N:油井总数;
Ω:油井集合,Ω ={1,2,···,N};
T:调度周期;
K:油井批的总数;
Dt:油井在t时刻采油量的总需求;
Dkt:第k批油井在t时刻产油量的总需求,
∆i:油井i在运行时相邻两个连续时间段内最大允许采油量;
URi:油井i从关机到开机时,允许最大的采油量;
DRi:油井i从开机到关机时,允许最大的采油量;
L:时间调度周期;
ui0:油井i的初始开关机状态;
Si:油井i的启动费用.
决策变量:
uit:油井i在t时刻的启停状态,1为开机状态,0为停抽状态;
xit:油井i在t时刻的采油量.
建立的批聚合后的数学规划模型如下:
约束(2)表示每个批的需求约束.要求每个批的油井采油量达到各自的需求量.约束(3)表示油井最小开关机的启停约束.当油井开机时,必须持续运行一段时间才允许关机.同样,当油井关机时,必须持续关机一段时间才允许开机.即,油井开机运行时,uit=1.当油井前一时刻开机ui,t−1=1时,如果油井持续开机时间小于油井最小开机时间,则油井当前时刻必须保持开机.即:当时,uit=1,满足最小开机时间约束的要求;如果大于等于油井最小开机时间,则当前时刻油井可开机也可以停抽.即:时,uit=1或者uit=0都可.同理,当油井停抽时,uit=0.当油井前一时刻ui,t−1=0时,如果油井持续关机时间小于油井的最小关机时间,则油井必须保持停抽状态.即:当时,uit=0,满足最小关机约束的要求.当油井的持续关机时间大于等于最小关机时间要求时,油井当前状态可以停抽也可开机.即:当时,uit=1或者uit=0都可.约束(4)表示油井的爬坡约束,包括油井运行时相邻两个时刻采油量增加或者减少的爬坡约束,油井下一时刻开机或者关机时采油量的爬坡约束.约束(5)表示油井产油量输出的上下限的限制.约束(6)为常规油井生产调度的压力约束,即油井运行和停抽时,井底压力的变化.当油井处于运行状态时,油井的压力逐渐减小.当油井处于停抽时,油井的压力逐渐增大.约束(7)为变量的取值范围.
建立的数学规划模型是具有整数变量和连续变量的混合整数规划模型,本身是一个非凸的、离散的优化问题,属于NP难问题,大规模求解时在合理的时间内很难获得最优解,因此寻找该问题的近优解成为主要研究方式.
3 问题求解
根据模型的结构特点,本文设计了拉格朗日松弛方法(Lagrangian relaxation,LR)求解该问题.拉格朗日松弛算法是求解混合整数规划问题的一种有效的最优化算法[16−17].拉格朗日松弛算法的主要思想如下:通过拉格朗日乘子将模型中的耦合约束松弛到目标函数中,得到原问题的松弛问题,对于给定的一组乘子,松弛问题可以分解为单个机组的子问题,得到的对偶函数的目标值是原问题的下界.同时,构造启发式算法将对偶问题得到的解转换成原问题的可行解,可行解的目标值是原问题的上界.解的质量通过上下界之间的对偶间隙来衡量.
3.1 基于变量分离的拉格朗日松弛算法
本文之所以采用基于变量分离技术的拉格朗日松弛算法求解该模型是因为模型里压力约束的特殊性,每一时刻的压力值都受前一时刻压力值的影响,由于对偶问题需要用动态规划求解,而动态规划要求状态具有无后效性,即如果给定某一阶段的状态,则在这一阶段以后过程的发展不受这阶段以前各段状态的影响.因此,本文利用分离变量技术解决压力约束无法采用动态规划方法求解子问题的难题.
具体的分离方法为:引入一个新的变量yit,令xit=yit,将此等式约束引入模型.相当于在模型里加入了一个约束式.对应地,变量xit在目标函数中分解为α·xit+β·yit,在部分约束中被变量yit替代.令α+β=1,那么原问题可以重新表述如下:
满足约束(2)∼(7)和
通过乘子{πit},{λit}(无符号限制)把耦合约束(2)、(9)引入到目标函数中,得到松弛问题LR.
LR:L(λ)=minZLR,其中
满足约束(3)∼(7).
对于给定的乘子{πit},{λit}可以把松弛问题(LR)分解为两个独立的子问题,即LR1:
满足约束(3)∼(5)和(7).
满足约束(6).
拉格朗日对偶问题(Lagrange duality,LD)为:MaxL(λ),其中
满足约束(3)∼(7).
3.2 求解油井机组子问题
3.2.1 求解带有爬坡约束的子问题LR1
LR1子问题是带有爬坡约束混合整数规划问题,既有离散变量又有连续变量约束,而且相邻两时段的发电量是耦合的,xit受到区间[xi,t+1−∆i,xi,t+1+∆i]爬坡速率的约束不能随意变化.如果用常规的动态规划进行求解,得到的解不是问题的最优解.因此,本文提出一种新型的动态规划方法,用于求得该问题的最优解.
在新的动态规划转移图G(如图3)中,起点为s,终点为d.每个节点代表了一个状态,两个节点之间的连线表示一个可能的状态转移.每个阶段的节点为 (τh,τk),τh,τk∈T且τk≥τh, 表示油井开机的起止时间.考虑最小开机时间约束,所有的对应的都是不可行的状态,因此在动态规划中不考虑此类节点.对于每一个节点,τh被称作前端节点,τk称作是后端节点.
在状态转移图G中,是在假设所有状态转移都满足了油井井底压力的约束前提下进行的.前后连接的节点 (τh,τk) 和 (τr,τq) 表示油井在时刻τk+1关机,在τr时刻又开机,其中,满足最小关机约束.油井在开关机时的运行费用和启动费用与节点及边有关.每一个边的转移费用都为油井的启动费用.从起点s到所有(τh,τk)节点的状态转移,代表了油井的初始状态和下一阶段状态的关系.每条从s到d的路径表示了单机组子问题的一个可行解.对于每一个阶段的节点的开机运行费用和油井的xit相关.对于每一个(τh,τk)节点,其转移费用可以用带有爬坡约束的经济分配问题进行求解.记为问题DP1:
s.t.约束(3)∼(5)和(7).
转化为线性规划问题后可以用CPLEX进行求解.
一般求解该类问题的动态规划都是以时间t作为阶段,但是新的动态规划节点是开机起止时间段,因此不能以时间t作为阶段了.本文根据油井的初始状态和最小开关机时间确定阶段.其规则如下:已知,设油井的阶段数为S,第一个阶段中τh1和τk1值最小的节点为(τh1,τk1),第二阶段τh2和τk2值最小的节点为(τh2,τk2),n个阶段后的τhn和τkn值最小的节点为 (τhn,τkn).则:
1)如果τhn≤T,τknT,则阶段S=n.
2)如果τk,n−1≤T,τhnT,则阶段S=n−1.
(τhn,τkn)和T之间的关系如图2所示.
图2 (τrn,τqn)和 T的关系图Fig.2 The diagram for the relationship between(τrn,τqn)and T
状态转移图G中,节点的复杂性为O(n2),节点之间弧的复杂性为O(n4).
从状态空间图G中可以观测到如下的特征:
1)对于每个节点(τh,τk),其τk值相同的节点在下一个阶段连接的节点是相同的.
2)两个节点 (τh,τk)和 (τr,τq)之间的转移费用是相同的,都等于油井的启动费用.
3)对于每一个阶段具有相同τk值的节点,我们用k代表其费用最小的节点,这里我们把k称之为具有相同τk值的费用最小的节点的特征点.这样可以避免转移过程中遍历所有点.
用特征点代替节点的新的状态转移图定义为图V,如图3所示.图V和原来的状态空间转移图G是等价的.证明如下:
性质1.图G和图V是等价的证明:设阶段为s,Ds(hs,ks)表示在s阶段到状态(hs,ks)的允许决策集合.则图G的状态转移方程为:fs+1(hs+1,ks+1)=min(hs,ks)∈Ds(hs,ks){ds+fs(us(hs,ks))}.
因为节点间的转移费用是相同的,得到:fs+1(ks+1)=minks∈Ds(ks){ds+fs(us(ks))}, 可简化为fs+1(ks+1)=minks∈Ds(ks){fs(us(ks))}.因为图V中的节点(特征点)费用是图G中相同后端节点k的费用值的最小值,即:
因为同一阶段,特征点k转移到下一个阶段的节点相同,相邻阶段的状态转移费用又相等,因此,只需要先比较特征点k的费用值即可,则得到如下等式:
因此,当 1≤ks≤T时,fs+1(hs+1,ks+1)=fs+1(ks+1).即图G和图V是等价的.
图G中节点的复杂性为O(n2),图V中节点的复杂性为O(n),节点之间弧的复杂性为O(n2).相对于原来的状态转移图G,节点的复杂性从O(n2)降到O(n),弧的复杂性从O(n4)降到O(n2).即使对于小规模问题,这样的转换也是一项非常重要的工作,不仅简化了状态转移图,也大大减少了需要乘子迭代的拉格朗日松弛算法的求解时间.
上述方法举例如下:
以初始状态是关机3小时,最小开关机时间都为2小时,调度周期T为8小时的油井为例,其状态转移如图3所示.从图3中可以看出并不是所有的节点都会转移到下一个阶段,随着阶段的增加,节点是逐渐减少的.在同一阶段后端时刻相同的节点有很多,比如第一阶段后端时刻为3的节点有(1,3)、(2,3),而这两个节点对应第二阶段相同的节点(6,7)、(6,8)、(7,8)和(8,8).利用动态规划方法求解时,一般选择费用最小的点作为此阶段的决策点.由于各个阶段状态转移的费用是相同的,因此可以只比较(1,3)、(2,3)费用值即可,其费用最小的节点用相同的特征点3来表示.同理,在第二阶段,与特征点3相关联的特征点为7或8.
图3 动态规划状态转移图Fig.3 Dynamic programming state transition diagram
以此类推,把各个阶段具有相同τk的节点都用特征点k表示,就得到新的动态规划转移图,如图3所示.图3中,每一个k(1 3.2.2 求解压力子问题LR2 压力子问题有两种处理方法,第一种是直接用CPLEX求解,第二种是根据压力约束的特点进行求解.下面介绍第二种方法: 最优解性:定义E=(γiβ+λit)yit 当λit≥0时,yit=0,uit=0,E=0. 当λit<0时,yit=,uit=1. 因可直接观测出,故证明略. 由于压力子问题前后两个状态的采油量直接跟压力相关,因此无需用标准的动态规划方法进行求解.当尝试用CPLEX优化软件求解该子问题时,即使是小规模问题,也需要消耗大量的时间.因此,本文设计了启发式算法,利用最优解性质,在满足最优解性质时,保证获得解是最优解;不能满足最优解性质时,获得的解是近优解.其主要思想如下: 步骤1.令t=1. 步骤2.判断是否满足最优解条件,如果满足,则转到步骤4,如果不满足,则转到步骤3. 步骤3.判断油井的状态,若uit=0,根据约束(6)计算出停机后的压力值.若uit=1,判断油井压力值和最大生产量的关系.若,则,若,则从t=1到当前时段,找到乘子值最小时对应的时段,令xit=0. 步骤4.t=t+1,若t≥T,转到步骤5. 步骤5.算法停止,获得油井i压力子问题的调度方案. 由于松弛问题的解对于原问题常常是不可行的,可能会违反需求约束,需要设计启发式算法将其转化为可行解.构造启发式算法时,要考虑该问题的特征,即油井间抽操作受到三个重要约束的制约:最小开关机时间约束、爬坡约束和压力变化约束.这三个约束是相互关联的,对油井的启停状态影响非常大,如图4所示.因此本文设计了两阶段启发式算法将松弛问题得到的解转化为可行解.第一阶段启发式先保证满足油井的最小开关机约束和压力约束,第二阶段是根据第一阶段决策出的油井最小开关机时间,保证油井开机运行时其采油量满足爬坡约束,进而决策出油井的每个时段的采油量.通过两阶段启发式算法所得到的可行解能够为原问题的最优目标函数值提供一个上界. 图4 三个约束对油井启停的影响Fig.4 The influence of three constraints on the start-up/shut-down 由于压力子问题是近似求解,其获得的对偶问题的目标值,不是最优目标函数值的真实下界,因此只能作为代理下界进行迭代.本文采用了代理次梯度[18]方法用于更新乘子的值. 为了减少代理次梯度方法的下界高估对乘子的影响,步长因子取值减少,范围缩小一半,即.其乘子πit,λit在h次迭代中的更新公式分别如下: 计算次梯度,得到搜索的方向: 每次迭代都需要按照上面的公式,更新次梯度.其中xit和yit是单机子问题求得的最优解. 然后沿着次梯度的方向更新乘子,第一个子问题每次迭代的乘子更新公式如下: 第二个子问题每次迭代的乘子更新公式如下: 为了验证所提出模型和算法的有效性,把建立的非线性数学规划模型线性转化为线性整数规模模型,转化后可以直接利用商业软件CPLEX 11.0进行求解.算法用Visual C++对算法编码,全部模型和算法在PC机(3.10GHz主频和4.00GB内存)上进行测试. 4.1.1 实验参数设置 为验证算法的性能,提出的算法采用C++编程实验,在PC机(Pentium-IV 2.83GHz CPU)上进行测试.在实验测试中,把变换后的线性整数规模模型直接采用商业软件CPLEX 11.0软件进行求解.CPLEX的算法最长运行时间设置为1800秒.其他的CPLEX设置保持软件的默认设置.对于拉格朗日松弛算法,算法性能的评价采用两个指标:对偶间隙和计算时间(秒).对偶间隙%的计算如下:可行解的目标函数值ZU(原问题的一个上界)减去对偶函数的值ZL(原问题的一个下界),再除以对偶函数的值ZL,最后转化成百分比的形式.上界是在算法迭代过程中找到的最小的目标函数值.以对偶间隙小于0.5%或迭代次数小于500作为算法的终止条件.设调度周期为24小时,初始的压力值为机组的最大压力值.开机爬坡URi和关机爬坡DRi满足[600,700]间的均匀分布,上升爬坡和下降爬坡∆i满足[400,600]间均匀分布.其他油井参数在表1中给出的范围中均匀随机产生. 表1 与油井相关的参数的生成范围Table 1 Range of values for parameters corresponding to oil wells 4.1.2 实验结果 为了验证所提出算法的有效性,设计了不同的求解方法比较各算法的目标函数值和运算时间进行评价.1)用CPLEX单独求解.2)采用LR方法,子问题用CPLEX求解,标记为LR-CPLEX.3)利用变量分离机组的拉格朗日方法,压力子问题用CPLEX求解,标记为LD-CPLEX.4)本文设计的子问题带有状态空间约简策略的基于变量分离的的LR方法,标记为LD.每种规模随机产生和求解了10组,N=10和N=30为小规模问题,N=50到100为中规模问题,N=300到N=900为大规模问题.计算结果如表2和表3所示,表2和表3中的数值是所测规模的10组实例的平均值.表2中的数值为目标函数值的比值,即每个规模自身求得的目标函数值与所有算法求解单机模型和批模型所有目标函数值取最小值的比值.即:ARi=Zi/min{Z1,Z2,Z3,···,Z8},i=1,2,3,···,8.其中,Z1/Z2表示 CPLEX 分别求解单机模型和批模型获得的目标函数值,Z3/Z4表示LR-CPLEX分别求解单机模型和批模型获得的目标函数值,Z5/Z6表示LD-CPLEX求解单机模型和批模型获得的目标函数值.Z7/Z8表示LD求解分别求解单机模型批模型获得的目标函数值.表3中的数值表示不同求解方法在求解单机模型和批模型时所需要的计算时间. 与单机模型相比,批模型明显降低了问题维数,显著降低了变量的规模.以规模24×30为例,单机模型的变量个数为6481,0-1变量个数为2160,非零系数个数为38300,约束个数为13704;而批模型的变量个数仅为649,0-1变量个数为216,非零系数个数为3830,约束个数为1392.从表2和表3的计算结果,可以得出如下结论: 1)模型的有效性 a)从表3的小规模问题CPLEX求解结果中可以看出,批模型求解的速度明显优于单机模型. b)从表3的中规模问题CPLEX求解结果中可以看出,当单机模型在允许时间内不能获得最优解时,批模型依然能够在给定的时间内求解该问题. 表2 模型与算法的性能比较结果Table 2 Computational results of the LR algorithm and the CPLEX solver 表3 模型与算法的计算时间比较Table 3 Computational time of the proposed model and algorithm c)批模型和单机模型在求解精度上,从表2的CPLEX求解小规模问题的结果中可以看出,当单机模型在限定内能够获得最优解时,批模型的求解精度仅降低了0.902%.对于中大规模问题,单机模型在限定时间内不能获得最优解时,批模型的求解精度跟单机模型相比平均提高了4.692%. 2)LD算法有效性 a)从表2的中小规模问题中可以看出,提出的LD算法跟CPLEX相比,单机模型的求解精度降低1.196%,批模型的求解精度降低0.716%.从大规模问题中可以看出,LD算法与CPLEX相比,单机模型的求解精度比CPLEX提高了8.373%,批模型的求解精度比CPLEX降低1.123%.从表3中可以看出,无论是求解单机模型还是批模型,LD的求解效率明显优于CPLEX. b)从表3的大规模问题看出,无论是单机模型还是批模型,CPLEX在限定的时间(3600s)内已经无法得到问题的最优解,而设计的LD算法无论对于单机模型还是批模型,都能够快速地得到问题的近优解,LD算法求解批模型的各个规模的平均计算时间仅为0.16. c)从表2中可以看出,提出的LD算法跟LRCPLEX算法相比,LD求解批模型的平均求解精度仅降低0.002%,但从表3中可以看出,LD求解效率明显优于LR-CPLEX的算法. d)从表2中可以看出,提出的LD算法跟LDCPLEX算法相比,LD求解批模型的平均求解精度仅降低0.023%,但从表3中可以看出,LD求解效率都明显优于LD-CPLEX的算法. e)从表2和表3中的LD算法中可以看出,批模型比单机模型的平均求解精度仅降低了0.003%,但求解效率提高了8.75倍. 以上结果表明,提出的批模型的求解效率明显优于单机模型.提出的LD算法,不仅求解的精度高,在求解效率上也明显优于其他算法. 本文针对大规模油井间抽调度问题,考虑油井生产时的井底压力约束,爬坡约束和最小开关机约束,把同一油藏内的油井划分为批进行调度,提出了批建模的策略.利用提出的批聚合的策略和方法,以采油成本最小为优化目标建立了混合整数规划批模型.针对大规模问题CPLEX无法有效快速求解的难题,本文提出基于变量分离的拉格朗日分解算法进行求解.为了加速算法求解效率,根据动态规划的结构特征,提出了用特征点代表同一阶段具有相同性质节点群的状态空间约简策略,降低搜索复杂度,用于提高算法的搜索效率.为了测试模型和算法的性能,随机产生了大量数据进行计算实验.结果表明,在模型方面,基于批聚合策略和方法建立的批模型明显降低了问题的维度,显著提高了求解效率和求解规模;在优化算法方面,提出的基于变量分离的LR算法,能够在合理的计算时间内获得高质量的解.3.3 具有爬坡约束的可行解的构造
3.4 更新拉格朗日乘子
4 实验设计及计算结果
4.1 实验和数据结果
5 结论