Skip to content

Commit

Permalink
Merge branch 'master' into mbaran/safer-step-qn
Browse files Browse the repository at this point in the history
# Conflicts:
#	Changelog.md
  • Loading branch information
kellertuer committed Mar 3, 2024
2 parents 9a6f6d1 + 5253f86 commit 92d47b1
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 16 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ docs/src/tutorials/*.html
docs/src/changelog.md
docs/styles/Google
tutorials/LocalPreferences.toml
temp
11 changes: 9 additions & 2 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,18 @@ All notable Changes to the Julia package `Manopt.jl` will be documented in this
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.4.55] unreleased
## [0.4.55] March 3, 2024

### Added

* Option `nondescent_direction_behavior` for quasi-Newton solvers. By default it checks for non-descent direction which may not be handled well by some stepsize selection algorithms.
* Option `nondescent_direction_behavior` for quasi-Newton solvers.
By default it checks for non-descent direction which may not be handled well by
some stepsize selection algorithms.

### Fixed

* unified documentation, especially function signatures further.
* fixed a few typos related to math formulae in the doc strings.

## [0.4.54] February 28, 2024

Expand Down
4 changes: 1 addition & 3 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ Colors = "5ae59095-9a9b-59fe-a467-6f913c188581"
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
LinearOperators = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125"
ManifoldDiff = "af67fdf4-a580-4b9f-bbec-742ef357defd"
ManifoldsBase = "3362f125-f0bb-47a3-aa74-596ffd7ef2fb"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
Expand Down Expand Up @@ -49,7 +48,6 @@ Dates = "1.6"
JuMP = "1.15"
LRUCache = "1.4"
LinearAlgebra = "1.6"
LinearOperators = "~2.6"
ManifoldDiff = "0.3.8"
Manifolds = "0.9.11"
ManifoldsBase = "0.15"
Expand All @@ -61,7 +59,7 @@ Printf = "1.6"
QuadraticModels = "0.9"
Random = "1.6"
Requires = "0.5, 1"
RipQP = "0.6"
RipQP = "0.6.4"
SparseArrays = "1.6"
Statistics = "1.6"
Test = "1.6"
Expand Down
6 changes: 4 additions & 2 deletions src/solvers/NelderMead.jl
Original file line number Diff line number Diff line change
Expand Up @@ -169,8 +169,10 @@ function set_iterate!(O::NelderMeadState, ::AbstractManifold, p)
end

@doc raw"""
NelderMead(M::AbstractManifold, f [, population::NelderMeadSimplex])
NelderMead(M::AbstractManifold, mco::AbstractManifoldCostObjective [, population::NelderMeadSimplex])
NelderMead(M::AbstractManifold, f)
NelderMead(M::AbstractManifold, f, population::NelderMeadSimplex)
NelderMead(M::AbstractManifold, mco::AbstractManifoldCostObjective)
NelderMead(M::AbstractManifold, mco::AbstractManifoldCostObjective, population::NelderMeadSimplex)
Solve a Nelder-Mead minimization problem for the cost function ``f: \mathcal M`` on the
manifold `M`. If the initial population `p` is not given, a random set of
Expand Down
16 changes: 8 additions & 8 deletions src/solvers/particle_swarm.jl
Original file line number Diff line number Diff line change
Expand Up @@ -158,19 +158,19 @@ The aim of PSO is to find the particle position ``p`` on the `Manifold M` that s
\min_{p ∈\mathcal{M}} F(p).
```
To this end, a swarm ``S = \{s_1,\ldots_s_n\}`` of particles is moved around the manifold `M` in the following manner.
To this end, a swarm ``S = \{s_1, \ldots, s_n\}`` of particles is moved around the manifold `M` in the following manner.
For every particle ``s_k^{(i)}`` the new particle velocities ``X_k^{(i)}`` are computed in every step ``i`` of the algorithm by
```math
begin{aligned*}
X_k^{(i)} &= ω \, \operatorname{T}_{s_k^{(i)}\gets s_k^{(i-1)}}X_k^{(i-1)} + c r_1 \operatorname{retr}_{s_k^{(i)}}^{-1}(p_k^{(i)}) + s r_2 \operatorname{retr}_{s_k^{(i)}}^{-1}(p),
X_k^{(i)} = ω \, \operatorname{T}_{s_k^{(i)}\gets s_k^{(i-1)}}X_k^{(i-1)} + c r_1 \operatorname{retr}_{s_k^{(i)}}^{-1}(p_k^{(i)}) + s r_2 \operatorname{retr}_{s_k^{(i)}}^{-1}(p),
```
where ``s_k^{(i)}`` is the current particle position, ``ω`` denotes the inertia,
``c`` and ``s`` are a cognitive and a social weight, respectively,
``r_j``, ``j=1,2`` are random factors which are computed new for each particle and step,
``\operatorname{retr}^{-1}`` denotes an inverse retraction on the `Manifold` `M`, and
``\operatorname{T}`` is a vector transport.
where
* ``s_k^{(i)}`` is the current particle position,
* ``ω`` denotes the inertia,
* ``c`` and ``s`` are a cognitive and a social weight, respectively,
* ``r_j``, ``j=1,2`` are random factors which are computed new for each particle and step
* ``T`` denotes the vector transport and ``\operatorname{retr}^{-1}`` the inverse retraction used
Then the position of the particle is updated as
Expand Down
2 changes: 1 addition & 1 deletion test/solvers/test_convex_bundle_method.jl
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ using Manopt: sectional_curvature, ζ_1, ζ_2, close_point
)
@test -10eps() cbms3.ϱ 10eps()
end
@testset "A simple median rum" begin
@testset "A simple median run" begin
M = Sphere(2)
p1 = [1.0, 0.0, 0.0]
p2 = 1 / sqrt(2) .* [1.0, 1.0, 0.0]
Expand Down

0 comments on commit 92d47b1

Please sign in to comment.