max wl constraint, less cooks on thursday
This commit is contained in:
		
							parent
							
								
									6b72a56fc6
								
							
						
					
					
						commit
						fae35f1ebf
					
				@ -33,7 +33,7 @@ tasks:
 | 
				
			|||||||
    workload: 1
 | 
					    workload: 1
 | 
				
			||||||
    lookup: [drankmanagen]
 | 
					    lookup: [drankmanagen]
 | 
				
			||||||
  koken:
 | 
					  koken:
 | 
				
			||||||
    req: [4, 2, 2, 2]
 | 
					    req: [3, 2, 2, 2]
 | 
				
			||||||
    workload: 3
 | 
					    workload: 3
 | 
				
			||||||
    personen: liefhebbers
 | 
					    personen: liefhebbers
 | 
				
			||||||
    lookup: [koken, kookhulp, hulpkoken]
 | 
					    lookup: [koken, kookhulp, hulpkoken]
 | 
				
			||||||
@ -58,7 +58,7 @@ tasks:
 | 
				
			|||||||
    personen: iedereen
 | 
					    personen: iedereen
 | 
				
			||||||
    lookup: [afwassen]
 | 
					    lookup: [afwassen]
 | 
				
			||||||
  snijpieten:
 | 
					  snijpieten:
 | 
				
			||||||
    req: [5, 4, 4, 4]
 | 
					    req: [3, 4, 4, 4]
 | 
				
			||||||
    workload: 2
 | 
					    workload: 2
 | 
				
			||||||
    personen: iedereen
 | 
					    personen: iedereen
 | 
				
			||||||
    lookup: [snijden]
 | 
					    lookup: [snijden]
 | 
				
			||||||
 | 
				
			|||||||
@ -139,6 +139,7 @@ def write_data(people, tasks, file=sys.stdout):
 | 
				
			|||||||
    print(glpm.param("D_count", config['days']), file=file)
 | 
					    print(glpm.param("D_count", config['days']), file=file)
 | 
				
			||||||
    print(glpm.param("P_count", len(people)), file=file)
 | 
					    print(glpm.param("P_count", len(people)), file=file)
 | 
				
			||||||
    print(glpm.param("J_count", len(tasks)), file=file)
 | 
					    print(glpm.param("J_count", len(tasks)), file=file)
 | 
				
			||||||
 | 
					    print(glpm.param("ML", 6), file=file) # CHANGE THIS
 | 
				
			||||||
    print(glpm.param("WL", config['weights']['likes']), file=file)
 | 
					    print(glpm.param("WL", config['weights']['likes']), file=file)
 | 
				
			||||||
    print(glpm.param("WH", config['weights']['hates']), file=file)
 | 
					    print(glpm.param("WH", config['weights']['hates']), file=file)
 | 
				
			||||||
def write_tasks(people, tasks, file=sys.stdout):
 | 
					def write_tasks(people, tasks, file=sys.stdout):
 | 
				
			||||||
 | 
				
			|||||||
@ -9,6 +9,7 @@ param D_count, integer, > 0;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
param WL, integer, > 0;
 | 
					param WL, integer, > 0;
 | 
				
			||||||
param WH, integer, > 0;
 | 
					param WH, integer, > 0;
 | 
				
			||||||
 | 
					param ML, integer, > 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set P := 1..P_count;
 | 
					set P := 1..P_count;
 | 
				
			||||||
set J := 1..J_count;
 | 
					set J := 1..J_count;
 | 
				
			||||||
@ -54,6 +55,8 @@ 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 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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Each task is allocated */
 | 
					/* Each task is allocated */
 | 
				
			||||||
s.t. all_allocated{j in J, d in D}: sum{p in P} A[p,j,d] == R[d, j];
 | 
					s.t. all_allocated{j in J, d in D}: sum{p in P} A[p,j,d] == R[d, j];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
Lucus 	koken 	schoonmaken, fotograferen
 | 
					Lucus 	koken 	schoonmaken, fotograferen
 | 
				
			||||||
Wassasin 	koken 	fotograferen
 | 
					Wassasin 	koken 	fotograferen
 | 
				
			||||||
linda 	superkok, snackdealen 	koken, snijden, afwassen, schoonmaken, fotograferen
 | 
					linda 	superkok 	koken, snijden, afwassen, schoonmaken, fotograferen
 | 
				
			||||||
Nova 	koken, afwassen 	fotograferen, snackdealen
 | 
					Nova 	koken, afwassen 	fotograferen, snackdealen
 | 
				
			||||||
Obfusk 	koken, afwassen 	fotograferen, snackdealen, schoonmaken
 | 
					Obfusk 	koken, afwassen 	fotograferen, snackdealen, schoonmaken
 | 
				
			||||||
Daan 	fotograferen, koken 	schoonmaken
 | 
					Daan 	fotograferen, koken 	schoonmaken
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user