This paper studies the problem of programming a robotic panda gardener to keep a bamboo garden from obstructing the view of the lake by your house.
The garden consists of n bamboo stalks with known daily growth rates and the gardener can cut at most one bamboo per day. As a computer scientist, you found out that this problem has already been formalized in [Gąsieniec et al., SOFSEM'17] as the emph{Bamboo Garden Trimming (BGT) problem}, where the goal is that of computing a perpetual schedule (i.e., the sequence of bamboos to cut) for the robotic gardener to follow in order to minimize the emph{makespan}, i.e., the maximum height ever reached by a bamboo.
Two natural strategies are
educemax and
educefastest{x}.
educemax trims the tallest bamboo of the day, while
educefastest{x} trims the fastest growing bamboo among the ones that are taller than x.
It is known that
educemax and
educefastest{x} achieve a makespan of O(logn) and 4 for the best choice of x=2, respectively. We prove the first constant upper bound of 9 for
educemax and improve the one for
educefastest{x} to rac{3+sqrt{5}}{2} < 2.62 for x=1+rac1sqrt5.
Another critical aspect stems from the fact that your robotic gardener has a limited amount of processing power and memory. It is then important for the algorithm to be able to emph{quickly} determine the next bamboo to cut while requiring at most linear space.
We formalize this aspect as the problem of designing a emph{Trimming Oracle} data structure, and we provide three efficient Trimming Oracles implementing different perpetual schedules, including those produced by
educemax and
educefastest{x}