  In the unsplittable capacitated vehicle routing problem (UCVRP) on trees, we
are given a rooted tree with edge weights and a subset of vertices of the tree
called terminals. Each terminal is associated with a positive demand between 0
and 1. The goal is to find a minimum length collection of tours starting and
ending at the root of the tree such that the demand of each terminal is covered
by a single tour (i.e., the demand cannot be split), and the total demand of
the terminals in each tour does not exceed the capacity of 1.
  For the special case when all terminals have equal demands, a long line of
research culminated in a quasi-polynomial time approximation scheme
[Jayaprakash and Salavatipour, SODA 2022] and a polynomial time approximation
scheme [Mathieu and Zhou, ICALP 2022].
  In this work, we study the general case when the terminals have arbitrary
demands. Our main contribution is a polynomial time
$(1.5+\epsilon)$-approximation algorithm for the UCVRP on trees. This is the
first improvement upon the 2-approximation algorithm more than 30 years ago
[Labb\'e, Laporte, and Mercure, Operations Research, 1991]. Our approximation
ratio is essentially best possible, since it is NP-hard to approximate the
UCVRP on trees to better than a 1.5 factor.
