Example #1
0
        private void readCOLUMNS()
        {
            string nomeFuncao;
            string nomeVariavel;
            string valorVariavel;

            if (_linha.Equals("COLUMNS"))
            {
                _linha = _mpsFile.ReadLine();

                while (!_linha.Equals("RHS"))
                {
                    _tokens = GerarTokens(_linha);

                    //Ler no minimo 3 tokens
                    //Nome variavel / Nome Funcao|Restricao / Valor variavel

                    nomeVariavel  = _tokens[0];
                    nomeFuncao    = _tokens[1];
                    valorVariavel = _tokens[2];

                    //Se nomeFuncao for o nome da funcao objetivo, atribuir variaveis nela
                    if (nomeFuncao.Equals(_funcao.Nome))
                    {
                        _funcao.AddVariavel(nomeVariavel, double.Parse(valorVariavel, _culture));
                    }

                    //Se nao, atribuir variaveis a restricao
                    else
                    {
                        _funcao.AddVariavelRestricao(nomeFuncao, nomeVariavel, double.Parse(valorVariavel, _culture));
                    }

                    //Se tiver mais tokens, ler mais duas colunas
                    //Nome Variavel e Valor Variavel, obedecendo as mesmas regras anteriores
                    if (_tokens.Length > 3)
                    {
                        nomeFuncao    = _tokens[3];
                        valorVariavel = _tokens[4];

                        //Se nomeFuncao for o nome da funcao objetivo, atribuir variaveis nela
                        if (nomeFuncao.Equals(_funcao.Nome))
                        {
                            _funcao.AddVariavel(nomeVariavel, double.Parse(valorVariavel, _culture));
                        }

                        //Se nao, atribuir variaveis a restricao
                        else
                        {
                            _funcao.AddVariavelRestricao(nomeFuncao, nomeVariavel, double.Parse(valorVariavel, _culture));
                        }
                    }

                    _linha = _mpsFile.ReadLine();
                }
            }
        }
Example #2
0
        private void GerarFuncaoObj()
        {
            VariavelCusto auxVar = null;

            _funcaoObj.Nome         = string.Format("{0}Var_{1}Rest", _qtdVariaveis, _qtdRestricoes);
            _funcaoObj.NomeProblema = _funcaoObj.Nome;
            _funcaoObj.Extremo      = Extremo.Minimizar;

            for (int i = 0; i < _qtdVariaveis; i++)
            {
                auxVar = GerarVariavelCusto(PREFIXO_VARIAVEL + i);
                _variaveis.Add(auxVar);
                _funcaoObj.AddVariavel(auxVar.Nome, auxVar.Coeficiente);
            }
        }