2013-07-30 16 views
9

Próbuję rozwiązać problem z optymalizacją za pomocą Apache Commons. Znalazłem „Hello World” przykład here dla Commons Math 2. Ale chciałbym użyć Commons Math 3.2 i nie mogłem znaleźć żadnego przykładu, w jaki sposób wykorzystać tę część kodu:Przykład Hello World dla SimplexSolver

PointValuePair solution = null; 
SimplexSolver solver = new SimplexSolver(); 
solution = solver.optimize(optData); 

specificaly , Nie wiem, czym jest optData i gdzie umieszczam ograniczenia. Byłbym wdzięczny, gdyby ktoś wskazał mi jeden przykład "Hello World", jak korzystać z biblioteki org.apache.commons.math3.optim.

Najlepsze życzenia!

Odpowiedz

9

Ten pracował dla mnie:

http://mail-archives.apache.org/mod_mbox/commons-user/201307.mbox/%[email protected].com%3E

Moja wersja dla max cx: Ax = b <, x> = 0. Może nie "Hello World", ale mam nadzieję, że to pomaga:

 LinearObjectiveFunction f = new LinearObjectiveFunction(c, 0); 
     Collection<LinearConstraint> constraints = new 
       ArrayList<LinearConstraint>(); 
     for(int i=0; i<A.length; i++) { 
      double[] Av = new double[A[i].length]; 
      for(int j=0; j<A[i].length; j++) { 
       Av[j] = A[i][j]; 
      } 
      constraints.add(new LinearConstraint(Av, Relationship.LEQ, b[i])); 
     } 

     SimplexSolver solver = new SimplexSolver(); 
     PointValuePair optSolution = solver.optimize(new MaxIter(100), f, new 
       LinearConstraintSet(constraints), 
       GoalType.MAXIMIZE, new 
       NonNegativeConstraint(true)); 


     double[] solution; 
     solution = optSolution.getPoint(); 
+0

Czy możesz powiedzieć, czy ta implementacja metody używa Dwufazowej czy innej? –

Powiązane problemy