Faculdade de Engenharia - Campus de Guaratinguetá Pesquisa Operacional Livro: Introdução à Pesquisa Operacional Capítulo 5 Modelo da Designação Fernando Marins fmarins@feg.unesp.br Departamento de Produção 1
Sumário Introdução Modelo da Designação Método Húngaro 2
Introdução Problema: alocação de recursos disponíveis para atividades de interesse de forma a otimizar alguma medida de efetividade do sistema. Exemplos de aplicações RECURSO ATIVIDADE CRITÉRIO Operários Tarefas Tempo de execução Caminhões Rotas Custo de transporte Máquinas Locais Operacionalidade Vendedores Regiões Volume de vendas 3
Introdução Trata-se de um caso particular do Modelo de Transporte Simples com a i = b j = 1. Pode ser resolvido pelo Método Simplex ou pelo Stepping Stone Method. Será apresentado um algoritmo mais eficiente que explora suas características particulares: Algoritmo Húngaro. 4
Seja a matriz C = (c ij ) de ordem m x m, onde cada valor c ij corresponde ao custo da alocação do recurso i à atividade j. 1, recurso i alocado à atividade Variáveis de decisão: x ij = 0, caso contrário Função objetivo: Minimização de CT = custo total de designação Restrições: Min CT = i j sujeito a: C ij X ij Modelo da Designação Xij =1, j 1, 2,..., m (Toda atividade recebe um recurso) i Xij =1, i1, 2,..., m(cada recurso designado a uma atividade) J X ij {0,1} para todo i = 1, 4 e j = 1, 4 (binárias) j 5
Modelo da Designação - Exemplo Designar 4 operários [ I, II, III, IV ] para executar 4 tarefas (A, B, C, D) de maneira que o tempo total para o término de todas as tarefas seja o menor possível. Conhece-se o tempo que cada operário gasta para desempenhar cada uma das 4 tarefas: [ I II III IV ] A B C D 5 10 28 10 24 25 9 17 13 3 8 15 7 23 5 3 6
Modelo em Redes 1 A 5 24 I 1 13 7 1 B 10 25 3 23 II 1 1 C 28 9 8 5 III 1 1 D 10 15 3 17 IV 1 7
Modelo da Designação - Exemplo Como exemplo, uma designação viável pode ser identificada da forma abaixo : [ I II III IV ] A B C D 5 24 13 7 10 25 3 23 28 9 8 5 10 17 15 3 Neste caso a matriz X associada com os valores das variáveis básicas X ij corresponde a: 1 0 0 0 X = 0 0 0 1 0 1 0 0 0 0 1 0 O valor do tempo total de designação associado a esta solução é calculado por: CT = Cij. Xij = 5. 1 + 9. 1 + 15. 1 + 23. 1 = 52 i J 8
Modelo completo para o exemplo dos operários e tarefas Variáveis de decisão: i = 1, 4 e j = 1,4 X ij = 1, se a tarefa i for para operário 0, caso contrário j Função objetivo: Min T = tempo total execução das tarefas Min T = 5X 11 + 24X 12 + 13X 13 + 7X 14 + 10X 21 + 25X 22 + + 3X 23 + 23X 24 + 28X 31 + 9X 32 + 8X 33 + 5X 34 + + 10X 41 + 17X 42 + 15X 43 + 3X 44 9
Modelo completo para o exemplo dos operários e tarefas Restrições: sujeito a X 11 + X 12 + X 13 + X 14 = 1 X 21 + X 22 + X 23 + X 24 = 1 X 31 + X 32 + X 33 + X 34 = 1 X 41 + X 42 + X 43 + X 44 = 1 X 11 + X 21 + X 31 + X 41 = 1 X 12 + X 22 + X 32 + X 42 = 1 X 13 + X 23 + X 33 + X 43 = 1 X 14 + X 24 + X 34 + X 44 = 1 (para as tarefas) (para os operários) X ij {0,1} para todo i = 1, 4 e j = 1, 4 (binárias) 10
Método Húngaro para Resolução Fase 1: Redução de linhas e colunas da matriz C Objetivo é facilitar a identificação das melhores opções de designação (associados com os custos nulos existentes na matriz reduzida). Ir para a Fase 2. Fase 2: Identificação de uma Solução Ótima Tentar achar uma Designação Completa que utilize as alocações de recursos à atividades associadas aos custos nulos existentes na matriz reduzida. Se não for obtida uma Designação Completa: ir para a Fase 3. Fase 3: Alterações adicionais na matriz C Necessária se não for obtida uma designação completa na Fase 2. Voltar à Fase 2. 11
Aplicação do Método Húngaro ao exemplo dos operários e tarefas Fase 1: fazendo a redução das linhas: I II III IV Menor A 5 24 13 7 5 B 10 25 3 23 3 C 28 9 8 5 5 D 10 17 15 3 3 Fase 1: fazendo a redução das colunas: I II III IV A 0 19 8 2 B 7 22 0 20 C 23 4 3 0 D 7 14 12 0 Menor 0 4 0 0 12
Aplicação do Método Húngaro ao exemplo dos operários e tarefas Fase 2: Procurando identificar uma designação completa: A solução ótima será dada por: X 11 = 1 tarefa A para o operário I X 23 = 1 tarefa B para o operário III X 32 = 1 tarefa C para o operário II X 44 = 1 tarefa D para o operário IV Tempo ótimo de execução das tarefas (ver na matriz original as posições designadas): T* = 5 + 3 + 9 + 3 = 20 I II III IV A [0] 15 8 2 B 7 18 [0] 20 C 23 [0] 3 0 D 7 10 12 [0] 13
Algoritmo Húngaro completo Fase 1: Redução de Linhas e Colunas Obter a Matriz C Reduzida (I) Subtrair o elemento mínimo de cada linha (e coluna) de todos os elementos daquela linha (e coluna). Ir à Fase 2 (Etapa (II)). Fase 2: Identificação de Designação Ótima na Matriz C Reduzida (II) Examinar linhas e colunas sucessivamente. Para cada linha (coluna) com exatamente um zero não reservado ([0]) ou eliminado () reservar esta posição para uma designação e eliminar os demais zeros da coluna (linha) correspondente. Repetir este processo para as linhas e colunas sem posições reservadas até que todos os zeros tenham sido reservados ([0]) ou eliminados (). Se as posições reservadas formarem uma designação completa Solução Ótima foi obtida. Parar! Caso contrário ir a Fase 3 (etapas (III) e (IV)) 14
Algoritmo Húngaro completo Fase 3: Etapa (III) Proteger os zeros essenciais na Matriz C reduzida (A)Marcar com um asterisco ao lado da tabela todas as linhas sem zeros reservados; (B) Em linhas marcadas, marcar com um asterisco ao lado da tabela todas as colunas que tenham zeros (reservados ou eliminados); (C) Em colunas marcadas, marcar com um asterisco ao lado da tabela todas as linhas que tenham zeros reservados; (D) Repetir adicionais (B) e (C) até não se conseguir marcar linhas ou colunas (E) Cobrir com uma reta cada linha não marcada e cada coluna marcada Ir à Fase 3 Etapa (IV) 15
Algoritmo Húngaro completo Fase 3: Etapa (IV) - Redução adicional na Matriz C Reduzida (IV) Examinar os elementos não cobertos por retas na etapa (III) e identificar o elemento mínimo. Subtrair este elemento mínimo de todos os elementos não cobertos por retas Somar este elemento mínimo a todos os elementos cobertos por mais de uma reta (nas intersecções de duas retas) Manter os demais elementos da matriz como são. Retornar à Fase 2. 16
Comentários gerais O número mínimo de retas necessárias para cobrir todos os zeros da Matriz de Custos Reduzida = número máximo de designações possível com os zeros disponíveis. Designações impossíveis: bloquear a posição (colocar um custo muito alto na Função Objetivo) associada à designação impossível na Matriz C original Matriz de custos não é quadrada: adicionar linhas ou colunas fictícias e custos nulos. 17
Comentários gerais Problema de maximização: Multiplicar todos os elementos da matriz C por (-1) Identificar o elemento de maior valor em módulo Somar o elemento de maior módulo a todos os elementos da nova matriz de custos (já multiplicada por (-1)) Resolver como se fosse de minimização 18
Exemplo de Minimização O presidente de uma empresa está estudando a transferência de quatro diretores para quatro locais de trabalho diferentes. Foram feitas estimativas dos custos envolvidos na transferência de cada diretor para cada novo local de trabalho. Estes custos são dados a seguir: DIRETOR Local 1 2 3 4 A 2 1 4 2 B 3 4 1 6 C 1 2 6 5 D 1 3 3 7 19
Exemplo Obter a designação de diretores para locais de trabalho de menor custo. Fase 1: Reduzindo as linhas da matriz C 1 2 3 4 Menor A 2 1 4 2 1 B 3 4 1 6 1 C 1 2 6 5 1 D 1 3 3 7 1 20
Exemplo Resolução do exemplo dos diretores e locais Fase 1: Reduzindo as colunas da matriz C Etapa I 1 2 3 4 A 1 0 3 1 B 2 3 0 5 C 0 1 5 4 D 0 2 2 6 Menor 0 0 0 1 Ir para Fase 2 21
Exemplo Fase 2: Tentando identificar uma designação completa Etapa II 1 2 3 4 A 1 [0] 3 B 2 3 [0] 4 C [0] 1 5 3 D 2 2 5 Não foi obtida uma designação completa Ir para a Fase 3. 22
Exemplo Fase 3: Etapa (III) - Proteger os Zeros (A): Marcar linha sem Designação 1 2 3 4 Marca A 1 [0] 3 B 2 3 [0] 4 C [0] 1 5 3 D 2 2 5 * Marca 23
Exemplo Fase 3: Etapa (III) - Proteger os Zeros (B): Em linha marcada, marcar coluna com zero 1 2 3 4 Marca A 1 [0] 3 B 2 3 [0] 4 C [0] 1 5 3 D 2 2 5 * Marca * 24
Exemplo Fase 3: Etapa (III) - Proteger os Zeros ( C): Em coluna marcada, marcar linha com zero designado 1 2 3 4 Marca A 1 [0] 3 B 2 3 [0] 4 C [0] 1 5 3 * D 2 2 5 * Marca * 25
Exemplo Fase 3: Etapa (III) - Proteger os Zeros (D): Repetir (A), (B) e (C) Não há como marcar novas colunas, pois a coluna 1 já foi marcada na iteração anterior. Finalizadas as Etapas de (A) (D) Ir Para Fase 3 (E) 26
Exemplo Fase 3: Etapa (III) Proteger os zeros Fase (E): traçar reta sobre linha não marcada e sobre coluna marcada 1 2 3 4 Marca A 1 [0] 3 B 2 3 [0] 4 C [0] 1 5 3 * D 2 2 5 * Marca * Fase 3 - Etapa (IV): O menor elemento não coberto por alguma reta é = 1, na posição (C, 2). 27
Fase 3 Etapa IV Fase 3 Etapa IV: Modificações adicionais na Matriz C Reduzida: subtrair 1 dos números não cobertos por alguma reta e somar 1 aos que estão no cruzamento de 2 retas. Os demais não mudam. 1 2 3 4 A 2 0 3 0 B 3 3 0 4 C 0 0 4 2 D 0 1 1 4 Voltar à Fase 2 28
Fase 2 Etapa II Fase 2: Identificação de uma Designação Ótima 1 2 3 4 A 2 3 [0] B 3 3 [0] 4 C [0] 4 2 D [0] 1 1 4 Foi obtida uma solução ótima: Diretor A vai para Local 4, Diretor B vai para o Local 3, Diretor C vai para o Local 2 e o Diretor D vai para o Local 1. Custo ótimo = soma dos custos originais para as designações ótimas = 2 + 1 + 2 + 1 = 6 29
Exercícios 1. O Diretor de uma escola deseja inscrever quatro alunos num concurso de matemática que engloba os seguintes assuntos: Álgebra, Cálculo I, Linguagens de Computação e Cálculo II. Somente um aluno pode ser inscrito em cada assunto e nenhum aluno pode ser inscrito em mais de um assunto porque as provas do concurso ocorrerão simultaneamente. Para isso ele seleciona seus quatro melhores alunos, A, B, C, D e lhes aplica testes cobrindo as quatro áreas do concurso. O quadro abaixo indica o número de pontos que cada aluno obteve em cada uma das áreas no exame simulado. 30
Exercícios Álgebra Cálculo I Computação Cálculo II A 7 10 8 3 B 8 7 8 1 C 4 9 3 5 D 5 4 6 9 Qual aluno deve ser selecionado para cada um dos assuntos do concurso, sendo que o Diretor resolveu que o aluno B não deverá fazer a prova de Cálculo II? 31
Exercícios 2. Uma empresa vende produtos em quatro regiões e possui quatro vendedores que devem atender quatro regiões diferentes, sendo um vendedor para cada região. As regiões não são igualmente ricas e apresentam o seguinte potencial de venda (em $): Região I: 60.000 Região II: 50.000 Região III: 40.000 Região IV:30.000 Os vendedores por outro lado, não são igualmente hábeis e as suas eficiências, que refletem a capacidade de atingir o mercado potencial da região, são dados pelo quadro que se segue: 32
Exercícios Região I II III IV A 0,7 0,7 0,7 1,0 Vendedor B 0,8 0,8 0,8 1,0 C 0,5 0,5 0,5 1,0 D 1,0 0,4 1,0 0,4 Pede-se determinar, empregando o modelo da designação e o algoritmo húngaro, como enviar os vendedores às regiões para que o volume de vendas total das quatro regiões seja o maior possível. 33
Exercícios 3. Uma Empresa necessita desenvolver um plano de produção para iniciar a fabricação de três novos produtos. A Empresa dispõe de cinco máquinas e apenas três destas deverão ser escolhidas para manufaturar os novos itens, sendo um produto por máquina. Os custos de produção e os custos de distribuição para todas as combinações produto-máquina são fornecidos a seguir: Custos de Produção ($/unidade): Máquina 1 2 3 4 5 1 20 23 38 15 35 Produto 2 8 29 6 35 35 3 5 8 3 4 7 34
Exercícios Custos de Distribuição ($/unidade): Máquina 1 2 3 4 5 1 20 50 20 10 13 2 7 90 8 35 80 3 5 5 4 15 6 De acordo com os planos atuais é necessário manter uma determinada produção anual por item para haver demanda pelos preços unitários planejados, estes dados são fornecidos adiante: Produto Produção Planejada Preços Planejados 1 35000 US$ 55 2 160000 US$ 50 3 54000 US$ 30 Formule um modelo da designação para tratar este problema e resolva-o pelo Algoritmo Húngaro. 35