24 lines
620 B
Mathematica
24 lines
620 B
Mathematica
|
|
function p = presolve(p)
|
||
|
|
|
||
|
|
model = p.model;
|
||
|
|
|
||
|
|
p.model.Q = p.model.Q*0;
|
||
|
|
p.model.F_struc(1:p.dimin(1),:)=[];
|
||
|
|
p.model.K.f = p.model.K.f-p.dimin(1);
|
||
|
|
redundant = sparse(zeros(p.model.K.l,1));
|
||
|
|
for i = 1:p.model.K.l
|
||
|
|
b = p.model.F_struc(p.model.K.f+i,1);
|
||
|
|
p.model.F_struc(p.model.K.f+i,1) = b+1;
|
||
|
|
p.model.c = p.model.F_struc(p.model.K.f+i,2:end)';
|
||
|
|
|
||
|
|
eval(['output = ' p.model.solver.call '(p.model);']);
|
||
|
|
if output.problem == 0
|
||
|
|
if p.model.c'*output.Primal > -b
|
||
|
|
redundant(i) = 1
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
p.model.F_struc(p.model.K.f+i,1) = b;
|
||
|
|
end
|
||
|
|
p.model.c = c;
|
||
|
|
p.model.Q = c;
|