Ejemplo n.º 1
0
        //Armazena a celula do elemento permissivel encontrado no decorrer do algoritmo.
        //public Point PermElementoPos { get; set; }
        //Variavel para guardar a posição do elemento permissível quando encontrado.
        public Quadro(FObjetivo FuncaoObj)
        {
            Matriz = new Celula[FuncaoObj.VariaveisBasicas.Count + 1, FuncaoObj.Variaveis.Count + 1];
              ColunaHeader = new string[FuncaoObj.Variaveis.Count + 1];
              //+1 para o Bj
              LinhaHeader = new string[FuncaoObj.VariaveisBasicas.Count + 1];
              //+1 para funcao obj

              buildHeaders(FuncaoObj);

              buildMatriz(FuncaoObj);
        }
Ejemplo n.º 2
0
        //Armazena a celula do elemento permissivel encontrado no decorrer do algoritmo.
        //public Point PermElementoPos { get; set; }
        //Variavel para guardar a posição do elemento permissível quando encontrado.


        public Quadro(FObjetivo FuncaoObj)
        {
            Matriz       = new Celula[FuncaoObj.VariaveisBasicas.Count + 1, FuncaoObj.Variaveis.Count + 1];
            ColunaHeader = new string[FuncaoObj.Variaveis.Count + 1];
            //+1 para o Bj
            LinhaHeader = new string[FuncaoObj.VariaveisBasicas.Count + 1];
            //+1 para funcao obj

            buildHeaders(FuncaoObj);

            buildMatriz(FuncaoObj);
        }
Ejemplo n.º 3
0
        private void buildMatriz(FObjetivo FuncaoObj)
        {
            //Linha da funcao objetivo
              Matriz[0, 0] = new Celula { ValorSuperior = FuncaoObj.TermoLivre };

              for (int i = 1; i <= FuncaoObj.Variaveis.Count; i++)
              {
            Matriz[0, i] = new Celula { ValorSuperior = FuncaoObj.Variaveis.ToList()[i - 1].Value.Coeficiente };
              }

              int linha = 1;

              foreach (Restricao rest in FuncaoObj.Restricoes.OrderBy(m => m.Key).Select(m => m.Value))
              {
            // Coluna 0 sera o termo livre
            Matriz[linha, 0] = new Celula { ValorSuperior = rest.TermoLivre };

            for (int col = 1; col < this.ColunaHeader.Length; col++)
            {

              var nomeVariavel = this.ColunaHeader[col];
              Matriz[linha, col] = new Celula
              {
            ValorSuperior = rest.Variaveis.ContainsKey(nomeVariavel) ? rest.Variaveis[nomeVariavel].Coeficiente : 0.0
              };

            }

            linha += 1;
              }
        }