[BACK]Return to linear_programming.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Supports

Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Supports/linear_programming.ads, Revision 1.1.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>