geneva.actions.strategy¶
-
class
strategy.
Strategy
(in_actions, out_actions, environment_id=None)¶ Bases:
object
-
__init__
(in_actions, out_actions, environment_id=None)¶ Initialize self. See help(type(self)) for accurate signature.
-
act_on_packet
(packet, logger, direction='out')¶ Runs the strategy on a given scapy packet.
-
init_from_scratch
(num_in_trees, num_out_trees, num_in_actions, num_out_actions, disabled=None)¶ Initializes this individual by drawing random actions.
-
initialize
(logger, num_in_trees, num_out_trees, num_in_actions, num_out_actions, seed, disabled=None)¶ Initializes a new strategy object randomly.
-
mutate
(logger)¶ Top level mutation function for a strategy. Simply mutates the out and in trees.
-
mutate_dir
(trees, direction, logger)¶ Mutates a list of trees. Requires the direction the tree operates on (in or out).
-
pretty_print
()¶
-
pretty_str_forest
(forest)¶ Returns a string representation of a given forest (inbound or outbound)
-
run_on_packet
(packet, logger, direction)¶ Runs the strategy on a given packet given the forest direction.
-
str_forest
(forest)¶ Returns a string representation of a given forest (inbound or outbound)
-
-
strategy.
do_mate
(forest1, forest2)¶ Performs mating between two given forests (lists of trees). With 80% probability, a random tree from each forest are mated, otherwise, a random tree is swapped between them.
-
strategy.
mate
(ind1, ind2, indpb)¶ Executes a uniform crossover that modify in place the two individuals. The attributes are swapped according to the indpb probability.
-
strategy.
swap_one
(forest1, forest2)¶ Swaps a random tree from forest1 and forest2.
It picks a random element within forest1 and a random element within forest2, chooses a random index within each forest, and inserts the random element