Pergunta

Eu criei um modelo no Excel para uso em conjunto com Solver. Ele trabalha principalmente. O único problema é que o Solver não é realmente tratar as células restritas como binário corretamente. Quando ele é feito encontrar uma solução, alguns dos números são realmente 0.9999996, 1,0000000003, 0,0000017 e assim por diante.

Eu estou usando Excel 2004 no Mac OS X. Quaisquer ideias?

Foi útil?

Solução

Devido à precisão finita dos computadores e da natureza dos algoritmos de otimização, o solver tem tolerâncias construído em. Gostaria de tentar selecionar o botão Opções na caixa de diálogo Parâmetros do Solver e, em seguida, aumentar a precisão (digamos a partir do padrão de 0,000001 para 0,00000001). Não tenho a certeza se este trabalho, mas vale a pena uma tentativa.

Minha empresa faz uma classe comercial solver ligado ao Excel chamado What'sBest. Se o acima não funcionar, você pode considerá-lo. Você pode encontrar mais informações em www.lindo.com

Outras dicas

Se os valores binários estão longe de ser 0 ou 1, você pode ter que ir para as opções na janela do Solver e verifique se a caixa "Ignorar inteiro restrições é verificada".

Se solver é incapaz de encontrar uma solução dentro do prazo ou número de iterações permitido (ou se não houver resposta correta possível) não irá retornar respostas binárias.

Uma possível solução alternativa, , dependendo do tipo de problema que você está tentando resolver e como exatamente uma resposta que você precisa , é definir algumas células (provavelmente aqueles com os menores valores nas células que você está calculando para) com os contstraints <=1 e >=0 em vez de binário. A imagem que você forneceu não está aparecendo, então eu não sei exatamente o que você estava depois.

(Pode ser útil para configurar uma célula com um SUMPRODUCT para as células não definidos como binário; ver abaixo).

Por exemplo, se você está tentando resolver para um total de 22 (que não tem solução), você começa com:

9   1
9   1
9   1
6   1
3   1

Se você definir todos os valores na segunda coluna como binário, você vai acabar com:

9   0.5625
9   0.5625
9   0.5625
6   0.708333333
3   0.854166667

Se você definir o primeiro 3 como binário, e os dois últimos como <=1 & >=0, você acabar com:

9   0
9   1
9   1
6   0.333333333
3   0.666666667

O SUMPRODUCT para as duas últimas linhas = 4, que você pode usar para um conjunto manualmente dos dois últimos como 1 eo outro 0, dependendo se você quer uma resposta um pouco abaixo ou acima do alvo.

Eu tive problema semelhante e poderia resolvê-lo, indo para Opções do Solver e, em seguida, verificando "scaling Use Automatic". Não estou certo de que este irá resolver o seu problema ou não, mas tente uma pena.

Provavelmente não o seu problema, mas estar conscientes que existe uma caixa de seleção Ignore Integer Constraints em Opções que é marcada por padrão no Excel Solver. Pelo menos esse é o caso em minha cópia do Excel 2011 para Mac.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top