-
Notifications
You must be signed in to change notification settings - Fork 0
3. Models
Marc Romeyn edited this page Jul 20, 2015
·
1 revision
In this section we describe the data schema of the algorithm. Most of the input is immutable as the actual assignment is based only on references. The data has a hierarchical structure. Each instance of the algorithm deals with one course at a time, and each course is a separate run of the solver.
type Course = {
jobId: Int,
settings: Settings,
endpoints: Endpoints,
students: List[Student],
groups: List[Group],
skills: List[String], // optional
weights: {
maximallyDiverse: Float, // optional
evenlySkilled: Float, // optional
friendsAndFoes: Float, // optional
groupPreferences: Float // optional
} // optional
}type Settings = {
iterations: Int, // optional,
initialMoves: Int, // optional,
startingPoints: Int, // optional,
tabuSize: Int, // optional,
diverse: Boolean // optional
}type Endpoints = {
success: String, // URL
failure: String // URL
}type Student = {
id: Int,
name: String, // optional
mandatory: Boolean, // optional
skills: Map{String => Float}, // optional
weights: {
friendsAndFoes: Float, // optional
groupPreferences: Float // optional
}, // optional
preferences: Map{Int => Float}, // optional
friends: List[Int], // optional
foes: List[Int] // optional
}type Group = {
id: Int,
minSize: Int,
maxSize: Int,
mandatory: Boolean, // optional
name: String, // optional
skills: List[String] // optional
}