Build in simplex solver returns Solve Completion Status: Unknown
-
Tuesday, May 17, 2011 10:24 PM
I have a model for which both Gurobi and Lp_solve solvers return the same result. If I run the model with the build in simplex solver then all decisions values are 0 and the Solve Completion Status in the solution report is Unknown. Any hints what root cause could be
Date: 18.05.2011 00:13:13
Version: Microsoft Solver Foundation 3.0.1.10599 Standard Edition
Model Name: DefaultModel
Capabilities Applied: MILP
Solve Time (ms): 117
Total Time (ms): 398
Solve Completion Status: Unknown
Solver Selected: Microsoft.SolverFoundation.Solvers.SimplexSolver
Directives:
Simplex(TimeLimit = -1, MaximumGoalCount = -1, Arithmetic = Default, Pricing = Default, IterationLimit = -1, Algorithm =
Default, Basis = Default, GetSensitivity = False)
Algorithm: Primal
Arithmetic: Exact
Variables: 335 -> 242 + 242
Rows: 408 -> 258
Nonzeros: 924
Eliminated Slack Variables: 16
Basis: Slack
Pivot Count: 0
Phase 1 Pivots: 0 + 0
Phase 2 Pivots: 0 + 0
Factorings: 0 + 0
Degenerate Pivots: 0 (0.00 %)
Branches: 0
All Replies
-
Thursday, May 19, 2011 3:46 AMOwner
Are you able to send me the model in OML or MPS format? We would like to look into the problem.
Thanks, Nathan
-
Thursday, May 19, 2011 8:06 AM
This is the model saved as OML. I looks as the forum editor removes the line breaks. Model[ Parameters[ Sets[Integers[0, Infinity]], R, I ], Parameters[ Reals[0, Infinity], ce[_0_8_1_], Utot ], Parameters[ Reals[-Infinity, Infinity], rMax[R], rMaxEnd[R], rMin[R], rMinEnd[R], delta[_0_8_1_], lamda[R, I], u[R, I], uEnd[R, I], PiIn[R, I], PiOut[R, I], pMax[I] ], Parameters[ Integers[-Infinity, Infinity], v[R, I], vEnd[R, I] ], Decisions[ Booleans, Foreach[ {iter1, 8}, N[I, iter1] ] ], Decisions[ Reals[0, Infinity], Foreach[ {iter2, 8}, R_1[R, iter2] ], Foreach[ {iter3, 8}, Rend[R, iter3] ], Foreach[ {iter4, 8}, Eps[I, iter4] ], Foreach[ {iter5, 8}, EpsSt[I, iter5] ], R0[R] ], Constraints[ Nc_ -> Foreach[ {iter6, 2}, Foreach[ {iter7, 7}, 0 <= AsInt[N[iter6, iter7]] <= 1 ] ], Ns_ -> Foreach[ {iter8, 2, 6}, Foreach[ {iter9, 7}, 0 <= AsInt[N[iter8, iter9]] <= 1 ] ], Ni_ -> Foreach[ {iter10, 6, 10}, Foreach[ {iter11, 7}, 0 <= AsInt[N[iter10, iter11]] <= 1 ] ], R0a -> Foreach[ {iter12, 9, 12}, R0[iter12] == 1 ], R0b -> FilteredForeach[ {iter13, 7}, iter13 > 0, R0[iter13] == 0 ], R0c -> Foreach[ {iter14, 7, 9}, R0[iter14] == 0 ], R0d -> Foreach[ {iter15, 12, 13}, R0[iter15] == 0 ], _EQ -> Foreach[ {iter16, 9, 12}, FilteredForeach[ {iter17, 7}, iter17 >= 1, R_1[iter16, iter17 - 1] - R_1[iter16, iter17] == 0 ] ], _2a1 -> Foreach[ {iter18, 7}, FilteredForeach[ {iter19, 7}, iter19 == 0, Plus[-R_1[iter18, iter19], Foreach[ {iter20, 6, 10}, vEnd[iter18, iter20] * Eps[iter20, iter19] ], Foreach[ {iter21, 6, 10}, u[iter18, iter21] * AsInt[N[iter21, iter19]] + v[iter18, iter21] * Eps[iter21, iter19] ], R0[iter18], Foreach[ {iter22, 2, 6}, u[iter18, iter22] * AsInt[N[iter22, iter19]] + v[iter18, iter22] * Eps[iter22, iter19] ], Foreach[ {iter23, 2}, u[iter18, iter23] * AsInt[N[iter23, iter19]] + v[iter18, iter23] * Eps[iter23, iter19] ]] == 0 ] ], _2a -> Foreach[ {iter24, 7}, FilteredForeach[ {iter25, 7}, iter25 >= 1, Plus[-R_1[iter24, iter25], Foreach[ {iter26, 6, 10}, vEnd[iter24, iter26] * Eps[iter26, iter25] ], Foreach[ {iter27, 6, 10}, uEnd[iter24, iter27] * AsInt[N[iter27, iter25 - 1]] + u[iter24, iter27] * AsInt[N[iter27, iter25]] + v[iter24, iter27] * Eps[iter27, iter25] ], Rend[iter24, iter25 - 1], Foreach[ {iter28, 2, 6}, uEnd[iter24, iter28] * AsInt[N[iter28, iter25 - 1]] + u[iter24, iter28] * AsInt[N[iter28, iter25]] + v[iter24, iter28] * Eps[iter28, iter25] ], Foreach[ {iter29, 2}, uEnd[iter24, iter29] * AsInt[N[iter29, iter25 - 1]] + u[iter24, iter29] * AsInt[N[iter29, iter25]] + v[iter24, iter29] * Eps[iter29, iter25] ]] == 0 ] ], _2aN -> Foreach[ {iter30, 7}, FilteredForeach[ {iter31, 8}, iter31 >= 7, Plus[-R_1[iter30, iter31], Foreach[ {iter32, 6, 10}, vEnd[iter30, iter32] * Eps[iter32, iter31] ], Foreach[ {iter33, 6, 10}, v[iter30, iter33] * Eps[iter33, iter31] + uEnd[iter30, iter33] * AsInt[N[iter33, iter31 - 1]] ], Rend[iter30, iter31 - 1], Foreach[ {iter34, 2, 6}, v[iter30, iter34] * Eps[iter34, iter31] + uEnd[iter30, iter34] * AsInt[N[iter34, iter31 - 1]] ], Foreach[ {iter35, 2}, v[iter30, iter35] * Eps[iter35, iter31] + uEnd[iter30, iter35] * AsInt[N[iter35, iter31 - 1]] ]] == 0 ] ], _2b0 -> Foreach[ {iter36, 7, 9}, FilteredForeach[ {iter37, 7}, iter37 == 0, Plus[-R_1[iter36, iter37], Foreach[ {iter38, 6, 10}, vEnd[iter36, iter38] * Eps[iter38, iter37] ], Foreach[ {iter39, 6, 10}, u[iter36, iter39] * AsInt[N[iter39, iter37]] + v[iter36, iter39] * Eps[iter39, iter37] ], Foreach[ {iter40, 2, 6}, u[iter36, iter40] * AsInt[N[iter40, iter37]] + v[iter36, iter40] * Eps[iter40, iter37] ], R0[iter36], -PiOut[iter36, iter37], Foreach[ {iter41, 2}, u[iter36, iter41] * AsInt[N[iter41, iter37]] + v[iter36, iter41] * Eps[iter41, iter37] ]] == 0 ] ], _2b -> Foreach[ {iter42, 7, 9}, FilteredForeach[ {iter43, 7}, iter43 >= 1, Plus[-R_1[iter42, iter43], Foreach[ {iter44, 6, 10}, vEnd[iter42, iter44] * Eps[iter44, iter43] ], Foreach[ {iter45, 6, 10}, uEnd[iter42, iter45] * AsInt[N[iter45, iter43 - 1]] + u[iter42, iter45] * AsInt[N[iter45, iter43]] + v[iter42, iter45] * Eps[iter45, iter43] ], Foreach[ {iter46, 2, 6}, uEnd[iter42, iter46] * AsInt[N[iter46, iter43 - 1]] + u[iter42, iter46] * AsInt[N[iter46, iter43]] + v[iter42, iter46] * Eps[iter46, iter43] ], R_1[iter42, iter43 - 1], -PiOut[iter42, iter43], Foreach[ {iter47, 2}, uEnd[iter42, iter47] * AsInt[N[iter47, iter43 - 1]] + u[iter42, iter47] * AsInt[N[iter47, iter43]] + v[iter42, iter47] * Eps[iter47, iter43] ]] == 0 ] ], _2bN -> Foreach[ {iter48, 7, 9}, FilteredForeach[ {iter49, 8}, iter49 >= 7, Plus[-R_1[iter48, iter49], Foreach[ {iter50, 6, 10}, vEnd[iter48, iter50] * Eps[iter50, iter49] ], Foreach[ {iter51, 6, 10}, v[iter48, iter51] * Eps[iter51, iter49] + uEnd[iter48, iter51] * AsInt[N[iter51, iter49 - 1]] ], Foreach[ {iter52, 2, 6}, v[iter48, iter52] * Eps[iter52, iter49] + uEnd[iter48, iter52] * AsInt[N[iter52, iter49 - 1]] ], R_1[iter48, iter49 - 1], -PiOut[iter48, iter49], Foreach[ {iter53, 2}, v[iter48, iter53] * Eps[iter53, iter49] + uEnd[iter48, iter53] * AsInt[N[iter53, iter49 - 1]] ]] == 0 ] ], _2c0 -> Foreach[ {iter54, 10, 12}, FilteredForeach[ {iter55, 7}, iter55 == 0, Plus[-R_1[iter54, iter55], Foreach[ {iter56, 6, 10}, vEnd[iter54, iter56] * Eps[iter56, iter55] ], Foreach[ {iter57, 6, 10}, u[iter54, iter57] * AsInt[N[iter57, iter55]] + v[iter54, iter57] * Eps[iter57, iter55] ], R0[iter54], Foreach[ {iter58, 2, 6}, u[iter54, iter58] * AsInt[N[iter58, iter55]] + v[iter54, iter58] * Eps[iter58, iter55] ], Foreach[ {iter59, 2}, u[iter54, iter59] * AsInt[N[iter59, iter55]] + v[iter54, iter59] * Eps[iter59, iter55] ]] == 0 ] ], _2c -> Foreach[ {iter60, 10, 12}, FilteredForeach[ {iter61, 7}, iter61 >= 1, Plus[-R_1[iter60, iter61], Foreach[ {iter62, 6, 10}, vEnd[iter60, iter62] * Eps[iter62, iter61] ], Foreach[ {iter63, 6, 10}, uEnd[iter60, iter63] * AsInt[N[iter63, iter61 - 1]] + u[iter60, iter63] * AsInt[N[iter63, iter61]] + v[iter60, iter63] * Eps[iter63, iter61] ], R_1[iter60, iter61 - 1], Foreach[ {iter64, 2, 6}, uEnd[iter60, iter64] * AsInt[N[iter64, iter61 - 1]] + u[iter60, iter64] * AsInt[N[iter64, iter61]] + v[iter60, iter64] * Eps[iter64, iter61] ], Foreach[ {iter65, 2}, uEnd[iter60, iter65] * AsInt[N[iter65, iter61 - 1]] + u[iter60, iter65] * AsInt[N[iter65, iter61]] + v[iter60, iter65] * Eps[iter65, iter61] ]] == 0 ] ], _2cN -> Foreach[ {iter66, 10, 12}, FilteredForeach[ {iter67, 8}, iter67 >= 7, Plus[-R_1[iter66, iter67], Foreach[ {iter68, 6, 10}, vEnd[iter66, iter68] * Eps[iter68, iter67] ], Foreach[ {iter69, 6, 10}, v[iter66, iter69] * Eps[iter69, iter67] + uEnd[iter66, iter69] * AsInt[N[iter69, iter67 - 1]] ], R_1[iter66, iter67 - 1], Foreach[ {iter70, 2, 6}, v[iter66, iter70] * Eps[iter70, iter67] + uEnd[iter66, iter70] * AsInt[N[iter70, iter67 - 1]] ], Foreach[ {iter71, 2}, v[iter66, iter71] * Eps[iter71, iter67] + uEnd[iter66, iter71] * AsInt[N[iter71, iter67 - 1]] ]] == 0 ] ], _2CT -> FilteredForeach[ {iter72, 7}, iter72 >= 1, Foreach[ {iter73, 8}, rMin[iter72] <= R_1[iter72, iter73] <= rMax[iter72] ] ], _2FP -> Foreach[ {iter74, 7, 9}, Foreach[ {iter75, 8}, rMin[iter74] <= R_1[iter74, iter75] <= rMax[iter74] ] ], _2RM0 -> Foreach[ {iter76, 1}, Foreach[ {iter77, 7}, rMin[iter76] <= R_1[iter76, iter77] ] ], _2RM1 -> Foreach[ {iter78, 1}, FilteredForeach[ {iter79, 8}, iter79 >= 7, rMin[iter78] <= R_1[iter78, iter79] <= rMax[iter78] ] ], _3 -> Foreach[ {iter80, 7}, Foreach[ {iter81, 7}, Plus[-Rend[iter80, iter81], R_1[iter80, iter81], Foreach[ {iter82, 2, 6}, vEnd[iter80, iter82] * Eps[iter82, iter81] + lamda[iter80, iter82] * EpsSt[iter82, iter81] ], Foreach[ {iter83, 2}, lamda[iter80, iter83] * Eps[iter83, iter81] ]] == 0 ] ], _3a -> FilteredForeach[ {iter84, 7}, iter84 > 0, Foreach[ {iter85, 7}, rMinEnd[iter84] <= Rend[iter84, iter85] <= rMaxEnd[iter84] ] ], _4 -> Foreach[ {iter86, 9, 10}, Foreach[ {iter87, 7}, delta[iter87] >= Sum[ {iter88, 2}, (uEnd[iter86, iter88] * Eps[iter88, iter87]) * pMax[iter88] ^ -1 ] ] ], _5 -> Foreach[ {iter89, 12, 13}, Foreach[ {iter90, 7}, delta[iter90] * PiIn[iter89, iter90] >= Sum[ {iter91, 2}, (-u[iter89, iter91] * Eps[iter91, iter90]) * pMax[iter91] ^ -1 ] ] ], _6 -> Foreach[ {iter92, 2}, Foreach[ {iter93, 7}, Eps[iter92, iter93] <= Utot * AsInt[N[iter92, iter93]] ] ], _6a -> Foreach[ {iter94, 2, 6}, Foreach[ {iter95, 7}, Eps[iter94, iter95] + EpsSt[iter94, iter95] <= Utot * AsInt[N[iter94, iter95]] ] ] ], Goals[ Minimize[ minElCost -> Annotation[Sum[ {iter96, 2}, Sum[ {iter97, 12, 13}, Sum[ {iter98, 7}, ((ce[iter98] * -u[iter97, iter96]) * Eps[iter96, iter98]) * pMax[iter96] ^ -1 ] ] ], "order", 0] ] ] ] -
Sunday, June 05, 2011 10:29 PMOwnerThanks for sharing the model - we are looking into it.
-
Tuesday, October 04, 2011 6:47 PM
Just cross checked with MSF 3.1. I get the same result as with 3.0. Gurobi and lpsolve return the solution while the build-in solver returns
Version: Microsoft Solver Foundation 3.0.2.10889 Standard Edition
Model Name: DefaultModel
Capabilities Applied: MILP
Solve Time (ms): 224
Total Time (ms): 768
Solve Completion Status: Unknown

