Пример #1
0
 public Annealing(string path)
 {
     seatInfo = new SeatInfo();
     seatInfo.ReadFile(path);
     bestSoFar = new SeatingChart(seatInfo);
     bestSoFar.RandomChart();
 }
Пример #2
0
 public Annealing(string path)
 {
     seatInfo = new SeatInfo();
     seatInfo.ReadFile(path);
     bestSoFar = new SeatingChart(seatInfo);
     bestSoFar.RandomChart();
 }
Пример #3
0
        static void Main(string[] args)
        {
            DateTime start = DateTime.Now;

            if (args.Length == 0)
            {
                Console.WriteLine("Argument: ");
                Console.WriteLine("c <file>: complete space state search using seating info from <file>");
                Console.WriteLine("l <file>: local search using seating info from <file>");
                Console.WriteLine("s <file>: stimulated annealing using seating info from <file>");
                Console.WriteLine("a <file>: auto mode. Will try the most suitable search method");
                return;
            }

            SeatInfo si = new SeatInfo();

            si.ReadFile(args[1]);
            chart = new int[si.size + 1];
            score = 0;

            switch (args[0])
            {
            case "c":
                Console.Write("Complete search...");
                CompleteSearch(si);
                break;

            case "l":
                Console.Write("Local search... ");
                StochasticSearch(si);
                break;

            case "s":
                Console.WriteLine("Stimulated annealing... ");
                Annealing    sa = new Annealing(si);
                SeatingChart sc = sa.Anneal();
                Array.Copy(sc.chart, chart, sc.size + 1);
                score = sc.score;
                break;

            case "a":
                if (si.size <= 11)
                {
                    Console.Write("Complete search...");
                    CompleteSearch(si);
                }
                else
                {
                    Console.Write("Local search... ");
                    StochasticSearch(si);
                }
                break;

            default:
                Console.WriteLine("Argument: ");
                Console.WriteLine("c <file>: complete space state search using seating info from <file>");
                Console.WriteLine("l <file>: local search using seating info from <file>");
                Console.WriteLine("s <file>: stimulated annealing using seating info from <file>");
                Console.WriteLine("a <file>: auto mode. Will try the most suitable search method");
                return;
            }

            if (debug)
            {
                si.Display();
            }
            Console.WriteLine(" finished!");
            DisplaySeatingChart(chart, score);
            Console.WriteLine("Run time: " + (DateTime.Now - start));

            //int[] a = AssignRandomSeat(10);
            //for (int i = 1; i <= 10; ++i)
            //{
            //    Console.Write(a[i] + ", ");
            //}

            Console.ReadLine();
        }