NLP for CP
Addressing Constraint Programming with Natural Language Processing
Home
Resources
Publications
Correct
predictions are in
blue
. If we detect only a subset of a labelled sentence, we highlight the caught part as
blue
, the missing part
light blue.
False positives
are in
green
and
false negatives
are in
red
.
Problem Carpet_Cutting — Constraint detection
A
formal
specification
of
an
instance
I
of
the
carpet
cutting
problem
is
defined
as
follows
.
We
are
given
3
sets
of
disjoint
objects
:
-LRB-
i
-RRB-
Room
is
a
set
of
room
carpets
.
Each
$
c
\
in
Room
$
is
defined
by
a
set
of
rectangles
$
c.rect
$
.
For
each
rectangle
$
r
\
in
c.rect
$
we
have
a
length
$
r.len
$
and
width
$
r.wid
$
-LRB-
in
the
0-degrees
orientation
-RRB-
together
with
an
offset
$
-LRB-
r.ox
,
r.oy
-RRB-
$
from
the
origin
of
the
room
carpet
-LRB-
in
the
0-degrees
orientation
-RRB-
.
Moreover
,
each
$
c
\
in
Room
$
is
also
given
a
set
of
allowable
orientations
$
c.ori
\
subset
-LCB-
0-degrees
,
90-degrees
,
180-degrees
,
270-degrees
-RCB-
$
.
-LRB-
ii
-RRB-
Str
is
a
set
of
stair
carpets
.
For
each
$
c
\
in
Str
$
we
have
a
width
$
c.wid
$
,
step
length
$
c.step
$
and
number
of
steps
$
c.n
$
as
well
as
a
maximum
number
of
pieces
$
c.pcs
$
and
minimum
steps
per
piece
length
$
c.min
$
.
-LRB-
iii
-RRB-
Edg
is
a
set
of
edge
filler
carpets
.
For
each
$
c
\
in
Edg
$
we
have
a
width
$
c.wid
$
,
length
$
c.len
$
as
well
as
a
maximum
number
of
pieces
$
c.pcs
$
and
minimum
length
per
piece
length
$
c.min
$
.
The
remaining
part
of
the
model
is
a
set
$
Pile
\
subset
Room
$
which
determines
which
carpets
must
be
pile
aligned
,
i.e.
$
c.ori
=
-LCB-
0-degrees
,
180-degrees
-RCB-
$
for
each
$
c
\
in
Pile
$
,
and
a
roll
width
RW
.
Hence
,
I
=
-LRB-
Room
,
Str
,
Edg
,
Pile
,
RW
-RRB-
.
Note
that
all
stair
and
edge
filler
carpets
must
be
pile
aligned
,
but
this
constraint
can
be
neglected
,
since
the
pile
orientations
are
symmetrical
for
rectangles
as
it
is
for
parts
of
these
carpets
.
The
aim
is
to
find
an
allowable
partitioning
$
c.part
$
of
each
carpet
$
c
\
in
Str
\
union
Edg
$
into
rectangles
,
and
position
$
-LRB-
x
,
y
-RRB-
$
and
allowed
orientation
for
each
rectangle
r
appearing
in
a
room
carpet
such
that
:
none
of
the
rectangles
overlap
;
each
of
the
rectangles
in
a
room
carpet
are
correctly
offset
from
the
origin
of
the
carpet
;
all
pile
aligned
carpets
are
aligned
in
the
same
orientation
;
the
roll
width
and
length
constraints
are
met
,
the
minimal
steps
and
maximal
break
constraints
for
the
stair
carpets
are
satisfied
,
and
the
roll
length
RL
is
minimised
.
Problem Carpet_Cutting — Detection of the decisions and objects to be modeled
A
formal
specification
of
an
instance
I
of
the
carpet
cutting
problem
is
defined
as
follows
.
We
are
given
3
sets
of
disjoint
objects
:
-LRB-
i
-RRB-
Room
is
a
set
of
room
carpets
.
Each
$
c
\
in
Room
$
is
defined
by
a
set
of
rectangles
$
c.rect
$
.
For
each
rectangle
$
r
\
in
c.rect
$
we
have
a
length
$
r.len
$
and
width
$
r.wid
$
-LRB-
in
the
0-degrees
orientation
-RRB-
together
with
an
offset
$
-LRB-
r.ox
,
r.oy
-RRB-
$
from
the
origin
of
the
room
carpet
-LRB-
in
the
0-degrees
orientation
-RRB-
.
Moreover
,
each
$
c
\
in
Room
$
is
also
given
a
set
of
allowable
orientations
$
c.ori
\
subset
-LCB-
0-degrees
,
90-degrees
,
180-degrees
,
270-degrees
-RCB-
$
.
-LRB-
ii
-RRB-
Str
is
a
set
of
stair
carpets
.
For
each
$
c
\
in
Str
$
we
have
a
width
$
c.wid
$
,
step
length
$
c.step
$
and
number
of
steps
$
c.n
$
as
well
as
a
maximum
number
of
pieces
$
c.pcs
$
and
minimum
steps
per
piece
length
$
c.min
$
.
-LRB-
iii
-RRB-
Edg
is
a
set
of
edge
filler
carpets
.
For
each
$
c
\
in
Edg
$
we
have
a
width
$
c.wid
$
,
length
$
c.len
$
as
well
as
a
maximum
number
of
pieces
$
c.pcs
$
and
minimum
length
per
piece
length
$
c.min
$
.
The
remaining
part
of
the
model
is
a
set
$
Pile
\
subset
Room
$
which
determines
which
carpets
must
be
pile
aligned
,
i.e.
$
c.ori
=
-LCB-
0-degrees
,
180-degrees
-RCB-
$
for
each
$
c
\
in
Pile
$
,
and
a
roll
width
RW
.
Hence
,
I
=
-LRB-
Room
,
Str
,
Edg
,
Pile
,
RW
-RRB-
.
Note
that
all
stair
and
edge
filler
carpets
must
be
pile
aligned
,
but
this
constraint
can
be
neglected
,
since
the
pile
orientations
are
symmetrical
for
rectangles
as
it
is
for
parts
of
these
carpets
.
The
aim
is
to
find
an
allowable
partitioning
$
c.part
$
of
each
carpet
$
c
\
in
Str
\
union
Edg
$
into
rectangles
,
and
position
$
-LRB-
x
,
y
-RRB-
$
and
allowed
orientation
for
each
rectangle
r
appearing
in
a
room
carpet
such
that
:
none
of
the
rectangles
overlap
;
each
of
the
rectangles
in
a
room
carpet
are
correctly
offset
from
the
origin
of
the
carpet
;
all
pile
aligned
carpets
are
aligned
in
the
same
orientation
;
the
roll
width
and
length
constraints
are
met
,
the
minimal
steps
and
maximal
break
constraints
for
the
stair
carpets
are
satisfied
,
and
the
roll
length
RL
is
minimised
.
Back to list