public IAlgorithm<IList<IVertex>> GetAlgorithm(Parameters parameters)
 {
     var antFactory = new AntFactory();
     var prober = new Prober(parameters.Alpha, parameters.Betta);
     IGraph graph = new Graph.Graph(parameters.Matrix);
     var algorithm = new GreedyAlgorithm(antFactory, prober, parameters.IterationsWithoutChanges,
         parameters.Iterations, parameters.EvaporationRate, parameters.DefaultPheromone, parameters.GreedyRate, graph, parameters.Q);
     return algorithm;
 }
 public IAlgorithm<IGraph, IList<IVertex>> GetAlgorithm(double alpha, double beta, int iteration,
     int iterationWithouChanges)
 {
     var random = new Random(DateTime.Today.Date.Millisecond);
     var antFactory = new AntFactory();
     var selectionRules = new Dictionary<Type, ISelectRule> {{typeof (Ant), new SelectRule(random)}};
     var prober = new Prober(alpha, beta);
     var updateRule = new Dictionary<Type, IIncrimentRule>
     {
         {typeof (Ant), new StandartIncrimentRule(new Pheromone() {Value = 0.5})}
     };
     var algorithm = new StandartAlgorithm(antFactory, selectionRules, prober, updateRule, iterationWithouChanges,
         iteration);
     return algorithm;
 }