Offline-Online Flexible Job-Shop Scheduling Problem makespan

版本 2.0 (34.9 KB) 作者: Alessandro Bozzi
This package is used to solve a Flexible Job-shop Scheduling Problem (FJSP) minimizing makespan through an offline and a MPC-based algorithm
52.0 次下载
更新时间 2024/3/13
Offline and Online Flexible Job-shop Scheduling Problem minimizing makespan
The two folders contain distinct algorithms designed to address the open-shop scheduling problem: an offline algorithm and an online algorithm based on Model Predictive Control (MPC). Both algorithms ensure robustness by effectively managing variations in processing time due to noises. The goal is to identify the solution that strikes the optimal balance between optimality and robustness.
For a more detailed explanation of the problem and its formulation, the user is kindly requested to refer to the two articles in the "Cite As" section, which contain the theoretical foundations of the implemented algorithm.
This package is designed to address the highly unconstrained open-shop problem, accommodating variations in the number of operations per job, possible machinery cycles, and flexible job routings. However, certain features such as setup time and preemption were not included in the current version. These may be considered in future releases. Interested parties are welcome to contact the author directly for potential collaborations.
Online MPC-based scheduling: The main function is "mpc_based_scheduling" and it is designed to solve an open-shop scheduling problem, with the objective of minimizing the makespan. Additionally, it incorporates automatic handling of shared machine allocation, management of cycles in the production process, and accommodation for varying lengths of production processes. The algorithm considers the scenario where jobs may arrive at a release time different from the planned schedule. It incorporates a prediction horizon to anticipate jobs expected to arrive shortly on the shop floor. The algorithm is activated each time a new job arrives, potentially rerouting existing jobs and preserving completed machine operations up to that point.
Parameters:
  • G: The open-shop graph represented as a matrix, where each row corresponds to a scheduling alternative for a job. It is important to note that each row must have the same number of elements. So, if a job passes through fewer machines, the remaining columns must be filled with zero to maintain consistency.
  • G_j: A vector that maps each i-th row of G to the corresponding i-th job schedule. It must have the same number of rows as G.
  • P: The processing times matrix, where each element represents the processing time of job J on machine M. The matrix's size is JxM, where J is the number of jobs and M is the number of machines.
  • BigOmega: values of noise intensity to test the production order with different delays
  • Release_planned: The arrival time vector, containing the arrival time for each job.
  • max_delay: mac advance/delay on a job with respect to planned relase time
  • horizon: prediction horizon for MPC-scheduling
Offline scheduling: The main function is "offline_scheduling" and it is designed to solve an open-shop scheduling problem, with the objective of minimizing the makespan. Additionally, it incorporates automatic handling of shared machine allocation, management of cycles in the production process, and accommodation for varying lengths of production processes.
Parameters:
  • G: The open-shop graph represented as a matrix, where each row corresponds to a scheduling alternative for a job. It is important to note that each row must have the same number of elements. So, if a job passes through fewer machines, the remaining columns must be filled with zero to maintain consistency.
  • G_j: A vector that maps each i-th row of G to the corresponding i-th job schedule. It must have the same number of rows as G.
  • P: The processing times matrix, where each element represents the processing time of job J on machine M. The matrix's size is JxM, where J is the number of jobs and M is the number of machines.
  • BigOmega: values of noise intensity to test the production order with different delays
  • S0: The arrival time vector, containing the arrival time for each job.
The supplementary files, namely "Compute_D_from_graph" and "pre_processing_graph", have the purpose of maintaining the main function's cleanliness by offloading specific computations and pre-processing tasks to separate modules.
The auxiliary files 'createGraphFromDataset' and 'generatePaths' simplify the process of generating feasible paths from an Excel file.

引用格式

Bozzi, Alessandro, et al. “Dynamic MPC-Based Scheduling in a Smart Manufacturing System Problem.” IEEE Access, vol. 11, Institute of Electrical and Electronics Engineers (IEEE), 2023, pp. 141987–96, doi:10.1109/access.2023.3341504.

查看更多格式

Bozzi, Alessandro, et al. “Reliability Evaluation of Emergent Behaviour in a Flexible Manufacturing Problem.” 2023 18th Annual System of Systems Engineering Conference (SoSe), IEEE, 2023, doi:10.1109/sose59841.2023.10178498.

查看更多格式
MATLAB 版本兼容性
创建方式 R2023a
兼容任何版本
平台兼容性
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
2.0

The package for dynamic scheduling, based on MPC, has been added.
Added the ability to generate the graph G containing all possible paths for a job directly from a properly formatted Excel file.
See release notes for this release on GitHub: https://github.com/Bozzi96/MPC_scheduling/releases/tag/2.0

1.0.0

要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库
要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库