I already posted messages to Jody and Jukka-Pekka, but now after I compiled Gnumeric sources, our problem can be formulated more clearly. Consider this simple problem in .lp - format (for lp_solve): max: x1 + x2 -1; 2*x1 + x2 <= 3; x1 + 2*x2 <= 3; By means of lp_solve we get the right answer: Value of objective function: 1 Actual values of the variables: x1 1 x2 1 ---------------------------------------------------------- See attachment for Gnumeric sheet of the above model. Having compiled Gnumeric 1.4.3 solver with DEBUG_SOLVER=1, we can see that the problem is altered in a strange way: max: x1 + x2; (2+1)*x1 + x2 <= 3; (1+1)*x1 + 2*x2 <= 3; giving completely incorrect solution: (0.75, 0.75). The spreadsheet cells fool us that the constraints are not satisfied (because the original coefficients are used in evaluation of constraints). But solver message tell us, we have found the optimal solution... In theory, objective function can be reduced to dot product c x, but we should not take this for granted, especially if we "generate" linear subproblems as parts of bigger computations. I am convinced that Gnumeric solver developers can quickly identify the source of problems. No solution is better than wrong solution... Or, temporarily, the "affine" form of objective function may be disabled (not a good idea, I think)? Mike
Attachment:
ErrSolver.gnumeric
Description: application/gnumeric