Skip to content

Commit

Permalink
Merge pull request #264 from SciML/optimization
Browse files Browse the repository at this point in the history
Rename to Optimization.jl
  • Loading branch information
ChrisRackauckas authored May 31, 2022
2 parents 76943ab + d79e5e9 commit 2e63958
Show file tree
Hide file tree
Showing 107 changed files with 555 additions and 555 deletions.
32 changes: 16 additions & 16 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@ jobs:
matrix:
group:
- Core
- GalacticBBO
- GalacticCMAEvolutionStrategy
- GalacticEvolutionary
- GalacticFlux
- GalacticGCMAES
- GalacticMetaheuristics
- GalacticMOI
- GalacticMultistartOptimization
- GalacticNLopt
#- GalacticNonconvex
- GalacticNOMAD
- GalacticOptimJL
- GalacticOptimisers
- GalacticQuadDIRECT
- GalacticSpeedMapping
- GalacticPolyalgorithms
- OptimizationBBO
- OptimizationCMAEvolutionStrategy
- OptimizationEvolutionary
- OptimizationFlux
- OptimizationGCMAES
- OptimizationMetaheuristics
- OptimizationMOI
- OptimizationMultistartOptimization
- OptimizationNLopt
#- OptimizationNonconvex
- OptimizationNOMAD
- OptimizationOptimJL
- OptimizationOptimisers
- OptimizationQuadDIRECT
- OptimizationSpeedMapping
- OptimizationPolyalgorithms
version:
- '1'
- '1.6'
Expand Down
5 changes: 2 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
name = "GalacticOptim"
uuid = "a75be94c-b780-496d-a8a9-0878b188d577"
authors = ["Vaibhavdixit02 <[email protected]>"]
name = "Optimization"
uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba"
version = "3.5.0"

[deps]
Expand Down
56 changes: 28 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,65 @@
# GalacticOptim.jl
# Optimization.jl

[![Build Status](https://github.com/SciML/GalacticOptim.jl/workflows/CI/badge.svg)](https://github.com/SciML/GalacticOptim.jl/actions?query=workflow%3ACI)
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](http://galacticoptim.sciml.ai/stable/)
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](http://galacticoptim.sciml.ai/dev/)
[![Build Status](https://github.com/SciML/Optimization.jl/workflows/CI/badge.svg)](https://github.com/SciML/Optimization.jl/actions?query=workflow%3ACI)
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](http://Optimization.sciml.ai/stable/)
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](http://Optimization.sciml.ai/dev/)

GalacticOptim.jl is a package with a scope that is beyond your normal global optimization
package. GalacticOptim.jl seeks to bring together all of the optimization packages
Optimization.jl is a package with a scope that is beyond your normal global optimization
package. Optimization.jl seeks to bring together all of the optimization packages
it can find, local and global, into one unified Julia interface. This means, you
learn one package and you learn them all! GalacticOptim.jl adds a few high-level
learn one package and you learn them all! Optimization.jl adds a few high-level
features, such as integrating with automatic differentiation, to make its usage
fairly simple for most cases, while allowing all of the options in a single
unified interface.

## Installation

Assuming that you already have Julia correctly installed, it suffices to import
GalacticOptim.jl in the standard way:
Optimization.jl in the standard way:

```julia
import Pkg; Pkg.add("GalacticOptim")
import Pkg; Pkg.add("Optimization")
```
The packages relevant to the core functionality of GalacticOptim.jl will be imported
The packages relevant to the core functionality of Optimization.jl will be imported
accordingly and, in most cases, you do not have to worry about the manual
installation of dependencies. Below is the list of packages that need to be
installed explicitly if you intend to use the specific optimization algorithms
offered by them:

- GalacticBBO for [BlackBoxOptim.jl](https://github.com/robertfeldt/BlackBoxOptim.jl)
- GalacticEvolutionary for [Evolutionary.jl](https://github.com/wildart/Evolutionary.jl) (see also [this documentation](https://wildart.github.io/Evolutionary.jl/dev/))
- GalacticGCMAES for [GCMAES.jl](https://github.com/AStupidBear/GCMAES.jl)
- GalacticMOI for [MathOptInterface.jl](https://github.com/jump-dev/MathOptInterface.jl) (usage of algorithm via MathOptInterface API; see also the API [documentation](https://jump.dev/MathOptInterface.jl/stable/))
- GalacticMetaheuristics for [Metaheuristics.jl](https://github.com/jmejia8/Metaheuristics.jl) (see also [this documentation](https://jmejia8.github.io/Metaheuristics.jl/stable/))
- GalacticMultistartOptimization for [MultistartOptimization.jl](https://github.com/tpapp/MultistartOptimization.jl) (see also [this documentation](https://juliahub.com/docs/MultistartOptimization/cVZvi/0.1.0/))
- GalacticNLopt for [NLopt.jl](https://github.com/JuliaOpt/NLopt.jl) (usage via the NLopt API; see also the available [algorithms](https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/))
- GalacticNOMAD for [NOMAD.jl](https://github.com/bbopt/NOMAD.jl) (see also [this documentation](https://bbopt.github.io/NOMAD.jl/stable/))
- GalacticNonconvex for [Nonconvex.jl](https://github.com/JuliaNonconvex/Nonconvex.jl) (see also [this documentation](https://julianonconvex.github.io/Nonconvex.jl/stable/))
- GalacticQuadDIRECT for [QuadDIRECT.jl](https://github.com/timholy/QuadDIRECT.jl)
- GalacticSpeedMapping for [SpeedMapping.jl](https://github.com/NicolasL-S/SpeedMapping.jl) (see also [this documentation](https://nicolasl-s.github.io/SpeedMapping.jl/stable/))
- OptimizationBBO for [BlackBoxOptim.jl](https://github.com/robertfeldt/BlackBoxOptim.jl)
- OptimizationEvolutionary for [Evolutionary.jl](https://github.com/wildart/Evolutionary.jl) (see also [this documentation](https://wildart.github.io/Evolutionary.jl/dev/))
- OptimizationGCMAES for [GCMAES.jl](https://github.com/AStupidBear/GCMAES.jl)
- OptimizationMOI for [MathOptInterface.jl](https://github.com/jump-dev/MathOptInterface.jl) (usage of algorithm via MathOptInterface API; see also the API [documentation](https://jump.dev/MathOptInterface.jl/stable/))
- OptimizationMetaheuristics for [Metaheuristics.jl](https://github.com/jmejia8/Metaheuristics.jl) (see also [this documentation](https://jmejia8.github.io/Metaheuristics.jl/stable/))
- OptimizationMultistartOptimization for [MultistartOptimization.jl](https://github.com/tpapp/MultistartOptimization.jl) (see also [this documentation](https://juliahub.com/docs/MultistartOptimization/cVZvi/0.1.0/))
- OptimizationNLopt for [NLopt.jl](https://github.com/JuliaOpt/NLopt.jl) (usage via the NLopt API; see also the available [algorithms](https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/))
- OptimizationNOMAD for [NOMAD.jl](https://github.com/bbopt/NOMAD.jl) (see also [this documentation](https://bbopt.github.io/NOMAD.jl/stable/))
- OptimizationNonconvex for [Nonconvex.jl](https://github.com/JuliaNonconvex/Nonconvex.jl) (see also [this documentation](https://julianonconvex.github.io/Nonconvex.jl/stable/))
- OptimizationQuadDIRECT for [QuadDIRECT.jl](https://github.com/timholy/QuadDIRECT.jl)
- OptimizationSpeedMapping for [SpeedMapping.jl](https://github.com/NicolasL-S/SpeedMapping.jl) (see also [this documentation](https://nicolasl-s.github.io/SpeedMapping.jl/stable/))

## Tutorials and Documentation

For information on using the package,
[see the stable documentation](https://galacticoptim.sciml.ai/stable/). Use the
[in-development documentation](https://galacticoptim.sciml.ai/dev/) for the version of
[see the stable documentation](https://Optimization.sciml.ai/stable/). Use the
[in-development documentation](https://Optimization.sciml.ai/dev/) for the version of
the documentation, which contains the unreleased features.

## Examples

```julia
using GalacticOptim
using Optimization
rosenbrock(x,p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2
x0 = zeros(2)
p = [1.0,100.0]

prob = OptimizationProblem(rosenbrock,x0,p)

using GalacticOptimJL
using OptimizationOptimJL
sol = solve(prob,NelderMead())


using GalacticBBO
using OptimizationBBO
prob = OptimizationProblem(rosenbrock, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
sol = solve(prob,BBO_adaptive_de_rand_1_bin_radiuslimited())
```
Expand Down Expand Up @@ -99,7 +99,7 @@ We can also explore other methods in a similar way:

```julia
using ForwardDiff
f = OptimizationFunction(rosenbrock, GalacticOptim.AutoForwardDiff())
f = OptimizationFunction(rosenbrock, Optimization.AutoForwardDiff())
prob = OptimizationProblem(f, x0, p)
sol = solve(prob,BFGS())
```
Expand Down Expand Up @@ -132,6 +132,6 @@ For instance, the above optimization task produces the following output:
prob = OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
sol = solve(prob, Fminbox(GradientDescent()))
```
The examples clearly demonstrate that GalacticOptim.jl provides an intuitive
The examples clearly demonstrate that Optimization.jl provides an intuitive
way of specifying optimization tasks and offers a relatively
easy access to a wide range of optimization algorithms.
12 changes: 6 additions & 6 deletions docs/make.jl
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
using Documenter, GalacticOptim
using Documenter, Optimization
using FiniteDiff, ForwardDiff, ModelingToolkit, ReverseDiff, Tracker, Zygote

makedocs(
sitename="GalacticOptim.jl",
sitename="Optimization.jl",
authors="Chris Rackauckas, Vaibhav Kumar Dixit et al.",
clean=true,
doctest=false,
modules=[GalacticOptim, GalacticOptim.SciMLBase, FiniteDiff,
modules=[Optimization, Optimization.SciMLBase, FiniteDiff,
ForwardDiff, ModelingToolkit, ReverseDiff, Tracker, Zygote],

format=Documenter.HTML(analytics = "UA-90474609-3",
assets=["assets/favicon.ico"],
canonical="https://galacticoptim.sciml.ai/stable/"),
canonical="https://Optimization.sciml.ai/stable/"),

pages=[
"GalacticOptim.jl: Unified Global Optimization Package" => "index.md",
"Optimization.jl: A Unified Optimization Package" => "index.md",

"Tutorials" => [
"Basic usage" => "tutorials/intro.md",
Expand Down Expand Up @@ -48,6 +48,6 @@ makedocs(
)

deploydocs(
repo="github.com/SciML/GalacticOptim.jl";
repo="github.com/SciML/Optimization.jl";
push_preview=true
)
4 changes: 2 additions & 2 deletions docs/src/API/modelingtoolkit.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ModelingToolkit Integration

GalacticOptim.jl is heavily integrated with the ModelingToolkit.jl
Optimization.jl is heavily integrated with the ModelingToolkit.jl
symbolic system for symbolic-numeric optimizations. It provides a
front-end for automating the construction, parallelization, and
optimization of code. Optimizers can better interface with the extra
Expand All @@ -13,7 +13,7 @@ the [OptimizationFunction documentation](@id optfunction) for more
details.

Secondly, one can generate `OptimizationProblem`s for use in
GalacticOptim.jl from purely a symbolic front-end. This is the form
Optimization.jl from purely a symbolic front-end. This is the form
users will encounter when using ModelingToolkit.jl directly, and its
also the form supplied by domain-specific languages. For more information,
see the [OptimizationSystem documentation](https://mtk.sciml.ai/dev/systems/OptimizationSystem/).
16 changes: 8 additions & 8 deletions docs/src/index.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# GalacticOptim.jl
# Optimization.jl

GalacticOptim.jl is a package with a scope that is beyond your normal global optimization
package. GalacticOptim.jl seeks to bring together all of the optimization packages
Optimization.jl is a package with a scope that is beyond your normal global optimization
package. Optimization.jl seeks to bring together all of the optimization packages
it can find, local and global, into one unified Julia interface. This means, you
learn one package and you learn them all! GalacticOptim.jl adds a few high-level
learn one package and you learn them all! Optimization.jl adds a few high-level
features, such as integrating with automatic differentiation, to make its usage
fairly simple for most cases, while allowing all of the options in a single
unified interface.

## Installation

Assuming that you already have Julia correctly installed, it suffices to import
GalacticOptim.jl in the standard way:
Optimization.jl in the standard way:

```julia
import Pkg; Pkg.add("GalacticOptim")
import Pkg; Pkg.add("Optimization")
```
The packages relevant to the core functionality of GalacticOptim.jl will be imported
The packages relevant to the core functionality of Optimization.jl will be imported
accordingly and, in most cases, you do not have to worry about the manual
installation of dependencies. However, you will need to add the specific optimizer
packages.
Expand All @@ -41,6 +41,6 @@ packages.

✅ = supported

🟡 = supported in downstream library but not yet implemented in `GalacticOptim`; PR to add this functionality are welcome
🟡 = supported in downstream library but not yet implemented in `Optimization`; PR to add this functionality are welcome

❌ = not supported
8 changes: 4 additions & 4 deletions docs/src/optimization_packages/blackboxoptim.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# BlackBoxOptim.jl
[`BlackBoxOptim`](https://github.com/robertfeldt/BlackBoxOptim.jl) is a is a Julia package implementing **(Meta-)heuristic/stochastic algorithms** that do not require for the optimized function to be differentiable.

## Installation: GalacticBBO.jl
## Installation: OptimizationBBO.jl

To use this package, install the GalacticBBO package:
To use this package, install the OptimizationBBO package:

```julia
import Pkg; Pkg.add("GalacticBBO")
import Pkg; Pkg.add("OptimizationBBO")
```

## Global Optimizers
Expand Down Expand Up @@ -53,7 +53,7 @@ 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 = GalacticOptim.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
sol = solve(prob, BBO_adaptive_de_rand_1_bin_radiuslimited(), maxiters=100000, maxtime=1000.0)
```

Expand Down
8 changes: 4 additions & 4 deletions docs/src/optimization_packages/cmaevolutionstrategy.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@

The CMAEvolutionStrategy algorithm is called by `CMAEvolutionStrategyOpt()`

## Installation: GalacticCMAEvolutionStrategy.jl
## Installation: OptimizationCMAEvolutionStrategy.jl

To use this package, install the GalacticCMAEvolutionStrategy package:
To use this package, install the OptimizationCMAEvolutionStrategy package:

```julia
import Pkg; Pkg.add("GalacticCMAEvolutionStrategy")
import Pkg; Pkg.add("OptimizationCMAEvolutionStrategy")
```

## Global Optimizer
Expand All @@ -26,6 +26,6 @@ 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 = GalacticOptim.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
sol = solve(prob, CMAEvolutionStrategyOpt())
```
8 changes: 4 additions & 4 deletions docs/src/optimization_packages/evolutionary.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Evolutionary.jl
[`Evolutionary`](https://github.com/wildart/Evolutionary.jl) is a Julia package implementing various evolutionary and genetic algorithm.

## Installation: GalacticCMAEvolutionStrategy.jl
## Installation: OptimizationCMAEvolutionStrategy.jl

To use this package, install the GalacticCMAEvolutionStrategy package:
To use this package, install the OptimizationCMAEvolutionStrategy package:

```julia
import Pkg; Pkg.add("GalacticCMAEvolutionStrategy")
import Pkg; Pkg.add("OptimizationCMAEvolutionStrategy")
```

## Global Optimizer
Expand Down Expand Up @@ -36,6 +36,6 @@ 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 = GalacticOptim.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
sol = solve(prob, Evolutionary.CMAES=40 , λ = 100))
```
6 changes: 3 additions & 3 deletions docs/src/optimization_packages/flux.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Flux.jl

## Installation: GalacticFlux.jl
## Installation: OptimizationFlux.jl

To use this package, install the GalacticFlux package:
To use this package, install the OptimizationFlux package:

```julia
import Pkg; Pkg.add("GalacticFlux")
import Pkg; Pkg.add("OptimizationFlux")
```

## Local Unconstrained Optimizers
Expand Down
12 changes: 6 additions & 6 deletions docs/src/optimization_packages/gcmaes.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# GCMAES.jl
[`GCMAES`](https://github.com/AStupidBear/GCMAES.jl) is a Julia package implementing the **Gradient-based Covariance Matrix Adaptation Evolutionary Strategy** which can utilize the gradient information to speed up the optimization process.

## Installation: GalacticGCMAES.jl
## Installation: OptimizationGCMAES.jl

To use this package, install the GalacticGCMAES package:
To use this package, install the OptimizationGCMAES package:

```julia
import Pkg; Pkg.add("GalacticGCMAES")
import Pkg; Pkg.add("OptimizationGCMAES")
```

## Global Optimizer
Expand All @@ -26,7 +26,7 @@ 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 = GalacticOptim.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
sol = solve(prob, GCMAESOpt())
```

Expand All @@ -36,7 +36,7 @@ We can also utilise the gradient information of the optimization problem to aid
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, GalacticOptim.ForwardDiff)
prob = GalacticOptim.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
f = OptimizationFunction(rosenbrock, Optimization.ForwardDiff)
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
sol = solve(prob, GCMAESOpt())
```
Loading

0 comments on commit 2e63958

Please sign in to comment.