public bool EjecutarBasicSimplex(string nombreHojaProblema) { bool siCorrecto = false; ConectorDatosApp conector = new ConectorDatosApp(); SimplexTService service = new SimplexTService(); KeyValuePair <string, double> variableMinima = new KeyValuePair <string, double>(); KeyValuePair <string, double> pivote = new KeyValuePair <string, double>(); if (conector.ExtraerDatosSimplex(Path, nombreHojaProblema, out Tableau tabla)) { service.PivotarTSimplex(ref tabla, out variableMinima, out pivote); service.ReducirColumnas(ref tabla, pivote, variableMinima.Key); while (!service.ComprobarSiFinalizaSimplex(tabla.FuncionObjetivo)) { service.PivotarTSimplex(ref tabla, out variableMinima, out pivote); service.ReducirColumnas(ref tabla, pivote, variableMinima.Key); } Trace.TrazaTextoConFecha(Constantes.TextoSiSolucion); Trace.TrazaTexto(Constantes.TextoValor); Trace.TrazaEcuacionVectorialVertical(tabla.FuncionObjetivo); } 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); } }