coin-Bcp
Public Types | List of all members
BCP_lp_par Struct Reference

Parameters used in the LP process. More...

#include <BCP_lp_param.hpp>

Inheritance diagram for BCP_lp_par:
Inheritance graph
[legend]

Public Types

enum  chr_params {
  BranchOnCuts, CompareNewCutsToOldOnes, CompareNewVarsToOldOnes, DoReducedCostFixingAtZero,
  DoReducedCostFixingAtAnything, MessagePassingIsSerial, ReportWhenDefaultIsExecuted, SendFathomedNodeDesc,
  NoCompressionAtFathom, UseExplicitStorage, Lp_DumpNodeDescCuts, Lp_DumpNodeDescVars,
  LpVerb_First, LpVerb_AddedCutCount, LpVerb_AddedVarCount, LpVerb_ChildrenInfo,
  LpVerb_ColumnGenerationInfo, LpVerb_CutsToCutPoolCount, LpVerb_VarsToVarPoolCount, LpVerb_FathomInfo,
  LpVerb_IterationCount, LpVerb_RelaxedSolution, LpVerb_FinalRelaxedSolution, LpVerb_LpMatrixSize,
  LpVerb_LpSolutionValue, LpVerb_MatrixCompression, LpVerb_NodeTime, LpVerb_PresolvePositions,
  LpVerb_PresolveResult, LpVerb_ProcessedNodeIndex, LpVerb_ReportCutGenTimeout, LpVerb_ReportVarGenTimeout,
  LpVerb_ReportLocalCutPoolSize, LpVerb_ReportLocalVarPoolSize, LpVerb_RepricingResult, LpVerb_VarTightening,
  LpVerb_RowEffectivenessCount, LpVerb_StrongBranchPositions, LpVerb_StrongBranchResult, LpVerb_GeneratedCutCount,
  LpVerb_GeneratedVarCount, LpVerb_Last, end_of_chr_params
}
 Character parameters. More...
 
enum  int_params {
  NiceLevel, ScaleMatrix, SlackCutDiscardingStrategy, CutEffectiveCountBeforePool,
  CutPoolCheckFrequency, VarPoolCheckFrequency, IneffectiveConstraints, IneffectiveBeforeDelete,
  MaxNonDualFeasToAdd_Min, MaxNonDualFeasToAdd_Max, CutViolationNorm, MaxCutsAddedPerIteration,
  MaxVarsAddedPerIteration, MaxLeftoverCutNum, DeletedColToCompress_Min, DeletedRowToCompress_Min,
  MaxPresolveIter, StrongBranchNum, StrongBranch_CloseToHalfNum, BranchingObjectComparison,
  ChildPreference, FeasibilityTest, WarmstartInfo, InfoForCG,
  InfoForVG, end_of_int_params
}
 Integer parameters. More...
 
enum  dbl_params {
  Granularity, DeletedColToCompress_Frac, DeletedRowToCompress_Frac, MaxNonDualFeasToAdd_Frac,
  MaxLeftoverCutFrac, IntegerTolerance, FirstLP_FirstCutTimeout, LaterLP_FirstCutTimeout,
  FirstLP_AllCutsTimeout, LaterLP_AllCutsTimeout, FirstLP_FirstVarTimeout, LaterLP_FirstVarTimeout,
  FirstLP_AllVarsTimeout, LaterLP_AllVarsTimeout, MaxRunTime, end_of_dbl_params
}
 Double parameters. More...
 
enum  str_params { LogFileName, end_of_str_params }
 String parameters. More...
 
enum  str_array_params { str_array_dummy, end_of_str_array_params }
 There are no string array parameters. More...
 
Verbosity Parameters.
  These are all true/false parameters; if the parameter value is set
  then the corresponding information is printed.

Detailed Description

Parameters used in the LP process.

These parameters can be set in the original parameter file by including the following line:
BCP_{parameter name} {parameter value}.

Definition at line 14 of file BCP_lp_param.hpp.

Member Enumeration Documentation

Character parameters.

All of these variables are used as booleans (true = 1, false = 0).

Enumerator
BranchOnCuts 

If true, BCP supports branching on cuts by providing potential branching candidates for the user.

These are cuts that were added to the formulation at some point but became slack later in subsequent LP relaxations.
Values: true (1), false (0). Default: 0.

CompareNewCutsToOldOnes 

If true then the LP process will check each newly received cut whether it already exists in the local cut pool or not.


Values: true (1), false (0). Default: 1.

CompareNewVarsToOldOnes 

If true then the LP process will check each newly arrived variable whether it already exists in the local variable pool or not.


Values: true (1), false (0). Default: 1.

DoReducedCostFixingAtZero 

If true the BCP will attempt to do reduced cost fixing only for variables currently at zero.


Values: true (1), false (0). Default: 1.

DoReducedCostFixingAtAnything 

If true the BCP will attempt to do reduced cost fixing for any variable, no matter what is their current value.


Values: true (1), false (0). Default: 1.

MessagePassingIsSerial 

Indicates whether message passing is serial (all processes are on the same processor) or not.


Values: true (1), false (0). Default: 1.

ReportWhenDefaultIsExecuted 

Print out a message when the default version of an overridable method is executed.

Default: 1.

SendFathomedNodeDesc 

Whether to send back the description of fathomed search tree nodes to the Tree Manager.

(Might be needed to write proof of optimality.)
Values: true (1), false (0). Default: 1.

NoCompressionAtFathom 

Whether we should refrain from compressing the problem description right before a fathomed node's description is sent back to the tree manager.


Values: true (1), false (0). Default: 0.

UseExplicitStorage 
Lp_DumpNodeDescCuts 
Lp_DumpNodeDescVars 
LpVerb_First 

Just a marker for the first LpVerb.

LpVerb_AddedCutCount 

Print the number of cuts added from the local cut pool in the current iteration.

(BCP_lp_main_loop)

LpVerb_AddedVarCount 

Print the number of variables added from the local variable pool in the curent iteration.

(BCP_lp_main_loop)

LpVerb_ChildrenInfo 

After a branching object is selected print what happens to the presolved children (e.g., fathomed).

(BCP_print_brobj_stat)

LpVerb_ColumnGenerationInfo 

Print the number of variables generated before resolving the Lp ir fathoming a node.

(BCP_lp_fathom)

LpVerb_CutsToCutPoolCount 

Print the number of cuts sent from the LP to the cut pool.

(BCP_lp_send_cuts_to_cp)

LpVerb_VarsToVarPoolCount 

**** This parameter is not used anywhere!!! ****

LpVerb_FathomInfo 

Print information related to fathoming.

(BCP_lp_main_loop, BCP_lp_perform_fathom, BCP_lp_branch) (BCP_lp_fathom)

LpVerb_IterationCount 

Print the "Starting iteration x" line.

(BCP_lp_main_loop)

LpVerb_RelaxedSolution 

Turn on the user hook "display_lp_solution".

(BCP_lp_main_loop)

LpVerb_FinalRelaxedSolution 

Turn on the user hook "display_lp_solution" for the last LP relaxation solved at a search tree node.

(BCP_lp_main_loop)

LpVerb_LpMatrixSize 

**** This parameter is not used anywhere!!! ****

LpVerb_LpSolutionValue 

Print the size of the problem matrix and the LP solution value after resolving the LP.

(BCP_lp_main_loop)

LpVerb_MatrixCompression 

Print the number of columns and rows that were deleted during matrix compression.

(BCP_lp_delete_cols_and_rows)

LpVerb_NodeTime 

For each tree node print out how much time was spent on it.

LpVerb_PresolvePositions 

Print detailed information about all the branching candidates during strong branching.

LpVerb_PresolveResult must be set for this parameter to have an effect. (BCP_lp_perform_strong_branching)

LpVerb_PresolveResult 

Print information on the presolved branching candidates during strong branching.

(BCP_lp_perform_strong_branching)

LpVerb_ProcessedNodeIndex 

Print the "Processing NODE x on LEVEL y" line.

(BCP_lp-main_loop)

LpVerb_ReportCutGenTimeout 

Print information if receiving cuts is timed out.

(BCP_lp_generate_cuts)

LpVerb_ReportVarGenTimeout 

Print information if receiving variables is timed out.

(BCP_lp_generate_vars)

LpVerb_ReportLocalCutPoolSize 

Print the current number of cuts in the cut pool.

This number is printed several times: before and after generating columns at the current iteration, after removing non-essential cuts, etc. (BCP_lp_generate_cuts)

LpVerb_ReportLocalVarPoolSize 

Similar as above for variables.

(BCP_lp_generate_vars)

LpVerb_RepricingResult 

**** This parameter is not used anywhere!!! ****

LpVerb_VarTightening 

Print the number of variables whose bounds have been changed by reduced cost fixing or logical fixing.

(BCP_lp_fix_vars)

LpVerb_RowEffectivenessCount 

Print the number of ineffective rows in the current problem.

The definition of what rows are considered ineffective is determined by the paramter IneffectiveConstraints. (BCP_lp_adjust_row_effectiveness)

LpVerb_StrongBranchPositions 

Print detailed information on the branching candidate selected by strong branching.

LpVerb_StrongBranchResult must be set fo this parameter to have an effect. (BCP_print_brobj_stat)

LpVerb_StrongBranchResult 

Print information on the branching candidate selected by strong branching.

(BCP_print_brobj_stat)

LpVerb_GeneratedCutCount 

Print the number of cuts generated during this iteration (since the LP was resolved last time).

(BCP_lp_main_loop)

LpVerb_GeneratedVarCount 

Print the number of variables generated during this iteration.

(BCP_lp_main_loop)

LpVerb_Last 

Just a marker for the last LpVerb.

end_of_chr_params 

Definition at line 17 of file BCP_lp_param.hpp.

Integer parameters.

Enumerator
NiceLevel 

What should be the "niceness" of the LP process.

In a *nix environment the LP process will be reniced to this level.
Values: whatever the operating system accepts. Default: 0.

ScaleMatrix 

Indicates how matrix scaling should be performed.

This parameter is directly passed to the LP solver's load_lp member function.
Values: whatever is valid for the LP solver that the user has passed on to BCP. Default: 0.

SlackCutDiscardingStrategy 

The slack cut discarding strategy used in the default version of the function purge_slack_pool().


Values: BCP_slack_cut_discarding. Default: BCP_DiscardSlackCutsAtNewIteration

CutEffectiveCountBeforePool 

A cut has to remain effective through this many iterations in the LP before it is sent to the Cut Pool process.


The default 1000 effectively says that only those cuts are sent to the pool which are effective at branching.
Values: any positive number. Default: 1000.

CutPoolCheckFrequency 

The Cut Pool is queried for violated valid inequalities after the first LP relaxation is solved and then after every this many iterations.


Values: any positive number. Default: 10.

VarPoolCheckFrequency 

The Variable Pool is queried for columns that improve the formulation after the first LP realxation is solved, and then after every this many iterations.


Values: any positive number. Default: 10.

IneffectiveConstraints 

Indicates which constraints should be considered ineffective.


Values: BCP_IneffectiveConstraints. Default: BCP_IneffConstr_ZeroDualValue.

IneffectiveBeforeDelete 

How many times in a row a constraint must be found ineffective before it is marked for deletion.


Values: any positive number. Default: 1.

MaxNonDualFeasToAdd_Min 

The number of non dual-feasible colums that can be added at a time to the formulation is a certain fraction (MaxNonDualFeasToAdd_Frac) of the number of columns in the current formulation.

However, if the computed number is outside of the range [MaxNonDualFeasToAdd_Min, MaxNonDualFeasToAdd_Max] then it will be set to the appropriate endpoint of the range.
Values: . Default: 5.

MaxNonDualFeasToAdd_Max 

See the description of the previous parameter.


Values: . Default: 200.

CutViolationNorm 

How cut violation should be computed.


Values: BCP_CutViolationNorm. Default: BCP_CutViolationNorm_Plain (violation in the usual sense).
(The other option is BCP_CutViolationNorm_Distance: the distance of the fractional point from the cut.

MaxCutsAddedPerIteration 

The maximum number of violated valid inequalities that can be added per iteration.


Values: . Default: 100,000.

MaxVarsAddedPerIteration 

The maximum number of variables that can be added per iteration.


Values: . Default: 100,000.

MaxLeftoverCutNum 

The maximum number of violated but not added cuts to be kept from one iteration to the next.

Also see the MaxLeftoverCutFrac parameter.

DeletedColToCompress_Min 

The number of columns that must be marked for deletion before matrix compression can occur.

Matrix compressions also subject to a minimum number of marked columns as a fraction of the current number of columns (see DeletedColToCompress_Frac).
Values: positive integer. Default: 10.

DeletedRowToCompress_Min 

The number of rows that must be marked for deletion before matrix compression can occur.

Matrix compressionis also subject to a minimum number of marked columns as a fraction of the current number of columns (see DeletedRowToCompress_Frac).
Values: positive integer. Default: 10.

MaxPresolveIter 

Upper limit on the number of iterations performed in each of the children of the search tree node when presolving branching candidates.

This parameter is passed onto the LP solver. If the parameter is set to -1 then the branching candidates are not presolved and the first branching candidate is chosen (if there is any).
Note that for different LP solvers (e.g., simplex based algorithm or the Volume Algorithm) the meaning of an iteration is different, thus this parameter will be set differently.
Values: . Default: 100,000.

StrongBranchNum 

Specifies how many branching variables with values close to half between two integers should be chosen by the built-in branching variable selection routine select_branching_candidates() (if this routine is used at all).


Values: . Default: 3.

StrongBranch_CloseToHalfNum 

<bf>Deprecated parameter.

Use StrongBranchNum</bf>

BranchingObjectComparison 

Specifies the rule used for built-in branching object comparison (if the buit-in routine is used at all).


Values: BCP_branching_object_comparison. Default: BCP_HighestLowObjval.

ChildPreference 

Specifies the rule used for selecting one of the children of the search tree node for diving.


Values: BCP_child_preference. Default: BCP_PreferChild_LowBound.

FeasibilityTest 

Specifies which built-in MIP feasibility testing routine should be invoked (if a buit-in routine is used at all).


Values: BCP_feasibility_test. Default: BCP_FullTest_Feasible

WarmstartInfo 

Specifies how warmstart information should be stored in the TM.

Possible valueas: BCP_WarmstartNone, BCP_WarmstartRoot, BCP_WarmstartParent. The first is obvious, the second means the root node's warmstart info should be sent out along with each node, the last means the parent's warmstart info should be sent out. Default: BCP_WarmstartParent

InfoForCG 

Indicates what part of the primal solution is sent to the Cut Generator process if the BCP_lp_user::pack_primal_solution() method is not overridden.


Values: See BCP_primal_solution_description. Default: BCP_PrimalSolution_Nonzeros.

InfoForVG 

Indicates what part of the dual solution is sent to the Variable Generator process if the BCP_lp_user::pack_dual_solution() method is not overridden.


Values: See BCP_dual_solution_description. Default: BCP_DualSolution_Full.

end_of_int_params 

Definition at line 163 of file BCP_lp_param.hpp.

Double parameters.

Enumerator
Granularity 

The minimum difference between the objective value of any two feasible solution (with different objective values).


Values: . Default: .

DeletedColToCompress_Frac 

The fraction of columns that must be marked for deletion before matrix compression can occur.

Matrix compression is also subject to a minimum number of marked columns (see DeletedColToCompress_Min).
Values: . Default: 1e-8.

DeletedRowToCompress_Frac 

The fraction of rows that must be marked for deletion before matrix compression can occur.

Matrix compression is also subject to a minimum number of marked rows (see DeletedRowToCompress_Min).
Values: . Default: 1e-8.

MaxNonDualFeasToAdd_Frac 

The number of non dual-feasible colums that can be added to the formulation at a time cannot exceed this fraction of the the number of columns in the curent formulation.

However, this limit can be overruled by the hard bounds MaxNonDualFeasToAdd_Min and MaxNonDualFeasToAdd_Max (see above).
Default: 0.05.

MaxLeftoverCutFrac 

The maximum fraction of the violated but not added cuts to be kept from one iteration to the next.

Also see the MaxLeftoverCutNum parameter.

IntegerTolerance 

Values not further from an integer value than the value of this parameter are considered to be integer.


Values: . Default: .

FirstLP_FirstCutTimeout 

This and the following three parameters control how long the LP process waits for generated cuts.

The parameters specify waiting times (in seconds) separately for the first and later LP relaxations at a search tree node, and also the time to receive the first cut vs all the cuts.
Note that it might make sense to set AllCutsTimeout for a shorter time than the first cut time out: "We are willing to wait 5 seconds to receive a cut, but if we do receive a cut the total time we wait is only 2 seconds."
This parameter specifies the time to wait for the first generated cut at the first LP relaxation at a search tree node.
Values: Any non-negative number represents a waiting time in seconds. Negative numbers indicate no time limit on waiting. Default: -1.

LaterLP_FirstCutTimeout 

This parameter specifies the time to wait for the first generated cut at iterations that are not the first at a search tree node.

See the remarks at FirstLP_FirstCutTimeout as well.
Values: Any non-negative number represents a waiting time in seconds. Negative numbers indicate no time limit on waiting. Default: -1.

FirstLP_AllCutsTimeout 

This parameter specifies the time to wait for cuts at the first LP relaxation at a search tree node.

See the remarks at FirstLP_FirstCutTimeout as well.
Values: Any non-negative number represents a waiting time in seconds. Negative numbers indicate no time limit on waiting. Default: -1.

LaterLP_AllCutsTimeout 

This parameter specifies the time to wait for cuts at iterations that are not the first at a search tree node.

See the remarks at FirstLP_FirstCutTimeout as well.
Values: Any non-negative number represents a waiting time in seconds. Negative numbers indicate no time limit on waiting. Default: -1.

FirstLP_FirstVarTimeout 

This and the following three parameters control how long the LP process waits for generated variables.

These parameters are analogous to the ones that control the waiting time for generated cuts. See the remarks at FirstLP_FirstCutTimeout as well.
This parameter specifies the time to wait for the first generated variable at the first LP relaxation at a search tree node.
Values: Any non-negative number represents a waiting time in seconds. Negative numbers indicate no time limit on waiting. Default: -1.

LaterLP_FirstVarTimeout 

This parameter specifies the time to wait for the first generated variable at iterations that are not the first at a search tree node.

See the remarks at FirstLP_FirstVarTimeout as well.
Values: Any non-negative number represents a waiting time in seconds. Negative numbers indicate no time limit on waiting. Default: -1.

FirstLP_AllVarsTimeout 

This parameter specifies the time to wait for variables at the first LP relaxation at a search tree node.

See the remarks at FirstLP_FirstVarTimeout as well.
Values: Any non-negative number represents a waiting time in seconds. Negative numbers indicate no time limit on waiting. Default: -1.

LaterLP_AllVarsTimeout 

This parameter specifies the time to wait for variables at iterations that are not the first at a search tree node.

See the remarks at FirstLP_FirstVarTimeout as well.
Values: Any non-negative number represents a waiting time in seconds. Negative numbers indicate no time limit on waiting. Default: -1.

MaxRunTime 

Maximum allowed running time.

end_of_dbl_params 

Definition at line 313 of file BCP_lp_param.hpp.

String parameters.

Enumerator
LogFileName 

The filename all the output should go to.

end_of_str_params 

Definition at line 424 of file BCP_lp_param.hpp.

There are no string array parameters.

Enumerator
str_array_dummy 
end_of_str_array_params 

Definition at line 432 of file BCP_lp_param.hpp.


The documentation for this struct was generated from the following file: