230 likes | 326 Views
Análise e Modelagem de Processos. Prof. Bruno Samways dos Santos prof_brunosantos@camporeal.edu.br. Linguagem de programação.
E N D
Análise e Modelagem de Processos Prof. Bruno Samways dos Santos prof_brunosantos@camporeal.edu.br
Linguagem de programação A linguagem de programação do LINGO permite a formulação de modeloscom muitasvariáveis e restrições, a utilização de funçõespré-definidas e o interfaceamento com outros programas (excel, bancos de dados, C/C++, Java, VB.net, Delphi, etc.)
Estrutura do modelo definições dados modelo Modelocompostoporduasseções: função objetivo e restrições.
SETS • É a seção de definição das variáveis e constantes do modelo; • Set (conjunto) = grupo de objetossimilaresordenadosqueapresentammesmo(s) atributo(s) (oucaracterísticas(s)); • Exemplo: • Conjuntos: lista de produtos, veículos, funcionários, etc. • Atributos: peso, preçounitário, demanda • Todososmembros de um conjuntopossuemosmesmosatributos.
Tipos de Conjuntos Primitivo: conjuntoformadoporobjetosbásicosquenãopodemserdecompostos. Derivado: conjuntodefinido a partir de um oumaisconjuntospormeio de duasoperações.
Exemplos Conjuntoprimitivo: DEPOSITOS(membros: relação de depósitos), CLIENTES (membros: relação de clientes) Conjuntoderivado: ROTAS (membros: todas as possíveiscombinações de DEPOSITOS e CLIENTES) Sintaxe de conjuntoprimitivo “nome_conjunto/membro_1,membro_2,…,membro_n/:lista_de_atributos” OPCIONAL
Exemplos Depósitos de umaempresa: DEPOSITOS/D1,D2,D3/:CAPACIDADE; Conjunto: DEPOSITOS Membros: D1, D2, D3 Atributos: CAPACIDADE Frotas de caminhões de umaempresa. FROTA/FORD,VOLVO,MERCEDES,DODGE/: CAPACIDADE,CUSTO; Conjunto: FROTA Membros: FORD, VOLVO, MERCEDES, DODGE Atributos:CAPACIDADE, CUSTO
Tipos de conjuntos OPCIONAL Sintaxe de conjuntoderivado: “Nome_conjunto(lista_conjuntos)/lista_de_membros/:lista_de_atributos;” Exemplo: Rotas de transporte de depósitos (2) paraclientes (2). ROTAS(DEPOSITOS,CLIENTES)/X11,X12,X21,X22/:CUSTO,VOLUME; Conjuntoderivado: ROTAS Conjuntosformadores: DEPOSITOS,CLIENTES Membros: X11, X12, X21, X22 Atributos:CAPACIDADE Exemplo: Nutrientesencontradosemporções de alimentos. COMP(NUTRIENTES,ALIMENTOS):QUANT; Conjuntoderivado: COMP Conjuntosformadores: NUTRIENTES, ALIMENTOS Membros: --- Atributos:QUANT
DATA Atribuivaloresaosmembros e/ouatributos dos conjuntos Sintaxe: “lista_de_objetos=lista_de_valores;” lista_de_objetos= compreende o nome de um (oumais) conjuntoouatributo(s) a sereminicializados. lista_de_valores = contémosvaloresoudefiniçõesatribuídosaoobjetosrelacionadosnalista_de_objetos.
Exemplos SETS: ALIMENTOS/ARROZ,MACARRAO,FEIJAO/:VIT_A,CARBOIDRATO; ENDSETS Conjunto: ALIMENTOS Membros: ARROZ, MACARRAO, FEIJAO Atributos: VIT_A, CARBOIDRATO DATA: VIT_A = 0.35, 0.55, 1.2; CARBOIDRATO = 2.75, 8.50, 3.75 ENDDATA Lista_de_objetos (atributo): VIT_A Lista_de_valores (valores): 0.35, 0.55, 1.2 Lista_de_objetos (atributo): CARBOIDRATO Lista_de_valores (valores): 2.75, 8.50, 3.45
Detalhe! A lista de membros pode ser incluídas diretamente no “DATA”, por exemplo: SETS: ALIMENTOS/ARROZ,MACARRAO,FEIJAO/:VIT_A,CARBOIDRATO; ENDSETS DATA: VIT_A = 0.35, 0.55, 1.2; CARBOIDRATO = 2.75, 8.50, 3.75 ENDDATA OU SETS: ALIMENTOS:VIT_A,CARBOIDRATO; ENDSETS DATA: ALIMENTOS=ARROZ,MACARRAOM,FEIJAO; VIT_A = 0.35, 0.55, 1.2; CARBOIDRATO = 2.75, 8.50, 3.75 ENDDATA
FUNÇÕES DE LAÇO Utilizam-se as chamadasfunções de laçoparaidentificar as restrições e funçãoobjetivodo problema; @SUM – Retorna o somatório de expressõesoperadassobre um conjunto. @SUM(nome_conjunto(índice):lista_expressão) @FOR – Gera expressão(ões) contidanalista_expressõesparatodososmembros do conjuntoem um laço (utiliza-se paradefinirrestrições!). @FOR(nome_conjunto(índice):lista_expressão)
FUNÇÃO OBJETIVO Colunas j Linhas i Exemplo: minimizar o custo da mistura (porção) entre o conjunto de alimentos... MIN = 0.14*X1 + 0.09*X2 + 0.12*X3; Se C = custo, então pode ser lido da seguinte forma: MIN =@SUM(ALIMENTOS(J):CUSTO(J)*X(J));
Colunas j Restrições Linhas i Linhas i Colunas j Onde: = composição linha i (nutrientes) com coluna j (alimentos) = Mínimo diário requerido (atributo do conjunto nutrientes) para cada nutriente.
EXERCÍCIO - EXEMPLO CONJUNTOS: ALIMENTOS: Membros: 1, 2, 3 Atributos: CUSTO, X MODEL: SETS: !CONJUNTOS PRIMITIVOS: !CONJUNTO DERIVADO (NESTE CASO, É A MATRIZ Aij, POIS SE FOR INSERIDO OU RETIRADO UM ALIMENTO OU NUTRIENTE,O TAMANHO DESTE CONJUNTO É MUDADO); NUTRIENTES/A,B,C/:MINIMO; ALIMENTOS/1,2,3/:CUSTO,X; COMP(NUTRIENTES,ALIMENTOS):VAL; ENDSETS NUTRIENTES: Membros: A, B, C Atributos: MINIMO COMP(ALIMENTOS,NUTRIENTES): Atributos: VAL
EXERCÍCIO - EXEMPLO DATA: MINIMO=20,32,12; CUSTO=0.14,0.09,0.12; VAL= 7,4,2, 8,12,18, 5,7,2; ENDDATA DADOS: CUSTO = 0.14, 0.09, 0.12 MINIMO = 20, 32 12; VAL = 7, 4, 2, 8, 12, 18 5, 7, 2;
EXERCÍCIO - EXEMPLO MINIMIZAR Z; Z = 0,14X1 + 0,09X2 + 0,12 @SUM(nome_conjunto(índice):lista_expressão) !FUNÇÃO OBJETIVO É IGUAL AO SOMATÓRIO DAS COLUNAS "j" ATÉ "n" QUE É O NÚMERO DE COLUNAS DA MULTIPLICAÇÃO CjXj. fica: SOMATÓRIO DE CjXj, com J VARIANDO DE 1 ATÉ 3.; MIN = @SUM(ALIMENTOS(J):CUSTO(J)*X(J));
EXERCÍCIO - EXEMPLO A MATRIZ Aij é definida pela composição dos nutrientes (i) nos alimentos (j). Os valores são representados por “VAL”, como definido nos conjuntos. Para todas as linhas de nutrientes i, faz-se a somatória do produto entre os coeficientes dentro da matriz Aij (“VAL”) e as variáveis Xj, referentes à quantidade da porção a ser adquirida de cada alimento. Esta somatória deve ser maior ou igual quantidade mínima diária bi(“MINIMO”) @FOR(NUTRIENTES(I): @SUM(ALIMENTOS(J):VAL(I,J)*X(J)) >= MINIMO(I));
Modelo completo !EXEMPLO 1 - PROBLEMA DE DIETA; MODEL: SETS: !CONJUNTOS PRIMITIVOS: !CONJUNTO DERIVADO (NESTE CASO, É A MATRIZ Aij, POIS SE FOR INSERIDO OU RETIRADO UM ALIMENTO OU NUTRIENTE, O TAMANHO DESTE CONJUNTO É MUDADO); NUTRIENTES/A,B,C/:MINIMO; ALIMENTOS/1,2,3/:CUSTO,X; COMP(NUTRIENTES,ALIMENTOS):VAL; ENDSETS DATA: MINIMO=20,32,12; CUSTO=0.14,0.09,0.12; VAL= 7,4,2, 8,12,18, 5,7,2; ENDDATA MIN = @SUM(ALIMENTOS(J):CUSTO(J)*X(J)); @FOR(NUTRIENTES(I): @SUM(ALIMENTOS(J):VAL(I,J)*X(J)) >= MINIMO(I)); END
Exercício antigo Uma fundição planeja produzir em uma semana conexões T modelos T500 e T1000 com o objetivo de maximizar os lucros da empresa. As conexões T500 e T1000 retornam um lucro de R$ 54,00 e R$ 78,00 por unidade vendida, respectivamente. Para a fabricação de uma conexão T500 são necessários 1,5kg de cobre, 0,5kg de zinco e 0,2kg de níquel. As conexões T1000 utilizam 2,5kg de cobre e 1 kg de zinco por unidade. A fundição pode receber semanalmente 500kg de cobre, 200kg de zinco e 35kg de níquel. Nestas condições, qual deve ser a quantidade de conexões T500 e T1000 que devem ser produzidos de modo a maximizar o lucro da empresa?
Problema de transportes Encontre o menorcusto de envio de produtos das fábricasparaosclientes
Problema de transportes Trêsreservatórios com capacidadesdiárias de 15,20 e 25 milhões de litros de água, abastecem 4 cidades com consumosdiários de 8, 10, 12 e 15 milhões de litros de água. O custo de abastecimento, pormilhão de litros, é apresentadonaabaixo. Determine a política de abastecimentoótima, ouseja, aquela com menorcusto.
Problema de designação Uma fábricapossuiquatrolocais: 1, 2, 3 e 4 pararecebertrêsmáquinasnovas (A,B,C). O local 4 é demasiadopequenoparaconter a máquina A. O custo da manipulação dos materiaisquesãoprocessadosnasmáquinas, emcentenas de R$/hora, envolvendocadamáquina com as respectivasposições, é o seguinte: Pretende-se determinarque local ocuparácadauma das novasmáquinas, com o objetivo de minimizar o custo total de manipulação dos materiais.