2013-07-30 32 views
9

Tôi đang cố gắng giải quyết vấn đề tối ưu hóa bằng cách sử dụng Apache Commons. Tôi tìm thấy một "Hello World" dụ here cho Commons Math 2. Nhưng, tôi muốn sử dụng Commons Math 3.2 và tôi không thể tìm thấy bất kỳ ví dụ về cách sử dụng phần này của mã:Ví dụ Hello World cho SimplexSolver

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

specificaly , Tôi không biết optData là gì và tôi đặt các ràng buộc ở đâu. Tôi sẽ đánh giá cao nếu ai đó chỉ cho tôi một ví dụ "Hello World" về cách sử dụng thư viện org.apache.commons.math3.optim.

Lời chúc tốt đẹp nhất!

Trả lời

9

này đã làm việc cho tôi:

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

phiên bản của tôi cho cx max: Axe < = b, x> = 0. Có lẽ không phải là "hello world" nhưng tôi hy vọng nó sẽ giúp:

 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

Bạn có thể nói liệu việc triển khai phương pháp này có sử dụng Hai Giai đoạn hay cách khác không? –