Course Scheduling in University Using Agent Exploration in Timetable Media
Course Scheduling in University Using Agent Exploration in Timetable Media
AbstractCourse scheduling in University is still a study area that is interesting for researchers to explore and search its optimization
[4]. Scheduling optimization still depends on the needs of a University. Manual scheduling is still the most commonly used option, but it
requires a skilled and expert person or person who has been accustomed to do so. However, the result still needs a lot of corrections.
Course scheduling in College/University in Indonesia using semester credit system (SKS) is a challenge in making course sched ule. Some
scheduling methods have been proposed in several studies such as genetic methods [10], integer programming [1] and other methods
using other agents [2] [7]. In the previous studies, the generated schedules must still be adjusted and or inflexible when th ere are changes
in the schedule or its pattern, and its model cannot be applied to all Colleges/Universities in Indonesia using semester credit system (SKS).
This study offers a method which is referring to the constrains/conditions in Universities but still flexible in its formation and change. Agent
will explore timetable media to locate time cell/slot corresponding to the scheduling using credit system (SKS).
Index TermsAgent Exploring, Schedule, Timetable Media, Rules, Conditions
1. INTRODUCTION Timetable media exploration method will make
course scheduling manually. All conditions used in
Course scheduling is still an interesting thing for
making schedule will be agent behaviors, thus, it is
researcher to study its optimization [4]. The complexity
expected that problems in remembering conditions that
of course scheduling depends on the number of
constrains/conditions to be met. Each College has its are carried out manually can be overcome. The results
own conditions/rules in making schedule. Such using media exploration schedule by agent will be close
rules/conditions will make the method for making or equal to the optimization conducted manually.
schedule slightly different. Those rules/conditions will
change into constrains/rules in making course 2. RELATED WORK
schedules.
There have been many studies conducted by
Schedule resources such as room and timing will be researchers to identify the optimization in course
things that affect the making of course schedule to scheduling. Various methods have been used to
comply with the conditions. The lack of rooms to be formulate the course scheduling. Genetic Algorithm
used in the course schedule will make the course (GA) is one of the most popular methods in finding an
schedule more complex. Similarly, if available timing in optimization, including for course scheduling. One of
the form of everyday time shift/slot is inadequate, it techniques using GA is by changing course schedule
will cause that not all conditions can be met. components into chromosome, and then, sub-
chromosome, and finally, mod-chromosome [10].
Manually course scheduling is still regarded as the Integer Programming is also one of methods that
most optimal method, thus, many convert course schedule components into numbers 1
Colleges/Universities still apply it; or the results of and 0, in order to obtain the optimal combination in the
automatic method will be adjusted manually. Manual course scheduling [1]. However, a mathematical
scheduling requires personnel having the required method mentioned earlier is used to obtain the most
expertise or persons who have done it for many times optimal combination in order to place the course
and know how to make course schedule in each schedule component according to the applied
semester. Considering that all conditions that must be conditions. These methods are effective in generating
applied to the course scheduling should be done for course schedule but some adjustments are still needed
each schedule component to be scheduled, the problem and it will inflexible when there is a change in the
will be the accuracy when it is done manually.
2016, IJCERT All Rights Reserved Page | 112
Jamaludin Hakim et al., International Journal of Computer Engineering In Research Trends
Volume 3, Issue 3, March-2016, pp. 112-118
course schedules. In case of any adjustments or changes used. If the hard constrain cannot be met then the
in the course schedule, all schedule components will be schedule cannot be used. Hard constrain usually
rearranged, thus, the unchanged or unmoved schedule consists of three items:
components will still be affected by these changes.
a. A lecturer cannot be scheduled more than once
Agent has been used in some studies related to at the same time period
scheduling. In the scheduling for transportation, agent
b. A classroom cannot be scheduled more than
will act as operator confirming the passenger pick-up
and carrying in taxi scheduling in real time scheduling one course at the same time period
[3]. From these studies, agent is assigned to replace the c. Students at same level/semester cannot be
role of taxi operator. On the activities in factories, scheduled at the same time period.
agents can also be assigned to manage resources to be
used[8]. Agent has replaced the human roles but it did Sometimes, at the time of making course schedule, a
not has ability as human in regulating. For the case of College/University has rules or regulations other than
room booking in hospital, agent will replace the role of the hard constrains that govern lecturers, use of
receptionist to arrange the booking order and the use of classroom, and the students in the course scheduling.
rooms in surgery and post-surgery process [6]. The generated schedule will meet the users desire,
which means that it is optimal from the perspective of
In the same case, agent is used for exam scheduling. the users if it can comply with the conditions from the
Schedule is arranged for students in a university to be University. These conditions are called as soft constrains.
present in different semester exams. Schedule shall be Some examples of soft constrains that are generally
set in such a way so that students will not have more exist in College/Universities in Indonesia are:
than one exam at the same time [7]. This technique does
not use time slot referring to the semester credit system a. Lecturers are not scheduled consecutively in one
(SKS) SKS in which each SKS is allocated with 50 day, there is a lag time between one course with
minutes in classroom, on the other hand, the use of the other, in order to give opportunity to break or
Utility-Base-Agent-System is less optimal in many prepare materials for the next class.
spread time slots. In Tambuk University, multi-agent b. A room can only be scheduled twice
system is used to form a pattern of course type to be consecutively, to give opportunity for arranging
scheduled [2]. This technique has not been able to or cleaning the room.
accommodate course scheduling with SKS models, in
addition, this modeling cannot be applied to the c. Students at the same level/semester should not be
courses in Indonesia. scheduled more than three times in one day
carried out section by section from the media schedule. 5. Checking whether any lecturers who teach two
Agent does not directly check all parts of its timetable times respectively, if lecturers are found to be
media/environment. Section by section check if for scheduled at a position before the agent cell for all
efficiency in the condition checking. Based on agent rooms, then the agent will move to other shift
checking activities carried out to some cells of timetable vertically (h,s++, r), if the lecturers cell is found after
media, the type of agent used is Simple-Reflex-Agent the current agent position as much as total
[9]. Agent only reacts to the conditions faced at that weight/credits for all rooms, then the agent will
time and takes action in accordance with the move shift as much weight/credits course plus one
rules/conditions. (h, s+credits/bbt +1, r), if it is already in its final
position shift, it will move to other day (d++, s, r)
3.4. gent Exploration Algorithm
Agent exploration will be carried out from cell to cell in
timetable media starting from the initial cell. Cells on
media schedule will be marked with day, shift and
room (d,s,r). The initial cell will be marked with 1,1,1
which means that the course is on cell of first day
(Monday), first shift, and first room. The movement of
agent in exploring timetable media is determined by
the conditions and provisions that must be executed.
Room/ horizontal movement will add room value (d, s,
r ++), shift/vertical movement will add shift value (d, s
++, r), and day/vertical movement will add day value
(d++, s, r).
Course will be placed by agent on the timetable
media based on credits of the course. Course having
three credits will occupy three shifts vertically, as well
as courses having two credits. The course placement in
the cells of timetable media will refer to the course
placement algorithm that are adjusted with the
conditions. The course placement flow is depicted in
Figure 4.
Agent will execute condition by conditions owned
by agent if it is in the particular cell position. Each
constrain will experience with a condition of being met
or not. If being met, agent will check the next
conditions. If it is not met then the agent will move to
other cell in accordance with the existing condition,
whether it only moves to other room, switch to other
room or move to other day. Here are the criteria for
condition and agent movement:
Fig. 4. Agent Exploration Flow
1. Checking room capacity, if the room capacity does
not match, then, it will be moved to the next room
(d, s, r++) Based on constrains and agent movement, the
2. Checking the possible/empty rooms, if following methods can be formed:
impossible/not empty, then it will move to other Agent movement
room (d,s,r++) MoveRoom(room);
3. Checking lectures who teach for all rooms as much {
as the weight/credits, if a lecturer was found in one ifroom=maxroom thenroom=1;
room for all shifts as much as weight/credits, then roomroom++;
the agent will move to other shift/cell vertically as return room;
much as weight/credits of the current agent }
position (d,s+credits/bbt,r).
4. Checking student semester/level, if the same MoveShift(shift, credit);
student semester/level is found in all rooms as {
much as the course weight/credits, then agent will localday;
move to the next shift vertically as much as course ifshift=maxshiftthen
weight/credits (d, s+credits/bbt, r) {
shift=1;
MoveDay(day); returnlecresult;
} }
Shiftshift+credit;
returnshift; CourseLevel(day, shift, room, sublev)
} as boolean;
{
MoveDay(day); localsublevresultasboolean;
{ local sublevstatasstring;
ifday=maxdaythenday=1;
dayday++; sublevstat search for course
returnday; level/semester in cell starting from
} (day, shift, room) until the end room
(roomax) as much as course
Constrains weight/credits (shift++ as much
weight/credits);
ifsublevstat =
RoomCapacity(day, shift, room,cap) sublevthensublevresultfalse
asboolean; elsesublevresulttrue;
{ returnsublevresult;
localroomcapasstring; }
localcapresultas boolean;
LecTeach(day, shift, room, idlec)
roomcaptaking room capacity in asboolean;
position (day, shift, room); {
ifroomcap=capthencapresulttruee Locallectearesultasboolean;
lsecapresultfalse; locallecteastatasstring;
returncapresult;
} Lecteastatsearch for lecture
code at the beginning of shift before
RoomAvailable(day, shift, room) the current shift (day, shift--, room)
asboolean; until the end room and return to the
{ room before this shift;
localroomresultas boolean; iflecteastat =
localroomstatas string; idlecthenlecstearesultfalse
else
roomstattaking room volume in {
position (day, shift, room); Lecteastat = empty;
ifroomstat = Lecteastat searching for
emptythenroomresult false lecture code in shift position after
elseroomresulttrue; the current shift is added with weight
returnroomresult; (shif+weight+1), until the end room and
} return to the room before this shift;
iflecteastat =
idlecthenlectearesultfalse
LecturerAvailable(day, shift, room, elselecteastattrue;
idlec) asboolean; }
{ returnlectearesult;
locallecresultasboolean; }
locallecstatasstring;