Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Supports/linear_programming.ads, Revision 1.1
1.1 ! maekawa 1: with Standard_Floating_Numbers; use Standard_Floating_Numbers;
! 2: with Standard_Floating_Matrices; use Standard_Floating_Matrices;
! 3: with Standard_Integer_Vectors;
! 4:
! 5: package Linear_Programming is
! 6:
! 7: -- DESCRIPTION :
! 8: -- This package contains some routines for solving the standard primal and
! 9: -- dual linear-optimization problems, by means of the simplex algorithm.
! 10:
! 11: procedure Primal_Simplex
! 12: ( dic : in out Matrix; eps : in double_float;
! 13: in_bas,out_bas : in out Standard_Integer_Vectors.Vector;
! 14: nit : in out natural; unbounded : out boolean );
! 15:
! 16: generic
! 17:
! 18: with procedure Report ( dic : in Matrix;
! 19: in_bas,out_bas : Standard_Integer_Vectors.Vector );
! 20:
! 21: procedure Generic_Primal_Simplex
! 22: ( dic : in out Matrix; eps : in double_float;
! 23: in_bas,out_bas : in out Standard_Integer_Vectors.Vector;
! 24: nit : in out natural; unbounded : out boolean );
! 25:
! 26: -- DESCRIPTION :
! 27: -- This is a very simple implementation of the simplex procedure
! 28: -- for solving the following problem:
! 29: --
! 30: -- max <c,x>
! 31: -- <a,x> <= 0
! 32: --
! 33: -- where x = (1,x1,x2,..,xn).
! 34: -- The generic procedure allows to report on intermediate dictionaries.
! 35:
! 36: -- REQUIRED : The primal dictionary is already initialized.
! 37:
! 38: -- ON ENTRY :
! 39: -- dic the matrix for the initial dictionary;
! 40: -- eps constant float to determine wether number is zero;
! 41: -- in_bas initial unknowns in the basis;
! 42: -- out_bas initial unknowns out the basis;
! 43: -- nit counter for number of iterations.
! 44:
! 45: -- ON RETURN :
! 46: -- dic the modified matrix for the dictionary;
! 47: -- in_bas unknowns in the basis;
! 48: -- out_bas unknowns out the basis;
! 49: -- nit augmented with number of iterations made;
! 50: -- unbounded true when it is detected that the solution is unbounded.
! 51:
! 52: procedure Dual_Simplex
! 53: ( dic : in out Matrix; eps : in double_float;
! 54: in_bas,out_bas : in out Standard_Integer_Vectors.Vector;
! 55: nit : in out natural; feasible : out boolean );
! 56:
! 57: generic
! 58:
! 59: with procedure Report ( dic : in Matrix;
! 60: in_bas,out_bas : Standard_Integer_Vectors.Vector );
! 61:
! 62: procedure Generic_Dual_Simplex
! 63: ( dic : in out Matrix; eps : in double_float;
! 64: in_bas,out_bas : in out Standard_Integer_Vectors.Vector;
! 65: nit : in out natural; feasible : out boolean );
! 66:
! 67: -- DESCRIPTION :
! 68: -- This is a very simple implementation of the simplex procedure
! 69: -- for solving the following problem:
! 70: --
! 71: -- min <c,x>
! 72: -- <a,x> >= 0
! 73: --
! 74: -- where x = (1,x1,x2,..,xn).
! 75: -- The generic procedure allows to report on intermediate dictionaries.
! 76:
! 77: -- REQUIRED : The dual dictionary is already initialized.
! 78:
! 79: -- ON ENTRY :
! 80: -- dic the matrix for the initial dictionary;
! 81: -- eps constant float to determine wether number is zero;
! 82: -- in_bas initial unknowns in the basis;
! 83: -- out_bas initial unknowns out the basis;
! 84: -- nit counter for number of iterations.
! 85:
! 86: -- ON RETURN :
! 87: -- dic the modified matrix for the dictionary;
! 88: -- in_bas unknowns in the basis;
! 89: -- out_bas unknowns out the basis;
! 90: -- nit augmented with number of iterations made;
! 91: -- feasible is true when the problem is detected to be infeasible.
! 92:
! 93: end Linear_Programming;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>