Chemical equation balancing: An integer programming approach

Presented here is an integer linear program (ILP) formulation for automatic balancing of a chemical equation. Also described is a integer nonlinear programming (INP) algorithm for balancing. This special algorithm is polynomial time O(n^3), unlike the ILP approach, and uses the widely available conventional floating-point arithmetic, obviating the need for both rational arithmetic and multiple modulus residue arithmetic. The rational arithmetic is unsuitable due to intermediate number growth, while the residue arithmetic suffers from the lack of a priori knowledge of the set of prime bases that avoids a possible failure due to division by zero. Further, unlike the floating point arithmetic, both arithmetics are not built-in/standard and hence additional programming effort is needed. The INP algorithm has been tested on several typical chemical equations and found to be very successful for most problems in our extensive balancing experiments. This algorithm also has the capability to determine the feasibility of a new chemical reaction and, if it is feasible, then it will balance the equation and also provide the information if two or more linearly independent balancings exist through the rank information. Any general method to solve the ILP is fail-proof, but it is not polynomial time. Since we have not encountered truly large chemical equations having, say, 1000 products and reactants in a real-world situation, a non-polynomial ILP solver is also useful. A justification for the objective functions for ILP and INP algorithms, each of which produces a unique solution, is provided.

[1]  S. H. Storey,et al.  The computation of chemical equilibria , 1970 .

[2]  E. V. Krishnamurthy,et al.  Numerical algorithms : computations in science and engineering , 2008 .

[3]  Katta G. Murty,et al.  The steepest descent gravitational method for linear programming , 1989, Discret. Appl. Math..

[4]  George B. Dantzig,et al.  Linear programming and extensions , 1965 .

[5]  George B. Dantzig,et al.  Linear programming and extensions , 1965 .

[6]  R. Penrose A Generalized inverse for matrices , 1955 .

[7]  V. Lakshmikantham,et al.  Computational Error and Complexity in Science and Engineering , 2005 .

[8]  S. S. Prabhu,et al.  Optimal iterative schemes for computing the Moore-Penrose matrix inverse , 1976 .

[9]  Lynn Arthur Steen,et al.  A Joyful Passion for Proofs: The Pied Piper of Mathematics , 2000 .

[10]  K. S. Banerjee Generalized Inverse of Matrices and Its Applications , 1973 .

[11]  E. V. Krishnamurthy Generalized matrix inverse approach for automatic balancing of chemical equations , 1978 .

[12]  E. V. Krishnamurthy,et al.  Residue Arithmetic Algorithms for Exact Computation of g-Inverses of Matrices , 1976 .

[13]  Wayne L. Winston Operations research: applications and algorithms / Wayne L. Winston , 2004 .

[14]  E. V. Krishnamurthy,et al.  Rank-Augmented LU-Algorithm for Computing Generalized Matrix Inverses , 1974, IEEE Transactions on Computers.

[15]  G. R. Blakley Chemical equation balancing: A general method which is quick, simple, and has unexpected applications , 1982 .

[16]  John T. Moore Elements of linear algebra and matrix theory , 1968 .

[17]  David D. Kumar Computer Applications in Balancing Chemical Equations , 2001 .

[18]  V. Lakshmikantham,et al.  Vectors versus matrices: p-inversion, cryptographic application, and vector implementation , 1996, Neural Parallel Sci. Comput..

[19]  Narendra Karmarkar,et al.  A new polynomial-time algorithm for linear programming , 1984, STOC '84.

[20]  Gene H. Golub,et al.  Calculating the singular values and pseudo-inverse of a matrix , 2007, Milestones in Matrix Computation.

[21]  C. R. Rao,et al.  Generalized Inverse of Matrices and its Applications , 1972 .

[22]  L. Jean Bogert,et al.  THE FUNDAMENTAL OF CHEMISTRY , 1933 .

[23]  V. Ch. Venkaiah,et al.  A shrinking polytope method for linear programming , 1996, Neural Parallel Sci. Comput..

[24]  Syamal K. Sen,et al.  O(n3) g-inversion-free noniterative near-consistent linear system solver for minimum-norm least-squares and nonnegative solutions , 2006, J. Comput. Methods Sci. Eng..

[25]  G. R. Blakley Chemical Equation Balancing. , 1982 .

[26]  Manindra Agrawal,et al.  PRIMES is in P , 2004 .

[27]  Robert E. Kuenne The Theory Of General Economic Equilibrium , 1963 .

[28]  T. R. Dickson Introduction to chemistry , 1971 .

[29]  V. Ch. Venkaiah,et al.  A concise algorithm to solve over-/under-determined linear systems , 1990, Simul..

[30]  R. Penrose The emperor's new mind: concerning computers, minds, and the laws of physics , 1989 .