private void Register()
 {
     SelectionFactory.Register("roulette", () => new RouletteSelection());
     CrossoverOperatorFactory.Register("OX", () => new OrderCrossover());
     CrossoverOperatorFactory.Register("CX", () => new CycleCrossover());
     CrossoverOperatorFactory.Register("PMX", () => new PartiallyMatchedCrossover());
     CrossoverOperatorFactory.Register("UOX", () => new UniformBasedOrderCrossover());
     MutationOperatorFactory.Register("swap", () => new SwapOperator());
     MutationOperatorFactory.Register("insertion", () => new InsertionOperator());
     MutationOperatorFactory.Register("inversion", () => new InversionOperator());
     MutationOperatorFactory.Register("displacement", () => new DisplacementOperator());
     HeuristicsFactory.Register("SA", () => new SimulatedAnnealing());
 }