  We focus on two central themes in this dissertation. The first one is on
decomposing polytopes and polynomials in ways that allow us to perform
nonlinear optimization. We start off by explaining important results on
decomposing a polytope into special polyhedra. We use these decompositions and
develop methods for computing a special class of integrals exactly. Namely, we
are interested in computing the exact value of integrals of polynomial
functions over convex polyhedra. We present prior work and new extensions of
the integration algorithms. Every integration method we present requires that
the polynomial has a special form. We explore two special polynomial
decomposition algorithms that are useful for integrating polynomial functions.
Both polynomial decompositions have strengths and weaknesses, and we experiment
with how to practically use them.
  After developing practical algorithms and efficient software tools for
integrating a polynomial over a polytope, we focus on the problem of maximizing
a polynomial function over the continuous domain of a polytope. This
maximization problem is NP-hard, but we develop approximation methods that run
in polynomial time when the dimension is fixed. Moreover, our algorithm for
approximating the maximum of a polynomial over a polytope is related to
integrating the polynomial over the polytope. We show how the integration
methods can be used for optimization.
  The second central topic in this dissertation is on problems in data science.
We first consider a heuristic for mixed-integer linear optimization. We show
how many practical mixed-integer linear have a special substructure containing
set partition constraints. We then describe a nice data structure for finding
feasible zero-one integer solutions to systems of set partition constraints.
Finally, we end with an applied project using data science methods in medical
research.
