Planeamento de equipas de trabalho: como otimizar horários e os custos
Como falamos antes, os custos com o pessoal são uma preocupação constante e premente para os responsáveis financeiros das empresas.
Nada melhor do que um exemplo prático para verificarmos o contributo do Solver para esta questão sensível.
Uma grande superfície comercial abre às 9h00 e encerra às 23h00. Durante este horário de funcionamento tem diferentes necessidades de pessoal de atendimento, conforme a seguinte tabela:
Pretendemos organizar a equipa de trabalho para satisfazer estas necessidades de pessoal de atendimento tendo em conta que existem 4 tipos de contrato de trabalho para trabalhadores Full-Time (FT) e Part-Time (PT) com os seguintes horários e salários mensais:
Queremos saber quantas pessoas contratar para cada um dos 4 tipos de contrato de trabalho, tendo em conta que o pessoal que trabalha em Full-Time trabalha 8 horas por dia, mas não pode trabalhar mais de 4 horas seguidas, sendo obrigatório um intervalo de uma hora. O pessoal que trabalha em Part-Time trabalha 4 horas por dia sem intervalo.
Para resolver este problema, vamos definir como objetivo a minimização dos custos com pessoal
As restrições serão as seguintes:
- O pessoal disponível para cada uma das horas de abertura deverá ser igual ou superior ao pessoal necessário,
- O número de pessoas a contratar para cada um dos 4 tipos de contrato de trabalho deve ser um número inteiro e positivo.
Assim, começaremos por construir uma tabela com o número de pessoas a contratar para cada uma das 4 equipas, que serão as nossas variáveis de decisão e cujo intervalo nomeado será pessoal. Numa primeira abordagem introduzimos valores de teste:
Com base nesta tabela, calculamos o valor mensal dos salários multiplicando o número de colaboradores em cada equipa pelo respetivo salário e adicionando todos os salários para calcular o total. Esta célula, que designaremos por SalárioTotal, será a nossa célula objetivo.
Seguidamente, construímos a tabela com o número de pessoas disponíveis por cada equipa por hora e calculamos o total por hora que comparamos com o pessoal necessário por hora. Esta comparação será a restrição 1 acima.
Finalmente, resolvemos o problema introduzindo os seguintes parâmetros no Solver:
A solução encontrada será a seguinte:
Com estas condições, a solução ótima implica um custo mensal com salários de €43.600. O facto de existirem intervalos fixos para almoço e jantar nas equipas Full-Time, implica a contratação de colaboradores em Part-Time em número igual ao das necessidades para essas horas. Como podemos verificar na tabela acima, isso implica um excesso de funcionários disponíveis nas horas da vizinhança.
Se tivéssemos a possibilidade de acrescentar mais duas equipas de trabalho em Full-Time, com horários entre as 10 e as 19 horas e as 13 e as 22 horas, respetivamente. E se estas equipas mantivessem a obrigatoriedade de fazer intervalos de uma hora ao fim de 4 horas de trabalho seguidas, qual seria o impacto nos custos totais mensais? E quantas pessoas teríamos de contratar para cada uma das 6 equipas de trabalho?
Planear equipas de trabalho por dias da semana
Supondo agora que pretendemos planear o número de colaboradores necessários para trabalhar num hotel por dias da semana. Assumindo que podem trabalhar 5 dias seguidos e que o hotel está em funcionamento durante os 7 dias da semana, qual será o planeamento mais indicado para satisfazer as necessidades de staff abaixo?
O objetivo é minimizar o número de funcionários. As restrições são as seguintes:
- O número de colaboradores disponíveis a cada dia da semana deverá ser igual ou superior ao número de colaboradores da tabela anterior.
- O número de colaboradores a contratar para começar a trabalhar a cada dia da semana deverá ser um número positivo e inteiro.
Para identificarmos os diversos esquemas de trabalho, podemos recorrer à seguinte tabela que identifica o primeiro dia de trabalho, os dias em que o colaborador está a trabalhar com 1 e os dias de folga com 0:
Deste modo, se um trabalhador começa a sua semana de trabalho a uma segunda-feira, ele trabalhará até sexta-feira e descansará no Sábado e no Domingo. Se começar a trabalhar na terça-feira, terá como dias de descanso o Domingo e a segunda-feira e assim sucessivamente.
As nossas variáveis de decisão serão, portanto, referentes ao número de trabalhadores por dia de semana. Se, designarmos um intervalo nomeado de células por NumPorSemana e identificarmos as colunas para o número de trabalhadores necessários e disponíveis por dia da semana por NumNecessário e NumDisponível, respetivamente, então precisaríamos de calcular o número de trabalhadores disponíveis por dia da semana usando novamente a fórmula SUMPRODUCT que multiplica o número de trabalhadores que começam a cada dia da semana por 1 ou 1, consoante estejam ou não a trabalhar nesse dia.
Teríamos então no Excel, a seguinte solução com valores de teste para o número de funcionários contratados por dia a azul:
Como não cumprimos o requisito quanto ao número de funcionários por dia da semana com esta solução, teremos de requisitar o Solver novamente com os seguintes parâmetros de resolução:
A solução seria contratar 36 funcionários com a seguinte distribuição:
- 6 para começar a trabalhar à terça-feira
- 10 para começar a trabalhar à quarta-feira
- 4 para começar a trabalhar à quinta-feira
- 10 para começar a trabalhar à sexta-feira
- 2 para começar a trabalhar ao Sábado
- 4 para começar a trabalhar ao Domingo
Esta solução minimiza o número total de funcionários e assegura que a cada dia da semana estão disponíveis conforme os requisitos mínimos:
E se o objetivo for maximizar o número de dias de descanso durante o fim-de-semana? Qual seria a solução ótima de planeamento da equipa de trabalho?
Neste caso, mais amigo dos empregados, teríamos de alterar a célula objetivo para o número total de dias de descanso ao Sábado e ao Domingo.
As restrições mantêm-se inalteradas.
Para resolvermos esta variante do problema, acrescentamos mais uma linha que conta o número de dias de descanso ao fim-de-semana para cada um dos horários possíveis. O plano de trabalho que maximiza o número de dias de descanso ao fim-de-semana, como sabemos, é o que começa à segunda-feira. Na tabela seguinte podemos ver o panorama geral:
Nesta solução, o número total de dias de descanso é de 10, que calculamos multiplicando o número de dias de descanso para cada plano de trabalho pelo número correspondente de funcionários (designamos a célula por totalDescansoFds) e o número total de funcionários é de 36.
Se procuramos obter uma solução de maximização de totalDescansoFds com as mesmas restrições do problema anterior, o Solver não conseguirá encontrar uma solução. A seguinte caixa será exibida:
A mensagem apresentada explica porquê: perante o objetivo de maximizar o número de dias de descanso ao fim-de-semana, o Solver poderá aumentar as células que contêm as variáveis de decisão quanto quiser, ad infinitum! Por outras palavras, se o objetivo é maximizar o número de dias de descanso, então a solução será contratar o maior número de funcionários possível, o que não faz sentido.
Este problema poderia ser resolvido apenas se existir um limite quanto ao número total de funcionários da empresa. Se a empresa dispuser de um quadro de 40 funcionários, qual o planeamento do trabalho que maximiza o número de dias de descanso ao fim-de-semana? Esta é uma pergunta que permite encontrar uma solução lógica.
Vejamos os parâmetros:
A célula totalFuncionários, incluída agora na caixa de restrições, é calculada somando simplesmente a linha com os funcionários para cada plano de trabalho. Se não podemos exceder 40 funcionários, então a solução que maximiza o número total de dias de descanso ao fim-de-semana seria a seguinte:
- 8 funcionários para começar a trabalhar à segunda-feira
- 2 funcionários para começar a trabalhar à terça-feira
- 14 funcionários para começar a trabalhar à quarta-feira
- 16 funcionários para começar a trabalhar à sexta-feira
Esta solução garantiria um total de 18 dias de descanso ao fim-de-semana contra os 10 dias da solução anterior:
Até agora é fácil concordar que o Solver é uma grande ferramenta, mas será que se comporta assim, também, a nível do planeamento financeiro?
Vamos ver...