Este repositorio proporciona un entorno de evaluación comparativa integral para una variedad de problemas de programación de máquinas, incluida la programación de la tienda de empleo (JSP), la programación de la tienda de flujo (FSP), la programación flexible de la tienda de empleo (FJSP), FJSP con restricciones de ensamblaje (FAJSP), FJSP con tiempos de configuración dependientes de secuencias (FJSP-SDST), y el FJSP en línea (con Arrivals en línea (con Arrivals). Su objetivo es ser un centro centralizado para investigadores, profesionales y entusiastas interesados en abordar los desafíos de programación de máquinas.
El repositorio incluye métodos de solución exactos, heurísticos y basados en el aprendizaje, cada uno compatible con una o más variantes de problemas de programación de máquinas:
| Métodos de solución | Tipo | JSP | FSP | FJSP | FJSP SDST | Fajsp | En línea (f) JSP |
|---|---|---|---|---|---|---|---|
| Milp | Exacto | ||||||
| SAT CP | Exacto | ||||||
| Reglas de envío | Heurístico | ||||||
| Algoritmo genético | Heurístico | ||||||
| FJSP-DRL | DRL | ||||||
| L2D | DRL | ||||||
| DANIEL | DRL |
Aquí proporcionamos algunos ejemplos breves sobre cómo usar los métodos de solución en este repositorio. Para obtener información más detallada y más ejemplos, consulte los tutoriales aquí y aquí.
from solution_methods . dispatching_rules import run_dispatching_rules
from solution_methods . helper_functions import load_job_shop_env , load_parameters
parameters = load_parameters ( "configs/dispatching_rules.toml" )
jobShopEnv = load_job_shop_env ( parameters [ 'instance' ]. get ( 'problem_instance' ))
makespan , jobShopEnv = run_dispatching_rules ( jobShopEnv , ** parameters ) from solution_methods . helper_functions import load_job_shop_env , load_parameters
from solution_methods . GA . run_GA import run_GA
from solution_methods . GA . src . initialization import initialize_run
parameters = load_parameters ( "configs/genetic_algorithm.toml" )
jobShopEnv = load_job_shop_env ( parameters [ 'instance' ]. get ( 'problem_instance' ))
population , toolbox , stats , hof = initialize_run ( jobShopEnv , ** parameters )
makespan , jobShopEnv = run_GA ( jobShopEnv , population , toolbox , stats , hof , ** parameters ) from solution_methods . L2D . src . run_L2D import run_L2D
from solution_methods . helper_functions import load_job_shop_env , load_parameters
parameters = load_parameters ( "configs/L2D.toml" )
jobShopEnv = load_job_shop_env ( parameters [ 'instance' ]. get ( 'problem_instance' ))
makespan , jobShopEnv = run_L2D ( jobShopEnv , ** parameters )Proporcionamos funciones de trazado para establecer tanto las relaciones de precedencia entre las operaciones como el grado Gantt para los problemas de programación de la tienda de empleo:
![]() | ![]() |
|---|
El repositorio está estructurado para proporcionar facilidad de uso y flexibilidad:
job , operation , machine y jobShop ). También contiene el simulationEnv para problemas de programación dinámica con llegadas de trabajo en línea.Para obtener información más detallada, consulte nuestro documento. Si usa este repositorio en su investigación, considere citar el siguiente documento:
Reijnen, R., Van Straaten, K., Bukhsh, Z. y Zhang, Y. (2023). Programación de la tienda de empleo de referencia: entornos e instancias para el aprendizaje y los métodos de no aprendizaje. Preimpresión ARXIV ARXIV: 2308.12794. https://doi.org/10.48550/arxiv.2308.12794
O, usando la siguiente entrada de Bibtex:
@article { reijnen2023job ,
title = { Job Shop Scheduling Benchmark: Environments and Instances for Learning and Non-learning Methods } ,
author = { Reijnen, Robbert and van Straaten, Kjell and Bukhsh, Zaharah and Zhang, Yingqian } ,
journal = { arXiv preprint arXiv:2308.12794 } ,
year = { 2023 }
}Una preimpresión de este documento está disponible o ARXIV. Tenga en cuenta que esta versión es un marcador de posición y se actualizará poco con la versión final.