Skip to main content

A time table scheduler using Genetic algorithm(s).

Project description

GeneticTabler

DeepSource

Time Table scheduling using genetic algorithm.

Developed by Dipan Nanda and Ashish Shah (c) 2021

Example of Usage

from genetictabler import GenerateTimeTable

total_classes = 6
no_courses = 6
slots = 6
total_days = 7
daily_repetition = 3

"""
Variable Definitions:

:param total_classes: It is the count of total number of timetables you want. 
                      Suppose If you 4 batches/student groups for CS freshmen
                      all studying the same courses/modules/subjects you can 
                      generate 4 different yet coherent yet timetables without 
                      having any clashes.

:param no_courses: It is the count of total number of courses/modules/subjects 
                   that a class or classes are going to be taught. For example 
                   if a class is going to be taught only maths, physics, 
                   chemistry and CS then total count will be 4.

:param slots: It is the count of total lectures that are to be scheduled each 
              day. 

:param total_days: It is the count of total number of days for which you want 
                   to schedule the timetable. For example a weekly timetable 
                   will have total 5/6 days. A monthly schedule can be of 25 
                   days.

:param daily_repetition: It is the maximum allowed number of times a 
                         course/subject/module can have lectures per day. It 
                         is used when the slots count is more than no_courses.
                         
Note:- The table returned by the above function call is a 3-dimensional 
list/array. Which is a list of timetables for each class which in itself are 
2d arrays.
"""

table = GenerateTimeTable(total_classes, no_courses, slots, total_days, daily_repetition)
for single_table in table.run():
    for days in single_table:
        print(days)
    print("-----------------------------------")

Changelog

Go here to checkout the complete changelog.

License

This is under BSD 3 Clause License

License: BSD

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genetictabler-2.0.3.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

genetictabler-2.0.3-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file genetictabler-2.0.3.tar.gz.

File metadata

  • Download URL: genetictabler-2.0.3.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for genetictabler-2.0.3.tar.gz
Algorithm Hash digest
SHA256 75e2fae2838d5c0a15796b6a02cf15304a8bdd598ebf72c8048155616121161a
MD5 e8ea59b66e256ebe9df7512ec4225bc6
BLAKE2b-256 aa1408323e2cbaa54988ad8f54c11d2b57cede8c6e82ac63287c23671c8ed2d6

See more details on using hashes here.

File details

Details for the file genetictabler-2.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for genetictabler-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 22df486b87bcfdc47e5a412c3487c742d9177342bdcad14ea8e093b1e6ce6c76
MD5 83518206e44fa3e97e04570ab489e77d
BLAKE2b-256 7452326925182155c1a7ee108db576540940ddb66fb92e581795f9e35d72d5b1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page