Internals
Objective function
CDCP.Objective — TypeObjective{F,V <: AbstractVector}A wrapped objective function for solving a CDCProblem. This facilitates maintaining an internal interface for dealing with objective functions that is independent from user interface.
Users are not required to construct Objective unless there is a need for fine-grained control.
Fields
f::F: objective functionℒ::V: the decision vector at which to evaluate the objective functionfcall::Int = 0: the number of times the objective has been called, used to track whether the maximum number of objective calls has been reached (see alsoCDCProblem)
CDCP.margin — Functionmargin(obj::Objective, ℓ::Int, z)Evaluate the change in obj with optional parameter z when the ℓth item is included or not. This corresponds to the D_j function in earlier implementation.
Solution methods
CDCP.CDCPSolver — TypeCDCPSolverAbstract type for all solution algorithms for a CDCProblem.
See also Naive, Squeezing, SqueezingPolicy.
CDCP.Naive — TypeNaive{Z} <: CDCPSolverA type for solving a CDCProblem with exhaustion.
CDCP.Squeezing — TypeSqueezing{V <: AbstractVector,Z} <: CDCPSolverA type for solving a CDCProblem with single-agent squeezing.
See also solve.
Fields
scdca::Bool: does the problem obey single crossing differences in choices from above? (iffalse, then from below is assumed)branching::Vector{V}: container holding branching outcomesz: the parameter (e.g. productivity) of the problembranch::Bool = true: whether or not to branch
CDCP.SqueezingPolicy — TypeSqueezingPolicy{Z,V<:AbstractVector{ItemState},F1,F2,S,O} <: CDCPSolverA type for solving a CDCProblem with policy function squeezing.
See also solve.
Fields
scdca::Boolintervalchoices::Vector{IntervalChoice{Z,V}}squeezing_indices::Vector{Int}branching_indices::Vector{Int}zero_margin::F1equal_obj::F2singlecdcp::Sobj2::Oskiprefinement::Boolmaxfcall::Int