Os problemas de agendamento são geralmente grandes e complexos e são classificados matematicamente em um grupo de problemas denominado NP-Hard (non-deterministic polynomial-time hard). Em termos não matemáticos, esses são os mais difíceis dos problemas computacionais difíceis para os quais não existem algoritmos práticos ideais. Como resultado, todas as soluções de agendamento fazem uso de heurística e, portanto, nenhuma produz uma solução ideal (independentemente do que os fornecedores possam sugerir). O melhor que se pode esperar dessa classe de problemas é uma solução "boa" que seja melhor e mais fácil de obter do que tentar gerar uma solução manualmente usando o Excel ou um quadro de planejamento. Neste white paper, compararemos brevemente as abordagens baseadas em otimização e simulação para o problema de agendamento.
Programação baseada em otimização
Apesar do nome, as ferramentas de agendamento baseadas em otimização usam abordagens heurísticas que tentam gerar uma solução que satisfaça uma lista de restrições matemáticas e que também ofereça um desempenho razoável em medidas importantes, como o número de trabalhos atrasados. Não há garantias da qualidade do agendamento em comparação com outros agendamentos possíveis ou do tempo de computação que pode ser necessário para chegar a um agendamento viável ou bom.Em geral, essas ferramentas se esforçam primeiro para gerar um cronograma viável e, em seguida, aprimoram esse cronograma explorando variações do cronograma viável para melhorar as medidas de desempenho. A qualidade da resposta final será limitada pelo tempo permitido para que o algoritmo busque soluções melhores. Normalmente, é definido um limite de tempo (por exemplo, uma hora) para a busca algorítmica e a melhor solução encontrada durante esse tempo de busca é usada como o cronograma.
O algoritmo (às vezes chamado de solver) faz a pesquisa com base em um modelo matemático do sistema de produção configurado durante a instalação do software. O modelo matemático descreve as restrições de recursos do sistema e, em alguns casos, pode incluir detalhes como tempos de configuração dependentes da sequência de um recurso. No entanto, esse modelo matemático tem uma estrutura limitada e não pode capturar todas as restrições; por exemplo, o manuseio complexo de materiais, como o movimento de AGVs ou vários guindastes sobrepostos.Mesmo dentro dos recursos do modelo matemático, muitas vezes é necessário omitir detalhes da instalação (por exemplo, tempos de preparação dependentes da sequência) para manter o tempo de computação necessário para o algoritmo de busca dentro de limites aceitáveis.O problema com isso é que as programações resultantes muitas vezes são inviáveis no sistema real devido às restrições que foram ignoradas pela ferramenta de programação. Devido às limitações do modelo matemático, as ferramentas baseadas em otimização funcionam melhor em aplicações simples e diretas com poucas restrições complexas.
Uma das ferramentas de programação baseadas em otimização mais conhecidas é o PP/DS da SAP. Essa ferramenta oferece dois solvers alternativos para gerar soluções para o modelo matemático. O primeiro solver é um algoritmo de programação baseado em restrições que é a melhor opção para buscar uma solução viável quando há muitas restrições complexas. No entanto, esse solver é menos eficaz para encontrar boas soluções.O segundo solucionador é um algoritmo genético que pode fornecer soluções melhores, desde que não haja muitas restrições. O sucesso de qualquer um desses solucionadores em fornecer uma solução razoável dentro dos limites de um tempo de pesquisa prático depende da complexidade do modelo matemático e de seu ajuste aproximado ao sistema real.
Muitas vezes, os solucionadores não são capazes de resolver o problema em um tempo prático e, portanto, o PP/DS também fornece um conjunto de algoritmos heurísticos simples para gerar um cronograma viável. A maioria das implementações do PP/DS realmente usa esses algoritmos heurísticos simples e não faz uso dos dois solucionadores disponíveis.
Programação baseada em simulação
A abordagem baseada em simulação para a programação substitui o conjunto de restrições matemáticas por um modelo de simulação da instalação. Algumas ferramentas baseadas em simulação (por exemplo, Preactor) usam um modelo de simulação codificado da instalação que é configurado usando um banco de dados. Essas ferramentas são limitadas a aplicações em que o modelo orientado por dados é um ajuste razoável para a instalação. Outras ferramentas baseadas em simulação (por exemplo, Simio) suportam uma abordagem orientada por dados (para aplicativos padrão) e permitem a criação personalizada do modelo de simulação subjacente da instalação (para aplicativos complexos). Essa última abordagem oferece total flexibilidade na captura das restrições detalhadas do processo no sistema e maior transparência no processo de geração do cronograma.
Em uma ferramenta baseada em simulação, o cronograma é gerado por meio da simulação do fluxo de trabalho no modelo da instalação. À medida que os trabalhos se deslocam pela instalação simulada, eles fazem fila na frente das máquinas, aguardam a disponibilidade de material, ferramentas e operadores antes de prosseguir. O movimento do trabalho no modelo da instalação simulada é registrado e exibido na forma de gráficos de Gantt que mostram o fluxo de cada trabalho no sistema.O diagrama de Gantt de recursos mostra o carregamento de cada trabalho em cada recurso do sistema e o diagrama de Gantt de trabalhos mostra o fluxo de cada trabalho nos recursos que ele utiliza durante o processamento. A seguir, um diagrama de Gantt de recursos simples gerado pelo escalonador baseado em simulação Simio. Esse diagrama de Gantt é interativo e permite que o escalonador arraste e solte ordens dentro e entre as máquinas no diagrama de Gantt. Isso permite que o escalonador faça ajustes no cronograma gerado pelo modelo de simulação.

Além dos gráficos de Gantt interativos, o Simio também pode fornecer relatórios detalhados e painéis interativos que resumem o fluxo de trabalho programado na instalação. Isso pode incluir relatórios/painéis padrão sobre os recursos, materiais e restrições no sistema, bem como relatórios/painéis personalizados para aplicações específicas. Os resultados do cronograma podem ser divulgados para vários usuários em dispositivos móveis usando o Simio Portal baseado na nuvem. A seguir, um exemplo de painel interativo que mostra os estados da máquina e a lista de trabalho para as máquinas da instalação.

No Simio, o fluxo de trabalho através do sistema para gerar o cronograma também pode ser visualizado em uma animação 3D de alta fidelidade (veja abaixo). Isso torna o processo de geração de cronograma um processo altamente transparente. A seguir, um instantâneo da geração de cronograma animado para o programador baseado em simulação do Simio.

A otimização do cronograma ocorre por meio da aplicação de regras heurísticas de cronograma nas decisões tomadas durante a execução do modelo. Por exemplo, quando uma máquina fica ociosa, ela pode ter a opção de escolher qual trabalho processar em seguida. As ferramentas de cronograma baseadas em simulação normalmente fornecem um conjunto rico de regras para fazer essa seleção.Por exemplo, em um setor de processos, pode ser especificada uma regra que minimize os tempos/custos de configuração dependentes da sequência em uma estação de trabalho específica. Há outras regras disponíveis que se concentram em outras medidas importantes de desempenho, como minimizar o atraso, maximizar o rendimento ou minimizar o tempo ocioso em uma máquina com gargalo. Também é fácil criar regras personalizadas para medidas de desempenho específicas do aplicativo.
Uma das principais vantagens da abordagem de programação baseada em simulação é que, quando ocorre um evento perturbador (por exemplo, uma parada de máquina), uma nova programação pode ser gerada em alguns segundos ou minutos (em comparação com as horas de uma ferramenta baseada em otimização). A velocidade significativamente mais rápida das ferramentas de programação baseadas em simulação faz com que elas sejam a melhor opção em ambientes altamente dinâmicos em que a necessidade de reprogramação ocorre com frequência.
Outra vantagem importante da abordagem baseada em simulação é a capacidade de capturar as restrições detalhadas do sistema em um modelo de instalação de alta fidelidade, o que resulta em programações realistas e executáveis que podem ser implementadas "como estão" no chão de fábrica sem ajustes pelos operadores do chão de fábrica. Quando uma ferramenta de programação gera programações inviáveis que exigem mudanças no chão de fábrica, os operadores podem tomar decisões "locais" que produzem uma programação não ideal.
Um problema crítico da abordagem de programação baseada em otimização é que ela exige que todos os dados sejam totalmente conhecidos e determinísticos. Por exemplo, todos os tempos de processamento devem ser fixos e não pode haver eventos ou atrasos inesperados. Infelizmente, esse é o "caminho feliz" através do sistema e o cronograma resultante é, por natureza, otimista e, normalmente, é muito diferente do que ocorre na instalação real. É comum que o que começa como um cronograma viável se torne inviável com o passar do tempo, pois a variação e os eventos não planejados prejudicam o desempenho. É normal haver grandes discrepâncias entre os cronogramas previstos e o desempenho real. Para se proteger contra os atrasos, o programador deve fazer um buffer com alguma combinação de tempo extra, estoque ou capacidade; tudo isso adicionando custo ao sistema. O Planejamento e Programação Baseados em Risco (RPS) do Simio, baseado em simulação, amplia a programação tradicional para considerar totalmente a variação presente em quase todos os sistemas de produção e fornece as informações necessárias ao programador para permitir a mitigação antecipada do risco e da incerteza.
Baixar a versão em PDF
