public MultiTimeslotSolver(int timelimit, Data data, ProblemFormulation formulation, CCTModel.MIPModelParameters mipModelParameters)
 {
     Timelimit               = timelimit;
     this.data               = data;
     this.formulation        = formulation;
     this.MIPmodelParameters = mipModelParameters;
 }
示例#2
0
        public void WriteSol(string resultdir, string dataset, Data data, ProblemFormulation prolemFormulation, string algorithm, string datetime, List <MultiObjectiveSolver.MultiResult> result)
        {
            var dataname   = System.IO.Path.GetFileNameWithoutExtension(dataset);
            var resultfile = resultdir + "results.csv";

            if (!File.Exists(resultfile))
            {
                File.AppendAllText(resultfile, $"dataset;algorithm;datetime;i;cost;SoftObj;CostBound;SoftObjBound;CostConst;QualConst;Seconds");
            }

            int i = 0;

            foreach (var res in result)
            {
                i++;
                File.AppendAllText(resultfile, $"\n{dataname};{algorithm};{datetime};{i};{res.Cost:##.#};{res.SoftObjective};{res.CostBound ?? double.NaN};{res.SoftObjBound ?? double.NaN};{res.CostConstraint ?? double.NaN};{res.QualConstraint ?? double.NaN};{res.SecondsSinceStart ?? double.NaN}");

                if (res.Assignments != null)
                {
                    var solution = new Solution(data, prolemFormulation);
                    solution.SetAssignments(res.Assignments);
                    solution.Save($"{resultdir}solutions\\{dataname}_{algorithm}_{i}.sol");
                }
            }
        }
示例#3
0
 public RoomChoose(Data data, ProblemFormulation formulation, double overcapacity = 0)
 {
     Data = data;
     ProblemFormulation = formulation;
     OverCapacity       = overcapacity;
     BuildMIPModel();
 }
示例#4
0
 public MultiObjectiveSolver(Data data, ProblemFormulation formulation, CCTModel.MIPModelParameters mipparameters)
 {
     Formulation         = formulation;
     _data               = data;
     MipParameters       = mipparameters;
     mipparameters.NSols = 100;
     _model              = new CCTModel(_data, Formulation, MipParameters);
 }
示例#5
0
        public void WriteSol(string resultdir, string dataset, Data data, ProblemFormulation prolemFormulation, string algorithm, string datetime, List <Tuple <int, int, int, int> > result)
        {
            var dataname   = Path.GetFileNameWithoutExtension(dataset);
            var resultfile = resultdir + "resultsTimeslot.csv";

            if (!File.Exists(resultfile))
            {
                File.AppendAllText(resultfile, $"dataset;algorithm;datetime;i;timeslots;obj;LB;s");
            }

            int i = 0;

            foreach (var res in result)
            {
                i++;
                File.AppendAllText(resultfile, $"\n{dataname};{algorithm};{datetime};{i};{res.Item1:##.#};{res.Item2};{res.Item3};{res.Item4}");
            }
        }
示例#6
0
 public TimeSlotChoose(Data data, ProblemFormulation formulation)
 {
     Data = data;
     ProblemFormulation = formulation;
     BuildMIPModel();
 }