Final Report Optimization
Final Report Optimization
Keywords
Abstract
INTRODUCTION
Optimization is a mathematical and analytical study of various algorithms and techniques. These
techniques help us achieve our desired target profit and manage the available resources within a given
constraint. Optimization includes various areas such as game theory, goal programming, dynamic
programming, linear programming, etc. In our context, we are using job scheduling, which comes
under goal programming.
MOTIVATION
There are many motivations behind working on a job sequencing project. Some of the most common
reasons include:
Optimization: - The sequence problems usually involving the optimization of the order in which
jobs are carried out or scheduled, maximizing their effectiveness and reducing costs. This optimization
could lead to more efficient resource utilization, shorter waiting times and a general improvement in
performance.
To improve efficiency and productivity: - Job sequencing can help to improve efficiency and
productivity by identifying and eliminating bottlenecks in the production process. By sequencing jobs
in a way that minimizes idle time and maximizes resource utilization, businesses can reduce costs and
increase output.
Resource Management: - Efficient job sequencing is crucial in resource management scenarios,
such as manufacturing or project scheduling. Proper sequencing ensures that resources are utilized
effectively and that deadlines are met.
Maximizing profit: - In industries where jobs vary in both profit potential and deadline constraints,
job sequencing plays a crucial role in maximizing overall profit by prioritizing high-profit jobs and
ensuring their timely completion.
Improved decision-making: - Job sequencing provides a structured framework for evaluating and
selecting jobs based on their profit potential and deadline requirements. This helps decision-makers
prioritize tasks effectively and make informed choices about which jobs to pursue, leading to better
overall outcomes.
Enhanced competitiveness: - In competitive markets, businesses that can efficiently sequence
jobs to maximize profit while meeting deadlines gain a significant advantage. This is because they can
deliver high-value products or services at a faster pace, leading to increased market share and
customer satisfaction.
Reduced risk of delays and penalties: - By prioritizing jobs with tighter deadlines and higher
profit potential, job sequencing helps to minimize the risk of delays and associated penalties. This is
crucial for businesses that operate in industries with strict deadlines and non-compliance penalties.
Improved project planning and execution: - Job sequencing provides a clear roadmap for project
execution, ensuring that tasks are completed in the most efficient and profitable manner. This can
lead to reduced project timelines, improved resource utilization, and enhanced project success rates.
Data-driven decision-making: - Job sequencing algorithms can be used to analyse job data and
identify patterns that can inform decision-making. This can help businesses understand which jobs
most profitable and which deadlines are most critical, leading to more strategic job selection and
sequencing.
Continuous improvement: - Job sequencing can be used as an ongoing process to identify areas
for improvement and optimize job selection and sequencing strategies over time. This continuous
refinement can lead to incremental gains in profit, efficiency, and resource utilization.
To better understand the problem, we are taking a short example in which, we have five customers
with their deadline and approximate associated profit.
Step 1
First, we will sort the Customer on profit basis because our primary aim is to gain maximum profit.
Step 2
So, we schedule Ram at first at his deadline which is vacant now and we remove it from the set
/array.
Ram
Step 3
We try to schedule Rahul at his deadline (2), but slot is not vacant as it is filled by Ram. So, we
schedule it before Ram at 1 and remove Rahul from our shorted set-in next step.
Rahul Ram
So, we will take Neha as there is vacant slot at the deadline for Neha.
Now, we are going to apply our algorithms to the large set of the company to get the result and to
see the scalability of job scheduling algorithms. Our algorithmic approach is designed to scale
seamlessly when applied to large datasets, ensuring robust performance in managing a substantial
number of jobs for optimal profit and resource utilization.
1 Neha 3 288
2 Lalit 2 435
3 Puja 10 401
4 Kushwaha 16 368
5 Rashmi 16 248
6 Prashant 1 361
7 Mala 11 108
8 Rahul 10 167
9 Aarti 5 251
10 Rinku 3 170
11 Shanti 14 156
12 Sachin 6 184
13 Sara 4 370
14 Subhman 5 424
15 Anushka 8 397
16 Prem 5 375
17 Jyoti 5 218
RESULT
Total Profit = $ 3994
Total Job\ Customers served = 13
Input Format: - The algorithm uses a vector 'Job' to represent each job, consisting of three attributes:
id (customer name), dead (deadline of job in hours), and profit (profit if the job is completed before
or on the deadline).
Sorting: - The algorithm initializes an empty vector 'a' to store pairs of profit and deadline for each
job. It iterates through each job and inserts a pair {profit, deadline} into the vector 'a'. Additionally, it
calculates the maximum deadline (p) for all jobs. The vector 'a' is sorted in ascending order based on
profit using the sort of function. Sorting in ascending order is done because the algorithm will consider
jobs with higher profits first.
Scheduling Jobs: - A set's' is initialized to represent the available time slots. The algorithm iterates
through the sorted jobs in reverse order, from i = 0 to n = 1.
For each job, it checks if the deadline of the job is present in the set's'. If yes, the job is scheduled, and
its profit is added to the total profit. The deadline has been removed from the set. If not, the algorithm
finds the nearest smaller deadline in the set and schedules the job at that time. The profit is added to
the total profit, and the deadline is removed from the set.
Results: - The algorithm maintains counts of jobs scheduled ('cnt') and the total profit ('sum'). The
output of the algorithm is a vector containing two values: the number of jobs scheduled ('cnt') and
the total profit ('sum').
Time And Space Complexity: - O(n log n), where n is the number of jobs. This complexity arises from
the sorting step. Space Complexity: O(n), where n is the number of jobs. The space is used to store
the vector ‘a’.
Now we are going to discuss two solutions to this problem. One is based on a greedy algorithm. Now
we want to go from building 1 to building 5 via other buildings, so first we apply a greedy algorithm
here to choose the minimum path to reach building 5, so here we choose building 1 to building 2,
which has a minimum distance of 1 km, instead of building 1 to building 3, which has a distance of 2
km. After reaching building 2, we now see that there is one path to reach building 5, which has a
distance of 4 km. After reaching building 5, we see that we covered a distance of 5 km from buildings
1 to 5 with the help of a greedy algorithm.
So now that we don't use greedy, we choose the path from building 1 to building 3 with a distance of
2 km. After reaching building 3, we have two options to reach building 5. The first is building 3—
building 4—building 5, with a complete path distance of 5 km, and the other is a shortcut path from
building 3 to building 5 with an entire path distance of 4km.
So, we saw that when we use greedy, we have a minimum path of 5 km to reach building 5. but on
the other side, we have a minimum distance of 4 km to reach buildings 1 to 5. By seeing this example,
we see that greedy people always prioritize short-term profit over more profitable opportunities that
may arise in the future.
Note: Sometimes greedy algorithms give suboptimal solutions, so here we can say that greedy is not
a robust algorithm. In that case we can go for other algorithms as well. But greedy algorithms is easy
to understand and complexity, that’s why we are using it.
APPILICATIONS
As we discussed previously, job scheduling or sequencing is used in various fields such as
manufacturing, project management, healthcare, information technology, construction, logistics,
transportation, etc. In manufacturing, we use it for raw material management, labour or human
resource management, manufacturing process planning, warehouse management, etc.; it minimizes
idle time and meets production deadlines. It ensures a streamlined flow of operations in areas such
as assembly lines, processing plants, and discrete manufacturing.
In healthcare, we use it for scheduling patient appointments, surgeries, and various medical
procedures. It helps to optimize the utilization of medical resources, manage patient flow, and
minimize waiting times. So, it is curricula in the medical field as well. Basically, in healthcare, we apply
algorithms based on patient emergencies, not for maximum profit, but in manufacturing, we apply
algorithms that give maximum profit, so in different contexts, we use different algorithms according
to the priorities.
In retail and logistics, job sequencing is applied to manage inventory, order fulfilment, and logistics
operations. It helps retailers optimize stock levels, minimize holding costs, and ensure timely
restocking.
In information technology, it helps in the scheduling of different operating system algorithms for
memory and space management. Apart from this, we used these scheduling algorithms or techniques
in scheduling and managing batch processing jobs, data backups, and system maintenance tasks. It
ensures that computing resources are utilized effectively and that critical tasks are completed within
specifiedtimeframes.
Job scheduling is also used in education for optimal management of classes and classrooms,
examinations, and other academic activities. It helps in managing classroom resources, and faculty
schedules, and ensuring a smooth academic calendar. So, we can say that job scheduling has vast
applications in many fields.
FUTURE TRENDS
In today's era, Machine learning and AI have changed the world. We can apply machine learning in
Job scheduling to predict the possibility of churn customers based on our previous data the customer
or based on similar types of data, so in that we can serve this customer early by managing and utilizing
our time to retain this customer because, with profit, the customer is also important for us . Apart
from this, we can enable cloud-based booking and data processing for fast and efficient data analysis
and predictions because we cannot handle or process a lot or a large dataset in our systems.
Also, we can use advanced AI algorithms for decision-making, allowing businesses to adapt to
changing circumstances swiftly, and data analysis is likely to become more sophisticated.
AI-powered communication channels, including chatbots and virtual assistants, can play a role in job
scheduling and customer interactions. Customers can receive real-time updates, reschedule
appointments seamlessly, and receive personalized recommendations, contributing to a positive
customer experience. Apart from this AI systems can learn day-to-day from our daily data and become
more reliable and stronger in terms of decision-making and can increase adaption in scheduling to
become more effective.
REFERENCES
1) https://www.geeksforgeeks.org/job-sequencing-problem/
2) R. Durga Lakshmi1, N Srinivasu*, A Review and Analysis of Task Scheduling Algorithms in
Different Cloud Computing Environments.
3) r. P. V. Ubale, A Study of Algorithm for the Optimal Scheduling of the Job Sequencing
Problem.
4) Tanzin Ahammad, Mahedi Hasan, Mohammad Hasan, Md Mamunur Rashid, A New
Approach to Solve Job Sequencing Problem Using Dynamic Programming with Reduced
Time Complexity
5) Sartaj, K.S.: Algorithms for scheduling independent tasks. J. ACM 23(1), 116–127 (1976).
6) Allan Borodin, Morten N. Nielsen, Charles Rackoff, (Incremental) priority algorithms.
Roles
Lalit Kushwaha (20bsm033), Krish Kumar (20bme027) - Coding of problem And Example.
Most of the things we have done together like discussion, overall understanding, algorithms,
flowchart and report writing, etc.