--- Page 1 --- A COMPARATIVE STUDY OF METAHEURISTICS FOR ENERGY-SAVING JOB SHOP SCHEDULING PROBLEM WITH TRANSPORTATION TIMES: A CASE STUDY OF VIET TIEN GARMENT CORPORATION --- Page 2 --- A COMPARATIVE STUDY OF METAHEURISTICS FOR ENERGY-SAVING JOB SHOP SCHEDULING PROBLEM WITH TRANSPORTATION TIMES: A CASE STUDY OF VIET TIEN GARMENT CORPORATION A COMPARATIVE STUDY OF METAHEURISTICS FOR ENERGY-SAVING JOB SHOP SCHEDULING PROBLEM WITH TRANSPORTATION TIMES: A CASE STUDY OF VIET TIEN GARMENT CORPORATION --- Page 3 --- Abstract The core objective of this paper is finding optimized methods to mitigate the total completion time of machines to performance orders early, leading to directly reducing the energy. This problem is inspired by a real situation observed in a garment manufacturer. The reduction in production will be a great competitive advantage for the company in this competitive market. This paper will examine the production schedule of Viet Tien Garment Corporation in Vietnam. Currently, the company often considers machining and assembly stages separately, which could lead to inefficiencies and a lack of holistic optimization in terms of job and operation precedence. This method is simple to use and is widely used in production planning. To increase machine utilization or minimize total energy consumption the mathematical model is used to modify the system and give the optimized production schedule for the job-shop scheduling problem. The BOM of products, processing time of machines to complete each operation are collected and integrated with the model conception (Mixed integer linear programming) to give the optimized result by running code through CPLEX software. Additionally, I develop a metaheuristic based on genetic algorithm which can efficiently address large problems by Python code. Based on that information, the company may make some suggestions to modify or minimize the total energy consumption in the long term. When the problem is solved by the best result, the sensitive analysis is conducted to evaluate methods. As a result, the company may make plans and some potential strategies to run the business. --- Page 4 --- Keywords: energy-saving scheduling; Production schedule; total energy consumption; Particle Swarm Optimization, Mixed integer linear programming, CPLEX software, Python code. Acknowledgements First, I would like to thank Dr. Phan Nguyen Ky Phuc, my adviser, for his important assistance and guidance throughout this challenging period. He has spent many hours offering helpful critiques, comments, and recommendations to improve the caliber of this work, for which I am very appreciative. In addition to all the committed instructors who have generously shared their knowledge and given students pursuing a Bachelor of Engineering in Logistics and Supply Chain Management priceless educational advice, I would like to express my sincere gratitude and thanks to the distinguished Board of Deans of the School of Industrial Engineering Management. I express my gratitude to the jury members for their keen interest in this subject and for giving them time to consider my thesis. In my professional journey, I have been fortunate to acquire extensive knowledge in supply chain operational activities and to encounter and navigate significant logistical challenges in real-world business settings. These practical experiences serve as the bedrock of the insights presented in this paper, contributing a nuanced perspective to the academic discourse. Lastly, my heartfelt gratitude is extended to my family, fellow seniors, and friends, whose unwavering emotional support and generous encouragement have been indispensable. Their collective assistance has played an instrumental role in the successful completion of this study, and I am profoundly appreciative of their steadfast commitment. The collaborative efforts and support from these individuals have been pivotal in this thesis''''s culmination. Table of Contents --- Page 5 --- List of Tables Table 3-1: Summary of considered approaches 23 Table 4-1: Indices tables about number if orders, number of machines and number of operations 35 Table 4-2: Indices tables about number if orders, number of machines and number of operations 36 Table 4-3: The processing time of operations of a Nike Pants completed by machines (minutes) 37 Table 4-4: The processing time of operations of a hoodie completed by machines (minutes) 38 Table 4-5: The processing time of operations of a Crop top completed by machines (minutes) 39 Table 5-1: Objective solution of MILP 54 Table 5-2: Cmax result of each jobs 54 Table 5-3: Solution space 55 Table 5-4: Start time of each jobs processed on machines 56 Table 5-5: Completion time of each jobs processed on machines 56 Table 5-6: Comparison result between MILP and PSO method 58 Table 5-7: Summay of sample data 59 Table 5-8: Result of sample data 60 --- Page 6 --- List of Figures Figure 2-1: Logo of Viet Tien Garment Corporation 11 Figure 2-2: Machine system of Viet Tien Garment Corporation 12 Figure 2-3: Layout of the flexible job shop environment (a) 14 Figure 2-4: Layout of the flexible job shop environment (b) 15 Figure 4-1: BOM of a Skirts 35 Figure 4-2: BOM of a NIKE Pant 36 Figure 4-3: BOM of Nike hoodies 37 Figure 4-4: BOM of a Crop top 38 Figure 4-5: Procedure of PSO application 49 Figure 5-1: Objective result of MILP 52 Figure 5-2: Gantt chart solution 53 Figure 5-3: Fitness result of solution space 54 Figure 5-4: Gantt chart solution of PSO 56 --- Page 7 --- List of Abbreviations --- Page 8 --- INTRODUCTION Background: Allocating resources effectively to match demand is a pivotal component of production planning, acting as an essential mechanism that reveals in detail how a company''''s products are manufactured. It facilitates the strategic use of resources such as labours, equipment, and materials, aiming primarily to reduce energy consumption. With meticulous and accurate production planning, a company can ensure that all inputs are optimized for energy efficiency and that production is scaled appropriately to resource availability. Moreover, creating an ideal scheduling plan contributes to lower energy consumption from a management standpoint. This approach to energy-efficient scheduling, despite adding a minimal financial overhead, is increasingly favoured over traditional methods like buying energy-efficient equipment or designing new products, particularly by smaller enterprises. In Vietnam''''s garment industry, the Make-to-Order (MTO) strategy is extensively used. MTO allows customers to order customized products, initiating production only after an order is received, thus adhering to a pull-type supply chain where production is directly linked to actual customer demand. To manage this model effectively, it is crucial to segment and organize orders efficiently to save on production time, meet precise customer specifications, and guarantee timely delivery. In production scheduling, the critical elements include the allocation of resources and tasks—commonly machines and jobs. The main goal in this context is to minimize energy usage, closely linked to reducing transportation times required to complete an order. Several strategies, including Linear Programming (LP), Nonlinear Programming (NLP), Integer Linear Programming (ILP), and Mixed Integer Linear Programming (MILP), are utilized to decrease the makespan and prevent delays in order fulfilment within production scheduling. These methods provide a broad spectrum of solutions to tackle the complexities of production scheduling. For this thesis, the chosen approach to address these challenges is Particle Swarm Optimization. As it is an NP-Hard problem, it is not possible to find the best solution, so over time, several types of algorithms have been proposed to find a good enough solution to the problem, one of these approaches is the bio- inspired algorithms in which they use patterns observed in nature to solve problems. One of these patterns observed in nature is the behaviour of bee swarms and the migratory movement of flocks of birds, the behaviour of these flocks is used as a heuristic in the Particle Swarm Optimization (PSO) algorithm where each individual of a population of particles uses the average between its best position ever visited (pBest) and the best position already visited among all of the population (gBest) to obtain a new position so that each round the population converges to an optimal result. Problem Statement – The Need for Study: Current system description Viet Tien company''''s production facilities are typically organized in a traditional job shop format where various clothing items are produced on an order-by-order basis. Each facility houses numerous specialized departments such as cutting, sewing, finishing, and quality control, which handle different stages of the garment manufacturing process. The manufacturing process is energy-intensive, primarily due to the use of various machines such as sewing machines, cutting machines, and presses, which are essential at different stages of production. The energy consumption varies significantly across different departments depending on the machinery and production techniques used. Identify the problem and the gap needed to fill this case. According to the relevant survey, the worldwide industrial sector will consume more than half of the total energy through 2040. Against the background of the deteriorating ecological environment, environmental protection has become a serious issue for global manufacturing industries. Suffering from growing energy costs and a worsening ecological environment, it is quite necessary to adopt some measures to achieve energy saving and consumption reduction. Reviewing this situation, Viet Tien Garment Corporation has tried to purchase more energy-efficient equipment, others attempt to redesign the products. However, these previous attempts inevitably impose substantial capital investment, which is impossible for them to afford such extra financial burden. They are finding reasonable operational management for the reduction of energy consumption. The use of Excel and energy-efficient equipment at Viet Tien Garment Corporation is presently beneficial to the FJSPs in this firm. For FJSPs difficulties, using Excel to assign work to machines may not be the ideal strategy. Minimized transportation time and sub-lot number will minimize the transportation energy consumption, which leads to minimizing the total energy consumption. --- Page 9 --- To solve that problem, a model of FJSPs is being formed which helps the companies to get the optimal scheduling. It helps the company to ensure that products are produced on time, to the right specifications, and at the lowest possible supply, as well as the allocation of the jobs to the machines, which can be beneficial for the human resources department. Benefits of effective production scheduling include increased efficiency, improved customer service, and increased profitability. By carefully planning and coordinating production, companies can improve efficiency, customer service, and profitability. What Needs to Solve or Achieve: There are several areas that need to be implemented to improve the company’s planning and scheduling. First, I need to look for several methods which may help to reduce the great amount of energy to optimize the energy of using machines and must achieve the new production schedule. Second, I must collect information about developing a production system including information about the BOM, the energy consumption to complete operations by machines with multiple tasks, and demand of customers, so I can calculate the total energy and make the schedule. Objectives of Study: The beneficiaries of the study results My project: This project has enriched my expertise in production planning and scheduling. Additionally, it provided me with hands-on experience through a particular case study aimed at reducing energy usage among machine-operated jobs. I also created a Gantt chart to visualize the distribution of operations across machines. The Viet Tien Garment Corporation: This company can enhance its production processes and address existing issues through the insights gained from this project. Moreover, other firms might consider the findings from this case study as a benchmark for optimizing their own production schedules to decrease machine transit times, or it may at least prompt them to reassess the efficiency of their current operational setups. Design project objective: Expected result: This project presents an optimization model applied to the garment production line. The main objective is to solve problems related to production planning and control, which is minimize the total energy consumption. Since there, it can be concluded that the success in finding an optimal schedule for orders to minimize total energy consumption in terms of transportation time, that is, the success in using the model to reschedule the production plan showing the assignment of operations to machines. Specific goals include: - Minimize the total energy consumption with transportation time - Particle swarm optimization (PSO) is proposed by considering the problem’s characteristics Expected outputs and applications. I hope that my project provides a clearer perspective on identifying the appropriate model for enterprise production planning. Additionally, I think this model should be adopted and implemented to reduce production times, applicable not just to garment manufacturing but to various other real-world scenarios as well. Moreover, using a metaheuristic model in my project, I aim for tasks to be efficiently allocated across machines handling multiple tasks, optimizing the overall makespan of the production process. Design requirements The system should be able to be used for any multi-level structure products. The system should be able to create an optimal schedule with a specific start time and completion time for each operation. The output of the production planning for each order (including components, sub- assembly parts, and finished products) should be more efficient than before. Scope and Limitation: --- Page 10 --- Scope: In this study, I consider the case of a company that plans to perform four orders of clothes. In the order, there are a wide range of operations that need to be processed to complete the order. 4 machines are considered, with multiple tasks can complete operations with different processing time. Limitations: The model is built on ideal conditions. Thus, if one of the given assumptions is not met, the model may fail or give unreasonable results. Moreover, if the job has more than two branches of operations, it is necessary to improve the methodology to tackle this issue. Assumption An operation consumes a different amount of energy when it is assigned to different machines. When a job is finished on a machine, it will be immediately conveyed to the next machine for machining or assembly. The transportation times between different machines are assumed to be known. The transfer also consumes an amount of energy during transportation time. This problem attempts to assign operations to an appropriate machine and sequence them on each machine. Some assumptions are considered as follows: (1) All jobs are released, and all machines are available at time zero. (2) Each machine can perform one operation simultaneously. (3) Each job can only be processed by one machine at a time. (4) The processing of each operation cannot be interrupted. (5) Each machine cannot be turned off until all jobs on it are completed. (6) There are enough transfers for transportation operations between machines. (7) The last operation of each product does not need to be transported after it is finished. (8) Machine breakdown is negligible and setup times of machines are ignored. RELATED WORKS Overview: General information Viet Tien Garment Corporation (VTEC) has evolved significantly from its modest beginnings as "Pacific Enterprise," a privately-owned company established by Sam Bao Tai, a Chinese businessman. Initially equipped with only 65 sewing machines and employing around 100 workers, the enterprise underwent substantial transformation post-1975 when it was nationalized and came under the management of the Ministry of Light Industry, now known as the Ministry of Industry. In 1977, it was rebranded as Viet Tien Garment Enterprise, a name meaning "Vietnam Advancing Forward," chosen to reflect the aspirations and spirit of the staff. Through the years, as the garment sector flourished, Viet Tien transitioned from an enterprise to a company and eventually into a corporation, retaining its name throughout these changes. Today, VTEC is a major player in the industry, with six enterprises and 14 affiliates, employing over 20,000 workers. The corporation specializes in the production of garments and the trading of materials, accessories, equipment, and components related to the garment sector, as well as providing import-export services. VTEC’s diverse product range is distributed through more than 20 shops and 300 agents nationwide, and its international footprint extends to markets in the US, Europe, Japan, and other ASEAN countries. In 2010, the corporation reported a turnover of 4.5 trillion VND, marking a 15% increase from the previous year, which has contributed to improving the livelihoods of its workers and stabilizing their lives. Figure 2-1: Logo of Viet Tien Garment Corporation The key to Viet Tien''''s firm development lies in its strategic focus on technology renewal and the modernization of production equipment. Management enhancement and human resource development are also pivotal, ensuring the corporation''''s operations align with international standards. At a facility on Le Minh Xuan Road in Tan Binh District, Ho Chi Minh City, the corporation employs hundreds in a modern, clean, and well-ventilated environment, with advanced computer systems to monitor machine capacity and quality, and special equipment to check sewing needles, ensuring high product quality and workplace safety. In a fiercely competitive and integrating market, VTEC prioritizes brand construction and protection to enhance product popularity and quality, adopting the LEAN system across management, production control, and product quality to ensure customer trust. The corporation’s product lines, including various labels like Viettien, Vee Sendy, San Sciaro, and others, cater to diverse market segments, offering both high-grade and casual products.
INTRODUCTION
Background
Allocating resources effectively to match demand is a pivotal component of production planning, acting as an essential mechanism that reveals in detail how a company's products are manufactured It facilitates the strategic use of resources such as labours, equipment, and materials, aiming primarily to reduce energy consumption With meticulous and accurate production planning, a company can ensure that all inputs are optimized for energy efficiency and that production is scaled appropriately to resource availability Moreover, creating an ideal scheduling plan contributes to lower energy consumption from a management standpoint This approach to energy-efficient scheduling, despite adding a minimal financial overhead, is increasingly favoured over traditional methods like buying energy-efficient equipment or designing new products, particularly by smaller enterprises.
In Vietnam's garment industry, the Make-to-Order (MTO) strategy is extensively used. MTO allows customers to order customized products, initiating production only after an order is received, thus adhering to a pull-type supply chain where production is directly linked to actual customer demand To manage this model effectively, it is crucial to segment and organize orders efficiently to save on production time, meet precise customer specifications, and guarantee timely delivery In production scheduling, the critical elements include the allocation of resources and tasks—commonly machines and jobs. The main goal in this context is to minimize energy usage, closely linked to reducing transportation times required to complete an order.
Several strategies, including Linear Programming (LP), Nonlinear Programming (NLP),Integer Linear Programming (ILP), and Mixed Integer Linear Programming (MILP), are utilized to decrease the makespan and prevent delays in order fulfilment within production scheduling These methods provide a broad spectrum of solutions to tackle the complexities of production scheduling.
For this thesis, the chosen approach to address these challenges is Particle Swarm Optimization As it is an NP-Hard problem, it is not possible to find the best solution, so over time, several types of algorithms have been proposed to find a good enough solution to the problem, one of these approaches is the bio- inspired algorithms in which they use patterns observed in nature to solve problems One of these patterns observed in nature is the behaviour of bee swarms and the migratory movement of flocks of birds, the behaviour of these flocks is used as a heuristic in the Particle Swarm Optimization (PSO) algorithm where each individual of a population of particles uses the average between its best position ever visited (pBest) and the best position already visited among all of the population (gBest) to obtain a new position so that each round the population converges to an optimal result.
Problem Statement – The Need for Study
- Viet Tien company's production facilities are typically organized in a traditional job shop format where various clothing items are produced on an order-by-order basis Each facility houses numerous specialized departments such as cutting, sewing, finishing, and quality control, which handle different stages of the garment manufacturing process.
- The manufacturing process is energy-intensive, primarily due to the use of various machines such as sewing machines, cutting machines, and presses, which are essential at different stages of production The energy consumption varies significantly across different departments depending on the machinery and production techniques used.
1.2.2 Identify the problem and the gap needed to fill this case
- According to the relevant survey, the worldwide industrial sector will consume more than half of the total energy through 2040 Against the background of the deteriorating ecological environment, environmental protection has become a serious issue for global manufacturing industries.
- Suffering from growing energy costs and a worsening ecological environment, it is quite necessary to adopt some measures to achieve energy saving and consumption reduction Reviewing this situation, Viet Tien Garment Corporation has tried to purchase more energy-efficient equipment, others attempt to redesign the products. However, these previous attempts inevitably impose substantial capital investment, which is impossible for them to afford such extra financial burden They are finding reasonable operational management for the reduction of energy consumption.
- The use of Excel and energy-efficient equipment at Viet Tien Garment Corporation is presently beneficial to the FJSPs in this firm For FJSPs difficulties, using Excel to assign work to machines may not be the ideal strategy Minimized transportation time and sub-lot number will minimize the transportation energy consumption, which leads to minimizing the total energy consumption
- To solve that problem, a model of FJSPs is being formed which helps the companies to get the optimal scheduling It helps the company to ensure that products are produced on time, to the right specifications, and at the lowest possible supply, as well as the allocation of the jobs to the machines, which can be beneficial for the human resources department Benefits of effective production scheduling include increased efficiency, improved customer service, and increased profitability By carefully planning and coordinating production, companies can improve efficiency, customer service, and profitability.
1.2.3 What Needs to Solve or Achieve:
There are several areas that need to be implemented to improve the company’s planning and scheduling First, I need to look for several methods which may help to reduce the great amount of energy to optimize the energy of using machines and must achieve the new production schedule Second, I must collect information about developing a production system including information about the BOM, the energy consumption to complete operations by machines with multiple tasks, and demand of customers, so I can calculate the total energy and make the schedule.
Objectives of Study
1.3.1 The beneficiaries of the study results
- My project: This project has enriched my expertise in production planning and scheduling Additionally, it provided me with hands-on experience through a particular case study aimed at reducing energy usage among machine-operated jobs I also created a Gantt chart to visualize the distribution of operations across machines.
- The Viet Tien Garment Corporation: This company can enhance its production processes and address existing issues through the insights gained from this project. Moreover, other firms might consider the findings from this case study as a benchmark for optimizing their own production schedules to decrease machine transit times, or it may at least prompt them to reassess the efficiency of their current operational setups.
This project presents an optimization model applied to the garment production line. The main objective is to solve problems related to production planning and control, which is minimize the total energy consumption Since there, it can be concluded that the success in finding an optimal schedule for orders to minimize total energy consumption in terms of transportation time, that is, the success in using the model to reschedule the production plan showing the assignment of operations to machines. Specific goals include:
- Minimize the total energy consumption with transportation time
- Particle swarm optimization (PSO) is proposed by considering the problem’s characteristics
I hope that my project provides a clearer perspective on identifying the appropriate model for enterprise production planning Additionally, I think this model should be adopted and implemented to reduce production times, applicable not just to garment manufacturing but to various other real-world scenarios as well Moreover, using a metaheuristic model in my project, I aim for tasks to be efficiently allocated across machines handling multiple tasks, optimizing the overall makespan of the production process.
- The system should be able to be used for any multi-level structure products.
- The system should be able to create an optimal schedule with a specific start time and completion time for each operation.
- The output of the production planning for each order (including components,sub- assembly parts, and finished products) should be more efficient than before.
Scope and Limitation
In this study, I consider the case of a company that plans to perform four orders of clothes In the order, there are a wide range of operations that need to be processed to complete the order 4 machines are considered, with multiple tasks can complete operations with different processing time.
The model is built on ideal conditions Thus, if one of the given assumptions is not met, the model may fail or give unreasonable results.
Moreover, if the job has more than two branches of operations, it is necessary to improve the methodology to tackle this issue.
An operation consumes a different amount of energy when it is assigned to different machines When a job is finished on a machine, it will be immediately conveyed to the next machine for machining or assembly The transportation times between different machines are assumed to be known The transfer also consumes an amount of energy during transportation time This problem attempts to assign operations to an appropriate machine and sequence them on each machine.
Some assumptions are considered as follows:
(1) All jobs are released, and all machines are available at time zero.
(2) Each machine can perform one operation simultaneously.
(3) Each job can only be processed by one machine at a time.
(4) The processing of each operation cannot be interrupted.
(5) Each machine cannot be turned off until all jobs on it are completed.
(6) There are enough transfers for transportation operations between machines.
(7) The last operation of each product does not need to be transported after it is finished.
(8) Machine breakdown is negligible and setup times of machines are ignored.
RELATED WORKS
Overview
Viet Tien Garment Corporation (VTEC) has evolved significantly from its modest beginnings as "Pacific Enterprise," a privately-owned company established by Sam Bao Tai, a Chinese businessman Initially equipped with only 65 sewing machines and employing around 100 workers, the enterprise underwent substantial transformation post-
1975 when it was nationalized and came under the management of the Ministry of Light Industry, now known as the Ministry of Industry In 1977, it was rebranded as Viet Tien Garment Enterprise, a name meaning "Vietnam Advancing Forward," chosen to reflect the aspirations and spirit of the staff.
Through the years, as the garment sector flourished, Viet Tien transitioned from an enterprise to a company and eventually into a corporation, retaining its name throughout these changes Today, VTEC is a major player in the industry, with six enterprises and 14 affiliates, employing over 20,000 workers The corporation specializes in the production of garments and the trading of materials, accessories, equipment, and components related to the garment sector, as well as providing import-export services.
VTEC’s diverse product range is distributed through more than 20 shops and 300 agents nationwide, and its international footprint extends to markets in the US, Europe, Japan, and other ASEAN countries In 2010, the corporation reported a turnover of 4.5 trillion VND, marking a 15% increase from the previous year, which has contributed to improving the livelihoods of its workers and stabilizing their lives.
Figure 2-1: Logo of Viet Tien Garment Corporation
The key to Viet Tien's firm development lies in its strategic focus on technology renewal and the modernization of production equipment Management enhancement and human resource development are also pivotal, ensuring the corporation's operations align with international standards At a facility on Le Minh Xuan Road in Tan Binh District, Ho Chi Minh City, the corporation employs hundreds in a modern, clean, and well-ventilated environment, with advanced computer systems to monitor machine capacity and quality, and special equipment to check sewing needles, ensuring high product quality and workplace safety.
In a fiercely competitive and integrating market, VTEC prioritizes brand construction and protection to enhance product popularity and quality, adopting the LEAN system across management, production control, and product quality to ensure customer trust The corporation’s product lines, including various labels like Viettien, Vee Sendy, San Sciaro,and others, cater to diverse market segments, offering both high-grade and casual products.
Figure 2-2: Machine system of Viet Tien Garment Corporation
The manufacturing process at Viet Tien is comprehensive and involves several key steps:
1 Design and Development: The process begins with the design team, which is responsible for researching fashion trends and designing new garments This team works closely with clients to ensure that the designs meet their requirements and are feasible for production.
2 Sourcing of Materials: Once designs are finalized, the sourcing team procures high-quality fabrics and other necessary materials from both domestic and international suppliers Viet Tien places a strong emphasis on selecting sustainable and eco-friendly materials to align with global environmental standards.
3 Cutting and Sewing: The cut-make-trim (CMT) phase is where the bulk of garment manufacturing takes place Fabric is first cut into pattern pieces, which are then sewn together to assemble the garments Viet Tien utilizes advanced machinery and technology to enhance precision and efficiency during this stage.
4 Quality Control: Throughout the production process, Viet Tien maintains strict quality control measures Each garment undergoes multiple inspections to ensure that it meets the specified quality standards This includes checking the stitching, fit, and overall construction of the garment.
5 Finishing and Packing: After passing quality control, garments are ironed, tagged, and packed The finishing touches often include adding brand labels, care labels, and packaging that aligns with the client's specifications.
6 Logistics and Distribution: The final stage involves distributing the finished products to various clients and markets Viet Tien has a sophisticated logistics network that ensures timely delivery of its products across the globe.
Viet Tien has been proactive in adopting new technologies, including automation and data analytics, to streamline its operations and reduce production costs This adoption of technology not only improves efficiency but also enhances the scalability of its operations to meet the growing demand.
Moreover, Viet Tien's commitment to sustainability is evident in its choice of materials, energy-saving measures, and waste reduction practices The company actively participates in various environmental and social initiatives to contribute positively to the communities where it operates.
In conclusion, Viet Tien Garment Corporation stands as a testament to Vietnam's growing prowess in the textile and apparel manufacturing sector With a focus on quality, customer satisfaction, and sustainable practices, it continues to build its reputation as a reliable and forward-thinking manufacturer in the global fashion industry.
Literature Review
The FJSP is depicted as follows [2]: A set of n jobs, denoted as 𝐽 = {𝐽1, 𝐽2, …, 𝐽𝑛},
Figure 2-3: Layout of the flexible job shop environment (a) needs processing on a set of m machines, denoted as 𝑀 = {𝑀1, 𝑀2, …, 𝑀𝑚} Each job
𝐽𝑖 involves a sequence of operations {𝑂𝑖1, 𝑂𝑖2, …, 𝑂𝑖𝑝𝑖 }, processed in a specified order as shown in Figure 2.1 Each operation can be carried out on multiple machines in 𝑀 as shown in Figure 2.2 The primary goal of the FJSP is to determine the optimal machine for each operation (referred to as machine selection) and the sequence of operations on machines (referred to as operation sequencing) The overall optimization objective of theFJSP is to minimize certain metrics, such as makespan, maximum tardiness, and total flow time.
Figure 2-4: Layout of the flexible job shop environment (b)
The study by Jia et al (2024) [1] explores the green flexible job-shop scheduling problem (GFJSP) within the context of variable electricity pricing, a critical factor for manufacturing industries aiming to enhance sustainability The paper introduces a multi- objective optimization model that integrates the scheduling of manufacturing operations with considerations for cost, carbon emissions, and customer satisfaction This approach is unique in its application of an enhanced genetic algorithm equipped with an adaptive mechanism to handle the complexities of real-time electricity pricing and manufacturing demands The effectiveness of this algorithm is validated through extensive simulations, showcasing its ability to significantly reduce energy costs, lower carbon emissions, and improve customer satisfaction while maintaining production efficiency.
Liu et al (2022) [3] explore energy-efficient scheduling in flexible job-shop environments by integrating overlapping operations and transportation times, previously unaddressed in standard models They introduce a new interior search algorithm (NISA) tailored for these complexities, embedded within a novel mathematical model aimed at minimizing total energy consumption Their approach significantly advances the field by offering a solution that optimally balances operational efficiency and energy savings, with extensive experimental validations demonstrating NISA's effectiveness in real-world manufacturing scenarios (Liu et al., 2022) [3].
Long et al (2022) [4] investigate the dynamic flexible job-shop scheduling problem (DFJSP) and present the dynamic self-learning artificial bee colony (DSLABC) algorithm This innovative approach combines Q-learning with the artificial bee colony method to tackle the complexities of real-time job scheduling By integrating reinforcement learning, the algorithm adapts to changing conditions without human intervention This methodology improves upon traditional static scheduling by dynamically adjusting search strategies to optimize machine utilization Through extensive simulations, the DSLABC algorithm demonstrates enhanced adaptability, significantly improving production efficiency and reducing computational costs compared to existing static scheduling approaches.
Jiang and Zhang (2018) [5] investigate the job shop and flexible job shop scheduling problems (JSP/FJSP) using Grey Wolf Optimization (GWO), inspired by the social hierarchy and hunting behavior of wolves Their study introduces GWO as a population- based intelligence algorithm for combinatorial optimization By simulating the hunting strategies of wolves, this algorithm effectively balances exploration and exploitation to minimize makespan and reduce idle time in scheduling The algorithm's performance is validated through extensive computational experiments, demonstrating its capability to deliver optimal or near-optimal solutions across various manufacturing scenarios, showcasing its significant potential for production scheduling in real-world applications.
Pezzella et al (2018) [6] tackle the flexible job shop scheduling problem (FJSP) using a hybrid genetic algorithm (GA) approach, focusing on the dual challenges of operation routing and sequencing Their study introduces a multi-phase GA method designed to optimize makespan while balancing workloads across multiple machines The GA incorporates specialized crossover and mutation operators to handle the complex structure of FJSP, enhancing the search efficiency for feasible solutions Validated through rigorous computational experiments, this approach demonstrates its ability to deliver high-quality solutions, effectively reducing makespan and improving overall scheduling performance across diverse manufacturing scenarios.
Ren et al (2020) [7] address the energy-aware flexible job-shop scheduling problem with assembly operations, proposing a multi-objective optimization framework to enhance manufacturing sustainability Their approach innovatively combines particle swarm optimization and genetic algorithms to optimize both energy efficiency and production effectiveness This dual-focus method is rigorously tested through computational studies, demonstrating its superiority in reducing energy consumption while maintaining operational efficiency The study provides valuable insights into the trade-offs between production efficiency and energy usage, offering a robust solution for industries seeking to balance economic performance with environmental considerations.
Zhu and Zhou (2020) [8] address the multi-objective flexible job shop scheduling problem with hierarchical job precedence constraints Their research introduces an evolutionary multi-objective grey wolf optimizer (EMOGWO) to solve this complex scheduling problem, aiming to minimize makespan, maximum machine workload, and total machine workload simultaneously Their algorithm leverages an innovative three- vector encoding scheme and a binary tree-based repair mechanism to ensure the feasibility of solutions under stringent precedence constraints Extensive computational experiments demonstrate EMOGWO's effectiveness in outperforming traditional algorithms, offering significant improvements in convergence speed and solution diversity.
Efficiency improvement models play a crucial role in enhancing MTO production processes (Rosario-Malasquez et al., 2023) [9] Rosario-Malasquez et al developed a custom efficiency improvement model for an MSME metalworking company, leveragingLean Manufacturing tools to optimize production processes Their study demonstrated significant efficiency improvements, highlighting the effectiveness of Lean methodologies in enhancing MTO operations (Rosario-Malasquez et al., 2023) [9].
Rakovitis et al (2022) [10] propose a novel mathematical formulation for the energy- efficient flexible job-shop scheduling problem (FJSSP) that significantly reduces energy consumption Their model, based on a unit-specific event-based time representation, achieves up to 43.1% lower energy use compared to existing models The authors introduce a grouping-based decomposition approach that efficiently solves large-scale problems by breaking them into smaller, manageable subproblems This method not only enhances computational efficiency but also ensures that solutions are feasible across different scales of FJSSP, making it a pioneering approach in sustainable manufacturing practices.
The study by Anuar and Fauadi (2021) [11] addresses the Job-Shop Scheduling Problem (JSP) using Multi-Objective Particle Swarm Optimization (MOPSO) JSP, known for its complexity, is critical in production scheduling Traditional Particle Swarm Optimization (PSO) is inadequate for multi-objective scenarios, prompting the need for MOPSO.
Their review covers MOPSO's effectiveness in optimizing multiple objectives like makespan, total tardiness, and machine idle time through Pareto optimality They analyze improvement strategies such as local search procedures, genetic operators, and hybrid algorithms, which enhance MOPSO's performance.
Anuar and Fauadi propose a tailored MOPSO model, demonstrating superior performance compared to traditional methods through extensive comparisons Their findings highlight MOPSO's potential in efficiently solving multi-objective JSPs, offering a robust framework for future research and practical applications in complex scheduling environments.
In designing the job shop scheduling approach for Viet Tien Garment Corporation,several key concepts must be considered:
- Integration of Components: Energy consumption of machines, processing time of each job on machine, transportation time between machines.
- Flexibility and Adaptability: Ensure the model can adapt to Viet Tien 's diverse product range and dynamic market conditions.
- Efficiency and Scalability: Generate optimal result efficiently and scale the model to accommodate future growth.
- User-Friendly Interface: Develop an intuitive interface to facilitate stakeholder decision-making.
- Real-Life Validation and Sensitivity Analysis: Validate the model with Viet Tien's data and conduct sensitivity analysis to ensure robustness.
By considering these concepts, my thesis can offer a comprehensive and effective production planning approach tailored to Viet Tien Garment Corporation 's needs.
Candidate Solution Methods
On developing a methodology for an energy-saving job shop scheduling problem with job transportation times, several key references and solution methods emerge as candidates Here's a detailed description of some potential approaches to be considered:
- Mixed Integer Linear Programming (MILP): MILP models provide a structured method for optimizing workloads by casting the issue as a mathematical optimization challenge These models are adept at managing production capacity, resource distribution, and consumer demand, taking into account factors like lead times and inventory levels.
- Simulation Modelling: This technique involves building digital models that mirror the behavior of production systems Through the simulation of different scenarios and the evaluation of various workload distribution strategies, manufacturers can understand the efficacy of their production operations and pinpoint areas for improvement.
- Genetic Algorithms: a heuristic mimicking natural selection to solve optimization problems It involves initializing a population of solutions, evaluating fitness,selecting the fittest for reproduction, mixing genetic material via crossover, mutating genes, and replacing the least fit individuals GA is effective for large, complex search spaces and is widely applied in optimization and artificial intelligence.
- Machine Learning (ML) Techniques: Within machine learning, methods such as decision trees and neural networks may analyze large datasets to find patterns and insights that can be applied to improve workload optimization These machine learning models may predict results and make recommendations for improvements to improve production scheduling and resource management by utilizing past production data.
- Metaheuristic Optimization: Workload optimization may be achieved by flexible and robust tactics like ant colony optimization, particle swarm optimization, and evolutionary algorithms These methods explore the search space repeatedly, finding optimal solutions and working well in complicated made-to-order (MTO) production environments.
- Particle Swarm Optimization (PSO): effectively addresses production planning by optimizing production schedules to minimize costs and meet delivery deadlines.
In production planning, key objectives include reducing production costs, adhering to deadlines, and optimizing resource allocation PSO models the problem by defining decision variables such as production quantities and start times, and by formulating an objective function incorporating production, holding, and penalty costs Particles in the PSO algorithm represent potential production schedules, and through iterative evaluation and updating of particle positions and velocities based on fitness values, the algorithm converges on optimal or near-optimal solutions.This approach allows for handling complex constraints like production capacities and workforce availability PSO's iterative, collaborative nature ensures efficient exploration of the solution space, making it highly adaptable to changes in production requirements and constraints Consequently, PSO provides a robust,scalable method for achieving cost-effective and feasible production schedules in dynamic manufacturing environments.
METHODOLOGY
Approaches Comparison and Selection
Table 3-1: Summary of considered approaches
Flexibility: allows for the formulation of a wide range of scheduling
Computational complexity: MILP is computationally demanding, especially objectives and constraints, making it flexible to accommodate various real world scheduling scenarios
Optimality: MILP can provide optimal or near- optimal solutions to job-shop scheduling problems, ensuring that the generated schedules meet the specified objective criteria
MILP can oversee multiple objectives simultaneously, considering factors, allow for a comprehensive scheduling analysis. for large-scale scheduling problems. Solving MILP models can be time-consuming.
Model formulation: Developing a MILP model requires a deep understanding of the problem domain It can be complex and time- consuming, requiring expertise in both scheduling theory and MILP techniques
Scalability: difficulties in large-scale problems due to computational requirements.
Real-time or dynamic scheduling scenarios may pose additional challenges.
Solution interpretation: can be challenging to interpret and implement in practice The translation of the solution into actionable schedules may require additional effort
Genetic algorithms are well-suited for finding the global optimum in a search space, even for complex and non-linear problems with multiple optima This means that genetic algorithms effectively explore a wide range of potential solutions to a problem.
Genetic algorithms can be easily parallelized, greatly reducing the time required to find a solution This allows genetic algorithms to be scaled to tackle large and complex problems.
Genetic algorithms are robust to noise and can tolerate errors or imprecise information.
This makes them particularly useful for solving real-world problems where data
Genetic algorithms can be computationally expensive, particularly for large search spaces or complex fitness functions This means they may need to be more suitable for real- time or online applications.
Genetic algorithms can converge prematurely, which means they may not find the global optimum or may get stuck in local optima. This can be mitigated by using appropriate selection and mutation operators and setting appropriate parameters.
The design of a good fitness function can be difficult and may require domain-specific knowledge This is because the fitness may need to be completed or updated.
Genetic algorithms can be adapted to various problems, including optimization, classification, and prediction They can also be combined with other optimization techniques to create hybrid algorithms tackling more complex issues.
Unlike some optimization techniques, genetic algorithms do not require any gradient information of the problem being solved.
This means they can be used for problems where analytical or numerical gradient information is unavailable.
Genetic algorithms balance exploration and function defines the objective function the genetic algorithm tries to optimize.
Genetic algorithms lack a solid theoretical foundation, making it difficult to analyze their performance or guarantee their behavior in certain circumstances This means that they may not be suitable for problems that require provably optimal solutions or for situations where the algorithm's performance needs to be formally analyzed. exploitation of the search space, which helps to avoid getting stuck in local optima.
This makes them effective at exploring potential solutions and finding the global optimum.
Genetic algorithms have a simple and intuitive concept, making them easy to understand and implement This means that researchers and practitioners can use them with little optimization or computer science background.
PSO is straightforward to implement and requires fewer parameters to adjust compared to other optimization techniques like genetic algorithms.
PSO can sometimes converge prematurely to suboptimal solutions,especially in cases where the fitness landscape is complex and has many local optima This limits its accessible and easy to apply to various optimization problems.
PSO can be adapted to solve a wide range of optimization problems, including those with complex, nonlinear, and multi-modal functions.
Its flexibility allows it to be customized for specific problem constraints and requirements.
PSO often converges faster to a satisfactory solution compared to other optimization methods The collaborative nature of particles exploring the solution space helps in quickly finding optimal or near-optimal solutions.
The algorithm is proficient in global search due to the collective intelligence effectiveness in finding the global optimum in such scenarios.
The performance of PSO heavily depends on the choice of its parameters, such as the inertia weight, cognitive coefficient, and social coefficient Improper parameter settings can significantly affect the algorithm’s efficiency and convergence rate.
While PSO is good at finding satisfactory solutions quickly, it does not guarantee finding the global optimum This can be a limitation in critical applications where the absolute best solution is required.
For very high- dimensional and large- scale problems, the performance of PSO may degrade The of the swarm, which helps avoid getting trapped in local optima.
This makes PSO particularly effective for complex optimization problems with many local optima. computational cost increases with the number of particles and dimensions, potentially making it less practical for extremely large optimization problems.
In the context of Viet Tien Garment Company, a leading apparel manufacturer facing complex scheduling demands, the application of both Particle Swarm Optimization (PSO) and Mixed Integer Linear Programming (MILP) methods presents a highly suitable solution for addressing their job shop scheduling problems Given the company’s extensive operations and the critical need for efficient resource management and energy utilization, PSO offers a tailored approach It dynamically adjusts to the scheduling context, specifically targeting energy savings and transportation time optimizations—key factors for a company focused on sustainability and energy efficiency This method’s capability to adapt and provide accurate solutions in complex scheduling scenarios makes it an ideal choice for Viet Tien, where production schedules must often be adjusted on the fly to respond to varying products and transportation time between machines.
Both PSO and MILP address the core challenges faced by Viet Tien Garment Company in its scheduling activities, providing robust solutions that enhance operational efficiency.While PSO focuses on adaptability and real-time problem-solving in energy-intensive scenarios, MILP offers comprehensive planning and optimality, crucial for strategic decision-making in production management The combination of these methods can significantly contribute to achieving the company’s goals of minimizing energy consumption, transportation times, and maintaining a competitive advantage in the fast- paced apparel industry.
Proposed System Design
Based on the selected approach described in the document, we can outline the structure of the proposed system, including its inputs, process, and outputs:
+ List of product types and their BOM of each product.
+ Number of machines, number operations of each job.
+ Processing times, starting times, completion time, transportation time.
+ Processing energy consumption, Auxiliary energy consumption, transportation energy consumption.
+ Time Constraints is including the start and completion times of operations, ensuring that operations follow a logical sequence and machines process one operation at a time.
+ Energy consumed by auxiliary systems.
+ Energy consumed during the transportation of jobs between operations.
+ Adjusts the scheduling to minimize energy consumption across different phases of the job shop operations.
+ Detailed schedule showing when each machine and operation is expected to complete.
+ Schedule indicating when each machine and operation begins.
+ Report on the distribution of workload across machines, detailing the sum of processing times for jobs on each machine.
+ The total time required to complete all jobs, aimed at minimizing the final completion time.
+ Breakdown of energy consumption including processing and auxiliary energies, showing areas for further optimization.
+ Analysis of the schedule’s efficiency, including potential bottlenecks and underutilized resources.
3.2.2 Problem identification and methodology selection
At this stage, the researcher identifies the problem to be solved and selects the most effective methodologies for deriving solutions Key considerations include the scope of the problem, the research questions posed, data availability, and the objectives of the study This phase encompasses several critical activities:
Literature Review: Engaging with existing literature to identify gaps in knowledge and understand current research trends within the field.
Problem Identification: This involves defining the research topic and identifying the specific problem that requires resolution.
Methodology Selection: The researcher selects the most suitable method to address the research question, weighing the advantages and disadvantages of various approaches such as experiments, case studies, simulations, and surveys.
During this phase, the researcher collects and processes the necessary data for the study This includes:
Data Collection: Employing various methods such as surveys, interviews, and observations to gather data.
Data Cleaning: This involves removing errors, inconsistencies, and missing values from the data.
Data Transformation: Converting data into a format suitable for analysis, which may involve standardization, aggregation, or reformatting.
Data Integration: Combining data from multiple sources to create a comprehensive dataset.
During this phase, the researcher collects and processes the necessary data for the study This includes:
Data Collection: Employing various methods such as surveys, interviews, and observations to gather data.
Data Cleaning: This involves removing errors, inconsistencies, and missing values from the data.
Data Transformation: Converting data into a format suitable for analysis, which may involve standardization, aggregation, or reformatting.
Data Integration: Combining data from multiple sources to create a comprehensive dataset.
In this phase, the researcher analyzes the data generated by the model and draws conclusions based on this analysis, through:
Solution Generation: Developing solutions using the model, considering different solution strategies like exact methods, hybrid approaches, or metaheuristics.
Sensitivity Analysis: Examining the model’s sensitivity to changes in input data or parameters to identify key factors that affect the model's performance.
Scenario Analysis: Evaluating the model’s performance under various scenarios, which might include changes in external factors such as resource availability or market demands.
Performance Evaluation: Assessing the model's performance using criteria like practical feasibility, computational efficiency, and solution quality.
Conclusion Drawing: Drawing conclusions based on the analysis and results, considering the implications for theory, practice, and policy, and proposing directions for future research.
SOLUTION DEVELEPMENT
Model or Prototype Solution
O: number of operations m: index of machines, m= 1,2, 3, …, M j: index of jobs, j= 1, 2, 3, , J o: index of operations, o=1, 2, 3, , O
O jo : The o th operation of job j p jom : The processing time of O jo when it is processed on machine m
PE jom : Processing energy consumption coefficient of O jo when it is processed on machine m
AE: Auxiliary energy consumption coefficient
TE: Transportation energy consumption coefficient
C max : The final completion time (makespan)
TT jon, P ( jo ) m : The transportation time between machine n and machine m for O jo and O P( jo)
S jom : Starting time of O jom
C jom : Completion time of O jom
X jom : A binary variable, if O jo is processed on machine m, X jom =1; otherwise, x jom =0
Z j 1o 1 j 2o 2 m : A binary variable, if O j 1 o1 is processed before O j2 o 2 adjacently on machine m,
TE TT jon , P ( jo ) m X jon, P ( jo ) m (3)
TT jok , P ( jo ) m X jok , P ( jo ) m (7)
(1−X¿¿jom)∗BigM+C T jom ≥ S T jom +p jom ¿ ; ∀𝑗, 𝑜, 𝑚 (10)
(X¿ ¿jom−1)∗BigM+C T jom ≤ S T jom +p jom ;¿ ∀𝑗, 𝑜, 𝑚 (11)
Equation (1) denotes the optimization objective of the problem Constraint (2) denotes the processing energy consumption, which originates from the processing of operations on machines Constraint (3) gives the transportation energy consumption, which is generated by transfers for transporting jobs between machines Constraint (4) defines the energy consumed by auxiliary equipment, such as lighting and air conditioning Constraint (5) governs completion time of all the jobs Constraint (6) illustrates completion time of all the jobs must be greater than or equal to completion time of each task in that job.Constraint (8) and (9) shows that if task is not processed by worker, starting time and completion time of the task on that worker must be zero Constraint (10) and (11) calculate the completion time of a task on a worker if the task is processed by that worker.Constraint (12) ensures that an operation 𝑜 of job 𝐽𝑗 can be executed by one and only one worker 𝑚 The flow balance constraint is shown by constraint (13) Constraint (14) guarantees that there is a sequence of task 𝑗𝑜 if task 𝑗𝑜 is processed by worker 𝑚.Constraint (15) makes sure that the starting time of the next job is greater than or equal to completion time of the previous job by the same worker Precedence relationships between tasks are ensured by constraint (16) Constraint (17) defines which worker is used Finally, constraints (18) – (23) define the non-negative variables and the binary variables.
Solution development
Table 4-2: Indices tables about number if orders, number of machines and number of operations
Table 4-3: Indices tables about number if orders, number of machines and number of operations
2 Sew and iron the side seams 4 3 3 3
4 Create a casing for the elastic waistband
5 Cut and insert the elastic 4 4 4 4
7 Iron and pack the product 3 2 1 4
Figure 4-6: BOM of a NIKE Pant
Table 4-4: The processing time of operations of a Nike Pants completed by machines
5 Make the elastic waistband casing 4 3 4 4
9 Iron and pack the product 4 1 1 4
Figure 4-7: BOM of Nike hoodies
Table 4-5: The processing time of operations of a hoodie completed by machines
8 Iron and pack the product 2 2 3 3
Figure 4-8: BOM of a Crop top
Table 4-6: The processing time of operations of a Crop top completed by machines
6 Iron and pack the product 2 2 1 3
Metaheuristic
The basic definition of the Particle Swarm Optimization algorithm is a population of particles (also called individuals), in which each particle has a speed and a direction, in addition to information about its position, what is the quality of its position, what was the best position she has ever been in, and access to shared knowledge among all individuals with the best position any of them has ever been in And so each round the particles move based on their best position and the best overall position, and so each round the population converges to an optimal solution.
The most important PSO variables are precisely the best positions, with the local one normally called pBest and the general one normally called gBest They will be used to obtain an average that will be the new position of the particle However, there is resistance for the particle to change direction, this happens through inertia normally represented by w which represents the force that tends to make the particle follow the direction in which it is already moving This inertial force grows according to the speed value of particle, normally represented by v, that is, particle with a greater speed v tend to have greater inertia w
Algorithm 1 Pseudocode of basic PSO
Start population at random locations
Evaluates particles and sets gBest
While not reaching the stopping criterion do
Updates the position of all particles
Updates the fitness of all particles
If some pBest is better than gBest then gBest ← pBest end if end while
In the base definition of the algorithm there is no specification of a formula to calculate particle motion However, in equation below it is possible to see a representation of a base formula for calculating a new position for the particle. x i (t+1)=x i +v i (t)+a 1 r 1 ( pBest −x i (t)) +a 2 r 2 (gBest−x i (t))
Where i is the particle number; the round number, a1 and a2 the acceleration values local and global respectively; r1 and r2 random numbers generated by a function uniform probability in a range [0.1,0.9].
Some care must be taken when implementing Particle Swarm Optimization because the algorithm, if poorly configured using the parameters of speed, inertia and population size, tends to converge prematurely to a non-optimal solution, this problem is usually called “Premature convergence” Some measures can be taken to reduce this possibility of premature convergence, such as dynamic inertia values and weighting the importance values of pBest and gBest
Some techniques can be used to improve PSO performance in each application scenario However, the effect of these approaches varies depending on with which problem is being solved and the processing and memory resources and limitations of the algorithm’s processing environment.
The solution space (also called search space) is a concept that defines an imaginary space where each point in that space is a possible solution to the problem in question A solution space can be represented in different ways, such as lists and graphs, but in optimization problems a representation in the form of a matrix is normally used.
In this representation in matrix form, each location [i, j] has a valid solution for the problem, and the algorithm in question has the task of finding which of these positions has the best solution, or a good enough solution
Some of the implementations found in open source population algorithm libraries such as PySwarms internally use a single-dimensional solution space representation system, that is, a simple list, and uses a function to transform a position [x,y] at an index of the list. This implementation was probably chosen because it is generally faster compared to a two-dimensional approach Dimensions also facilitate the generation of graphs for visual representation, such as, for example, passing the solution matrix through the evaluation function and thus obtaining a fitness value for each point in the solution space.
The generation of the solution space is very important for algorithms such as PSO, which works based on movement according to the averages of best positions Because of this,
PSO tends to have problems with premature convergence at local minima.
Local minima are phenomena where within a part of the solution space there is a point that is better than the average of the points around it but is not the best among the entire solution space.
Because this point stands out among its neighbors, the algorithm may get stuck in this region, as the local average always tends towards the point where the local minimum is. Since PSO is based on the local and global average, if there is more than one local minimum and equivalent amounts of particles from the population are distributed to these points, the particles may become trapped as the forces balance and the gBest no longer changes.
Premature convergence happens when a local minimum and, by coincidence, the initial position of most particles in the population tend to be attracted to the local minimum, so most of the population stops at that point and the algorithm ends.
During the implementation of an algorithm to generate the solution space, several details were noticed that strongly influence the final quality of the algorithm This section will analyze some of these points.
An important point noticed in the implementation is how the array where the solution space will be stored.
NumPy provides three initialization methods for a new array without a padding value, each of which demonstrated a different problem for implementation Among them:
• numpy.zeros: when initializing the array with all values filled with the value "0", due to the process of shuffling operations, the algorithm may end up generating erroneous results Because there was no M0 machine, some operations were not considered in the result, and due to the lack of some operations, the solution in question had a lower fitness value, which tended to make this erroneous solution the best one.
• numpy.ones: when initializing the array with all values filled with the value "1", the algorithm generated solutions that tended to overload the M1 machine and thus the final results tended to have a higher fitness value.
• numpy.empty: this initialization method, unlike the others, does not define any value for the matrix records, it only allocates a block of memory (similar to malloc in the C language), which makes it faster, but it has the drawback of possibly having wrong values, because by simply allocating a block of memory, the array can be initialized with strange values due to memory garbage.
Due to the problems mentioned above, it ends up being necessary to go through the entire array to set values.
Therefore, it was decided to use a method of filling in random values, generated by the numpy.random.choice function, which generates an array of random values following a uniform distribution.
After the analyzes mentioned above, modeling was carried out and the solution space initialization algorithm represented by Pseudocode 2 was developed for this work.
Algorithm 2 Pseudocode for generating the solution space
While counter ≤ solution space do
Size of the solution ← empty list
Solution[operation]←remove last element [operation]
Solution[job]←remove last element [job]
Solution[operation]←remove last element [operation]
Solution[machine]←remove last element [machine]
Solution space ←add(solution) end while
RESULT ANALYSIS
Experiment Design
In order to ensure that the system is precise and appropriate in the real-world scenario, the experiment seeks to validate and verify the CPLEX code and the MILP model for this study
To ensure that the operation complies with the specified process and its parameters, the mathematical model must first closely adhere to the specifications set out by the JSSP, which guarantees the production schedule.
The steps that ought to be taken are:
- Constraints about precedence: Modeling the order that tasks inside a work must be completed is crucial for job shop scheduling Certain tasks must be completed before going on to new ones, as these limitations ensure.
- There is no overlap between the limitations of operations: The requirement that every task be performed precisely once by a machine in a job shop setting is reflected in this fundamental job shop scheduling rule.
- No overlap with the restrictions of different machines: It is ensured by the requirement that a single operation can be handled by each machine simultaneously When a machine in a JSSP is unable to handle many operations at once, it represents a physical limitation or capacity constraint of the machines.
- Set an objective function that represents the desired outcome to be either maximized or minimized This can entail cutting down on the makespan—the overall amount of time needed to finish all tasks—or the total completion time.
In order for the model to be dependable when used for actual production, it must be thorough and able to guarantee at least four fundamental process criteria when scheduling.
It is decided which inputs should be gathered after outlining the mathematical model planning procedure The input data in this instance is Tables 4.2, 4.3, 4.4, and 4.5, which display the processing times for each operation in jobs that are finished by four computers Next, the gantt chart displaying the assignment of operations to machines is produced by running the mathematical model created in section 4.1.
My project with Particle swarm method was developed in the Python programming language version 3.9.7 and uses, in addition to the language's basic libraries, the following libraries: NumPy (version 1.21.3), MatPlotlib (version 3.4.3), MatPlotlib was used to generate: Scatter plots to represent the position of particles of the population, surface plots to represent the solution space, horizontal bar plot to represent a diagram gantt with the scheduling solution.
NumPy was used to: Large multi-dimensional arrays of data, random choice functions, data ordering, calculation operations such as square root and potentiation, functions for choosing maximum and minimum values, Modeling, union and remodeling of matrices, representations and calculation of movement vectors
To bring more clarity to the code, we chose to create some classes to the representation of entities and abstraction of logic Among them are:
Particle Class, which represents a particle entity and stores its position, speed and direction Initializes the particle with random values of position, speed and direction And it establishes methods for calculating the particle's motion and the quality value of its new position.
Encoding class, responsible for reading and interpreting the instance files of a problem, creating a solution representation, and then generating the solution space with randomly generated solutions.
Decoding class, responsible for decoding a solution in the representation pattern established by the encoding class and calculating the fitness of this solution This class also establishes the method that generates the Gantt chart to visually represent the solution.
As PSO is a stochastic algorithm, that is, its result is the result of unpredictable events, it was decided that to obtain a real average of the performance of each algorithm, in each of the 30 executions a new space of solutions and an initial population will be generated. different.
And in each of these executions, a deep copy of the solution space and the initial population will be passed to each of the algorithms, so that the different algorithms work based on the same initial data, in order to have a fairer analysis.
So that the data analysis can be done in more detail, some data saving points were implemented, to save in a text file the representations of the population and the randomly generated solution space, as well as the number of rounds performed, the history of the variable gBest, the number of pBest changes, the particle position history and the final solutions found.
Result analysis
After running the mathematical model by CPLEX in 2 hours, we received the objective value is 238 (KWh) and the Gantt chart (Figure 5.1) The make span is 33 meaning that the maximum completion time to complete tasks among four jobs with four machines is 33 At the point, the last task is completed In addition, the Gantt chart is easier to show the satisfaction of these constraints including the precedence constraints, the no overlap between operations constraints, the no overlap between machines constraints and the objective function constraints
Figure 5-10: Objective result of MILP
Table 5-7: Objective solution of MILP
Table 5-8: Cmax result of each jobs
By running model by Python programming language with 30 iterations, we received the maximum completion time to complete tasks among four jobs with four machines is 26 Also the result of PSO argorithm gives gBest is [ 41,42] and gBest fitness [22,35] A fitness value for each point in the solution space, as can be seen in Figure 5.2 in which red value that have a higher fitness value is worse than blue value that have lower fitness value.
Solution space that show each operation of each job is processed in which machine in table 5.3 and gantt chart solution in figure 4.8 that can indicate clearly schedule of processing machine
Figure 5-12: Fitness result of solution space
Table 5-10: Start time of each jobs processed on machines
Table 5-11: Completion time of each jobs processed on machines
The result of starting & completion time table are printed for decoding class The tuple is translated to give the list operations of each machine Combining solution space, scheduling time of each operation and gantt chart of solution we can read the result of each job For example, the first number 1 in solution space indicates the first operation of job 1 is processing on machine 1 from time 1 to time 2 Next the second number 2 indicates the second operation of job 1 is processing on machine 2 from time 3 to time 5.
By the same way, J1O3 is performed by machine 2, J1O4 is performed by machine 4,
J1O5 is performed by machine 3, J1O6 is performed by machine 2, J1O7 is perform by machine 1 Do similarly with job 2, J2O1 is performed by machine 3, J2O2 is performed by machine 4, J2O3 is performed by machine 1, J2O4 is performed by machine 2, J2O5 is performed by machine 2, J2O6 is performed by machine 4, J2O7 is performed by machine 3, J2O8 is performed by machine 4, J2O9 is performed by machine 2 For job 3,
J3O1 is performed by machine 4, J3O2 is performed by machine 4, J3O3 is performed by machine 3, J3O4 is performed by machine 1, J3O5 is performed by machine 2, J3O6 is performed by machine 1, J3O7 is performed by machine 4, J3O8 is performed by machine 2 For final job, J4O1 is performed by machine 2, J4O2 is performed by machine
4, J4O3 is performed by machine 3, J4O4 is performed by machine 1, J4O5 is performed by machine 2, J4O6 is performed by machine 3 Based on the decoding information, the gantt chart will be drawn later, as shown in Figure 4.8
Figure 5-13: Gantt chart solution of PSO
Result validation
In this part, we conduct a comparison of the objective value between MILP usingCplex Language and PSO using Python Programming Language To give more information, Appendix D illustrated the processing time of each tasks in each data set We use sample data with 4 jobs, 30 operations, 4 machines and processing time range (1,5).
Table 5-12: Comparison result between MILP and PSO method
The objective values of nine data sets between the PSO ran by Python and the MILP model run by Cplex are displayed in Table 5.5 Gap in Cplex is defined in order to assess the results, since it usually denotes the percentage difference between the best value discovered thus far by running the model and the optimal value of an optimization issue A small gap indicates that Cplex has identified a solution that is almost optimal; a larger gap can signify that the algorithm needs more time to find a better solution PSO, meanwhile, produced the best results out of thirty runs The Python task took two minutes to solve on each run A smaller APD indicates that the algorithm has discovered a lower limit value frequently, however a wider gap could signal that the lower bound is hard to find and that the algorithm needs more time to find a better answer.
Conclution: PSO consistently outperforms the MILP in both term of running time and objective result This suggests that the PSO provides a more efficient solution approach,enabling faster computational performance compared to the PSO These findings highlight the practical applicability and effectiveness of the PSO in solving the given problem instances.
Sentivity analysis
Table 5-13: Summay of sample data
Job number machine number Operation number Processing time range
Sensitivity analysis theoretically involves making small changes to specific model parameters and seeing how the model's solution is affected This analytical method offers insightful suggestions for future improvements and insightful insights into the behavior of the model Sensitivity analysis results may be considered useful guidelines for continuing optimization and refinement work
Therefore, in job shop scheduling, there are three parameters would be used for sensitivity analysis process: number of jobs, number of operations and number of machines The total trial for sentivity analysis is 6 data set Through each running case, the result of scheduling performance will be observed and visualized by data table and appropriate types of the chart so that insightful information can be extracted and a conclusion about the relationship between independent variables and dependent ones, and interaction between parameters will be drawn.
After running 6 different trial by CPLEX studio and Python programming
Table 5-14: Result of sample data
MILP(CPLEX) PSO(Python) ERROR
After changing the number of jobs and number of machines we can divide the data sets into three groups:
The number of jobs equal to the number of machines(Data1, Data4): The results are obtained by PSO, better than those by CPLEX
The number of jobs are bigger than the number of machines(Data2, Data5, Data6):
In this case, we increase the number of jobs and still remain the number of machines As the number of jobs exceeds the number of machines, the complexity increases, and while PSO remains faster, the error margin becomes significantly higher, suggesting that CPLEX might still be preferable for high-precision requirements despite its longer computation time
Lastly, the number of of jobs is less than the number of machines: CPLEX need more than 3 hours to get optimal solution and it is difficult to obtain the result if we increase more machine However, if we use PYTHON, it would be easier to get close optimal solution large scale problem
This model not only improve the way that Viet tien manage production planning but also utilize the total energy consumption for industrial garment production Moreover, Viet tien can gain a lot of benefit from many aspect such as financial health, social, enviroment and economy
The adoption of new technologies by Viet Tien Garment Corporation, including automation and data analytics, is significant for streamlining operations and reducing production costs However, the environmental impact is notably influenced by the energy-intensive nature of the garment manufacturing process The utilization of sewing machines, cutting machines, and presses contributes to substantial energy consumption To mitigate this, Viet Tien has embraced energy-saving measures and waste reduction practices The company's commitment to sustainability is evident in its selection of eco-friendly materials and participation in environmental initiatives.Economically, Viet Tien Garment Corporation benefits from adopting technology to enhance efficiency and scalability, meeting the growing demand in the textile and apparel sector The focus on sustainable practices also aligns with global market trends, potentially opening up new markets and customer segments that prioritize environmental responsibility However, the initial capital investment required for purchasing energy-efficient equipment poses a significant financial burden, especially for companies struggling with rising energy costs and environmental regulations.Effective operational management and optimized production scheduling, such as the implementation of flexible job shop scheduling (FJSP), are critical in minimizing energy consumption and maximizing profitability This balance between operational efficiency and economic sustainability is vital for the long-term success of the company.
Socially, Viet Tien's initiatives extend beyond environmental and economic benefits. The corporation's efforts to modernize production equipment and enhance management practices contribute to better working conditions Employing hundreds of workers in a modern, clean, and well-ventilated environment with advanced computer systems ensures workplace safety and high product quality Additionally, the company's active participation in social initiatives underscores its commitment to positively impacting the communities where it operates This holistic approach not only builds a strong reputation but also fosters customer trust and loyalty, crucial for sustained business success in a competitive market.
In summary, Viet Tien Garment Corporation's focus on sustainable practices,technological advancement, and strategic management addresses critical environmental, economic, and social challenges These efforts are instrumental in positioning the company as a leader in Vietnam's textile and apparel manufacturing sector while promoting broader industry sustainability.
Summary
In the context of job shop scheduling, the implementation of Mixed Integer Linear Programming (MILP) and Particle Swarm Optimization (PSO) yielded distinct outcomes in terms of computational efficiency and objective values The experiments conducted involved six different datasets, each varying in the number of jobs, operations, and machines These variations were crucial in understanding the robustness and applicability of each method under different scheduling scenarios
The results revealed that PSO consistently outperformed MILP in terms of computational speed and the quality of solutions Specifically, the PSO method demonstrated a faster convergence to near-optimal solutions compared to MILP, which required significantly more computational time to achieve comparable results The sensitivity analysis provided further insights into the interaction between key parameters such as the number of jobs, operations, and machines This analysis underscored the adaptability of PSO in dynamically changing environments, making it a preferable choice for real-time scheduling applications
The findings from this study have significant implications for manufacturing companies,particularly those engaged in complex job shop environments such as Viet Tien GarmentCorporation The demonstrated efficiency of PSO and MILP suggests its potential for widespread adoption in optimizing production schedules, thereby reducing operational costs and improving resource utilization Companies can leverage PSO's faster computation times to make real-time scheduling adjustments, enhancing overall productivity and responsiveness to market demands.
Recommendations for future research
Future research on job shop scheduling for Viet Tien Garment Corporation should explore several practical avenues to enhance scheduling efficiency and operational effectiveness.
Incorporating real-time data analytics through IoT sensors can significantly improve responsiveness and efficiency Implementing systems that collect and analyze real-time data on machine status and job progress will allow for dynamic schedule adjustments, reducing downtime and optimizing resource utilization This real-time data integration can ensure that schedules remain flexible and adaptive to the ever-changing conditions on the production floor.
Combining different optimization methods, such as genetic algorithms, particle swarm optimization, and simulated annealing, can produce more robust solutions Developing and testing hybrid algorithms in real-world settings can leverage the strengths of each approach, addressing complex scheduling challenges more effectively These hybrid optimization algorithms can provide a balance between computational efficiency and solution quality, offering practical benefits for real-time scheduling needs.
Energy efficiency in scheduling is another critical area for future research Developing energy-aware scheduling algorithms that optimize production while minimizing energy consumption is crucial for sustainable manufacturing Exploring strategies like scheduling high-energy tasks during off-peak hours and dynamically adjusting machine operations based on energy availability can lead to significant energy savings Quantifying the potential energy savings and cost impacts of these strategies will provide valuable insights for their practical implementation.
Ensuring that scheduling solutions can scale with production growth and adapt to changes in product lines or processes is essential Testing the scalability and flexibility of proposed methods in larger, more complex environments will confirm their practical applicability Scalable and flexible scheduling solutions will support long-term operational excellence and adaptability in the face of evolving production demands.
[1] Jiang, T.; Zhu, H.; Deng, G Improved african buffalo optimization algorithm for the green flexible job shop scheduling problem considering energy consumption J Intell.
Fuzzy Syst 2020, 38, 4573–4589 https://doi.org/10.3390/su16062443
[2] Chaudhry, I A., & Khan, A A (2016) A research survey: review of flexible job shop scheduling techniques International Transactions in Operational Research, 23(3), 551-591 10.1111/itor.12199
[3] Liu, L.; Jiang, T.; Zhu, H.; Shang, C.(2022) A New Interior Search Algorithm for
Energy-Saving Flexible Job Shop Scheduling with Overlapping Operations and Transportation Times, 11, 306 https://doi.org/10.3390/axioms11070306
[4 Ren, W.; Wen, J.; Yan, Y.; Hu, Y.; Guan, Y.; Li, J.(2021) Multi-objective optimisation for energy-aware flexible job-shop scheduling problem with assembly operations 59, 7216–7231 https://doi.org/10.3390/pr10030571
[5] Ren, W.; Wen, J.; Yan, Y.; Hu, Y.; Guan, Y.; Li, J.[21] Multi-objective optimisation for energy-aware flexible job-shop scheduling problem with assembly operations.
[6] Pezzella, F.; Morganti, G.; Ciaschetti, G.[2018] A genetic algorithm for the flexible job-shop scheduling problem Comput Oper Res.35, 3202–3212. https://doi.org/10.1016/j.cor.2007.02.014
[7] Ren, W.; Wen, J.; Yan, Y.; Hu, Y.; Guan, Y.; Li, J.[2021] Multi-objective optimisation for energy-aware flexible job-shop scheduling problem with assembly operations 59, 7216–7231 https://doi.org/10.1080/00207543.2020.1836421
[8] Orue, A., Lizarralde, A., Amorrortu, I., & Apaolaza, U (2021) Theory of constraints case study in the make to order environment Journal of Industrial Engineering and Management, 14(1), 72 https://doi.org/10.3926/jiem.3283
[9] Zhu, Z.; Zhou, X [2020] An efficient evolutionary grey wolf optimizer for multi- objective flexible job shop scheduling problem with hierarchical job precedence constraints 140, 106280 https://doi.org/10.1016/j.cie.2020.106280
[10] Rakovitis, N.; Li, D.; Zhang, N.; Li, J.; Zhang, L.; Xiao, X.[2022] Novel approach to energy-efficient flexible job-shop scheduling problems 238, 121773. https://doi.org/10.1016/j.energy.2021.121773
[11] P Pongchairerks, V Kachitvichyanukul “A Particle Swarm Optimization Algorithm on Job-Shop Scheduling Problems with Multi-Purpose Machines”, Asia-Pacific Journal of Operational Research (APJOR), 26(2), pp 161–184, 2009 https://doi.org/10.3390/axioms11100561
* Creation Date: May 12, 2024 at 1:55:07 AM
*********************************************/ //parameters int numM= ; int numJ= ; int numO= ; float AE = ; // Auxiliary Energy coefficient float TE = ; // Transportation energy consumption coefficient range rangeM=1 numM; range rangeJ=1 numJ; range rangeO=1 numO; tuple JO{ int job; int operation;
} tuple JOO{ int job; int op1; int op2;
{int} JSet= ; setof (JO) JOSet= ; setof (JO) JOBefSet= {} union JOSet; setof (JO) JOAftSet=JOSet union {}; setof (JO) JOAllSet= {} union JOSet union {}; setof (JOM) JOMSet={| in JOAllSet, m in rangeM}; setof (JOJOM) JOJOMSet= {|m in rangeM, in JOBefSet,
in JOAftSet:!=}; setof(JOO) JOOSet= ; setof(JOMJON) JOMJONSet={ | in JOMSet,
//setof(JOMJON) JOMJONSet= ; int p[JOAllSet][rangeM]= ; int PE[JOAllSet][rangeM]= ; int TT[JOMJONSet]= ; int BigM00; dvar int+ S[JOMSet];//start dvar int+ C[JOMSet];//complete dvar int+ Cf[JSet];//finish dvar int+ Cm;//makespan dvar boolean X[JOMSet]; dvar boolean Z[JOJOMSet]; dvar boolean V[JOMJONSet]; execute PRE_SETUP { cplex.epgap = 0.1; cplex.tilim = 10*60;
}; dexpr float Obj1 = sum( in JOMSet:m in rangeM)p[] [m]*X[]*PE[][m]; dexpr float Obj2 *Cm; dexpr float Obj3 =sum( in JOMJONSet )TE*TT[]*V[]; dexpr float Obj = Obj1+Obj2+Obj3;
61 minimize Obj;//+ ;//+;// total energy consumption subject to{ forall(j in JSet){
Cm>j]; //Compeletion time of each job
} forall( in JOMSet:j in JSet){
Cf[j]>=C[]; //Completion time of each operation
X[]==0 => S[] ==0; //If task is not processed by a machine, starting time and completion time of the task processed by that machine must be zero.
X[]==1 => C[] ==S[]+p[][m]; //Calculating the completion time of a task finished by a machine if the task is processed by that machine.
} forall( in JOSet){ //Ensures that an operation o of job j can be executed by one and only one machine m. sum( in JOMSet)X[]==1;
} forall( in JOMSet: in JOSet){ //Flow balance contraint sum( in JOBefSet:!
=)Z[]==sum( inJOAftSet:!
} forall( in JOMSet: in JOSet){ //Guarantee that there is a sequence of task jo if task jo is processed by machine m
X[]==sum( in JOBefSet:!
} forall( in JOJOMSet){ //Garanteeing that the starting time of the next job is greater than or equal to completion time on the previous job on the same machine
Z[]==1 => S[]>=C[];
} forall( in JOOSet){ //Precedence relationships between them are ensured by the constraint sum( in JOMSet)(C[])= self.solution_space_limit: new_x_position = self.solution_space_limit - 1
# if new_y_position >= self.solution_space_limit: new_y_position = self.solution_space_limit - 1
# self.position = [int(new_x_position), int(new_y_position)] pass
# def evaluate_value(self, solution_space, decoder): self.value = solution_space[self.position[0], self.position[1]] fitness,_,_ = decoder.decode(self.value) self.fitness = fitness
105 if (self.p_best_fitness is None) or (fitness < self.p_best_fitness): self.p_best_fitness = fitness self.p_best = self.position
# import numpy as np class Input: def init (self, inputFile: str): self.machines = [] self.operations = [] self. proNum = [] self. lines = None self. input = inputFile self.Mac_Num=0 self.Job_Num=0 self.quant_operations_per_jobs=[]
# def getMatrix(self): self. readExample() self. initMatrix() for i in range(len(self. lines)-1): lo = 0 hi = 0 for j in range(self. proNum[i]): head = int(self. lines[i][lo]) hi = lo + 2 * head + 1 lo += 1 while lo < hi: self.machines[i][j].append(int(self. lines[i][lo])) self.operations[i][j].append(int(self. lines[i][lo + 1])) lo += 2 p_table=self.DataConversion() return (p_table, self.quant_operations_per_jobs) def readExample(self): with open(self. input) as fileObject: self. lines = fileObject.readlines() self. lines[0] = self. lines[0].lstrip().rstrip().split("\t") self.Job_Num=int(self. lines[0][0]) self.Mac_Num=int(self. lines[0][1]) del self. lines[0] for i in range(len(self. lines)-1): self. lines[i] = self. lines[i].lstrip().rstrip().split(" ") operation=int(self. lines[i].pop(0))
107 self.quant_operations_per_jobs.append(operation) self. proNum.append(operation) while "" in self. lines[i]: self. lines[i].remove("")
# def initMatrix(self): for i in range(len(self. proNum)): self.machines.append([]) self.operations.append([]) for _ in range(self. proNum[i]): self.machines[i].append([]) self.operations[i].append([])
# def DataConversion(self): total_of_operations = np.sum(self.quant_operations_per_jobs) process_times = np.ones((total_of_operations,self.Mac_Num), dtype=int)*(-1) index = 0 for (i1, i2) in zip(self.machines, self.operations): for (j1,j2) in zip(i1, i2): for (k1,k2) in zip(j1, j2): process_times[index][k1-1]=k2 index += 1 return process_times
""" Class that represent the enconding of Solution Space """ class Encode:
""" Init the class that represent the enconding of problem """ def init (self, solution_space_size, process_times, quant_operations_per_jobs): self.solution_space_size = solution_space_size self.process_times = process_times self.quant_operations_per_jobs = quant_operations_per_jobs self.quant_of_jobs = len(quant_operations_per_jobs) self.quant_of_machines = process_times.shape[1] self.half_of_scheduling = process_times.shape[0] self.solution_size = self.half_of_scheduling * 2
# def ordened_operations(self): operations = [] for jb, op in enumerate(self.quant_operations_per_jobs): for _ in range(op): operations.append(jb+1)
# def generate_solution_space(self): range_of_machines = range(1, self.quant_of_machines+1) matrix_dimensions = (self.solution_space_size, self.half_of_scheduling) machines_scheduling = np.random.choice(range_of_machines, matrix_dimensions) operations_scheduling = np.random.choice(range_of_machines, matrix_dimensions) operations = np.copy(self.ordened_operations()) for solution_i in range(self.solution_space_size): np.random.shuffle(operations) operations_scheduling[solution_i] = np.copy(operations) jobs_list = np.arange(self.quant_of_jobs) machines_list = np.zeros(self.quant_of_machines, dtype=int) for _ in range(self.quant_of_jobs): job_num = np.random.choice(jobs_list) index_of_start_operation = sum(self.quant_operations_per_jobs[:job_num]) index_of_end_operation = index_of_start_operation + self.quant_operations_per_jobs[job_num] for operation in range(index_of_start_operation, index_of_end_operation): load = [] for (process_time, machine_load) in zip(self.process_times[operation], machines_list): if process_time != -1: load.append(process_time + machine_load) load_indexes = [] for (index, process_time) in enumerate(self.process_times[operation]): if process_time != -1: load_indexes.append(index)
# less_busy_machine_index = np.argmin(load) less_busy_load_index = load_indexes[less_busy_machine_index] machines_scheduling[solution_i][operation] less_busy_machine_index+1