一种多时序混合整数规划问题的处理方法及装置与流程

文档序号:12126443阅读:516来源:国知局
一种多时序混合整数规划问题的处理方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种多时序混合整数规划问题的处理方法及装置。



背景技术:

我国新能源发电发展迅速,但在新能源发电装机爆发性增长的同时,新能源渗透能力与系统运行方式之间的协调优化问题却没有得到解决。受低谷调峰、断面送出能力、系统潮流、电压、电能质量等诸多因素的困扰,为保证电力系统安全稳定运行,新能源发电受限现象严重。

现有技术中,创建求解新能源的目标函数,根据每个机组的变化或每个机组发出的电量建立约束条件,从而求解全年的这样一个混合整数规划问题的目标函数,求解过程中可能涉及几百万变量和几百万约束,对于目前的混合整数规划求解器来求解是相当困难的。混合整数规划是非确定多项式(non-deterministic polynomial,NP)问题,较困难,其难点在于整数变量带来的指数问题。比如只有20个0-1两个变量,然而2^20=1,048,576。即使每个线性规划需要1s,也要12天才能求解完该混合整数规划问题,由此可知,现有技术对求解该类问题耗时较长,难度较大。



技术实现要素:

本申请提供的多时序混合整数规划问题的处理方法,通过并行算法提高了运算速度和准确度,有效的提升了用户体验。

第一方面,本申请提供了一种多时序混合整数规划问题的处理方法,该 方法包括:根据多时序混合整数规划问题,创建多时序混合整数规划问题的数学模型,其中,数学模型包含目标函数和约束条件;采用多个线程对多时序混合整数规划问题的数学模型进行计算;当多个线程中的任一线程获得多时序混合整数规划问题的数学模型的最优解时,终止多个线程中的其他线程。

在一个可能的实现中,多个线程包括第一线程、第二线程和第三线程;第一线程、第二线程和第三线程分别运行相应的计算算法。计算算法用于对多时序混合整数规划问题的数学模型进行计算,当第一线程、第二线程和第三线程中的任一线程获得多时序混合整数规划问题的数学模型的最优解时,终止其他线程。

在一个可能的实现中,第一线程、第二线程和第三线程中的任一线程运行分支定界算法与启发式算法构成的组合算法。

在一个可能的实现中,分支定界算法与启发式算法构成的组合算法的计算包括:设有最大化的整数规划问题A,与最大化的整数规划问题A相应的线性规划为问题B。分枝定界算法是将问题B的可行域分成至少一个子区域的算法。在分支定界算法中,将多时序混合整数规划问题数学模型的多时序变量的参数多个取值作为多分支变量。对多分支变量进行打分,选取最接近多时序混合整数规划问题数学模型的解的分支变量。

在一个可能的实现中,对多分支变量进行打分,具体包括:将多分支变量的锁值与分数的和作为打分标准;其中,锁值是上锁值和下锁值的乘积,分数是指将当前变量的值与预设参考值的和再求绝对值。

在一个可能的实现中,该方法还包括:将多时序混合整数规划问题的数学模型转换为线性规划的数学模型,并求解线性规划的目标值。线性规划的数学模型包括第一线性规划的数学模型和第二线性规划的数学模型,通过第一线性规划的数学模型获取第一目标值,通过第二线性规划的数学模型获取第二目标值。当多个线程中的任一线程计算获得的解与第一目标值或第二目标值一致时,确定解为多时序混合整数规划问题的数学模型的最优解,并终 止多个线程中的其他线程;其中,与第一目标值进行比较的解由第一组多个线程计算获取;与第二目标值进行比较的解由第二组多个线程计算获取。

第二方面,本申请提供了一种多时序混合整数规划问题的处理装置,该装置包括:创建单元,用于根据多时序混合整数规划问题,创建多时序混合整数规划问题的数学模型,其中,数学模型包含目标函数和约束条件。计算单元,用于采用多个线程对多时序混合整数规划问题的数学模型进行计算。终止单元,用于当多个线程中的任一线程获得多时序混合整数规划问题的数学模型的最优解时,终止多个线程中的其他线程。

在一个可能的实现中,计算单元中的多个线程包括第一线程、第二线程和第三线程;第一线程、第二线程和第三线程分别运行相应的计算算法;计算算法用于对多时序混合整数规划问题的数学模型进行计算。当第一线程、第二线程和第三线程中的任一线程获得多时序混合整数规划问题的数学模型的最优解时,终止单元终止其他线程。

在一个可能的实现中,计算单元中的第一线程、第二线程和第三线程中的任一线程运行分支定界算法与启发式算法构成的组合算法。

上述多时序混合整数规划问题的处理方法和装置,通过并行多线程算法能够在短时间有效的求解带有较多约束的混合整数规划问题,从而解决新能源发电受限的情况,获取新能源目标函数的最优值。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种多时序混合整数规划问题的处理方法流 程图;

图2为图1所示的一种多时序混合整数规划问题的处理过程流程图;

图3为本发明实施例提供的一种多时序混合整数规划问题的处理装置结构示意图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本发明实施例提供的一种多时序混合整数规划问题的处理方法能够在短时间有效的求解涉及几百万变量和几百万约束的混合整数规划问题,从而解决新能源发电受限的情况,获取新能源目标函数的最优值。

图1为本发明实施例提供的一种多时序混合整数规划问题的处理方法流程图,如图1所示,该方法包括:

步骤110、根据多时序混合整数规划问题,创建该多时序混合整数规划问题的数学模型,其中,数学模型包含目标函数和约束条件。

在新能源渗透能力与系统运行方式之间的协调工作中,存在多时序参数,该多时序参数包括但不限制于时间参数和变量参数,由新能源发电受限的情况,可以建立多时序混合整数规划问题,根据建立的多时序混合整数规划问题创建相应的数学模型。该数学模型包括目标函数和目标函数中多时序参数构成了约束条件。例如:目标函数为maxZ=3x+2y,其中约束条件如下:

步骤120、采用多个线程对多时序混合整数规划问题的数学模型进行计算。

可选地,如图2所示,在执行步骤120之前,该方法还包括:对创建的 多时序混合整数规划问题的数学模型进行预处理,其中,该预处理中可以包括探测(Probing)处理(第一组),也可以不包括Probing处理(第二组)。Probing处理是在预处理的基础上做探测处理,该探测过程可以包括把一些变量固定成0或者1,然后通过区域进行传播。如果探测出来某一个变量被固定在某一值后,问题仍没有可行解,那么该变量将被固定在相反的值,从而得到简化的模型,Probing处理过程可以获取变量锁,变量锁是阻碍规划问题中变量向下界或上界运动的约束个数,分上锁值和下锁值)。

预处理具体可以包括:欧几里德简约方法、基本的系数改进方法、圆整启发式方法等。

上述的预处理方法是基于预处理程序实现的。在一个整数规划软件包中预处理程序是不可或缺的,其目的是在不影响问题稀疏结构的前提下,使问题的界约束更紧,以及固定某些变量,将某些变量用其它变量替换(减少约束条件),去掉冗余的约束条件,合并某些变量,从而提升某些约束条件使对应的松弛问题有更好的界线,及时发现原问题是否可行等。需要说明的是,预处理常常被嵌入到每个节点的计算中。

其中,上述介绍的预处理方法具体如下:

第一种预处理方法,欧几里德简约方法的预处理在于先将约束条件中等式左端的变量系数和右端项转换为整数,如通过等式两边同乘最小公倍数,其次计算变量系数的最大公约数,根据最大公约数能否被右端项整除,判断等式约束是否有解,具体如下:

设约束为aj为有理数。

1)首先确定aj(j∈S),b的分母,设aj(j∈S),b的分母的最小公倍数为K,在约束的两端同乘以K,便将约束中整数变量的系数和右端项均化为了整数。

2)设aj(j∈S),b均为整数,计算aj(j∈S)的最大公约数D。

3)对于等式约束,若aj(j∈S)的最大公约数D不能被b整除,则无可行解; 对于不等式约束,两边同除以D,并对右端项``圆整”。

4)约束中含有0-1变量时,可使用后面的方法改变系数以使最大公约数D尽可能大。

第二种预处理方法,基本的系数改进方法,具体如下:对k∈B+,令:xk=0;若zk≤bi,说明当xk=0时该约束是多余的(xk=1时则不是),从而aik和bi均可减少δ=bi-zk而保持可行域不变(即在xk=0时将右端项变为zk,xk=1时约束不变)。显然这样会使约束在去掉整数可行性的要求后更紧些。为便于计算,一个简单的办法是令对k∈B-,令 同样地若zk≤bi,令δ=bi-zk,则此时可令右端项为bi-δxk,即令aik←aik+δ,bi不变。为便于计算,可令

第三种预处理方法,圆整启发式方法是从启发式方法的线性规划(英文:linear programming,LP)松弛问题出发,具体为如下:

启发式方法可以用来较快的找到一个较好的可行解,可与分支定界方法结合使用,以更快的剪枝或终止计算。

考虑混合整数规划问题:

其LP松弛问题为:

圆整启发式方法从LP松弛问题的分数最优解出发,圆整变量 对每个j∈F,有向上或向下圆整两种选择,要求得整数可行解仍是满足不等式约束Ax≤b。

进一步的,在执行步骤120之前,如图2所示,该方法还包括:将多时 序混合整数规划问题的数学模型转换为线性规划的数学模型,并求解线性规划的目标值。

线性规划的数学模型可以包括第一线性规划的数学模型和第二线性规划的数学模型,通过第一线性规划的数学模型获取第一目标值,通过第二线性规划的数学模型获取第二目标值。其中,线性规划的数学模型获取目标值的步骤可以包括:

将预处理后的多时序混合整数规划问题的数学模型进行松弛处理,转换为LP松弛问题的线性规划模型,对该LP松弛问题的线性规划问题求解,该解为多时序混合整数规划问题的数学模型的目标值。其中,松弛问题是指不考虑变量为整数条件,由余下的目标函数和约束条件构成的规划问题。

例如,以多时序混合整数规划问题的数学模型的变量x只能取0或者1为例,对多时序混合整数规划问题进行松弛处理后变量x可以取【0,1】间的任意值,该值可以不是整数,从而求解出线性规划问题的解,如将X1=0.5带入数学模型,以便消除若干约束条件,再对新的数学模型进行再次定值,直到求解出转换后的线性规划模型的解,即目标值。

需要说明的是,根据上述求解方法,若该两组线性规划模型都无解,则多时序混合整数规划问题的数学模型无解。

回到步骤120中,针对有目标值的多时序混合整数规划问题的数学模型,每组采用多个线程并行算法对其进行计算。

多个线程可以包括但不限制于第一线程、第二线程和第三线程。第一线程可以运行分支算法和启发式算法构成的组合算法,第二线程可以运行shiftandpropagate算法、第三线程可以运行Rens算法,且第一线程、第二线程和第三线程为并列关系。

Shiftandpropagate算法是通过固定一组变量,然后进行区域传播,以便缩减多时序混合整数规划问题变量的取值范围。如果在对变量的取值范围进行缩减的过程中,探测到当前多时序混合整数规划问题不可行,则会撤回到 以前的状态,该变量的固定则被推迟。如果在对变量的取值范围进行缩减的过程中,探测到当前多时序混合整数规划问题可行,则继续改算法,直至算出多时序混合整数规划问题的解。

RENS(relaxation enforced neighberhood search)算法具体如下:

设x是LP松弛问题的最优解,设则有2|F|种圆整可能,为避免组合爆炸,RENS算法构造了如下多时序混合整数规划子问题MIP:

在(MIP’)中,对j∈I\F,xj均被固定为对j∈F,xj只能取两个值 因此令便将(MIP’)化为了0-1规划问题,从而对多时序混合整数规划问题进行求解。

需要注意的是,子问题(MIP’)的求解耗费时间较长,因此其运算时需要一定的限制,可以限制子问题(MIP’)求解时产生的节点数:当产生的节点超过一定数量如5000时便终止求解。也可以限制变量个数,当时,意味着子问题(MIP’)并不比多时序混合整数规划整体问题(MIP)容易多少,此时将跳过启发式方法;若通过预处理后,子问题(MIP’)的变量个数与整体问题(MIP)相比并没有明显减少(如至少减少25%),则子问题(MIP’)也不会被求解。

分支定界算法可用于解纯整数或混合的整数规划问题,设有最大化的整数规划问题A,与A相应的线性规划为问题B,从解问题B开始,分枝定界算法就是将B的可行域分成子区域(称为分枝)的算法。在分支算法中将多时序混合整数规划问题数学模型的多时序参数的变量取值看做多分支变量;对分支变量进行打分,选取最接近多时序混合整数规划问题数学模型的解的分支变量。其中,打分标准可以是变量锁值与分数的和。分数值高的分支变量可以作为最佳分支变量,即将多时序混合整数规划问题数学模型中的相应 参数的变量替换成该分支变量。如果存在多个分支变量的分数值一样的情况,则将预设一个参考值,将最接近该数值的分支变量值选为最佳分支变量。其中,锁值可以是上锁值与下锁值的乘积,分数可以是指当前求出变量的值与预设参考值“-0.5”的和再求绝对值。分数值也可以是多种评估值的综合。

例如,在多时序混合整数规划问题数学模型中,变量X1的取值范围为0到1,即该多时序混合整数规划问题数学模型可以分成两个分支,分支1为X1=0;分支2为X1=1。通过对两个分支变量进行打分,根据分支变量的分数值的高低,选择最佳的分支对该数学模型进行求解。或者,若分支变量的分数值相等,且此时预设的变量数值是0.8,由于X1=1的分支变量最接近0.8,因此将X1=1的分支作为最佳的分支对该数学模型进行求解。

进一步的,确定最佳分支变量后,需要调节该数学模型的分支变量的跳进深度。

一个跳入过程是历史信息选择的结果,由于该多时序混合整数规划问题存在多个相同或相似的数学模型,即数学模型间有共通性,对其中一个数学模型进行求解,当该数学模型可能得到解时,获取该数学模型此时分支变量的跳进深度值,跳进深度可以通过寻找该变量子节点下潜的深度值获取,如20。存储该跳进深度值作为其他数学模型的跳进阈值,以便于对其他数学模型的子问题进行求解。

进一步的,在确定跳进深度值后,触发启发式算法。启发式算法是一种基于直观或经验的算法,在可接受的计算时间内寻找最好的解,即找到与LP目标值一致的解。在启发式算法中,根据分支定界算法中变量的分数,获取分数较好的下潜变量,对于一个固定一些变量后的子问题,或节点问题,将多时序混合整数规划问题转换为相应线性规划问题。从而求解相应的线性规划问题,获取该线性规划问题的目标值。

步骤130、当多个线程中的任一线程获得多时序混合整数规划问题的数学 模型的最优解时,终止多个线程中的其他线程。

最优解是指与线性规划问题的目标值相一致的多时序混合整数规划问题的数学模型的解。

如图2所示,在第一组计算中,当第二线程获得与线性规划的目标值相一致的多时序混合整数规划问题的数学模型的解时,终止第一线程、第三线程、第四线程、第五线程和第六线程;当第二线程获得的多时序混合整数规划问题的数学模型的解与解线性规划的目标值不一致时,终止第二线程。

当第三线程获得与线性规划的目标值相一致的多时序混合整数规划问题的数学模型的解时,终止第一线程、第二线程、第四线程、第五线程和第六线程;当第三线程获得的多时序混合整数规划问题的数学模型的解与解线性规划的目标值不一致时,终止第三线程。

当第一线程获得与线性规划的目标值相一致的多时序混合整数规划问题的数学模型的解时,终止第二线程、第三线程、第四线程、第五线程和第六线程;当第一线程获得的多时序混合整数规划问题的数学模型的解与线性规划的目标值不一致时,再次返回运行分支算法和启发式算法的组合算法,直到第三线程找到最优解或到达一定返回次数阈值后终止第一线程,以此类推。

本发明实施例提供的上述处理方法通过并行多线程算法能够在短时间有效的求解带有较多约束的混合整数规划问题,从而解决新能源发电受限的情况,获取新能源目标函数的最优值。

与上述方法对应的,本发明还提供了一种多时序混合整数规划问题的处理装置,如图3所示,该装置包括:

创建单元310用于根据多时序混合整数规划问题,创建多时序混合整数规划问题的数学模型,其中,数学模型包含目标函数和约束条件;

计算单元320用于采用多个线程对多时序混合整数规划问题的数学模型进行计算;

终止单元330用于当多个线程中的任一线程获得多时序混合整数规划问题的数学模型的最优解时,终止多个线程中的其他线程。

可选地,计算单元320中的多个线程包括第一线程、第二线程和第三线程;第一线程、第二线程和第三线程分别运行相应的计算算法;计算算法用于对多时序混合整数规划问题的数学模型进行计算。当第一线程、第二线程和第三线程中的任一线程获得多时序混合整数规划问题的数学模型的最优解时,终止单元330终止其他线程。

可选地,计算单元320中的第一线程、第二线程和第三线程中的任一线程运行分支定界算法与启发式算法构成的组合算法。

本发明实施例处理装置的各功能模块的功能,可以通过上述处理方法实施例的各步骤来实现,因此,本发明提供的处理装置的具体工作过程,在此不复赘述。

本发明实施例提供的上述处理装置通过并行多线程算法能够在短时间有效的求解带有较多约束的混合整数规划问题,从而解决新能源发电受限的情况,获取新能源目标函数的最优值。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器、闪存、只读存储器、可擦除可编程只读寄存器(英文:erasable programmable read-only memory,EPROM)存储器、电可擦可编程只读存储器存储器(英文:electrically erasable programmable read-only memory,EEPROM)、硬盘、只读光盘(英文:compact disc read-only memory,CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于 用户设备中。当然,处理器和存储介质也可以作为分立组件存在于用户设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1