A API Workforce Scheduling oferece dois solucionadores usando os métodos SolveShiftGeneration e SolveShiftScheduling. O solucionador de geração de turnos cria um conjunto de turnos que maximiza a cobertura das demandas dos funcionários em um determinado horizonte de tempo. Já o solucionador de programação de turnos atribui funcionários específicos a um conjunto de turnos predeterminados. Cada solucionador pode ser usado de forma independente. Em particular, as mudanças para as quais os funcionários são atribuídos no solucionador de programação de turnos podem ser especificadas pelo usuário ou geradas com o solucionador de geração de mudanças.
Solucionador de problemas de geração de mudanças
O solucionador de geração de turnos seleciona um conjunto de turnos para que o número total de funcionários necessários para cobrir um determinado perfil de demanda seja minimizado.
A entrada do solucionador é uma solicitação que descreve modelos de turno e demandas de funcionários. Os modelos de Shift determinam as regras que o solucionador precisa seguir para criar as mudanças. As demandas dos funcionários descrevem o número de funcionários por horas extras, com granularidade de tempo de apenas um minuto.
A saída do solucionador é uma resposta com uma lista de turnos e o número correspondente de funcionários necessários por turno. Sempre que não for possível atender a todas as demandas, uma lista de violações de cobertura também será fornecida ao usuário por conveniência.
Recursos
Para uma explicação detalhada de cada recurso do solucionador, consulte a documentação da API. A seguir, resumimos os recursos mais conhecidos do solucionador.
Modelos de turno
Um modelo de turno determina principalmente a duração e os possíveis horários de início de uma mudança em qualquer dia. Além disso, é possível especificar um número máximo de funcionários por modelo de turno por dia e o número de dias de folga por semana.
Os modelos de turno também podem especificar uma lista de modelos de eventos para representar interrupções programadas, como pausas ou treinamentos de funcionários. Os modelos de evento determinam o horário de início (em relação ao horário de início do turno) e a duração de um evento.
Flutuações na demanda dos funcionários
A demanda por funcionários pode variar com o tempo. Em particular, as demandas dos funcionários podem ser especificadas ao longo de intervalos de tempo tão curtos, como 5 minutos, ou tão longos quanto o horizonte de planejamento. Intervalos de tempo sem uma demanda especificada são equivalentes a ter uma demanda de zero funcionários.
Solucionador de programação de turnos
O solucionador de programação de turnos otimiza a atribuição de funcionários aos turnos, de modo que as restrições de programação sejam atendidas (ou as violações delas, minimizadas) e as preferências dos funcionários sejam consideradas.
A entrada para o solucionador é uma solicitação que descreve funcionários, turnos, requisitos de cobertura e de orçamento. Para cada funcionário, é possível especificar funções, habilidades e restrições de agendamento para definir como é um cronograma válido por funcionário. As mudanças determinam quando e onde os funcionários podem trabalhar, enquanto os requisitos de cobertura determinam a demanda por diferentes funções (e habilidades) ao longo de vários períodos.
A saída do solucionador é uma resposta com atribuições de função de turno de funcionário que resume, para cada funcionário, as mudanças e o papel (por turno) a que eles foram atribuídos.
Recursos
Para uma explicação detalhada de cada recurso do solucionador, consulte a documentação da API. A seguir, resumimos os recursos mais conhecidos do solucionador.
Restrições de agendamento de funcionários
Especifica regras ou limites que a programação de um determinado funcionário precisa atender. Especificamente, ele oferece suporte a:
- Tempo de trabalho mínimo / máximo
- Mínimo / máximo de dias consecutivos
- Número mínimo / máximo de turnos
- Tempo mínimo de descanso entre os turnos
- Restrições de recursos
- Solicitações de turnos para trabalhar (ou não) em turnos específicos
Preferências dos funcionários
Especifica uma preferência numérica que um funcionário tem para um turno específico, e a soma de preferências em toda a lista é maximizada.
Requisitos de cobertura
Especifica um número de funcionários que precisam trabalhar em várias janelas de tempo e para funções específicas. Os requisitos de cobertura podem estar alinhados com a lista de turnos fornecida, mas também podem definir janelas de tempo mais detalhadas do número necessário de funcionários que trabalham.
Requisitos de orçamento
Especifica um contrato para os funcionários com taxas por hora regulares e extras, junto com restrições de orçamento global. Um orçamento pode ser um valor máximo para os custos da força de trabalho ou uma indicação de que esse custo precisa ser minimizado.
Prioridades de restrição
Cada restrição de agendamento de funcionário, requisito de cobertura e requisito de orçamento recebe um nível de prioridade (obrigatório, alto, médio ou baixo). Todas as restrições com prioridade obrigatória precisam ser atendidas pelo solucionador. Restrições com qualquer outra prioridade podem ser violadas pelo solucionador, mas essas violações são minimizadas de acordo com a ordem de prioridade. As preferências do funcionário são consideradas pelo solucionador depois que as violações de restrição em todos os níveis de prioridade são minimizadas.
Como começar
Para ter acesso à API Workforce Scheduling, siga as instruções dos trusted testers e o guia de setup para receber uma chave de API. Depois de ter acesso à API, use os exemplos de API para começar. Em caso de dúvidas, envie um e-mail para or-workforce-scheduling+contact@google.com.