Carpet mower algorithm

Does any one know the name of the algorithm these things use please , if it has one.
Is there a sketch for arduino already written that does similar ?

What is a "carpet mower"?

I'm assuming it the logic/control to make sure something like a Roomba or other autonomous tool (mower) covers all the surface of a given area, defined or unknown.

Edit:
Roombas rely on a few simple algorithms such as spiral cleaning (spiraling), room crossing, wall-following and random walk angle-changing after bumping into an object or wall.

Yes a roomba, they ar not hoovers but work like a grass cylinder mower.

google hilbert curve
google hamilton path