Skip to main content
18 July 2017
Follow Us

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:

BusinessModelling17

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:

BusinessModelling18

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:

  1. O pessoal disponível para cada uma das horas de abertura deverá ser igual ou superior ao pessoal necessário,
  2. 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:

BusinessModelling19

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:

BusinessModelling20

A solução encontrada será a seguinte:

BusinessModelling21

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?

BusinessModelling22

O objetivo é minimizar o número de funcionários. As restrições são as seguintes:

  1. 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.
  2. 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:

BusinessModelling23

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:

BusinessModelling24

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:

BusinessModelling25

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:

BusinessModelling26

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:

BusinessModelling27.2

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:

BusinessModelling28

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:

BusinessModelling29

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:

BusinessModelling30

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...


Assine a nossa newsletter e receba o nosso conteúdo diretamente no seu email