>> So what are we seeing technically?

Well, this module is all about sets and in discrete optimization problems we often

have sets with reasoning about sets of objects.

And here we've talked about how to represent sets and

how to make a decision about sets.

And we've seen at least three ways that we can model a set.

So we can use the built in set variables that MiniZinc has

some solve support directly and we can represent a set by basically

Boolean variables by saying which elements are in.

We can represent by zero one variables saying how many copies of an element

are in.

>> And of course when the set that we're dealing with may have special properties,

such as when their cardinality is fixed or bounded.

Then we can make use of an array to represent such sets.

>> Yeah, so the array representations are much, much more efficient if we're

selecting a very small number of elements from a very large set.

So we only really have to worry about the number of elements that we select.

>> Right. Of course there are advantages,

but there are also issues that we have to deal with

because they're using such representation we might end up

having multiple representation of the same set element.

>> Absolutely. And

this is a problem we'll see throughout the course.

A problem of symmetry, so where we have multiple arrays,

they can represent the same set and we basically need to add constraints,

which force, but only one of those representations will be left over.

>> What kind of constraints should we add?

>> So we add ordering constraints, as we've seen.

But it gets more complicated.

A pure ordering constraint is easy for the fixed cardinality set, but

when we have a bounded cardinality set, then we have a dummy element that we're

going to have to add to our representation.

And we may have to have duplicates of that.

>> Okay, so set is a very important topic.

>> So sets are critical to very many discrete optimization problems.

>> What do we do in the workshop?

>> So in the workshop we're going to be basically selecting a set,

exactly the problem we've sort of looked at through the entire module.

And here we're selecting a set of negotiators to negotiate the surrender

of the Bagua and there's some complex interactions between those sets.

And you can try, you should try solving this workshop problem using both

the direct set representation and using an array representation.

>> Mm-hm.

And my understanding is that besides having an upper bound on the cardinality,

the sets that we are dealing with in the workshop also has a lower bound as well.

>> Yes, but that is not too difficult to deal with.

>> Okay, so remember to try the problems before seeing the solution video.

>> So the second assignment is quite a bit more difficult than the first assignment.

The first assignment was deliberately very easy.

We're going to be selecting a set of warriors.

It's going to be very similar to the workshop.

And this is one of the things we'll try to make that the workshop problem will give

you a lot of practice for the methods you need for the assignment.

So selecting a set of warriors.

You can try different set representations, and

our grader will work regardless of what set representation you use.

>> Okay, have fun and see you after the next module.