Compare commits
	
		
			No commits in common. "master" and "weekendxiii" have entirely different histories.
		
	
	
		
			master
			...
			weekendxii
		
	
		
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,3 +0,0 @@ | |||||||
| __pycache__ |  | ||||||
| data |  | ||||||
| output |  | ||||||
							
								
								
									
										125
									
								
								config.yaml
									
									
									
									
									
								
							
							
						
						
									
										125
									
								
								config.yaml
									
									
									
									
									
								
							| @ -4,99 +4,102 @@ 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: [Lyra, mrngm, Pepper] |     personen: [MrNGm, Pepper, Joost, Annelies] | ||||||
|     workload: 4 |     workload: 4 | ||||||
|     req: [1, 1, 1] |     req: [1, 1, 1] | ||||||
|     hardcode: |     hardcode: | ||||||
|       - Lyra |       - MrNGm | ||||||
|       - mrngm | #      - Pepper | ||||||
|       - Pepper |       - Joost | ||||||
|  |       - Annelies | ||||||
|     lookup: [hotemetoten] |     lookup: [hotemetoten] | ||||||
|   superkok: |   superkok: | ||||||
|     req: [1, 1, 1] |     req: [1, 1, 1] | ||||||
|     personen: [MacGyver, Annelies, Mieksies] |     personen: [lynn, pepper, Wassasin] | ||||||
|     workload: 4 |     workload: 4 | ||||||
|     lookup: [superkok] |     lookup: [superkok] | ||||||
|     hardcode: |     hardcode: | ||||||
|       - MacGyver |       - Pepper | ||||||
|       - Annelies |       - Wassasin | ||||||
|       - Mieksies |       - lynn | ||||||
|   snijden: |   drankmanagen: | ||||||
|     req: [2, 3, 3] |     req: [1, 1, 1] | ||||||
|     workload: 2 |     personen: [MacGyver] | ||||||
|     personen: iedereen |     workload: 1 | ||||||
|     lookup: [snijden] |     lookup: [drankmanagen] | ||||||
|   koken: |   koken: | ||||||
|     req: [3, 3, 3] |     req: [2, 3, 2] | ||||||
|     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: [2, 4, 4] |     req: [3, 4, 4] | ||||||
|     workload: 2 |     workload: 2 | ||||||
|     personen: iedereen |     personen: iedereen | ||||||
|     lookup: [schoonmaken] |     lookup: [schoonmaken] | ||||||
|   snackdealen: |   snackdealen: | ||||||
|     req: [2, 4, 4] |     req: [4, 5, 5] | ||||||
|     workload: 1 |     workload: 1 | ||||||
|     personen: iedereen |     personen: iedereen | ||||||
|     lookup: [hapjes, snackdealen] |     lookup: [hapjes, snackdealen] | ||||||
|   fotograferen: |   fotograferen: | ||||||
|     req: [2, 3, 3] |     req: [2, 2, 2] | ||||||
|     workload: 2 |     workload: 1 | ||||||
|     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: [1, 1, 1] |     req: [2, 1, 2] | ||||||
|     workload: 2 |     workload: 2 | ||||||
|     personen: liefhebbers |     personen: liefhebbers | ||||||
|     lookup: [pendelen] |     lookup: [pendelen] | ||||||
| people: | people: | ||||||
| - Abel |  | ||||||
| - Anita |  | ||||||
| - Annelies |  | ||||||
| - Blondie |  | ||||||
| - carrot |  | ||||||
| - Dusk |  | ||||||
| - Eliza |  | ||||||
| - Harm |  | ||||||
| - John |  | ||||||
| - Joost |  | ||||||
| - Leonie |  | ||||||
| - lynn |  | ||||||
| - Loki |  | ||||||
| - lucus |  | ||||||
| - Lyra |  | ||||||
| - Maaike |  | ||||||
| - Mabl |  | ||||||
| - MacGyver |  | ||||||
| - mapzie |  | ||||||
| - Margot |  | ||||||
| - Marion |  | ||||||
| - Marlon |  | ||||||
| - Mieksies |  | ||||||
| - Minnozz |  | ||||||
| - MrNGm |  | ||||||
| - Nova |  | ||||||
| - PaxSum |  | ||||||
| - Pepper | - Pepper | ||||||
| - petervdv | - Joost | ||||||
| - Quis | - MrNGm | ||||||
| - Rian | - Annelies | ||||||
| - Roflincopter |  | ||||||
| - Sjors |  | ||||||
| - SyntaxTerror |  | ||||||
| - Tanja |  | ||||||
| - Thom |  | ||||||
| - Wassasin | - Wassasin | ||||||
|  | - lynn | ||||||
|  | - Roflincopter | ||||||
|  | - lucus | ||||||
| - Weasel | - Weasel | ||||||
| - Yorick | - ElizaAntoine | ||||||
|  | - Lyra | ||||||
|  | - MacGyver | ||||||
|  | - Abel | ||||||
|  | - SyntaxTerror | ||||||
|  | - carrot | ||||||
|  | - Blondie | ||||||
|  | - Bwesterb | ||||||
|  | - M-ou-se | ||||||
|  | - PaxSum | ||||||
|  | - Petervdv | ||||||
|  | - Margot | ||||||
|  | - Daan | ||||||
|  | - Laurens | ||||||
|  | - yorick | ||||||
|  | - Minnozz | ||||||
|  | - Sjors | ||||||
|  | - Quis | ||||||
|  | - Nova | ||||||
|  | - Marlon | ||||||
|  | - Aaron | ||||||
|  | - AlphaCentauri | ||||||
|  | - BOBMarlie | ||||||
|  | - Martijn | ||||||
|  | - Colin | ||||||
|  | - Blu | ||||||
|  | - Hannah | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| #! /usr/bin/env nix-shell | #! /usr/bin/env nix-shell | ||||||
| #!nix-shell -i python3 -p python3 python3Packages.pyyaml glpk -I nixpkgs=flake:nixpkgs | #!nix-shell -i python3 -p python python3Packages.pyyaml glpk | ||||||
| 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.safe_load(open('config.yaml', 'r')) | conf = yaml.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,6 +18,7 @@ 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; | ||||||
| 
 | 
 | ||||||
| @ -48,11 +49,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 1 task */ | /* A person has at least D-1 tasks */ | ||||||
| s.t. min_load_person{p in P}: sum{j in J, d in D} A[p,j,d] >= 1; | #s.t. min_load_person{p in P}: sum{j in J, d in D} A[p,j,d] >= min_load[p]; | ||||||
| 
 | 
 | ||||||
| /* 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 @@ | |||||||
| Abel 	-	pendelen | Pepper 	koken, snijden 	fotograferen, snackdealen | ||||||
| Anita 	schoonmaken, afwassen 	fotograferen, pendelen | Joost 	afwassen, koken, snijden 	fotograferen, snackdealen | ||||||
| carrot 	koken, snijden 	- | Annelies 	afwassen, fotograferen, pendelen 	koken, snijden, snackdealen | ||||||
| Dusk 	pendelen, snijden, koken 	afwassen, schoonmaken | Laurens 	pendelen, koken, snijden 	schoonmaken | ||||||
| Eliza 	schoonmaken, koken, snijden 	snackdealen, pendelen, afwassen | Weasel 	fotograferen, koken, snijden 	snackdealen, schoonmaken | ||||||
| Harm 	pendelen, fotograferen 	snackdealen, schoonmaken | Martijn 	koken, snijden 	schoonmaken, afwassen | ||||||
| Joost 	snijden 	fotograferen, pendelen, schoonmaken, snackdealen | PaxSum 	koken, snijden, afwassen 	fotograferen, snackdealen | ||||||
| Leonie 	koken, snijden, pendelen 	snackdealen, fotograferen | petervdv 	snackdealen, pendelen 	koken, afwassen, schoonmaken, fotograferen | ||||||
| Loki 	snijden, koken, snackdealen 	afwassen, schoonmaken | Lyra 	fotograferen, afwassen, snijden 	pendelen | ||||||
| lucus 	koken, snijden 	schoonmaken, snackdealen | Nova 	pendelen, koken, snijden 	fotograferen, schoonmaken, snackdealen | ||||||
| lynn 	koken, snackdealen, schoonmaken 	afwassen, snijden, koken | ElizaAntoine 	afwassen, schoonmaken, fotograferen 	koken, snijden, snackdealen, pendelen | ||||||
| Maaike 	snijden, koken, afwassen 	snackdealen, fotograferen, pendelen | SyntaxTerror 	fotograferen, snijden, afwassen 	koken, snackdealen, pendelen | ||||||
| Mabl 	snijden, schoonmaken 	fotograferen, pendelen, snackdealen | AlphaCentauri 	snackdealen, schoonmaken, afwassen 	koken, pendelen, snijden | ||||||
| mapzie 	snackdealen 	snijden, koken, schoonmaken, afwassen | Daan 	pendelen, fotograferen 	afwassen, schoonmaken | ||||||
| Margot 	snijden, koken, afwassen 	snackdealen, schoonmaken | Lucus 	koken, snijden, afwassen 	fotograferen, schoonmaken | ||||||
| Marion 	snijden, koken, afwassen 	snackdealen, fotograferen, schoonmaken | Abel 	fotograferen, snijden, afwassen 	schoonmaken, koken | ||||||
| Marlon 	koken, snijden 	afwassen, schoonmaken | yorick 	snijden, afwassen 	fotograferen, schoonmaken | ||||||
| Minnozz 	fotograferen, snijden 	schoonmaken, afwassen | bwesterb 	snijden, koken 	afwassen, schoonmaken, snackdealen | ||||||
| Nova 	pendelen, koken, snijden 	snackdealen, fotograferen, schoonmaken | Quis 	snijden, koken, snackdealen 	schoonmaken | ||||||
| PaxSum 	snijden, koken, afwassen 	fotograferen, snackdealen | Minnozz 	snijden, koken 	schoonmaken, snackdealen, afwassen | ||||||
| petervdv 	snackdealen, pendelen 	- | Margot 	snijden, koken, afwassen 	schoonmaken, snackdealen, fotograferen | ||||||
| Quis 	snackdealen, koken, snijden 	fotograferen, schoonmaken | lynn 		fotograferen | ||||||
| Rian 	snijden, afwassen 	snackdealen, fotograferen, pendelen | Colin 	Afwassen, schoonmaken, snackdealen 	koken, snijden | ||||||
| Roflincopter 	schoonmaken, afwassen 	koken | Sjors 	Pendelen, schoonmaken, snackdealen 	koken, snijden | ||||||
| Sjors 	pendelen, snackdealen 	koken, afwassen | Blondie 	fotograferen, afwassen, snackdealen 	schoonmaken, snijden | ||||||
| SyntaxTerror 	snijden, schoonmaken, afwassen 	snackdealen, pendelen | Roflincopter 	schoonmaken, snijden, afwassen 	snackdealen, fotograferen | ||||||
| Tanja 	snijden, koken, afwassen, schoonmaken 	fotograferen, pendelen | BOBMarlie 	fotograferen, koken, snijden 	afwassen, schoonmaken, snackdealen | ||||||
| Thom 	koken, afwassen, pendelen 	fotograferen, snackdealen | Aaron 	fotograferen, afwassen, snijden 	koken, schoonmaken, snackdealen, pendelen | ||||||
| Wassasin 	snackdealen, koken, snijden 	afwassen, schoonmaken, fotograferen | Wassasin 	koken, snijden, snackdealen 	fotograferen | ||||||
| Weasel 	fotograferen, snijden 	schoonmaken, snackdealen | carrot 	pendelen, schoonmaken, koken 	fotograferen, snackdealen | ||||||
| Yorick 	koken, snijden, afwassen 	snackdealen, fotograferen | M-ou-se 	snijden, snackdealen 	afwassen, schoonmaken, fotograferen  | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user