Objectifs

Les objectifs sont des paramètres qui prédéfinissent des cibles d'optimisation courantes, telles que la distance ou la durée de trajet les plus courtes, les livraisons à l'heure ou l'équilibrage des charges entre les conducteurs. Il est conçu pour permettre aux développeurs de s'intégrer plus facilement à l'API Route Optimization avant d'apprendre les subtilités et la personnalisation complète des paramètres de coût. (Consultez cost model pour découvrir comment personnaliser entièrement votre large éventail d'objectifs.)

Lorsqu'ils sont définis, les ShipmentModel.objectives remplacent complètement le modèle de coûts. Ils sont donc incompatibles avec les coûts préexistants. Chaque Objective correspond à un certain nombre de coûts prédéfinis pour les attributs de véhicules, d'expéditions ou de transitions.

Lorsque vous spécifiez le mode de résolution TRANSFORM_AND_RETURN_REQUEST, la demande n'est pas résolue. Elle est uniquement validée et complétée avec les coûts correspondant aux objectifs indiqués. La requête modifiée est renvoyée sous la forme OptimizeToursResponse.processed_request. Tous les autres modes de résolution renvoient la demande résolue.

Le mode de résolution TRANSFORM_AND_RETURN_REQUEST n'est valable que pour les requêtes OptimizeTours et n'est pas disponible pour les autres requêtes de l'API Route Optimization.

Exemple : effectuer une requête ShipmentModel.objectives

Avant de faire une demande, procédez comme suit :

  • Assurez-vous d'avoir configuré les identifiants par défaut de l'application comme décrit dans Utiliser OAuth.
  • Définissez PROJECT_NUMBER_OR_ID sur le numéro ou l'ID de votre projet Cloud.

    La commande suivante envoie un OptimizeToursRequest à l'API Route Optimization, qui renvoie un OptimizeToursResponse.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ],
      }
    }
    EOM

Exemple : effectuer une requête TRANSFORM_AND_RETURN_REQUEST

Avant de faire une demande, procédez comme suit :

  • Assurez-vous d'avoir configuré les identifiants par défaut de l'application comme décrit dans Utiliser OAuth.
  • Définissez PROJECT_NUMBER_OR_ID sur le numéro ou l'ID de votre projet Cloud.

    La commande suivante envoie une requête OptimizeToursRequest à l'API Route Optimization, qui renvoie une réponse OptimizeToursResponse avec le champ ProcessedRequest défini.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ]
      },
      "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
    }
    EOM
    La commande précédente produira une réponse semblable à la suivante.
    {
      "processedRequest": {
        "model": {
          "shipments": [
            {
              "pickups": [
                {
                  "arrivalLocation": {
                    "latitude": 37.425062610009959,
                    "longitude": -122.09535511930135
                  }
                }
              ],
              "deliveries": [
                {
                  "arrivalLocation": {
                    "latitude": 37.424215032060211,
                    "longitude": -122.09526063135228
                  }
                }
              ]
            }
          ],
          "vehicles": [
            {
              "travelMode": "DRIVING",
              "costPerHour": 30,
              "costPerTraveledHour": 330,
              "costPerKilometer": 0.2
            }
          ],
          "objectives": [
            {
              "type": "MIN_TRAVEL_TIME"
            }
          ]
        },
        "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
      }
    }