public double GetSolutionValue(int goalIndex)
        {
            var goal = Goals.ElementAt(goalIndex);

            Debug.Assert(goal != null, "Goal should be an element of the goal list.");
            return(GetValue(goal.Index).ToDouble());
        }
        public void GetSolvedGoal(int goalIndex, out object key, out int vid, out bool minimize, out bool optimal)
        {
            var goal = Goals.ElementAt(goalIndex);

            Debug.Assert(goal != null, "Goal should be an element of the goal list.");
            key      = goal.Key;
            vid      = goal.Index;
            minimize = goal.Minimize;
            optimal  = _result == NonlinearResult.Optimal;
        }