项目作者: vinnik-dmitry07

项目描述 :
Timetable scheduling using genetic algorithms
高级语言: Python
项目地址: git://github.com/vinnik-dmitry07/GenSchedule.git
创建时间: 2021-02-23T22:30:56Z
项目社区:https://github.com/vinnik-dmitry07/GenSchedule

开源协议:

下载


Gen Schedule

Timetable scheduling using genetic algorithms.

Steps

  1. Fill:

    1. C1 = 1 # uniformity
    2. C2 = 1 # tightness
    3. C3 = 1 # suitability
    4. C4 = 0.1 # sleep
    5. C5 = 1 # day_grouping
    6. C6 = 1 # week_grouping
    7. CLASSES_PER_DAY = 4
    8. WORKING_DAYS = 5
    9. PLACES = CLASSES_PER_DAY * WORKING_DAYS
    10. SUBJECTS = [
    11. Subject(name='AG', numbers={SubjectType.LECTURE: 1, SubjectType.SEMINAR: 2}),
    12. Subject(name='MA', numbers={SubjectType.LECTURE: 2, SubjectType.SEMINAR: 2}),
    13. Subject(name='PR', numbers={SubjectType.LECTURE: 1, SubjectType.SEMINAR: 1}),
    14. Subject(name='EN', numbers={SubjectType.LECTURE: 0, SubjectType.SEMINAR: 3}),
    15. Subject(name='DM', numbers={SubjectType.LECTURE: 1, SubjectType.SEMINAR: 1}),
    16. ]
    17. SUITABLE_TIME = {
    18. WeekDay.MON: {1: ['AG'], 2: [], 3: [], 4: []},
    19. WeekDay.TUE: {1: ['MA'], 2: ['PR'], 3: ['PR'], 4: []},
    20. WeekDay.WED: {1: ['AG'], 2: ['AG'], 3: ['MA'], 4: []},
    21. WeekDay.THU: {1: ['DM'], 2: ['EN'], 3: ['MA', 'EN'], 4: []},
    22. WeekDay.FRI: {1: ['MA'], 2: ['DM'], 3: [], 4: []}
    23. }
  2. Run

  3. Receive:

    1. gen nevals avg std min max
    2. 0 300 2.91481 0.291041 1.7581 3.69857
    3. 1 189 3.09384 0.208402 2.2381 3.69857
    4. 2 171 3.20138 0.212053 2.43392 3.69857
    5. 3 186 3.24289 0.225741 2.2781 3.69857
    6. 4 179 3.28457 0.232168 1.93117 3.69857
    7. 5 187 3.30843 0.244352 2.46857 3.71857
    8. 6 179 3.35342 0.245704 2.32952 3.80623
    9. ...
    10. 499 187 4.1657 0.045359 3.68714 4.17143
    11. 500 166 4.15778 0.0618725 3.68714 4.17143
    12. MON:
    13. 1)
    14. 2) MA SEMINAR
    15. 3) MA SEMINAR
    16. 4) DM LECTURE
    17. TUE:
    18. 1)
    19. 2) PR LECTURE
    20. 3) AG SEMINAR
    21. 4) AG SEMINAR
    22. WED:
    23. 1)
    24. 2) AG LECTURE
    25. 3) MA LECTURE
    26. 4) MA LECTURE
    27. THU:
    28. 1)
    29. 2) EN SEMINAR
    30. 3) EN SEMINAR
    31. 4) EN SEMINAR
    32. FRI:
    33. 1)
    34. 2) DM SEMINAR
    35. 3) PR SEMINAR
    36. 4)

EZ.