Tackling a complex routing or optimization problem where there is no easily calculated perfect answer has an inherent problem - how does the AI know when its finished?
Can I eek out some additional performance? Is the reduction in cost and carbon footprint worth the additional computer time or customer service impact?
When routing a phone call, with only the window of time that the phone is ringing to make the routing decision, the problem is time bound. Even with look ahead routing, the call either completes or it doesn't and the decision is always towards service quality and avoiding the call fail.
But when dispatching an airplane to do a service recovery, every minute spent seeking the optimal solution leaves travelers stranded. What's the best solution that gets everyone to their destination on time? With the least environmental and economic impact?
This is where the popcorn analogy comes in ... when popping corn there is slow start as the kernels heat up (problem set up) ... then a rush of intense popping (rapid, even geometric improvement) ... and then a trailing off to only a few pops every second (incremental linear slow improvement).
And this is how most of CTGi's AIs decide when a job is completed ... they listen to the pops .. are the improvements run after run getting smaller and slower? It's like popcorn - crank it on high in a powerful microwave for four minutes and listen to the pacing of the popping noises until its time to stop ... its a judgement call ... its fuzzy ... don't burn it!
Distributed AI is more complex in that we light up hundreds of processor cores and gather popped info across these super computer clouds, but the principal is the same ... you know you are done when the popping slows ... but don't wait 'till it stops or you just wasted the time and effort ... and co-workers complain about that burnt popcorn smell!