コード例 #1
0
ファイル: LPModel.cs プロジェクト: taesiri/lpSolver
        public LPModel(string name, LPGoal goal, IEnumerable<LPConstraint> constraints)
        {
            Name = name;
            Objective = goal.Goal;
            GoalKind = goal.GoalType;

            _constraint = new List<LPConstraint>(constraints);
        }
コード例 #2
0
ファイル: Modeler.cs プロジェクト: taesiri/lpSolver
        private static LPGoal ParseGoal(ParseTreeNode lpGoalNode)
        {
            var rGoal = new LPGoal();
            if (lpGoalNode.ChildNodes[0].ToString() == "min (Keyword)")
                rGoal.GoalType = LPGoalType.Minimize;
            else if (lpGoalNode.ChildNodes[0].ToString() == "max (Keyword)")
                rGoal.GoalType = LPGoalType.Maximize;

            rGoal.Goal = ParsePolynomial(lpGoalNode.ChildNodes[1]);

            return rGoal;
        }
コード例 #3
0
ファイル: Modeler.cs プロジェクト: taesiri/lpSolver
        public static LPModel ConvertParseTreeToModel(ParseTree tree)
        {
            string modelName = "";
            var lpGoal = new LPGoal();
            var lpConstraints = new List<LPConstraint>();

            if (tree.Root.ToString() == "lpApp")
            {
                foreach (ParseTreeNode node in tree.Root.ChildNodes)
                {
                    switch (node.ToString())
                    {
                        case "lpAppName":
                            modelName = ParseModelName(node);
                            break;
                        case "lpModel":
                            foreach (ParseTreeNode subNodes in node.ChildNodes)
                            {
                                switch (subNodes.ToString())
                                {
                                    case "lpGoal":
                                        lpGoal = ParseGoal(subNodes);
                                        break;
                                    case "lpConstraints":
                                        lpConstraints = ParseConstraints(subNodes);
                                        break;
                                }
                            }
                            break;
                    }
                }
            }
            else
            {
                throw new Exception("The Root element is not Correct");
            }

            return new LPModel(modelName.Replace("(appIdentifier)", "").Replace(" ", ""), lpGoal, lpConstraints);
        }