@Laurent Perron, thank you for your feedback.
@Alireza thanks a lot for your feedback and your practical example with the code. That's indeed what I am looking for to tackle the optimum cable route and avoid crossings problem.
I would like to make the inputs more general and allow the solver to find the optimum routes that connect more than 2 points. i.e. to define the maximum number of cars (cables) and their capacity (e.g. connect up to 3 locations/WTs per cable) and then also more general the dropping locations (WTs). So no need to specify which WTs are connected together. Just let the solver to find the optimum connections.
I am trying to modify your code gradually and:
1) Define a common starting point of all routes/cables, say location 22, where the location of depot is (i.e. substation)
2) Specify all the WT-locations in one variable e.g. the ones you define in your example 72, 139, 89, 152, 46, 96. These doesn't matter how are going to be connected as soon as they respect the constraints.
When I try this:
st_fn = {0:(22,139) ,1:(22,152) , 2:(22,96)} # start/end connection points, where all the 3 routes have a common starting point-(depot/substation), I got no solution ("INFEASIBLE"). Do you have any suggestions on modifications of your code?
Thank you in advance,
Christos