AMPL:os resultados após usar a opção “timelimit” para cplex atendem a todas as restrições?
-
21-12-2019 - |
Pergunta
Tenho uma pergunta fictícia que preciso saber a resposta.Estou trabalhando em um projeto que requer AMPL e CPLEX como solucionador.Agora, esse problema normalmente leva mais de 140 segundos para ser resolvido.Enquanto eu estava pesquisando, encontrei uma opção chamada timelimit
.Eu usei essa opção com valor option cplex_options 'timelimit=5'
e os resultados foram mostrados em 5 segundos.Agora, minha pergunta é: a saída atende a todas as restrições e está dentro dos limites que defini no código?Ou acabei de encerrar o processo e os resultados foram os dados atuais "em processamento"?Obrigado por ajudar.
Solução
Se você não definir o parâmetro Timelimit, o tempo de execução é a hora de chegar a uma solução disponíveis para a tolerância relativa (o padrão é 1e-6).Ao definir um limite de tempo, você está dizendo ao Cplex para parar em 5 segundos.Nesse caso, retornará a melhor solução que encontrou, independentemente da qualidade da função objetiva.O CPLEX não vai, no entanto, dar uma solução que viola as restrições.Se não consegue encontrar uma solução viável no tempo alocado, então você não terá uma solução.Você pode verificar o sufixo exitcode
do modelo para ver se houve uma solução encontrada.