Hello,
I am trying to solve a mixed integer linear programming problem using CVX Gurobi. I can find a feasible solution of the problem by hand. However, CVX Gurobi is showing me errors.
I will show my code and the CVX error here. I am sorry for this long post but I am just trying to explain the problem. If anyone thinks that a feasible solution will be helpful, please let me know. I can provide that later.
Any help will be appreciated.
Thanks,
Nazmul
CVX Original Code:
cvx_solver Gurobi
cvx_begin
%% MaxPowerMobile(1), sLMobile(2x2), sUMobile(2x2), betaMobile(2x2), NodeAccessGain(2x2), %% N0(1) and W(1) are predefined constants
variables K FlowMobile(NodeNum,PortFreqNum) PowerMobile(NodeNum, PortFreqNum) …
SINRMobile(NodeNum, PortFreqNum)
variable DecisionMobile(NodeNum, PortFreqNum) binary
maximize K
subject to
sum(FlowMobile,2) >= K ;
sum(DecisionMobile,1) <= 1 ;
sum(DecisionMobile,2) <= 1 ;
SINRMobile >= SINR_Thres * DecisionMobile ;
(NodeAccessGain .* PowerMobile) >= N0 * SINRMobile ;
sum(PowerMobile,2) <= MaxPowerMobile ;
PowerMobile <= MaxPowerMobile * DecisionMobile ;
(1 + sLMobile) .* FlowMobile - W * SINRMobile <= W * (1 + sLMobile) .* (log(1 + sLMobile) - 1) + W ;
(1 + betaMobile) .* FlowMobile - W * SINRMobile <= W * (1 + betaMobile) .* (log(1 + betaMobile) - 1) + W ;
(1 + sUMobile) .* FlowMobile - W * SINRMobile <= W * (1 + sUMobile) .* (log(1 + sUMobile) - 1) + W ;
FlowMobile >= 0 ;
K >= 0 ;
PowerMobile >= 0 ;
SINRMobile >= 0 ;
cvx_end
CVX_Error message:
Calling Gurobi: 49 variables, 32 equality constraints
Optimize a model with 32 rows, 49 columns and 98 nonzeros
Found heuristic solution: objective 0
Presolve removed 28 rows and 48 columns
Presolve time: 0.00s
Explored 0 nodes (0 simplex iterations) in 0.00 seconds
Thread count was 1 (of 4 available processors)
Model is unbounded
Best objective 0.000000000000e+00, best bound -, gap -
??? Error using ==> solve at 259
An unexpected error was encountered:
Error using ==> gurobi
Gurobi error 10005: Unable to retrieve attribute 'ObjVal’
Error in ==> cvx_run_solver at 45
[ varargout{1:nargout} ] = sfunc( inputs{:} );
Error in ==> D: