SCE-UA算法代码

所属分类:其他
开发工具:Fortran
文件大小:452KB
下载次数:18
上传日期:2018-01-08 20:30:35
上 传 者石头001
说明:  一种高效全局优化算法,广泛用于水文模型参数优选
(A high efficient global optimization algorithm widely used for parameter optimization of hydrological model)

文件列表:
Sceua2_2\CCE.GIF (230528, 2001-09-24)
Sceua2_2\CONCEPT.SCE (7419, 1992-05-07)
Sceua2_2\FUNCTN01.FOR (1695, 1994-05-31)
Sceua2_2\FUNCTN02.FOR (1352, 1994-05-31)
Sceua2_2\FUNCTN03.FOR (1554, 1994-05-31)
Sceua2_2\FUNCTN04.FOR (1470, 1994-05-31)
Sceua2_2\FUNCTN05.FOR (1560, 1994-05-31)
Sceua2_2\FUNCTN06.FOR (1929, 1994-05-31)
Sceua2_2\FUNCTN07.FOR (2509, 1994-05-31)
Sceua2_2\FUNCTN08.FOR (7714, 2001-10-31)
Sceua2_2\FUNCTN09.FOR (1673, 1994-05-20)
Sceua2_2\FUNCTN10.FOR (1784, 1994-05-19)
Sceua2_2\FUNCTN11.FOR (1972, 1994-05-31)
Sceua2_2\FUNCTN12.FOR (1886, 1994-05-18)
Sceua2_2\SAMPLE1.IN (128, 1999-11-30)
Sceua2_2\SAMPLE1.OUT (3052, 1999-11-30)
Sceua2_2\SAMPLE2.IN (256, 1999-11-30)
Sceua2_2\SAMPLE2.OUT (5950, 1999-11-30)
Sceua2_2\SCE.GIF (183990, 2001-09-24)
Sceua2_2\SCEIN.DAT (126, 1999-11-30)
Sceua2_2\SCEIN.FOR (6727, 1994-03-07)
Sceua2_2\SCEMAIN.DSP (3942, 2003-07-25)
Sceua2_2\SCEMAIN.DSW (539, 2003-07-25)
Sceua2_2\SCEMAIN.FOR (817, 1994-05-20)
Sceua2_2\SCEMAIN.ncb (41984, 2005-01-09)
Sceua2_2\SCEMAIN.OPT (49664, 2014-07-27)
Sceua2_2\SCEMAIN.PLG (3419, 2004-04-11)
Sceua2_2\sceout.dat (12724, 2005-01-09)
Sceua2_2\SCEUA.FOR (25247, 1995-03-09)
Sceua2_2\SXPINP.DAT (5702, 1992-05-07)
Sceua2_2\SXPINP.FOR (3135, 1994-03-04)
Sceua2_2\SXPMAIN.FOR (887, 1994-05-20)
Sceua2_2\Thumbs.db (6144, 2011-02-08)
Sceua2_2 (0, 2006-10-24)

DISTRIBUTION DISKETTE FOR THE SHUFFLED COMPLEX EVOLUTION (SCE-UA) METHOD Version 2.2 Qingyun Duan - 1 Hoshin V. Gupta - 2 Soroosh Sorooshian - 2 1 - NWS/NOAA, 1325 East-West Hihgway, Silver Spring, MD 20910 Ph: (301) 713-1018, ext. 113, email: Qingyun.Duan@noaa.gov 2 - Dept of HWR, University of Arizona, Tucson, AZ 85721 Ph: (520) 621-1661, email: hoshin@hwr.arizona.edu May, 1994 Table of Contents: ================== I. Statement and Disclaimer by the Authors II. Introduction III. Files Contained in This Diskette a. Description Files b. FORTRAN Files c. Input Data Files d. Sample Output Files IV. How to Use This Diskette a. How to Use SCE-UA Method on the Standard Test Problems b. How to Use SCE-UA Method on the SIXPAR Model Problem c. How to Use SCE-UA Method on Your Own Problem V. How to Prepare Input Data File SCEIN.DAT VI. How to Prepare Input Data File SXPINP.DAT VII. More Information and Questions I. Statement and Disclaimer by the Authors: ============================================= The users of the programs contained in this diskette can copy and use these programs freely, without seeking authors' permission. The authors request all users make appropriate references to the use of these programs. The authors disclaim any responsibility resulting from use of these programs. II. Introduction: =================== The SCE-UA method is a general purpose global optimization program. It was originally developed by Dr. Qingyun Duan as part of his doctoral dissertation work at the Department of Hydrology and Water Resources, University of Arizona, Tucson, AZ 85721, USA. The dissertation is entitled "A Global Optimization Strategy for Efficient and Effective Calibration of Hydrologic Models". The program has since been modified to make it easier for use on problems of users' interests. The algorithm has been described in detail in an article entitled "Effective and Efficient Global Optimization for Conceptual Rainfall-Runoff Models", Water Resources Research, Vol 28(4), pp.1015-1031, 1992; and in an article entitled "A Shuffled Complex Evolution Approach for Effective and Efficient Global Minimization" by Q. Duan, V.K. Gupta and S. Sorooshian, Journal of Optimization Theory and its Applications, Vol 76(3), pp 501-521, 1993. A paper entitled "Optimal Use of the SCE-UA Global Optimization Method for Calibrating Watershed Models", by Q. Duan, S. Sorooshian, & V.K. Gupta, Journal of Hydrology, Vol.158, 265-284, 1994, discussed how to use the SCE-UA Method in an efficient and effective manner. The SCE-UA algorithm is also briefly described in the accompanying ASCii file 'CONCEPT.SCE' contained in this diskette (Figures referred in this file are attached separately). III. Files Contained in This Diskette: ======================================= This diskette contains the FORTRAN codes of the main programs, the input subroutines, the subroutine implementing the Shuffled Complex Evolution (SCE-UA) global optimization algorithm, and some standard test functions from the optimization literature. The SIXPAR model calibration problem is also included as a test problem. The SIXPAR model is a simplified example of a hydrologic rainfall-runoff model. More complex versions of such a model have been used operationally in the United States and in many other countries for hydrologic forecasting purposes. The problems presented here are the ones tested in the above mentioned papers. This diskette also contains two sample input data files and two sample output files. Specifically, this diskette should contain the following files: a. Description Files: ----------------------- CONCEPT.SCE - ASCii file briefly describing the SCE-UA algorithm README - This file b. FORTRAN Files: ------------------- FUNCTN1.FOR - Subroutine for computing function value for Goldstein- Price function and for checking constraints FUNCTN2.FOR - Subroutine for computing function value for Rosenbrock function and for checking constraints FUNCTN3.FOR - Subroutine for computing function value for Six-Hump Camel-Back function and for checking constraints FUNCTN4.FOR - Subroutine for computing function value for Rastrigin function and for checking constraints FUNCTN5.FOR - Subroutine for computing function value for Griewank function and for checking constraints FUNCTN6.FOR - Subroutine for computing function value for Shekel function and for checking constraints FUNCTN7.FOR - Subroutine for computing function value for Hartman function and for checking constraints FUNCTN8.FOR - Subroutine for computing function value for the SIXPAR model and for checking constraints FUNCTN9.FOR - Subroutine for computing function value for the 3-variable Rosenbrock function and for checking constraints FUNCTN10.FOR - Subroutine for computing function value for Rosen-Suzuki function and for checking constraints FUNCTN11.FOR - Subroutine for computing function value for Gould function and for checking constraints FUNCTN12.FOR - Subroutine for computing function value for Hesse function and for checking constraints SCEIN.FOR - Subroutine for reading the input data needed by subroutine SCEUA.FOR SCEMAIN.FOR - Main program calling subroutines SCEIN and SCEUA SCEUA.FOR - Main subroutine implementing the SCE-UA algorithm SXPINP.FOR - Subroutine for reading the input data needed to run SIXPAR model SXPMAIN.FOR - Main program to run SCE-UA method on the SIXPAR model c. Input Data Files: ---------------------- SAMPLE1.IN - Input data file for the SCE-UA method for Goldstein-Price that generates output file SAMPLE1.OUT SAMPLE2.IN - Input data file for the SCE-UA method for the SIXPAR model that generates output file SAMPLE2.OUT SCEIN.DAT - Input data file for the SCE-UA method SXPINP.DAT - Input data file for the SIXPAR model d. Sample Output Files: ------------------------- SAMPLE1.OUT - Sample output file for the Goldstein-Price function SAMPLE2.OUT - Sample output file for the SIXPAR model problem IV. How to Use This Diskette: ============================= a. How to Use SCE-UA Method on the Standard Test Problems: ------------------------------------------------------------ For illustration purpose, the Goldstein-Price function is used to show you how to use this diskette. The procedure is outlined as follows: i) Compile and link FORTRAN programs SCEMAIN.FOR, SCEIN.FOR, SCEUA.FOR, and FUNCTN1.FOR. You should get an executable file named SCEMAIN.EXE (or by other name given by you). ii) Prepare input data file SCEIN.DAT (Section V explains how to prepare this input data file). iii) Run the executable file SCEMAIN.EXE you just created. When the run is completed, a file named as SCEOUT.DAT should be created. If input data file SCEIN.DAT you used has the same content as file SAMPLE1.IN, SCEOUT.DAT should be the same as SAMPLE1.OUT. b. How to Use SCE-UA Method on the SIXPAR Model Problem: ---------------------------------------------------------- The procedure to use SCE-UA method on the SIXPAR model calibration problem is outlined as follows: i) Compile and link FORTRAN programs SXPMAIN.FOR, SXPINP.FOR, SCEIN.FOR, SCEUA.FOR, and FUNCTN8.FOR. You should get an executable file named SXPMAIN.EXE (or by other name given by you). ii) Prepare input data file SCEIN.DAT. iii) Prepare input data file SXPINP.DAT (Section VI explains how to prepare the input data file SXPINP.DAT). iv) Run the executable file SXPMAIN.EXE you just created. When the run is completed, a file named as SCEOUT.DAT should be created. If input data file SCEIN.DAT you used has the same content as file SAMPLE2.IN, SCEOUT.DAT should be the same as SAMPLE2.OUT. c. How to Use SCE-UA Method on Your Own Problem: -------------------------------------------------- To use the SCE-UA method on your problem, you have to write one or two subroutines of your own, depending on the nature of your problem. If you have a pure mathematical function optimization problem, you will have to write a subroutine that has the same structure as in files FUNCTN1.FOR through FUNCTN7.FOR. If you face a model calibration problem that is similar to the SIXPAR model, then you have to write a subroutine that has the same structure as FUNCTN8.FOR which computes the appropriate objective function. You also have to write a separate input subroutine similar to SXPINP.FOR to read the input data information specific to your model. Once you complete your own subroutines, follow the appropriate procedures as outlined above to run SCE-UA method. V. Input Summary for SCEIN.DAT: ================================ Card Format Cols Contents ---- ------ ---- -------- 1 i5 1-5 MAXN Maximum number of trials allowed before optimization is terminated. The purpose of MAXN is to stop an optimization search before too much computer time is expended. MAXN should be set large enough so that optimization is generally completed before MAXN trials are performed. Recommended value is 10,000 (increase or decrease as necessary). i5 6-10 KSTOP Number of shuffling loops in which the criterion must improve by the specified percentage or else optimization will be terminated. Recommended value: 5. f5.2 11-15 PCENTO Percentage by which the criterion value must change in the specified number of shuffling loops or else optimization is terminated (Use decimal equivalent: Percentage/100). Recommended value: 0.01. i5 16-20 NGS Number of complexes used for optimization search. Minimum value is 1. Recommended value is between 2 and 20 depending on the number of parameters to be optimized and on the degree of difficulty of the problem. i5 21-25 ISEED Random seed used in optimization search. Enter any integer number. Default value (=1969) is assumed if this field is left blank. Recommended value: any large integer. i5 26-30 IDEFLT Flag for setting the control variables of the SCE-UA algorithm. Enter '0' or leave the field blank for default setting. Enter '1' for user specified setting. If option '1' is chosen, type the following input card. Else, leave the next card blank. 2 i5 1-5 NPG Number of points in each complex. NPG should be greater than or equal to 2. The default value is equal to (2 * number of optimized parameters + 1). i5 6-10 NPS Number of points in each sub-complex. NPS should be greater than or equal to 2 and less than NPG. The default value is equal to (number of optimized parameters + 1). i5 11-15 NSPL Number of evolution steps taken by each complex before next shuffling. Default value is equal to NPG. i5 16-20 MINGS Minimum number of complexes required for optimization search, if the number of complexes is allowed to reduce as the optimization search proceeds. The default value is equal to NGS. i5 21-25 INIFLG Flag on whether to include the initial point in the starting population (see Card 3, Field 1 below). Enter '1' if the initial point is to be included. The default value is equal to '0'. i5 26-30 IPRINT Print-out control flag. Enter '0' to print out the best estimate of the global optimum at the end of each shuffling loop. Enter '1' to print out every point in the entire sample population at the end of each shuffling loop. The default value is equal to 0. 3* f10.3 1-10 Initial estimate of the parameter to be optimized (used if INIFLG = 1 in Card 2 above). f10.3 11-20 Lower bound of the parameter to be optimized. f10.3 21-30 Upper bound of the parameter to be optimized. * Repeat Card 3 as many times as necessary until all parameters to be optimized are defined. For all test problems, the lower and the upper bounds are given at the beginning of the function subroutines, along with the location of the global optima. VI. Input Summary for SXPINP.DAT: =================================== Card Format Cols Contents ---- ------ ---- -------- 1 a80 1-80 Input heading (It can be left blank). 2 i5 1-5 NPAR Total number of parameters in the SIXPAR model (= 6). i5 6-10 NDATA Number of data points used for calibration. i5 11-15 NS Number of state variables in the SIXPAR model (= 2). i5 16-20 IOBJ Flag on which objective function to be used. Enter '1' to choose Simple Least Square (SLS). Enter '0' to choose Heteroscedastic Maximum Likelihood Estimator (HMLE). i5 21-25 IDATA Flag on what data set to be used. Enter '0' to use the existing hydrologic time series data given in this input file. Enter '1' to generate hydrologic time series using "true" parameter set and precipitation time series data given in this input file. 3 a80 1-80 Input heading 4 f10.4 1-10 UM "True"* parameter value for upper zone capacity. f10.4 11-20 UK "True" parameter value for upper zone depletion rate. f10.4 21-30 BM "True" parameter value for lower zone capacity. f10.4 31-40 BK "True" parameter value for lower zone depletion rate. f10.4 41-50 A "True" parameter value for the reparameterized percolation equation f10.4 51-60 X "True" parameter value for the exponent in the percolation equation. * "True" parameter values are used for generating synthetic streamflow data (if IDATA = 1) and are used for defining values for parameters that are not optimized (see Card 6 below). 5 a80 1-80 Input heading 6 i5 1-5 Index* of the first optimized parameter. i5 6-10 Index of the second optimized parameter. i5 11-15 Index of the third optimized parameter. i5 16-20 Index of the fourth optimized parameter. i5 21-25 Index of the fifth optimized parameter. i5 26-30 Index of the sixth optimized parameter. * Each of the 6 parameters in the SIXPAR model is assigned to a unique index, e.g., the index for UM is equal to 1, UK=2, BM=3, BK=4, A=5, and X=6. These indexes allow users to optimize on a subset of model parameters. For example, if we decide to optimize two parameters BM and BK, enter '3' in Field 1 of Card 6; enter '4' in Field 2; leave the rest of the fields blank. Properly prepare the input file SCEIN.DAT. The optimization search defined as such will try to search the optimal values for BM and BK while other parameters take on values specified in Card 4 of this input file. 7 a80 1-80 Input heading 8 f10.4 1-10 Initial upper zone content. f10.4 11-20 Initial lower zone content. 9 a80 1-80 Input heading 10 i5 1-5 Data point number f10.4 6-15 Precipitation input value. f10.4 16-25 Observed streamflow value*. * Observed streamflow values are used only when IDATA is equal to '1' (see Field 5 of Card 1). Repeat Card 10 as many times as necessary until all data points are defined. VII. More Information and Questions: ====================================== For more information and questions regarding the SCE-UA method and the programs contained in this diskette, please contact the authors through the address, telephone, or email listed on the front page.

近期下载者

相关文件


收藏者