class_docstr: Algorithm framework with 3 main functions:
  
  - :code:`ask()` which provides a candidate on which to evaluate the function to optimize.
  - :code:`tell(candidate, loss)` which lets you provide the loss associated to points.
  - :code:`provide_recommendation()` which provides the best final candidate.
  
  Typically, one would call :code:`ask()` num_workers times, evaluate the
  function on these num_workers points in parallel, update with the fitness value when the
  evaluations is finished, and iterate until the budget is over. At the very end,
  one would call provide_recommendation for the estimated optimum.
  
  This class is abstract, it provides internal equivalents for the 3 main functions,
  among which at least :code:`_internal_ask_candidate` has to be overridden.
  
  Each optimizer instance should be used only once, with the initial provided budget
  
  Parameters
  ----------
  parametrization: int or Parameter
      either the dimension of the optimization space, or its parametrization
  budget: int/None
      number of allowed evaluations
  num_workers: int
      number of evaluations which will be run in parallel at once
class_docstr_tok: ["Algorithm","framework","with","3","main","functions",":","-",":","code",":","`","ask","(",")","`","which","provides","a","candidate","on","which","to","evaluate","the","function","to","optimize",".","-",":","code",":","`","tell","(","candidate",",","loss",")","`","which","lets","you","provide","the","loss","associated","to","points",".","-",":","code",":","`","provide_recommendation","(",")","`","which","provides","the","best","final","candidate",".","Typically",",","one","would","call",":","code",":","`","ask","(",")","`","num_workers","times",",","evaluate","the","function","on","these","num_workers","points","in","parallel",",","update","with","the","fitness","value","when","the","evaluations","is","finished",",","and","iterate","until","the","budget","is","over",".","At","the","very","end",",","one","would","call","provide_recommendation","for","the","estimated","optimum",".","This","class","is","abstract",",","it","provides","internal","equivalents","for","the","3","main","functions",",","among","which","at","least",":","code",":","`","_internal_ask_candidate","`","has","to","be","overridden",".","Each","optimizer","instance","should","be","used","only","once",",","with","the","initial","provided","budget","Parameters","--","--","--","--","--","parametrization",":","int","or","Parameter","either","the","dimension","of","the","optimization","space",",","or","its","parametrization","budget",":","int\/None","number","of","allowed","evaluations","num_workers",":","int","number","of","evaluations","which","will","be","run","in","parallel","at","once"]
docstr: int: Number of time the :code:`tell` method was called on candidates that were not asked for by the optimizer
  (or were suggested).
docstr_tok: ["int",":","Number","of","time","the",":","code",":","`","tell","`","method","was","called","on","candidates","that","were","not","asked","for","by","the","optimizer","(","or","were","suggested",")","."]
code: def num_tell_not_asked(self) -> int:
      """int: Number of time the :code:`tell` method was called on candidates that were not asked for by the optimizer
      (or were suggested).
      """
      return self._num_tell_not_asked
  
imports: import pickle
  import warnings
  from pathlib import Path
  from numbers import Real
  from collections import deque
  import numpy
  import nevergrad.common.typing
  from nevergrad.parametrization import parameter
  from nevergrad.common import tools
  from nevergrad.common import errors
  from nevergrad.common.decorators import Registry
  from .None import utils
  from .None import multiobjective
label_desc: Use image node_id 10 for calling the Optimizer obj's underlying member method code with example usage: obj.num_tell_not_asked() and returns: self