Hacker News new | past | comments | ask | show | jobs | submit login

Whenever I see these things, I’m always reminded how amazingly hard deciding on constraints and utility functions can be. You want every employee to have a relatively contiguous schedule, but with at least a little break here and there, you want them to see the same patients as last time, wherever possible. You want everyone to get hours. Alice wants Thursday off, but she’s flexible. Bob commutes from Sacramento (we had to bring him in because we were short on his specialty) and really wants to be out in time to beat the rush. Patient X and therapist Y do really well together. And so on. And any imbalances need to be as fair as possible.

When I was spec’ing out a project to help a friend save time doing the schedule manually, I realized that it would be more work to enter the constraints/goals than to just do the schedule manually. Or you save a ton of time on the schedule without capturing all the knowledge and judgement a person doing it manually has, and just have things a little worse for everyone (and maybe much worse for a few unlucky folks).

I wonder how often, when systems like this get into production, running employees lives, the implementer just decides the automation savings are worth it and it’d be too hard to formalize the human part, so they just don’t.




There is an in-between option, at least for some use cases: Over time iteratively create a more complete set of constraints/heuristics, use them to generate one or more candidate solutions, and then manually tweak them.

Each round of iteration, look at which missing constraints caused the most manual tweaks, and improve from there.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: