Exemplo n.º 1
0
        private static String sv(CPInstance instance)
        {
            String o = "CONSTRAINT PROGRAMMING INSTANCE\n";

            o += "--VARIABLES--\n";

            foreach (Variable v in instance.variables.Values)
            {
                o += v.getSerialization();
                o += "\n";
            }

            o += "--CONSTRAINTS--\n";



            foreach (Constraint c in instance.constraints)
            {
                o += c.getSerialization();
                o += "\n";
            }


            o += "--OPTIMIZATION GOALS--\n";

            foreach (OptimizationGoal g in instance.optimizationGoals)
            {
                o += g.getSerialization();
                o += "\n";
            }



            return(o);
        }
Exemplo n.º 2
0
 public AddConstraintAction(Constraint c, CPInstance i, List <Variable> selectedVars)
 {
     this.c            = c;
     this.i            = i;
     this.selectedVars = new List <Variable>(selectedVars);
     c.addVariables(selectedVars);
 }
Exemplo n.º 3
0
        public static Boolean save(CPInstance instance)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.Filter           = "Constraint Programming Instance files (*.cpi)|*.cpi";
            saveFileDialog1.FilterIndex      = 1;
            saveFileDialog1.RestoreDirectory = true;

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                System.IO.File.WriteAllText(saveFileDialog1.FileName, sv(instance));
            }

            return(false);
        }
Exemplo n.º 4
0
        public CountXYConstraint(String selectedVar, String countedVar, String operatorVar, CPInstance i)
        {
            this.selectedVar = selectedVar;
            this.countedVar  = countedVar;
            this.operatorVar = operatorVar;

            lastVar   = selectedVar;
            lastCount = countedVar;
            lastOP    = operatorVar;

            Variable output = null;

            if (i.variableExists(countedVar))
            {
                lastWasVar = true;
                isVar      = true;
                output     = i.getVarByName(countedVar);
            }
            else
            {
                lastWasVar = false;
                isVar      = false;
            }

            base.variables = new List <Variable>();

            if (output != null)
            {
                variables.Add(output);
                base.involvedVariables().Add(output);
                output.usedInConstraint(this);
            }
        }
Exemplo n.º 5
0
        public static CPInstance load(DataGridView grid)
        {
            OpenFileDialog file = new OpenFileDialog();

            if (file.ShowDialog() == DialogResult.OK)
            {
                String[] data  = System.IO.File.ReadAllLines(file.FileName);
                int      index = 2;


                CPInstance i = new CPInstance(200, 200);


                // Vars

                while (index < data.Length && !data[index].StartsWith("--CONSTRAINTS--"))
                {
                    i.addVariable(Variable.loadVar(data[index], grid));


                    index++;
                }

                index++;



                // Constraints

                while (index < data.Length && !data[index].StartsWith("--OPTIMIZATION GOALS--"))
                {
                    try
                    {
                        String[]   values      = data[index].Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                        Type       elementType = Type.GetType(values[0]);
                        MethodInfo f           = elementType.GetMethod("fromSerialization");
                        Constraint c           = (Constraint)f.Invoke(null, new Object[] { data[index], i });

                        if (c != null)
                        {
                            i.addConstraint(c);
                        }
                    }
                    catch (Exception e)
                    {
                        throw e;
                    }



                    index++;
                }

                index++;



                // Opt Goals

                while (index < data.Length)
                {
                    Variable v     = OptimizationGoal.loadVar(i, data[index]);
                    String   value = OptimizationGoal.loadValue(data[index]);

                    i.setOptTo(v, value);


                    index++;
                }

                return(i);
            }

            return(null);
        }
Exemplo n.º 6
0
        public RouteConstraint(string lengthVar, int[][] distances, List <int> domain, CPInstance i)

        {
            this.lengthVar = lengthVar;
            this.distances = distances;
            this.domain    = domain;


            lastLengthVar = lengthVar;
            lastDistances = distances;
            lastDomain    = domain;

            Variable output = null;

            if (i.variableExists(lengthVar.Trim()))
            {
                lastWasVar = true;
                output     = i.getVarByName(lengthVar.Trim());
            }
            else
            {
                lastWasVar = false;
            }

            base.variables = new List <Variable>();

            if (output != null)
            {
                variables.Add(output);
                base.involvedVariables().Add(output);
                output.usedInConstraint(this);
            }
        }