Dynamic-Calibration/utils/YALMIP-master/solvers/create_lp_solve_model.m

53 lines
1.2 KiB
Mathematica
Raw Permalink Normal View History

2019-12-18 11:25:45 +00:00
function lp = create_lp_solve_model(A,b,f,xint,LB,UB,e,options);
[m,n] = size(A);
lp = lp_solve('make_lp', m, n);
lp_solve('set_mat', lp, A);
lp_solve('set_rh_vec', lp, b);
lp_solve('set_obj_fn', lp, f);
lp_solve('set_maxim', lp); % default is solving minimum lp.
for i = 1:length(e)
if e(i) < 0
con_type = 1;
elseif e(i) == 0
con_type = 3;
else
con_type = 2;
end
lp_solve('set_constr_type', lp, i, con_type);
end
for i = 1:length(LB)
%if ~isinf(LB(i))
lp_solve('set_lowbo', lp, i, LB(i));
%end
end
for i = 1:length(UB)
if ~isinf(UB(i))
lp_solve('set_upbo', lp, i, UB(i));
end
end
for i = 1:length(xint)
lp_solve('set_int', lp, xint(i), 1);
end
if options.lpsolve.scalemode~=0
lp_solve('set_scaling', lp, scalemode);
end
% for i = 1:length(sos)
% lp_solve('add_SOS', lp, ['dummy' num2str(i)], 1, i, sos{i}, 1:length(sos{i}));
% end
switch options.verbose
case 0
lp_solve('set_verbose', lp, 0);%options.verbose)
case 1
lp_solve('set_verbose', lp, 4);%options.verbose)
case 2
lp_solve('set_verbose', lp, 5);%options.verbose)
otherwise
lp_solve('set_verbose', lp, 6);%options.verbose)
end