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
— TypeCDCPSolver
Abstract type for all solution algorithms for a CDCProblem
.
See also Naive
, Squeezing
, SqueezingPolicy
.
CDCP.Naive
— TypeNaive{Z} <: CDCPSolver
A type for solving a CDCProblem
with exhaustion.
CDCP.Squeezing
— TypeSqueezing{V <: AbstractVector,Z} <: CDCPSolver
A 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} <: CDCPSolver
A type for solving a CDCProblem
with policy function squeezing.
See also solve
.
Fields
scdca::Bool
intervalchoices::Vector{IntervalChoice{Z,V}}
squeezing_indices::Vector{Int}
branching_indices::Vector{Int}
zero_margin::F1
equal_obj::F2
singlecdcp::S
obj2::O
skiprefinement::Bool
maxfcall::Int