Hacker News new | ask | show | jobs
by Buttons840 857 days ago
Why is the generated schedule so bad that it requires a couple dozen hours to fix? Does the schedule produced fail to meet the defined constraints? Or is it because some of the constraints have not been entered into the computer?

Scheduling is NP complete, but the problems are small enough that I think computers can trivially find near optimal solutions, given some scoring function, better than a human can. Why doesn't this happen? Is defining the scoring function too hard? Am I wrong about computer's solving abilities?

Language models have proven themselves reliable with natural speech and highly technical speech (like code), they could help make entering the constraints more approachable. Also, as my example demonstrates, if such a system fails occasionally, it's not worse than the status quo.

3 comments

Not GP, but usually things are missing or not up to date. Also, people are really bad at defining what exactly is a "good" result. When we introduce scheduling at customers it can take twenty to thirty iterations until we have a good scoring function with all constraints. And then the data needs to be kept up to date or it gets slowly worse over time (requirements change, data rot). This often leads to people saying "the system is bad, I'll just do it by hand" instead of investing the time to find the underlying issue. Especially if it happens gradually. First you rework one schedule, then two and so on. Or if they are not able to enact a change of the system. In many companies the people who do the schedule don't know who to tell that the system is getting worse or get ignored. And they have a job to do after all ..

Stereotypical discussion with customers after a "bad" scheduling result: "Hey, why did your system not schedule Dave to do any of these jobs? All others are at 100% already, but he has nothing to do." "The job all need a Fubar cert, Dave doesn't have one." "Of course he has a Fubar cert." "Not according to the system." "Oh, we probably forgot it, because all schedulers know it anyway."

I tried to provide detailed, bullet-point answers to that question, in the initial post, and the general comment on difficulty of automating seemingly discrete and simple business processes.

I don't have much additional information, but perhaps to summarize:

* Initial iteration of system is (by definition) imperfect

* People who are supposed to maintain constraints and parameters, don't

* Person who typically does end up maintaining the system is not aware of all constraints and parameters, and doesn't have power or channel to change system

* Process for noting and updating constraints is poorly communicated and not enforced

* Through entropy, system, which was not perfect in the first place, gets worse over time, which feedback loops because people keep overriding it and updating it less and less.

My friends'/family experience has been that when a new HR Manager joins a store, they tend to "clean up" everything as much as they can; but then entropy sinks in again - people don't update constraints and requirements, system deteriorates, and provides more reason/excuses for people to not use it properly.

------------

On aside, in my own daily life, I've been working on ERP systems all my life, and as a techie it's a fascinating place to be. I assumed that numbers are numbers, business processes are well structured, defined and documented, and that people who's job it is to use a specific system will be at least somewhat proficient in that system. None of those things are necessarily broadly true :).

On aside-aside, similar thing can be observed in MS Project btw. MS Project has an incredibly powerful scheduling engine. It's amazing! But! 99% of MS Project users don't know how to use MS Project. They try to use it as Excel. They type in some tasks, the dates aren't what they want them to be, then they override automatic scheduling by putting manual dates rather than putting constraints into the system... and the negative feedback loop commences. I've rarely seen a MS Project Plan file which properly uses the scheduling engine :-/

I'm not working in this area.

As others have mentioned, you don't always have a complete and accurate set of constraints. So you generate a schedule based on what you have. You hand it out to your employees. And they point out conflicts that they forgot to tell you about or that come up on short notice. So you have to rework the schedule to take them into account manually.

You could regenerate the schedule with the additional constraints. But the new schedule is likely quite different from what you originally handed out. People will have assumed the original schedule is final and they will have made plans. You cannot simply replace the schedule.

You might also already be halfway into the schedule period and the new schedule might only be fair if you had applied it from the beginning of the period.

You might be able to account for all of that in your constraints but it's going to get really hairy.