Bonjour,
Voici le contexte :
J'ai une liste qui ressemble à cela : init_list=['C..','C..','D..','Gd.','Gd.','Gd.','Gd.','END']
Chaque élément de cette liste représente une référence de rail de circuit de voiture électrique (je ne citerai pas de marque)
Objectif : trouver toutes les combinaisons de circuits possibles avec les rails
Ensuite chaque combinaison est testée pour vérifier que le circuit est bien bouclé (360°) plus quelques autres paramètres comme longueur max ou mini du circuit. Mais cette partie fonctionne bien.
Comme indiqué dans le titre, le problème vient de l'arrangement de ma liste d'origine.
Jusqu'à 10-11 valeurs dans cette liste tout va bien, mais après, je ma machine fige.
Pour faire mon arrangement je me suis basé sur les liens suivant :
http://www.developpez.net/forums/d11...sible-d-liste/
http://www.developpez.net/forums/d96...eau-n-entrees/
Que ce soit avec le code de message 1 avec list(permutations([1,2,3])) ou avec la fonction du second message., j'ai le même problème au dela de 11 paramètres il n'y a plus de réponse, cela sature.
J'aimerai pouvoir gérer dans les 40 ou 50 paramètres
Dans mon cas avec ['C..','C..','D..','Gd.','Gd.','Gd.','Gd.','END']
mon arrangement donne 3 628 800 possibilités
ensuite je filtre pour supprimer les doublons list_track=list(set(list_track))
j'arrive avec 15120 possibilités
je lance mon traitement pour vérifier que le circuit fait un boucle (360°)
Gd. = 90° donc ['C..','C..','D..','Gd.','Gd.','Gd.','Gd.','END'] -> 4*90° = 360°
par contre je m'arrète au END donc ['C..','C..','D..','Gd.','Gd.','END','Gd.','Gd.'] = 2x90=180 °
il me reste 2880 possibilités et maintenant ma liste ressemble a ceci :
['C..C..D..Gd.Gd.'],['C..D..C..Gd.Gd.'],['C..C..D..Gd.Gd.']
je refiltre ma_track=list(set(ma_track))
il me reste 2267 possibilités que je test tranquillement avec une fonction
Pour le temps de calcule je peu être patient, auriez vous quelques conseils ou techniques pour repousser ma limite de 11-12 paramètres
La fonction permutations dois me donner trop de valeurs et je sature la mémoire.
Vous remerciant pour vos futurs conseils
Bien cordialement,
Partager