Multinomial symmetric matrices
Manifolds.MultinomialSymmetric
— TypeMultinomialSymmetric{n} <: AbstractMultinomialDoublyStochastic{N}
The multinomial symmetric matrices manifold consists of all symmetric $n×n$ matrices with positive entries such that each column sums to one, i.e.
\[\begin{aligned} \mathcal{SP}(n) \coloneqq \bigl\{p ∈ ℝ^{n×n}\ \big|\ &p_{i,j} > 0 \text{ for all } i=1,…,n, j=1,…,m,\\ & p^\mathrm{T} = p,\\ & p\mathbf{1}_n = \mathbf{1}_n \bigr\}, \end{aligned}\]
where $\mathbf{1}_n$ is the vector of length $n$ containing ones.
It is modeled as an DefaultIsometricEmbeddingType
, AbstractEmbeddedManifold
via the AbstractMultinomialDoublyStochastic
type, since it shares a few functions also with AbstractMultinomialDoublyStochastic
, most and foremost projection of a point from the embedding onto the manifold.
The tangent space can be written as
\[T_p\mathcal{SP}(n) \coloneqq \bigl\{ X ∈ ℝ^{n×n}\ \big|\ X = X^{\mathrm{T}} \text{ and } X\mathbf{1}_n = \mathbf{0}_n \bigr\},\]
where $\mathbf{0}_n$ is the vector of length $n$ containing zeros.
More details can be found in Section IV[DouikHassibi2019].
Constructor
MultinomialSymmetric(n)
Generate the manifold of matrices $\mathbb R^{n×n}$ that are doubly stochastic and symmetric.
ManifoldsBase.check_point
— Methodcheck_point(M::MultinomialSymmetric, p)
Checks whether p
is a valid point on the MultinomialSymmetric
(m,n)
M
, i.e. is a symmetric matrix with positive entries whose rows sum to one.
ManifoldsBase.check_vector
— Methodcheck_vector(M::MultinomialSymmetric p, X; kwargs...)
Checks whether X
is a valid tangent vector to p
on the MultinomialSymmetric
M
. This means, that p
is valid, that X
is of correct dimension, symmetric, and sums to zero along any row.
ManifoldsBase.manifold_dimension
— Methodmanifold_dimension(M::MultinomialSymmetric{n}) where {n}
returns the dimension of the MultinomialSymmetric
manifold namely
\[\operatorname{dim}_{\mathcal{SP}(n)} = \frac{n(n-1)}{2}.\]
ManifoldsBase.project
— Methodproject(M::MultinomialSymmetric{n}, p, Y) where {n}
Project Y
onto the tangent space at p
on the MultinomialSymmetric
M
, return the result in X
. The formula reads
\[ \operatorname{proj}_p(Y) = Y - (α\mathbf{1}_n^{\mathrm{T}} + \mathbf{1}_n α^{\mathrm{T}}) ⊙ p,\]
where $⊙$ denotes the Hadamard or elementwise product and $\mathbb{1}_n$ is the vector of length $n$ containing ones. The two vector $α ∈ ℝ^{n×n}$ is given by solving
\[ (I_n+p)α = Y\mathbf{1},\]
where $I_n$ is teh $n×n$ unit matrix and $\mathbf{1}_n$ is the vector of length $n$ containing ones.
ManifoldsBase.retract
— Methodretract(M::MultinomialSymmetric, p, X, ::ProjectionRetraction)
compute a projection based retraction by projecting $p\odot\exp(X⨸p)$ back onto the manifold, where $⊙,⨸$ are elementwise multiplication and division, respectively. Similarly, $\exp$ refers to the elementwise exponentiation.
ManifoldsBase.vector_transport_to
— Methodvector_transport_to(M::MultinomialSymmetric, p, X, q)
transport the tangent vector X
at p
to q
by projecting it onto the tangent space at q
.
Literature
- DouikHassibi2019
A. Douik, B. Hassibi: AbstractManifold Optimization Over the Set of Doubly Stochastic Matrices: A Second-Order Geometry, IEEE Transactions on Signal Processing 67(22), pp. 5761–5774, 2019. doi: 10.1109/tsp.2019.2946024, arXiv: 1802.02628.