TIPE voyageur de commerce-Algo génétique #3
charliedecourchelle
started this conversation in
General
Replies: 3 comments 1 reply
-
|
Peux-tu rappeler quelle était la question? |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Déjà mon mutation ne marche pas et je ne sais pas bien manipuler le module random donc j’aurais aimé avoir votre aide dessus et votre avis sur mon algorithme (optimisation ou autre).
Merci beaucoup
…Sent from my iPhone
On 3 Dec 2022, at 11:52, Quentin Fortier ***@***.***> wrote:
Peux-tu rappeler quelle était la question?
—
Reply to this email directly, view it on GitHub<#3 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/A4PF3HQ4CMDAZH2JFYYP5F3WLMQ47ANCNFSM6AAAAAASOSIGYM>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
1 reply
-
|
Super je vous remercie, en gros j’opère ma selection une fois les fils ajoutés à ma population et non des le départ ?
Envoyé à partir de Courrier<https://go.microsoft.com/fwlink/?LinkId=550986> pour Windows
De : Quentin ***@***.***>
Envoyé le :samedi 3 décembre 2022 14:36
À : ***@***.***>
Cc : ***@***.***>; ***@***.***>
Objet :Re: [mp-info/mp-info.github.io] TIPE voyageur de commerce-Algo génétique (Discussion #3)
Il manque des [1] dans mutation (tu stockes des couples (longueur, chemin) et il faut modifier le chemin) :
def mutation(pop, mutation_rate): #opère une mutation avec probabilité p sur chaque individus de pop
for i in range(len(pop)):
if np.random.random() < mutation_rate:
j, k = np.random.choice(range(len(pop[i][1])), 2)
pop[i][1][j], pop[i][1][k] = pop[i][1][k], pop[i][1][j]
return pop
Remarque : ta population de cycles décroît strictement à chaque itération, car à partir de n cycles, tu en enlèves la moitié, ce qui en donne n/2, puis tu croise les n/2 cycles deux par deux, ce qui en ajoute n/4.
Donc tu passes de n cycles à 3n/4 à chaque itération.
Donc tu peux te retrouver avec 0 cycle avant le nombre d'itérations souhaitées (i).
A la place, tu peux croiser chaque cycle k avec le cycle k+1, de façon à générer n/2 nouveaux cycles par croisement.
—
Reply to this email directly, view it on GitHub<#3 (reply in thread)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/A4PF3HWIN7AHOVASELYZOT3WLNEE7ANCNFSM6AAAAAASOSIGYM>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Beta Was this translation helpful? Give feedback.
All reactions