18 lines
647 B
Matlab
Executable File
18 lines
647 B
Matlab
Executable File
function [lb,ub,redundant] = detect_and_improve_bounds(Matrices,lb,ub,binary_var_index,options);
|
|
|
|
A = [ Matrices.G -Matrices.E];
|
|
b = [ Matrices.W ];
|
|
|
|
[global_lower,global_upper,bound_rows] = find_variable_bounds(A,b,[Matrices.Aeq Matrices.Beq],Matrices.beq);
|
|
global_lower(binary_var_index) = max(global_lower(binary_var_index),0);
|
|
global_upper(binary_var_index) = min(global_upper(binary_var_index),1);
|
|
|
|
if ~isempty(lb)
|
|
global_lower = max([global_lower lb],[],2);
|
|
end
|
|
if ~isempty(ub)
|
|
global_upper = min([global_upper ub],[],2);
|
|
end
|
|
|
|
[lb,ub,redundant,psstruct,infeasible] = tightenbounds(A,b,global_lower,global_upper,[],binary_var_index);
|