Rev | Line | |
---|
[37] | 1 | function p = reduce_bilinear_branching_variables(p); |
---|
| 2 | if p.solver.lowersolver.objective.quadratic.convex |
---|
| 3 | % Setup quadratic |
---|
| 4 | Q_ = p.Q; |
---|
| 5 | for i = 1:size(p.bilinears,1) |
---|
| 6 | if p.c(p.bilinears(i,1)) |
---|
| 7 | Q_(p.bilinears(i,2),p.bilinears(i,3)) = p.c(p.bilinears(i,1))/2; |
---|
| 8 | Q_(p.bilinears(i,2),p.bilinears(i,3)) = Q_(p.bilinears(i,3),p.bilinears(i,2))+p.c(p.bilinears(i,1))/2; |
---|
| 9 | end |
---|
| 10 | end |
---|
| 11 | if nnz(Q_)>0 & all(eig(full(Q_))>-1e-12) |
---|
| 12 | Used_in_F = find(any(p.F_struc(:,2:end),1)); |
---|
| 13 | Used_in_F = intersect(Used_in_F,p.bilinears(:,1)); |
---|
| 14 | p.branch_variables = []; |
---|
| 15 | for i = 1:size(p.bilinears,1) |
---|
| 16 | j = p.bilinears(i,1); |
---|
| 17 | if ismember(j,Used_in_F) |
---|
| 18 | p.branch_variables = [p.branch_variables p.bilinears(i,2:3)]; |
---|
| 19 | end |
---|
| 20 | end |
---|
| 21 | p.branch_variables = unique( p.branch_variables); |
---|
| 22 | end |
---|
| 23 | end |
---|
Note: See
TracBrowser
for help on using the repository browser.