We have a list of teachers List <Teacher>, the list of educational groups List <Group>, the list of rooms List <Room>, also we have a week which it is in two-dimensional array Boolean [7] [24] if their value is true these working hours, if false – NOT working. Such «the array of time» is stored for each teacher and group. In addition to it we have mapping List <EducationalRelationship> - what teacher to what group in what quantity of hours teaches this week.
The task consists in making the optimal schedule for the set operating time of algorithm, i.e. we can transfer to algorithm time of its operation in milliseconds. Thus at once to time the teacher cannot carry on lessons for many groups, the group in at one time cannot have many teachers (i.e. lessons) and in the room simultaneously there cannot be some lessons.
It is necessary to develop algorithm so that it was possible to bring additional limitations in it, for example «there should not be holes in the group schedule» and-or «math cannot be more than once in day» and-or «the Physics should be the coupled lesson», etc.
It is desirable to result algorithm in Java with a set of tests that it was possible to estimate its efficiency.
Aforementioned classes and the interface which is necessary for realizing:
class Teacher {
Long id;
String name;
Boolean[7][24] workTime;
}
class Group {
Long id;
String name;
Boolean[7][24] workTime;
}
class Room {
Long id;
String name;
}
class EducationalRelationship {
Teacher teacher;
Group group;
Integer hours;
}
class TimetableDetail {
// day index from time-array
int dayIndex;
// hour index from time-array
int hourIndex;
Teacher teacher;
Group group;
Room room;
}
interface TimetableGenerator {
List<TimetableDetail> generateTimetable(List<Teacher> teacherList, List<Group> groupList, List<Room> roomList, List<EducationalRelationship> eduList, long time);
}
Presumably this task can dare with usage of Genetic Algorithms [login to view URL]
Write me! There can be you can make not everything but only a part – bid too!
PS If you want to read this task in russian - see the attachment.
Hi,
I am an experienced C++ programmer who has worked on many optimization algorithms, including TSP, simulated annealing etc.
I have graduated from Indian Institute of Science Bangalore and have worked on the mentioned problem as part of my course assignment also.
I can do your interesting application in 5 days time, in C++ and it will be well tested. Kindly let me know the detailed requirement specification if my bid suits you.
Sourabh
I would love to do this interesting project. I can complete it in a short time and to a very high quality. Feel free to PM me for details of my previous experience.
i can do your job in java..in the past i hav developed codes for many optimization algorithms such as GA, PSO etc...can do your problem in very short time