Package | Description |
---|---|
org.cpsolver.studentsct |
Student Sectioning Solver.
|
org.cpsolver.studentsct.constraint |
Student Sectioning: Constraints.
|
org.cpsolver.studentsct.extension |
Student Sectioning: Various Extensions.
|
org.cpsolver.studentsct.model |
Student Sectioning: Model.
|
org.cpsolver.studentsct.online |
Online Student Sectioning Solver.
|
org.cpsolver.studentsct.online.expectations |
Student Sectioning Solver: Over-Expectation Criteria.
|
org.cpsolver.studentsct.online.selection |
Online Student Sectioning Solver: Selection Weights and Heuristics.
|
org.cpsolver.studentsct.report |
Student Sectioning: Various Reports.
|
org.cpsolver.studentsct.reservation |
Student Sectioning: Reservations.
|
Modifier and Type | Method and Description |
---|---|
protected Section |
StudentSectioningXMLLoader.loadSection(Element sectionEl,
Subpart subpart,
Map<Long,Section> sectionTable,
Map<Long,Placement> timetable)
Load section
|
Modifier and Type | Method and Description |
---|---|
void |
StudentSectioningModel.addLinkedSections(boolean mustBeUsed,
Section... sections)
Link sections using
LinkedSections |
void |
StudentSectioningModel.addLinkedSections(Section... sections)
Deprecated.
|
protected void |
StudentSectioningXMLSaver.saveSection(Element sectionEl,
Section section)
Save section
|
Modifier and Type | Method and Description |
---|---|
void |
StudentSectioningModel.addLinkedSections(boolean mustBeUsed,
Collection<Section> sections)
Link sections using
LinkedSections |
void |
StudentSectioningModel.addLinkedSections(Collection<Section> sections)
Deprecated.
|
protected Config |
StudentSectioningXMLLoader.loadConfig(Element configEl,
Offering offering,
Map<Long,Subpart> subpartTable,
Map<Long,Section> sectionTable,
Map<Long,Placement> timetable)
Load config
|
protected Reservation |
StudentSectioningXMLLoader.loadReservation(Element reservationEl,
Offering offering,
HashMap<Long,Config> configTable,
HashMap<Long,Section> sectionTable)
Load reservation
|
protected Restriction |
StudentSectioningXMLLoader.loadRestriction(Element restrictionEl,
Offering offering,
HashMap<Long,Config> configTable,
HashMap<Long,Section> sectionTable)
Load restriction
|
protected Section |
StudentSectioningXMLLoader.loadSection(Element sectionEl,
Subpart subpart,
Map<Long,Section> sectionTable,
Map<Long,Placement> timetable)
Load section
|
protected Subpart |
StudentSectioningXMLLoader.loadSubpart(Element subpartEl,
Config config,
Map<Long,Subpart> subpartTable,
Map<Long,Section> sectionTable,
Map<Long,Placement> timetable)
Load subpart
|
Modifier and Type | Method and Description |
---|---|
Set<Section> |
LinkedSections.getSections(Subpart subpart)
Return section (or sections) of a subpart of this link
|
Modifier and Type | Method and Description |
---|---|
static double |
SectionLimit.getEnrollmentWeight(Assignment<Request,Enrollment> assignment,
Section section,
Request request)
Enrollment weight of a section if the given request is assigned.
|
static double |
SectionLimit.getUnreservedSpace(Assignment<Request,Enrollment> assignment,
Section section,
Request request)
Remaining unreserved space in a section if the given request is assigned.
|
static boolean |
HardDistanceConflicts.inConflict(StudentQuality sq,
Section s1,
Section s2) |
static boolean |
HardDistanceConflicts.inConflict(StudentQuality sq,
Section s1,
Unavailability s2) |
Constructor and Description |
---|
LinkedSections(Section... sections)
Constructor
|
Constructor and Description |
---|
LinkedSections(Collection<Section> sections)
Constructor
|
Modifier and Type | Method and Description |
---|---|
Section |
DistanceConflict.Conflict.getS1()
First section
|
Section |
DistanceConflict.Conflict.getS2()
Second section
|
Modifier and Type | Method and Description |
---|---|
Iterator<Section> |
StudentQuality.Online.iterator() |
Modifier and Type | Method and Description |
---|---|
boolean |
StudentQuality.hasDistanceConflict(Student student,
Section s1,
Section s2) |
boolean |
DistanceConflict.inConflict(Student student,
Section s1,
Section s2)
Return true if the given two sections are in distance conflict.
|
protected boolean |
StudentQuality.Online.skip(Section section) |
Constructor and Description |
---|
Conflict(Student student,
Enrollment e1,
Section s1,
Enrollment e2,
Section s2)
Constructor
|
Modifier and Type | Method and Description |
---|---|
Section |
Section.getParent()
Parent section of this section (can be null).
|
Section |
Unavailability.getSection()
Section
|
Section |
CourseRequest.getSection(long sectionId)
Return section of the requested courses with the given id
|
Section |
Offering.getSection(long sectionId)
Return section of the given id, if it is part of one of this offering
configurations.
|
Modifier and Type | Method and Description |
---|---|
Set<Section> |
Choice.getParentSections()
List of parent sections of sections of the instructional offering which
represent this choice.
|
Set<Section> |
Choice.getSections()
List of sections of the instructional offering which represent this
choice.
|
Set<Section> |
Enrollment.getSections()
List of sections (only for course request)
|
List<Section> |
Subpart.getSections()
List of sections
|
Modifier and Type | Method and Description |
---|---|
int |
Section.compareTo(Assignment<Request,Enrollment> assignment,
Section s)
Compare two sections, prefer sections with lower penalty and more open
space
|
int |
Section.compareTo(Section s)
Compare two sections, prefer sections with lower penalty
|
double |
RequestGroup.getSectionSpread(Assignment<Request,Enrollment> assignment,
Section section)
Return section spread of this group.
|
double |
RequestGroup.RequestGroupContext.getSectionSpread(Section section)
Return section spread of this group.
|
double |
RequestGroup.getSectionWeight(Assignment<Request,Enrollment> assignment,
Section section,
Request excludeRequest)
Section weight -- weight of all requests which have an enrollment that
is of this request group and that includes the given section, excluding the given one.
|
double |
RequestGroup.RequestGroupContext.getSectionWeight(Assignment<Request,Enrollment> assignment,
Section section,
Request excludeRequest)
Section weight -- weight of all requests which have an enrollment that
is of this request group and that includes the given section, excluding the given one.
|
boolean |
CourseRequest.hasSelection(Section section)
Return true when the given section has a preference (i.e., there is a matching selection),
or when there is a section preference for a different configuration
|
boolean |
Student.isAvailable(Section section)
Check if student is available during the given section
|
boolean |
Choice.isMatching(Section section)
True if this choice is applicable to the given section (that is, the choice is a config choice or with the same subpart / instructional type)
|
boolean |
CourseRequest.isNotAllowed(Course course,
Section section)
Return true when there are restrictions for a course of this course request and the given section does not meet any of them
|
boolean |
CourseRequest.isRequired(Section section)
Return true when the given section is required (i.e., its choice is among required choices, or there are no requirements)
|
boolean |
CourseRequest.isSelected(Section section)
Return true when the given section is selected (i.e., its choice is among
selected choices)
|
boolean |
CourseRequest.isWaitlisted(Section section)
Return true when the given section is wait-listed (i.e., its choice is
among wait-listed choices)
|
boolean |
Choice.sameChoice(Section section)
True if the time assignment as well as the instructor(s) are the same
|
boolean |
Section.sameChoice(Section section)
True if the time assignment as well as the instructor(s) are the same
|
boolean |
Choice.sameConfiguration(Section section)
True if the configuration is the very same
|
boolean |
Choice.sameInstructionalType(Section section)
True if the instructional type is the same
|
boolean |
Section.sameInstructionalType(Section section)
True if the instructional type is the same
|
boolean |
Choice.sameInstructors(Section section)
True if the section contains all instructors of this choice
|
boolean |
Section.sameInstructors(Section section)
True if the instructor(s) are the same
|
boolean |
Choice.sameOffering(Section section)
True if the offering is the same
|
boolean |
Choice.sameSection(Section section)
True if the section is the very same
|
boolean |
Choice.sameSubart(Section section)
True if the subpart is the very same
|
boolean |
Choice.sameTime(Section section)
True if the time assignment is the same
|
boolean |
Section.sameTime(Section section)
True if the time assignment is the same
|
Constructor and Description |
---|
Choice(Section section)
Constructor
|
Section(long id,
int limit,
String name,
Subpart subpart,
Placement placement,
List<Instructor> instructors,
Section parent)
Constructor
|
Section(long id,
int limit,
String name,
Subpart subpart,
Placement placement,
Section parent,
Instructor... instructors)
Constructor
|
Section(long id,
int limit,
String name,
Subpart subpart,
Placement placement,
String instructorIds,
String instructorNames,
Section parent)
Deprecated.
|
Unavailability(Student student,
Section section,
boolean canOverlap)
Constructor
|
Modifier and Type | Class and Description |
---|---|
class |
OnlineSection
An online section.
|
Modifier and Type | Method and Description |
---|---|
double |
OnlineSectioningModel.getOverExpected(Assignment<Request,Enrollment> assignment,
Enrollment[] enrollment,
int index,
Section section,
Request request)
Expectation penalty, to be minimized
|
double |
OnlineSectioningModel.getOverExpected(Assignment<Request,Enrollment> assignment,
Section section,
Request request)
Expectation penalty, to be minimized (computed using
OverExpectedCriterion.getOverExpected(Assignment, Section, Request) ) |
Modifier and Type | Method and Description |
---|---|
protected Request |
Test.addRequest(Student student,
Student original,
Request request,
Map<Long,Section> classTable,
StudentSectioningModel model) |
protected Course |
Test.clone(Course course,
long studentId,
Student originalStudent,
Map<Long,Section> classTable,
StudentSectioningModel model) |
Constructor and Description |
---|
OnlineSection(long id,
int limit,
String name,
Subpart subpart,
Placement placement,
List<Instructor> instructors,
Section parent) |
OnlineSection(long id,
int limit,
String name,
Subpart subpart,
Placement placement,
String instructorIds,
String instructorNames,
Section parent)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
protected double |
PercentageOverExpected.getEnrollment(Assignment<Request,Enrollment> assignment,
Section section,
Request request)
Section enrollment (using
OnlineSection.getEnrollment() if applicable}, getEnrollmentWeight(Assignment, Request) otherwise) |
protected int |
PercentageOverExpected.getLimit(Section section)
Section limit (using
OnlineSection.getEnrollment() if applicable}, getLimit() otherwise) |
double |
FractionallyOverExpected.getMaximum(Section section)
Maximum, section limit if not set
|
double |
FractionallyUnbalancedWhenNoExpectations.getMaximum(Section section,
double defaultValue)
Get maximum
|
double |
MinimizeConflicts.getOverExpected(Assignment<Request,Enrollment> assignment,
Enrollment[] enrollment,
int index,
Section section,
Request request) |
double |
OverExpectedCriterion.HasContext.getOverExpected(Assignment<Request,Enrollment> assignment,
Enrollment[] enrollment,
int index,
Section section,
Request request)
Expectation penalty, to be minimized
|
double |
AvoidUnbalancedWhenNoExpectations.getOverExpected(Assignment<Request,Enrollment> assignment,
Section section,
Request request) |
double |
FractionallyOverExpected.getOverExpected(Assignment<Request,Enrollment> assignment,
Section section,
Request request) |
double |
FractionallyUnbalancedWhenNoExpectations.getOverExpected(Assignment<Request,Enrollment> assignment,
Section section,
Request request) |
double |
MinimizeConflicts.getOverExpected(Assignment<Request,Enrollment> assignment,
Section section,
Request request) |
double |
NeverOverExpected.getOverExpected(Assignment<Request,Enrollment> assignment,
Section section,
Request request) |
double |
OverExpectedCriterion.getOverExpected(Assignment<Request,Enrollment> assignment,
Section section,
Request request)
Expectation penalty, to be minimized
|
double |
PenaltyNotNegative.getOverExpected(Assignment<Request,Enrollment> assignment,
Section section,
Request request) |
double |
PercentageOverExpected.getOverExpected(Assignment<Request,Enrollment> assignment,
Section section,
Request request) |
Modifier and Type | Field and Description |
---|---|
protected Hashtable<CourseRequest,Set<Section>> |
SuggestionSelection.iPreferredSections |
protected Hashtable<CourseRequest,Hashtable<Subpart,Section>> |
SuggestionSelection.iRequiredSection |
Modifier and Type | Method and Description |
---|---|
protected Set<Section> |
OnlineSectioningCriterion.getPreferredSections(Request request) |
Modifier and Type | Method and Description |
---|---|
int |
SuggestionsBranchAndBound.EnrollmentSectionComparator.compare(Section a,
Section b) |
int |
SuggestionsBranchAndBound.SectionAssignmentComparator.compare(Section a,
Section b) |
boolean |
SuggestionsBranchAndBound.EnrollmentSectionComparator.isParent(Section s1,
Section s2)
Is section s1 parent of section s2 (or a parent of a parent...)
|
boolean |
SuggestionsBranchAndBound.SuggestionFilter.match(Course course,
Section section)
Match the given section
|
static boolean |
ResectioningWeights.sameChoice(Section section,
Choice choice) |
boolean |
ResectioningWeights.LastSectionProvider.sameLastChoice(Section current)
Check the choice (see
Choice ) |
boolean |
ResectioningWeights.LastSectionProvider.sameLastName(Section current,
Course course)
Check section name (external id)
|
boolean |
ResectioningWeights.LastSectionProvider.sameLastRoom(Section current)
Check the room
|
boolean |
ResectioningWeights.LastSectionProvider.sameLastTime(Section current)
Check the time
|
static boolean |
ResectioningWeights.sameName(Long courseId,
Section s1,
Section s2) |
static boolean |
ResectioningWeights.sameRooms(Section s,
List<RoomLocation> rooms) |
static boolean |
ResectioningWeights.sameTime(Section s,
TimeLocation t) |
Modifier and Type | Method and Description |
---|---|
void |
MultiCriteriaBranchAndBoundSelection.setPreferredSections(Hashtable<CourseRequest,Set<Section>> preferredSections) |
void |
OnlineSectioningSelection.setPreferredSections(Hashtable<CourseRequest,Set<Section>> preferredSections)
Set preferred sections
|
void |
SuggestionSelection.setPreferredSections(Hashtable<CourseRequest,Set<Section>> preferredSections) |
void |
MultiCriteriaBranchAndBoundSelection.setRequiredSections(Hashtable<CourseRequest,Set<Section>> requiredSections) |
void |
OnlineSectioningSelection.setRequiredSections(Hashtable<CourseRequest,Set<Section>> requiredSections)
Set required sections
|
void |
SuggestionSelection.setRequiredSections(Hashtable<CourseRequest,Set<Section>> requiredSections) |
Constructor and Description |
---|
MultiCriteriaBranchAndBoundSuggestions(DataProperties properties,
Student student,
Assignment<Request,Enrollment> assignment,
Hashtable<CourseRequest,Set<Section>> requiredSections,
Set<FreeTimeRequest> requiredFreeTimes,
Hashtable<CourseRequest,Set<Section>> preferredSections,
Request selectedRequest,
Section selectedSection,
SuggestionsBranchAndBound.SuggestionFilter filter,
double maxSectionsWithPenalty,
boolean priorityWeighting)
Constructor
|
SuggestionsBranchAndBound(DataProperties properties,
Student student,
Assignment<Request,Enrollment> assignment,
Hashtable<CourseRequest,Set<Section>> requiredSections,
Set<FreeTimeRequest> requiredFreeTimes,
Hashtable<CourseRequest,Set<Section>> preferredSections,
Request selectedRequest,
Section selectedSection,
SuggestionsBranchAndBound.SuggestionFilter filter,
double maxSectionsWithPenalty)
Constructor
|
Modifier and Type | Method and Description |
---|---|
Section |
CourseSection.getSection()
Class
|
Constructor and Description |
---|
CourseSection(Course course,
Section section)
Constructor
|
Modifier and Type | Method and Description |
---|---|
Map<Subpart,Set<Section>> |
Reservation.getSections()
One or more sections on which the reservation is set (optional).
|
Map<Subpart,Set<Section>> |
Restriction.getSections()
One or more sections on which the restriction is set.
|
Set<Section> |
Reservation.getSections(Subpart subpart)
One or more sections on which the reservation is set (optional).
|
Set<Section> |
Restriction.getSections(Subpart subpart)
One or more sections on which the restriction is set (optional).
|
Modifier and Type | Method and Description |
---|---|
void |
Reservation.addSection(Section section) |
void |
Restriction.addSection(Section section)
Add a section (of the offering
Restriction.getOffering() ) to this restriction. |
void |
Reservation.addSection(Section section,
boolean inclusive)
Add a section (of the offering
Reservation.getOffering() ) to this reservation. |
boolean |
Restriction.isIncluded(Section section) |