glbopt

package module
v0.0.0-...-e72bd10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2024 License: GPL-3.0 Imports: 16 Imported by: 8

README

go glbopt

A go package for global optimization

glbopt includes:

Fibonacci optimization used to minimize any 1D continuous function

Shuffled Complex Evolution-University of Arizona (SCE-UA - Duan et. al., 1993)

SurrogateRBF: A radial basis function surrogate model algorithm for computationally expensive nonlinear mixed-integer black-box global optimization problems (after Müller et. al., 2013; and Regis and Shoemaker, 2005)

Dynamically Dimensioned Search: The DDS algorithm (Tolson and Shoemaker, 2007)

Example

func main() {
	start := time.Now()
	uFib, yFib := glbopt.Fibonacci(griewank)
	xFib := mmaths.LinearTransform(-10., 15., uFib) // griewank
	fmt.Println("\ny=", yFib, "\tx=", xFib, "\tu:", uFib)
	fmt.Println(time.Now().Sub(start))
}

func griewank(u []float64) float64 {
	// x(i)~[-500,700], optimum at origin
	// there are errors in Duan etal (1993) and has been corrected here
	// see: Regis Shoemaker 2007 Supplement for A Stochastic Radial Basis Function Method for the Global Optimization of Expensive Functions
	xi := mmaths.LinearTransform(-10., 15., u[0])
	return math.Pow(xi, 2)/4000. - math.Cos(xi) + 1.
}

dependencies:

References

Duan, Q.Y., V.K. Gupta, and S. Sorooshian, 1993. Shuffled Complex Evolution Approach for Effective and Efficient Global Minimization. Journal of Optimization Theory and Applications 76(3) pp.501-521.

Müller, J., C.A. Shoemaker, and R. Piché 2013. SO-MI: A surrogate model algorithm for computationally expensive nonlinear mixed-integer black-box global optimization problems. Computers & Operations Research 40(5): 1383-1400.

Regis, R.G. and C.A. Shoemaker, 2005. Constrained Global Optimization of Expensive BlackBox Functions Using Radial Basis Functions. Journal of Global Optimization 31: 153–171.

Tolson B.A. and C.A. Shoemaker, 2007. Dynamically dimensioned search algorithm for computationally efficient watershed model calibration. Water Resources Research 43(1): 16pp.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DDS

func DDS(nDim, nSmpl int, rng *rand.Rand, fun func(u []float64) float64, minimize bool) ([]float64, float64)

DDS - The Dynamically Dimensioned Search algorithm Tolson B.A. and C.A. Shoemaker, 2007. Dynamically dimensioned search algorithm for computationally efficient watershed model calibration. Water Resources Research 43(1): 16pp.

func Fibonacci

func Fibonacci(fun func(u1 float64) float64) (float64, float64)

Fibonacci optimization used to minimize any 1D continuous function

ref (pg.351): Bazaraa, M.S., H.D. Sherali, and C.M. Shetty, 2006. Nonlinear Programming: Theory and Algorithms, 3rd ed. John Wiley & Sonc, Inc. New Jersey. 853pp.
UncertaintyLength = 0.01 uncertainty length (l) ~ not used here, defaulting to most-refined search
DistinguishabilityConst = 0.01 distinguishability constant (e)
Sample range can be set to anything. Keeping consistent with other glbopt funcations, range hard coded to U[0.,1.]
This is only a 1-parameter optimizer, but need to keep slice variable input to maintain interface compatibility

func SCE

func SCE(nComplx, nDim int, rng *rand.Rand, fun func(u []float64) float64, minimize bool) ([]float64, float64)

SCE (-UA) (Shuffled Complex Evolution, University of Arizona) Duan, Q.Y., V.K. Gupta, and S. Sorooshian, 1993. Shuffled Complex Evolution Approach for Effective and Efficient Global Minimization. Journal of Optimization Theory and Applications 76(3) pp.501-521.

func SCEpar

func SCEpar(nComplx, nsimult, nDim int, rng *rand.Rand, fun func(u []float64) float64, minimize bool) ([][]float64, []float64)

func SurrogateRBF

func SurrogateRBF(nIter, nDim int, rng *rand.Rand, fun func(u []float64, i int) float64) ([]float64, float64)

SurrogateRBF : A radial basis function surrogate model algorithm for computationally expensive nonlinear mixed-integer black-box global optimization problems

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL