SV updates

The three-input mixer method is not necessarily decomposable, especially
for complex types. For example, for the nominal-valued parameters (enum,
selector) we may even use a majority rule when two inputs are the same. It
can also be helpful to pack the logic of composing two 2-input mixers into
the method and make the 3-input methods available to all techniques.

I agree that any non-trivial action may be better than doing nothing
though, at least for the existing parameters. I'll push the update later.

Also, sorry about missing the pull.

Thanks,

Minshu


On Thu, Jun 19, 2014 at 2:40 PM, Jason Ansel <notifications@github.com>
wrote:

> In opentuner/search/manipulator.py:
>
> >    def sv_swarm(self, position, global_best, local_best, *args, **kwargs):
> > -    raise NotImplementedError()
> > +    log.debug('%s is not updated', self.__class__)
>
> If this is a 3-parent random mutation -- perhaps the default
> implementation could be 2 calls to a 2-parent random mutation.
>
> A, B, C = random.sample([A, B, C], 3)  # shuffle order of parents
> mutate3(A, B, C) = mutate2(A, mutate2(B, C))
>
> This might be better than doing nothing for parameters without this method
> implemented.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/jansel/opentuner/pull/32/files#r13985646>.
>