Infinite Models

A technical manual for infinite dimensional models. See the respective guide for more information.

Models

InfiniteOpt.InfiniteModelType
InfiniteModel <: JuMP.AbstractModel

A DataType for storing all of the mathematical modeling information needed to model an optmization problem with an infinite-dimensional decision space.

source
InfiniteOpt.InfiniteModelMethod
InfiniteModel([optimizer_constructor];
              [OptimizerModel::Function = TranscriptionModel,
              add_bridges::Bool = true, optimizer_model_kwargs...])

Return a new infinite model where an optimizer is specified if an optimizer_constructor is given. The optimizer can also later be set with the JuMP.set_optimizer call. By default the optimizer_model data field is initialized with a TranscriptionModel, but a different type of model can be assigned via set_optimizer_model as can be required by extensions.

Example

julia> using InfiniteOpt, JuMP, Ipopt;

julia> model = InfiniteModel()
An InfiniteOpt Model
Feasibility problem with:
Finite Parameters: 0
Infinite Parameters: 0
Variables: 0
Measures: 0
Derivatives: 0
Optimizer model backend information:
Model mode: AUTOMATIC
CachingOptimizer state: NO_OPTIMIZER
Solver name: No optimizer attached.

julia> model = InfiniteModel(Ipopt.Optimizer)
An InfiniteOpt Model
Feasibility problem with:
Finite Parameters: 0
Infinite Parameters: 0
Variables: 0
Measures: 0
Derivatives: 0
Optimizer model backend information:
Model mode: AUTOMATIC
CachingOptimizer state: EMPTY_OPTIMIZER
Solver name: Ipopt
source
JuMP.object_dictionaryMethod
JuMP.object_dictionary(model::InfiniteModel)::Dict{Symbol, Any}

Return the dictionary that maps the symbol name of a macro defined object (e.g., a parameter, variable, or constraint) to the corresponding object. Objects are registered to a specific symbol in the macros. For example, @variable(model, x[1:2, 1:2]) registers the array of variables x to the symbol :x.

source
InfiniteOpt.has_internal_supportsFunction
has_internal_supports(pref::Union{IndependentParameterRef, DependentParameterRef})::Bool

Indicate if pref has internal supports that will be hidden from the user by default.

source
has_internal_supports(prefs; [kwargs...])

Define has_internal_supports for general variable references. It relies on has_internal_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.

source
Base.empty!Method
Base.empty!(model::InfiniteModel)::InfiniteModel

Clear out model of everything except the optimizer information and return the cleared model.

source
JuMP.set_optimize_hookMethod
JuMP.set_optimize_hook(
    model::InfiniteModel, 
    hook::Union{Function, Nothing}
    )::Nothing

Set the function hook as the optimize hook for model where hook should have be of the form hook(model::GenericModel; hook_specfic_kwargs..., kwargs...). The kwargs are those passed to optimize!. The hook_specifc_kwargs are passed as additional keywords by the user when they call optimize!.

Notes

  • The optimize hook should generally modify the model, or some external state

in some way, and then call optimize!(model; ignore_optimize_hook = true) to optimize the problem, bypassing the hook.

  • Use set_optimize_hook(model, nothing) to unset an optimize hook.
source

Abstract Dependencies

InfiniteOpt.AbstractDataObjectType
AbstractDataObject

An abstract type for DataTypes that store core variable DataTypes and their model specific information (e.g., dependency mappings). These are what are stored in the InfiniteModel CleverDicts.

source
InfiniteOpt.ObjectIndexType
ObjectIndex <: AbstractInfOptIndex

An abstract type for indices of objects stored in MOI.Utilities.CleverDicts.

source