Função SolverOptions

Permite que você especifique opções avançadas para seu modelo do Solver. Essa função e seu argumento correspondem às opções da caixa de diálogo Opções do Solver.

Observação O suplemento Solver não está habilitado por padrão. Antes de poder usar esta função, você deverá habilitar e instalar o suplemento Solver. Para saber mais sobre como fazer isso, consulte Usando as funções VBA do Solver. Após a instalação do suplemento Solver, você deverá estabelecer uma referência para o suplemento Solver. No Editor do Visual Basic, com um módulo ativo, clique em Referências no menu Ferramentas e selecione Solver em Referências Disponíveis. Se o Solver não aparecer em Referências Disponíveis, clique em Procurar e então abra Solver.xlam na subpasta \Arquivos de Programas\Microsoft Office\Office14\Biblioteca\SOLVER.

SolverOptions( MaxTime, Iterations, Precision, AssumeLinear, StepThru, Estimates, Derivatives, SearchOption, IntTolerance, Scaling, Convergence, AssumeNonNeg, PopulationSize, RandomSeed, MultiStart, RequireBounds, MutationRate, MaxSubproblems, MaxIntegerSols, SolveWithout, MaxTimeNoImp)

MaxTime Opcional Variant. O tempo máximo (em segundos), que o Solver levará para resolver o problema. O valor deve ser um número inteiro positivo.

Iterations Opcional Variant. O número máximo de iterações que o Solver usará na resolução do problema. O valor deve ser um número inteiro positivo.

Precision Opcional Variant. Um número entre 0 (zero) e 1 que especifica o grau de precisão com o qual as restrições (incluindo restrições de número inteiro) serão atendidas. A precisão padrão é 0,000001. Um número menor de casas decimais (por exemplo, 0,0001) indica um grau de precisão menor. Em geral, quanto maior o grau de precisão especificado (menor o número), mais tempo o Solver levará para chegar às soluções.

AssumeLinear Opcional Variant. True para fazer o Solver supor que o modelo subjacente é linear. Isso acelera o processo de solução, mas só deverá ser usado se todos os relacionamentos do modelo forem lineares. O valor padrão é False.

StepThru Opcional Variant. True para fazer o Solver pausar a cada solução de avaliação. Você pode passar uma macro para o Solver a ser executada a cada pausa usando o argumento ShowRef da função SolverSolve. False para não deixar o Solver pausar a cada solução de avaliação. O valor padrão é False.

Estimates Opcional Variant. Especifica a abordagem usada para obter estimativas iniciais das variáveis básicas em cada pesquisa unidimensional: 1 representa estimativas de tangente e 2 representa estimativas quadráticas. As estimativas de tangente usam extrapolação linear de um vetor de tangente. As estimativas quadráticas usam extrapolação quadrática; isso pode melhorar os resultados para problemas altamente não lineares. O valor padrão é 1 (estimativas de tangente).

Derivatives Opcional Variant. Especifica a diferenciação direta ou a diferenciação central para estimativas de derivativas parciais das funções objetivas e de restrição: 1 representa a diferenciação direta e 2 representa a diferenciação central. A diferenciação central exige mais recálculos de planilha, mas pode ajudar com problemas que geram uma mensagem dizendo que o Solver não conseguiu aprimorar a solução. Com restrições cujos valores sejam alterados rapidamente ao se aproximarem de seus limites, use a diferenciação central. O valor padrão é 1 (diferenciação direta).

SearchOption Opcional Variant. Use as opções de Pesquisar para especificar o algoritmo de pesquisa que será usado em cada iteração para decidir a direção da pesquisa: 1 representa o método de pesquisa Newton e 2 representa o método de pesquisa conjugado. Newton, que usa um método quasi-Newton, é o método de pesquisa padrão.

IntTolerance Opcional Variant. Um número decimal entre 0 (zero) e 100 que especifica a tolerância de percentual Inteiro Ideal. Esse argumento só se aplicará se restrições de número inteiro tiverem sido definidas; ele especifica que o Solver poderá parar se encontrar uma solução de inteiro viável cujo objetivo esteja dentro desse percentual do limite mais conhecido no objeto da solução ideal de inteiro verdadeiro. Uma tolerância com percentual maior tenderia a acelerar o processo da solução.

Scaling Opcional Variant. Se o objetivo ou as restrições forem diferentes por vários graus de magnitude, por exemplo, maximizando o percentual de lucro com base em investimentos de milhões de dólares, defina essa opção como True para fazer o Solver redimensionar internamente os valores do objetivo e da restrição para ordens de magnitude semelhantes durante o cálculo. Se essa opção for False, o Solver executará seus cálculos com os valores originais do objetivo e das restrições. O valor padrão é True.

Convergence Opcional Variant. Um número entre 0 (zero) e 1 que especifica a tolerância de convergência para os métodos Solução Não Linear GRG e Solução Evolutionary. Para o método GRG, quando a alteração relativa no valor da célula de destino for menor do que essa tolerância nas cinco últimas iterações, o Solver será interrompido. Para o método Evolucionário, quando 99% ou mais dos membros da população tiverem valores "ajustados" cuja diferença relativa, que é percentual, for menor do que essa tolerância, o Solver será interrompido. Em ambos os casos, o Solver exibirá a mensagem "O Solver convergiu na solução atual. Todas as restrições foram atendidas".

AssumeNonNeg Opcional Variant. True para fazer o Solver supor um limite inferior de 0 (zero) para todas as células variáveis de decisão que não tenham limites inferiores explícitos na caixa de listagem Restrição (as células deverão conter valores não negativos). False para fazer o Solver usar somente os limites especificados na caixa de listagem Restrição.

PopulationSize Opcional Variant. True para fazer o Solver supor um limite inferior de 0 (zero) para todas as células variáveis de decisão que não tenham limites inferiores explícitos na caixa de listagem Restrição (as células deverão conter valores não negativos). False para fazer o Solver usar somente os limites especificados na caixa de listagem Restrição.

RandomSeed Opcional Variant. Um inteiro positivo especifica uma semente fixa para o gerador de números aleatórios usado pelo método Solução Evolutionary e o método de inícios múltiplos para otimização global. Isso significa que o Solve reencontrará a mesma solução sempre que for executado em um modelo que não tenha sido alterado. Um valor zero especifica que o Solver deverá usar uma semente diferente para o gerador de números aleatórios sempre que for executado, o que poderá gerar soluções diferentes sempre que ele for executado em um modelo que não tenha sido alterado.

MultiStart Opcional Variant. True para fazer o Solver usar o método de inícios múltiplos para otimização global com o método ** Solução Não Linear GRG**, quando SolverSolve for chamado. False para fazer o Solver executar o método Solução GRG somente uma vez, sem inícios múltiplos, quando SolverSolve for chamado.

RequireBounds Opcional Variant. True para fazer com que o método Solução Evolutionary e o método de inícios múltiplos retornem imediatamente de uma chamada a SolverSolve com um valor 18 se qualquer uma das variáveis não tiver limites inferior e superior definidos. False para fazer esses métodos tentarem resolver o problema sem limites em todas as variáveis.

MutationRate Opcional Variant. Um número entre 0 (zero) e 1 que especifique a taxa na qual o método Solução Evolutionary criará "mutações" em membros existentes da população. Uma taxa mais alta de Mutação tende a aumentar a diversidade da população e pode gerar soluções melhores.

MaxSubproblems Opcional Variant. O número máximo de subproblemas que o Solver explorará em problemas com restrições de número inteiro, e problemas resolvidos por meio do método Solução Evolutionary. O valor deve ser um inteiro positivo.

MaxIntegerSols Opcional Variant. O número máximo de soluções viáveis (ou de inteiros viáveis) que o Solver considerará em problemas com restrições de número inteiro e problemas resolvidos por meio do método Solução Evolutionary. O valor deve ser um inteiro positivo.

SolveWithout Opcional Variant. True para fazer o Solver ignorar todas as restrições de número inteiro e resolver o "relaxamento" do problema. False para fazer o Solver usar as restrições de número inteiro na resolução do problema.

**MaxTimeNoImp ** Opcional Variant. Quando o método Solução Evolutionary for usado, o tempo máximo (em segundos) em que o Solver continuará a resolver sem encontrar soluções significativamente melhoradas a serem adicionadas à população. O valor deve ser um número inteiro positivo.

Exemplo

Este exemplo define a opção Precision como 0,001.

Worksheets("Sheet1").Activate
SolverReset
SolverOptions Precision:=0.001
SolverOK SetCell:=Range("TotalProfit"), _
    MaxMinVal:=1, _
    ByChange:=Range("C4:E6")
SolverAdd CellRef:=Range("F4:F6"), _
    Relation:=1, _
    FormulaText:=100
SolverAdd CellRef:=Range("C4:E6"), _
    Relation:=3, _
    FormulaText:=0
SolverAdd CellRef:=Range("C4:E6"), _
    Relation:=4
SolverSolve UserFinish:=False
SolverSave SaveArea:=Range("A33")