anchor.diff:  %% @doc Evaluates a given solution. Higher is better.
   -spec evaluation(solution()) -> float().
   evaluation(Solution) ->
  +    local_search(Solution).
  +
  +-spec energy(solution()) -> float().
  +energy(Solution) ->
       L = length(Solution),
       Cs = [foldzip(drop(Solution, K), Solution)
           || K <- lists:seq(1, L-1)],
  
positive.code: foldzip([HA|TA], [HB|TB], Acc) ->
      foldzip(TA, TB, Acc + dot(HA,HB)).
  
  dot(N,N) -> 1;
  dot(_,_) -> -1.
  
  
negative.code: mutation(Solution) ->
      lists:map(fun(X) -> 
          case random:uniform() < emas_config:mutationRate() of
              true -> fnot(X);
              _ -> X
          end
      end, Solution).
  