compact.tex 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. \documentstyle[11pt,reduce]{article}
  2. \title{COMPACT: Reduction of a Polynomial in the Presence of Side Relations}
  3. \date{}
  4. \author{Anthony C. Hearn\\ RAND\\
  5. Santa Monica CA 90407-2138\\
  6. Email: hearn@rand.org}
  7. \begin{document}
  8. \maketitle
  9. \index{COMPACT package} \index{side relations} \index{relations ! side}
  10. {COMPACT} is a package of functions for the reduction of a polynomial in
  11. the presence of side relations. The package defines one operator {COMPACT}
  12. \index{COMPACT operator}
  13. whose syntax is:
  14. \begin{quote}
  15. \k{COMPACT}(\s{expression}, \s{list}):\s{expression}
  16. \end{quote}
  17. \s{expression} can be any well-formed algebraic expression, and
  18. \s{list} an expression whose value is a list
  19. of either expressions or equations. For example
  20. \begin{verbatim}
  21. compact(x**2+y**3*x-5y,{x+y-z,x-y-z1});
  22. compact(sin(x)**10*cos(x)**3+sin(x)**8*cos(x)**5,
  23. {cos(x)**2+sin(x)**2=1});
  24. let y = {cos(x)**2+sin(x)**2-1};
  25. compact(sin(x)**10*cos(x)**3+sin(x)**8*cos(x)**5,y);
  26. \end{verbatim}
  27. {COMPACT} applies the relations to the expression so that an equivalent
  28. expression results with as few terms as possible. The method used is
  29. briefly as follows:
  30. \begin{enumerate}
  31. \item Side relations are applied separately to numerator and denominator, so
  32. that the problem is reduced to the reduction of a polynomial with respect to
  33. a set of polynomial side relations.
  34. \item Reduction is performed sequentially, so that the problem is reduced
  35. further to the reduction of a polynomial with respect to a single
  36. polynomial relation.
  37. \item The polynomial being reduced is reordered so that the variables
  38. (kernels) occurring in the side relation have least precedence.
  39. \item Each coefficient of the remaining kernels (which now only contain
  40. the kernels
  41. in the side relation) is reduced with respect to that side relation.
  42. \item A polynomial quotient/remainder calculation is performed on the
  43. coefficient. The remainder is
  44. used instead of the original if it has fewer terms.
  45. \item The remaining expression is reduced with respect to the side relation
  46. using a ``nearest neighbor'' approach.
  47. \end{enumerate}
  48. As with the traveling salesman problem, a nearest neighbor approach to
  49. reduction does not necessarily achieve an optimal result. In most cases
  50. it will be within a factor of two from the optimal result, but in extreme
  51. cases it may be much further away.
  52. Another source of sub-optimal results is that the given expression
  53. is reduced sequentially with respect to the side relations. So for
  54. example in the case
  55. \begin{verbatim}
  56. compact((a+b+c)*(a-b-c)*(-a+b-c)*(-a-b+c),
  57. {x1=a+b+c,x2=a-b-c,x3=-a+b-c,x4=-a-b+c})
  58. \end{verbatim}
  59. the expression is actually $x_{1}x_{2}x_{3}x_{4}$, but any given relation
  60. cannot reduce the size of the expanded form
  61. $a^{4}-2a^{2}b^{2}-2a^{2}c^{2}+b^{4}-2b^{2}c^{2}+c^{4}$
  62. of the original expression, and so the final result is far from optimal.
  63. The only other program we have heard about that considers the compaction
  64. problem is that of Hornfeldt~\cite{Hornfeldt:82}.
  65. However, Hornfeldt reorders expressions so that the kernels in a side
  66. relation have highest order. Consequently, their coefficients are
  67. polynomials rather than integers or other constants as in our approach.
  68. Furthermore, it is not clear just how general Hornfeldt's approach is from
  69. his description, since he only talks about sine and cosine substitutions.
  70. There are a number of projects that this work immediately suggests. For
  71. example:
  72. \begin{enumerate}
  73. \item How does one do the reduction with the side relations in parallel?
  74. The above example shows this is necessary for an optimal solution.
  75. \item Should one reduce the side relations to a Groebner or other basis
  76. before doing any reduction?
  77. \item Should one check for the consistency of the basis?
  78. \item How does one do factorization and gcds on a polynomial whose
  79. variables are related by a set of side relations?
  80. \end{enumerate}
  81. The author would be interested in hearing from anyone wishing to work with
  82. him on any of these problems.
  83. \bibliography{compact}
  84. \bibliographystyle{plain}
  85. \end{document}