I mainly work in representation theory of (and harmonic analysis on) p-adic groups. On the side, I’ve done some work in discrete optimization.

You can see a list of of my publications, with abstracts or without

The appropriate answer depends on how much mathematics you already know. Here are three brief answers, in order of increasing sophistication:

- [For everyone:] the study of symmetry;
- [For science and engineering types:] glorified linear algebra;
- [For mathematicians:] the study of how groups act on vector spaces.

By “symmetry”, I don’t just mean the fact that snowflakes, butterflies, and pine cones exhibit various patterns (though this is a reasonable starting point for the subject). The term also refers to analogous phenomena that are not always directly tied to physical objects. Symmetries can have more than three (and in fact can have infinitely many) dimensions.

Representation theory is useful in physics, physical chemistry, the study of certain differential equations, group theory, number theory, and elsewhere.

I strongly believe that if one understands a subject well enough, then one should be able to explain its essence to any intelligent person. Unfortunately, I don’t understand this subject well enough, and am not sure that anyone does yet. Thus, this explanation is aimed at math types only. Sorry about that.

The set Q of rational numbers is incomplete, which is a technical way of saying that it contains gaps. But what does it mean to have a gap?

Consider the sequence 1, 1.4, 1.41, 1.414, 1.4142, 1.41421, 1.414213,…, which appears to converge to . But is not rational, as the Pythagoreans knew, so we have to say that the sequence has no limit in Q. However, the sequence is a Cauchy sequence, which is a technical way of saying that the terms get closer and closer together fast enough that there really ought to be a limit. This is how we detect a gap in Q.

The topological process of completion fills in all of the gaps, and we end up with the real line R.

Notice that our notion of “gap” depended on our notion of Cauchy sequence, which in turn depended on our notion of “distance” between rational numbers. For example, we implicitly assumed that the distance between 1.414 and 1.4142 is |1.414 - 1.4142| = .0002, which is pretty small. This depends on our knowledge of the absolute value function |⋅|.

However, there is more than one way to define an absolute value function on Q.
For example, here’s another absolute value function (called the 2-adic absolute
value), denoted |⋅|_{2}: Given a nonzero rational number r, we can always write it in
the form 2^{m}(a∕b), where a and b are odd, and m is an integer. Then |r|_{2} = 2^{-m}. We
also let |0|_{2} = 0. Thus, the more divisible a number is by 2, the smaller its 2-adic
absolute value.

If we replace 2 above by any prime number p, we can similarly define a p-adic
absolute value |⋅|_{p}. Fixing a prime p and thus an absolute value |⋅|_{p}, we obtain a
new notion of what it means for a sequence to be Cauchy. Thus, if we complete
the space Q with respect to this absolute value, we get a new space. This
space, like R, is field. It is called the field of p-adic numbers, and is denoted
Q_{p}.

In some ways, Q_{p} resembles R. For example, it is a domain where calculus makes
sense. But in other ways, Q_{p} is nothing like R. For example, in Q_{p}, a series converges
if and only if its terms converge to zero. Isn’t that nice?

A p-adic group is essentially a matrix group, but where the entries of the matrix
live in Q_{p} or in one of its finite extensions.

Some of the motivation for studying p-adic groups comes from number theory. For example, the Langlands program, a far-reaching sequence of conjectures in number theory and arithmetic geometry, depends on an understanding of p-adic groups (and much else).

This is a huge subject, and I am only working in a small part of it. Here are several problems that you might want to solve:

- Suppose you are a dispatcher for a delivery service. How do you decide which trucks will go where, and when? Suppose your plans are then foiled by traffic snarl-ups, a sick driver, or marauding zoo animals. What do you do?
- Suppose you have about 10,000 tasks, each of which must be done by someone with particular qualifications. Suppose you also have about 10,000 people, each of whom has certain qualifications. You want to move the people around as little as possible, while making sure that all tasks are covered. How?
- How should a ship be wired up in order to minimize the risk of overall electrical failure in the event that part of the ship is flooded or otherwise damaged? In the event of a partial failure, what’s the quickest path to recovery?
- How can you minimize the risk of failure for the electrical grid?

These problems (and many others) can be formulated as mixed-integer programming problems.

Linear (or quadratic) programming problems ask us to maximize (or minimize) a function of many variables over a domain defined by a series of linear equations and inequalities. Good methods exist for solving such problems, even when the variables number in the thousands.

But mixed-integer problems add a further constraint: certain variables can only take on integer values. This is a major complication.

A standard solution method, known as Branch and Bound (BAB), is marvelous in its simplicity. However, it is not guaranteed to terminate in a reasonable amount of time. And if time is short, BAB might fail not only to find an optimal solution, but even to find a non-optimal solution.

I am part of a team that has developed a new method, that we are presently calling NCH, that overcomes some of the limitations of BAB. (The other team members are Tony Sterns, Doug Kline, and Scott Collins. Initial development was funded by the Office of Naval Research.

Because it is difficult and expensive to formulate large, real-world problems, we have so far only been able to test NCH on randomly generated problems. We don’t try to find an optimal solution, only a feasible solution (that is, one that satisfies all of the constraints). In practice, the solutions we get are very close to optimal. Here is a scatter plot that compares the performance of NCH and BAB on thousands of problems.

Not bad, no? And the pattern continues for problems with at least 700 integer and binary variables. Beyond that, I haven’t yet checked.

Here’s another feature of NCH that should make it attractive for real-world use: In the real world, it’s not possible to know all of the parameters of your problem in advance. For example, suppose your computer gives you a near-optimal solution to your logistics problem. According to this solution, Bob the Truck Driver should drive to Duluth tomorrow. However, you (unlike your computer) happen to know that Bob doesn’t want to stray too far from home this week. You never formulated this constraint explicitly, because you didn’t even think about it until your computer asked you to violate it. So what you really want is for your computer to give you lots of different, near-optimal solutions. Then you can choose one that best fits the criteria that you never formulated explicitly.