Intelligent Emergency-Auto-Adjustment For Faculty: Name of The Candidates
Intelligent Emergency-Auto-Adjustment For Faculty: Name of The Candidates
By
(section: K18RD)
(Roll Numbers: 24,31,37,38)
Student Declaration
This is to declare that this report has been written by us. No part of the
report is copied from other sources. All information included from other
sources have been duly acknowledged. I/We aver that if any part of the
report is found to be copied, we shall take full responsibility for it.
1. INTRODUCTION
2.ABSTRACT
3.PROBLEMS
4.COLLISIONS
5.CONTRAINS
6.CODE
7.TESTING AND RESULT
8.USE
INTRODUCTION
It is basically a Timetable generator for university schedules when few
faculty members are on leave. This program is implemented in Python
using genetic algorithms.
The class timetabling problem is a scheduling algorithm with great
interest and implications in the fields of operational research and
artificial intelligence. The problem was first studied by Gotlieb, who
formulated a class-teacher timetabling problem by considering that each
lecture contained one group of students and one teacher, such that the
combination of teacher and students can be chosen freely. Dynamic
changes in the context of timetabling problems, had started to be studied
at. A survey of existing approaches to dynamic scheduling can be found
in. Because of the size of the real problem, almost all effective solutions
are heuristic in nature, and do not guarantee optimality. Among the
well-known results there are that deal with various cases of the problem
settings. While setting a timetable, importance is given to effective
utilization of resources such as the classroom, the teacher, etc.` This
becomes a very tedious task which needs to be addressed at least once a
year by every academic institute. Most institutes deal with this problem
manually, i.e. a trial and error method are used to set a timetable.
ABSTRACT
This project implements one of possible solutions for generating
university schedules. The proposed solution is based on methods of
evolutionary computing, uses (1+1) evolutionary strategy and simulated
hardening.
The success of a solution is estimated on fulfillment of given constraints
and criteria. Results of testing the algorithm show that all hard
constraints are satisfied, while additional criteria are optimized to a
certain extent.
This paper proposes a general solution for the School timetabling
problem. Most heuristic proposed earlier approaches the problem from
the students’ point of view.
This solution, however, works from the teachers’ point of view i.e.
teacher availability for a given time slot. While all the hard constraints
(e.g. the availability of teachers, etc.) are resolved rigorously, the
scheduling solution presented in this paper is an adaptive one, with a
primary aim to solve the issue of clashes of lectures and subjects,
pertaining to teachers. Index Terms— timetabling, scheduling,
operational research, artificial intelligence, heuristic.
PROBLEMS
The assignment is to find a generic solution that will facilitate generating
schedules for the university.
Each class on faculty is represented as a block (lasts an arbitrary number
of hours, mostly from 1 to 4). For conducting every class required are
the teacher, classroom, start time, duration and groups which attend the
class. It is also known in advance which groups attend which class and
all classrooms are the same size (each group can fit to a classroom).
Teaching is done on faculty from 9AM until 5PM on each workday.
Input data is the classroom and time for each class. Time is determined
by day (Monday to Friday) and the start of the class.
COLLISION
There is a possibility that teacher availability for a subject may be at a
slot where another subject sj is allocated. Under such a situation, if sj is
not present in the output data structure, sj is moved into a Clash data (i.e.
no more free time slots are available), the Clash data structure is
revisited and an effort is made to allocate the subjects in it to an
available time slot in the day. If, however, it is not possible to allocate
any/all the subjects in the Clash data structure, these subjects are moved
to the Day_Clash data structure. When the sequence for the next day is
generated preference is given to the subjects under Day_Clash.
CONSTRAINTS
Note: under the term "same time" is not meant only at the beginning of
the class, it should be considered the duration of the class. If the resource
is busy at the moment T1 and the class lasts t1, then the resource can
only be re-occupied at the moment T2 = T1 + t1.
2. Class should take place in one of the allowed classrooms
3. If the subject has several forms of teaching, the preferred order for
each group is the lectures, exercises, and laboratory exercises.
Constraints 1 and 2 must be met, while the 3rd limit is "soft" and
allowed to be violated.
Additional criteria for estimating solution (used also for cost function):
CODE
import sys
import string
def loginCall(username,Pass):
Password=open("Main//pass.txt",'r')
Login=False
st=i.rstrip()
tempPass=st.split()
if len(tempPass)==0:
continue
Login=True
return Login
#Starting interface
trialLeft=3
while(trialLeft):
break
else:
trialLeft-=1
print("trialLeft: ",trialLeft)
if(trialLeft==0):
sys.exit()
#Main interface
print("Welcome! {}".format(username))
schedule=open("Student_Timetable//K18RD.txt",'r')
timeTable=[]
print(i)
tempTimeTable=i.split()
continue
timeTable.append(tempTimeTable)
schedule.close()
file=open("Student_Timetable//{}.txt".format(username),'r')
print(i)
TimeSlots=[]
fh=open("Student_Timetable//{}.txt".format(username),'r')
tempArr=k.split()
if len(tempArr)==0:
continue
if tempArr[0]==Day:
fh.close()
Teachers=['Teacher_A','Teacher_B','Teacher_C','Teacher_D','Teacher_E']
TeacherAvailable=[]
if i==username:
continue
fh=open("Faculty_Timetable//{}.txt".format(i),'r')
tempArr=k.split()
if len(tempArr)==0:
continue
if tempArr[0]==Day:
if tempArr[p]=='B':
TeacherAvailable.append([tempArr.count('O'),p,i])
fh.close()
#Check for any left timeSlots
count=0
if i[1]==x:
count+=1
break
if len(TeacherAvailable)==0:
sys.exit()
elif count!=len(TimeSlots):
sys.exit()
#Choose Teacher for adjustment according to less workload on teacher that day
TimeSlotsDic={1:'9-10',2:'10-11',3:'11-12',4:'12-1',5:'1-2',6:'2-3',7:'3-4',8:'4-5'}
TeacherAssigned=[]
workload=[]
for t in TeacherAvailable:
if t[1]==i:
workload.append([t[0],t[1],t[2]])
workload.sort(reverse=True)
TeacherAssigned.append([workload[0][1],workload[0][2]])
print("\nTeacher for Adjustments for {0} slot from {1} with least Workload:
".format(Day,TimeSlotsDic[i]),workload[0][2])
TeacherAssigned.sort()
schedule=open("Student_Timetable//K18RD.txt",'r')
leave=open("Student_Timetable//LEAVE.txt", 'w')
if len(TeacherAssigned)==1:
line=i.replace(username,TeacherAssigned[0][1],1)
leave.write(line)
continue
elif len(TeacherAssigned)==2:
line=i.replace(username,TeacherAssigned[0][1],1).replace(username,TeacherAssigned[1][1
],1)
leave.write(line)
continue
leave.write(i)
schedule.close()
leave.close()
leave=open("Student_Timetable//LEAVE.txt", 'r')
print(i)
leave.close()
print("\n\n\t\t\t\t\t\t\t\t\t\tAdjustement Successful")
Certified that this project report “Intelligent Emergency-Auto-Adjustment for Faculty” is the
bonafide work of “ Abhishek singh,Kaluvakolu Sai kumar reddy, Narvade Yash Sandeep, Kilaru
Deekshita” who carried out the project work under my supervision.
Assistant Professor