code: def ga_optimise_from_args(
      func_caller,
      worker_manager,
      max_capital,
      mode,
      mutation_op,
      is_rand=False,
      crossover_op=None,
      options=None,
      reporter="default",
  ):
      """GA optimisation from args."""
      options = load_options(ga_opt_args, partial_options=options)
      options.mode = mode
      optimiser_class = GARandOptimiser if is_rand else GAOptimiser
      return (
          optimiser_class(
              func_caller,
              worker_manager,
              mutation_op,
              crossover_op,
              options,
              reporter,
          )
      ).optimise(max_capital)
  
imports: from argparse import Namespace
  from numpy.random import choice
  from .blackbox_optimiser import BlackboxOptimiser, blackbox_opt_args
  from ..utils.general_utils import sample_according_to_exp_probs
  from ..utils.option_handler import get_option_specs, load_options
label_desc: Use image node_id 1 for calling a global function with example usage: ga_optimise_from_args(func_caller, worker_manager, max_capital, mode, mutation_op, is_rand, crossover_op, options, reporter) and returns: optimiser_class