NEP -DAA -DESIGN AND ANALYSIS OF ALOGRITHM

PROGRAM 1 PROGRAM 2 PROGRAM 3 PROGRAM 4 PROGRAM 5 PROGRAM 6 PROGRAM 7 PROGRAM 8 PROGRAM 9 PROGRAM 10 PROGRAM 11 PROGRAM 12

PART B

PROGRAM B1 PROGRAM B2 PROGRAM B3 PROGRAM B4 PROGRAM B5 PROGRAM B6 PROGRAM B7 PROGRAM B8 . . .

5.

 
  
 
 # Function to perform job sequencing with deadlines using a greedy algorithm
job_sequencing <- function(jobs) {
  # Sort jobs in descending order of profit
  jobs <- jobs[order(-jobs$profit), ]

  max_deadline <- max(jobs$deadline)
  sequence <- rep(0, max_deadline)
  selected_jobs <- vector("list", length = max_deadline)
  total_profit <- 0

  for (i in 1:nrow(jobs)) {
    current_job <- jobs[i, ]
    current_deadline <- current_job$deadline
    while (current_deadline >= 1) {
      if (sequence[current_deadline] == 0) {
        sequence[current_deadline] <- i
        selected_jobs[[current_deadline]] <- current_job
        total_profit <- total_profit + current_job$profit
        break
      }
      current_deadline <- current_deadline - 1
    }
  }

  result <- list(
    sequence = sequence,
    selected_jobs = selected_jobs,
    total_profit = total_profit
  )

  return(result)
}

# Example usage
jobs_data <- data.frame(
  job = c("J1", "J2", "J3", "J4", "J5"),
  deadline = c(2, 1, 2, 1, 3),
  profit = c(60, 100, 20, 40, 80)
)

result <- job_sequencing(jobs_data)

cat("Job Sequence: ", unlist(result$sequence), "\n")
cat("Total Profit: ", result$total_profit, "\n")