Je veux résoudre le problème de planification de Job Shop en utilisant l'algorithme génétique et le code sera écrit en Python. Je présente actuellement l'individu comme une liste de [job, operation, machine, operation]
. Par exemple, voici par exemple d'un chromosome:Python: Ordre des éléments partiels dans la liste pour l'algorithme génétique
jobs = [ [1,3,3,2], [3,3,1,3], [1,1,1,4], [2,2,1,4], [2,3,3,4], [3,1,3,3], [2,1,2,1], [1,2,2,3], [3,2,2,2] ]
La liste doit satisfaire la contrainte de priorité de fonctionnement pour chaque emploi, par exemple l'ordre d'un emploi 1 dans la liste est
[1,1,1,4], [1,2,2,3], [1,3,3,2]
En d'autres termes , Je dois faire la commande pour le travail 1 (index 0, index 2, et index 7) seulement pendant que les autres travaux restent dans leur position. Le résultat correct sera:
jobs = [ [1,1,1,4], [3,3,1,3], [1,2,2,3], [2,2,1,4], [2,3,3,4], [3,1,3,3], [2,1,2,1], [1,3,3,2], [3,2,2,2] ]
Ma tentative à ce jour:
Déterminer/filtre toutes les lignes contenant l'emploi 1:
[row[:][:] for row in jobs if row[0]==1]
sortie
[[1, 1, 1, 4], [1, 2, 2, 3], [1, 3, 3, 2]]
@ 0k J'essaie: 1. de déterminer/filtrer toutes les lignes contenant le travail 1, c'est-à-dire >>> [row [:] [:] pour row dans les jobs si row [0] == 1] [[1 , 1, 1, 4], [1, 2, 2, 3], [1, 3, 3, 2]] – user2090593