1.4. Exemplo 1 - Operações com um único veículo

Neste exemplo, temos uma requisição para Planning API resolver um problema logístico de 1 veículo e 2 operações, partindo do centro de distribuição.

 

Parâmetros utilizados

"optimizationProfile": "BRAZIL46". Para essa simulação, foi usado o perfil de otimização BRAZIL46, o mais indicado para problemas mais simples.

"tripsProfile": "MAPLINK". Utilizamos o perfil que contém o mapa mais atualizado e configurado para utilizar o modo de cálculo para utilizar vias mais rápidas.

"startDate": 1671516600000. Horário de início de referência para o cálculo da otimização logística (Terça-feira, 20 de dezembro de 2022 06:10:00).

"legislationProfiles": Parâmetro com o nome do perfil que se aplica ao tempo de direção, duração de um dia de trabalho ou intervalo. Neste caso não há nenhuma característica definida.

"logisticConstraints": Restrições logísticas usadas para determinar o tempo fixo de carregamento e descarregamento da carga. Nesse exemplo, foi usado 900 segundos (15 minutos) para o tempo de carregamento do caminhão e 600 segundos (10 minutos) para o descarregamento na entrega.

"products": Nome para referenciar o produto.

"sites": Localização onde ocorrerão as atividades de entregas, com definição do nome e a restrição logística com o tempo de entrega.

"depots": Localização do centro de distribuição, com definição do nome e a restrição logística com o tempo de carregamento do caminhão.

"vehicleTypes" : Neste parâmetro especificamos a capacidade de carga dos veículos da frota, como volume e peso máximos e o tamanho em um intervalo de 1 a 9, e o nome da tipologia.

"vehicles": Foram especificados os veículos que estão disponíveis para executar a rota. Neste exemplo, um veículo do tipo VUC. Se define também o período de trabalho e o perfil de legislação aplicável ao motorista. Foi definido que o veículo irá sair e retornar para o Centro de Distribuição.

"operations": São as características das operações de entregas, definindo o local, peso e volume, produto, tipo de atividade, centro de distribuição da origem do produto e o horário que o cliente irá receber. Neste exemplo, são 2 operações.

 

Requisição

{ "optimizationProfile": "BRAZIL46", "tripsProfile": "MAPLINK", "startDate": 1671516600000, "legislationProfiles": [ { "name": "DEFAULT" } ], "logisticConstraints": [ { "name": "P1Pickup", "siteLoadingFixedTime": 900 }, { "name": "P1Delivery", "siteUnloadingFixedTime": 600 } ], "products": [ { "name": "DEFAULT" } ], "sites": [ { "name": "Cliente1", "coordinates": { "latitude": -23.507608, "longitude": -46.587145 }, "logisticConstraints": "P1Delivery" }, { "name": "Cliente2", "coordinates": { "latitude": -23.621059, "longitude": -46.756193 }, "logisticConstraints": "P1Delivery" } ], "depots": [ { "name": "CD", "coordinates": { "latitude": -23.503939, "longitude": -46.498419 }, "logisticConstraints": "P1Pickup" } ], "vehicleTypes": [ { "name": "VUC", "maxVolume": 20, "maxWeight": 1200, "size": 1 } ], "vehicles": [ { "name": "VUC_1", "vehicleType": "VUC", "legislationProfile": "DEFAULT", "availablePeriods": [ { "departureSite": "CD", "arrivalSite": "CD", "timeWindow": { "start": 1671519600000, "end": 1671562800000 } } ] } ], "operations": [ { "id": "P1", "weight": 100, "volume": 2, "product": "DEFAULT", "type": "DELIVERY", "depotSite": "CD", "customerSite": "Cliente1", "customerTimeWindows": [ { "start": 1671523200000, "end": 1671537600000 } ] }, { "id": "P2", "weight": 250, "volume": 5, "product": "DEFAULT", "type": "DELIVERY", "depotSite": "CD", "customerSite": "Cliente2", "customerTimeWindows": [ { "start": 1671523200000, "end": 1671537600000 } ] } ] }

 

Solução do problema logístico

A resposta da API retornará no formato JSON com o melhor sequenciamento das operações de entrega para cada veículo.

 

A resposta retorna os seguintes indicadores globais:

Indicador

Resultado

Tempo total de serviço:

00:35:00

Tempo total de entrega:

00:20:00

Tempo total do dia de trabalho:

02:24:07

Tempo total de trabalho noturno:

00:00:00

Tempo total de descarregamento:

00:00:00

Tempo total de trabalho:

02:24:07

Tempo total de coleta:

00:00:00

Número de janelas de horário:

1

Tempo total de condução:

01:49:07

Tempo total de carregamento:

00:15:00

Tempo total:

02:24:07

Distância total:

75.03 km

Taxa de ocupação média em Volume:

35

Taxa de ocupação média em Peso:

29.17

Número de rejeições:

0

Tempo total de espera:

00:00:00

Tempo total de descanso:

00:00:00

Número de rotas:

1

 

Abaixo a reposta completa. Repare que a rota apresentará a sequência temporal das atividades realizada pelo veículo:

{ "id": "62a3425f368c8a6c62d9397a", "clientId": "915xlwDleOGUKQEAOPnvO6nz1ql9ucuz", "vehicleRoutes": [ { "routes": [ { "id": "NewRoute_1_1", "activities": [ { "activity": "ROUTE_START", "timeWindow": { "start": 1671520968000, "end": 1671520968000 }, "type": "SITE", "site": "CD", "operations": [] }, { "activity": "LOADING", "timeWindow": { "start": 1671520968000, "end": 1671521868000 }, "type": "SITE", "site": "CD", "fixedTimeSite": 900, "operations": [ "P2", "P1" ] }, { "activity": "DRIVING", "timeWindow": { "start": 1671521868000, "end": 1671523200000 }, "type": "DRIVING", "operations": [], "arrivalSite": "Cliente1", "departureSite": "CD", "distance": 13411, "nominalDuration": 1332 }, { "activity": "DELIVERY", "timeWindow": { "start": 1671523200000, "end": 1671523800000 }, "type": "SITE", "site": "Cliente1", "fixedTimeSite": 600, "operations": [ "P1" ] }, { "activity": "DRIVING", "timeWindow": { "start": 1671523800000, "end": 1671526134000 }, "type": "DRIVING", "operations": [], "arrivalSite": "Cliente2", "departureSite": "Cliente1", "distance": 26969, "nominalDuration": 2334 }, { "activity": "DELIVERY", "timeWindow": { "start": 1671526134000, "end": 1671526734000 }, "type": "SITE", "site": "Cliente2", "fixedTimeSite": 600, "operations": [ "P2" ] }, { "activity": "DRIVING", "timeWindow": { "start": 1671526734000, "end": 1671529615000 }, "type": "DRIVING", "operations": [], "arrivalSite": "CD", "departureSite": "Cliente2", "distance": 34647, "nominalDuration": 2881 }, { "activity": "ROUTE_END", "timeWindow": { "start": 1671529615000, "end": 1671529615000 }, "type": "SITE", "site": "CD", "operations": [] } ] } ], "vehicle": "VUC_1", "period": { "timeWindow": { "start": 1671519600000, "end": 1671562800000 }, "departureSite": "CD", "arrivalSite": "CD" } } ], "indicators": { "totalServiceTime": 2100, "totalDeliveringTime": 1200, "dayWorkingTotalTime": 8647, "nightWorkingTotalTime": 0, "totalUnloadingTime": 0, "totalWorkingTime": 8647, "totalCollectingTime": 0, "timeWindowNumber": 1, "totalDrivingTime": 6547, "totalLoadingTime": 900, "totalTime": 8647, "totalDistance": 75027, "averageOccupancyRateVolume": 35.0, "averageOccupancyRateWeight": 29.17, "rejectOperationsNumber": 0, "totalWaitingTime": 0, "totalRestTime": 0, "routesNumber": 1 } }