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

Exemplo de utilização da Planning API com um problema logístico simples 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.

735e7ed2-065d-4931-a572-4b3bac2e6c25

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.

solution-planning

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