# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - MPCfg.txt - - - - - - - - - - - - - - - -
#
# The ComputeConfig of the :MILPSolver of the MasterProblemBlock used by
# the BundleSolver, shared by MPBCfg.txt and MPBCfg-IP.txt.
#
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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

4 # number of integer parameters

# now all the integer parameters
intLogVerb      0 # log verbosity of the MILPSolver
intRelaxIntVars 1 # nonzero if the continuous relaxation is solved
intCutSepPar    7 # separate user cuts + lazy constraints
intMaxThread    1 # single-threaded for deterministic master reproducibility

# All specific CPLEX parameter (uncomment based on Solver)
#CPXPARAM_LPMethod                1   # 0 = auto, 1 = primal, 2 = dual, 4 =
                                      # barrier
#CPXPARAM_Emphasis_Numerical      1   # numerical precision emphasis

# All specific GUROBI parameter (uncomment based on Solver)
#Method       1   # 0 = primal, 1 = dual simplex, 2 = barrier: the
                  # multipliers of the master ARE the algorithm, and an
                  # interior point has them only to about 1e-7 relative,
                  # which the stopping test of the bundle cannot survive;
                  # besides, the barrier cannot restart from the previous
                  # basis, so it re-solves the master from scratch at every
                  # call, while the simplex re-optimises after the new
                  # columns for a fraction of the iterations
#NumericFocus 1   # 0 = auto, 1..3 = increasing precision focus: the master
                  # is small and re-solved thousands of times, so whatever
                  # extra care is asked is paid at every one of them, and 3
                  # costs a factor two. 0 is not an option: with it the
                  # Lagrangian dual answers Unfeas on a hydrothermal instance
                  # that has a solution, so this is the least care that
                  # answers right
#Presolve      0   # 0 = off, 1 = conservative, 2 = aggressive (default -1):
                  # left off deliberately, a master the presolve reduces is
                  # declared infeasible on tolerance when the model is badly
                  # scaled, and the bundle reads that as a numerical error

3 # number of double parameters

# now all the double parameters
dblRelAcc       1e-08 # relative accuracy required to solution
dblAAccSol      1e-08 # absolute accuracy required to solution
dblRAccSol      1e-08 # relative accuracy of the solution pool

# The master has to satisfy its own rows *tighter* than the oracle satisfies
# its own feasibility, or the loop cannot end: a step that violates a
# vertical row by less than the default 1e-6 is feasible for the master and
# infeasible for the subproblem, which answers with the very cut that is
# already there, and the same iteration repeats forever.
#FeasibilityTol 1e-09 # how much a row of the master may be violated
#OptimalityTol  1e-09 # how much a reduced cost of the master may be off

# All specific HiGHS parameter (uncomment based on Solver)
# (not tighter: at 1e-9 the QP solver of HiGHS fails on the master)
#primal_feasibility_tolerance     1e-9
#dual_feasibility_tolerance       1e-9

0 # number of string parameters

# now all the string parameters
# [none]

#strOutputFile master.lp

# All specific HiGHS parameter (uncomment based on Solver)
#presolve  off    # disable presolve for reproducibility
#solver    ipm    # interior point: converges to analytic center (unique x*)

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 MPCfg.txt - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
