1. Engineering
  2. Computer Science
  3. suppose that you are scheduling a room you are given...

Question: suppose that you are scheduling a room you are given...

Question details

Suppose that you are scheduling a room. You are given a group of activities each of which has a start
and stop time. Two activities are compatible if they do not overlap (one activity finishes before another
one starts). For example, in the following activities, activity A is compatible with activities B and D but
not activity C:


Activity Start Time Stop time
A 1 2
B 2 5
C 1 3
D 5 6


The room has a start time and an end time in which it is available.
Your goal is to write a recursive method to schedule compatible activities that result in the maximum
usage of the room. The usage of the room is defined as the total duration of the scheduled activities,
that is, the sum of (stop time – start time) for all the activities scheduled to run in the room.
For example suppose that the start time and end time in which the room is available is [1,7] for the
above table. Hence, the possible schedules are:
1. Activities A, B,D: with room usage = (2-1)+(5-2) +(6-5) = 5
2. Activities C, D: with room usage = (3-1)+(6-5) = 2
3. Activities A,D: with room usage (5-2)+(6-5) =4
4. Activities A, B: with room usage (2-1)+(5-2)= 4
5. Activities B, D: with room usage (5-2)+(6-5) = 4
Therefore, the set of activities {A,B,D} gives the optimal schedule with the maximum room usage.

What you need to do:
1- Create a class Activitiy.java with three data fields : activityName, startTime, and stopTime . Create accessor (get) and mutator (set) methods for each data field.
2- Create a class Scheduling.java with the following method in it:


public Activity[] getOptimalSchedule( int roomStartTime, int roomEndtime, Activity[] activities)


This method gets the availability span of the room as well as a set of activities to choose from and returns an optimal schedule i.e., a selected set of non-overlapping activities that can be scheduled to run in the room and gives the maximum possible usage of the room. Note, depending on your input, the correct answer may not be unique (that is, there might be several valid schedules with the same total room usage)

Solution by an expert tutor
Blurred Solution
This question has been solved
Subscribe to see this solution