make max_load_person configurable
This commit is contained in:
parent
19d9a9f6e8
commit
298842222d
@ -10,7 +10,11 @@ from pyscipopt import Model, quicksum
|
|||||||
from typing import Any, Tuple, TypeVar
|
from typing import Any, Tuple, TypeVar
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
conf = yaml.safe_load(open('config.yaml', 'r'))
|
conf = yaml.safe_load(open('config.yaml', 'r'))
|
||||||
config = conf['config']
|
|
||||||
|
DEFAULT_CONFIG = {
|
||||||
|
"max_load_person": 6
|
||||||
|
}
|
||||||
|
config = DEFAULT_CONFIG | conf['config']
|
||||||
config['ignore'].append('')
|
config['ignore'].append('')
|
||||||
|
|
||||||
QUADRATIC = False
|
QUADRATIC = False
|
||||||
@ -160,7 +164,7 @@ def scipsol(people: dict[str, Person], tasks: dict[str, TaskConfig]):
|
|||||||
m.addCons(quicksum(does[(pname, d, task)] for d in ALL_DAYS) <= len(ALL_DAYS) - 1)
|
m.addCons(quicksum(does[(pname, d, task)] for d in ALL_DAYS) <= len(ALL_DAYS) - 1)
|
||||||
|
|
||||||
# max_load_person_total
|
# max_load_person_total
|
||||||
m.addCons(quicksum([does[(pname, d, task)] * tasks[task].workload for d in ALL_DAYS for task in tasks]) <= 6)
|
m.addCons(quicksum([does[(pname, d, task)] * tasks[task].workload for d in ALL_DAYS for task in tasks]) <= config['max_load_person'])
|
||||||
|
|
||||||
# hardcode constraint
|
# hardcode constraint
|
||||||
for d, task in person.does:
|
for d, task in person.does:
|
||||||
|
Loading…
Reference in New Issue
Block a user