/home/coin/SVN-release/CoinAll-1.1.0/SYMPHONY/include/sym_lp_params.h

Go to the documentation of this file.
00001 /*===========================================================================*/
00002 /*                                                                           */
00003 /* This file is part of the SYMPHONY MILP Solver Framework.                  */
00004 /*                                                                           */
00005 /* SYMPHONY was jointly developed by Ted Ralphs (tkralphs@lehigh.edu) and    */
00006 /* Laci Ladanyi (ladanyi@us.ibm.com).                                        */
00007 /*                                                                           */
00008 /* (c) Copyright 2000-2008 Ted Ralphs. All Rights Reserved.                  */
00009 /*                                                                           */
00010 /* This software is licensed under the Common Public License. Please see     */
00011 /* accompanying file for terms.                                              */
00012 /*                                                                           */
00013 /*===========================================================================*/
00014 
00015 #ifndef _LP_PARAMS_H
00016 #define _LP_PARAMS_H
00017 
00018 #include "sym_constants.h"
00019 #include "sym_timemeas.h"
00020 
00021 /*---------------------------------------------------------------------------*\
00022 | The list of parameters associated with processing a node in the branch and  |
00023 | cut tree. See the README file for an explanation of the parameters          |
00024 \*---------------------------------------------------------------------------*/
00025 
00026 typedef struct CUT_TIME_OUT{
00027    double            first_cut_time_out;
00028    double            all_cuts_time_out;
00029 }cut_time_out;
00030 
00031 typedef struct CGL_PARAMS{
00032    /* Cut generation in LP */
00033    int               generate_cgl_cuts;
00034    int               generate_cgl_gomory_cuts;
00035    int               generate_cgl_redsplit_cuts;
00036    int               generate_cgl_knapsack_cuts;
00037    int               generate_cgl_oddhole_cuts;
00038    int               generate_cgl_probing_cuts;
00039    int               generate_cgl_mir_cuts;
00040    int               generate_cgl_twomir_cuts;
00041    int               generate_cgl_clique_cuts;
00042    int               generate_cgl_flow_and_cover_cuts;
00043    int               generate_cgl_rounding_cuts;
00044    int               generate_cgl_lift_and_project_cuts;
00045    int               generate_cgl_landp_cuts;
00046 
00047    int               generate_cgl_gomory_cuts_freq;
00048    int               generate_cgl_redsplit_cuts_freq;
00049    int               generate_cgl_knapsack_cuts_freq;
00050    int               generate_cgl_oddhole_cuts_freq;
00051    int               generate_cgl_probing_cuts_freq;
00052    int               generate_cgl_mir_cuts_freq;
00053    int               generate_cgl_twomir_cuts_freq;
00054    int               generate_cgl_clique_cuts_freq;
00055    int               generate_cgl_flow_and_cover_cuts_freq;
00056    int               generate_cgl_rounding_cuts_freq;
00057    int               generate_cgl_lift_and_project_cuts_freq;
00058    int               generate_cgl_landp_cuts_freq;
00059 
00060    int               gomory_generated_in_root;
00061    int               redsplit_generated_in_root;
00062    int               knapsack_generated_in_root;
00063    int               oddhole_generated_in_root;
00064    int               probing_generated_in_root;
00065    int               mir_generated_in_root;
00066    int               twomir_generated_in_root;
00067    int               clique_generated_in_root;
00068    int               flow_and_cover_generated_in_root;
00069    int               rounding_generated_in_root;
00070    int               lift_and_project_generated_in_root;
00071    int               landp_generated_in_root;
00072 }cgl_params;
00073 
00074 typedef struct LP_PARAMS{
00075    int               verbosity;
00076    double            granularity;
00077    int               use_cg;
00078    int               set_obj_upper_lim;
00079    int               do_primal_heuristic;
00080    double            time_limit;
00081 
00082    /* these two are passed directly to the lp solver */
00083    int               scaling;
00084    int               fastmip;
00085 
00086    int               try_to_recover_from_error;
00087    /* ZERO_ONE_PROBLEM / INTEGER_PROBLEM / MIXED_INTEGER_PROBLEM */
00088    int               problem_type;
00089    int               keep_description_of_pruned;
00090 
00091    int               not_fixed_storage_size;
00092 
00093    int               cut_pool_check_freq;
00094 
00095    int               load_balance_level;
00096    int               load_balance_iterations;
00097    int               load_balance_compare_candidates;
00098 
00099    double            fractional_diving_ratio;
00100    int               fractional_diving_num;
00101 
00102    /* parameters constraining the growth of the matrix */
00103    double            max_non_dual_feas_to_add_frac;
00104    int               max_non_dual_feas_to_add_min;
00105    int               max_non_dual_feas_to_add_max;
00106    double            max_not_fixable_to_add_frac;
00107    int               max_not_fixable_to_add_min;
00108    int               max_not_fixable_to_add_max;
00109 
00110    int               mat_col_compress_num;
00111    double            mat_col_compress_ratio;
00112    int               mat_row_compress_num;
00113    double            mat_row_compress_ratio;
00114 
00115    /* parameters governing tailing off checking */
00116    int               tailoff_gap_backsteps;
00117    double            tailoff_gap_frac;
00118    int               tailoff_obj_backsteps;
00119    double            tailoff_obj_frac;
00120    double            tailoff_absolute;
00121 
00122    int               ineff_cnt_to_delete;
00123    int               eff_cnt_before_cutpool;
00124    int               ineffective_constraints;
00125    int               base_constraints_always_effective;
00126 
00127    int               branch_on_cuts;   /* TRUE / FALSE */
00128    int               discard_slack_cuts;
00129 
00130    cut_time_out      first_lp;
00131    cut_time_out      later_lp;
00132 
00133    int               max_cut_num_per_iter;
00134 
00135    /* Reduced cost and logical fixing parameters */
00136    int               do_reduced_cost_fixing;
00137    double            gap_as_ub_frac;
00138    double            gap_as_last_gap_frac;
00139    int               do_logical_fixing;
00140    int               fixed_to_ub_before_logical_fixing; /* OK */
00141    double            fixed_to_ub_frac_before_logical_fixing; /* OK */
00142 
00143    /* CGL parameters */
00144    cgl_params        cgl;
00145    
00146    /* Parameters affecting branching */
00147    int               max_presolve_iter;
00148 
00149    /*Defaults for the user supplied routines*/
00150    int               is_feasible_default;
00151    int               send_feasible_solution_default;
00152    int               display_solution_default;
00153    int               shall_we_branch_default;
00154    int               select_candidates_default;
00155    int               strong_branching_cand_num_min;
00156    int               strong_branching_cand_num_max;
00157    double            strong_branching_red_ratio;
00158    int               use_hot_starts;
00159    int               compare_candidates_default;
00160    int               select_child_default;
00161    int               pack_lp_solution_default;
00162 
00163    /* Multi-criteria parameters */
00164    int               multi_criteria;
00165    int               mc_find_supported_solutions;
00166    int               mc_add_optimality_cuts;
00167    double            mc_rho;   /* For augmented Chebyshev norm */
00168    double            mc_gamma; /* Weight on first objective */
00169    double            mc_tau;   /* Weight on second objective */
00170 
00171    int               sensitivity_analysis;
00172 
00173 }lp_params;
00174 
00175 #endif

Generated on Sun Nov 14 14:06:42 2010 for Coin-All by  doxygen 1.4.7