From ebdb75d7b1a283cae9f6fd1389c6b0e8a2ae57e1 Mon Sep 17 00:00:00 2001 From: abelsiqueira Date: Sun, 14 Apr 2024 00:33:53 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20ac71f?= =?UTF-8?q?4efcb43f9dccb60f26ae441b5e8b1c1b684=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 2 +- Manifest.toml | 8 +++--- contributing/index.html | 2 +- ecosystems/index.html | 2 +- ecosystems/linear-algebra/index.html | 2 +- ecosystems/models/index.html | 2 +- ecosystems/solvers/index.html | 2 +- feed.xml | 6 ++--- index.html | 2 +- .../2022/2022-03-12-new-site/index.html | 2 +- .../2022/2022-03-15-dcisolver/index.html | 2 +- .../2022/2022-05-18-jopt22/index.html | 2 +- news-and-blogposts/index.html | 2 +- package-lock.json | 6 ++--- references/index.html | 2 +- sandbox/index.html | 2 +- sitemap.xml | 26 +++++++++---------- tutorials/index.html | 2 +- 18 files changed, 37 insertions(+), 37 deletions(-) diff --git a/404.html b/404.html index 57426f6..4768a9f 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ - 404: File not found

404: File not found

The requested file was not found.

Please click here to go to the home page.

\ No newline at end of file + 404: File not found

404: File not found

The requested file was not found.

Please click here to go to the home page.

\ No newline at end of file diff --git a/Manifest.toml b/Manifest.toml index f8c0666..d99c82f 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -71,9 +71,9 @@ version = "2.4.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" +git-tree-sha1 = "97d79461925cdb635ee32116978fc735b9463a39" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.18" +version = "0.18.19" [[deps.Dates]] deps = ["Printf"] @@ -242,9 +242,9 @@ version = "2.16.1" [[deps.LiveServer]] deps = ["HTTP", "LoggingExtras", "MIMEs", "Pkg", "Sockets", "Test"] -git-tree-sha1 = "24d05efe53436b22a42bf2ae459f47c48b0c2603" +git-tree-sha1 = "1e46b873b8ef176e23ee43f96e72cd45c20bafb4" uuid = "16fef848-5104-11e9-1b77-fb7a48bbb589" -version = "1.2.7" +version = "1.3.1" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" diff --git a/contributing/index.html b/contributing/index.html index 3a2e196..20dbd0b 100644 --- a/contributing/index.html +++ b/contributing/index.html @@ -1 +1 @@ - Contributions

Contributions

We welcome contributions, which can come in many forms:

Bug reports and discussions

If you think you found a bug in any of our packages, feel free to open an issue at the specific GitHub repo. For our packages, it should be a link like https://github.com/JuliaSmoothOptimizers/PACKAGE.jl. For our tutorials, you can open an issue here or in the specific tutorial page.

Focused suggestion and requests can also be opened as issues. Before opening a pull request, start an issue or a discussion on the topic, please.

If you want to ask a question that is not suited for a bug report, feel free to start a discussion here. This forum is for general discussion, so questions about any of our packages are welcome.

New tutorials

Use the template repo and follow instructions there.

Style, colors, UI, frontend, etc.

Check the issues for jso-docs.github.io, and open a new one if necessary.

\ No newline at end of file + Contributions

Contributions

We welcome contributions, which can come in many forms:

Bug reports and discussions

If you think you found a bug in any of our packages, feel free to open an issue at the specific GitHub repo. For our packages, it should be a link like https://github.com/JuliaSmoothOptimizers/PACKAGE.jl. For our tutorials, you can open an issue here or in the specific tutorial page.

Focused suggestion and requests can also be opened as issues. Before opening a pull request, start an issue or a discussion on the topic, please.

If you want to ask a question that is not suited for a bug report, feel free to start a discussion here. This forum is for general discussion, so questions about any of our packages are welcome.

New tutorials

Use the template repo and follow instructions there.

Style, colors, UI, frontend, etc.

Check the issues for jso-docs.github.io, and open a new one if necessary.

\ No newline at end of file diff --git a/ecosystems/index.html b/ecosystems/index.html index 77c63d0..b994ca6 100644 --- a/ecosystems/index.html +++ b/ecosystems/index.html @@ -1 +1 @@ - Ecosystems

Ecosystems

Our packages can be divided into three non-exclusive ecosystems:

  • Linear Algebra: Packages for dealing with matrices and matrix-like objects. For instance, for solving linear systems, or linear least-squares problems.

  • Models: Packages that define and access optimization models.

  • Solvers: Packages related to our solvers and the development of other solvers.

\ No newline at end of file + Ecosystems

Ecosystems

Our packages can be divided into three non-exclusive ecosystems:

  • Linear Algebra: Packages for dealing with matrices and matrix-like objects. For instance, for solving linear systems, or linear least-squares problems.

  • Models: Packages that define and access optimization models.

  • Solvers: Packages related to our solvers and the development of other solvers.

\ No newline at end of file diff --git a/ecosystems/linear-algebra/index.html b/ecosystems/linear-algebra/index.html index df25a75..4ccd708 100644 --- a/ecosystems/linear-algebra/index.html +++ b/ecosystems/linear-algebra/index.html @@ -1 +1 @@ - Linear Algebra Ecosystem

Linear Algebra Ecosystem

Inside an optimization method, we frequently have to deal with matrices and linear operations/ There are 2 main linear problems that we need to solve:

  • Linear systems: Find \(x \in \mathbb R^n\) such that \(Ax = b\), where \(A \in \mathbb R^{m\times n}\) and \(b \in \mathbb R^m\).

  • Least squares problems: Find \(x \in \mathbb R^n\) that minimizes \(\|Ax - b\|^2\), where \(A \in \mathbb R^{m\times n}\) and \(b \in \mathbb R^m\).

There is a wide variety of methods to solve these problems, usually specialized with respect to additional properties of \(A\) and \(b\). Inside JSO we implement a few of those methods, and provide code wrapper around some others.

Our main interest lies in large-scale problems, that are dealt with either by

  • Factorization-free methods: \(A\) itself is not available, but we have access to the result of the product of \(A\) by a vector \(v\). That is, we have a function \(v \to Av\). Possibly we have access to \(v \to A^T v\) and \(v \to A^*v\) as well.

  • Sparse factorization: \(A\) is factorized into a product of matrices. The issue here being that since \(A\) is sparse, the factorization algorithm has to be smart enough to not destroy the sparsity of the problem.

We'll describe in the following sections the main packages of our ecosystem divided in these two categories.

Factorization-free methods

LinearOperators

The first thing we did for this section of the ecosystem was define a new type for linear operators, with the package LinearOperators. The package is used internally by our models to provide access to the Jacobian and Hessian vector products, so it is considered a main package for the organization as a whole.

Krylov

The second main package in this part if the package Krylov, which defines almost 30 methods for linear system and linear least-squares problems. Krylov implements a few known methods, but brand new methods were developed and published as well.

Factorization methods

HSL

Factorization methods have been studied for a few decades, and some packages are well-known for doing it right. One of these packages is HSL, which defines some well-known methods such as MA57 and MA97. Our HSL wrapper exports both of these methods, which are the main ones used in our context.

LDLFactorizations

Two drawbacks of HSL are that it is proprietary and it can't handle element types except 32 bits and 64 bits native floating point numbers. LDLFactorizations implements a factorization for symmetric matrices to compete with MA57 that solves both of these problems.

\ No newline at end of file + Linear Algebra Ecosystem

Linear Algebra Ecosystem

Inside an optimization method, we frequently have to deal with matrices and linear operations/ There are 2 main linear problems that we need to solve:

  • Linear systems: Find \(x \in \mathbb R^n\) such that \(Ax = b\), where \(A \in \mathbb R^{m\times n}\) and \(b \in \mathbb R^m\).

  • Least squares problems: Find \(x \in \mathbb R^n\) that minimizes \(\|Ax - b\|^2\), where \(A \in \mathbb R^{m\times n}\) and \(b \in \mathbb R^m\).

There is a wide variety of methods to solve these problems, usually specialized with respect to additional properties of \(A\) and \(b\). Inside JSO we implement a few of those methods, and provide code wrapper around some others.

Our main interest lies in large-scale problems, that are dealt with either by

  • Factorization-free methods: \(A\) itself is not available, but we have access to the result of the product of \(A\) by a vector \(v\). That is, we have a function \(v \to Av\). Possibly we have access to \(v \to A^T v\) and \(v \to A^*v\) as well.

  • Sparse factorization: \(A\) is factorized into a product of matrices. The issue here being that since \(A\) is sparse, the factorization algorithm has to be smart enough to not destroy the sparsity of the problem.

We'll describe in the following sections the main packages of our ecosystem divided in these two categories.

Factorization-free methods

LinearOperators

The first thing we did for this section of the ecosystem was define a new type for linear operators, with the package LinearOperators. The package is used internally by our models to provide access to the Jacobian and Hessian vector products, so it is considered a main package for the organization as a whole.

Krylov

The second main package in this part if the package Krylov, which defines almost 30 methods for linear system and linear least-squares problems. Krylov implements a few known methods, but brand new methods were developed and published as well.

Factorization methods

HSL

Factorization methods have been studied for a few decades, and some packages are well-known for doing it right. One of these packages is HSL, which defines some well-known methods such as MA57 and MA97. Our HSL wrapper exports both of these methods, which are the main ones used in our context.

LDLFactorizations

Two drawbacks of HSL are that it is proprietary and it can't handle element types except 32 bits and 64 bits native floating point numbers. LDLFactorizations implements a factorization for symmetric matrices to compete with MA57 that solves both of these problems.

\ No newline at end of file diff --git a/ecosystems/models/index.html b/ecosystems/models/index.html index c0b9a25..87402d9 100644 --- a/ecosystems/models/index.html +++ b/ecosystems/models/index.html @@ -1 +1 @@ - Models Ecosystem

Models Ecosystem

In the context of nonlinear optimization, the general form of the optimization problem is

\[\begin{aligned} \min \quad & f(x) \\ & c_i(x) = 0, \quad i \in E, \\ & c_{L_i} \leq c_i(x) \leq c_{U_i}, \quad i \in I, \\ & \ell \leq x \leq u, \end{aligned}\]

where \(f:\mathbb{R}^n\rightarrow\mathbb{R}\), \(c:\mathbb{R}^n\rightarrow\mathbb{R}^m\), \(E\cup I = \{1,2,\dots,m\}\), \(E\cap I = \emptyset\), and \(c_{L_i}, c_{U_i}, \ell_j, u_j \in \mathbb{R}\cup\{\pm\infty\}\) for \(i = 1,\dots,m\) and \(j = 1,\dots,n\).

We define two interested parties in this context:

  • Users: People that have a problem like the one above and want to write them computationally and pass them to a solver.

  • Solver developers: People that are writing optimization methods and need information about the problem to provide an approximate solution.

To solve this problem we usually require \(f\) and its derivatives at a given point \(x.\) However, since the function \(f\) is nonlinear, determining its derivatives is usually not trivial. This led to the creation of several ways to define and obtain the function of an optimization problem. Furthermore, during the development of an optimization method, we want to test and compare our solver on a large variety of problems. This means that we need a collection of test problems, and these too will follow their own format.

Therefore, one of the objectives of NLPModels is to allow the creation of different model that follow the same API. This way, everybody is happy.

We can summarise the possibilities in 4 categories:

  • Manually pass everything: You usually do this when you're writing your optimization method to test it. It can also be the case when you special information about the derivatives that can be explored, or when you really want to squeeze that last bit of speed.

  • Modeling languages: A modeling language will translate a friendly description of the optimization method to the function and its derivatives. This has an extra cost when creating the model, usually, to compute the structure of the derivatives.

  • Automatic differentiation: A great new way of doing things. It's easier for the user, because you can define only \(f\) manually and its derivatives are computed for you. Naturally, that also has some extra cost.

  • Specialized problem collections: Some packages provide a curated list of problem so you can test your optimization method. To write this list you can follow any of the ways above, naturally, but as a developer you want them readily available, so someone already made the decision of how they'll be available to you.

Let's describe some of the packages available.

Basic definitions and manual problem creation

NLPModels

NLPModels is the base of this ecosystem, it defines an API for all other models to implement. This is done by creating a struct derived from the abstract NLPModel type, and defining how each API function behaves for that model. This means that you can define a struct specifically for your problem and describe the functions manually. This is how we test our API and how we keep the consistency between models, so it can be seen in action.

NLPModelsModifiers

This package is dedicated to models that modify existing models. We currently have four models available. Here's a rough description:

  • FeasibilityFormNLS transforms a nonlinear least-squares problems by moving the residual function to the constraints. This allows a non-specialized solver to handle the objective function much better.

  • FeasibilityResidual uses the constraints of a model to create a nonlinear least-squares problem. This problem is called the Feasibility violation minimization in some cases.

  • LSR1Model and LBFGSModel are models that approximate the Hessian by quasi-Newton operators. They use LinearOperators, so they don't return the full matrix, only operators.

  • SlackModel transforms inequalities into equalities adding slack variables to these constraints.

NLPModelsTest

This package is only for developers, since they are used to test models. The rationale here is that many of the tests we want to perform were copy-pasted from one source. With this package, we can add it only for the tests and use the prepared functions instead of copying a lot of code. Furthermore, it's easier to keep track of everything.

ADNLPModels

This package defines methods using automatic differentiation. Probably some of the most useful models, since you can very quickly define a problem.

QuadraticModels

As the name implies, for quadratic models.

LLSModels

For linear least-squares problems.

Modeling Language models

NLPModelsJuMP and AmplNLReader

In this section we have models wrapping two main modeling languages. JuMP is an open source modeling language written in Julia. AMPL is an external modeling language that is well-known for its efficiency.

Problem collections

CUTEst

CUTEst is the latest iteration of the Constraint and Unconstrained Testing Environment. It is a package written in Fortran, and we provide a wrapper for it.

It contains around 1500 problems for general nonlinear optimization and has been in use since at least 1995, when the paper describing the first version was released. The problem are written in a specialized format that can almost be considered a modeling language, although it is not friendly to the user. On the other hand, the derivatives are obtained very efficiently.

OptimizationProblems

This package provides a list of problems implemented in JuMP.

NLSProblems

This package provides a list of nonlinear least-squares problems implemented using NLPModelsJUMP.

\ No newline at end of file + Models Ecosystem

Models Ecosystem

In the context of nonlinear optimization, the general form of the optimization problem is

\[\begin{aligned} \min \quad & f(x) \\ & c_i(x) = 0, \quad i \in E, \\ & c_{L_i} \leq c_i(x) \leq c_{U_i}, \quad i \in I, \\ & \ell \leq x \leq u, \end{aligned}\]

where \(f:\mathbb{R}^n\rightarrow\mathbb{R}\), \(c:\mathbb{R}^n\rightarrow\mathbb{R}^m\), \(E\cup I = \{1,2,\dots,m\}\), \(E\cap I = \emptyset\), and \(c_{L_i}, c_{U_i}, \ell_j, u_j \in \mathbb{R}\cup\{\pm\infty\}\) for \(i = 1,\dots,m\) and \(j = 1,\dots,n\).

We define two interested parties in this context:

  • Users: People that have a problem like the one above and want to write them computationally and pass them to a solver.

  • Solver developers: People that are writing optimization methods and need information about the problem to provide an approximate solution.

To solve this problem we usually require \(f\) and its derivatives at a given point \(x.\) However, since the function \(f\) is nonlinear, determining its derivatives is usually not trivial. This led to the creation of several ways to define and obtain the function of an optimization problem. Furthermore, during the development of an optimization method, we want to test and compare our solver on a large variety of problems. This means that we need a collection of test problems, and these too will follow their own format.

Therefore, one of the objectives of NLPModels is to allow the creation of different model that follow the same API. This way, everybody is happy.

We can summarise the possibilities in 4 categories:

  • Manually pass everything: You usually do this when you're writing your optimization method to test it. It can also be the case when you special information about the derivatives that can be explored, or when you really want to squeeze that last bit of speed.

  • Modeling languages: A modeling language will translate a friendly description of the optimization method to the function and its derivatives. This has an extra cost when creating the model, usually, to compute the structure of the derivatives.

  • Automatic differentiation: A great new way of doing things. It's easier for the user, because you can define only \(f\) manually and its derivatives are computed for you. Naturally, that also has some extra cost.

  • Specialized problem collections: Some packages provide a curated list of problem so you can test your optimization method. To write this list you can follow any of the ways above, naturally, but as a developer you want them readily available, so someone already made the decision of how they'll be available to you.

Let's describe some of the packages available.

Basic definitions and manual problem creation

NLPModels

NLPModels is the base of this ecosystem, it defines an API for all other models to implement. This is done by creating a struct derived from the abstract NLPModel type, and defining how each API function behaves for that model. This means that you can define a struct specifically for your problem and describe the functions manually. This is how we test our API and how we keep the consistency between models, so it can be seen in action.

NLPModelsModifiers

This package is dedicated to models that modify existing models. We currently have four models available. Here's a rough description:

  • FeasibilityFormNLS transforms a nonlinear least-squares problems by moving the residual function to the constraints. This allows a non-specialized solver to handle the objective function much better.

  • FeasibilityResidual uses the constraints of a model to create a nonlinear least-squares problem. This problem is called the Feasibility violation minimization in some cases.

  • LSR1Model and LBFGSModel are models that approximate the Hessian by quasi-Newton operators. They use LinearOperators, so they don't return the full matrix, only operators.

  • SlackModel transforms inequalities into equalities adding slack variables to these constraints.

NLPModelsTest

This package is only for developers, since they are used to test models. The rationale here is that many of the tests we want to perform were copy-pasted from one source. With this package, we can add it only for the tests and use the prepared functions instead of copying a lot of code. Furthermore, it's easier to keep track of everything.

ADNLPModels

This package defines methods using automatic differentiation. Probably some of the most useful models, since you can very quickly define a problem.

QuadraticModels

As the name implies, for quadratic models.

LLSModels

For linear least-squares problems.

Modeling Language models

NLPModelsJuMP and AmplNLReader

In this section we have models wrapping two main modeling languages. JuMP is an open source modeling language written in Julia. AMPL is an external modeling language that is well-known for its efficiency.

Problem collections

CUTEst

CUTEst is the latest iteration of the Constraint and Unconstrained Testing Environment. It is a package written in Fortran, and we provide a wrapper for it.

It contains around 1500 problems for general nonlinear optimization and has been in use since at least 1995, when the paper describing the first version was released. The problem are written in a specialized format that can almost be considered a modeling language, although it is not friendly to the user. On the other hand, the derivatives are obtained very efficiently.

OptimizationProblems

This package provides a list of problems implemented in JuMP.

NLSProblems

This package provides a list of nonlinear least-squares problems implemented using NLPModelsJUMP.

\ No newline at end of file diff --git a/ecosystems/solvers/index.html b/ecosystems/solvers/index.html index 8316a14..7dac0e5 100644 --- a/ecosystems/solvers/index.html +++ b/ecosystems/solvers/index.html @@ -1 +1 @@ - Solvers Ecosystem

Solvers Ecosystem

The solver ecosystem in JSO is in constant development. We are looking into unifying the solver structure to make solvers, subsolvers, and tools plug-and-play.

Within JSO, our solver development has focused on three types of packages:

  • New methods, usually accompanied by research papers;

  • our implementation of (well- or no-so-well-)known methods;

  • wrappers around noteworthy solvers implemented in other languages.

Solver list

Below is the list of solvers and the type of problems that they are designed to solve.

SolverPackageDescriptionTypes of problem
cannolesCaNNOLeS.jlRegularization method for nonlinear least squaresEquality-constrained NLS
dciDCISolver.jlTrust-cylinder similar to two-step SQPEquality-constrained NLP
lbfgsJSOSolvers.jlFactorization-free linesearch limited-memory inverse BFGSUnconstrained NLP
percivalPercival.jlFactorization-free augmented LagrangianGenerally-constrained NLP
ripqpRipQP.jlRegularized Interior-Point Quadratic ProgrammingConvex QP (incl. LP)
tronJSOSolvers.jlFactorization-free trust-region second-order or quasi-Newton methodBound-constrained NLP
tronlsJSOSolvers.jlLeast-squares versions of tronUnconstrained NLS
trunkJSOSolvers.jlFactorization-free trust-region second-order or quasi-Newton methodUnconstrained NLP
trunklsJSOSolvers.jlLeast-squares version of trunkUnconstrained NLS

Types of problems

Our optimization problems can be defined as

\[\text{minimize} \quad f(x) \quad \text{subject to} \quad x \in \Omega.\]

Our constraint types and their meanings are:

  • Unconstrained: \(\Omega = \mathbb R^n\).

  • Bound constrained: \(\Omega = \{x \in \mathbb R^n |\ \ell \leq x \leq u\}\).

  • Equality constrained: \(\Omega = \{x \in \mathbb R^n |\ c(x) = 0\}\).

  • Generally constrained: \(\Omega = \{x \in \mathbb R^n |\ c_L \leq c(x) \leq c_U \}\), where \(c_{L_i} = c_{U_i}\) is a valid possibility, as are \(c_{L_i} = -\infty\) and \(c_{U_i} = \infty\), but not at the same time.

In addition to differences in the constraints, we also have different objective types:

  • NLP: General objective. The objective \(f(x)\) of these problems has no special structure to exploit. Access to its derivatives occurs through the default NLPModels.jl API.

  • NLS: Nonlinear Least-Squares problems. These problems are defined by \(f(x) = \tfrac{1}{2}\Vert F(x)\Vert^2\), with \(F\) and its derivatives available through the API for NLSModels, part of NLPModels.jl

  • QP: Quadratic Programming. These problems are defined by \(f(x) = \tfrac{1}{2}x^T Q x + g^T x + c\), with the API defined by QuadraticModels.jl.

\ No newline at end of file + Solvers Ecosystem

Solvers Ecosystem

The solver ecosystem in JSO is in constant development. We are looking into unifying the solver structure to make solvers, subsolvers, and tools plug-and-play.

Within JSO, our solver development has focused on three types of packages:

  • New methods, usually accompanied by research papers;

  • our implementation of (well- or no-so-well-)known methods;

  • wrappers around noteworthy solvers implemented in other languages.

Solver list

Below is the list of solvers and the type of problems that they are designed to solve.

SolverPackageDescriptionTypes of problem
cannolesCaNNOLeS.jlRegularization method for nonlinear least squaresEquality-constrained NLS
dciDCISolver.jlTrust-cylinder similar to two-step SQPEquality-constrained NLP
lbfgsJSOSolvers.jlFactorization-free linesearch limited-memory inverse BFGSUnconstrained NLP
percivalPercival.jlFactorization-free augmented LagrangianGenerally-constrained NLP
ripqpRipQP.jlRegularized Interior-Point Quadratic ProgrammingConvex QP (incl. LP)
tronJSOSolvers.jlFactorization-free trust-region second-order or quasi-Newton methodBound-constrained NLP
tronlsJSOSolvers.jlLeast-squares versions of tronUnconstrained NLS
trunkJSOSolvers.jlFactorization-free trust-region second-order or quasi-Newton methodUnconstrained NLP
trunklsJSOSolvers.jlLeast-squares version of trunkUnconstrained NLS

Types of problems

Our optimization problems can be defined as

\[\text{minimize} \quad f(x) \quad \text{subject to} \quad x \in \Omega.\]

Our constraint types and their meanings are:

  • Unconstrained: \(\Omega = \mathbb R^n\).

  • Bound constrained: \(\Omega = \{x \in \mathbb R^n |\ \ell \leq x \leq u\}\).

  • Equality constrained: \(\Omega = \{x \in \mathbb R^n |\ c(x) = 0\}\).

  • Generally constrained: \(\Omega = \{x \in \mathbb R^n |\ c_L \leq c(x) \leq c_U \}\), where \(c_{L_i} = c_{U_i}\) is a valid possibility, as are \(c_{L_i} = -\infty\) and \(c_{U_i} = \infty\), but not at the same time.

In addition to differences in the constraints, we also have different objective types:

  • NLP: General objective. The objective \(f(x)\) of these problems has no special structure to exploit. Access to its derivatives occurs through the default NLPModels.jl API.

  • NLS: Nonlinear Least-Squares problems. These problems are defined by \(f(x) = \tfrac{1}{2}\Vert F(x)\Vert^2\), with \(F\) and its derivatives available through the API for NLSModels, part of NLPModels.jl

  • QP: Quadratic Programming. These problems are defined by \(f(x) = \tfrac{1}{2}x^T Q x + g^T x + c\), with the API defined by QuadraticModels.jl.

\ No newline at end of file diff --git a/feed.xml b/feed.xml index afddc9b..c118e30 100644 --- a/feed.xml +++ b/feed.xml @@ -31,7 +31,7 @@ - Sun, 07 Apr 2024 00:00:00 +0000 + Sun, 14 Apr 2024 00:00:00 +0000 @@ -50,7 +50,7 @@ - Sun, 07 Apr 2024 00:00:00 +0000 + Sun, 14 Apr 2024 00:00:00 +0000 @@ -69,7 +69,7 @@ - Sun, 07 Apr 2024 00:00:00 +0000 + Sun, 14 Apr 2024 00:00:00 +0000 diff --git a/index.html b/index.html index ce52148..dd33a20 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ - Julia Smooth Optimizers

Julia Smooth Optimizers

is an organization on GitHub containing a collection of Julia packages for Nonlinear Optimization software development, testing, and benchmarking.

We provide tools for building models, access to repositories of problems, subproblem solving, linear algebra, and solving problems. This site will serve as the repository of information about JSO and its packages.

\ No newline at end of file + Julia Smooth Optimizers

Julia Smooth Optimizers

is an organization on GitHub containing a collection of Julia packages for Nonlinear Optimization software development, testing, and benchmarking.

We provide tools for building models, access to repositories of problems, subproblem solving, linear algebra, and solving problems. This site will serve as the repository of information about JSO and its packages.

\ No newline at end of file diff --git a/news-and-blogposts/2022/2022-03-12-new-site/index.html b/news-and-blogposts/2022/2022-03-12-new-site/index.html index 8b3b6ba..dc0afc1 100644 --- a/news-and-blogposts/2022/2022-03-12-new-site/index.html +++ b/news-and-blogposts/2022/2022-03-12-new-site/index.html @@ -1 +1 @@ - Moving our site

Moving our site

The Julia Smooth Optimizers organization has moved to this new website, where we will aggregate all our tutorials and news.

We hope this website helps optimization experts and beginners alike find their way through optimization in Julia.

\ No newline at end of file + Moving our site

Moving our site

The Julia Smooth Optimizers organization has moved to this new website, where we will aggregate all our tutorials and news.

We hope this website helps optimization experts and beginners alike find their way through optimization in Julia.

\ No newline at end of file diff --git a/news-and-blogposts/2022/2022-03-15-dcisolver/index.html b/news-and-blogposts/2022/2022-03-15-dcisolver/index.html index b40f97d..2ed46a9 100644 --- a/news-and-blogposts/2022/2022-03-15-dcisolver/index.html +++ b/news-and-blogposts/2022/2022-03-15-dcisolver/index.html @@ -5,4 +5,4 @@ # Constrained optimization nlp = ADNLPModel(x -> 100 * (x[2] - x[1]^2)^2 + (x[1] - 1)^2, [-1.2; 1.0], x->[x[1] * x[2] - 1], [0.0], [0.0]) -stats = dci(nlp)

References

Migot, T., Orban, D., & Siqueira, A. S. DCISolver. jl: A Julia Solver for Nonlinear Optimization using Dynamic Control of Infeasibility. Journal of Open Source Software, 7(70), 3991 (2022). 10.21105/joss.03991

Bielschowsky, R. H., & Gomes, F. A. Dynamic control of infeasibility in equality constrained optimization. SIAM Journal on Optimization, 19(3), 1299-1325 (2008). 10.1007/s10589-020-00201-2

\ No newline at end of file +stats = dci(nlp)

References

Migot, T., Orban, D., & Siqueira, A. S. DCISolver. jl: A Julia Solver for Nonlinear Optimization using Dynamic Control of Infeasibility. Journal of Open Source Software, 7(70), 3991 (2022). 10.21105/joss.03991

Bielschowsky, R. H., & Gomes, F. A. Dynamic control of infeasibility in equality constrained optimization. SIAM Journal on Optimization, 19(3), 1299-1325 (2008). 10.1007/s10589-020-00201-2

\ No newline at end of file diff --git a/news-and-blogposts/2022/2022-05-18-jopt22/index.html b/news-and-blogposts/2022/2022-05-18-jopt22/index.html index e448497..e68fd7c 100644 --- a/news-and-blogposts/2022/2022-05-18-jopt22/index.html +++ b/news-and-blogposts/2022/2022-05-18-jopt22/index.html @@ -1 +1 @@ - Conference: JuliaSmoothOptimizers at Optimization Days Montréal

Conference: JuliaSmoothOptimizers at Optimization Days Montréal

We organized a steam of sessions on ’’Numerical optimization and linear algebra with Julia’’ at Optimization Days/Journées de l’optimisation 2022 held at HEC Montréal, May 16-18, 2022. The conference, renowned for its optimization expertise and wine & cheese party, was held in-person for the first time since 2019! The stream featured 16 talks including 6 on JSO-related research. The program of the conference is available here, and the Julia sessions:

\ No newline at end of file + Conference: JuliaSmoothOptimizers at Optimization Days Montréal

Conference: JuliaSmoothOptimizers at Optimization Days Montréal

We organized a steam of sessions on ’’Numerical optimization and linear algebra with Julia’’ at Optimization Days/Journées de l’optimisation 2022 held at HEC Montréal, May 16-18, 2022. The conference, renowned for its optimization expertise and wine & cheese party, was held in-person for the first time since 2019! The stream featured 16 talks including 6 on JSO-related research. The program of the conference is available here, and the Julia sessions:

\ No newline at end of file diff --git a/news-and-blogposts/index.html b/news-and-blogposts/index.html index cb1e10f..5c90d93 100644 --- a/news-and-blogposts/index.html +++ b/news-and-blogposts/index.html @@ -1 +1 @@ - News and Blogposts
\ No newline at end of file + News and Blogposts
\ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e1ac84d..cfa1ab0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1695,9 +1695,9 @@ "dev": true }, "socks": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", - "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, "requires": { "ip-address": "^9.0.5", diff --git a/references/index.html b/references/index.html index a47e0c8..c6cefda 100644 --- a/references/index.html +++ b/references/index.html @@ -4,4 +4,4 @@ doi = {10.5281/zenodo.2655082}, URL = {https://juliasmoothoptimizers.github.io}, year = {2019}, -}

Books

  • Iterative Solution of Symmetric Quasi-Definite Linear Systems, D. Orban, M. Arioli, SIAM, 2017., 10.1137/1.9781611974737

Articles

  • DCISolver.jl: A Julia Solver for Nonlinear Optimization using Dynamic Control of Infeasibility, T. Migot, D. Orban, A. S. Siqueira, Journal of Open Source Software, 7(70), 3991, 2022., 10.21105/joss.03991

  • TriCG and TriMR: Two Iterative Methods for Symmetric Quasi-definite Systems, A. Montoison, D. Orban, SIAM Journal on Scientific Computing, 43(4), A2502–A2525, 2021., 10.1137/20m1363030

  • Exact linesearch limited-memory quasi-Newton methods for minimizing a quadratic function, D. Ek, A. Forsgren, Computational Optimization and Applications, 79(3), 789–816, 2021., 10.1007/s10589-021-00277-4

  • Design and implementation of a modular interior-point solver for linear optimization, M. Tanneau, M. F. Anjos, A. Lodi, Mathematical Programming Computation, 13(3), 509–551, 2021., 10.1007/s12532-020-00200-8

  • A Regularization Method for Constrained Nonlinear Least Squares, D. Orban, A. S. Siqueira, Computational Optimization and Applications, 76, 961–989, 2020., 10.1007/s10589-020-00201-2

  • BiLQ: An Iterative Method for Nonsymmetric Linear Systems with a Quasi-Minimum Error Property, A. Montoison, D. Orban, SIAM Journal on Matrix Analysis and Applications, 41(3), 1145–1166, 2020., 10.1137/19m1290991

  • LNLQ: An Iterative Method for Least-Norm Problems with an Error Minimization Property, R. Estrin, D. Orban, M. A. Saunders, SIAM Journal on Matrix Analysis, 40(3), 1102–1124, 2019., 10.1137/18M1194948

  • A Tridiagonalization Method for Symmetric Saddle-Point System, A. Buttari, D. Orban, D. Ruiz, D. Titley-Peloquin, SIAM Journal on Scientific Computing, 41(5), S409–S432, 2019., 10.1137/18M1194900

  • The Conjugate Residual Method in Linesearch and Trust-Region Methods, M.-A. Dahito, D. Orban, SIAM Journal on Optimization, 29(3), 1988–2025, 2019., 10.1137/18M1204255

  • LSLQ: An Iterative Method for Linear Least-Squares with an Error Minimization Property, R. Estrin, D. Orban, M. A. Saunders, SIAM Journal on Matrix Analysis, 40(1), 254–275, 2019., 10.1137/17M1113552

  • A Unified Efficient Implementation of Trust-region Type Algorithms for Unconstrained Optimization, J.-P. Dussault, INFOR: Information Systems and Operational Research, 58(2), 290–309, 2019., 10.1080/03155986.2019.1624490

Talks

Classes

\ No newline at end of file +}

Books

  • Iterative Solution of Symmetric Quasi-Definite Linear Systems, D. Orban, M. Arioli, SIAM, 2017., 10.1137/1.9781611974737

Articles

  • DCISolver.jl: A Julia Solver for Nonlinear Optimization using Dynamic Control of Infeasibility, T. Migot, D. Orban, A. S. Siqueira, Journal of Open Source Software, 7(70), 3991, 2022., 10.21105/joss.03991

  • TriCG and TriMR: Two Iterative Methods for Symmetric Quasi-definite Systems, A. Montoison, D. Orban, SIAM Journal on Scientific Computing, 43(4), A2502–A2525, 2021., 10.1137/20m1363030

  • Exact linesearch limited-memory quasi-Newton methods for minimizing a quadratic function, D. Ek, A. Forsgren, Computational Optimization and Applications, 79(3), 789–816, 2021., 10.1007/s10589-021-00277-4

  • Design and implementation of a modular interior-point solver for linear optimization, M. Tanneau, M. F. Anjos, A. Lodi, Mathematical Programming Computation, 13(3), 509–551, 2021., 10.1007/s12532-020-00200-8

  • A Regularization Method for Constrained Nonlinear Least Squares, D. Orban, A. S. Siqueira, Computational Optimization and Applications, 76, 961–989, 2020., 10.1007/s10589-020-00201-2

  • BiLQ: An Iterative Method for Nonsymmetric Linear Systems with a Quasi-Minimum Error Property, A. Montoison, D. Orban, SIAM Journal on Matrix Analysis and Applications, 41(3), 1145–1166, 2020., 10.1137/19m1290991

  • LNLQ: An Iterative Method for Least-Norm Problems with an Error Minimization Property, R. Estrin, D. Orban, M. A. Saunders, SIAM Journal on Matrix Analysis, 40(3), 1102–1124, 2019., 10.1137/18M1194948

  • A Tridiagonalization Method for Symmetric Saddle-Point System, A. Buttari, D. Orban, D. Ruiz, D. Titley-Peloquin, SIAM Journal on Scientific Computing, 41(5), S409–S432, 2019., 10.1137/18M1194900

  • The Conjugate Residual Method in Linesearch and Trust-Region Methods, M.-A. Dahito, D. Orban, SIAM Journal on Optimization, 29(3), 1988–2025, 2019., 10.1137/18M1204255

  • LSLQ: An Iterative Method for Linear Least-Squares with an Error Minimization Property, R. Estrin, D. Orban, M. A. Saunders, SIAM Journal on Matrix Analysis, 40(1), 254–275, 2019., 10.1137/17M1113552

  • A Unified Efficient Implementation of Trust-region Type Algorithms for Unconstrained Optimization, J.-P. Dussault, INFOR: Information Systems and Operational Research, 58(2), 290–309, 2019., 10.1080/03155986.2019.1624490

Talks

Classes

\ No newline at end of file diff --git a/sandbox/index.html b/sandbox/index.html index c5e359b..c34ffcf 100644 --- a/sandbox/index.html +++ b/sandbox/index.html @@ -96,7 +96,7 @@

Te \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index dbe3653..d5c9ad1 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -3,79 +3,79 @@ https://jso-docs.github.io/tutorials/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/news-and-blogposts/2022/2022-05-18-jopt22/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/news-and-blogposts/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/news-and-blogposts/2022/2022-03-15-dcisolver/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/ecosystems/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/ecosystems/linear-algebra/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/news-and-blogposts/2022/2022-03-12-new-site/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/references/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/contributing/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/ecosystems/models/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/sandbox/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 https://jso-docs.github.io/ecosystems/solvers/index.html - 2024-04-07 + 2024-04-14 monthly 0.5 diff --git a/tutorials/index.html b/tutorials/index.html index 7778e96..7daa708 100644 --- a/tutorials/index.html +++ b/tutorials/index.html @@ -1 +1 @@ - Tutorials

Tutorials and how-to guides

This is a curated list of tutorials.



External tutorials

This is another list of tutorials, from outside sources.

\ No newline at end of file + Tutorials

Tutorials and how-to guides

This is a curated list of tutorials.



External tutorials

This is another list of tutorials, from outside sources.

\ No newline at end of file