Java project: Solve Timetable Problem w/ Genetic Algorithm

Here's a similar project with source code in C++ [url removed, login to view]

I think it will be easier, if you use an existing library for GA. e.g. JGAP. I am open to other suggestions.

Coding style: Use comments in order to make it easier for me to understand the code.

Note: I've opened a duplicate of this project with Ruby (my preference) instead of Java. I will only initiate the project with the most promising bidding.



In order to solve the course timetable problem for a university department, we have to allocate its classes in a number of slots. Each slot represents a specific point in time & space (hour and classroom). Number of slots is days*hours*rooms. E.g. 5 days, 12 hours per day, 30 rooms => 1800 slots. My suggestion (not requirement) is that the Genotype/Chromosome should be represented either as a '1 dimension array' or as a '3 dimension array'.

CourseClass holds a reference to the course to which the class belongs, a reference to the professor who teaches. It also stores how many seats (number of students expected to attend) are needed in the classroom, if the class requires computers in the classroom, and the duration of the class in hours (optional).

Note: In my description of the problem there is no need to reference student groups. Also, whenever I mention 'class' I refer to 'CourseClass'.

Hard constrains

- A class can be placed only in a spare classroom.

- No professor can have more then one class at a time.

- A classroom must have enough seats to accommodate all students.

- To place a class in a classroom, the classroom must meet the requirements of that class e.g. have laboratory equipment, such as computers.

ATTENTION: It's not absolutely necessary, for this project, to implement all the stuff below this point. Of course we'll agree beforehand, what exactly you are going to work on. (I actually am not sure whether all these stuff are hard/time consuming/expensive or easy)

Have the ability:

- To assign a different number of hours for every class e.g. 1,2 or 3 (hard constrain).

- To associate/allocate pairs of classes/slots (permanently == read only) before running the GA.

- To exclude certain slots altogether. These will be used for classes of the other university departments.

Soft requirements (can be broken, but the schedule is still feasible):

- The personal preferences (for certain slots) by each professor.

- My desire to have certain classes close with one another (or the opposite).

- It's better that every professor teaches for no more or less than e.g. 4 hours per day.

- The fewer gaps (empty hours) between classes the better.

The app should take into account these soft constrains, try to enforce them, and use them, along with the hard constrains, to determine the fitness of any given Genotype/Chromosome. I think one way to implement the constrains, is to keep, for every CourseClass, its own reference to the slots it is allowed to associate with. This reference should be sorted by preference and have the ability to change with every new generation of the population.


- Have the ability to use the final product in order to test different strategies in GA, and generate reports comparing them. Different strategies == different configurations: try every possible combination of supplied, applicable Genetic Operators (Selection, Mutation, Crossover) and test different values (e.g. mutation rate).

One way to do it, is to provide for me, a separate, executable file for each different configuration you have prepared. Another way is to allow me to change the configuration during runtime.


- Using the console & text files for input & output it's ok, 100% acceptable. I wouldn't mind having a simple GUI but it's a low priority that I can do without.

If you mention a comment or question about the project, I'll know you took the time to read the description. Thank you!

Kemahiran: Java

Lihat lagi: what's an algorithm, what's algorithm, what is the algorithm, what is new in java 1.5, what is a personal reference, what is an algorithm in computers, what is an algorithm, what is algorithm, what is a algorithm, what an algorithm, what algorithm, use algorithm, university place library, time in ga, test algorithm, selection problem, problem algorithm, priority algorithm in c, population of java, mind array, making an algorithm, make algorithm, java project work, java population, how to use algorithm

Tentang Majikan:
( 0 ulasan ) Palestinian Territory

ID Projek: #10113422

10 pekerja bebas membida secara purata $31/jam untuk pekerjaan ini


Hello I'm interesting your project very well I'm a Good C++, Java, Math, Algorithm expert. I understand your req exactly. I m quite well experienced in these jobs. Let's go ahead with me I want to service for Lagi

$26 USD / jam
(102 Ulasan)

Hello, Sir Weebside Inc. is a professional freelancer service provided to worthy clients like you. We can provide our best developers to provide you High-Quality Product with 100% Delivery Rate, 100% Satisfaction. Lagi

$25 USD / jam
(196 Ulasan)

I am an IITK graduate, 9 year experienced software professional and I have got top notch developers in my team, who have got experience across a span of technologies. The members in my team have worked with top notch t Lagi

$55 USD / jam
(14 Ulasan)

Hi, I'm Abhijit Mondal from Bangladesh and my background is in Computer Science and Engineering at Bangladesh University of Engineering and Technology. I am an expert Java and Android developer and I have 5 years of Lagi

$33 USD / jam
(8 Ulasan)

Hello. I'm software engineer and i'm expert developer of java in data structures, algorithms, oop, game programming, multi threading and GUI. I have developed similar programs and can do this project for you. Please di Lagi

$25 USD / jam
(13 Ulasan)
$27 USD / jam
(11 Ulasan)

Dear Sir, How are you? I hope you are fine I will implement the solution on java, actually ism computer science engineer and such problems are very interesting to me also i take a look about the C++ code and Lagi

$27 USD / jam
(13 Ulasan)

Thank you for viewing my profile you can check have 5***/5*** also have 100% complete rate you can check happy customer. always trying to get customer satisfaction. I have gone through your project requirement Lagi

$25 USD / jam
(16 Ulasan)

I am an senior Java developer and I have coped with several projects, both small and more complex ones. I have a very strong academic background in algorithms and complexity, information systems and in software devel Lagi

$25 USD / jam
(1 Ulasan)
$41 USD / jam
(0 Ulasan)