  Everyone puts things off sometimes. How can we combat this tendency to
procrastinate? A well-known technique used by instructors is to break up a
large project into more manageable chunks. But how should this be done best?
Here we study the process of chunking using the graph-theoretic model of
present bias introduced by Kleinberg and Oren (2014). We first analyze how to
optimally chunk single edges within a task graph, given a limited number of
chunks. We show that for edges on the shortest path, the optimal chunking makes
initial chunks easy and later chunks progressively harder. For edges not on the
shortest path, optimal chunking is significantly more complex, but we provide
an efficient algorithm that chunks the edge optimally. We then use our optimal
edge-chunking algorithm to optimally chunk task graphs. We show that with a
linear number of chunks on each edge, the biased agent's cost can be
exponentially lowered, to within a constant factor of the true cheapest path.
Finally, we extend our model to the case where a task designer must chunk a
graph for multiple types of agents simultaneously. The problem grows
significantly more complex with even two types of agents, but we provide
optimal graph chunking algorithms for two types. Our work highlights the
efficacy of chunking as a means to combat present bias.
