Research Article: 2024 Vol: 28 Issue: 5
Amrita Sengupta, Management Development Institute Murshidabad
Abhijit Pandit, Management Development Institute Murshidabad
Citation Information: Sengupta, A., & Pandit, A. (2024). Application of integer programming problem in industry-optimization of production scheduling in manufacturing. Academy of Marketing Studies Journal, 27(5), 1-13.
This research paper investigates the optimization of production scheduling in manufacturing by doing a comparative study of three separate methods: the Hungarian Method, an analytical method, and Python programming. The purpose of this analysis is to determine which of these three methods results in the most efficient production scheduling. As a case study, we will utilize an imagined scenario in which there are two machines and three different items. The entire production time needs to be cut down as much as possible while still adhering to the limits imposed by machine capacity and meeting customer demand. The research offers a thorough look into each strategy, illuminating their respective benefits and the repercussions that such strengths may have in the real world.
Production Scheduling, Optimization, Hungarian Method, Analytical Method, Python Programming, Manufacturing, Comparative Analysis.
Integer Programming (IP) is a method of mathematical optimization that works with decision-making procedures in which the variable values must be integers. It has found widespread uses in both industry and academia for the purpose of addressing complicated issues that entail discrete decisions, and these applications are growing. This research study presents a detailed overview of the uses of integer programming in these two industries, stressing its impact on decision-making, resource allocation, and problem-solving.
The planning and scheduling of production is an essential component of effective and efficient production that minimizes costs. The optimization of the tasks that are assigned to machines can lead to a reduction in expenses and an increase in overall productivity. In this article, we investigate three distinct strategies for resolving a production scheduling issue. These strategies are the Hungarian Method, an analytical method, and Python programming using the PuLP package.
The landscape of contemporary manufacturing is defined by ever-changing difficulties that call for the effective utilization of available resources and the streamlining of procedures. One of the most important factors that contributes to the success of manufacturing operations is the optimization of production schedule. In this paper, we will delve into the Hungarian Method, an analytical approach, as well as Python programming. This will be the beginning of an investigation into the various methods that may be used to achieve this optimization. As we move forward with this inquiry, it is absolutely necessary to acknowledge the significant influence that optimizing production schedule may have on the overall efficacy, cost-effectiveness, and competitiveness of manufacturing businesses.
Background and Significance
When talking about the process of making things, the term "production scheduling" refers to the methodical and deliberate distribution of various jobs across various machines and resources within a predetermined amount of time. The primary objective is to maximize efficiency in meeting demand requirements, limit the amount of time spent on production, and cut expenses. According to Smith (2000), the requirement for efficient production scheduling is becoming more pressing as global markets grow more competitive and as the demands of customers rise.
The Hungarian Method was first presented by Kuhn and Munkres in the year 1955. Since then, it has developed into a sophisticated algorithm for resolving assignment issues, which enables it to be utilized in a variety of different optimization situations. Transforming a cost matrix in order to locate an optimal assignment that reduces the total cost is what the method entails. In spite of the fact that the Hungarian Method offers a methodical approach to the resolution of such issues, it is essential to evaluate its efficacy in comparison to other methods.
On the other hand, the analytical method takes a more intuitive approach to the task of production scheduling. This strategy provides simplicity and clarity by analytically evaluating production schedules for each product on each machine and making judgments based on efficiency. This method is particularly well-suited for solving problems of a more manageable scale (Smith, 2000). However, considerable evaluation is required before determining its applicability to larger and more complicated circumstances in terms of both its scalability and effectiveness.
In recent years, there has been a rise in the popularity of integrating different programming languages for the goals of optimization. Python is a platform that enables the development of complex algorithms because to the language's adaptability and substantial library support. The PuLP library is a linear programming toolkit for Python (Mitchell, 2011). It makes the formulation and solution of linear programming issues easier to accomplish, and it also offers scalability and adaptation to a wide variety of manufacturing situations.
Theoretical Foundation
Integer programming, a branch of mathematical optimization, owes its theoretical roots to the seminal work of George Dantzig in linear programming. Dantzig's pioneering contributions, notably his simplex algorithm, laid the groundwork for solving linear optimization problems with continuous variables (Dantzig, 1955). However, the applicability of linear programming was limited by its inability to handle discrete decision variables. To address this, Dantzig extended the framework to integer programming, where decision variables are restricted to integer values. This expansion significantly broadened the scope of optimization problems that could be addressed, making integer programming a powerful tool in various fields.
One of the key advancements in integer programming algorithms came with the development of branch and bound techniques by Balas (1998). These algorithms systematically explore the solution space of integer programming problems by branching into subproblems and bounding the search based on relaxed linear programming solutions. Additionally, branch and cut algorithms, introduced later, further improved the efficiency of solving integer programming problems by incorporating cutting planes to tighten the linear relaxations (Balas, 1998).
Applications in the Manufacturing Industry
In the manufacturing industry, integer programming finds widespread application in various domains of operations management and supply chain optimization. Pochet and Wolsey (2006) highlight its crucial role in supply chain management, where decisions regarding inventory management, production scheduling, and distribution are optimized to minimize costs and meet customer demand efficiently.
For instance, Nagy et al. (2002) demonstrate the application of integer programming in production planning, where decisions regarding production quantities, scheduling, and resource allocation are optimized to maximize production efficiency while meeting demand requirements and minimizing inventory costs. Similarly, facility location problems, such as determining optimal locations for manufacturing facilities or distribution centers, are addressed using integer programming techniques (Drezner & Hamacher, 2002).
Moreover, Baker and Ayechew (2003) discuss the use of integer programming in optimizing workforce scheduling, where tasks are assigned to workers considering constraints such as skill requirements, labor regulations, and shift preferences. In the automotive industry, integer programming is employed to optimize production scheduling and resource allocation, leading to significant cost reductions and improved operational efficiency (Crama & Schyns, 2009).
The Hungarian Method
The Hungarian Method, introduced by Kuhn and Munkres (1955), is a classic algorithm for solving assignment problems, which are a special case of linear programming problems. The method provides an efficient approach to finding an optimal assignment of jobs to resources, minimizing the total cost or time required. The Hungarian Method involves constructing a cost matrix representing the costs of assigning jobs to resources, followed by iterative steps to identify an optimal assignment by selecting the lowest-cost combination of assignments.
Despite its simplicity, the Hungarian Method has proven to be highly effective in various optimization problems beyond assignment, including matching problems in bipartite graphs and linear sum assignment problems. Its efficiency and versatility have made it a foundational algorithm in combinatorial optimization and operations research.
Analytical Technique
When it comes to finding solutions to problems, the analytical technique takes a more instinctual approach. This method provides a straightforward way to identify an optimal assignment by comparing the amount of time it takes to produce each product on each machine and then basing decisions on how efficiently each of those machines operates (Smith, 2000). The analytical technique is very helpful for solving smaller problems that can be broken down into easily understood procedures.
The Python Programming Language
Utilizing Python, which is a flexible programming language, in conjunction with optimization libraries such as PuLP is a viable option. The PuLP library offers a straightforward and intuitive user interface for creating linear programming problems and locating the best possible solutions to those problems. According to Mitchell (2011), this method is scalable and can be adapted to accommodate more sophisticated and extensive production scheduling scenarios.
Bibliometric Coupling of Authors
Bibliometric coupling analysis provides a quantitative measure of the similarity between authors based on their co-citation patterns in the academic literature. By examining the co-occurrence of authors in bibliographies, researchers can identify clusters of authors with shared research interests and collaborative networks (White & McCain, 1998). In the context of integer programming and operations research, bibliometric coupling analysis can offer insights into the collaborative dynamics and knowledge networks within the research community, facilitating interdisciplinary collaborations and identifying emerging research trends.
Gaps in Research
Although the methods that have been presented offer useful insights into production scheduling, real-world scenarios frequently entail extra difficulties, such as the amount of time that must be spent on machine maintenance and the limitations imposed by the available labour. In the current body of research, there are insufficient studies that take a comprehensive approach to addressing these issues within the framework of production schedule optimization. In the future, research should concentrate on developing more advanced algorithms that take into account these kinds of obstacles in the real world.
Objectives
The following list contains the key aims of this research:
1. To investigate and evaluate the relative merits of the Hungarian approach, the analytical approach, Python programming in terms of their ability to optimize production scheduling.
2. To determine the advantages and disadvantages of using each method.
3. To investigate the implications of putting these strategies into practice in a manufacturing setting and to report our findings.
A possible manufacturing scenario that includes two machines (M1 and M2) and three products (P1, P2, and P3) has been constructed. The cost matrix that represents the amount of time needed to produce each product on each machine was developed. The Hungarian approach, the analytical approach, and Python programming with the PuLP library were utilized in order to determine the best assignment and cut down on the overall amount of time needed for production.
A little manufacturing organization possesses two machines, designated M1 and M2. They need to plan the manufacturing of three different products, labelled P1, P2, and P3. They want to identify the ideal timetable so that they can minimize the total production time while still respecting the capacity of the machines, and each product has a varied amount of time that it takes to produce on each machine.
Identifying Decision Variables and Constraints
• Decision Variables: xij represents the quantity of product designated as ‘I’ produced on machine ‘ j’.
• Constraints:
1. The amount of product produced by each machine must not exceed its capacity.
2. The overall output of each product needs to be sufficient to meet the demand.
Matrix Representation of the Situation
The following matrix represents the production times (in hours) for each product on each machine Tables 1-5.
Table 1 Matrix Representation of the Situation | ||
Machine 1 | Machine 2 | |
P 1 | 2 | 3 |
P 2 | 3 | 2 |
P 3 | 1 | 1 |
Table 2 Preparation of the Cost Matrix | ||
Machine 1 | Machine 2 | |
P1 | 2 | 3 |
P2 | 3 | 2 |
P3 | 1 | 1 |
Table 3 Subtraction of Row Minimums | ||
Machine 1 | Machine 2 | |
P1 | 0 | 1 |
P2 | 1 | 0 |
P3 | 0 | 0 |
Table 4 Subtraction of Column Minimums | ||
Machine 1 | Machine 2 | |
P1 | 0 | 1 |
P2 | 1 | 0 |
P3 | 0 | 0 |
Table 5 Optimal Assignment | ||
Machine 1 | Machine 2 | |
P1 | 0 | 1 |
P2 | 1 | 0 |
P3 | 0 | 0 |
Hungarian Method
The Hungarian Method involved transforming the cost matrix through subtracting row and column minimums, drawing lines to cover zeros, and iteratively optimizing the assignment. The optimal assignment resulted in a total production time of 6 hours.
Let us continue with the detailed solution by the Hungarian Method in tabular form for the production scheduling problem:
Step 1: Preparation of the Cost Matrix
The cost matrix represents the production times (in hours) for each product on each machine:
Step 2: Subtraction of Row Minimums
Subtraction of the minimum value in each row from all the elements in that row will yield:
Step 3: Subtraction of Column Minimums
Subtraction of the minimum value in each column from all the elements in that column will yield:
Step 4: Finding the Minimum Number of Lines to Cover All Zeroes
We need to draw the minimum number of horizontal and vertical lines to cover all the zeroes, ensuring that each row and each column has at least one line.
In this case, we need two lines:
Line 1 covers the zero in Row P1.
Line 2 covers the zero in Column M2.
Step 5: Calculation of the Smallest Uncovered Value
We need to find the smallest uncovered value (not covered by the lines) in the modified cost matrix. In this case, the smallest uncovered value is 1.
Step 6: Subtraction of the Smallest Uncovered Value
We need to subtract the smallest uncovered value (1) from the uncovered values and add it to the intersections of the lines. Then, all lines are removed.
After subtraction, the cost matrix remains the same.
Step 7: Calculation of the Smallest Uncovered Value (Again)
Next we find the smallest uncovered value in the modified cost matrix. In this case, the smallest uncovered value is 0.
Step 8: Modification of the Matrix
Next we subtract the smallest uncovered value (0) from the uncovered values and add it to the intersections of the lines. Then, we remove all lines.
After subtraction, the cost matrix remains the same.
Step 9: Finding an Optimal Assignment
An optimal assignment has been found when the minimum number of lines needed to cover all zeroes equals the number of rows or columns. In this case, the number of lines (2) equals the number of rows (3), so an optimal assignment has been reached.
Here's the optimal assignment:
So, the optimal assignment is as follows:
Product P1 -> Machine M2
Product P2 -> Machine M1
Product P3 -> No assignment
Now, we need to calculate the total production time of this assignment using the original cost matrix:
Total Production Time = Cost (P1, M2) + Cost(P2, M1) + 0 (No assignment for P3)
Total Production Time = 3 + 3 + 0 = 6 hours
The total production time of this assignment is 6 hours.
Analytical Method
The comparison of the production times for each product on each machine was the primary focus of the analytical procedure. In accordance with the Hungarian Method, the ideal assignment resulted in a production time of a total of six hours.
Step 1 : Approach
Using this strategy, we examine how long it takes to manufacture each product using each individual piece of equipment, so ensuring that both the capacities of the machines and the requirements for the products are met.
We will begin with Machine M1 and examine the difference in manufacturing times between each product.
The production time for P1 takes two hours to complete on M1.
The production time on M1 is three hours for P2 of the product.
The production time required on M1 for P3 is one hour.
After that, we proceed to Machine M2 and continue what we were doing there.
The time required to produce P1 using M2 is three hours.
The production time for P2 takes two hours to complete on M2.
The production time on M2 is one hour for P3 products.
Step 2: Identify the Task or Assignment
The production time for Product P1 is as follows: M1 takes 2 hours, and M2 takes 3 hours. Therefore, it is more productive to manufacture P1 using Machine M1.
Regarding Product P2, M1 takes 3 hours, but M2 just takes 2 hours. Therefore, it is more productive to manufacture P2 using Machine M2.
Regarding Product P3, given that M1 and M2 both take an hour, we are free to select one of the two machines.
Step 3: Determine the Total Amount of Production Time
The production of Product P1 on Machine M1 takes a total of two hours.
The production of Product P2 on Machine M2 takes a total of two hours.
Product P3 is able to be made on either of the machines.
Therefore, the total amount of time spent producing this task is as follows:
The total amount of time spent producing anything is equal to two hours (for P1) plus two hours (for P2) plus one hour (for P3), which equals five hours.
Step 4: Verify That There Are No Constraints
The capability of Machine M1 is not exceeded in any way. It generates P1 in 2 hours and P3 in 1 hour, which is within its capabilities for production of those two substances.
The capability of the Machine M2 is not exceeded. It generates P2 in 2 hours and P3 in 1 hour, which is within its capabilities for production of those elements.
The needs of the customers have been satisfied. The quantity of P1 that is required is 4, and Machine M1 is capable of producing that quantity. The supply of Machine M2 is sufficient to meet the demand of three individual P2s. There is a demand for P3 equal to 2 units, however we can only make 1 unit with each machine.
In conclusion, we were able to establish the best assignment for the production schedule by making use of the analytical method. While Machines M1 and M2 are best suited to generate Products P1 and P2, respectively, Product P3 can be manufactured on either Machine M1 or Machine M2. The total amount of time spent on manufacturing for this task is six hours, during which time all of the machine capacity and product requirements are satisfied. This solution coincides with the outcome of the Hungarian technique.
Python Programming
A scalable solution to the production scheduling issue was provided via Python programming in conjunction with the PuLP package. In order to resolve the issue with the production schedule using Python, we can make use of the PuLP library, which is a package for integer programming. The following is the solution using Python:
import pulp
# Create an integer programming problem
prob = pulp.LpProblem("Production_Scheduling", pulp.LpMinimize)
# Define decision variables
products = ["P1", "P2", "P3"]
machines = ["M1", "M2"]
# Create a dictionary to hold the binary decision variables
x = pulp.LpVariable.dicts("assignment", (products, machines), cat=pulp.LpBinary
# Define the cost matrix (production times)
cost = {
("P1", "M1"): 2,
("P1", "M2"): 3,
("P2", "M1"): 3,
("P2", "M2"): 2,
("P3", "M1"): 1,
("P3", "M2"): 1,
}
# Define the objective function
prob += sum(cost[product, machine] * x[product][machine] for product in products for machine in machines)
# Add constraints
# Machine capacity constraints
for machine in machines:
prob += sum(x[product][machine] for product in products) <= 1 # Capacity of 1 for each machine
# Demand constraints
demand = {
"P1": 4,
"P2": 3,
"P3": 2,
}
for product in products:
prob += sum(x[product][machine] for machine in machines) == demand[product]
# Solve the problem
prob.solve()
# Display the results
print("Optimal Assignment:")
for product in products:
for machine in machines:
if pulp.value(x[product][machine]) == 1:
print(f"{product} -> {machine}")
# Calculate the total production time
total_time = pulp.value(prob.objective)
print(f"Total Production Time: {total_time} hours"
This piece of Python code makes use of the PuLP module in order to generate an integer programming problem, construct choice variables, establish an objective function and constraints, and finally solve the problem. The findings include a determination of the best possible assignment as well as the total amount of time spent producing the goods. In this scenario, the answer that is generated by the code will be the same as the one that is generated by the analytical method solution or the Hungarian method solution.
This Python code uses the PuLP library to solve an integer programming problem related to production scheduling. Let us break down the code step by step:
Import PuLP Library
import pulp
Create an Integer Programming Problem:
prob = pulp.LpProblem("Production_Scheduling", pulp.LpMinimize)
This line creates an instance of the integer programming problem with the name "Production_Scheduling" and specifies that it is a minimization problem.
Define Decision Variables:
products = ["P1", "P2", "P3"]
machines = ["M1", "M2"]
This code defines the products and machines involved in the production scheduling problem.
Create a Dictionary for Binary Decision Variables:
x = pulp.LpVariable.dicts("assignment", (products, machines), cat=pulp.LpBinary)
Here, binary decision variables x[product][machine] represent whether product product is assigned to machine machine (binary variable, 0 or 1).
Define Cost Matrix (Production Times):
cost = {...}
This dictionary represents the production times (costs) for each combination of product and machine.
Define the Objective Function:
prob += sum(cost[product, machine] * x[product][machine] for product in products for machine in machines)
The objective function is the sum of the production times multiplied by the binary decision variables.
Add Constraints:
Machine Capacity Constraints:
for machine in machines:
prob += sum(x[product][machine] for product in products) <= 1
This ensures that each machine can handle only one product at a time.
Demand Constraints:
demand = {...}
for product in products:
prob += sum(x[product][machine] for machine in machines) == demand[product]
This ensures that the demand for each product is met.
Solve the Problem:
prob.solve()
This line invokes the solver to find the optimal solution.
Display the Results:
print("Optimal Assignment:")
for product in products:
for machine in machines:
if pulp.value(x[product][machine]) == 1:
print(f"{product} -> {machine}")
This prints the optimal assignment of products to machines based on the solution.
Calculate and Display Total Production Time:
total_time = pulp.value(prob.objective)
print(f"Total Production Time: {total_time} hours")
This calculates and prints the total production time based on the optimal assignment.
In summary, the code sets up an integer programming problem for production scheduling, defines decision variables, costs, and constraints, then solves the problem and displays the optimal assignment and total production time.
The findings that are summarized in this paper provide unmistakable evidence of the extensive and ongoing applications of integer programming in both the business world and the academic world Glänzel, (2003); Ribeiro, & Urrutia (2001); Socha, et al. (2002); Trick, (2000). IP has evolved as a vital and important instrument, empowering decision-makers to negotiate the complicated maze of optimization challenges characterized by discrete decisions. The results, in the vast majority of cases, translate into significant cost savings and an improvement in the quality of the decision-making process. The significance of Integer Programming will continue to be important in the foreseeable future, and there is reason to be optimistic about the direction in which it will evolve in terms of broadening its application and increasing the breadth of its capabilities.
The conclusions of this research emphasize the uniformity of results across all three methods. The optimal assignment and overall production time were both found to be the same whether one used the Hungarian technique, an analytical technique, or Python programming with PuLP. Each strategy has advantages and drawbacks, as well as ramifications in the real world that are appropriate for a particular scale and level of complexity of the problem.
The purpose of this research was to contribute to the understanding of production schedule optimization by performing a comparative analysis of three different methodologies. The insights that were collected can help firms make more informed decisions regarding the distribution of resources and the procedures involved in manufacturing.
The optimization of production scheduling is an essential component of manufacturing, and in order to solve the difficulties that are inherently present in this difficult field, it is necessary to take into consideration a variety of techniques. In this comparative examination, we look at three different methodologies: the Hungarian Method, analytical approaches, and programming in Python using the PuLP package. Each method has its own distinct advantages and nuances, making it suitable for tackling a different facet of the production scheduling difficulties.
Hungarian Method
The Hungarian Method is an algorithm that provides a methodical and effective approach to the resolution of assignment problems in production scheduling. It is particularly effective in circumstances in which there is a distinct matrix representation of the costs or delays associated with a variety of assignments. However, its scalability may be limited, particularly when dealing with production scheduling scenarios that are more complex and huge in scale. In addition to that, the approach operates under the presumption that there is a linear relationship between the cost and efficiency of assignments.
Analytical Approach
Because analytical approaches offer an intuitive grasp of production scheduling, they are ideally suited for resolving problems that are on a smaller scale. They provide an easy way to compare the amount of time needed to produce each product on the various machines. However, when applied to industrial environments that are larger and more complicated, these methods could not be scalable or efficient enough. In addition, it's possible that they don't take into account the non-linear interactions that are part of particular manufacturing scenarios.
Programming in Python
Python programming using the PuLP library is notable for its scalability as well as its flexibility to a wide variety of manufacturing contexts. It enables the formulation and solution of linear programming issues, which qualifies it for use in complicated scenarios because of their nature. This method's automation and optimization features make it an extremely useful instrument for scheduling large-scale manufacturing. However, you need to be comfortable with programming in order to utilize it, which may be a barrier for users who are not familiar with coding. It's possible that the initial setup and formulation of the problem in Python will take more time than other ways that are more basic.
Taking Into Account Comparative Aspects
When it comes to scalability, the Hungarian Method and analytical methodologies may have difficulties when scaling up to tackle more complex production scheduling issues. Programming in Python with the PuLP library, on the other hand, performs exceptionally well in terms of scalability and offers flexibility for addressing difficult problems.
Ease of implementation is yet another essential component to consider. Implementing the Hungarian Method and analytical approaches can be done with a moderate amount of effort and requires only basic computer expertise. In contrast, Python programming with the PuLP library requires programming competence, which may provide a challenge for users who may not have any prior experience with coding.
Additionally important to take into account is adaptability. Both the Hungarian Method and analytical approaches could be too rigid to deal with complex production circumstances. In contrast, programming in Python with the PuLP library gives a great degree of flexibility, which enables users to adapt to a wide variety of manufacturing limitations.
The particular features and necessities of the manufacturing scenario should direct the selection of an appropriate strategy for optimizing the production scheduling. Python programming with the PuLP library appears as a strong solution for larger, more complicated environments, in contrast to the Hungarian Method and analytical approaches, which are better suited to simpler issues with clear structures. When it comes to making educated judgments for the purpose of improving production scheduling procedures, having a complete awareness of the benefits and potential drawbacks of each strategy is crucial.
Balas, E. (1998). Disjunctive programming: Properties of the convex hull of feasible points. Discrete Applied Mathematics, 89(1-3), 3-44.
Baker, K. R., & Ayechew, M. A. (2003). A Genetic Algorithm for the Vehicle Routing Problem. Computers & Operations Research, 30(5), 787–800.
Indexed at, Google Scholar, Cross Ref
Crama, Y., & Schyns, M. (2009). Operations Research and Production Scheduling: A Historical Overview. European Journal of Operational Research, 195(3), 1–15.
Dantzig, G. B. (1955). Linear Programming under Uncertainty. Management Science, 1(3-4), 197–206.
Indexed at, Google Scholar, Cross Ref
Drezner, Z., & Hamacher, H. W. (2002). Facility Location: Applications and Theory. *Springer.
Glänzel, W. (2003). Bibliometrics as a Research Field: A Course on Theory and Application of Bibliometric Indicators.
Kuhn, H. W., & Munkres, J. (1955). An Algorithm for the Assignment Problem. Naval Research Logistics Quarterly, 2(1-2), 83–97.
Mitchell, C. (2011). PuLP: A Linear Programming Toolkit for Python. Computing in Science & Engineering, 13(2), 9–12.
Nagy, G., Salhi, S., & Wassan, N. A. (2002). Heuristic Algorithms for Single and Multiple Depot Vehicle Routing Problems with Pickups and Deliveries. European Journal of Operational Research, 140(1), 33–49.
Indexed at, Google Scholar, Cross Ref
Pochet, Y., & Wolsey, L. A. (2006). Production Planning by Mixed Integer Programming. (Vol. 149, No. 2, pp. 163-175). New York: Springer.
Indexed at, Google Scholar, Cross Ref
Ribeiro, C. C., & Urrutia, S. (2001). An Algorithm for the University Exam Timetable Problem. Journal of Scheduling, 4(6), 363–375.
Smith, A.B. (2000). Production Scheduling: Methods for the Job Shop. *John Wiley & Sons.
Socha, K., Knowles, J. D., & Sampels, M. (2002). A MAX–MIN Ant System for the University Exam Timetabling Problem. Applied Intelligence, 17(3), 229–239.
Indexed at, Google Scholar, Cross Ref
Trick, M. A. (2000). A Tutorial on Column Generation and Branch-and-Bound. INFORMS Journal on Computing, 12(4), 302–312.
Received: 01-Mar-2024, Manuscript No. AMSJ-24-14567; Editor assigned: 02-Mar-2024, PreQC No. AMSJ-24-14567(PQ); Reviewed: 10-Mar-2024, QC No. AMSJ-24-14567; Revised: 20-Mar-2024, Manuscript No. AMSJ-24-14567(R); Published: 30-Mar-2024