Objetivos

Los objetivos son parámetros que definen previamente objetivos de optimización comunes, como la distancia o la duración de viaje más cortas, las entregas a tiempo y el equilibrio de cargas entre los conductores. Su objetivo es facilitar que los desarrolladores se integren a la API de Route Optimization antes de aprender las complejidades y la personalización completa de los parámetros de costo.

Cuando se configuran, los ShipmentModel.objectives reemplazan por completo el modelo de costos, por lo que son incompatibles con los costos preexistentes. Cada Objective se asigna a una serie de costos predefinidos para vehículos, envíos o atributos de transición.

Cuando se especifica el modo de resolución TRANSFORM_AND_RETURN_REQUEST, la solicitud no se resuelve y solo se valida y se completa con los costos correspondientes a los objetivos determinados. La solicitud modificada se muestra como OptimizeToursResponse.processed_request. Todos los demás modos de resolución mostrarán la solicitud resuelta.

El modo de resolución TRANSFORM_AND_RETURN_REQUEST solo es válido para las solicitudes OptimizeTours y no está disponible para otras solicitudes a la API de Route Optimization.

Ejemplo: Realiza una solicitud ShipmentModel.objectives

Antes de realizar una solicitud, completa los siguientes pasos:

  • Asegúrate de tener configuradas las Credenciales predeterminadas de la aplicación como se describe en Cómo usar OAuth.
  • Establece PROJECT_NUMBER_OR_ID en el número o el ID de tu proyecto de Cloud.

    El siguiente comando envía un OptimizeToursRequest a la API de Route Optimization, que muestra 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

Ejemplo: Realiza una solicitud TRANSFORM_AND_RETURN_REQUEST

Antes de realizar una solicitud, completa los siguientes pasos:

  • Asegúrate de tener configuradas las Credenciales predeterminadas de la aplicación como se describe en Cómo usar OAuth.
  • Establece PROJECT_NUMBER_OR_ID en el número o el ID de tu proyecto de Cloud.

    El siguiente comando envía un OptimizeToursRequest a la API de Route Optimization, que muestra un OptimizeToursResponse con el campo ProcessedRequest establecido.

    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
    El comando anterior producirá una respuesta similar a la siguiente.
    {
      "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"
      }
    }