weekdaze-0.0.0.3: A school-timetable problem-solver.

Safe HaskellNone
LanguageHaskell2010

WeekDaze.Input.Options

Contents

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION
  • Defines all configured options.
  • These options are categorised into those which; define the problem, drive the implementation of the solution, & govern the required output; & consequently, most of this module's interface merely proxies requests to the appropriate sub-module.
Synopsis

Types

Type-synonyms

type ShowLocationViewOfTimetable = Bool Source #

Defines whether the timetable should be shown, from the point-of-view of each location.

type ShowTeacherViewOfTimetable = Bool Source #

Defines whether the timetable should be shown, from the point-of-view of each teacher.

Data-types

data Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Defines the command-line options.

Constructors

MkOptions 

Fields

Instances
(Eq fecundityDecayRatio, Eq populationDiversityRatio, Eq criterionWeight, Eq minimumContrastRatio, Eq timeslotId, Eq locationId, Eq campus, Eq teacherId, Eq level, Eq synchronisationId, Eq teachingRatio, Eq stream) => Eq (Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId) Source # 
Instance details

Defined in WeekDaze.Input.Options

Methods

(==) :: Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId -> Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId -> Bool #

(/=) :: Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId -> Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId -> Bool #

(Show fecundityDecayRatio, Show populationDiversityRatio, Show criterionWeight, Show minimumContrastRatio, Show timeslotId, Show locationId, Show campus, Show teacherId, Show synchronisationId, Show level, Show teachingRatio, Show stream) => Show (Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId) Source # 
Instance details

Defined in WeekDaze.Input.Options

Methods

showsPrec :: Int -> Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId -> ShowS #

show :: Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId -> String #

showList :: [Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId] -> ShowS #

(Default campus, Default stream, Eq campus, Eq stream, Fractional criterionWeight, Fractional fecundityDecayRatio, Fractional minimumContrastRatio, Fractional populationDiversityRatio, XmlPickler campus, XmlPickler criterionWeight, XmlPickler fecundityDecayRatio, XmlPickler level, XmlPickler locationId, XmlPickler minimumContrastRatio, XmlPickler populationDiversityRatio, XmlPickler stream, XmlPickler synchronisationId, XmlPickler teacherId, XmlPickler teachingRatio, XmlPickler timeslotId, Ord fecundityDecayRatio, Ord level, Ord locationId, Ord minimumContrastRatio, Ord populationDiversityRatio, Ord synchronisationId, Ord teacherId, Ord timeslotId, Real criterionWeight, Real teachingRatio, Show campus, Show criterionWeight, Show fecundityDecayRatio, Show level, Show minimumContrastRatio, Show populationDiversityRatio, Show synchronisationId, Show timeslotId) => XmlPickler (Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId) Source # 
Instance details

Defined in WeekDaze.Input.Options

Methods

xpickle :: PU (Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId) #

(Enum timeslotId, Num fecundityDecayRatio, Num populationDiversityRatio, Ord fecundityDecayRatio, Ord level, Ord locationId, Ord populationDiversityRatio, Ord stream, Ord synchronisationId, Ord teacherId, Ord timeslotId, Real criterionWeight, RealFrac teachingRatio, Show criterionWeight, Show fecundityDecayRatio, Show level, Show locationId, Show minimumContrastRatio, Show populationDiversityRatio, Show stream, Show synchronisationId, Show teacherId, Show teachingRatio, Show timeslotId) => SelfValidator (Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId) Source # 
Instance details

Defined in WeekDaze.Input.Options

Methods

getErrors :: Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId -> [String] #

isValid :: Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId -> Bool #

(Enum timeslotId, Eq criterionWeight, Num criterionWeight, Ord campus, Ord level, Ord synchronisationId, Ord teacherId, Ord timeslotId, RealFrac teachingRatio, Show level, Show synchronisationId, Show teacherId, Show timeslotId) => Configuration (Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId) Source # 
Instance details

Defined in WeekDaze.Input.Options

Methods

issueWarnings :: Options campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId -> [String] Source #

Constants

Functions

Mutators

appendOutputStudentViewTimetableFilePath :: Show minimumContrastRatio => FilePath -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setDisplayRuntimeInformation :: DisplayRuntimeInformation -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

  • Mutator.
  • Sets displayRuntimeInformation in all XHTML-formats.

setFecundityDecayRatio :: fecundityDecayRatio -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setInputStudentViewTimetableFilePath :: FilePath -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setMaybeNInitialScouts :: Maybe NTimetables -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setMaybeOutputConfigFilePath :: Maybe FilePath -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setMaybeRandomSeed :: Maybe RandomSeed -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setMinimumPopulationDiversityRatio :: populationDiversityRatio -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setNDecimalDigits :: NDecimalDigits -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setOptimiseLessonCriteriaWeights :: OptimiseLessonCriteriaWeights criterionWeight -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setPermitTemporaryStudentBodyMerger :: Num criterionWeight => PermitTemporaryStudentBodyMerger -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

  • Mutator.
  • Other options are dependent on this one, & so are also toggled. If this is inappropriate, then they can always be toggled back, by a separate request.

setReduceStudentBodyRegister :: ReduceStudentBodyRegister -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setRemoveRedundantCourses :: RemoveRedundantCourses -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

setTimeslotIdBounds :: (Enum timeslotId, Num criterionWeight) => Interval timeslotId -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

  • Mutator.
  • As a side-effect various criteria-weights may be turned-off, because the concepts to which they relate, don't exist until there're sufficient time-slots per day.

setVerbosity :: Verbosity -> Mutator campus criterionWeight fecundityDecayRatio level locationId minimumContrastRatio populationDiversityRatio stream synchronisationId teacherId teachingRatio timeslotId Source #

Mutator.

zeroInappropriateExecutionOptions Source #

Arguments

:: (Enum timeslotId, Eq criterionWeight, Num criterionWeight, Ord campus, Ord level, Ord synchronisationId, Ord timeslotId, RealFrac teachingRatio) 
=> Bool

Whether to zero non-critical weights, or merely those that must be zeroed to avoid generating an error.

-> ProblemParameters campus level locationId stream synchronisationId teacherId teachingRatio timeslotId 
-> ExecutionOptions criterionWeight fecundityDecayRatio populationDiversityRatio

Initial value.

-> (ExecutionOptions criterionWeight fecundityDecayRatio populationDiversityRatio, (([String], [String]), [String]))

Transformed evolution-strategies, & the tags of zeroed ((lesson-criteria weights, timetable-criteria weights), evolution-strategy fecundities).

  • Zeroes the weight of each lesson-criterion & timetable-criterion, & the fecundity of each evolution-strategy, which is either inappropriate for, or irrelevant to, the specified problem-parameters.
  • Logs the affected tags.