3D CRS with global optimization
Author: Yujiang Xie
Download: 3D CRS with global optimization
The software introduced three optimization algorithms to simultaneously search the 3D ZO CRS attributes, which includes the particle swarm optimization (PSO), genetic algorithm (GA) and the Powell conjugate direction (PCD) algorithm as well. The PSO used in this software is contributed by Shi and Eberhart (1998), and the codes are developed by Lucas. The GA codes are obtained from Google, and being incorporated into 3D ZO CRS by Lucas. The PCD codes are taken from the Numerical Recipes in C. Cambridge, and modified by Lucas for the 3D ZO CRS attribute search. Based on our tests, the PCD is performed well for non-smooth objective function, but might be failed in the objective semblance function which is data dependent and also might have much local maxima. The challenge of the PCD method incorporated into the 3D ZO CRS attribute search is to calculate the step length in each conjugate direction, further 3D work can focus on this. In 2D CRS case, the Coarse Grid Search (CGS) is proposed by Philipp Witte to find a close-by, relatively large maximum before the Powell method, but the CGS method is impossible to extend to 3D ZO CRS situation with eight-dimensional space.
The software has to change the initialization and constrained search space for your data set. In case you use the PSO method, the file named lucassearch8.cpp, with line 279-295 should alter the initial points with your preference. In this case, I use the midpoint in the search space to initialize for each ZO sample, but you can choose randomly initial values or the same value for all ZO samples. If you choose the GA as your algorithm, in the file named lucassearch81.cpp, the initial condition in the function initialize (int&seed), should change, such as from line 421 to 439, you have to reset your search space here.The PCD codes are more complicated, in principle, it can be used for global search, but the software designed here only consider a local optimization with guiding values from initial attributes. We have not found a good way to perform global search with the PCD method in the 3D CRS case. The usage of the software is easy as the old 3D ZO CRS software, just change the mode with different methods, more details see the source files.
- Xie, Y. and Gajewski, D. 3D ZO CRS attribute search using particle swarm optimization, WIT meeting 2016.
- Xie, Y. and Gajewski, D. Automatic estimation of the 3D CRS attributes by a metaheuristic-based optimization, EAGE,2016.
- Numerical Recipes. The Art of Scientific Computing, 3rd Edition, 2007, ISBN 0-521-88068-8. (C++ code).
- Shi, Y. and Eberhart, R. C. (1998). "A modified particle swarm optimizer". Proceedings of IEEE International Conference on Evolutionary Computation. pp. 69-73.
- Holland, J. (1975). Adaption In Natural and Artificial Systems. University of Michigan Press, Ann Arbor.
- Powell, M. J. D. (1964). "An efficient method for finding the minimum of a function of several variables without calculating derivatives". Computer Journal 7 (2): 155-162.
- Witte, P. (2014). Optimization of the Semblance in Seismic Processing, Master's Thesis, University of Hamburg
3D CRS with pragmatic approach
Author: Nils Alexander Müller
Download: 3D CRS with pragmatic approach
2D CRS with global optimization
Author: Jan Walda
Download: 2D CRS with global optimization
CRS based software, that handles conflicting dips by stacking over angle ranges defined by the user. The user can choose between three global optimization methods, Differential Evolution (DE), Particle Swarm Optimization (PSO) and Genetic Algorithm (GA). Additionally the best found solution is furthermore improved locally by a simplex method introduced by Nelder and Mead in 1965. The Code is based on the CRS implementation by Juergen Mann and modified by Jan Walda. The genetic algorithm implementation is based on initial work by Benjamin Schwarz. A guide makefile can be found in the documention.
The code is parallelized. It requires a script to be run after optimizartion named "cat_search.sh" or in case of supergathers "cat_supergather.sh". The script requires 3 parameters, first is the basename (same as in Makefile) the second is the number of conflcting dips and the third one is the first index which is usually 0. Results after the script have the extension "*.su". Sections without "_" are taken from the operator with the highest coherence, so they are similar to the sections you might have used from the original code by Juergen Mann. The sections with "_" are the individual sections for each dip range specified by the "angleboundaries" option when executing the program.
- Nelder, J. A., & Mead, R. (1965). A simplex method for function minimization. The computer journal, 7(4), 308-313.
- Whitley, Darrell. "A genetic algorithm tutorial." Statistics and computing 4.2 (1994): 65-85.
- Das, Swagatam, and Ponnuthurai Nagaratnam Suganthan. "Differential evolution: a survey of the state-of-the-art." Evolutionary Computation, IEEE Transactions on 15.1 (2011): 4-31.
- Kennedy, James. "Particle swarm optimization." Encyclopedia of Machine Learning. Springer US, 2010. 760-766.
- Jan Walda* and Dirk Gajewski (2015) Common-reflection-surface stack improvement by differential evolution and conflicting dip processing. SEG Technical Program Expanded Abstracts 2015: pp. 3842-3847.doi: 10.1190/segam2015-5910957.