-
Notifications
You must be signed in to change notification settings - Fork 0
/
config-example.yaml
67 lines (65 loc) · 4.05 KB
/
config-example.yaml
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
baseUrl: http://example.com:4555 # CLI tools will use that base url to retrieve info from the API
personsfile: persons.yaml
monitoringFile: taula.html # file to dump the partial solutions in, for monitoring
hangoutChannel: 'EwCesKUaJZ1yCpn3R4J4AaABAQ' # the channel id used to warn operators
minizincSolvers:
- chuffed
- coin-bc
nTelefons: 6 # Number of lines
diesCerca: ['dm', 'dv', 'dx', 'dl', 'dj',] # Search order, recommendation: harder to fit, first
diesVisualitzacio: ['dl','dm','dx','dj','dv'] # Visualization order
hours: # Time slot limits. Last hour is the closing one
- '09:00'
- '10:15'
- '11:30'
- '12:45'
- '14:00'
computeShifts: true
maxOverload: 0 # Max number of turns from the ideal for each person
adjustLines: false # True to adapt the size of the timetable to the available load, minimizing empty slots
clusterize: true # True if people is pre-asigned to specific lines
discriminateLines: true # True to consider a different line ordering a different solution
pruneRedundant: false # Activate to prune line ordering other than the sorted names one
mostraCami: false # show the trail while it search for a solution
maximCamiAMostrar: 60 # max level to show the trail for
aleatori: true # True to randomize order to choose persons (recommended unless you want deterministic testing)
stopPenalty: 0 # The solver will stop when a complete solution with this penalty is found
backtrackDepth: 10000000000 # How long, in node visits on the search tree, the algorithm will execute
maxNodesToPersevere: 10000 # How long, in node visits on the search tree, the search shoul perservere on one way before try a different one
maxMonitoredSolutions: 10 # Maximum number of solutions with the same cost monitored in monitoringFile
costLimit: 200 # Minimum cost to consider, partial solutions above that will be discarded
descartaNoPrometedores: true # Prune partial solutions which already have bad penalty (proportional cost is very beyond the limit)
deixaEsmorzar: true # True to force free one of the middle time slot to lunch
maxNingusPerTurn: 2
maxNingusPerTurnInEdition: 2 # Maxim number of ningus when edit torn by an user
noVolenEsmorzar: # Specific persons that do not want to lunch
- ningu
maximPerTaula: 2 # Maximum number of persons attending phone at the same time on the same table, to avoid cacophonies
maximsT1PerDia: 1 # Maximum number of shifts on first line per day, when the first line is the busiest one
maximHoresDiariesGeneral: 2 # Maximum number of shift per days, in general
maximHoresDiaries: # Exceptions to the general maximum number of shifts per day, dictionary for each person
ningu: 4
costHoresDiscontinues: 40 # Penalty for a person having non-continuous shifts a day. Overall effect multipies this cost by n·(n-1)/2, being n the number of non-continuous hours
costHoresConcentrades: 1 # Penalty for a person having continuous shift a day. Overall effect multipies this cost by n·(n-1)/2, being n the number of continuous hours
costTaulaSorollosa: 5 # Penalty for having a simultaneus persons on the same table. Overall effect multipies this cost by n·(n-1)/2, being n the number of person on the same table.
costHoraNoDesitjada: 0 # Penalty for having a shift that a person marked as optionally busy
costTornBuit: 10 # Penalty for having empty slots a day (Overall effect multipies this cost by n·(n-1)/2, being n the number of non-continuous hours)
maxPhoningInGroup: # A limit for the persons simultaneously doing shifts in that group
ningu: 8
minIdleInGroup: # A limit for the persons simultaneously NOT doing shifts in each group
it: 4
randomColors: false # True to assign random colors instead of using persons' color
forced: # Forced timetable slots, mapping "[day, time, line]: person". pe. "[dx, 1, 1]: ningu" forces wenesday, first hour, first line to be nobody (empty), you load should allow that.
[dl, 1, 4]: ningu
[dl, 2, 4]: ningu
[dm, 1, 4]: ningu
[dm, 2, 4]: ningu
[dx, 1, 4]: ningu
[dx, 2, 4]: ningu
[dj, 1, 4]: ningu
[dj, 2, 4]: ningu
[dv, 1, 4]: ningu
[dv, 2, 4]: ningu
threshold_hits: 21
callinfoPath: callinfo
nNingusMinizinc: 2