Ongoing developments in the synthesis of nanostructured materials have led to a boom in the number of fabricatable nanomaterials. However, while there is a large body of work on how to fabricate increasingly complex nanostructures, there are relatively few systematic approaches for selecting which structures to fabricate so as to optimize for a particular functionality. In this thesis, we present a generic framework for modeling the design of nanostructured materials as mathematical optimization problems. Our work takes advantage of results from computationally demanding models (e.g. energies from quantum chemical calculations or kinetics from Monte Carlo simulations) from which it regresses simplified structure-function relationships that can be used in conjunction with a supervisory optimization algorithm to guide the design of highly functional nanostructures. We develop detailed mathematical optimization models for extended heterogeneous catalyst surfaces, doped perovskite oxygen carriers, and Wigner crystals while highlighting the ability of our approach to address a wide range of other material systems. In addition to detailed models, we have developed a general purpose Python package called MatOpt for streamlining the process of specifying optimizing materials and for lowering the barriers for applying mathematical optimization to materials problems. Our work provides systematic approaches for managing the combinatorial complexity of the nanomaterials design space and demonstrates the value of process systems engineering principles applied in new contexts.