private static ISearchStrategy LS2() => new LS(
     initalise: new GreedyInitalise(),
     neighbourhood: new TwoOpt(),
     step: new LowestCost(),
     terminate: TerminalStrategies.FixedItterations(1),
     name: "Local Search - Greedy"
     );
 /// <summary>
 /// Generates a list of available searches
 /// </summary>
 /// <param name="numberOfItterations">Number of iterations the searches should run for (may be ignored by some searches eg Greedy Search)</param>
 /// <returns>A list of searches</returns>
 public static List <ISearchStrategy> GenerateSearchesItterations(int numberOfItterations = DEFAULT_ITTERATIONS) => GenerateSearches(TerminalStrategies.FixedItterations(numberOfItterations));
 /// <summary>
 /// Generates a list of available searches
 /// </summary>
 /// <param name="TimeOut">Time in ms that each search should run (may be ignored by some searches eg Greedy Search)</param>
 /// <returns>A list of searches</returns>
 public static List <ISearchStrategy> GenerateSearchesTimeOut(float TimeOut = DEFAULT_TIMEOUT) => GenerateSearches(TerminalStrategies.TimeOut(TimeOut));