Compare commits
7 Commits
weekendxii
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
d329748b89 | ||
fb03d1a3ba | |||
17731a1032 | |||
|
d5b1309ef5 | ||
|
ffcc39ae20 | ||
|
ca54fd636d | ||
|
8ff6ffa559 |
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
__pycache__
|
||||||
|
data
|
||||||
|
output
|
123
config.yaml
123
config.yaml
@ -4,102 +4,99 @@ config:
|
|||||||
likes: 1
|
likes: 1
|
||||||
hates: 3
|
hates: 3
|
||||||
# TODO: load_dev
|
# TODO: load_dev
|
||||||
ignore: []
|
ignore: [-]
|
||||||
task_re: "[ ,/]+"
|
task_re: "[ ,/]+"
|
||||||
tasks:
|
tasks:
|
||||||
hotemetoten:
|
hotemetoten:
|
||||||
personen: [MrNGm, Pepper, Joost, Annelies]
|
personen: [Lyra, mrngm, Pepper]
|
||||||
workload: 4
|
workload: 4
|
||||||
req: [1, 1, 1]
|
req: [1, 1, 1]
|
||||||
hardcode:
|
hardcode:
|
||||||
- MrNGm
|
- Lyra
|
||||||
# - Pepper
|
- mrngm
|
||||||
- Joost
|
- Pepper
|
||||||
- Annelies
|
|
||||||
lookup: [hotemetoten]
|
lookup: [hotemetoten]
|
||||||
superkok:
|
superkok:
|
||||||
req: [1, 1, 1]
|
req: [1, 1, 1]
|
||||||
personen: [lynn, pepper, Wassasin]
|
personen: [MacGyver, Annelies, Mieksies]
|
||||||
workload: 4
|
workload: 4
|
||||||
lookup: [superkok]
|
lookup: [superkok]
|
||||||
hardcode:
|
hardcode:
|
||||||
- Pepper
|
- MacGyver
|
||||||
- Wassasin
|
- Annelies
|
||||||
- lynn
|
- Mieksies
|
||||||
drankmanagen:
|
snijden:
|
||||||
req: [1, 1, 1]
|
req: [2, 3, 3]
|
||||||
personen: [MacGyver]
|
workload: 2
|
||||||
workload: 1
|
personen: iedereen
|
||||||
lookup: [drankmanagen]
|
lookup: [snijden]
|
||||||
koken:
|
koken:
|
||||||
req: [2, 3, 2]
|
req: [3, 3, 3]
|
||||||
workload: 3
|
workload: 3
|
||||||
personen: liefhebbers
|
personen: liefhebbers
|
||||||
lookup: [koken, kookhulp, hulpkoken]
|
lookup: [koken, kookhulp, hulpkoken]
|
||||||
|
afwassen:
|
||||||
|
req: [3, 6, 6]
|
||||||
|
workload: 2
|
||||||
|
personen: iedereen
|
||||||
|
lookup: [afwassen]
|
||||||
schoonmaken:
|
schoonmaken:
|
||||||
req: [3, 4, 4]
|
req: [2, 4, 4]
|
||||||
workload: 2
|
workload: 2
|
||||||
personen: iedereen
|
personen: iedereen
|
||||||
lookup: [schoonmaken]
|
lookup: [schoonmaken]
|
||||||
snackdealen:
|
snackdealen:
|
||||||
req: [4, 5, 5]
|
req: [2, 4, 4]
|
||||||
workload: 1
|
workload: 1
|
||||||
personen: iedereen
|
personen: iedereen
|
||||||
lookup: [hapjes, snackdealen]
|
lookup: [hapjes, snackdealen]
|
||||||
fotograferen:
|
fotograferen:
|
||||||
req: [2, 2, 2]
|
req: [2, 3, 3]
|
||||||
workload: 1
|
workload: 2
|
||||||
personen: liefhebbers
|
personen: liefhebbers
|
||||||
lookup: [fotograferen]
|
lookup: [fotograferen]
|
||||||
afwassen:
|
|
||||||
req: [4, 4, 4]
|
|
||||||
workload: 2
|
|
||||||
personen: iedereen
|
|
||||||
lookup: [afwassen]
|
|
||||||
snijpieten:
|
|
||||||
req: [3, 4, 4]
|
|
||||||
workload: 2
|
|
||||||
personen: iedereen
|
|
||||||
lookup: [snijden]
|
|
||||||
pendelen:
|
pendelen:
|
||||||
req: [2, 1, 2]
|
req: [1, 1, 1]
|
||||||
workload: 2
|
workload: 2
|
||||||
personen: liefhebbers
|
personen: liefhebbers
|
||||||
lookup: [pendelen]
|
lookup: [pendelen]
|
||||||
people:
|
people:
|
||||||
- Pepper
|
|
||||||
- Joost
|
|
||||||
- MrNGm
|
|
||||||
- Annelies
|
|
||||||
- Wassasin
|
|
||||||
- lynn
|
|
||||||
- Roflincopter
|
|
||||||
- lucus
|
|
||||||
- Weasel
|
|
||||||
- ElizaAntoine
|
|
||||||
- Lyra
|
|
||||||
- MacGyver
|
|
||||||
- Abel
|
- Abel
|
||||||
- SyntaxTerror
|
- Anita
|
||||||
- carrot
|
- Annelies
|
||||||
- Blondie
|
- Blondie
|
||||||
- Bwesterb
|
- carrot
|
||||||
- M-ou-se
|
- Dusk
|
||||||
- PaxSum
|
- Eliza
|
||||||
- Petervdv
|
- Harm
|
||||||
|
- John
|
||||||
|
- Joost
|
||||||
|
- Leonie
|
||||||
|
- lynn
|
||||||
|
- Loki
|
||||||
|
- lucus
|
||||||
|
- Lyra
|
||||||
|
- Maaike
|
||||||
|
- Mabl
|
||||||
|
- MacGyver
|
||||||
|
- mapzie
|
||||||
- Margot
|
- Margot
|
||||||
- Daan
|
- Marion
|
||||||
- Laurens
|
|
||||||
- yorick
|
|
||||||
- Minnozz
|
|
||||||
- Sjors
|
|
||||||
- Quis
|
|
||||||
- Nova
|
|
||||||
- Marlon
|
- Marlon
|
||||||
- Aaron
|
- Mieksies
|
||||||
- AlphaCentauri
|
- Minnozz
|
||||||
- BOBMarlie
|
- MrNGm
|
||||||
- Martijn
|
- Nova
|
||||||
- Colin
|
- PaxSum
|
||||||
- Blu
|
- Pepper
|
||||||
- Hannah
|
- petervdv
|
||||||
|
- Quis
|
||||||
|
- Rian
|
||||||
|
- Roflincopter
|
||||||
|
- Sjors
|
||||||
|
- SyntaxTerror
|
||||||
|
- Tanja
|
||||||
|
- Thom
|
||||||
|
- Wassasin
|
||||||
|
- Weasel
|
||||||
|
- Yorick
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
#! /usr/bin/env nix-shell
|
#! /usr/bin/env nix-shell
|
||||||
#!nix-shell -i python3 -p python python3Packages.pyyaml glpk
|
#!nix-shell -i python3 -p python3 python3Packages.pyyaml glpk -I nixpkgs=flake:nixpkgs
|
||||||
import sys
|
import sys
|
||||||
import yaml
|
import yaml
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
import glpm
|
import glpm
|
||||||
conf = yaml.load(open('config.yaml', 'r'))
|
conf = yaml.safe_load(open('config.yaml', 'r'))
|
||||||
config = conf['config']
|
config = conf['config']
|
||||||
config['ignore'].append('')
|
config['ignore'].append('')
|
||||||
tasks = OrderedDict(conf['tasks'])
|
tasks = OrderedDict(conf['tasks'])
|
||||||
|
@ -18,7 +18,6 @@ set D := 1..D_count;
|
|||||||
/* aanwezigheid x workload for that day */
|
/* aanwezigheid x workload for that day */
|
||||||
param Costs{p in P}, integer, >= 0;
|
param Costs{p in P}, integer, >= 0;
|
||||||
|
|
||||||
|
|
||||||
/* Person p likes to solve jobs j */
|
/* Person p likes to solve jobs j */
|
||||||
param L{p in P, j in J} default 0, binary;
|
param L{p in P, j in J} default 0, binary;
|
||||||
|
|
||||||
@ -49,11 +48,11 @@ s.t. hardcode{p in P, j in J, d in D}: A[p,j,d] >= Q[p,j,d];
|
|||||||
/* A person only has one task per day, at most */
|
/* A person only has one task per day, at most */
|
||||||
s.t. max_load_person{p in P, d in D}: sum{j in J} A[p,j,d] <= max_load[p,d];
|
s.t. max_load_person{p in P, d in D}: sum{j in J} A[p,j,d] <= max_load[p,d];
|
||||||
|
|
||||||
/* A person has at least D-1 tasks */
|
/* A person has at least 1 task */
|
||||||
#s.t. min_load_person{p in P}: sum{j in J, d in D} A[p,j,d] >= min_load[p];
|
s.t. min_load_person{p in P}: sum{j in J, d in D} A[p,j,d] >= 1;
|
||||||
|
|
||||||
/* A person does not perform the same job on all days */
|
/* A person does not perform the same job on all days */
|
||||||
/*s.t. duplicate_jobs{p in P, j in J}: sum{d in D} A[p,j,d] <= D_count-1;*/
|
/* s.t. duplicate_jobs{p in P, j in J}: sum{d in D} A[p,j,d] <= D_count-1; */
|
||||||
|
|
||||||
s.t. max_load_person_total{p in P}: (sum{d in D, j in J} A[p,j,d] * Wl[j]) <= ML;
|
s.t. max_load_person_total{p in P}: (sum{d in D, j in J} A[p,j,d] * Wl[j]) <= ML;
|
||||||
|
|
||||||
|
62
prefs_table
62
prefs_table
@ -1,31 +1,31 @@
|
|||||||
Pepper koken, snijden fotograferen, snackdealen
|
Abel - pendelen
|
||||||
Joost afwassen, koken, snijden fotograferen, snackdealen
|
Anita schoonmaken, afwassen fotograferen, pendelen
|
||||||
Annelies afwassen, fotograferen, pendelen koken, snijden, snackdealen
|
carrot koken, snijden -
|
||||||
Laurens pendelen, koken, snijden schoonmaken
|
Dusk pendelen, snijden, koken afwassen, schoonmaken
|
||||||
Weasel fotograferen, koken, snijden snackdealen, schoonmaken
|
Eliza schoonmaken, koken, snijden snackdealen, pendelen, afwassen
|
||||||
Martijn koken, snijden schoonmaken, afwassen
|
Harm pendelen, fotograferen snackdealen, schoonmaken
|
||||||
PaxSum koken, snijden, afwassen fotograferen, snackdealen
|
Joost snijden fotograferen, pendelen, schoonmaken, snackdealen
|
||||||
petervdv snackdealen, pendelen koken, afwassen, schoonmaken, fotograferen
|
Leonie koken, snijden, pendelen snackdealen, fotograferen
|
||||||
Lyra fotograferen, afwassen, snijden pendelen
|
Loki snijden, koken, snackdealen afwassen, schoonmaken
|
||||||
Nova pendelen, koken, snijden fotograferen, schoonmaken, snackdealen
|
lucus koken, snijden schoonmaken, snackdealen
|
||||||
ElizaAntoine afwassen, schoonmaken, fotograferen koken, snijden, snackdealen, pendelen
|
lynn koken, snackdealen, schoonmaken afwassen, snijden, koken
|
||||||
SyntaxTerror fotograferen, snijden, afwassen koken, snackdealen, pendelen
|
Maaike snijden, koken, afwassen snackdealen, fotograferen, pendelen
|
||||||
AlphaCentauri snackdealen, schoonmaken, afwassen koken, pendelen, snijden
|
Mabl snijden, schoonmaken fotograferen, pendelen, snackdealen
|
||||||
Daan pendelen, fotograferen afwassen, schoonmaken
|
mapzie snackdealen snijden, koken, schoonmaken, afwassen
|
||||||
Lucus koken, snijden, afwassen fotograferen, schoonmaken
|
Margot snijden, koken, afwassen snackdealen, schoonmaken
|
||||||
Abel fotograferen, snijden, afwassen schoonmaken, koken
|
Marion snijden, koken, afwassen snackdealen, fotograferen, schoonmaken
|
||||||
yorick snijden, afwassen fotograferen, schoonmaken
|
Marlon koken, snijden afwassen, schoonmaken
|
||||||
bwesterb snijden, koken afwassen, schoonmaken, snackdealen
|
Minnozz fotograferen, snijden schoonmaken, afwassen
|
||||||
Quis snijden, koken, snackdealen schoonmaken
|
Nova pendelen, koken, snijden snackdealen, fotograferen, schoonmaken
|
||||||
Minnozz snijden, koken schoonmaken, snackdealen, afwassen
|
PaxSum snijden, koken, afwassen fotograferen, snackdealen
|
||||||
Margot snijden, koken, afwassen schoonmaken, snackdealen, fotograferen
|
petervdv snackdealen, pendelen -
|
||||||
lynn fotograferen
|
Quis snackdealen, koken, snijden fotograferen, schoonmaken
|
||||||
Colin Afwassen, schoonmaken, snackdealen koken, snijden
|
Rian snijden, afwassen snackdealen, fotograferen, pendelen
|
||||||
Sjors Pendelen, schoonmaken, snackdealen koken, snijden
|
Roflincopter schoonmaken, afwassen koken
|
||||||
Blondie fotograferen, afwassen, snackdealen schoonmaken, snijden
|
Sjors pendelen, snackdealen koken, afwassen
|
||||||
Roflincopter schoonmaken, snijden, afwassen snackdealen, fotograferen
|
SyntaxTerror snijden, schoonmaken, afwassen snackdealen, pendelen
|
||||||
BOBMarlie fotograferen, koken, snijden afwassen, schoonmaken, snackdealen
|
Tanja snijden, koken, afwassen, schoonmaken fotograferen, pendelen
|
||||||
Aaron fotograferen, afwassen, snijden koken, schoonmaken, snackdealen, pendelen
|
Thom koken, afwassen, pendelen fotograferen, snackdealen
|
||||||
Wassasin koken, snijden, snackdealen fotograferen
|
Wassasin snackdealen, koken, snijden afwassen, schoonmaken, fotograferen
|
||||||
carrot pendelen, schoonmaken, koken fotograferen, snackdealen
|
Weasel fotograferen, snijden schoonmaken, snackdealen
|
||||||
M-ou-se snijden, snackdealen afwassen, schoonmaken, fotograferen
|
Yorick koken, snijden, afwassen snackdealen, fotograferen
|
||||||
|
Loading…
Reference in New Issue
Block a user