2
Most read
7
Most read
9
Most read
“Job
Sequencing
With
Deadlines”
.............a Greedy Algorithm
Define-
The sequencing of jobs on a single processor
with deadline constraints is called as Job
Sequencing with Deadlines.
Here-
• You are given a set of jobs.
• Each job has a defined deadline and some
profit associated with it.
• The profit of a job is given only when that
job is completed within its deadline.
Assumptions-
• Only one processor is available for processing
all the jobs.
• Processor takes one unit of time to complete
a job.
• Non-preemption is there.
The problem states-
“How can the total profit be maximized if only
one job can be completed at a time?”
Approach to Solution-
• A feasible solution would be where each
job in the subset gets completed within its
deadline.
• Value of the feasible solution would be the
sum of profit of all the jobs contained in the
subset.
• An optimal solution of the problem would
be a feasible solution which gives the
maximum profit.
Greedy Algorithm-
Greedy Algorithm is adopted to determine
how the next job is selected for an optimal
solution.
The greedy algorithm described in the next
slide always gives an optimal solution to the
job sequencing problem.
Steps to solve-
Step-01:
•Sort all the given jobs in decreasing order of
their profit.
Step-02:
•Check the value of maximum deadline.
•Draw a Gantt chart where maximum time on
Gantt chart is the value of maximum deadline.
Step-03:
•Pick up the jobs one by one.
•Put the job on Gantt chart as far as possible
from 0 ensuring that the job gets completed
before its deadline.
Jobs J1 J2 J3 J4 J5 J6
Deadlines 5 3 3 2 4 2
Profits 200 180 190 300 120 100
Example Problem-
Given the jobs, their deadlines and associated
profits as shown, answer the following
questions-
•Write the optimal schedule that gives
maximum profit.
•What is the maximum earned profit?
Jobs J4 J1 J3 J2 J5 J6
Deadlines 2 5 3 3 4 2
Profits 300 200 190 180 120 100
Solution-
Step1: Sort all the given jobs in decreasing order
of their profit-
Step2:
Value of maximum deadline = 5.
So, draw a Gantt chart with maximum time on Gantt
chart = 5 units as shown-
Now,
• We take each job one by one in
the order they appear in Step1.
• We place the job on Gantt chart
as far as possible from 0.
Step3:
•We take job J4.
•Since its deadline is 2, so we place it in
the first empty cell before deadline 2
as-
Step4:
•We take job J1.
•Since its deadline is 5, so we place it in the first
empty cell before deadline 5 as-
Step5:
•We take job J3.
•Since its deadline is 3, so we place it in the
first empty cell before deadline 3 as-
Step6:
•We take job J2.
•Since its deadline is 3, so we place it in the first
empty cell before deadline 3.
•Since the second and third cells are already
filled, so we place job J2 in the first cell as-
Step7:
•Now, we take job J5.
•Since its deadline is 4, so we place it in
the first empty cell before deadline 4 as-
Now,
• The only job left is job J6 whose deadline
is 2.
• All the slots before deadline 2 are
already occupied.
• Thus, job J6 can not be completed.
The optimal schedule is-
J2 , J4 , J3 , J5 , J1
This is the required order in which the jobs must
be completed in order to obtain the maximum
profit.
Maximum earned profit
= Sum of profit of all the jobs in optimal schedule
= Profit of job J2 + Profit of job J4 + Profit of job
J3 + Profit of job J5 + Profit of job J1
= 180 + 300 + 190 + 120 + 200
= 990 units
Time Complexity Analysis:
Time for sorting on basis of profits = O (n log n)
Next, two loops are used one within
the other, for which complexity = O (n^2)
Hence, the overall complexity of this algorithm
becomes O(n^2).
Program-
#include<iostream>
#include<algorithm>
using namespace std;
struct Job //stores details of each job
{ char id;
int dead;
int profit; };
bool comparison(Job a, Job b) //used in sorting acc. to profits
{ return (a.profit > b.profit); }
void printJobScheduling(Job arr[], int n)
{
sort(arr, arr+n, comparison);
int result[n];
bool slot[n];
for (int i=0; i<n; i++)
slot[i] = false;
for (int i=0; i<n; i++)
{ for (int j=min(n, arr[i].dead)-1; j>=0; j--)
{ if (slot[j]==false)
{ result[j] = i;
slot[j] = true;
break;
} } }
for (int i=0; i<n; i++)
if (slot[i])
cout << arr[result[i]].id << " ";
}
int main()
{
Job arr[] = { {'a', 5, 200}, {'b', 3, 180}, {'c', 3, 190}, {'d', 2, 300},
{'e', 4, 120}, {‘f’, 2, 100} };
int n = sizeof(arr)/sizeof(arr[0]);
cout << "Following is maximum profit sequence of jobs n";
printJobScheduling(arr, n);
return 0;
}
Job sequencing with Deadlines

More Related Content

PPTX
Job sequencing with deadline
PPTX
AI Based Personal Virtual Assistant
PPT
3.9 external sorting
PPTX
Quality Management System awareness for all
DOCX
Cake shop billing system
PPTX
Number system....
PPTX
Greedy Algorithm - Knapsack Problem
PPTX
Job sequencing with deadline
AI Based Personal Virtual Assistant
3.9 external sorting
Quality Management System awareness for all
Cake shop billing system
Number system....
Greedy Algorithm - Knapsack Problem

What's hot (20)

PPTX
The n Queen Problem
PPTX
Sum of subset problem.pptx
PPTX
Linked list
PPTX
Merge Sort
PPT
Branch and bound
PPT
Greedy algorithms
PPTX
queue & its applications
PPTX
daa-unit-3-greedy method
PPTX
Graph coloring using backtracking
PPTX
Daa unit 1
PPTX
Binary Tree Traversal
PPTX
8 queens problem using back tracking
PPTX
Traveling salesman problem
PPT
Complexity of Algorithm
PPTX
Counting Sort
PPT
Binary Search
PPTX
Asymptotic Notations
PPTX
Mathematical Analysis of Non-Recursive Algorithm.
DOC
Time and space complexity
PPTX
Code generation
The n Queen Problem
Sum of subset problem.pptx
Linked list
Merge Sort
Branch and bound
Greedy algorithms
queue & its applications
daa-unit-3-greedy method
Graph coloring using backtracking
Daa unit 1
Binary Tree Traversal
8 queens problem using back tracking
Traveling salesman problem
Complexity of Algorithm
Counting Sort
Binary Search
Asymptotic Notations
Mathematical Analysis of Non-Recursive Algorithm.
Time and space complexity
Code generation
Ad

Similar to Job sequencing with Deadlines (20)

PPTX
Job sequencing in Data Strcture
PPTX
data structures and algorithms Unit 4
PPTX
deadline.pptx
PPTX
Flowshop scheduling
PPTX
Algorithm
PPTX
Sequencing and shedulding problems for Operations management
PDF
Design analysis and algorithm topic Job sequencing with deadline.pdf
PPTX
Greedy method
PPTX
MATERIAL MANAGEMENT Job Shop Scheduling.pptx
PDF
Job shop scheduling
PPTX
Job Shop Scheduling.pptx
PPTX
Computational Thinking 11- ActivitySelection.pptx
PPT
job scheduling ppt DSA and DAA with theory
PPTX
Clock driven scheduling
PDF
Approximation Algorithms Part Two: More Constant factor approximations
PPT
9Johnson's Rule.ppt
PDF
Programación de operaciones (GTO) Ingeniería civil industrial
PPTX
Sequencing problem__2-machine-casePart-1.pptx
PDF
Operations Research_18ME735_module 5 sequencing notes.pdf
PDF
Chapter One.pdf
Job sequencing in Data Strcture
data structures and algorithms Unit 4
deadline.pptx
Flowshop scheduling
Algorithm
Sequencing and shedulding problems for Operations management
Design analysis and algorithm topic Job sequencing with deadline.pdf
Greedy method
MATERIAL MANAGEMENT Job Shop Scheduling.pptx
Job shop scheduling
Job Shop Scheduling.pptx
Computational Thinking 11- ActivitySelection.pptx
job scheduling ppt DSA and DAA with theory
Clock driven scheduling
Approximation Algorithms Part Two: More Constant factor approximations
9Johnson's Rule.ppt
Programación de operaciones (GTO) Ingeniería civil industrial
Sequencing problem__2-machine-casePart-1.pptx
Operations Research_18ME735_module 5 sequencing notes.pdf
Chapter One.pdf
Ad

Recently uploaded (20)

PPTX
Fundamentals of safety and accident prevention -final (1).pptx
PPTX
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
PPT
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
PDF
737-MAX_SRG.pdf student reference guides
PDF
Influence of Green Infrastructure on Residents’ Endorsement of the New Ecolog...
PPTX
"Array and Linked List in Data Structures with Types, Operations, Implementat...
PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PPTX
Software Engineering and software moduleing
PPTX
Module 8- Technological and Communication Skills.pptx
PPTX
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
PDF
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
PPT
Total quality management ppt for engineering students
PPTX
Amdahl’s law is explained in the above power point presentations
PDF
Improvement effect of pyrolyzed agro-food biochar on the properties of.pdf
PPTX
communication and presentation skills 01
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PDF
August -2025_Top10 Read_Articles_ijait.pdf
PDF
Visual Aids for Exploratory Data Analysis.pdf
PDF
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems
Fundamentals of safety and accident prevention -final (1).pptx
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
737-MAX_SRG.pdf student reference guides
Influence of Green Infrastructure on Residents’ Endorsement of the New Ecolog...
"Array and Linked List in Data Structures with Types, Operations, Implementat...
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
Software Engineering and software moduleing
Module 8- Technological and Communication Skills.pptx
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
Total quality management ppt for engineering students
Amdahl’s law is explained in the above power point presentations
Improvement effect of pyrolyzed agro-food biochar on the properties of.pdf
communication and presentation skills 01
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
August -2025_Top10 Read_Articles_ijait.pdf
Visual Aids for Exploratory Data Analysis.pdf
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems

Job sequencing with Deadlines

  • 2. Define- The sequencing of jobs on a single processor with deadline constraints is called as Job Sequencing with Deadlines. Here- • You are given a set of jobs. • Each job has a defined deadline and some profit associated with it. • The profit of a job is given only when that job is completed within its deadline.
  • 3. Assumptions- • Only one processor is available for processing all the jobs. • Processor takes one unit of time to complete a job. • Non-preemption is there. The problem states- “How can the total profit be maximized if only one job can be completed at a time?”
  • 4. Approach to Solution- • A feasible solution would be where each job in the subset gets completed within its deadline. • Value of the feasible solution would be the sum of profit of all the jobs contained in the subset. • An optimal solution of the problem would be a feasible solution which gives the maximum profit.
  • 5. Greedy Algorithm- Greedy Algorithm is adopted to determine how the next job is selected for an optimal solution. The greedy algorithm described in the next slide always gives an optimal solution to the job sequencing problem.
  • 6. Steps to solve- Step-01: •Sort all the given jobs in decreasing order of their profit. Step-02: •Check the value of maximum deadline. •Draw a Gantt chart where maximum time on Gantt chart is the value of maximum deadline. Step-03: •Pick up the jobs one by one. •Put the job on Gantt chart as far as possible from 0 ensuring that the job gets completed before its deadline.
  • 7. Jobs J1 J2 J3 J4 J5 J6 Deadlines 5 3 3 2 4 2 Profits 200 180 190 300 120 100 Example Problem- Given the jobs, their deadlines and associated profits as shown, answer the following questions- •Write the optimal schedule that gives maximum profit. •What is the maximum earned profit?
  • 8. Jobs J4 J1 J3 J2 J5 J6 Deadlines 2 5 3 3 4 2 Profits 300 200 190 180 120 100 Solution- Step1: Sort all the given jobs in decreasing order of their profit-
  • 9. Step2: Value of maximum deadline = 5. So, draw a Gantt chart with maximum time on Gantt chart = 5 units as shown- Now, • We take each job one by one in the order they appear in Step1. • We place the job on Gantt chart as far as possible from 0.
  • 10. Step3: •We take job J4. •Since its deadline is 2, so we place it in the first empty cell before deadline 2 as- Step4: •We take job J1. •Since its deadline is 5, so we place it in the first empty cell before deadline 5 as-
  • 11. Step5: •We take job J3. •Since its deadline is 3, so we place it in the first empty cell before deadline 3 as- Step6: •We take job J2. •Since its deadline is 3, so we place it in the first empty cell before deadline 3. •Since the second and third cells are already filled, so we place job J2 in the first cell as-
  • 12. Step7: •Now, we take job J5. •Since its deadline is 4, so we place it in the first empty cell before deadline 4 as- Now, • The only job left is job J6 whose deadline is 2. • All the slots before deadline 2 are already occupied. • Thus, job J6 can not be completed.
  • 13. The optimal schedule is- J2 , J4 , J3 , J5 , J1 This is the required order in which the jobs must be completed in order to obtain the maximum profit. Maximum earned profit = Sum of profit of all the jobs in optimal schedule = Profit of job J2 + Profit of job J4 + Profit of job J3 + Profit of job J5 + Profit of job J1 = 180 + 300 + 190 + 120 + 200 = 990 units
  • 14. Time Complexity Analysis: Time for sorting on basis of profits = O (n log n) Next, two loops are used one within the other, for which complexity = O (n^2) Hence, the overall complexity of this algorithm becomes O(n^2).
  • 15. Program- #include<iostream> #include<algorithm> using namespace std; struct Job //stores details of each job { char id; int dead; int profit; }; bool comparison(Job a, Job b) //used in sorting acc. to profits { return (a.profit > b.profit); } void printJobScheduling(Job arr[], int n) { sort(arr, arr+n, comparison); int result[n]; bool slot[n]; for (int i=0; i<n; i++) slot[i] = false;
  • 16. for (int i=0; i<n; i++) { for (int j=min(n, arr[i].dead)-1; j>=0; j--) { if (slot[j]==false) { result[j] = i; slot[j] = true; break; } } } for (int i=0; i<n; i++) if (slot[i]) cout << arr[result[i]].id << " "; } int main() { Job arr[] = { {'a', 5, 200}, {'b', 3, 180}, {'c', 3, 190}, {'d', 2, 300}, {'e', 4, 120}, {‘f’, 2, 100} }; int n = sizeof(arr)/sizeof(arr[0]); cout << "Following is maximum profit sequence of jobs n"; printJobScheduling(arr, n); return 0; }