示例#1
0
        public TransportSonucModel Solve(TransportDataModel data)
        {
            var config = new Configuration
            {
                NameHandling            = NameHandlingStyle.UniqueLongNames,
                ComputeRemovedVariables = true
            };

            using (var scope = new ModelScope(config))
            {
                DataModel = data;

                Model();

                // Get a solver instance, change your solver
                var solver = new CplexSolver();

                // solve the model
                var solution = solver.Solve(_model);

                // import the results back into the model
                _model.VariableCollections.ForEach(vc => vc.SetVariableValues(solution.VariableValues));

                // print objective and variable decisions
                var objective = solution.ObjectiveValues.Single();

                Results = new TransportSonucModel
                {
                    ObjectiveValue = objective.Value,
                    ResultModel    = new List <TransportSonuc>()
                };

                foreach (var r in DataModel.Maliyetler.Where(s => x[s].Value > 0))
                {
                    Results.ResultModel.Add(new TransportSonuc()
                    {
                        DepoId    = r.DepoId,
                        FabrikaId = r.FabrikaId,
                        Sonuc     = x[r].Value
                    });
                }
            }

            return(Results);
        }
示例#2
0
        public TransportSonucModel Solve(TransportDataModel data)
        {
            var _mevcutSonuclar = _transportSonucService.GetList();

            Results = new TransportSonucModel();

            Results = _transportOptimization.Solve(data);

            //önceki sonuçları sil
            foreach (var result in _mevcutSonuclar)
            {
                _transportSonucService.Delete(result.Id);
            }

            //yeni sonuçları ekle
            foreach (var result in Results.ResultModel)
            {
                _transportSonucService.Insert(result);
            }

            return(Results);
        }