I have more ideas than time, and am happy to share! If you are interested in these projects, email me and we'll talk about it. If you have a project idea of your own, we can talk about that, too.
The Compact Muon Solenoid (CMS) experiment is a large particle physics detector built on the Large Hadron Collidor at CERN. At this point, so many users are working on this experiment that there is a strong need not to mine both experimental data and also data about users and user activity. CS MEng students may be interested in some data mining projects out of Cornell physics related to these projects; these involve some very interesting systems problems as well as potentially exercising ideas in deep learning. If interested, please contact Valentin Kuznetsov or Peter Wittich for further details – but you can likely talk me into being your CS field representative.
Notebook Widgets for Simulation Steering and Monitoring
Python has a long history as a system for steering large-scale physical simulations, and remains useful for this purpose today. In contrast, IPython notebooks are proving increasingly useful for managing and documenting small-scale simulations and data analysis tasks. I would like to have the best of both worlds by using an IPython notebook as the control panel for some of my simulation and optimization codes, sending control messages from a client notebook and receiving updates that can be accessed either from the Python environment or from an interactive visualization widget. Many of the pieces for this project are already there (e.g. in the IPython parallel module and the IPython interactive widget architecture), but they don’t quite do what I would like.
Jupyter Notebooks for Finite Element Analysis
FEAPpv is an educational version of the research finite element code FEAP. Some time ago, I built a MATLAB interface to FEAP, and a previous MEng student also developed a Python translation of this interface. For this project, I would like to create a Jupyter notebook interface to FEAP and install it in a Docker container that can be run either locally or in the cloud.
To work on this project, it would be helpful to know something about Python and a little about socket programming. Familiarity with finite element simulation or Fortran code is not a requirement for the project.
Optimization with Pre-Emptible VMs
The Google Cloud Platform offers pre-emptible machine instances that can are much less expensive than ordinary machine instances, but may be interrupted at any time. I would like help extending the POAP framework to support using these pre-emptible instances for optimization with expensive function evaluations.
To work on this project, you would need to know Python. Some background in systems at the level of CS 4410 would also be highly useful.
Resource-Coupled Evolutionary Games
In CS 4220 in Spring 2016, I gave a project involving a toy model in evolutionary game theory where different types of species interact only through competition for a shared resource. The species in the model differ in both how efficiently they use resources and in how quickly they can obtain those resources. Rather remarkably, equilibrium solutions for this type of model can be written in terms of a nonlinear eigenvalue problem, which makes them much easier to analyze than more general models. Even the simple model we used in class shows some interesting behavior; and since the class ended, we have been thinking of several different variations on the model. Come help me explore these further!
To work on this project, it would be helpful to have some mathematical maturity. Prior exposure to dynamical systems (or a good differential equations course), numerical methods, and complex analysis would all be useful, though none are strictly needed.
Network Classification via Spectral Features
What distinguishes a citation network from a road network from a social network? There are many potentially distinguishing features, such as degree distributions and triangle counts, but recently I have become interested in features based on eigenvalue distributions that are very different for artificial model graphs and “real-world” networks. Help me use these features to cluster some real-world networks, and to compare that clustering to clustering based on more standard features (and to ground-truth clustering where available).
To work on this project, you should have an undergrad course in linear algebra. A course in scientific computing or machine learning might also help, but is probably not strictly necessary.
Fast DNN+LR Projections
For a topic mining application (joint work with David Mimno), I am looking for a way to quickly project sparse matrices to the closest (low rank) doubly non-negative matrix – that is, a matrix that is both positive definite and elementwise non-negative. The catch is that the algorithm should ideally never form a full dense representation. I have some ideas about how to do this, though they are not completely fleshed out.
For this project, you should probably have a good linear algebra class and prior exposure to gradient-based optimization methods. And you’ll need to remember your multivariate calculus.
Preconditioning Radial Basis Functions with Clustered Centers
Radial basis function interpolation is a standard method of interpolating data in more than one space dimension. It has many attractive features, but the problem can become unstable when posed in the normal basis, particularly for very smooth basis functions or when the basis function centers are clustered. Recently-developed methods address the former case, but the latter is more of a concern when RBF interpolants are used for optimization, as is the case in some of my projects. I have an idea for a formally equivalent method that gets around this stability issue by a preconditioning strategy, and would like help implementing it.
You should have a course in numerical computing and some mathematical maturirity to take on this project.
Resonances in Quantum Graphs
A quantum graph is a graph with differential equations on the edges and compatibility conditions at the nodes. I am interested in the case of infinite quantum graphs, where a local irregular region (a scatterer) is surrounded by a regular lattice extending off to infinity. I want to build a tool that will compute the spectral properties of such an object – bound states and resonance poles – given a description of the far-field lattice structure and the local irregular region.
You should have a course in differential equations and a course in linear algebra to tackle this project, and ideally a course in analysis and a course in numerics. But if you don’t have these courses and think the project sounds fun anyhow, do come talk to me!
Evans Functions and Nonlinear Eigenvalue Problems
The Evans function is a Wronskian-type construction that plays a role similar to the characteristic polynomial in the unbounded-domain spectral problems that arise in the analysis of 1D solitary wave stability. This construction has been used computationally to good effect for some problems; however, some preliminary results (and analogy to more conventional eigenvalue problems) suggests that this should be less numerically stable than an alternate method based on a nonlinear eigenvalue computation. I have coded variants of this before, and now have some nice theory to back up my favored algorithm. But I would love to have help in doing a systematic comparison between my favored algorithm and methods based on the Evans function. Ideally, I would also love to have a numerical error analysis of both methods, too.
You should have a course in differential equations and a course in linear algebra to tackle this project, and ideally a course in analysis and a course in numerics.
Model Reduction of Buckling Lattices
Three-dimensional printing lets us make elaborately microstructured materials, but our understanding of how to model these microstructures is still young. The mechanics of microtruss structures can be analyzed by mostly-standard methods when the strains are small and the truss structure is periodic; but the picture becomes more complex even at small strains when the truss is not quite periodic, and it becomes very complicated at large strains when the individual elements can buckle. I have some ideas about how to use a type of model reduction to simulate the behavior of such structures quickly, and would like to try them out – but given the background required, and given that I don’t have a code to do it at hand, I would be delighted to have some help first putting together a code to do the analysis in the simple case.
You should have a course in numerical computing to tackle this project. Prior exposure to finite element analysis or structural analysis will also be helpful.
Response Surfaces for Structure Prediction
GASP is a Genetic Algorithm for Structure and Phase Prediction that “predicts the structure and composition of stable and metastable phases of crystals, molecules, atomic clusters and defects from first-principles.” An alternative to using genetic algorithms to understand the energy landscape is to use surrogate methods (aka response surface methods), but initial experiences suggest that this won’t work well unless the response surface is carefully chosen. I’d like to try a response surface approach that incorporates some basic chemical knowledge (e.g. the knowledge that potential energy blows up if you try to put two atoms en the same place) in order to get a better result.
This probably isn’t a very good project for most CS MEng students, but if you’re coming from a background where building an optimizer on top of a DFT code sounds fun, come talk to me!