All Projects → JuliaSmoothOptimizers → Cutest.jl

JuliaSmoothOptimizers / Cutest.jl

Licence: lgpl-3.0
Julia's CUTEst Interface

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to Cutest.jl

Nuxt Optimized Images
🌅🚀 Automatically optimizes images used in Nuxt.js projects (JPEG, PNG, SVG, WebP and GIF).
Stars: ✭ 717 (+7070%)
Mutual labels:  optimization
Shift Scheduling
Shift Scheduling for workforce
Stars: ✭ 22 (+120%)
Mutual labels:  optimization
React Optimized Image
Easy to use React components for optimized-images-loader / next-optimized-images.
Stars: ✭ 24 (+140%)
Mutual labels:  optimization
Pyswarms
A research toolkit for particle swarm optimization in Python
Stars: ✭ 742 (+7320%)
Mutual labels:  optimization
Liblaml
A stand-alone pure C++ library for linear algebra and machine learning
Stars: ✭ 7 (-30%)
Mutual labels:  optimization
Owl
Owl - OCaml Scientific and Engineering Computing @ http://ocaml.xyz
Stars: ✭ 919 (+9090%)
Mutual labels:  optimization
Opticss
A CSS Optimizer
Stars: ✭ 716 (+7060%)
Mutual labels:  optimization
Bfgs Neldermead Trustregion
Python implementation of some numerical (optimization) methods
Stars: ✭ 8 (-20%)
Mutual labels:  optimization
Wheels
Performance-optimized wheels for TensorFlow (SSE, AVX, FMA, XLA, MPI)
Stars: ✭ 891 (+8810%)
Mutual labels:  optimization
Erlscp
Erlang Supercompiler
Stars: ✭ 23 (+130%)
Mutual labels:  optimization
Pennylane
PennyLane is a cross-platform Python library for differentiable programming of quantum computers. Train a quantum computer the same way as a neural network.
Stars: ✭ 800 (+7900%)
Mutual labels:  optimization
D912pxy
DirectX9 to DirectX12 API proxy for Guild Wars 2
Stars: ✭ 833 (+8230%)
Mutual labels:  optimization
Mobius Assignment
Staffjoy Suite (V1) Microservice - Shift Assignment Subject To Constraints
Stars: ✭ 23 (+130%)
Mutual labels:  optimization
Su2
SU2: An Open-Source Suite for Multiphysics Simulation and Design
Stars: ✭ 731 (+7210%)
Mutual labels:  optimization
Forte
Designing generative structures by interactive sketching
Stars: ✭ 25 (+150%)
Mutual labels:  optimization
Eaopt
🍀 Evolutionary optimization library for Go (genetic algorithm, partical swarm optimization, differential evolution)
Stars: ✭ 718 (+7080%)
Mutual labels:  optimization
Vs Net
Variable splitting network for accelerated parallel MRI reconstruction
Stars: ✭ 22 (+120%)
Mutual labels:  optimization
Desdeo
An open source framework for interactive multiobjective optimization methods
Stars: ✭ 8 (-20%)
Mutual labels:  optimization
Rl Baselines Zoo
A collection of 100+ pre-trained RL agents using Stable Baselines, training and hyperparameter optimization included.
Stars: ✭ 839 (+8290%)
Mutual labels:  optimization
Chama
Python package for sensor placement optimization
Stars: ✭ 23 (+130%)
Mutual labels:  optimization

CUTEst.jl: Julia's CUTEst Interface

This package provides an interface to CUTEst, a repository of constrained and unconstrained nonlinear programming problems for testing and comparing optimization algorithms, derived from the abstract model on NLPModels.

Stable release Github release DOI

  • Documentation: Documentation
  • Package Evaluator: CUTEst.jl CUTEst.jl
  • Chat: Gitter

Development version

  • Documentation: Documentation
  • Tests: Build Status Coverage Status

Installing

This package should detect your existing CUTEst installation, and will install its private version of CUTEst otherwise. The gfortran compiler is required. We currently do not support other Fortran compilers.

On OSX, Homebrew.jl will install gfortran if gfortran is not detected on your system. You may either use standard Homebrew to install gfortran yourself from precompiled bottled using brew install gcc or let Homebrew.jl install its private version. In the latter scenario, gcc and gfortran need to be compiled from source.

On Linux, you'll need to install wget and gfortran, and also make libgfortran.so visible by julia. See this page for how to install the requirements on some linux distributions.

The following commands download CUTEst, change to the specific branch, and build CUTEst.

julia> Pkg.add("CUTEst")

Usage

After installing, you can create instances of NLPModels models, with the name CUTEstModel:

using CUTEst

nlp = CUTEstModel("BYRDSPHR");
print(nlp);

This model accepts the same functions as the other NLPModels, for instance

fx = obj(nlp, nlp.meta.x0)
gx = grad(nlp, nlp.meta.x0)
Hx = hess(nlp, nlp.meta.x0)

Run multiple models in parallel

First, decode each of the problems in serial.

function decodemodel(name)
    finalize(CUTEstModel(name))
end

probs = ["AKIVA", "ALLINITU", "ARGLINA", "ARGLINB", "ARGLINC","ARGTRIGLS", "ARWHEAD"]
broadcast(decodemodel, probs)

Then, call functions handling models in parallel. It is important to pass decode=false to CUTEstModel.

addprocs(2)
@everywhere using CUTEst
@everywhere function evalmodel(name)
   nlp = CUTEstModel(name; decode=false)
   retval = obj(nlp, nlp.meta.x0)
   finalize(nlp)
   retval
end

fvals = pmap(evalmodel, probs)

Related Packages

  • NLPModels.jl provides an AbstractModel from which CUTEst.jl derives, and other models deriving from it, such as MathProgNLPModel, which uses MathProgBase.jl, SimpleNLPModel, for user created functions, ADNLPModel with automatic differentiation, and SlackModel, which creates an equality constrained model with bounds on the variables from a given AbstractModel.
  • AmplNLReader.jl provides an interface to AMPL models based on NLPModels.jl.
  • OptimizationProblems.jl provides a collection of optimization problems in JuMP.jl syntax.

GPLv3

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].