[ https://issues.apache.org/jira/browse/MATH-930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas Neidhart resolved MATH-930. ---------------------------------- Resolution: Fixed Fix Version/s: 3.2 I have added more elaborate information about convergence criteria to the class javadoc of SimplexSolver and added an additional constructor to override the epsilon value. As your problem seems to work fine with an epsilon value of 1e-4, no further changes are required imho. After discussion on the mailinglist, the non-deterministic behavior, resulting in different results / exceptions is actually good and should give the user a hint that the current convergence criteria may be too strict. Thanks for the report, your problem has been added as a unit test. > SimplexSolver finds suboptimal solution or throws NoFeasibleSolutionException > ----------------------------------------------------------------------------- > > Key: MATH-930 > URL: https://issues.apache.org/jira/browse/MATH-930 > Project: Commons Math > Issue Type: Bug > Affects Versions: 3.1.1 > Reporter: Konstantin > Priority: Minor > Fix For: 3.2 > > Attachments: exception.txt, program.7z, test.m > > > When I run this code sometimes I get NoFeasibleSolutionException, and > sometimes the result is 0.37522987682323883. > Octave gives result 0.70679 and a point = {1.59032, 1.00000, 0.70679, > 0.40399, 1.04004, 0.67396, 0.37868, 0.22823, 0.98909, 0.68793, 0.17021, > 0.09192, 0.67501, 0.44573, 0.07829, 0.00000, 0.81316, 0.63520, 0.55634 > 0.40399, 0.48504, 0.45944, 0.22823, 0.22823, 0.34873, 0.32313, 0.09192, > 0.09192, 0.25681, 0.23122, 0.00000, 0.00000, 1.59032 > double[][] coefficients = new double[97][]; > double[] value = new double[97]; > Relationship[] relationship = new Relationship[97]; > int i = 0; > double[] m0 = {1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, > 1, -1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 0}; > coefficients[i] = m0; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m1 = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}; > coefficients[i] = m1; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m2 = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}; > coefficients[i] = m2; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m3 = {0, 1, 0, -1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, 0, -1, > 0, -1, 0, 1, 0, 1, 0, -1, 0, 1, 0, -1, 0, -1, 0, 1, 0}; > coefficients[i] = m3; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m4 = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.628803}; > coefficients[i] = m4; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m5 = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.676993}; > coefficients[i] = m5; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m6 = {0, 0, 1, -1, 0, 0, -1, 1, 0, 0, -1, 1, 0, 0, 1, -1, > 0, 0, -1, 1, 0, 0, 1, -1, 0, 0, 1, -1, 0, 0, -1, 1, 0}; > coefficients[i] = m6; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m7 = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.136677}; > coefficients[i] = m7; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m8 = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.444434}; > coefficients[i] = m8; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m9 = {0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 0, > 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, -1, 0}; > coefficients[i] = m9; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m10 = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.254028}; > coefficients[i] = m10; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m11 = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.302218}; > coefficients[i] = m11; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m12 = {0, 0, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, -1, 1, 1, -1, > 0, 0, 0, 0, -1, 1, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 0}; > coefficients[i] = m12; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m13 = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.653981}; > coefficients[i] = m13; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m14 = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.690437}; > coefficients[i] = m14; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m15 = {0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 1, 0, > 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, -1, 0}; > coefficients[i] = m15; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m16 = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.423786}; > coefficients[i] = m16; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m17 = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.486717}; > coefficients[i] = m17; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m18 = {0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -1, 1, 0, > 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0}; > coefficients[i] = m18; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m19 = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.049232}; > coefficients[i] = m19; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m20 = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.304747}; > coefficients[i] = m20; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m21 = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, > 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0}; > coefficients[i] = m21; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m22 = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.129826}; > coefficients[i] = m22; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m23 = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.205625}; > coefficients[i] = m23; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m24 = {0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 1, -1, 1, 1, -1, > 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, -1, 1, -1, -1, 1, 0}; > coefficients[i] = m24; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m25 = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.621944}; > coefficients[i] = m25; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m26 = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.764385}; > coefficients[i] = m26; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m27 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, -1, 0, 1, 0, > 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 1, 0, -1, 0}; > coefficients[i] = m27; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m28 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.432572}; > coefficients[i] = m28; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m29 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.480762}; > coefficients[i] = m29; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m30 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, -1, 1, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, -1, 0}; > coefficients[i] = m30; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m31 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.055983}; > coefficients[i] = m31; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m32 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.11378}; > coefficients[i] = m32; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m33 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0}; > coefficients[i] = m33; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m34 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.009607}; > coefficients[i] = m34; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m35 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.057797}; > coefficients[i] = m35; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m36 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 1, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, -1, 0}; > coefficients[i] = m36; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m37 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.407308}; > coefficients[i] = m37; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m38 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.452749}; > coefficients[i] = m38; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m39 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0}; > coefficients[i] = m39; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m40 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.269677}; > coefficients[i] = m40; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m41 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.321806}; > coefficients[i] = m41; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m42 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0}; > coefficients[i] = m42; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m43 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.049232}; > coefficients[i] = m43; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m44 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.06902}; > coefficients[i] = m44; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m45 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}; > coefficients[i] = m45; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m46 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0}; > coefficients[i] = m46; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m47 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.028754}; > coefficients[i] = m47; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m48 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, > -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 0}; > coefficients[i] = m48; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m49 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.484254}; > coefficients[i] = m49; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m50 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.524607}; > coefficients[i] = m50; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m51 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 1, 0, -1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, 0, -1, 0}; > coefficients[i] = m51; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m52 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.385492}; > coefficients[i] = m52; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m53 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.430134}; > coefficients[i] = m53; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m54 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 1, -1, 0, 0, -1, 1, 0, 0, -1, 1, 0, 0, 1, -1, 0}; > coefficients[i] = m54; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m55 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.34983}; > coefficients[i] = m55; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m56 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.375781}; > coefficients[i] = m56; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m57 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 0}; > coefficients[i] = m57; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m58 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.254028}; > coefficients[i] = m58; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m59 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.281308}; > coefficients[i] = m59; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m60 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, -1, 1, 1, -1, 0}; > coefficients[i] = m60; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m61 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.304995}; > coefficients[i] = m61; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m62 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.345347}; > coefficients[i] = m62; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m63 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 1, 0}; > coefficients[i] = m63; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m64 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.288899}; > coefficients[i] = m64; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m65 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.332212}; > coefficients[i] = m65; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m66 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -1, 1, 0}; > coefficients[i] = m66; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m67 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.14351}; > coefficients[i] = m67; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m68 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.17057}; > coefficients[i] = m68; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m69 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0}; > coefficients[i] = m69; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m70 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -0.129826}; > coefficients[i] = m70; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m71 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -0.157435}; > coefficients[i] = m71; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m72 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 1, -1, 1, 1, -1, 0}; > coefficients[i] = m72; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m73 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -0}; > coefficients[i] = m73; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m74 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1}; > coefficients[i] = m74; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m75 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, -1, 0, 1, 0}; > coefficients[i] = m75; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m76 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -0.141071}; > coefficients[i] = m76; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m77 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -0.232574}; > coefficients[i] = m77; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m78 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, -1, 1, 0}; > coefficients[i] = m78; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m79 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -0}; > coefficients[i] = m79; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m80 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1}; > coefficients[i] = m80; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m81 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0}; > coefficients[i] = m81; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m82 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -0.009607}; > coefficients[i] = m82; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m83 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -0.057797}; > coefficients[i] = m83; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m84 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 1, 0}; > coefficients[i] = m84; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m85 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -0}; > coefficients[i] = m85; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m86 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1}; > coefficients[i] = m86; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m87 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0}; > coefficients[i] = m87; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m88 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -0.091644}; > coefficients[i] = m88; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m89 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -0.203531}; > coefficients[i] = m89; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m90 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0}; > coefficients[i] = m90; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m91 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -0}; > coefficients[i] = m91; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m92 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1}; > coefficients[i] = m92; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m93 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}; > coefficients[i] = m93; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m94 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}; > coefficients[i] = m94; > relationship[i] = Relationship.GEQ; > value[i] = 0.0; > i++; > double[] m95 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -0.028754}; > coefficients[i] = m95; > relationship[i] = Relationship.LEQ; > value[i] = 0.0; > i++; > double[] m96 = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; > coefficients[i] = m96; > relationship[i] = Relationship.EQ; > value[i] = 1.0; > ArrayList<LinearConstraint> constraints = new ArrayList<>(97); > for (int j = 0; j < 97; j++) { > constraints.add(new LinearConstraint(coefficients[j], > relationship[j], value[j])); > } > double[] fooc = new double[33]; > fooc[3] = 1; > LinearObjectiveFunction foo = new > LinearObjectiveFunction(fooc, 0); > SimplexSolver solver = new SimplexSolver(); > LinearConstraintSet se = new LinearConstraintSet(constraints); > PointValuePair res = solver.optimize(MaxIter.unlimited(), > foo, se, new NonNegativeConstraint(true)); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira