  The muffin problem asks us to divide $m$ muffins into pieces and assign each
of those pieces to one of $s$ students so that the sizes of the pieces assigned
to each student total $m/s$, with the objective being to maximize the size of
the smallest piece in the solution. Muffin problems are a special type of
variant of extended bottleneck transportation problem in which the
transportation time is simply the quantity transported between any source and
sink and the objective is to maximize the minimum transportation time. Of
particular interest are Three Matrix Division and Assignment Problems (3M-DAP),
for which all sources have the same supply and sinks are divided into two
subsets having the same demand within each subset. Muffin problems are 3M-DAP
in which all sinks have the same demand. We present a recursive algorithm for
solving any 3M-DAP, and hence any muffin problem, and demonstrate that it
always produces an optimal solution. The nature of the recursive algorithm
allows us to identify interesting relationships between families of such
problems.
