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); }
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); } }