In the code above I am double counting when enforcing the constraints. I forgot to update that. But it doesn't change the results.
Another option to get a good solution within a certain amount of time, would be to re-route the bad routes (the ones that go back and forth between control nodes and destination nodes) in a "post processing".
But this would complicate the code, and would take considerable more time to implement it and make sure everything works well together. So I wanted to first invest some time in trying something like what I mentioned above.
Or maybe there's some other strategy that doesn't consist of just repeating the control nodes in the same position?
Thanks in advance if you took the time to read this and if you have any suggestions.