Incremental Algorithms for Chores - Part of the Practical Parenting Sequence

15 views
Skip to first unread message

Gunnar Zarncke

unread,
Jan 17, 2016, 4:01:17 AM1/17/16
to Less Wrong Parents

this is another potential future blog post I'd like to share with your and would be happy to receive suggestions for improvement for.


When I got home earlier I put my bag on the usual spot on the floor. Later when I went into the basement I took the bag with me and placed it next to the desk. When I had said my children good night I sat down in my comfy office chair at my desk and got the laptop out of my bag.

What do I want to tell you? Stuff in this house gets moved incrementally to the place it belongs. Children's toys get picked up and put in a box. The box gets placed on the stairs. Gets taken upstairs and into the children's room. And there it gets (hopefully!) put back into some cupboard when the children do their clean up to get new media time (see Sequence on Media).

I somewhat assume that this is how it is done in many places. But maybe not and maybe you do not know the principles behind this. If you are still interested you are invited to read on.

Life with children can be a lot of work. Especially if there are multiple children or multiple jobs or other circumstances that take time away. Such families need to optimize. Intentionally or automatically. Some ways to clean house and do chores are more efficient than others.

So I'm going to tell you about a very efficient method to keep the house in an almost clean state. Not perfect. Not even close. But very efficiently so. Goals can be different. If your goal is a maximally presentable house at all times then the incremental approach is probably not for you. But maybe you are still curious about this algorithm thing. Or maybe you can apply it within the cupboards where nobody sees your mess or virtually on your PC.

So here are the housekeeping principles of my household:

  • Everything needs to have a place where it belongs.

  • This place changes seldomly (at most once a year)

  • There needs to be spaces where things can be put on their way to their place.

  • Things are picked up while you pass them and put down when you can't or don't want to move them further - but never increase the distance to their place.

  • Things that belong together are put together at the earliest possible moment.

Example: Laundry

  • The children get out of their clothing and (hopefully) put it in the laundry basket.

  • If they don't and I don't notice it in time I will just pick it up (getting them to do it much later is not worth the hassle; feedback works best if done immediately; see Sequence on Behavior).

  • For example if I notice some socks in some corner I will throw them in the floor - possibly together with some other clothing there.

  • When I pass the socks I will pick them up and put them in the laundry basket.

  • If the laundry basket is full it gets carried downstairs - or at least placed squarely in the floor where I can't overlook it and will promptly deal with it (this is trigger action planning again).

  • Earlier or later the basket arrives in the laundry and gets sorted into baskets by type. The empty basket gets placed in the floor to be picked up later.

  • When I have some spare time I fill and start one washing machine.

  • When I have some spare time I empty the washing machine and prepare for drying.

  • And so on...

See also the motivating backpack and toys example.

Everything can be interrupted at any point. Everything can be done on-the-fly. The only downside is that nothing looks perfect ever. But if you really need to or want to have some really presentable house you just need a limited amount of time to 'flush' all the buffers.

That's it.


If you are not into computer science the following is not for you. It is intended to explain the logic behind this approach to computer people who don't understand why the above might be a good idea but might understand how such a method could be programmed into a computer.

The idea is to use an incremental house keeping algorithm. Or if you are more into modern databases: Eventual Consistency.

The idea is to not maintain a perfect state at all times but to put a bit of slack to good use. For example you can keep a binary tree balanced all the time or you can save balancing operation by keeping the tree only almost balanced like in red-black trees or you can use n-ary trees and have some slack in the N - that's B-trees and that benefits from doing larger batches. Something we also see in the house-keeping rules and in the example with the laundry.

Obviously incremental algorithms have much better amortized complexity than perfect ones. And the savings can be large. Path compression (an incremental technique) sped up https://en.wikipedia.org/wiki/Disjoinset_data_structure from log n to the inverse Ackerman function

Note that this approach has been picked up by other people too and I imagine it gets reinvented all the time. Maybe by you?

Add Comment



Reply all
Reply to author
Forward
0 new messages