Library Reference
AlgebraicOptimization.CompositionalProgramming.Objectives.MinObj — Type MinObjFinset-algebra implementing composition of minimization problems by variable sharing.
AlgebraicOptimization.CompositionalProgramming.Objectives.PrimalObjective — TypePrimalObjective
An objective defining a minimization problems. These consist of a finset representing the decision variables and a cost function on the decision space. Note the cost function should be autodifferentiable by ForwardDiff.jl.
AlgebraicOptimization.CompositionalProgramming.Objectives.gradient_flow — Method gradient_flow(f::Open{PrimalObjective})Returns the gradient flow optimizer of a given primal objective.
AlgebraicOptimization.CompositionalProgramming.Optimizers.Optimizer — TypeOptimizer
An optimizer is defined by a finite set N representing the state space and a function Rᴺ → Rᴺ representing the dynamics.
AlgebraicOptimization.CompositionalProgramming.Optimizers.pullback_matrix — Method pullback_matrix(f::FinFunction)The pullback of f : n → m is the linear map f^* : Rᵐ → Rⁿ defined by f^*(y)[i] = y[f(i)].
AlgebraicOptimization.CompositionalProgramming.Optimizers.pushforward_matrix — Method pushforward_matrix(f::FinFunction)The pushforward is the dual of the pullback.
AlgebraicOptimization.CompositionalProgramming.FinSetAlgebras.CospanAlgebra — Type CospanAlgebra{T}A cospan-algebra is a lax symmetric monoidal functor (Cospan(FinSet),+) → (Set,×).
AlgebraicOptimization.CompositionalProgramming.FinSetAlgebras.FinSetAlgebra — Type FinSetAlgebra{T}A finset algebra is a lax symmetric monoidal functor (FinSet,+) → (Set,×). We implicitly use the category of Julia types and (pure) functions as a model of Set, so T is the type of objects mapped to by the algebra. Finset algebras must then implement the hom_map and laxator methods.
T must implement dom(x::T)::FinSet, which implicitly defines the object map of a finset-algebra.
AlgebraicOptimization.CompositionalProgramming.FinSetAlgebras.Open — Type Open{T}Given a type T which implements finset-algebra, Open{T} implements cospan-algebra. o::T is an object, S is the domain of o, and m : dom(m) → S specifies which parts of S are open for composition.
AlgebraicOptimization.CompositionalProgramming.FinSetAlgebras.hom_map — Method hom_map(::FinSetAlgebra{T}, ϕ::FinFunction, X::T)::T where TOverload to implement the action of a finset-algebra on morphisms.
AlgebraicOptimization.CompositionalProgramming.FinSetAlgebras.laxator — Method laxator(::FinSetAlgebra{T}, Xs::Vector{T})::T where TOverload to implement the product comparison (aka laxator) of a finset algebra.