Operadores e Funções do LINGO Prof. André Marcato Livro Texto: LINGO – The Modeling Language and Optimizer 1 Introdução Aula 4 Operadores Padrões: Aritméticos, lógicos e relacionais Matemáticos Financeiros Probabilísticos Domínio Variável Manipulação de Conjuntos Laço de Conjunto Importação e Exportação Miscelânea 2 Operadores Padrões - Aritméticos Aula 4 3 Operadores Padrões - Lógicos Aula 4 4 Operadores Padrões - Lógicos Aula 4 5 Operadores Padrões - Relacionais Aula 4 São utilizados nas restrições do modelo. O operador < é equivalente a <=. O operador > é equivalente >=. O LINGO não possui o operador estritamente menor que ou estritamente maior que. 6 Tabela de Prioridades de Operadores Aula 4 Na ausência de parênteses todos os operadores de mesma prioridade são executados da esquerda para direita. A melhor estratégia é a utilização de parênteses. 7 Funções Matemáticas (1) Aula 4 8 Funções Matemáticas (2) Aula 4 9 Funções Matemáticas (3) Aula 4 10 Funções Matemáticas (4) Aula 4 11 Funções Financeiras FPA: Numa série de pagamentos fixos de R$ 1,00 que foram calculados a uma taxa I. Qual o valor presente do montante? FPL: Numa série de N pagamentos fixos de R$ 1,00 que foram calculados a uma taxa I. Qual o valor presente da N-ésima parcela? Aula 4 12 Funções de Probabilidades Aula 4 13 Funções de Probabilidades Aula 4 14 Funções de Probabilidades Aula 4 15 Funções de Probabilidade @QRAND: Produz uma seqüência de números uniformente distribuídos no intervalo (0,1). Só pode ser utilizada na seção DATA. Geralmente, será utilizada para preencher uma tabela de duas dimensões com m linhas e n variáveis. m representa o número de cenários e n o número de variáveis aleatórias em cada cenário. Entre linhas, os números são “super uniformente distribuídos”. Exemplo: m = 4; n = 2. Para uma linha os números estarão no invervalo (0,0.5), para outra linha os números estarão no intervalo (0.5,1) e para as outras duas um número será menor que 0.5 e o outro maior que 0.5. Se a semente não for especificada, será utilizado o clock do sistema para construir o valor da semente. Aula 4 16 Funções de Probabilidades Aula 4 17 Funções de Probabilidades Aula 4 18 Funções de Domínio Variável Aula 4 19 Funções de Manipulação de Conjunto @IN: determina se um elemento de conjunto está contido em um conjunto. @INDEX: retorna o índice de um elemento primitivo de conjunto dentro do seu conjunto. @SIZE: retorna o número de elementos de um conjunto @WRAP: Aula 4 20 Funções de Manipulação de Conjunto - Exemplo Aula 4 21 Funções de Manipulação de Conjunto - Exemplo Aula 4 22 Funções de Laço de Conjunto Aula 4 23 Funções de Interface Aula 4 Permite que o usuário inclua dados de arquivo texto externos em qualquer posição do modelo. 24 Funções de Interface Esta função é utilizada para estabelecer conexões com algum banco de dados data_source: nome do banco de dados table_name: É o nome da tabela do banco de dados que será estabelecida a conexão col_i: É a coluna (ou campo) do banco de dados que será estabelecida a conexão Aula 4 25 Funções de Interface Cria uma interface com o excel que permite a importação e exportação de dados. A transferência é feita diretamente através da memória sem necessidade de criação de arquivos intermediários Aula 4 26 Funções de Interface Esta função é para ser utilizada em conjunto com o LINGO DLL (Dynamic Link Library) Permite a transferência de dados diretamente através de compartilhamento de memória. Aula 4 27 Funções de Interface Aula 4 É utilizada para exportar soluções para arquivos texto. ´a´: append. 28 Funções de Relatório Aula 4 São usadas para gerar relatórios baseados nos resultados do modelo. São válidas tanto para a Seção CALC como para a Seção DATA Permite ao usuário exportar os relatórios para arquivos texto, planilhas, banco de dados ou aplicações chamadas pelo próprio usuário. 29 Funções de Relatório @ DUAL: Imprime os valores duais de uma variável ou restrição. Aula 4 30 Funções de Relatório @FORMAT: Usada em conjunto com os comandos @WRITE e @WRITEFOR Utiliza as convenções da linguagem C. 12.2f: 12 caracteres, sendo que destes os três últimos correspondem pontos e aos dígitos decimais Aula 4 31 Funções de Relatório Aula 4 32 Funções de Relatório Aula 4 33 Plotando uma Função Normal Padrão Aula 4 34 Plotando uma Função Normal Padrão Aula 4 35 Plotando uma Função Normal Padrão Aula 4 36 Plotando uma Função Normal Padrão Aula 4 37 Funções de Relatório @ITERS: Retorna o número total de iterações requeridas para resolver o modelo. Aula 4 38 Funções de Relatório @NAME: retorna o nome de uma variável ou linha como texto. Aula 4 39 Funções de Relatório @NEWLINE: Escreve n linhas no dispositivo de saída. @OBJBNS: Retorna o limite sobre o valor objetivo. @RANGED: Retorna o decremento possível de uma variável ou uma restrição. @RANDEU: Retornoa o incremento possível de uma variável ou uma restrição Aula 4 40 Funções de Relatório Aula 4 41 Funções de Relatório @STATUS: Retorna o status final do processo Aula 4 42 Funções de Relatório Aula 4 43 Funções de Relatório @STRLEN: Retorna o comprimento de uma determinada string. @TABLE: Imprime tanto um valor de atributo quanto os membros de um conjunto em formato tabulado. Aula 4 44 Funções de Relatório Aula 4 45 Funções de Relatório Aula 4 46 Funções de Relatório @TABLE Aula 4 47 Funções de Relatório @TIME: retorna o tempo total de execução, em segundos. Aula 4 48 Funções de Relatório @WRITE: retorna o valor de um ou mais objetos @WRITEFOR: retorna o valor de um ou mais conjuntos ao longo SET. Aula 4 49 Funções de Relatório Aula 4 50 Funções de Relatório Text Replication Operator (*): Pode ser usado tanto no write quanto no write for. Aula 4 51 Funções de Relatório Aula 4 52 Miscelânea @IF: Avalia uma função lógica. Aula 4 53 Funções de Relatório @IF: Opções de linearização e otimização global desativadas. Aula 4 54 Funções de Relatório @IF com opção de linearização ativada ou global solver ativado: Aula 4 55 Funções de Relatório @WARN: Imprime uma mensagem se a condição lógica é atendida. Aula 4 56 Funções de Relatório Aula 4 57