示例#1
0
 private void initDualSimplex()
 {
     // Create object of DualSimplex
     ds = new DualSimplex();
     // Set objective function, also we pass mode of Simplex
     ds.setObjective(targetCoefficients, minimize);
     // Init array of constrains
     double[][] constraintArray = new double[constraints.Length][];
     for (int i = 0; i < constraints.Length; i++)
     {
         constraintArray[i] = new double[targetCoefficients.Length];
     }
     int[] equations = new int[constraints.Length];
     // Array of right sides of constraints
     double[] rhs = new double[constraints.Length];
     for (int i = 0; i < constraints.Length; ++i)
     {
         constraintArray[i] = constraints[i].getCoefficients();
         equations[i]       = constraints[i].getEquations();
         rhs[i]             = constraints[i].getRHS();
     }
     // Set parameters of dual simplex and initialize it
     ds.setConstraints(constraintArray, equations, rhs);
     ds.init();
 }
示例#2
0
        /// <summary>
        /// Инициализация двойственого симплекс метода
        /// </summary>
        private void InitDualSimplex()
        {
            _dualSimplex              = new DualSimplex();
            _dualSimplex.SimplexInfo += SimplexInfo;
            _dualSimplex.SetObjective(_function);

            var constraintArray = new double[_constraintsValue.Length][];

            for (int i = 0; i < _constraintsValue.Length; i++)
            {
                constraintArray[i] = new double[Variables];
            }

            var rhs       = new double[_constraintsValue.Length];
            var equations = new int[_constraintsValue.Length];

            for (int i = 0; i < _constraintsValue.Length; ++i)
            {
                constraintArray[i] = _constraintsValue[i].GetCoefficients();
                equations[i]       = _constraintsValue[i].GetEquations();
                rhs[i]             = _constraintsValue[i].GetRhs();
            }

            _dualSimplex.SetConstraints(constraintArray, equations, rhs);
            _dualSimplex.Init();
        }
示例#3
0
        private static void SolveWithDualSimplex()
        {
            Answer answer = DualSimplex.Solve(loadedModel);

            DisplayAnswer(answer);
        }