https://github.com/huchenlei/course-arrange
Arrange(Schedule) courses with given constraints
https://github.com/huchenlei/course-arrange
Last synced: 6 months ago
JSON representation
Arrange(Schedule) courses with given constraints
- Host: GitHub
- URL: https://github.com/huchenlei/course-arrange
- Owner: huchenlei
- License: mit
- Created: 2018-03-30T19:18:11.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-05-15T07:19:36.000Z (over 7 years ago)
- Last Synced: 2025-03-28T19:53:38.743Z (7 months ago)
- Language: TypeScript
- Homepage:
- Size: 45.9 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Course Arrange
Arrange(Schedule) courses with given constraints.## Components
### `Course.ts`
Defines object models for course.
Each course can have multiple components i.e. Lecture, Tutorial, Lab, etc.
For each component, there are different sections to choose from.
For each section, there are often more than one time slot,
e.g. there are 3 lectures a week for a certain section.### `Constraint.ts`
Defines common constraints used to evaluate the solution. User can also
extend the base class `Constraint` to have their own constraint definition.### `Solver.ts`
Core component. Defines the Solver to solve for optimum results. There
are currently two type of solver:
- `ExhaustiveSolver`: Search for every possible solution and choose the
best one. Report failure directly if the possible solution set is too large
- `StepHeuristicSolver`: For each component sequence, advance search step by
step, by choosing the most promising solution(incomplete solution with
highest score), until finding enough solutions.## Current Issues
- `StepHeuristicSolver` still have implicit bugs
- Need to develop a more efficient solver algorithm
- Need more test-case for the performance and correctness for solvers
---
#### Please contact [me](https://huchenlei.github.io) directly if you would like to be part of this project