Пример #1
0
        public bool ExtraerDatosSimplex(string path, string NombreHoja, out Tableau tabla)
        {
            bool siCorrecto = false;

            tabla = null;
            List <string> cabeceraFila    = new List <string>();
            List <string> cabeceraColumna = new List <string>();

            if (!string.IsNullOrWhiteSpace(path) && !string.IsNullOrWhiteSpace(NombreHoja))
            {
                UsoExcel        helperExcel = new UsoExcel(path);
                SimplexTService stService   = new SimplexTService();

                if (helperExcel.SiProcesoCorrecto && helperExcel.ComprobarSiExisteHoja(NombreHoja, out int indiceHoja) &&
                    helperExcel.ObtenerDimensionesHoja(indiceHoja, out int countFila, out int countCol))
                {
                    string[,] datosH = helperExcel.ObtenerDatosHoja(NombreHoja);
                    List <Constraint>         restricciones       = ObtenerEcuaciones(datosH, countFila - 1, countCol - 1, out List <string> cabecera, out ObjectiveFunction funcionObjetivo);
                    List <StandardConstraint> restriccionesEstand = stService.EstandarizarRestricciones(restricciones).ToList();
                    restriccionesEstand = stService.EstandarizarVector(restriccionesEstand).ToList();
                    if (stService.EstandarizarFuncionObjetivo(restriccionesEstand, ref funcionObjetivo))
                    {
                        tabla = new Tableau(funcionObjetivo, restriccionesEstand); siCorrecto = true;
                    }
                }

                helperExcel.CerrarLibroExcel();
            }

            return(siCorrecto);
        }
Пример #2
0
        public void EstandarizarRestricciones()
        {
            SimplexTService stService = new SimplexTService();

            IEnumerable <StandardConstraint> result = stService.EstandarizarRestricciones(restricciones);

            result = stService.EstandarizarVector(result);

            if (stService.EstandarizarFuncionObjetivo(result, ref FO))
            {
                Tableau ts = new Tableau(FO, result);

                stService.PivotarTSimplex(ref ts, out KeyValuePair <string, double> variableMinima, out KeyValuePair <string, double> pivote);
                stService.ReducirColumnas(ref ts, pivote, variableMinima.Key);
            }
        }