Alocação Otimizada de Unidades de Coleta (UCs) a Agências
alocar_ucs.Rd
Esta função realiza a alocação otimizada de Unidades de Coleta (UCs) a agências, com o objetivo de minimizar os custos totais de deslocamento e operação. A alocação leva em consideração restrições de capacidade das agências (em número de dias de coleta), custos de deslocamento (combustível, tempo de viagem e diárias), custos fixos das agências e custos de treinamento.
Usage
alocar_ucs(
ucs,
agencias = data.frame(agencia_codigo = unique(ucs$agencia_codigo),
dias_coleta_agencia_max = Inf, custo_fixo = 0),
custo_litro_combustivel = 6,
custo_hora_viagem = 10,
kml = 10,
valor_diaria = 335,
diarias_entrevistador_max = Inf,
remuneracao_entrevistador = 0,
n_entrevistadores_min = 1,
dias_coleta_entrevistador_max,
dias_treinamento = 0,
agencias_treinadas = NULL,
agencias_treinamento = NULL,
distancias_ucs,
distancias_agencias = NULL,
adicional_troca_jurisdicao = 0,
resultado_completo = FALSE,
solver = "cbc",
rel_tol = 0.02,
max_time = 30 * 60,
...
)
Arguments
- ucs
Um
tibble
oudata.frame
contendo informações sobre as UCs, incluindo:uc
: Código único da UC.agencia_codigo
: Código da agência à qual a UC está atualmente alocada.dias_coleta
: Número de dias de coleta na UC.viagens
: Número de viagens necessárias para a coleta na UC.
- agencias
Um
tibble
oudata.frame
contendo informações sobre as agências selecionáveis, incluindo:agencia_codigo
: Código único da agência.dias_coleta_agencia_max
: Número máximo de dias de coleta que a agência pode realizar.custo_fixo
: Custo fixo associado à agência.
- custo_litro_combustivel
Custo do combustível por litro (em R$). Padrão: 6.
- custo_hora_viagem
Custo de cada hora de viagem (em R$). Padrão: 10.
- kml
Consumo médio de combustível do veículo (em km/l). Padrão: 10.
- valor_diaria
Valor da diária para deslocamentos (em R$). Padrão: 335.
- diarias_entrevistador_max
Máximo de diárias que um entrevistador pode receber no período de referência. Padrão:
Inf
.- remuneracao_entrevistador
Remuneração por entrevistador para todo o período de referência. Padrão: 0.
- n_entrevistadores_min
Número mínimo de entrevistadores por agência. Padrão: 1.
- dias_coleta_entrevistador_max
Número de dias de coleta por entrevistador.
- dias_treinamento
Número de dias/diárias para treinamento. Padrão: 0 (nenhum treinamento).
- agencias_treinadas
(Opcional) Um vetor de caracteres com os códigos das agências que já foram treinadas e não terão custo de treinamento. Padrão: NULL.
- agencias_treinamento
Código da(s) agência(s) onde o treinamento será realizado.
- distancias_ucs
Um
tibble
oudata.frame
com as distâncias entre UCs e agências, incluindo:uc
: Código da UC.agencia_codigo
: Código da agência.distancia_km
: Distância em quilômetros entre a UC e a agência.duracao_horas
: Duração da viagem em horas entre a UC e a agência.diaria_municipio
: Indica se é necessária uma diária para deslocamento entre a UC e a agência, considerando o município da UC.diaria_pernoite
: Indica se é necessária uma diária com pernoite para deslocamento entre a UC e a agência.
- distancias_agencias
Um
tibble
oudata.frame
com as distâncias entre as agências, incluindo:agencia_codigo_orig
: Código da agência de origem.agencia_codigo_dest
: Código da agência de destino.distancia_km
: Distância em quilômetros entre a agência de origem e a de destino.duracao_horas
: Duração da viagem em horas entre a agência de origem e a de destino.
- adicional_troca_jurisdicao
Custo adicional quando há troca de agência de coleta. Padrão: 0.
- resultado_completo
(Opcional) Um valor lógico indicando se deve ser retornado um resultado mais completo, incluindo informações sobre todas as combinações de UCs e agências. Padrão: FALSE.
- solver
Qual ferramenta para solução do modelo de otimização utilizar. Padrão: "cbc". Outras opções: "glpk", "symphony" (instalação manual).
- ...
Opções adicionais para o solver.
Value
Uma lista contendo:
resultado_ucs_jurisdicao
: Umtibble
com as UCs e suas alocações originais (jurisdição), incluindo custos de deslocamento.resultado_agencias_jurisdicao
: Umtibble
com as agências e suas alocações originais (jurisdição), incluindo custos fixos, custos de deslocamento e número de UCs alocadas.resultado_ucs_otimo
: Umtibble
com as UCs e suas alocações otimizadas, incluindo custos de deslocamento.resultado_agencias_otimo
: Umtibble
com as agências e suas alocações otimizadas, incluindo custos fixos, custos de deslocamento, número de UCs alocadas e número de entrevistadores.ucs_agencias_todas
(opcional): Umtibble
com todas as combinações de UCs e agências, incluindo distâncias, custos e informações sobre diárias (retornado apenas seresultado_completo
for TRUE).otimizacao
(opcional): O resultado completo da otimização (retornado apenas seresultado_completo
for TRUE).