Sto costruendo un algoritmo genetico per affrontare il problema del commesso viaggiatore. Sfortunatamente, ho raggiunto picchi che possono durare per oltre un migliaio di generazioni prima di mutare e ottenere risultati migliori. Quali operatori di crossover e mutazione generalmente funzionano bene in questo caso?Operatori GA consigliati per un problema TSP?
risposta
La prego di chiarire
"Purtroppo, mi ha colpito i picchi che possono sostenere per più di mille generazioni prima mutazione di loro e ottenere risultati migliori"?
È possibile controllare gli operatori di crossover, che si assicurano di non avere nodi ripetuti nei cromosomi figli. Un paio di quegli operatori crossover sono gli operatori Order Crossover (OX) e Edge Crossover.
La mutazione può essere semplice come scambiare semplicemente due posizioni in un singolo cromosoma.
BTW, dal momento che hai taggato "python", dai un'occhiata a Pyevolve, ma ha anche un esempio di TSP.
Mutazione ordinata e crossover ordinato (vedere this article). La mutazione standard e le operazioni di crossover generalmente causano soluzioni non valide (ad esempio città duplicate e/o mancanti in una rotta).
C'è stato un similar question di recente.
Ho a Java applet that implements the TSP using ordered cross-over and mutation, se sei interessato a confrontare le prestazioni della tua implementazione.
Se il problema è che i picchi rimangono per oltre mille generazioni, il problema potrebbe non essere con gli operatori di crossover e di mutazione. Potresti non introdurre o mantenere abbastanza variazioni nella tua popolazione: esaminerei le proporzioni dei crossover, delle mutazioni e dei sopravvissuti da una generazione all'altra e probabilmente aumenterei la proporzione delle mutazioni.
- 1. Dati per TSP semplice
- 2. Perché l'istruzione JavaScript "ga = ga || []" funziona?
- 3. TSP: il peggiore rapporto case cresce
- 4. Modelli jQuery consigliati per il 2012?
- 5. Profilatori Open Source consigliati
- 6. Uncaught ReferenceError: ga non definito
- 7. overloading degli operatori [] per un vettore sparse
- 8. Framework CRUD JSF 2.0 consigliati
- 9. Operatori operatori trasparenti
- 10. Esercizi consigliati per la gestione delle eccezioni dell'applicazione in AngularJS
- 11. problema Precedenza degli operatori porta a "Errore: tipo imprevisto"
- 12. Hibernate confusione. Quali sono le differenze tra ga, GA e Final Releases? Compatibilità? Repository?
- 13. Modelli di progettazione consigliati per i blocchi asincroni?
- 14. Metodi consigliati per il debug delle funzioni Clojure?
- 15. Libri consigliati per ottimizzazione e test delle prestazioni ASP.NET
- 16. Libri di calcolo multithreading/parallelo consigliati per C# 4.0
- 17. Esercizi consigliati per l'uso di import_module in django> = 1.8
- 18. Monitoraggio video utilizzando il monitoraggio eventi GA
- 19. Come configurare JBOSS 5.1.0 GA ClassLoader
- 20. Hibernate 3.5-Finale in JBoss 5.1.0.GA
- 21. Determinazione dei requisiti di sistema consigliati
- 22. consigliati articoli/documenti sul mestiere di programmazione
- 23. Operatori che sovraccaricano per enumerazione
- 24. Post consigliati SP1 Visual Studio 2008 Hotfix
- 25. Opposto di aspnet_regiis -ga <UserName>
- 26. JBoss 5.1.0 API GA servlet versione
- 27. std :: result_of per operatori integrati
- 28. operatori booleani vs operatori bit a bit
- 29. Operatori Python
- 30. Come ottenere operatori definiti per un tipo in .net
http://stackoverflow.com/questions/1544055/rossover-operation-in-genetic-algorithm-for-tsp potrebbe aiutare. –