Méthode Johnson (python)

Méthode Johnson

Une méthode de recherche d'un calendrier qui optimise la période de travail lorsque chaque produit est terminé en deux étapes. スクリーンショット 2020-10-04 19-50-56.png

Dans l'exemple de l'image ci-dessus, trouvez l'ordre optimal pour faire bouillir les nouilles. Référence

Essayez d'écrire

test.py



# -*- coding: utf-8 -*-
#Méthode Johnson

def johnsonMethod(job_pair):
    
    front = []
    back = []
    process_1 = []
    process_2 = []
    sum_time = 0
    
    while True:
        
        min_jobs = [min(jobs) for jobs in job_pair]
        min_job = min(min_jobs)
    
        if min_job == 9999:
            sum_time += process_1[0] #Ajoutez le tout premier pré-processus et finition
            break
    
        job_pair_index = min_jobs.index(min_job)
        job_index = job_pair[job_pair_index].index(min_job)
        
        if job_index == 0:
            front.append(job_pair_index)
        else:
            back.append(job_pair_index)
            
        process_1.append(job_pair[job_pair_index][0])
        process_2.append(job_pair[job_pair_index][1])
        
        if sum(process_1) > sum(process_2):
            sum_time += job_pair[job_pair_index][0]
        else:
            sum_time += job_pair[job_pair_index][1]
            
        job_pair[job_pair_index] = [9999, 9999]
    
    front.extend(list(reversed(back)))
    order = ["J" + str(x + 1) for x in front]
    print(order)
    print("Temps requis: " + str(sum_time))
        
#"https://studying.jp/shindanshi/past-exam/exam20unei.html Question 18"
johnsonMethod([[5,5],[6,4],[4,3],[2,8],[5,7]])

Recommended Posts

Méthode Johnson (python)
[Python] Méthode Semi-Lagrange
Méthode Kernel avec Python
Méthode d'installation Python Windows
Méthode Simplex (méthode unique) en Python
Python
[Python] Méthode de calcul avec numpy
Python Design Pattern - Méthode de modèle
Implémentation de la méthode de propagation d'étiquettes en Python
Simuler la méthode Monte Carlo en Python
Méthode Hash (méthode d'adresse ouverte) en Python
[python] -1 signification de la méthode de remodelage de numpy
Construisons une méthode de propagation probabiliste (Python)
Les bases de Python ⑤
Résumé Python
Python intégré
Notation d'inclusion Python
Technique Python
Étudier Python
Compte à rebours Python 2.7
Mémorandum Python
Python FlowFishMaster
Service Python
astuces python
Méthode pour créer un environnement Python dans Xcode 6
[Introduction à Udemy Python3 + Application] 25. Méthode de type dictionnaire
fonction python ①
Les bases de Python
ufo-> python (3)
[Introduction à Udemy Python3 + Application] 13. Méthode de caractères
Python + Selenium Résumé des méthodes d'opération fréquemment utilisées
Notation d'inclusion Python
[Python] [scikit-learn] k-Introduction au mémo de la méthode du voisin le plus proche
Installer python
Python Singleton
mémo python
Méthode de mise à jour automatique par python Pyinstaller exe
Python Jinja2
atCoder 173 Python
[Python] fonction
Installation de Python
Simulation au microscope électronique en Python: méthode multi-coupes (1)
Méthode binaire
Installer Python 3.4.3.
Essayez Python
Mémo Python
Algorithme Python