diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index b3b33a266..4ebb626f0 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -14,11 +14,11 @@ jobs: - uses: actions/checkout@v6 - uses: julia-actions/setup-julia@latest with: - version: "1" + version: "1.12" - name: Add the HolyLabRegistry run: julia --project -e 'using Pkg; Pkg.Registry.add(); Pkg.Registry.add(RegistrySpec(url = "https://github.com/HolyLab/HolyLabRegistry.git"))' - name: Install dependencies - run: julia --project=docs/ -e 'using Pkg; Pkg.develop(vcat(PackageSpec(path = pwd()), [PackageSpec(path = joinpath("lib", dir)) for dir in readdir("lib") if (dir !== "OptimizationMultistartOptimization")])); Pkg.instantiate()' + run: julia --project=docs/ -e 'using Pkg; Pkg.develop([PackageSpec(path = joinpath("lib", dir)) for dir in readdir("lib") if !(dir in ("OptimizationMultistartOptimization", "OptimizationEvolutionary"))]); Pkg.instantiate()' - name: Build and deploy env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token @@ -26,7 +26,7 @@ jobs: run: julia --color=yes --project=docs/ --code-coverage=user docs/make.jl - uses: julia-actions/julia-processcoverage@v1 with: - directories: src,lib/OptimizationBBO/src,lib/OptimizationCMAEvolutionStrategy/src,lib/OptimizationEvolutionary/src,lib/OptimizationGCMAES/src,lib/OptimizationMOI/src,lib/OptimizationMetaheuristics/src,lib/OptimizationMultistartOptimization/src,lib/OptimizationNLopt/src,lib/OptimizationNOMAD/src,lib/OptimizationOptimJL/src,lib/OptimizationOptimisers/src,lib/OptimizationPolyalgorithms/src,lib/OptimizationQuadDIRECT/src,lib/OptimizationSpeedMapping/src + directories: src,lib/OptimizationBBO/src,lib/OptimizationCMAEvolutionStrategy/src,lib/OptimizationGCMAES/src,lib/OptimizationMOI/src,lib/OptimizationMetaheuristics/src,lib/OptimizationMultistartOptimization/src,lib/OptimizationNLopt/src,lib/OptimizationNOMAD/src,lib/OptimizationOptimJL/src,lib/OptimizationOptimisers/src,lib/OptimizationPolyalgorithms/src,lib/OptimizationQuadDIRECT/src,lib/OptimizationSpeedMapping/src - uses: codecov/codecov-action@v6 with: file: lcov.info diff --git a/docs/Project.toml b/docs/Project.toml index 130eba715..a4a14359e 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -24,7 +24,6 @@ OptimizationAuglag = "2ea93f80-9333-43a1-a68d-1f53b957a421" OptimizationBBO = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b" OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" OptimizationCMAEvolutionStrategy = "bd407f91-200f-4536-9381-e4ba712f53f8" -OptimizationEvolutionary = "cb963754-43f6-435e-8d4b-99009ff27753" OptimizationGCMAES = "6f0a0517-dbc2-4a7a-8a20-99ae7f27e911" OptimizationIpopt = "43fad042-7963-4b32-ab19-e2a4f9a67124" OptimizationLBFGSB = "22f7324a-a79d-40f2-bebe-3af60c77bd15" @@ -58,89 +57,34 @@ Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" -[sources.Optimization] -path = ".." - -[sources.OptimizationAuglag] -path = "../lib/OptimizationAuglag" - -[sources.OptimizationBBO] -path = "../lib/OptimizationBBO" - -[sources.OptimizationBase] -path = "../lib/OptimizationBase" - -[sources.OptimizationCMAEvolutionStrategy] -path = "../lib/OptimizationCMAEvolutionStrategy" - -[sources.OptimizationEvolutionary] -path = "../lib/OptimizationEvolutionary" - -[sources.OptimizationGCMAES] -path = "../lib/OptimizationGCMAES" - -[sources.OptimizationIpopt] -path = "../lib/OptimizationIpopt" - -[sources.OptimizationLBFGSB] -path = "../lib/OptimizationLBFGSB" - -[sources.OptimizationMOI] -path = "../lib/OptimizationMOI" - -[sources.OptimizationMadNLP] -path = "../lib/OptimizationMadNLP" - -[sources.OptimizationManopt] -path = "../lib/OptimizationManopt" - -[sources.OptimizationMetaheuristics] -path = "../lib/OptimizationMetaheuristics" - -[sources.OptimizationMultistartOptimization] -path = "../lib/OptimizationMultistartOptimization" - -[sources.OptimizationNLPModels] -path = "../lib/OptimizationNLPModels" - -[sources.OptimizationNLopt] -path = "../lib/OptimizationNLopt" - -[sources.OptimizationNOMAD] -path = "../lib/OptimizationNOMAD" - -[sources.OptimizationODE] -path = "../lib/OptimizationODE" - -[sources.OptimizationOptimJL] -path = "../lib/OptimizationOptimJL" - -[sources.OptimizationOptimisers] -path = "../lib/OptimizationOptimisers" - -[sources.OptimizationPRIMA] -path = "../lib/OptimizationPRIMA" - -[sources.OptimizationPolyalgorithms] -path = "../lib/OptimizationPolyalgorithms" - -[sources.OptimizationPyCMA] -path = "../lib/OptimizationPyCMA" - -[sources.OptimizationQuadDIRECT] -path = "../lib/OptimizationQuadDIRECT" - -[sources.OptimizationSciPy] -path = "../lib/OptimizationSciPy" - -[sources.OptimizationSophia] -path = "../lib/OptimizationSophia" - -[sources.OptimizationSpeedMapping] -path = "../lib/OptimizationSpeedMapping" - -[sources.SimpleOptimization] -path = "../lib/SimpleOptimization" +[sources] +Optimization = {path = ".."} +OptimizationAuglag = {path = "../lib/OptimizationAuglag"} +OptimizationBBO = {path = "../lib/OptimizationBBO"} +OptimizationBase = {path = "../lib/OptimizationBase"} +OptimizationCMAEvolutionStrategy = {path = "../lib/OptimizationCMAEvolutionStrategy"} +OptimizationGCMAES = {path = "../lib/OptimizationGCMAES"} +OptimizationIpopt = {path = "../lib/OptimizationIpopt"} +OptimizationLBFGSB = {path = "../lib/OptimizationLBFGSB"} +OptimizationMOI = {path = "../lib/OptimizationMOI"} +OptimizationMadNLP = {path = "../lib/OptimizationMadNLP"} +OptimizationManopt = {path = "../lib/OptimizationManopt"} +OptimizationMetaheuristics = {path = "../lib/OptimizationMetaheuristics"} +OptimizationMultistartOptimization = {path = "../lib/OptimizationMultistartOptimization"} +OptimizationNLPModels = {path = "../lib/OptimizationNLPModels"} +OptimizationNLopt = {path = "../lib/OptimizationNLopt"} +OptimizationNOMAD = {path = "../lib/OptimizationNOMAD"} +OptimizationODE = {path = "../lib/OptimizationODE"} +OptimizationOptimJL = {path = "../lib/OptimizationOptimJL"} +OptimizationOptimisers = {path = "../lib/OptimizationOptimisers"} +OptimizationPRIMA = {path = "../lib/OptimizationPRIMA"} +OptimizationPolyalgorithms = {path = "../lib/OptimizationPolyalgorithms"} +OptimizationPyCMA = {path = "../lib/OptimizationPyCMA"} +OptimizationQuadDIRECT = {path = "../lib/OptimizationQuadDIRECT"} +OptimizationSciPy = {path = "../lib/OptimizationSciPy"} +OptimizationSophia = {path = "../lib/OptimizationSophia"} +OptimizationSpeedMapping = {path = "../lib/OptimizationSpeedMapping"} +SimpleOptimization = {path = "../lib/SimpleOptimization"} [compat] ADTypes = "1" @@ -163,11 +107,10 @@ NLPModels = "0.21, 0.22" NLPModelsTest = "0.10" NLopt = "0.6, 1" Optimization = "5.5" -OptimizationAuglag = "1.3" +OptimizationAuglag = "2" OptimizationBBO = "0.4.6" OptimizationBase = "5" OptimizationCMAEvolutionStrategy = "0.3.6" -OptimizationEvolutionary = "0.4.7" OptimizationGCMAES = "0.3.5" OptimizationIpopt = "1.1" OptimizationLBFGSB = "1.4" diff --git a/docs/pages.jl b/docs/pages.jl index b621caae9..87fc254d0 100644 --- a/docs/pages.jl +++ b/docs/pages.jl @@ -28,7 +28,6 @@ pages = [ "Optimizer Packages" => [ "BlackBoxOptim.jl" => "optimization_packages/blackboxoptim.md", "CMAEvolutionStrategy.jl" => "optimization_packages/cmaevolutionstrategy.md", - "Evolutionary.jl" => "optimization_packages/evolutionary.md", "GCMAES.jl" => "optimization_packages/gcmaes.md", "Ipopt.jl" => "optimization_packages/ipopt.md", "LBFGSB.jl" => "optimization_packages/lbfgsb.md", diff --git a/docs/src/examples/rosenbrock.md b/docs/src/examples/rosenbrock.md index 380ba3d93..16b2386cb 100644 --- a/docs/src/examples/rosenbrock.md +++ b/docs/src/examples/rosenbrock.md @@ -124,13 +124,6 @@ prob = SciMLBase.OptimizationProblem(optf, x0, _p, lcons = [-Inf], ucons = [0.25 sol = solve(prob, IPNewton()) # -Inf < cons_circ(sol.u, _p) = 0.25^2 ``` -## Evolutionary.jl Solvers - -```@example rosenbrock -using OptimizationEvolutionary -sol = solve(prob, CMAES(μ = 40, λ = 100), abstol = 1e-15) # -Inf < cons_circ(sol.u, _p) = 0.25^2 -``` - ## IPOPT through OptimizationMOI ```@example rosenbrock diff --git a/docs/src/index.md b/docs/src/index.md index b0714ae6e..3d4f0177d 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -69,14 +69,6 @@ the top level package does not add any extra behavior. - Unconstrained - Box Constraints -
- Evolutionary - - Global Methods - - Zeroth order - - Unconstrained - - Box Constraints - - Non-linear Constraints -
GCMAES - Global Methods diff --git a/docs/src/optimization_packages/evolutionary.md b/docs/src/optimization_packages/evolutionary.md deleted file mode 100644 index 6be2e1621..000000000 --- a/docs/src/optimization_packages/evolutionary.md +++ /dev/null @@ -1,43 +0,0 @@ -# Evolutionary.jl - -[`Evolutionary`](https://github.com/wildart/Evolutionary.jl) is a Julia package implementing various evolutionary and genetic algorithm. - -## Installation: OptimizationEvolutionary.jl - -To use this package, install the OptimizationEvolutionary package: - -```julia -import Pkg; -Pkg.add("OptimizationEvolutionary"); -``` - -## Global Optimizer - -### Without Constraint Equations - -The methods in [`Evolutionary`](https://github.com/wildart/Evolutionary.jl) are performing global optimization on problems without -constraint equations. These methods work both with and without lower and upper constraints set by `lb` and `ub` in the `OptimizationProblem`. - -A `Evolutionary` algorithm is called by one of the following: - - - [`Evolutionary.GA()`](https://wildart.github.io/Evolutionary.jl/stable/ga/): **Genetic Algorithm optimizer** - - - [`Evolutionary.DE()`](https://wildart.github.io/Evolutionary.jl/stable/de/): **Differential Evolution optimizer** - - [`Evolutionary.ES()`](https://wildart.github.io/Evolutionary.jl/stable/es/): **Evolution Strategy algorithm** - - [`Evolutionary.CMAES()`](https://wildart.github.io/Evolutionary.jl/stable/cmaes/): **Covariance Matrix Adaptation Evolution Strategy algorithm** - -Algorithm-specific options are defined as `kwargs`. See the respective documentation for more detail. - -## Example - -The Rosenbrock function can be optimized using the `Evolutionary.CMAES()` as follows: - -```@example Evolutionary -using Optimization, OptimizationEvolutionary -rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2 -x0 = zeros(2) -p = [1.0, 100.0] -f = OptimizationFunction(rosenbrock) -prob = SciMLBase.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0]) -sol = solve(prob, Evolutionary.CMAES(μ = 40, λ = 100)) -```