Bonjour à tous,
Je suis en deuxième année de prépa scientifique et travaille en binôme pour l'épreuve de TIPE sur l'optimisation des réseaux d'irrigation.
Nous travaillons avec Python et connaissons des difficultés.
A ce stade, nous disposons d'une liste de sources et de puits (départ et arrivées d'eau) avec leurs coordonnées. Notre problématique actuelle est d'écrire un algorithme nous permettant de trouver le point de Fermat de 3 points afin de minimiser la longueur des canaux nécessaires.
Au cours de notre recherche, nous avons essayé de résoudre le problème par des équations de droites, mais cela semble bien compliqué !
Nous avons ensuite étudié cet algorithme qui revient très souvent lors de nos recherches :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 def median_approx(X): (x,y) = (0,0) n = len(X) W = 0 for k in range(n): dx = (x - X[k][0])**2 dy = (y - X[k][1])**2 dist = math.sqrt(dx + dy) w = 1.0 / dist W += w x += X[k][0]*w y += X[k][1]*w return x/W, y/W
(où X est la liste des coordonnées des 3 points)
Mais il semblerait que cet algorithme calcule les coordonnées du barycentre, ce qui ne correspond pas exactement au point de Fermat...
Quelqu'un pourrait-il nous éclairer ?
Merci d'avance
Partager