Example #1
0
        static void Algorithm()
        {
            var    maxS = myValues[4];
            double max  = myKeys[4];

            int N = 10;

            for (int i = 0; i < N; i++)
            {
                Console.WriteLine($"Step # {i + 1}, current max = {max}, current maxS = {General.BitSetAsString (maxS)}");
                var aNeighborhood = FindNeighborhood(max);
                PrintNeighborhood(aNeighborhood);
                if (aNeighborhood.Count != 0)
                {
                    var aMax = aNeighborhood.Max();
                    Console.WriteLine($"The best code in neighborhood: {aMax}");
                    if (aMax > max)
                    {
                        maxS = myValues [myKeys.IndexOf(aMax)];
                        max  = aMax;
                        Console.WriteLine($"New maximum: {max}");
                    }
                    else
                    {
                        break;
                    }
                }

                Console.Write(Environment.NewLine);
            }

            Console.WriteLine($"max : {max}");
            Console.WriteLine($"maxS : {General.BitSetAsString (maxS)}");
        }