Exemple #1
0
        private static void RunHomework4()
        {
            var path             = string.Format(Path, 40);
            var instanceProvider = new TextReaderInstanceProvider(() => new StreamReader(path));

            var exactSolver     = new DynamicByPriceSolver();
            var heuristicSolver = new HeuristicSolver();

            Console.WriteLine("Solving by heuristic");
            Console.WriteLine("===================================================");
            IRunner runner = new CompareRunner(instanceProvider, exactSolver, heuristicSolver);

            runner.Run();
            Console.WriteLine();

            Console.WriteLine("Solving by simulated annealing");
            Console.WriteLine("===================================================");
            Console.WriteLine();

            const int    baseInitTemperature   = 100;
            const int    baseFrozenTemperature = 1;
            const double baseCoolingCoef       = 0.9;
            const int    baseEquilibriumCoef   = 2;

            {
                Console.WriteLine("By temperature");
                Console.WriteLine("---------------------------------------------------");
                var temperatures = new[] { 50, 100, 200, 500 };
                foreach (var temperature in temperatures)
                {
                    RunSimulatedAnnealingForConfiguration(instanceProvider, temperature, baseFrozenTemperature, baseCoolingCoef, baseEquilibriumCoef);
                }
            }

            {
                Console.WriteLine("By cooling coeficient");
                Console.WriteLine("---------------------------------------------------");
                var coolingCoefs = new[] { 0.8, 0.85, 0.9, 0.95 };
                foreach (var coolingCoef in coolingCoefs)
                {
                    RunSimulatedAnnealingForConfiguration(instanceProvider, baseInitTemperature, baseFrozenTemperature, coolingCoef, baseEquilibriumCoef);
                }
            }

            {
                Console.WriteLine("By equilibrium coeficient");
                Console.WriteLine("---------------------------------------------------");
                var equilibriumCoefs = new[] { 1, 2, 3, 5 };
                foreach (var equilibriumCoef in equilibriumCoefs)
                {
                    RunSimulatedAnnealingForConfiguration(instanceProvider, baseInitTemperature, baseFrozenTemperature, baseCoolingCoef, equilibriumCoef);
                }
            }

            Console.ReadLine();
        }
Exemple #2
0
        private static void RunHomework1(int size)
        {
            Console.WriteLine($"Size {size}:");

            var path              = string.Format(Path, size);
            var instanceProvider  = new TextReaderInstanceProvider(new StreamReader(path));
            var brutteForceSolver = new BrutteForceSolver();
            var heuristicSolver   = new HeuristicSolver();

            var runner = new CompareRunner(instanceProvider, brutteForceSolver, heuristicSolver);

            runner.Run();
        }
        private void TestSolverOnlyPrice(ISolver solver)
        {
            var instanceProvider  = new TextReaderInstanceProvider(new StreamReader(string.Format(Path, 10)));
            var brutteForceSolver = new BrutteForceSolver();

            foreach (var instance in instanceProvider.GetInstances())
            {
                var res1 = brutteForceSolver.Solve(instance);
                var res2 = solver.Solve(instance);

                Assert.AreEqual(res1.Price, res2.Price, $"Prices are not equal for instance ${instance.Id}.");
            }
        }
Exemple #4
0
        private static void RunHomework2Compare(int size)
        {
            Console.WriteLine($"Size {size}:");

            var path             = string.Format(Path, size);
            var instanceProvider = new TextReaderInstanceProvider(new StreamReader(path));
            ////var solver1 = new DynamicByPriceSolver();
            var solver1 = new DynamicByWeightSolver();
            ////var solver2 = new FptasSolver(0.1);
            ////var solver2 = new FptasSolver(0.2);
            var solver2 = new FptasSolver(0.5);

            var runner = new CompareRunner(instanceProvider, solver1, solver2);

            runner.Run();
        }
Exemple #5
0
        private static void RunHomework2(int size)
        {
            Console.WriteLine();
            Console.WriteLine($"Size {size}:");

            var path             = string.Format(Path, size);
            var instanceProvider = new TextReaderInstanceProvider(new StreamReader(path));
            ////var solver = new BrutteForceRecursiveSolver();
            ////var solver = new BranchAndBoundSolver();
            ////var solver = new DynamicByWeightSolver();
            var solver = new DynamicByPriceSolver();

            var runner = new SimpleRunner(instanceProvider, solver);

            runner.Run();
        }