示例#1
0
文件: JolkaCSP.cs 项目: glakuub/CSP
        public JolkaCSP(Jolka jolka, IVariableSelectionHeuristics <string, JolkaVariable> variableSelectionheuristics)
        {
            _jolka = jolka;
            _variableSelectionHeuristics = variableSelectionheuristics;
            EMPTY_CHAR = jolka.Empty;

            var variables   = ParseVariables(jolka).ToArray();
            var domains     = CreateDmains(jolka, variables);
            var constraints = CreateConstraints(jolka, variables);

            _variableSelectionHeuristics.RegisterVariables(variables, domains);
            VariablesWithConstraints = new Tuple <JolkaVariable, Domain <string>, List <Constraint <string, JolkaVariable> > > [variables.Length];
            for (int i = 0; i < variables.Length; i++)
            {
                VariablesWithConstraints[i] = new Tuple <JolkaVariable, Domain <string>, List <Constraint <string, JolkaVariable> > >(variables[i], domains[i], constraints[i]);
            }
        }
示例#2
0
        public SudokuCSP(Sudoku sudoku, IVariableSelectionHeuristics <char, Variable <char> > variableSelectionHeuristics)
        {
            this._variableSelectionHeuristics = variableSelectionHeuristics;

            _rows    = sudoku.Board.Rows;
            _columns = sudoku.Board.Columns;
            _sudoku  = sudoku.DeepCopy();
            EMPTY    = sudoku.Empty;
            var vars = ParseVariables(_sudoku);
            var doms = CreateDomains(vars);
            var cons = CreateConstraints(_rows, _columns);

            //_indexMap = Enumerable.Range(0, vars.Length).ToArray();

            variableSelectionHeuristics.RegisterVariables(vars, doms);

            VariablesWithConstraints = new Tuple <Variable <char>, Domain <char>, List <Constraint <char, Variable <char> > > > [vars.Length];
            for (int i = 0; i < vars.Length; i++)
            {
                VariablesWithConstraints[i] = new Tuple <Variable <char>, Domain <char>, List <Constraint <char, Variable <char> > > >(vars[i], doms[i], cons[i]);
            }
        }