Example #1
0
        public static IList <PermutationFound> SearchMany(IReadOnlyList <UnsignedPoint> points, int bitsPerDimension, int indexCount, int outlierSize, int noiseSkipBy, int reducedNoiseSkipBy, int maxTrials, int maxIterationsWithoutImprovement = 3, bool useSample = false, bool shouldCompact = false)
        {
            var parallel = 4;

            if (bitsPerDimension <= 0)
            {
                bitsPerDimension = HilbertSort.FindBitsPerDimension(points);
            }
            var optimizer = new OptimalPermutation(outlierSize, noiseSkipBy, reducedNoiseSkipBy, ScrambleHalfStrategy, bitsPerDimension)
            {
                MaxIterations = (maxTrials + (parallel / 2)) / parallel,
                MaxIterationsWithoutImprovement = maxIterationsWithoutImprovement,
                ParallelTrials = parallel,
                UseSample      = useSample,
            };

            return(optimizer.SearchMany(points, indexCount));
        }