Exemplo n.º 1
0
        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);
        }