When used in practice, having even a small number of tags seems to over constrain the solver.
We should move them to an objective function with the goal being to minimise the number of tagged talks that share a session with a non tagged tag.
To be able to combine this with other objective functions we need to be able to added weighted versions of each objective function together to create a new objective function (this gets messy and ends up with users having to choose appropriate weights).