## General ## --------------------------------------------------------------- ## Problem name General.ProblemName=purdue General.ProblemNameLong=Purdue University Large Lecture Room Timetabling ## Seed for random number generator #General.Seed=13031978 ## Save configuration (these properties) in file ${General.Output}/${General.ProblemName}.properties General.SaveConfiguration=true ## Save default values for undefined properties as well (if General.SaveConfiguration is true) General.SaveDefaultProperties=true ## Auto configuration mode (do not change!) Solver.AutoConfigure=true ## Minimal number of unassigned variables to save best solution found (-1 always save) General.SaveBestUnassigned=-1 ## General -- I/O ## --------------------------------------------------------------- # Loader class TimetableLoader=net.sf.cpsolver.coursett.TimetableXMLLoader ## Save output, into database (new version is created) if General.InputVersion is used, into output folder otherwise General.Save=true # Saver class TimetableSaver=net.sf.cpsolver.coursett.TimetableXMLSaver ## General -- Other ## --------------------------------------------------------------- ## Minimal perturbation problem General.MPP=false ## Number of forced perturbances (for testing purposes only) General.ForcedPerturbances=0 ## Use distance constraints General.UseDistanceConstraints=true ## Use random walk (if false, Lecture.RandomWalkProb and Placement.RandomWalkProb is ignored) General.RandomWalk=true ## Switch student between sections General.SwitchStudents=true ## Use input solution as initial assignments General.InitialAssignment=false ## Post auto diff_time constraints General.AutoDiffTime=true ## Extensions ## --------------------------------------------------------------- ## Extensions -- semicolon separated list of appropriate classes ## net.sf.cpsolver.ifs.extension.ConflictStatistics -- conflict statistics ## net.sf.cpsolver.ifs.extension.ViolatedInitials -- computation of violated initial values (for MPP) ## net.sf.cpsolver.ifs.extension.MacPropagation -- dynamic maintenance of arc consistency Extensions.Classes=net.sf.cpsolver.ifs.extension.ConflictStatistics ## Extensions - Conflict Statistics ## --------------------------------------------------------------- ## Ageing (koef) ConflictStatistics.Ageing=1.0 ## Ageing -- half time (number of iteration) -- use either ConflictStatistics.Ageing or ConflictStatistics.AgeingHalfTime #ConflictStatistics.AgeingHalfTime=0 ## Department Spreading (Balancing times for departments) ## --------------------------------------------------------------- ## Use this feature General.UseDepartmentSpreadConstraints=false ## Initial allowance of the slots for a particular time (factor) ## Allowed slots = ROUND(SpreadFactor * (number of requested slots / number of slots per day)) DepartmentSpread.SpreadFactor=1.2 ## Increase the initial allowance when it causes the given number of unassignments DepartmentSpread.Unassignments2Weaken=100 ## Perturbations counter ------------------------------------------------------------------ ## Perturbations counter class PerturbationCounter.Class=net.sf.cpsolver.coursett.heuristics.UniversalPerturbationsCounter ## Perturbations counter -- weights ------------------------------------------------------------------ ## Different value than initial is assigned Perturbations.DifferentPlacement=0.0 ## Number of students which are enrolled in a class which is placed to a different location than initial ## (a student can be included twice or more) Perturbations.AffectedStudentWeight=0.0 ## Number of instructors which are assigned to classes which are placed to different locations than initial ## (an instructor can be included twice or more) Perturbations.AffectedInstructorWeight=1.0 ## Number of classes which are placed to a different room than initial Perturbations.DifferentRoomWeight=0.0 ## Number of classes which are placed to a different building than initial Perturbations.DifferentBuildingWeight=0.0 ## Number of classes which are placed in a different time than initial Perturbations.DifferentTimeWeight=0.0 ## Number of classes which are placed in a different days than initial Perturbations.DifferentDayWeight=2.0 ## Number of classes which are placed in a different hours than initial Perturbations.DifferentHourWeight=2.0 ## Difference of student conflicts of classes assigned to current placements instead of initial placements ## It is a difference between number of students conflicts which are in the initial solution and the current one ## Student conflicts created by classes without initial placement are not taken into account Perturbations.DeltaStudentConflictsWeight=0.1 ## New created student conflicts -- particular students are taken into account ## Student conflicts created by classes without initial placement are not taken into account Perturbations.NewStudentConflictsWeight=0.0 ## New placement of a class is too far from the intial placement (instructor-wise) ## It is computed only when the class has an instructor assigned, moreover: ## 0 < distance(currentPlacement,initialPlacement) <= 5 .. weight is taken once ## 5 < distance(currentPlacement,initialPlacement) <= 20 .. weight is taken twice ## 20 < distance(currentPlacement,initialPlacement) .. weight is taken ten times Perturbations.TooFarForInstructorsWeight=0.5 ## New placement of a class is too far from the intial placement (instructor-student) ## It is weighted by the number of students enrolled in the class when ## distance(currentPlacement,initialPlacement) > 67 Perturbations.TooFarForStudentsWeight=0.0 ## Difference between number of instructor distance preferences of the initial ## (but maybe inconsistent) solution and the current solution ## Instructor distance preferences of classes without initial placement are not taken into account Perturbations.DeltaInstructorDistancePreferenceWeight=1.0 ## Difference between room preferences of the initial and the current solution ## Room preferences of classes without initial placement are not taken into account Perturbations.DeltaRoomPreferenceWeight=0.1 ## Difference between time preferences of the initial and the current solution ## Time preferences of classes without initial placement are not taken into account Perturbations.DeltaTimePreferenceWeight=0.1 ## Number of students which are enrolled in a class which is placed to a different time than initial Perturbations.AffectedStudentByTimeWeight=0.05 ## Number of instructors which are assigned to classes which are placed to different time than initial Perturbations.AffectedInstructorByTimeWeight=0.0 ## Number of students which are enrolled in a class which is placed to a different room than initial Perturbations.AffectedStudentByRoomWeight=0.0 ## Number of instructors which are assigned to classes which are placed to different room than initial Perturbations.AffectedInstructorByRoomWeight=0.0 ## Number of students which are enrolled in a class which is placed to a different building than initial Perturbations.AffectedStudentByBldgWeight=0.0 ## Number of instructors which are assigned to classes which are placed to different building than initial Perturbations.AffectedInstructorByBldgWeight=0.0 ## Termination ## --------------------------------------------------------------- ## Termination class Termination.Class=net.sf.cpsolver.ifs.termination.MPPTerminationCondition ## Minimal allowed number of perturbances (-1 not use) Termination.MinPerturbances=-1 ## Maximal number of iteration Termination.MaxIters=-1 ## Maximal solver time (in sec) Termination.TimeOut=1800 ## Stop computation when a complete solution is found Termination.StopWhenComplete=false ## If both Termination.MaxIters and Termination.TimeOut are -1, solver stops after a first complete solution is found ## Solution Comparator ## --------------------------------------------------------------- ## Solution comparator class Comparator.Class=net.sf.cpsolver.coursett.heuristics.TimetableComparator ## Weight of hard student conflict Comparator.HardStudentConflictWeight=1.0 ## Weight of student conflict Comparator.StudentConflictWeight=0.2 ## Time preferences weight Comparator.TimePreferenceWeight=1.0 ## Constraint preferences weight Comparator.ContrPreferenceWeight=0.0 ## Room preferences weight Comparator.RoomPreferenceWeight=0.2 ## Useless slots weight Comparator.UselessSlotWeight=0.05 ## Too big room weight Comparator.TooBigRoomWeight=0.05 ## Distance (of the rooms of the ongoing classes) based instructor preferences weight Comparator.DistanceInstructorPreferenceWeight=1.0 ## Perturbation penalty Comparator.PerturbationPenaltyWeight=0.0 ## Department balancing Comparator.DeptSpreadPenaltyWeight=0.5 ## Lecture selection ## --------------------------------------------------------------- ## Lecture selection class Variable.Class=net.sf.cpsolver.coursett.heuristics.LectureSelection ## Unassign a lecture when there is a variable with no good values (MAC related) Lecture.UnassignWhenNotGood=false ## Probability of selection of a good value (MAC related) Lecture.GoodValueProb=1.0 ## Selection among unassigned lectures ## Roulette wheel selection Lecture.RouletteWheelSelection=true ## Random walk probability Lecture.RandomWalkProb=1.0 ## Domain size weight Lecture.DomainSizeWeight=30.0 ## Number of assignments weight Lecture.NrAssignmentsWeight=10.0 ## Initial assignment weight Lecture.InitialAssignmentWeight=20.0 ## Number of constraint weight Lecture.NrConstraintsWeight=0.0 ## Selection among assigned lectures ## Hard student conflict weight Lecture.HardStudentConflictWeight=%Comparator.HardStudentConflictWeight% ## Student conflict weight Lecture.StudentConflictWeight=%Comparator.StudentConflictWeight% ## Time preference weight Lecture.TimePreferenceWeight=%Comparator.TimePreferenceWeight% ## Constraint preference weight Lecture.ContrPreferenceWeight=%Comparator.ContrPreferenceWeight% ## Room preference weight Lecture.RoomPreferenceWeight=%Comparator.RoomPreferenceWeight% ## Useless slot weight Lecture.UselessSlotWeight=%Comparator.UselessSlotWeight% ## Too big room weight Lecture.TooBigRoomWeight=%Comparator.TooBigRoomWeight% ## Distance (of the rooms of the ongoing classes) based instructor preferences weight Lecture.DistanceInstructorPreferenceWeight=%Comparator.DistanceInstructorPreferenceWeight% ## Department balancing Lecture.DeptSpreadPenaltyWeight=%Comparator.DeptSpreadPenaltyWeight% ## Selection among subset of lectures (faster) Lecture.SelectionSubSet=true ## Minimal subset size Lecture.SelectionSubSetMinSize=10 ## Subset size in percentage of all lectures available for selection Lecture.SelectionSubSetPart=0.2 ## Placement selection ## --------------------------------------------------------------- ## Placement selection class Value.Class=net.sf.cpsolver.coursett.heuristics.PlacementSelection ## Random walk probability Placement.RandomWalkProb=0.00 ## Good value selection probability (MAC related) Placement.GoodSelectionProb=1.0 ## Tabu-list length (-1 means do not use tabu-list) Placement.TabuLength=-1 ## MPP initial selection probability Placement.MPP_InitialProb=0.50 ## MPP limit (-1 for no limit) Placement.MPP_Limit=-1 ## Limit of the perturbations penalty (-1 for no limit) Placement.MPP_PenaltyLimit=-1.0 ## Placement selection -- Level 1 ## --------------------------------------------------------------- ## Number of assifnment weight Placement.NrAssignmentsWeight1=0.0 ## Number of conflicts weight Placement.NrConflictsWeight1=1.0 ## Weighted conflicts weight (Conflict Statistics related) Placement.WeightedConflictsWeight1=1.0 ## Number of potential conflicts weight (Conflict Statistics related) Placement.NrPotentialConflictsWeight1=0.0 ## Delta initial assigments weight (MPP, violated initials related) Placement.MPP_DeltaInitialAssignmentWeight1=0.0 ## Hard student conflicts weight Placement.NrHardStudConfsWeight1=0.2 ## Student conflicts weight Placement.NrStudConfsWeight1=0.05 ## Time preference weight Placement.TimePreferenceWeight1=0.0 ## Time preference delta weight Placement.DeltaTimePreferenceWeight1=0.2 ## Constraint preference weight Placement.ConstrPreferenceWeight1=0.0 ## Room preference weight Placement.RoomPreferenceWeight1=0.0 ## Useless slot weight Placement.UselessSlotsWeight1=0.0 ## Too big room weight Placement.TooBigRoomWeight1=0.0 ## Distance (of the rooms of the ongoing classes) based instructor preferences weight Placement.DistanceInstructorPreferenceWeight1=0.1 ## Department spreading: penalty of when a slot over initial allowance is used Placement.DeptSpreadPenaltyWeight1=0.2 ## Threshold koeficient Placement.ThresholdKoef1=0.1 ## Placement selection -- Level 2 ## --------------------------------------------------------------- Placement.NrAssignmentsWeight2=0.0 Placement.NrConflictsWeight2=0.0 Placement.WeightedConflictsWeight2=0.0 Placement.NrPotentialConflictsWeight2=0.0 Placement.MPP_DeltaInitialAssignmentWeight2=0.0 Placement.NrHardStudConfsWeight2=1.0 Placement.NrStudConfsWeight2=0.2 Placement.TimePreferenceWeight2=1.0 Placement.DeltaTimePreferenceWeight2=0.0 Placement.ConstrPreferenceWeight2=0.0 Placement.RoomPreferenceWeight2=0.2 Placement.TooBigRoomWeight2=0.05 Placement.UselessSlotsWeight2=0.05 Placement.DistanceInstructorPreferenceWeight2=1.0 Placement.DeptSpreadPenaltyWeight2=2.0 Placement.ThresholdKoef2=0.0 ## Placement selection -- Level 3 ## --------------------------------------------------------------- Placement.NrAssignmentsWeight3=0.0 Placement.NrConflictsWeight3=0.0 Placement.WeightedConflictsWeight3=0.0 Placement.NrPotentialConflictsWeight3=0.0 Placement.MPP_DeltaInitialAssignmentWeight3=0.0 Placement.NrHardStudConfsWeight3=0.0 Placement.NrStudConfsWeight3=0.0 Placement.TimePreferenceWeight3=0.0 Placement.DeltaTimePreferenceWeight3=0.0 Placement.ConstrPreferenceWeight3=0.0 Placement.UselessSlotsWeight3=0.0 Placement.RoomPreferenceWeight3=0.0 Placement.TooBigRoomWeight3=0.0 Placement.DistanceInstructorPreferenceWeight3=0.0 Placement.DeptSpreadPenaltyWeight3=0.0 Placement.ThresholdKoef3=0.0