0% found this document useful (0 votes)
13 views10 pages

Final Report Optimization

This document summarizes a study exploring a greedy algorithm approach to priority scheduling jobs for maximum profit. The algorithm sorts jobs by profit in descending order and schedules each in the earliest available timeslot before the deadline, aiming to serve the most profitable jobs first. It is demonstrated on a large dataset and shown to scale well. While greedy algorithms have limitations, this approach prioritizes high-profit jobs to increase overall returns. Job sequencing has wide applications and tailored scheduling remains important across industries.

Uploaded by

kumarisakhi471
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views10 pages

Final Report Optimization

This document summarizes a study exploring a greedy algorithm approach to priority scheduling jobs for maximum profit. The algorithm sorts jobs by profit in descending order and schedules each in the earliest available timeslot before the deadline, aiming to serve the most profitable jobs first. It is demonstrated on a large dataset and shown to scale well. While greedy algorithms have limitations, this approach prioritizes high-profit jobs to increase overall returns. Job sequencing has wide applications and tailored scheduling remains important across industries.

Uploaded by

kumarisakhi471
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Priority Scheduling for Profitable Job Sequencing Based on

Greedy Algorithm, Limita ons and Applica ons


(Lalit Kushwaha, Roshan Prakash, Krish, Yash Gupta, Dr. Deepmala.)

Keywords
Abstract

Job Sequencing, This study explores strategic priority scheduling, specifically


Op miza on, Greedy the greedy algorithm, for optimizing profit in job
Algorithm, Priority sequencing. Motivated by efficiency and competitiveness,
Scheduling, Profit
the proposed solution employs a profit and deadline-based
Maximiza on, Resource
priority scheduling algorithm. Demonstrated on a large
Management
dataset, the algorithm showcases scalability with substantial
job sets. Acknowledging greedy algorithm limitations, a
comparative example highlights outcomes versus a non-
greedy approach. Job sequencing's versatile applications
underscore scheduling algorithm adaptability to distinct
priorities across industries. The research concludes by
emphasizing the importance of tailoring algorithms to
unique industry requirements.

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.

Goal Programming is a mathematical optimization technique used in decision-making and planning.


It allows for the simultaneous consideration and achievement of multiple, often conflicting jobs, tasks,
and objectives within a single model. By assigning priorities and weights to different jobs or goals, it
helps find a feasible and optimal solution that best balances the given attributes. Job scheduling is a
goal-oriented programming concept that is widely used in various industries such as manufacturing,
computers, medicine, etc. In manufacturing, we use it in process planning, human resource planning,
optimal job sequencing, machine management, etc.
Optimal job sequencing is crucial in many aspects, such as maximizing the overall profit and
minimizing the usage of resources. It is also important to get customer attention because a start-up
or a starting firm wants more and more customers, and they also do not want customers to churn in
their initial stage.
In today's world, job scheduling in manufacturing is often facilitated by advanced scheduling
software and algorithms that consider various factors such as production capacity, resource
availability, order priorities, and setup times.
These systems help manufacturers create efficient schedules that enhance overall productivity and
competitiveness in the market.
In our report, we work on similar problems to optimize maximum profit and serve more
and more customers. Here, we are using a greedy algorithm, which is a localized job-shuffling
optimization algorithm. In the greedy algorithm, our belief is that we get the maximum overall profit
at last. Furthermore, we will discuss the advantages and disadvantages of such greedy algorithms.

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.

PROBLEM STATEMENT AND PROPOSED SOLUTION


I am Samarth an entrepreneur running a startup SAMARTH UDYOG . Our company is RAR mechanical
component manufacturer. We take booking of product online one day before and finished the work
on the next day. We are giving customer specific services like Drilling, Knurling, Threading etc. We
have problem that some customers are in hurry because time is important for customer and us also.
so, we must complete a test or job till deadline or customer churn which is not good for company.
Customer has also fixed time to set his job done. So, our company facing these problems.
So, our main task is to maximize our profit in order to get success in the market. also, it is very
important to retain the customer otherwise customer churn will take place. It is very difficult to manage
or to serve all the customers. So, our intention is to take only to get these customers which has higher
profit with a suitable time zone otherwise we will not serve these customers.
To solve this problem there are many methods which are based on greedy algorithm, first come first
serve, priority scheduling, round robin, shortest job next (SJN) or first (SJF).
So, in our case we are using priority scheduling in which our main priority is cost or to get the
maximum profit from the customer. So, we take the job and schedule the job of smallest longest slot
before the deadline at last. if last place is not vacant then we schedule little earlier. If this is also not
vacant then we iterate from last to first to search a vacant slot before the deadline.
First our algorithm will analyse all the data customers such as name of the customer and profit
associated with it & deadline.
First our algorithm will sort this data in the descending order based on the profit, then it will start
analysing from 1st job from sorted data. if slot of this job is vacant then we schedule it and do their
works and remove this task from our sorted array or dataset.
If the deadline of job is unavailable in that case, we have two chooses first we find nearest smallest
deadline slot that allow for insertion, and in another case if we do not any vacant slot before the
deadline then in that case we cannot serve the customer, in that case we serve the customer at after
the deadline if customer is not churn to other manufacturer.
And that is how our algorithms is working. It is also important to know at this point that our primary
aim is get max profit and secondary is to serve customer.
Furthermore, here we are using sorting function and priority queue which take nlogn time complexity
which is neither good nor bad. following flowchart will explain this more clearly.

OUTPUT OF OUR PROGRAM: -


1. It gives information about which job is to be done in real time.
2. Which job we have completed and total profits with these jobs.
3. No. of jobs to be done.

To better understand the problem, we are taking a short example in which, we have five customers
with their deadline and approximate associated profit.

S.No Customer Name Deadline Profit


1. Shyam 1 19
2. Neha 3 15
3. Lalit 1 25
4. Ram 2 100
5. Rahul 2 27

Step 1
First, we will sort the Customer on profit basis because our primary aim is to gain maximum profit.

S.No Customer Name Deadline Profit


1. Ram 2 100
2. Rahul 2 27
3. Lalit 1 25
4. Shyam 1 19
5. Neha 3 15

Step 2
So, we schedule Ram at first at his deadline which is vacant now and we remove it from the set
/array.

Ram

S.No Customer Name Deadline Profit


1. Rahul 2 27
2. Lalit 1 25
3. Shyam 1 19
4. Neha 3 15

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

S.No Customer Name Deadline Profit


1. Lalit 1 25
2. Shyam 1 19
3. Neha 3 15
Step 4
We cannot take Lalit and Shyam because there is not any vacant slot before their deadline.

S. No Customer Name Deadline Profit


1. Neha 3 15

So, we will take Neha as there is vacant slot at the deadline for Neha.

Rahul Ram Neha


PROFIT & JOBS COMPLETED: - So in these problems, we served only three customers Rahul,
ram and Neha which is a very optimized solution in this case.
Total profit= 100+27+15
= 142
No. of jobs done = 03

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.

Customer Id Customer Name Deadline (hr.) Profit ($)

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

CODE AND ITS EXPLANATION Code


Flow Chart of The Algorithm

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’.

LIMITATIONS IN GREEDY ALGORITHMS


The profit deadline greedy algorithm can have limitations in certain scenarios due to its focus on
maximizing immediate profit. The algorithm might prioritize short-term gains without considering
more profitable opportunities that may arise in the future. It doesn't account for potential higher
profits if a task or investment is delayed or combined with others.
For instance, if the algorithm selects tasks solely based on their immediate profitability without
considering the possibility of higher gains from a combination of tasks or a delayed investment, it
might miss out on a more efficient or profitable solution in the long run.
In essence, the algorithm's myopic focus on immediate profit within a set deadline might hinder its
ability to explore more complex, but ultimately more lucrative, strategies.
Here we consider an example.
We considered 5 buildings, representing them in the numeric values 1, 2, 3, 4, and there is a separate
path and a separate distance (km) from one building to another, which is shown in the figure. We
want to reach building 1 from building 5 with the minimum optimal distance.

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.

QUESTIONS AND ANSWER


1) How would you describe your project?
Ans: - Our project centers, on enhancing the order in which jobs are scheduled by using a
priority-based approach with the aim of maximizing profitability through the use of an
algorithm. The research examines both the limitations that come with this approach and its
practical applications, in real-life situations. The objective is to investigate how this method
can effectively prioritize tasks to achieve profit despite its constraints and to explore its
implications across different industries.
2) What are your objectives and goals?
Ans: - There are two main objectives or Goals, first is to get maximum profit, and the second
is to get more customer attention or reduce customer churn. And also, to find information
about the next job which we have to perform.
3) Who will benefit from your project?
Ans: - Companies involved in task prioritization, project management, and job sequencing.
Technology and Software Developers to develop new operating systems and algorithms.
Academics and institutions also benefit from these techniques to manage classes,
examinations, and other things.
4) Are you in need of specific information or advice?
Ans: - We are not too aware of different greedy algorithms such as krusl, prism and Dijkstra
algorithms, so we are not able to identify which algorithm is suitable for which case. Also
don’t know about different factors that can affect job scheduling in manufacturing.
5) What did you learn from the project?
Ans: - From this project, we learn about job sequencing and scheduling in consideration of
different issues and factors. Also, we learn about greedy algorithms and about goal
programming.
6) What are the remaining open issues?
Ans: - Open issues may be, using different advanced algorithms in job sequencing. Also, we
can improve or work on multi-criteria job scheduling, and real-time decision making. Here
our main priority is profit but we can work on a more customer-centric approach
7) How can you determine if your project has achieved its objectives?
Ans: - Prioritizing tasks within a project helped in meeting deadlines and maximizing project
profitability. It assists in scheduling high-impact tasks earlier to ensure project success. It is
able

Roles

Lalit Kushwaha (20bsm033), Krish Kumar (20bme027) - Coding of problem And Example.

Roshan Prakash (20bme050) and Yash Gupta (20bsm062) – Literature review

Most of the things we have done together like discussion, overall understanding, algorithms,
flowchart and report writing, etc.

You might also like