def invLinear(rlz,**kwargs):
  """
    Inverse linear fitness method
    .. math::

    fitness = \\frac{1}{a * obj + b * penalty}

    @ In, rlz, xr.Dataset, containing the evaluation of a certain
              set of individuals (can be the initial population for the very first iteration,
              or a population of offsprings)
    @ In, kwargs, dict, dictionary of parameters for this fitness method:
          objVar, string, the name of the objective variable
          a, float, linear coefficient for the objective function (default = 1.0)
          penalty, float, measuring the severity of the constraint violation. (default = 1.0)
          b, float, linear coefficient for the penalty measure. (default = 1.0)
    @ Out, fitness, float, the fitness function of the given objective corresponding to a specific chromosome.
  """
  if kwargs['a'] == None:
    a = 1.0
  else:
    a = kwargs['a']
  if kwargs['b'] == None:
    b = 1.0
  else:
    b = kwargs['b']
  if kwargs['penalty'] == None:
    penalty = 0.0
  else:
    penalty = kwargs['penalty']

  objVar = kwargs['objVar']
  fitness = 1.0/(a * rlz[objVar] + b * penalty)
  return fitness