-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathexaminationSolverConfig.xml
More file actions
84 lines (82 loc) · 4.24 KB
/
Copy pathexaminationSolverConfig.xml
File metadata and controls
84 lines (82 loc) · 4.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?xml version="1.0" encoding="UTF-8"?>
<solver xmlns="https://timefold.ai/xsd/solver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://timefold.ai/xsd/solver https://timefold.ai/xsd/solver/solver.xsd">
<!-- To slowly prove there are no bugs in this code -->
<!--<environmentMode>FULL_ASSERT</environmentMode>-->
<!-- To solve faster by saturating multiple CPU cores -->
<!--<moveThreadCount>AUTO</moveThreadCount>-->
<enablePreviewFeature>DECLARATIVE_SHADOW_VARIABLES</enablePreviewFeature>
<solutionClass>ai.timefold.solver.benchmarks.examples.examination.domain.Examination</solutionClass>
<entityClass>ai.timefold.solver.benchmarks.examples.examination.domain.Exam</entityClass>
<entityClass>ai.timefold.solver.benchmarks.examples.examination.domain.LeadingExam</entityClass>
<entityClass>ai.timefold.solver.benchmarks.examples.examination.domain.FollowingExam</entityClass>
<scoreDirectorFactory>
<constraintProviderClass>
ai.timefold.solver.benchmarks.examples.examination.score.ExaminationConstraintProvider
</constraintProviderClass>
<initializingScoreTrend>ONLY_DOWN</initializingScoreTrend>
</scoreDirectorFactory>
<termination>
<minutesSpentLimit>5</minutesSpentLimit>
</termination>
<constructionHeuristic>
<queuedEntityPlacer>
<entitySelector id="placerEntitySelector">
<entityClass>ai.timefold.solver.benchmarks.examples.examination.domain.Exam</entityClass>
<cacheType>PHASE</cacheType>
<selectionOrder>SORTED</selectionOrder>
<sorterManner>DECREASING_DIFFICULTY</sorterManner>
</entitySelector>
<cartesianProductMoveSelector>
<changeMoveSelector>
<entitySelector mimicSelectorRef="placerEntitySelector"/>
<valueSelector variableName="period">
<downcastEntityClass>ai.timefold.solver.benchmarks.examples.examination.domain.LeadingExam
</downcastEntityClass>
<cacheType>PHASE</cacheType>
<!--<selectionOrder>SORTED</selectionOrder>-->
<!--<sorterManner>INCREASING_STRENGTH</sorterManner>-->
</valueSelector>
</changeMoveSelector>
<changeMoveSelector>
<entitySelector mimicSelectorRef="placerEntitySelector"/>
<valueSelector variableName="room">
<cacheType>PHASE</cacheType>
<selectionOrder>SORTED</selectionOrder>
<sorterManner>INCREASING_STRENGTH</sorterManner>
</valueSelector>
</changeMoveSelector>
</cartesianProductMoveSelector>
</queuedEntityPlacer>
</constructionHeuristic>
<localSearch>
<unionMoveSelector>
<cartesianProductMoveSelector>
<changeMoveSelector>
<entitySelector id="cartesianProductEntitySelector">
<entityClass>ai.timefold.solver.benchmarks.examples.examination.domain.Exam</entityClass>
</entitySelector>
<valueSelector variableName="room"/>
</changeMoveSelector>
<changeMoveSelector>
<entitySelector mimicSelectorRef="cartesianProductEntitySelector"/>
<valueSelector variableName="period">
<downcastEntityClass>ai.timefold.solver.benchmarks.examples.examination.domain.LeadingExam
</downcastEntityClass>
</valueSelector>
</changeMoveSelector>
</cartesianProductMoveSelector>
<swapMoveSelector>
<entitySelector>
<entityClass>ai.timefold.solver.benchmarks.examples.examination.domain.LeadingExam</entityClass>
</entitySelector>
</swapMoveSelector>
</unionMoveSelector>
<acceptor>
<entityTabuSize>10</entityTabuSize>
</acceptor>
<forager>
<acceptedCountLimit>2000</acceptedCountLimit>
</forager>
</localSearch>
</solver>