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

What is [group] representation theory?

- [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.

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

What are p-adic groups?

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).

What is discrete optimization?

- 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, and we are now pursuing further funding from public and private sources.

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.