Infinite Models
A technical manual for infinite dimensional models. See the respective guide for more information.
Models
InfiniteOpt.InfiniteModel
— TypeInfiniteModel <: JuMP.AbstractModel
A DataType
for storing all of the mathematical modeling information needed to model an optmization problem with an infinite-dimensional decision space.
Fields
independent_params::MOIUC.CleverDict{IndependentParameterIndex, ScalarParameterData{IndependentParameter}}
: The independent parameters and their mapping information.dependent_params::MOIUC.CleverDict{DependentParametersIndex, MultiParameterData}
: The dependent parameters and their mapping information.finite_params::MOIUC.CleverDict{FiniteParameterIndex, ScalarParameterData{FiniteParameter}}
: The finite parameters and their mapping information.name_to_param::Union{Dict{String, AbstractInfOptIndex}, Nothing}
: Field to help find a parameter given the name.last_param_num::Int
: The last parameter number to be used.param_object_indices::Vector{Union{IndependentParameterIndex, DependentParametersIndex}}
: The collection of parameter object indices in creation order.param_functions::MOIUC.CleverDict{ParameterFunctionIndex, ParameterFunctionData{ParameterFunction}}
: The infinite parameter functions and their mapping information.infinite_vars::MOIUC.CleverDict{InfiniteVariableIndex, <:VariableData{<:InfiniteVariable}}
: The infinite variables and their mapping information.semi_infinite_vars::MOIUC.CleverDict{SemiInfiniteVariableIndex, <:VariableData{<:SemiInfiniteVariable}}
: The semi-infinite variables and their mapping information.semi_lookup::Dict{<:Tuple, SemiInfiniteVariableIndex}
: Look-up if a variable already already exists.point_vars::MOIUC.CleverDict{PointVariableIndex, <:VariableData{<:PointVariable}}
: The point variables and their mapping information.point_lookup::Dict{<:Tuple, PointVariableIndex}
: Look-up if a variable already exists.finite_vars::MOIUC.CleverDict{FiniteVariableIndex, VariableData{JuMP.ScalarVariable{Float64, Float64, Float64, Float64}}}
: The finite variables and their mapping information.name_to_var::Union{Dict{String, AbstractInfOptIndex}, Nothing}
: Field to help find a variable given the name.derivatives::MOIUC.CleverDict{DerivativeIndex, <:VariableData{<:Derivative}}
: The derivatives and their mapping information.deriv_lookup::Dict{<:Tuple, DerivativeIndex}
: Map derivative variable-parameter pairs to a derivative index to prevent duplicates.measures::MOIUC.CleverDict{MeasureIndex, <:MeasureData}
: The measures and their mapping information.integral_defaults::Dict{Symbol}
: The default keyword arguments forintegral
.constraints::MOIUC.CleverDict{InfOptConstraintIndex, <:ConstraintData}
: The constraints and their mapping information.constraint_restrictions::Dict{InfOptConstraintIndex, <:DomainRestrictions}
Map constraints to their domain restrictions if they have any.name_to_constr::Union{Dict{String, InfOptConstraintIndex}, Nothing}
: Field to help find a constraint given the name.objective_sense::MOI.OptimizationSense
: Objective sense.objective_function::JuMP.AbstractJuMPScalar
: Finite scalar function.objective_has_measures::Bool
: Does the objective contain measures?registrations::Vector{RegisteredFunction}
: The nonlinear registered functions.Dict{Tuple{Symbol, Int}, Function}
: Map a name and number of arguments to a registered function.obj_dict::Dict{Symbol, Any}
: Store Julia symbols used withInfiniteModel
optimizer_constructor
: MOI optimizer constructor (e.g., Gurobi.Optimizer).optimizer_model::JuMP.Model
: Model used to solveInfiniteModel
ready_to_optimize::Bool
: Is the optimizer_model up to date.ext::Dict{Symbol, Any}
: Store arbitrary extension information.
InfiniteOpt.InfiniteModel
— MethodInfiniteModel([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
JuMP.object_dictionary
— MethodJuMP.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
.
InfiniteOpt.has_internal_supports
— Functionhas_internal_supports(pref::Union{IndependentParameterRef, DependentParameterRef})::Bool
Indicate if pref
has internal supports that will be hidden from the user by default.
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
.
Base.empty!
— MethodBase.empty!(model::InfiniteModel)::InfiniteModel
Clear out model
of everything except the optimizer information and return the cleared model.
Abstract Dependencies
InfiniteOpt.AbstractDataObject
— TypeAbstractDataObject
An abstract type for DataType
s that store core variable DataType
s and their model specific information (e.g., dependency mappings). These are what are stored in the InfiniteModel
CleverDict
s.
InfiniteOpt.AbstractInfOptIndex
— TypeAbstractInfOptIndex
An abstract type for all index objects used in InfiniteOpt
.
InfiniteOpt.ObjectIndex
— TypeObjectIndex <: AbstractInfOptIndex
An abstract type for indices of objects stored in MOI.Utilities.CleverDicts
.