void LpBranchingSolver::registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions) { roptions->SetRegisteringCategory("ECP based strong branching",RegisteredOptions::UndocumentedCategory); roptions->AddLowerBoundedIntegerOption ("ecp_max_rounds_strong", "Set the maximal number of rounds of ECP cuts in strong branching.", 0,0, ""); roptions->setOptionExtraInfo("ecp_max_rounds_strong",63); roptions->AddLowerBoundedNumberOption ("ecp_abs_tol_strong", "Set the absolute termination tolerance for ECP rounds in strong branching.", 0,false,1e-6, ""); roptions->setOptionExtraInfo("ecp_abs_tol_strong",63); roptions->AddLowerBoundedNumberOption ("ecp_rel_tol_strong", "Set the relative termination tolerance for ECP rounds in strong branching.", 0,false,1e-1, ""); roptions->setOptionExtraInfo("ecp_rel_tol_strong",63); roptions->AddStringOption2 ("lp_strong_warmstart_method", "Choose method to use for warm starting lp in strong branching", "Basis", "Basis", "Use optimal basis of node", "Clone", "Clone optimal problem of node", "(Advanced stuff)"); roptions->setOptionExtraInfo("lp_strong_warmstart_method",63); }
void BonNWayChoose::registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions) { roptions->SetRegisteringCategory("NWay Strong branching setup", RegisteredOptions::BonminCategory); roptions->AddLowerBoundedIntegerOption("nway_branch_log_level", "Log level for the branching on nways", 0,1, ""); roptions->AddLowerBoundedIntegerOption("strong_branch_depth", "To which level do we perform strong-branching", 0,0, ""); roptions->AddLowerBoundedNumberOption("cutoff_multiplier", "multiplier applied to cutoff_ for computing pseudo-cost of infeasible sub-problems", 1.,0,3., ""); roptions->AddLowerBoundedNumberOption("pseudocost_trust_value", "Trust pseudo cost of best nway object if it is above this value", 0.,0,0, ""); roptions->AddStringOption2("use_geo_means", "Use geometrical means to average pseudo-costs", "yes", "no", "Use artihmetical means", "yes", "Use geometrical means",""); roptions->AddStringOption4("do_fixings", "Do we fix variables in strong branching?", "all", "none", "Don't do any.", "in-tree", "Fix only variables in the tree", "strong-branching", "Fix variable in strong branching only", "all", "Fix whenever possible", ""); }
void HeuristicInnerApproximation::registerOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions> roptions) { roptions->SetRegisteringCategory("Initial Approximations descriptions", Bonmin::RegisteredOptions::UndocumentedCategory); roptions->AddStringOption2("heuristic_inner_approximation", "if yes runs the InnerApproximation heuristic", "yes", "no", "don't run it", "yes", "runs the heuristic", ""); roptions->setOptionExtraInfo("heuristic_inner_approximation", 63); roptions->AddLowerBoundedIntegerOption("number_inner_approximation_points", "Set the number of points to use for linear inner approximation of nonlinear functions in heuristic", 1, 20); roptions->setOptionExtraInfo("number_inner_approximation_points", 63); roptions->AddLowerBoundedNumberOption("inner_time_limit", "Time limit for inner approximation", 0, true, 10, ""); roptions->setOptionExtraInfo("number_inner_approximation_points", 63); }