CN106599585B - 基于并行蜂群算法的水文模型参数优化方法及装置 - Google Patents
基于并行蜂群算法的水文模型参数优化方法及装置 Download PDFInfo
- Publication number
- CN106599585B CN106599585B CN201611177273.9A CN201611177273A CN106599585B CN 106599585 B CN106599585 B CN 106599585B CN 201611177273 A CN201611177273 A CN 201611177273A CN 106599585 B CN106599585 B CN 106599585B
- Authority
- CN
- China
- Prior art keywords
- population
- sub
- parallel
- ant colony
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Z—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
- G16Z99/00—Subject matter not provided for in other main groups of this subclass
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于并行蜂群算法的水文模型参数优化方法及装置,应用于水文模型参数优化设备,该方法包括:获取待优化水文模型的参数数据;读取待模拟流域的流域水文的实测基础数据;在主线程上,设置并行蜂群算法的种群规模,并将种群划分为多个子种群;在子线程上,利用多个子种群按照串行蜂群算法流程分别对待优化水文模型进行参数优化,得到各个子种群的个体最优值,并将其返回主线程,得到全局最优值以及与全局最优值对应的各个参数的全局最优解;根据得到的各个参数的全局最优解对待优化水文模型的参数进行校正。本发明提供的方法及装置,基于并行运行机制,提高了参数优化的效率及精度,减少了时间耗费。
Description
技术领域
本发明涉及智能算法应用技术领域,具体而言,涉及一种基于并行蜂群算法的水文模型参数优化方法及装置。
背景技术
参数优化率定对水文模型整体性能和水文预报结果有着至关重要的影响。水文模型具有复杂性高、参数多、维数高、数据处理量大等特点,因此在模型参数优化中存在大量的计算密集型任务,需要耗费大量的CPU处理时间,从而导致模型运行效率低下。
发明内容
有鉴于此,本发明的目的在于提供一种基于并行蜂群算法的水文模型参数优化方法及装置以解决上述问题。
本发明较佳实施例提供一种基于并行蜂群算法的水文模型参数优化方法,应用于水文模型参数优化设备,所述方法包括:
获取待优化水文模型的参数数据;
读取待模拟流域的流域水文的实测基础数据;
在主线程上,设置并行蜂群算法的种群规模,并将种群划分为多个子种群;
在子线程上,利用所述多个子种群按照串行蜂群算法流程分别对所述待优化水文模型进行参数优化,得到各个所述子种群的个体最优值,并将所述个体最优值返回主线程,得到所述种群的全局最优值以及与所述全局最优值对应的各个参数的全局最优解;
根据得到的所述各个参数的全局最优解对所述待优化水文模型的参数进行校正。
本发明另一较佳实施例还提供一种基于并行蜂群算法的水文模型参数优化装置,应用于水文模型参数优化设备,所述装置包括:
获取模块,用于获取待优化水文模型的参数数据;
读取模块,用于读取待模拟流域的流域水文的实测基础数据;
种群设置模块,用于在主线程上,设置并行蜂群算法的种群规模,并将种群划分为多个子种群;
参数优化模块,用于在子线程上,利用所述多个子种群按照串行蜂群算法流程分别对所述待优化水文模型进行参数优化,得到各个所述子种群的个体最优值,并将所述个体最优值返回主线程,得到所述种群的全局最优值以及与所述全局最优值对应的各个参数的全局最优解;
校正模块,用于根据得到的所述各个参数的全局最优解对所述待优化水文模型的参数进行校正。
相比现有技术,本发明具有如下有益效果:
本发明实施例提供一种基于并行蜂群算法(Multi-cores Parallel ArtificialBee Colony,MPABC)的水文模型参数优化方法及装置,在主线程上,设置并行蜂群算法的种群规模,并将种群划分为多个子种群。在子线程上,利用多个子种群按照串行蜂群算法(Artificial Bee Colony,ABC)流程分别对待优化水文模型进行参数优化,得到各个子种群的个体最优值,并将其返回主线程,得到全局最优值以及与全局最优值对应的各个参数的全局最优解。根据得到的各个参数的全局最优解对待优化水文模型的参数进行校正。本发明提供的方法及装置,基于并行运行机制,提高了参数优化的效率及精度,减少了时间耗费。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的一种水文模型参数优化设备的示意性结构框图。
图2为本发明较佳实施例提供的一种基于并行蜂群算法的水文模型参数优化方法的流程图。
图3为本发明较佳实施例提供的一种待优化水文模型的示意性关系框图。
图4为图2中步骤S140的子步骤的流程图。
图5为图4中步骤S143的子步骤的流程图。
图6为本发明较佳实施例提供的一种基于并行蜂群算法的水文模型参数优化装置的示意性结构框图。
图7为本发明较佳实施例提供的参数优化模块的示意性结构框图。
图8为本发明较佳实施例提供的个体最优值查找子模块的示意性结构框图。
图9为本发明较佳实施例提供的并行蜂群算法获得的加速比与计算核数之间的关系示意图。
图10(a)为串行蜂群算法获得的最优模型参数的预测结果。
图10(b)为并行蜂群算法获得的最优模型参数的预测结果。
图10(c)为遗传算法获得的最优模型参数的预测结果。
图10(d)为粒子群算法获得的最优模型参数的预测结果。
图标:100-水文模型参数优化设备;110-基于并行蜂群算法的水文模型参数优化装置;111-获取模块;112-读取模块;113-种群设置模块;114-参数优化模块;1141-参数设置子模块;1142-指标建立子模块;1143-个体最优值查找子模块;11431-参数设定单元;11432-计算单元;11433-第一判断单元;11434-第二判断单元;1144-全局最优值获取子模块;1145-全局最优解获取子模块;115-校正模块;120-处理器;130-存储器。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
请参阅图1,为本发明较佳实施例提供的基于并行蜂群算法的水文模型参数优化设备100的方框示意图。该水文模型参数优化设备100可以是,但不限于,个人电脑(personal computer,PC)、平板电脑、服务器等具备数据分析及处理能力的计算设备。
所述水文模型参数优化设备100包括基于并行蜂群算法的水文模型参数优化装置110、处理器120以及存储器130。本发明较佳实施例中,所述基于并行蜂群算法的水文模型参数优化装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器130中或固化在所述水文模型参数优化设备100的操作***(operating system,OS)中的软件功能模块。所述处理器120用于执行所述存储器130中存储的可执行软件模块,例如所述基于并行蜂群算法的水文模型参数优化装置110所包括的软件功能模块及计算机程序等。本实施例中,所述基于并行蜂群算法的水文模型参数优化装置110也可以集成于所述操作***中,作为所述操作***的一部分。
其中,存储器130可以是,但不限于,随机读取存储器(Random Access memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器130用于存储程序,所述处理器120在接收到执行指令后,执行所述程序,下述本发明实施例任一实施方式所揭示的流程定义的方法可以应用于处理器120中,或者由处理器120实现。
处理器120可能是一种集成电路芯片,具有信号的处理能力。上述处理器120可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。
可以理解,图1所示的结构仅为示意,所述水文模型参数优化装置还可以包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参阅图2,为本发明较佳实施例提供的一种基于并行蜂群算法的水文模型参数优化方法的流程图,应用于图1所示的水文模型参数优化装置中。所应说明的是,本发明提供的方法不以图2及以下所示的具体顺序为限制。下面将对图2所示的具体步骤进行详细描述。
步骤S110:获取待优化水文模型的参数数据。
流域水文模型是研究水文过程的重要工具和方法,已被广泛应用于洪水预报和水文资源管理等众多领域。水文模型通常具有大量的参数,而且很多参数无法直接测量获得,需要通过参数校正优化后才能使得模型尽可能地接近模拟流域的自然过程。因此,参数选择对模型整体性能和水文预报结果的好坏有着至关重要的影响。
可选地,在本实施例中,采用的流域水文模型为新安江模型。新安江模型是一个多参数模型,能够适应于我国的湿润半湿润地区。该模型将大流域划分为多个单元流域并对其进行产汇流计算,得出单元流域的出口流量,进一步进行出口以下的河道洪水演算求出相应单元的出流过程,然后通过各个单元流域的出流过程相加,得到流域出口的总出流过程。
本实施例中,确定使用新安江模型作为本实施例中的待优化水文模型,并获取所述待优化水文模型的参数数据。
如图3所示,为本发明较佳实施例提供的待优化水文模型的示意性关系框图。可选地,在本实施例中,对于该待优化水文模型,需要优化的参数包括:土壤蒸发系数K、不透水面积产流IMP、张力水蓄水容量曲线指数B、平均张力水蓄量(上层)WUM、平均张力水蓄量(下层)WLM、平均张力水蓄量(深层)WDM、深层散发系数C、河流土壤稳定下渗率FC、地下水消退系数KKG以及地表径流汇流参数Kr。
步骤S120:读取待模拟流域的流域水文的实测基础数据。
本实施例中,将新安江水文模型应用到待模拟流域的流域水文中,以进行模拟实验。可选地,本实施例,采用黑河流域作为待模拟流域。可选地,在本实施例中,共收集了黑河流域中的扎马什克水文站从1990年1月1日至1995年12月31日这5年的逐日降雨、蒸发和径流数据。由于难以获取流域的初始状态信息,为消除初始状态设置对模型模拟运行结果的影响,一般模型需要经过一段时间进行校正。本实施例中,选取1990年1月1日到1990年12月31日共365天作为校正期,以消除流域初始条件设置的影响。选取流域1991年1月1日至1995年12月31日的典型径流过程数据作为模型验证期。
步骤S130:在主线程上,设置并行蜂群算法的种群规模,并将种群划分为多个子种群。
蜂群算法是一种模仿自然界蜜蜂采蜜的过程的人工智能算法,包括采蜜蜂、观察蜂以及侦查蜂三种。一个食物源对应一个采蜜蜂,也就是说食物源的个数等于采蜜蜂的个数。食物源的位置代表优化问题解,每个解的质量或适应度对应食物源的花蜜量。
随着多核处理器的普及和并行计算机制的深入研究,并行计算逐渐成为提高效率的一个重要途径。多核是指在一枚处理器中集成两个或两个以上完整的计算引擎(内核),每个内核都可以支持一个线程单独运行。多核并行计算就是把一个传统的串行处理的任务分解开来,并将其分配给处理器120的多个内核同时处理,即在同一时间间隔内增加处理器120内核的操作数量。
与单核处理器相比,多核支持多个线程同时执行,高效地实现线程并行,提高计算效率。与传统集群并行相比,一方面在普通的多核机器上就可以实现并行计算,节省了大量的硬件资源及网络开销。另一方面多核技术进程间通过读/写共享数据缓存区实现通信,与集群通过网络通信相比节省了大量的通讯时间。
在本实施例中,采用并行蜂群算法以优化待优化水文模型的模型参数。可选地,结合改进的并行分层混合模型与Fork/Join框架实现并行蜂群算法的算法模型。该并行计算框架分为上下两层。上层基于粗粒度模型实现,以多种群并行计算思想来保证种群的多样性。即在主线程上,首先设置并行蜂群算法的种群规模,然后采用分治策略将种群划分为多个子种群,各个子种群使用独立的线程同时进化。这样的设置,可防止进化陷入局部最优。
可选地,在对种群进行划分时,采用二分法进行种群分割。即当种群数量大于预设阈值时,将原问题划分为两个子问题,同时递归调用求解算法。否则可以直接调用串行蜂群算法来求解。因此,阈值是任务分割的临界值,子问题的规模由阈值来衡定。
阈值选取对并行计算效率影响较大。最常用的方法是为串行蜂群算法的每次迭代创建一个独立的线程,而串行蜂群算法包含上千次迭代循环。这种过于细粒度的划分,将导致大量CPU时间和成本花费在线程间的通讯中,而在实际计算方面时间占的比例过少。预设阈值设置的过大,则划分的子任务过少,不能充分利用多核资源,导致计算时间较长。
可选地,本实施例中,对于水文模型参数优化问题,参考学者在水库群长期优化调度中的阈值选择策略。例如,若种群的数量为a,CPU的核数为b,则阈值设置为c=(a/b),结果取商的上整数。
步骤S140:在子线程上,利用所述多个子种群按照串行蜂群算法流程分别对所述待优化水文模型进行参数优化,得到各个所述子种群的个体最优值,并将所述个体最优值返回主线程,得到所述种群的全局最优值以及与所述全局最优值对应的各个参数的全局最优解。
可选地,在本实施例中,所述并行计算框架的下层,即子线程,以Fork/Join框架为并行工具,并结合线程通信实现计算任务的分配与窃取。
可选地,请参阅图4,步骤S140可以包括步骤S141、步骤S142、步骤S143、步骤S144以及步骤S145五个子步骤。
步骤S141:设置各个所述子种群的初始参数。
蜂群算法是基于群体的人工智能算法,在进行算法迭代之前,需要设置各个子种群的种群初始参数。种群的初始参数包括算法的最大迭代次数Limit、算法最大循环次数MaxCycles以及搜索目标参数个数D等等。
步骤S142:建立目标函数以及并行性能评价指标,所述目标函数是判断所述水文模型参数优劣的指标,所述并行性能评价指标是判断所述并行蜂群算法的优劣的标准。
在模型参数优化识别中,目标函数的选取直接影响优化计算的结果和优化的计算速度。可选地,在本实施例中,尽可能使经过优化的水文模型能够很好地预测待模拟流域的水文状态,即模拟值与实测值能够很好地拟合,因此,可采用如下所示的函数作为目标函数:
其中,N为样本数量,Qsim,t为t时刻径流的模拟数据值,Qobs,t为t时刻径流的实测数据值,为实测数据的平均值。
本实施例中,模拟数据值Qsim,t与实测数据值Qobs,t越接近,则目标函数NSE越大,代表算法最终获取的解的质量越好。
此外,在本实施例中,采用并行性能评价指标:加速比Sp和并行效率Ep,作为并行蜂群算法的评价指标。其中,所述加速比Sp的表达式如下:
Sp=Ts/Tp
其中,Ts为最快的串行蜂群算法在最坏的情况下的运行时间,Tp为并行蜂群算法在最坏的情况下解决与串行蜂群算法相同问题时的运行时间;
所述并行效率Ep的表达式如下:
Ep=Sp/p
其中,p为所述并行蜂群算法中所述子种群的数目。
步骤S143:利用所述多个子种群对所述待优化水文模型的参数进行优化,查找到各个所述子种群的个体最优值,并将所述个体最优值返回至所述主线程,所述个体最优值的个数与所述子种群的个数相等。
具体地,请参阅图5,步骤S143可以包括步骤S1431、步骤S1432、步骤S1433以及步骤S1434四个子步骤。
步骤S1431:设定各个所述参数的初始值以及各个所述参数的取值范围。
在本实施例中,所述待优化水文模型中各个待优化的参数的取值范围可设置如表1所示。在进行算法迭代过程中,所搜索到的解的范围不能超过所设置的取值范围。在调用待优化水文模型进行运算时,先估测参数的初始值,并得到其对应的目标函数值,然后并行蜂群算法以此反馈值为判断依据,得出当前参数的优劣程度,不断进行迭代进化。
表1
参数 | 取值范围 | 参数 | 取值范围 |
K | (0.001,1.000) | WDM | (50.000,200.000) |
IMP | (0.001,0.500) | C | (0.001,0.3000) |
B | (0.001,1.000) | FC | (0.001,50.000) |
WUM | (5.000,30.000) | KKG | (0.001,0.990) |
WLM | (50.000,100.000) | Kr | (0.001,10.000) |
步骤S1432:根据所述目标函数、所述并行性能评价指标、所述初始值及所述取值范围利用各个所述子种群按照串行蜂群算法流程进行迭代计算。
在本实施例中,并行蜂群算法在求解待优化水文模型参数优化问题时从多个子种群出发,以单个子种群的求解为最小的任务单元。各个子种群间的计算过程具有并行性。在子线程上,各个子种群按照串行蜂群算法流程进行迭代计算。
步骤S1433:在迭代计算过程中,当进入侦查蜂阶段时,判断得到的每个解的停滞次数是否达到预设的放弃阈值,若达到,则通过观察蜂机制产生新的种群个体,并丢弃停滞次数已达到所述放弃阈值的解。
本实施例中,并行蜂群算法针对每个子种群的计算过程建立一个独立的子任务。每个子任务独自进行粗粒度并行运行。在迭代计算过程中,在每个子任务的内部,在进行侦查蜂和观察蜂阶段进化时,采用Fork/Join框架进行细粒度并行运算。
在模型运行过程中,计算目标函数时需要调用待优化水文模型模拟径流数据,是在整个水文模型参数优化中最耗时和最耗费计算资源的步骤。因此,在这些步骤中,采用Fork/Join并行框架进行改造,利用线程调用待优化水文模型运行,并计算模拟数据与实测数据之间的目标函数值,从而可以提高算法运行效率,提升水文模型模拟效率。
在本实施例中,当进入侦查蜂阶段时,判断经过迭代后得到的解的停滞次数,即判断在迭代过程中,得到的解在质量上是否没有得到提高,并且记录下这种状态所持续的次数。并且,判断得到的解的停滞次数是否大于预设的放弃阈值,若该解的停滞次数大于预设的放弃阈值,则对该解作放弃处理。并且,通过观察蜂机制来产生新的种群个体,以此,来提高获取的解的精度,并且可在一定程度上避免算法陷入局部最优,以获取全局范围内的质量更优的解。
步骤S1434:记录下各个所述子种群分别获取的个体最优值,并判断是否达到预设的迭代停止条件,若达到,则停止迭代计算并输出各个所述子种群的个体最优值。
本实施例中,在算法进行多次迭代之后,每个子种群都可以获得在各自的搜索范围内的个体最优值。并且,在算法的每一次迭代的过程中,均需要判断此次迭代是否达到了预先设置的迭代停止条件。可选地,该迭代停止条件可以为达到预设的最大迭代次数Limit或者是已搜索到全局范围内的个体最优值。若算法已达到了预设的迭代停止次数,则停止迭代进化,并且输出各个子种群的个体最优值。所述个体最优值为多个,其数量与子种群的数量相等。
步骤S144:在主线程上,将多个所述个体最优值进行比较,得到最大的所述个体最优值,将所述最大的所述个体最优值判定为所述种群的全局最优值。
步骤S145:根据所述全局最优值得到与所述全局最优值相对应的所述待优化水文模型的各个参数的全局最优解。
步骤S140:根据得到的所述各个参数的全局最优解对所述待优化水文模型的参数进行校正。
请参阅图6,为本发明较佳实施例提供的一种基于并行蜂群算法的水文模型参数优化装置110的示意性结构框图。如图6所示,该参数优化装置包括获取模块111、读取模块112、种群设置模块113、参数优化模块114以及校正模块115。
所述获取模块111用于获取待优化水文模型的参数数据。关于所述获取模块111的描述具体可参考对图2中所示的步骤S110的详细描述,也即,步骤S110可以由所述获取模块111执行。
所述读取模块112用于读取待模拟流域的流域水文的实测基础数据。关于所述读取模块112的描述具体可参考对图2中所示的步骤S120的详细描述,也即,步骤S120可以由所述读取模块112执行。
所述种群设置模块113用于在主线程上,设置并行蜂群算法的种群规模,并将种群划分为多个子种群。关于所述种群设置模块113的描述具体可参考对图2中所示的步骤S130的详细描述,也即,步骤S130可以由所述种群设置模块113执行。
所述参数优化模块114用于在子线程上,利用所述多个子种群按照串行蜂群算法流程分别对所述待优化水文模型进行参数优化,得到各个所述子种群的个体最优值,并将所述个体最优值返回主线程,得到所述种群的全局最优值以及与所述全局最优值对应的各个参数的全局最优解。关于所述参数优化模块114的描述具体可参考对图2中所示的步骤S140的详细描述,也即,步骤S140可以由所述参数优化模块114执行。
可选地,请参阅图7,所述参数优化模块114可以包括参数设置子模块1141、指标建立子模块1142、个体最优值查找子模块1143、全局最优值获取子模块1144以及全局最优解获取子模块1145。
所述参数设置子模块1141用于设置各个所述子种群的初始参数。关于所述初始参数设置子模块1141的描述具体可参考对图4中所示的步骤S141的详细描述,也即,步骤S141可以由所述参数设置子模块1141执行。
所述指标建立子模块1142用于建立目标函数以及并行性能评价指标,所述目标函数是判断所述水文模型参数优劣的指标,所述并行性能评价指标是判断所述并行蜂群算法的优劣的标准。关于所述指标建立子模块1142的描述具体可参考对图4中所示的步骤S142的详细描述,也即,步骤S142可以由所述指标建立子模块1142执行。
所述个体最优值查找子模块1143用于利用所述多个子种群对所述待优化水文模型的参数进行优化,查找到各个所述子种群的个体最优值,并将所述个体最优值返回至所述主线程,所述个体最优值的个数与所述子种群的个数相等。关于所述个体最优值查找子模块1143的描述具体可参考对图4中所示的步骤S143的详细描述,也即,步骤S143可以由所述个体最优值查找子模块1143执行。
可选地,请参阅图8,所述个体最优值查找子模块1143可以包括参数设定单元11431、计算单元11432、第一判断单元11433以及第二判断单元11434。
所述参数设定单元11431用于设定各个所述参数的初始值以及各个所述参数的取值范围。关于所述参数设定单元11431的描述具体可参考对图5中所示的步骤S1431的详细描述,也即,步骤S1431可以由所述参数设定单元11431执行。
所述计算单元11432用于根据所述目标函数、所述并行性能评价指标、所述初始值及所述取值范围利用各个所述子种群按照串行蜂群算法流程进行迭代计算。关于所述计算单元11432的描述具体可参考对图5中所示的步骤S1432的详细描述,也即,步骤S1432可以由所述计算单元11432执行。
所述第一判断单元11433用于在迭代计算过程中,当进入侦查蜂阶段时,判断得到的每个解的停滞次数是否达到预设的放弃阈值,若达到,则通过观察蜂机制产生新的种群个体,并丢弃停滞次数已达到所述放弃阈值的解。关于所述第一判断单元11433的描述具体可参考对图5中所示的步骤S1433的详细描述,也即,步骤S1433可以由所述第一判断单元11433执行。
所述第二判断单元11434用于记录下各个所述子种群分别获取的个体最优值,并判断是否达到预设的迭代停止条件,若达到,则停止迭代计算并输出各个所述子种群的个体最优值。关于所述第二判断单元11434的描述具体可参考对图5中所示的步骤S1434的详细描述,也即,步骤S1434可以由所述第二判断单元11434执行。
所述全局最优值获取子模块1144用于在主线程上,将多个所述个体最优值进行比较,得到最大的所述个体最优值,将所述最大的所述个体最优值判定为所述种群的全局最优值。关于所述全局最优值获取子模块1144的描述具体可参考对图4中所示的步骤S144的详细描述,也即,步骤S144可以由所述全局最优值获取子模块1144执行。
所述全局最优解获取子模块1145用于根据所述全局最优值得到与所述全局最优值相对应的所述待优化水文模型的各个参数的全局最优解。关于所述全局最优解获取子模块1145的描述具体可参考对图4中所示的步骤S145的详细描述,也即,步骤S145可以由所述全局最优解获取子模块1145执行。
所述校正模块115用于根据得到的所述各个参数的全局最优解对所述待优化水文模型的参数进行校正。关于所述校正模块115的描述具体可参考对图2中所示的步骤S150的详细描述,也即,步骤S150可以由所述校正模块115执行。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体实验及实验结果对本发明实施例提供的技术方案进行说明。
在本实施例中,实验部分的第一部分首先采用了串行蜂群算法和并行蜂群算法对多个基准函数进行函数最小化试验。可选地,选用的测试基准函数为Sphere函数、Griewank函数、Rastrigin函数以及Rosenbrock函数。其中,并行蜂群算法采用4核同时进行迭代计算,两种算法最终得到的优化结果如表2所示。其中Mean为平均值,SD为标准方差。
从表2可以看出,对于耗时任务,如Rosenbrock函数,串行蜂群算法计算平均耗时约为211s,而4核的并行蜂群算法并行计算耗时仅为51s,其中,加速比Sp为3.795,并行效率Ep达到了94.8%。并行蜂群算法充分利用了CPU的多核并行资源,大幅减少了运行时间,极大地提高了求解效率。
如图9所示,为加速比与计算核数之间的关系示意图。从图9可以看出,对于同一种群规模,随着计算核数增多,加速比逐渐加大,但实际加速比与理想加速比的差值也在逐渐增大。
除了简单函数Sphere外,当分配的CPU核数不超过种群数时(小于等于4),其它函数的加速比和并行效率与CPU利用核数基本呈线性增长趋势,且当线程数等于CPU核数(等于4)时并行性能最为理想。当超过CPU核数时(大于4),实际加速比和并行效率逐渐平衡降低。主要原因是随着核数增多,并行额外开销(如***内存和线程调度管理等资源消耗)也会增加。
同时,由于计算中各子线程单独定义计算数据,占用内存也会相应增加,影响了CPU性能,致使并行计算效率有所下降。
表2
在本实施例中,实验部分的第二部分是采用了粒子群算法(Particle SwarmOptimization,PSO)、遗传算法(Genetic Algorithm,GA)、串行蜂群算法以及并行蜂群算法对待优化水文模型进行参数优化。如表3所示,为分别经过上述四种算法优化后的验证期和校验期相应的目标函数值以及加速比和并行效率的比较结果。
表3
在水文模型参数优化中,大量的计算存在于水文数据的处理中,因此,并行蜂群算法在上层粗粒度中使用了4核进行加速,在下层细粒度进化中使用Fork/Join框架了Fork进行并行运算,从而结合了粗粒度和细粒度并行方法的优点,使得算法综合加速比达到6.532,并行效率达到163.30%。
在30次试验中,串行蜂群算法计算需花费约417分钟,而并行蜂群算法计算花费64分钟,节省了约353分钟,极大地提高了模型运行模拟效率。从图中可以看出,并行蜂群算法可以获得最大的NSE目标函数精度值,以及较小的标准方差,证明了算法的有效性和稳定性。为检验各个算法的模拟效果,采用粒子群算法、遗传算法、串行蜂群算法和并行蜂群算法进行待优化水文模型参数校正后的最优模型参数值列在表4中。
表4
参数 | ABC | MPABC | GA | PSO |
K | 0.4478 | 0.5023 | 0.5962 | 0.8241 |
IMP | 0.4291 | 0.4965 | 0.0942 | 0.0948 |
B | 0.8257 | 0.8117 | 0.5884 | 0.2669 |
WUM | 24.9210 | 14.6933 | 6.8007 | 13.7246 |
WLM | 85.2953 | 57.9793 | 85.4008 | 70.5718 |
WDM | 132.4067 | 170.3970 | 114.0772 | 141.9341 |
C | 0.1470 | 0.2667 | 0.2903 | 0.0279 |
FC | 15.4278 | 31.0629 | 44.8892 | 0.5030 |
KKG | 0.9460 | 0.7165 | 0.9171 | 0.2043 |
Kr | 9.6236 | 7.3311 | 3.6506 | 2.8260 |
NSE | 0.6336 | 0.6445 | 0.6080 | 0.6278 |
根据上述优化算法获得的模型参数,应用到待优化水文模型中进行黑河流域径流的模拟。图10显示了黑河流域扎马史克水文站在2011年验证期的日流量计算值和观察值的图形化比较,单位为立方米每秒,其中图10(a)、图10(b)、图10(c)、图10(d)分别显示了基于串行蜂群算法、并行蜂群算法、遗传算法以及粒子群算法获得的最优模型参数的预测结果。
由图10的径流模拟结果可知,经过遗传算法优化的待优化水文模型存在较大的模拟误差,无法模拟和预测径流过程。而粒子群算法、串行蜂群算法,尤其是并行蜂群算法,日径流模拟值与观测值的总体趋势几乎完全一致,与实际流量相匹配,表现出了非常好的模拟效果。在模型验证期阶段,并行蜂群算法获得了最优的结果,不但参数组偏离径流预报区间的程度最小,并且在稳定度比另外两种算法小一个数量级。
因此,通过增加种群数量,增强其多样性,减弱算法随机性,提高了求解精度。相比于串行计算,通过4核并行计算,并行蜂群算法在不消耗大量***资源的前提下,有效的提高计算效率和求解质量。因此,由并行蜂群算法进行参数优化后的待优化水文模型能够模拟黑河流域扎马什克水文站以上流域的径流动态变化规律,计算结果满足要求。并行蜂群算法完全达到了预报的精度标准,可以用于实际的流域水文预报应用中。
综上所述,本发明实施例提供一种基于并行蜂群算法的水文模型参数优化方法及装置,在主线程上,设置并行蜂群算法的种群规模,并将种群划分为多个子种群。在子线程上,利用多个子种群按照串行蜂群算法流程分别对待优化水文模型进行参数优化,得到各个子种群的个体最优值,并将其返回主线程,得到全局最优值以及与全局最优值对应的各个参数的全局最优解。根据得到的各个参数的全局最优解对待优化水文模型的参数进行校正。本发明提供的方法及装置,基于并行运行机制,提高了参数优化的效率及精度,减少了时间耗费。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (10)
1.一种基于并行蜂群算法的水文模型参数优化方法,应用于水文模型参数优化设备,其特征在于,所述方法包括:
获取待优化水文模型的参数数据;
读取待模拟流域的流域水文的实测基础数据;
在主线程上,设置并行蜂群算法的种群规模,并将种群划分为多个子种群;
在子线程上,利用所述多个子种群按照串行蜂群算法流程分别对所述待优化水文模型进行参数优化,得到各个所述子种群的个体最优值,并将所述个体最优值返回主线程,得到所述种群的全局最优值以及与所述全局最优值对应的各个参数的全局最优解;
根据得到的所述各个参数的全局最优解对所述待优化水文模型的参数进行校正。
2.根据权利要求1所述的方法,其特征在于,所述利用所述多个子种群按照串行蜂群算法流程分别对所述待优化水文模型进行参数优化,得到各个所述子种群的个体最优值,并将所述个体最优值返回主线程,得到所述种群的全局最优值以及与所述全局最优值对应的各个参数的全局最优解的步骤,包括:
设置各个所述子种群的初始参数;
建立目标函数以及并行性能评价指标,所述目标函数是判断所述水文模型参数优劣的指标,所述并行性能评价指标是判断所述并行蜂群算法的优劣的标准;
利用所述多个子种群对所述待优化水文模型的参数进行优化,查找到各个所述子种群的个体最优值,并将所述个体最优值返回至所述主线程,所述个体最优值的个数与所述子种群的个数相等;
在主线程上,将多个所述个体最优值进行比较,得到最大的所述个体最优值,将所述最大的所述个体最优值判定为所述种群的全局最优值;
根据所述全局最优值得到与所述全局最优值相对应的所述待优化水文模型的各个参数的全局最优解。
3.根据权利要求2所述的方法,其特征在于,所述利用所述多个子种群对所述待优化水文模型的参数进行优化,查找到各个所述子种群的个体最优值的步骤,包括:
设定各个所述参数的初始值以及各个所述参数的取值范围;
根据所述目标函数、所述并行性能评价指标、所述初始值及所述取值范围利用各个所述子种群按照串行蜂群算法流程进行迭代计算;
在迭代计算过程中,当进入侦查蜂阶段时,判断得到的每个解的停滞次数是否达到预设的放弃阈值,若达到,则通过观察蜂机制产生新的种群个体,并丢弃停滞次数已达到所述放弃阈值的解;
记录下各个所述子种群分别获取的个体最优值,并判断是否达到预设的迭代停止条件,若达到,则停止迭代计算并输出各个所述子种群的个体最优值。
4.根据权利要求2所述的方法,其特征在于,建立的所述并行蜂群算法的所述目标函数如下:
其中,N为样本数量,Qsim,t为t时刻径流的模拟数据值,Qobs,t为t时刻径流的实测数据值,为实测数据的平均值;所述并行蜂群算法通过迭代优化所述目标函数,最终得到在预设迭代范围内的最大的所述目标函数值,实现对所述水文模型的参数优化。
5.根据权利要求2所述的方法,其特征在于,建立的所述并行蜂群算法的所述并行性能评价指标包括加速比Sp和并行效率Ep;
所述加速比Sp的表达式如下:
Sp=Ts/Tp
其中,Ts为最快的串行蜂群算法在最坏的情况下的运行时间,Tp为并行蜂群算法在最坏的情况下解决与串行蜂群算法相同问题时的运行时间;
所述并行效率Ep的表达式如下:
Ep=Sp/p
其中,p为所述并行蜂群算法中所述子种群的数目。
6.一种基于并行蜂群算法的水文模型参数优化装置,应用于水文模型参数优化设备,其特征在于,所述装置包括:
获取模块,用于获取待优化水文模型的参数数据;
读取模块,用于读取待模拟流域的流域水文的实测基础数据;
种群设置模块,用于在主线程上,设置并行蜂群算法的种群规模,并将种群划分为多个子种群;
参数优化模块,用于在子线程上,利用所述多个子种群按照串行蜂群算法流程分别对所述待优化水文模型进行参数优化,得到各个所述子种群的个体最优值,并将所述个体最优值返回主线程,得到所述种群的全局最优值以及与所述全局最优值对应的各个参数的全局最优解;
校正模块,用于根据得到的所述各个参数的全局最优解对所述待优化水文模型的参数进行校正。
7.根据权利要求6所述的装置,其特征在于,所述参数优化模块包括初始参数设置子模块、指标建立子模块、个体最优值查找子模块、全局最优值获取子模块、全局最优解获取子模块;
所述初始参数设置子模块,用于设置各个所述子种群的初始参数;
所述指标建立子模块,用于建立目标函数以及并行性能评价指标,所述目标函数是判断所述水文模型参数优劣的指标,所述并行性能评价指标是判断所述并行蜂群算法的优劣的标准;
所述个体最优值查找子模块,用于利用所述多个子种群对所述待优化水文模型的参数进行优化,查找到各个所述子种群的个体最优值,并将所述个体最优值返回至所述主线程,所述个体最优值的个数与所述子种群的个数相等;
所述全局最优值获取子模块,用于在主线程上,将多个所述个体最优值进行比较,得到最大的所述个体最优值,将所述最大的所述个体最优值判定为所述种群的全局最优值;
所述全局最优解获取子模块,用于根据所述全局最优值得到与所述全局最优值相对应的所述待优化水文模型的各个参数的全局最优解。
8.根据权利要求7所述的装置,其特征在于,所述个体最优值查找子模块包括参数设定单元、计算单元、第一判断单元及第二判断单元;
所述参数设定单元,用于设定各个所述参数的初始值以及各个所述参数的取值范围;
所述计算单元,用于根据所述目标函数、所述并行性能评价指标、所述初始值及所述取值范围利用各个所述子种群按照串行蜂群算法流程进行迭代计算;
所述第一判断单元,用于在迭代计算过程中,当进入侦查蜂阶段时,判断得到的每个解的停滞次数是否达到预设的放弃阈值,若达到,则通过观察蜂机制产生新的种群个体,并丢弃停滞次数已达到所述放弃阈值的解;
所述第二判断单元,用于记录下各个所述子种群分别获取的个体最优值,并判断是否达到预设的迭代停止条件,若达到,则停止迭代计算并输出各个所述子种群的个体最优值。
9.根据权利要求7所述的装置,其特征在于,建立的所述并行蜂群算法的所述目标函数如下:
其中,N为样本数量,Qsim,t为t时刻径流的模拟数据值,Qobs,t为t时刻径流的实测数据值,为实测数据的平均值;所述并行蜂群算法通过迭代优化所述目标函数,最终得到在预设迭代范围内的最大的所述目标函数值,实现对所述水文模型的参数优化。
10.根据权利要求7所述的装置,其特征在于,建立的所述并行蜂群算法的所述并行性能评价指标包括加速比Sp和并行效率Ep;
所述加速比Sp的表达式如下:
Sp=Ts/Tp
其中,Ts为最快的串行蜂群算法在最坏的情况下的运行时间,Tp为并行蜂群算法在最坏的情况下解决与串行蜂群算法相同问题时的运行时间;
所述并行效率Ep的表达式如下:
Ep=Sp/p
其中,p为所述并行蜂群算法中所述子种群的数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611177273.9A CN106599585B (zh) | 2016-12-19 | 2016-12-19 | 基于并行蜂群算法的水文模型参数优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611177273.9A CN106599585B (zh) | 2016-12-19 | 2016-12-19 | 基于并行蜂群算法的水文模型参数优化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599585A CN106599585A (zh) | 2017-04-26 |
CN106599585B true CN106599585B (zh) | 2018-09-28 |
Family
ID=58601714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611177273.9A Expired - Fee Related CN106599585B (zh) | 2016-12-19 | 2016-12-19 | 基于并行蜂群算法的水文模型参数优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599585B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107169204B (zh) * | 2017-05-17 | 2019-11-26 | 武汉大学 | 不同时间尺度上水文模型参数转换的计算方法 |
CN109636030B (zh) * | 2018-12-10 | 2023-05-26 | 浙江大学 | 一种基于分形理论的水文模型多目标参数优化方法 |
CN110516795B (zh) * | 2019-08-28 | 2022-05-10 | 北京达佳互联信息技术有限公司 | 一种为模型变量分配处理器的方法、装置及电子设备 |
CN113110306B (zh) * | 2020-01-10 | 2022-08-02 | 台达电子工业股份有限公司 | 机台及其操作方法 |
CN112163366B (zh) * | 2020-08-14 | 2024-06-07 | 贵州东方世纪科技股份有限公司 | 一种无资料地区水文模型参数自动率定方法 |
CN113657659A (zh) * | 2021-08-12 | 2021-11-16 | 水利部信息中心 | 一种模块化洪水预报模型的参数全局寻优方法 |
CN114048027B (zh) * | 2021-10-21 | 2022-05-13 | 中国科学技术大学 | 一种应用于超算集群调度的作业运行参数优化方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982008A (zh) * | 2012-11-01 | 2013-03-20 | 山东大学 | 基于计算机机群的并行人工蜂群算法求解复杂函数最值的方法 |
-
2016
- 2016-12-19 CN CN201611177273.9A patent/CN106599585B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982008A (zh) * | 2012-11-01 | 2013-03-20 | 山东大学 | 基于计算机机群的并行人工蜂群算法求解复杂函数最值的方法 |
Non-Patent Citations (2)
Title |
---|
Parallel Approaches for the Artificial Bee Colony Algorithm;Rafael Stubs Parpinelli et al.;《Handbook of Swarm Intelligence》;20110831;第1-18页 * |
基于人工蜂群算法的水位流量关系最优定线研究;王琦 等;《广西水利水电》;20121231;第30-33页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106599585A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599585B (zh) | 基于并行蜂群算法的水文模型参数优化方法及装置 | |
Kou et al. | Pairwise comparison matrix in multiple criteria decision making | |
CN103810101B (zh) | 一种软件缺陷预测方法和软件缺陷预测*** | |
CN106530010B (zh) | 融合时间因素的协同过滤方法和装置 | |
US20120136909A1 (en) | Cloud anomaly detection using normalization, binning and entropy determination | |
CN105354595A (zh) | 一种鲁棒视觉图像分类方法及*** | |
Li et al. | Research and application of random forest model in mining automobile insurance fraud | |
Huo et al. | An improved multi-cores parallel artificial Bee colony optimization algorithm for parameters calibration of hydrological model | |
CN107908536A (zh) | Cpu‑gpu异构环境中对gpu应用的性能评估方法及*** | |
CN103677960A (zh) | 一种能耗约束的虚拟机博弈重放置方法 | |
Idrus | Distance Analysis Measuring for Clustering using K-Means and Davies Bouldin Index Algorithm | |
Dlamini et al. | Meta-analytical comparison of energy consumed by two sorting algorithms | |
Kang et al. | Novel hybrid machine learning framework with decomposition–transformation and identification of key modes for estimating reference evapotranspiration | |
CN110276480A (zh) | 一种用于建筑能耗管理的分析预测方法及*** | |
CN104111887A (zh) | 基于Logistic模型的软件故障预测***及方法 | |
Xu et al. | China's marine economic efficiency: A meta-analysis | |
CN112926794A (zh) | 银行贷款信息预测方法及装置 | |
CN116154768B (zh) | 采用点预测误差经验分布逆变换的功率区间预测方法 | |
CN112906762A (zh) | 一种水资源***临界状态的定义及辨识方法和*** | |
CN106327009A (zh) | 空间负荷预测中确定元胞负荷最大值的主成分分析法 | |
CN108665090A (zh) | 基于主成分分析与Verhulst模型的城市电网饱和负荷预测方法 | |
CN114140158A (zh) | 基于组合预测的配电网投资需求确定方法、装置、设备及存储介质 | |
CN114037144A (zh) | 一种电网工程运维成本预测方法及*** | |
CN112801415A (zh) | 基于马尔科夫链分布模型的超短期负荷预测方法及*** | |
CN106547723A (zh) | 一种预测稀疏矩阵运算能耗的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180928 Termination date: 20201219 |