FunctionSlot – function slots module

The function slot concept is large used by Pyevolve, the idea is simple, each genetic operator or any operator, can be assigned to a slot, by this way, we can add more than simple one operator, we can have for example, two or more mutator operators at same time, two or more evaluation functions, etc. In this FunctionSlot module, you’ll find the class FunctionSlot.FunctionSlot, which is the slot class.

class FunctionSlot.FunctionSlot(name='Anonymous Function', rand_apply=False)

FunctionSlot Class - The function slot

Example:
>>> genome.evaluator.set(eval_func)
>>> genome.evaluator[0]
<function eval_func at 0x018C8930>
>>> genome.evaluator
Slot [Evaluation Function] (Count: 1)
          Name: eval_func
>>> genome.evaluator.clear()
>>> genome.evaluator
Slot [Evaluation Function] (Count: 0)
          No function
You can add weight to functions when using the rand_apply paramter:
>>> genome.evaluator.set(eval_main, 0.9)
>>> genome.evaluator.add(eval_sec,  0.3)
>>> genome.evaluator.setRandomApply()

In the above example, the function eval_main will be called with 90% of probability and the eval_sec will be called with 30% of probability.

There are another way to add functions too:
>>> genome.evaluator += eval_func
Parameters:
  • name – the slot name
  • rand_apply – if True, just one of the functions in the slot will be applied, this function is randomly picked based on the weight of the function added.
add(func, weight=0.5)

Used to add a function to the slot

Parameters:
  • func – the function to be added in the slot
  • weight – used when you enable the random apply, it’s the weight of the function for the random selection

New in version 0.6: The weight parameter.

apply(index, obj, **args)

Apply the index function

Parameters:
  • index – the index of the function
  • obj – this object is passes as parameter to the function
  • args – this args dictionary is passed to the function
applyFunctions(obj=None, **args)

Generator to apply all function slots in obj

Parameters:
  • obj – this object is passes as parameter to the function
  • args – this args dictionary is passed to the function
clear()
Used to clear the functions in the slot
isEmpty()
Return true if the function slot is empy
set(func, weight=0.5)

Used to clear all functions in the slot and add one

Parameters:
  • func – the function to be added in the slot
  • weight – used when you enable the random apply, it’s the weight of the function for the random selection

New in version 0.6: The weight parameter.

Note

the method set of the function slot remove all previous functions added to the slot.

setRandomApply(flag=True)

Sets the random function application, in this mode, the function will randomly choose one slot to apply

Parameter:flag – True or False


Previous topic

DBAdapters – database adapters for statistics

Next topic

Statistics – statistical structure module

This Page