Exemplo n.º 1
0
        /**
         * Resets the wave to it's original state
         */
        public Resolution Clear()
        {
            wave = new Wave(frequencies.Length, indexCount);

            if (backtrack)
            {
                backtrackItems        = new Deque <IndexPatternItem>();
                backtrackItemsLengths = new Deque <int>();
                backtrackItemsLengths.Push(0);
                prevChoices = new Deque <IndexPatternItem>();
            }

            status        = Resolution.Undecided;
            this.trackers = new List <ITracker>();
            pickHeuristic = pickHeuristicFactory(this);

            patternModelConstraint.Clear();

            if (status == Resolution.Contradiction)
            {
                return(status);
            }

            InitConstraints();

            return(status);
        }
Exemplo n.º 2
0
        /**
         * Resets the wave to it's original state
         */
        public Resolution Clear()
        {
            wave = new Wave(frequencies.Length, indexCount);

            if (backtrack)
            {
                backtrackItems        = new Deque <IndexPatternItem>();
                backtrackItemsLengths = new Deque <int>();
                backtrackItemsLengths.Push(0);
                prevChoices = new Deque <IndexPatternItem>();
            }

            status        = Resolution.Undecided;
            this.trackers = new List <ITracker>();
            if (frequencySets != null)
            {
                var entropyTracker = new ArrayPriorityEntropyTracker(wave, frequencySets, topology.Mask);
                entropyTracker.Reset();
                AddTracker(entropyTracker);
                pickHeuristic = new ArrayPriorityEntropyHeuristic(entropyTracker, randomDouble);
            }
            else
            {
                var entropyTracker = new EntropyTracker(wave, frequencies, topology.Mask);
                entropyTracker.Reset();
                AddTracker(entropyTracker);
                pickHeuristic = new EntropyHeuristic(entropyTracker, randomDouble);
            }

            patternModelConstraint.Clear();

            if (status == Resolution.Contradiction)
            {
                return(status);
            }

            InitConstraints();

            return(status);
        }