Skip to content

Commit c80bc88

Browse files
committed
return flat list of distinct constraints in benchmarks
1 parent ebd2f89 commit c80bc88

6 files changed

Lines changed: 12 additions & 12 deletions

File tree

pycona/benchmarks/exam_timetabling.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from ..answering_queries.constraint_oracle import ConstraintOracle
44
from ..problem_instance import ProblemInstance, absvar
5-
5+
from cpmpy.transformations.normalize import toplevel_list
66

77
def day_of_exam(course, slots_per_day):
88
return course // slots_per_day
@@ -27,7 +27,7 @@ def construct_examtt_simple(nsemesters=9, courses_per_semester=6, slots_per_day=
2727
for row in courses:
2828
model += cp.AllDifferent(day_of_exam(row, slots_per_day)).decompose()
2929

30-
C_T = list(model.constraints)
30+
C_T = list(set(toplevel_list(model.constraints)))
3131

3232
if model.solve():
3333
courses.clear()

pycona/benchmarks/job_shop_scheduling.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import cpmpy as cp
44
import numpy as np
55
from cpmpy.expressions.utils import all_pairs
6-
6+
from cpmpy.transformations.normalize import toplevel_list
77
from ..answering_queries.constraint_oracle import ConstraintOracle
88
from ..problem_instance import ProblemInstance, absvar
99

@@ -56,7 +56,7 @@ def construct_job_shop_scheduling_problem(n_jobs, machines, horizon, seed=0):
5656
for (j1, t1), (j2, t2) in all_pairs(zip(*tasks_on_mach)):
5757
m += (end[j1, t1] <= start[j2, t2]) | (end[j2, t2] <= start[j1, t1])
5858

59-
C_T = list(model.constraints)
59+
C_T = list(set(toplevel_list(model.constraints)))
6060

6161
max_duration = max(duration)
6262

pycona/benchmarks/jsudoku.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import cpmpy as cp
2-
2+
from cpmpy.transformations.normalize import toplevel_list
33
from ..answering_queries.constraint_oracle import ConstraintOracle
44
from ..problem_instance import ProblemInstance, absvar
55

@@ -49,6 +49,6 @@ def construct_jsudoku():
4949

5050
instance = ProblemInstance(variables=grid, params=parameters, language=lang, name="jsudoku")
5151

52-
oracle = ConstraintOracle(C_T)
52+
oracle = ConstraintOracle(list(set(toplevel_list(C_T))))
5353

5454
return instance, oracle

pycona/benchmarks/murder.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
import cpmpy as cp
3-
3+
from cpmpy.transformations.normalize import toplevel_list
44
from ..answering_queries.constraint_oracle import ConstraintOracle
55
from ..problem_instance import ProblemInstance, absvar
66

@@ -45,6 +45,6 @@ def construct_murder_problem():
4545

4646
instance = ProblemInstance(variables=grid, language=lang, name="murder")
4747

48-
oracle = ConstraintOracle(C_T)
48+
oracle = ConstraintOracle(list(set(toplevel_list(C_T))))
4949

5050
return instance, oracle

pycona/benchmarks/nurse_rostering.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import cpmpy as cp
2-
2+
from cpmpy.transformations.normalize import toplevel_list
33
from ..answering_queries.constraint_oracle import ConstraintOracle
44
from ..problem_instance import ProblemInstance, absvar
55

@@ -30,7 +30,7 @@ def construct_nurse_rostering(shifts_per_day=3, num_days=5, num_nurses=8, nurses
3030
if not model.solve():
3131
raise Exception("The problem has no solution")
3232

33-
C_T = list(model.constraints)
33+
C_T = list(set(toplevel_list(model.constraints)))
3434

3535
# Create the language:
3636
AV = absvar(2) # create abstract vars - as many as maximum arity

pycona/benchmarks/sudoku.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import cpmpy as cp
2-
2+
from cpmpy.transformations.normalize import toplevel_list
33
from ..answering_queries.constraint_oracle import ConstraintOracle
44
from ..problem_instance import ProblemInstance, absvar
55

@@ -29,7 +29,7 @@ def construct_sudoku(block_size_row, block_size_col, grid_size):
2929
for j in range(0, grid_size, block_size_col):
3030
model += cp.AllDifferent(grid[i:i + block_size_row, j:j + block_size_col]).decompose() # python's indexing
3131

32-
C_T = list(model.constraints)
32+
C_T = list(set(toplevel_list(model.constraints)))
3333

3434
# Create the language:
3535
AV = absvar(2) # create abstract vars - as many as maximum arity

0 commit comments

Comments
 (0)