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