Techniques should discover and use mutators beyond those returned by Parameter.manipulators()
I'm writing a custom ComplexParameter class that provides a mutator method named op3_homologous_crossover. OpenTuner's existing techniques seem entirely unwilling to invoke it.
All uses of Parameter.manipulators() only pass one configuration, so only bound methods of the form self.op1_foo can be returned there; thus this isn't a place to advertise non-unary mutators.
Given that the point of the opX_ prefix was to make mutators generically discoverable, techniques should be able to use them automatically.
Code in generic techniques that queries the types of parameters is especially suspicious, such this check for permutation parameters of large size. Techniques shouldn't need to know details like this, or at least should have a reasonable default action for unrecognized parameters.
Agreed, seems like that crossover code has been special cased for permutations. We should make them more general.
On Wed, Jun 1, 2016 at 9:05 PM, Jeffrey Bosboom [email protected] wrote:
Code in generic techniques that queries the types of parameters is especially suspicious, such this check for permutation parameters of large size https://github.com/jansel/opentuner/blob/50e5eec9cf934b9117611280ef94a443eaab1f35/opentuner/search/evolutionarytechniques.py#L126. Techniques shouldn't need to know details like this, or at least should have a reasonable default action for unrecognized parameters.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jansel/opentuner/issues/83#issuecomment-223190351, or mute the thread https://github.com/notifications/unsubscribe/AAglPOraxVRXYKkPlHW5ACLGIb2m1_gtks5qHlaBgaJpZM4IsLr2 .