# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - LDCfg.txt - - - - - - - - - - - - - - - - -
#
# A txt description of a ComputeConfig for the LagrangianDualSolver relaxing
# the consensus constraints tying the chunks a SVMBlock is split into; it
# basically is the ComputeConfig of the inner Solver, which is a BundleSolver
#
#   Enrico Gorgone, Antonio Frangioni, Donato Meoli
#
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ComputeConfig # exact type of the ComputeConfig object

1  # f_diff == 0 ==> all non-provided parameters are set to the default value
   # f_diff == 1 ==> all non-provided parameters are not changed

28 # number of integer parameters

# now all the integer parameters
# first those of LagrangianDualSolver proper
int_LDSlv_iBCopy       0 # 1 if sub-Block must be R3B-copied
int_LDSlv_NNMult       0 # the consensus constraints are equalities, hence
                         # their multipliers are free
intPushCostToOwner     1 # the value of intPushCostToOwner for the LagBF

# then those of BundleSolver as its inner Solver
intDoEasy              0 # do not do easy components even for LagBFunction
intMaxIter         10000 # MaxIter, max number of iterations for each call
intLogVerb             0 # LogVerb, log verbosity of main Bundle algorithm

intWZNorm              2 # which norm to use in the norm-based stopping condition
intBPar1              20 # discard items when they have been useless for <this> iterations
intBPar2             400 # max bundle size per component
intBPar3               1 # max n. of items to fetch from Fi() at each iteration
intBPar4               1 # min n. of items to fetch from Fi() at each iteration
intBPar6               0 # second parameter for dynamic max n. of items per iteration
intBPar7              11 # how to deal with the global pools
intMnSSC               0 # min number of consecutive SS with the same t for a t increase
intMnNSC               1 # min number of consecutive NS with the same t for a t decrease
inttSPar1             12 # long-term t-strategy (0 = none, 4 = soft, 8 = hard, 12 = balancing)
intMaxThread           1

intMaxNrEvls           2 # maximum number of function evaluations at each iteration

intFrcLstSS            0 # if all the components need be computed at the optimum

intTrgtMng             0 # bit-wise encoding targets and accuracies management:
                         # bit 0: if lower/upper target is set to each convex/concave component
                         # bit 1: if upper/lower target is set to each convex/concave component
                         # bit 2-3: if accuracy is set (2 = upper - lower, 3 = using EpsU)
                         # bit 4: if Lipschitz constant is used to compute the upper model

# MPSolver parameters : - - - - - - - - - - - - - - - - - - - - - - - - - - -

intMPName             15 # MP solver: 0 = QPP, 7 = Cplex/Gurobi with quadratic stabilization
                         # + 8 = check for duplicate linearizations

# QPPenalty's parameters :- - - - - - - - - - - - - - - - - - - - - - - - - -

intMPlvl               4 # log verbosity of Master Problem
                  
intQPmp1               0 # MxAdd, how many variables can be added to the base at each
                         # iteration in BMinQuad (0 = at will)
intQPmp2               0 # MxRmv, how many variables can be removed from the base at each
                         # iteration in BMinQuad (0 = at will)

# OSIMPSolver's parameters :- - - - - - - - - - - - - - - - - - - - - - - - -

intOSImp1              1 # Osi(Cpx/Grb)Solver algorithm (0 = auto (default),
                         # 1 = primal, 2 = dual, 3 = network, 4 = barrier,
                         # 5 = sifting, 6 = concurrent)
intOSImp2              3 # pre-processing (reduction)
intOSImp3              1 # threads
intRstAlg              2 # parameter to handle the reset of the algorithm

17 # number of double parameters

# now all the double parameters
dblRelAcc           1e-7 # relative accuracy required to solution
dblNZEps            1e-8 # stopping parameter: threshold to declare 0 the || residual ||
dbltStar            1e+3 # stopping parameter: multiplied to || residual || to
                         # estimate the gap. The multipliers of the consensus
                         # constraints price the components of the weight
                         # vector, whose scale grows with the number of chunks:
                         # with the customary 1e+1 the estimate is optimistic
                         # and the bundle stops with a gap of the order of
                         # 1e-4, while this closes it to 1e-7 at no cost in
                         # time, the criterion only becoming stricter
dblBPar5               4 # first parameter for dynamic max n. of items per iteration
dblm1              -0.01 # a NS is possible if (~) Fi( Lambda1 ) >= Fi( Lambda ) + | m1 | v*
dblm2               0.99 # a SS is possible if Fi( Lambda1 ) <= Fi( Lambda ) + ( 1 - m2 ) v*
dblm3               0.99 # a NR is computed if \sigma^* < - t * m3 * || z* ||
dblmxIncr             10 # max increase of t
dblmnIncr            1.5 # min increase of t (each time it is increased)
dblmxDecr            0.1 # max decrease of t
dblmnDecr           0.66 # min decrease of t (each time it is decreased)
dbltMaior           1e+6 # maximum value for t
dbltMinor           1e-4 # minimum value for t
dbltInit            1e-2 # initial value for t
dbltSPar2          0.001 # parameter for the long-term t-strategy
dbltSPar3              0 # parameter for small heuristic t adjustments
dblCtOff            0.01 # cut-off factor for pricing in MinQuad

2 # number of string parameters

# now all the string parameters
# first those of LagrangianDualSolver proper
str_LDSlv_ISName   BundleSolver # the inner Solver used by LagrangianDualSolver
str_LagBF_BSCfg     LPBSCfg.txt # the BlockSolverConfig for inner Block

# then those of BundleSolver as its inner Solver
# [none]

0 # number of vector-of-int parameters

# now all the vector-of-int parameters
# [none]

0 # number of vector-of-double parameters

# now all the vector-of-double parameters
# [none]

0 # number of vector-of-string parameters

# now all the vector-of-string parameters
# [none]

# pointer to the "extra" Configuration
* # [none]

# end of 2nd ComputeConfig- - - - - - - - - - - - - - - - - - - - - - - - - -



# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - END LDCfg.txt - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
