>> So technically we've seen two different topics.

We've looked at packing and we've looked at symmetry and dominance.

So in the packing we started by looking at packing squares,

which is a simple packing problem.

And we introduce the defend global constraint which allows us

to represent non-overlap of 2D rectangles.

>> Then we started looking at the packing of more complex shapes,

which is composed of a bunch of rectangles.

We call this rectilinear block shapes.

We first consider packing them without rotation.

>> Right, and then we've moved onto packing rectilinear shapes with rotation,

which is a quite complicated packing problem now.

>> We also introduced the geost family of globals,

that help us to solve such packing problem more efficiently.

>> Absolutely, geost is more or less exactly designed for rectilinear packing,

where I can have multiple configurations to represent the same shape.

And in this case,

we use the multiple configurations to represent rotations of the shape.

>> The next topic is symmetries.

We looked at variable symmetries and

also how the lex leader method is able to remove variable symmetries?

>> Yes so we also have to think about that sometimes our model has

symmetries in it but if we reformulate it we could get rid of those symmetries.

So we talked about that briefly.

>> We also looked at matrix models which has rows and

columns and we have row and column symmetries.

And we also talked about how the double x constraints is able to remove such

symmetries.

>> Absolutely,

typically in a matrix model there actually are too many symmetries to remove.

And so we have to restrict ourselves, and double x is a way of removing some

symmetries, many of them but not all of them.

>> We also looked at the value symmetries again.

We also give the formal definition, in addition to using the value precede chain global

constraint to remove such symmetries.

We also demonstrate how value symmetries in one viewpoint would become

variable symmetries in another view point for permutation problems.

So that the Lex leader method would be able to use for removing

variable symmetries which are value symmetries in the other viewpoint.

>> And finally we looked at dominance breaking.

So dominance is a generalization of symmetry and

very applicable to optimization problems.

And dominance breaking says let's concentrate only on the solutions where we

don't know that there's some better solution.

So dominance is a way of mapping one solution to a better solution.

>> Wow, all the symmetry breaking global constraints that we talk about earlier,

they're all available in MiniZinc Symmetry breaking library.

>> Absolutely, and that's something that you'll want to be using when you're

looking at discrete optimization problems where you see symmetries.

>> Okay, applications,

of course, packing is an application.

>> Packing is an application and particularly we looked at, well,

we hit in one of our problem, carpet cutting.

So that's a real world application of packing which is actually quite

complicated.

And where we're trying to cut a carpet out of a roll of carpet with the least amount

of space, and that's an example where this kind of discrete optimization technology

can be very, very powerful and save a lot of money to the carpet layers.

>> And of course, this is a technology that you would benefit from

if you're buying house for more than one time.