• Stars
    star
    304
  • Rank 132,929 (Top 3 %)
  • Language
    Julia
  • License
    Other
  • Created about 9 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Julia Basket of Hand-Picked Krylov Methods

Krylov.jl: A Julia basket of hand-picked Krylov methods

Documentation Linux/macOS/Windows/FreeBSD Coverage DOI Downloads
docs-stable docs-dev build-gh build-cirrus codecov doi downloads

How to Cite

If you use Krylov.jl in your work, please cite using the format given in CITATION.bib.

Content

This package provides implementations of certain of the most useful Krylov method for a variety of problems:

  1. Square or rectangular full-rank systems

Ax = b

should be solved when b lies in the range space of A. This situation occurs when

  • A is square and nonsingular,
  • A is tall and has full column rank and b lies in the range of A.
  1. Linear least-squares problems

minimize ‖b - Ax‖

should be solved when b is not in the range of A (inconsistent systems), regardless of the shape and rank of A. This situation mainly occurs when

  • A is square and singular,
  • A is tall and thin.

Underdetermined systems are less common but also occur.

If there are infinitely many such x (because A is column rank-deficient), one with minimum norm is identified

minimize ‖x‖   subject to   x ∈ argmin ‖b - Ax‖.

  1. Linear least-norm problems

minimize ‖x‖   subject to   Ax = b

should be solved when A is column rank-deficient but b is in the range of A (consistent systems), regardless of the shape of A. This situation mainly occurs when

  • A is square and singular,
  • A is short and wide.

Overdetermined systems are less common but also occur.

  1. Adjoint systems

Ax = b   and   Aᴴy = c

where A can have any shape.

  1. Saddle-point and Hermitian quasi-definite systems

[M     A]  [x] = [b]
[Aᴴ   -N]  [y]    [c]

where A can have any shape.

  1. Generalized saddle-point and non-Hermitian partitioned systems

[M   A]  [x] = [b]
[B   N]  [y]    [c]

where A can have any shape and B has the shape of Aá´´. A, B, b and c must be all nonzero.

Krylov solvers are particularly appropriate in situations where such problems must be solved but a factorization is not possible, either because:

  • A is not available explicitly,
  • A would be dense or would consume an excessive amount of memory if it were materialized,
  • factors would consume an excessive amount of memory.

Iterative methods are recommended in either of the following situations:

  • the problem is sufficiently large that a factorization is not feasible or would be slow,
  • an effective preconditioner is known in cases where the problem has unfavorable spectral structure,
  • the operator can be represented efficiently as a sparse matrix,
  • the operator is fast, i.e., can be applied with better complexity than if it were materialized as a matrix. Certain fast operators would materialize as dense matrices.

Features

All solvers in Krylov.jl have in-place version, are compatible with GPU and work in any floating-point data type.

How to Install

Krylov can be installed and tested through the Julia package manager:

julia> ]
pkg> add Krylov
pkg> test Krylov

Bug reports and discussions

If you think you found a bug, feel free to open an issue. Focused suggestions 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 not suited for a bug report, feel free to start a discussion here. This forum is for general discussion about this repository and the JuliaSmoothOptimizers organization, so questions about any of our packages are welcome.

More Repositories

1

NLPModels.jl

Data Structures for Optimization Models
Julia
153
star
2

LinearOperators.jl

Linear Operators for Julia
Julia
149
star
3

OptimizationProblems.jl

Optimization Problems for Julia
Julia
77
star
4

JSOSolvers.jl

Julia
58
star
5

Percival.jl

Implementation of a Augmented Lagrangian method
Julia
50
star
6

MUMPS.jl

A Julia Interface to MUMPS
Julia
40
star
7

HSL.jl

Julia interface to the HSL Mathematical Software Library
Julia
39
star
8

LDLFactorizations.jl

Factorization of Symmetric Matrices
Julia
32
star
9

CUTEst.jl

Julia's CUTEst Interface
Julia
32
star
10

RipQP.jl

Julia
29
star
11

NLPModelsJuMP.jl

Create NLPModels with JuMP
Julia
29
star
12

BenchmarkProfiles.jl

Performance and data profiles
Julia
26
star
13

SolverTools.jl

Tools for developing nonlinear optimization solvers.
Julia
25
star
14

ADNLPModels.jl

Julia
25
star
15

LimitedLDLFactorizations.jl

Limited-Memory Factorization of Symmetric Matrices
Julia
22
star
16

CaNNOLeS.jl

Constrained and NoNlinear Optimizer of Least Squares
Julia
22
star
17

SolverBenchmark.jl

Benchmark tools for solvers
Julia
21
star
18

AMD.jl

Approximate Minimum Degree Ordering in Julia
Julia
19
star
19

AmplNLReader.jl

Julia AMPL Models Conforming to NLPModels.jl
Julia
18
star
20

PDENLPModels.jl

A NLPModel API for optimization problems with PDE-constraints
Julia
18
star
21

QPSReader.jl

A reader for MPS and QPS files
Julia
17
star
22

JSOSuite.jl

One stop solutions for all things optimization
Julia
16
star
23

NLPModelsIpopt.jl

A thin IPOPT wrapper for NLPModels
Julia
16
star
24

PROPACK.jl

Julia wrapper of the PROPACK sparse SVD library
Julia
15
star
25

QuadraticModels.jl

Data structures for linear and quadratic optimization problems based on NLPModels.jl
Julia
15
star
26

DCISolver.jl

Julia
15
star
27

QRMumps.jl

Interface to multicore QR factorization qr_mumps
Julia
12
star
28

NLPModelsKnitro.jl

A thin KNITRO wrapper for NLPModels
Julia
11
star
29

BasicLU.jl

A Julia Interface to BasicLU
Julia
10
star
30

ExpressionTreeForge.jl

Julia
10
star
31

PartitionedStructures.jl

Partitioned derivatives storage and partitioned quasi-Newton updates
Julia
10
star
32

SuiteSparseMatrixCollection.jl

A straightforward interface to the SuiteSparse Matrix Collection
Julia
9
star
33

PartiallySeparableNLPModels.jl

A three-way bridge between ExpressionTreeForge.jl, PartitionedStructures.jl and PartiallySeparableSolvers.jl
Julia
9
star
34

RegularizedOptimization.jl

Algorithms for regularized optimization
Julia
9
star
35

FletcherPenaltySolver.jl

Fletcher's penalty method for nonlinear optimization models
Julia
9
star
36

KnetNLPModels.jl

An NLPModels Interface to Knet
Julia
8
star
37

NLSProblems.jl

Nonlinear Least Squares problems
Julia
8
star
38

PartitionedVectors.jl

Julia
8
star
39

BundleAdjustmentModels.jl

Julia repository of bundle adjustment problems
Julia
8
star
40

PartiallySeparableSolvers.jl

Trust-region methods with partitioned quasi-Newton approximations
Julia
8
star
41

JSOTemplate.jl

Template for JSO packages
Julia
7
star
42

NLPModelsTest.jl

Julia
7
star
43

SparseMatricesCOO.jl

Sparse matrices in coordinate format for Julia
Julia
7
star
44

NCL.jl

A nonlinearly-constrained augmented-Lagrangian method
Julia
6
star
45

FluxNLPModels.jl

Julia
6
star
46

LLSModels.jl

Julia
6
star
47

AdaptiveRegularization.jl

Julia
6
star
48

SolverCore.jl

Julia
6
star
49

DiffKrylov.jl

Julia
6
star
50

NLPModelsModifiers.jl

Julia
6
star
51

DerivativeFreeSolvers.jl

Julia
6
star
52

JSOTutorials.jl

Julia
5
star
53

RegularizedProblems.jl

Test Cases for Regularized Optimization
Julia
5
star
54

ShiftedProximalOperators.jl

Proximal operators for use with RegularizedOptimization
Julia
5
star
55

JuliaSmoothOptimizers.github.io

Organization website
JavaScript
5
star
56

KrylovPreconditioners.jl

The ultimate collection of preconditioners
Julia
5
star
57

Organization

Organization
Julia
4
star
58

SolverTest.jl

Julia
4
star
59

ADNLPModelProblems.jl

A list of optimization problems in ADNLPModel format
Julia
4
star
60

OperatorScaling.jl

Julia
3
star
61

QuadraticModelsGurobi.jl

Julia
3
star
62

ManualNLPModels.jl

NLPModel where all functions are defined by the user
Julia
3
star
63

QuadraticModelsXpress.jl

Julia
2
star
64

OptSolver.jl

Julia
2
star
65

SolverLogger.jl

Julia
2
star
66

QuadraticModelsCPLEX.jl

Julia
2
star
67

LinAlgSolver.jl

Julia
2
star
68

SolverParameters.jl

Julia
2
star
69

PartitionedKnetNLPModels.jl

Julia
2
star
70

MultiPrecisionR2

Mutli-Precision extension of Quadratic Regularization (R2) optimization algorithm to finite precision computations.
Julia
1
star
71

SymCOOSolverInterface.jl

Julia
1
star
72

RegularizationModel.jl

Example of an NLPModel
Julia
1
star