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 la plus courte, les livraisons à temps ou l'équilibrage des charges entre les conducteurs. Ils sont conçus pour permettre aux développeurs de se familiariser plus facilement avec l'API Route Optimization avant d'apprendre les subtilités et la personnalisation complète des paramètres de coût. (Pour savoir comment personnaliser entièrement vos objectifs, consultez la section "cost model ".)

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

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

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

Exemple : Envoyer une requête ShipmentModel.objectives

Avant d'envoyer une requête, procédez comme suit :

  • Assurez-vous que les identifiants par défaut de l'application sont configurés 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 OptimizeToursRequest à l'API Route Optimization, qui renvoie une 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 : Envoyer une requête TRANSFORM_AND_RETURN_REQUEST

Avant d'envoyer une requête, procédez comme suit :

  • Assurez-vous que les identifiants par défaut de l'application sont configurés 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 avec le ProcessedRequest champ 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 génère 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"
      }
    }