def target_optimizer_arguments(self):
variables = self.target_network.get_variables() + [<EOL>variable for name in sorted(self.target_distributions)<EOL>for variable in self.target_distributions[name].get_variables()<EOL>]<EOL>source_variables = self.network.get_variables() + [<EOL>variable for name in sorted(self.distributions)<EOL>for variable in self.distributions[name].get_variables()<EOL>]<EOL>arguments = dict(<EOL>time=self.global_timestep,<EOL>variables=variables,<EOL>source_variables=source_variables<EOL>)<EOL>if self.global_model is not None:<EOL><INDENT>arguments['<STR_LIT>'] = self.global_model.target_network.get_variables() + [<EOL>variable for name in sorted(self.global_model.target_distributions)<EOL>for variable in self.global_model.target_distributions[name].get_variables()<EOL>]<EOL><DEDENT>return arguments<EOL>
Returns the target optimizer arguments including the time, the list of variables to  
optimize, and various functions which the optimizer might require to perform an update  
step.

Returns:
    Target optimizer arguments as dict.