الأهداف

الأهداف هي مَعلمات تحدّد مسبقًا أهداف التحسين الشائعة، مثل أقصر مسافة أو مدة للرحلة، أو عمليات التسليم في الوقت المحدّد، أو موازنة الأحمال بين السائقين. تهدف هذه المَعلمات إلى تسهيل عملية إعداد المطوّرين لاستخدام Route Optimization API قبل التعرّف على التفاصيل الدقيقة والتخصيص الكامل لمَعلمات التكلفة. (راجِع "cost model " للتعرّف على كيفية تخصيص مجموعة كبيرة ومتنوّعة من الأهداف بشكل كامل).

عند الضبط، فإنّ ShipmentModel.objectives تلغي نموذج التكلفة بالكامل، لذا لا تتوافق مع التكاليف الحالية. يرتبط كل Objective بعدد من التكاليف المحدّدة مسبقًا للسيارات أو الشحنات أو سمات النقل.

عند تحديد وضع الحلّ TRANSFORM_AND_RETURN_REQUEST، لا يتم حلّ الطلب، بل يتم التحقق من صحته فقط وملؤه بالتكاليف المقابلة للأهداف المحدّدة. يتم عرض الطلب المعدَّل على أنّه OptimizeToursResponse.processed_request. ستعرض جميع أوضاع الحلّ الأخرى الطلب الذي تم حلّه.

.

لا يكون وضع الحلّ TRANSFORM_AND_RETURN_REQUEST صالحًا إلا لطلبات OptimizeTours، ولا يتوفّر لطلبات Route Optimization API الأخرى.

مثال: تقديم طلب ShipmentModel.objectives

قبل تقديم الطلب، يُرجى إكمال الخطوات التالية:

  • تأكَّد من ضبط بيانات الاعتماد التلقائية للتطبيق كما هو موضّح في مقالة استخدام OAuth.
  • اضبط PROJECT_NUMBER_OR_ID على رقم تعريف مشروعك على السحابة الإلكترونية أو رقمه.

    يرسل الأمر التالي OptimizeToursRequest إلى Route Optimization API الذي يعرض 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

مثال: تقديم طلب TRANSFORM_AND_RETURN_REQUEST

قبل تقديم الطلب، يُرجى إكمال الخطوات التالية:

  • تأكَّد من ضبط بيانات الاعتماد التلقائية للتطبيق كما هو موضّح في مقالة استخدام OAuth.
  • اضبط PROJECT_NUMBER_OR_ID على رقم تعريف مشروعك على السحابة الإلكترونية أو رقمه.

    يرسل الأمر التالي OptimizeToursRequest إلى Route Optimization API الذي يعرض OptimizeToursResponse مع ضبط الحقل ProcessedRequest.

    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
    سينتج عن الأمر السابق ردّ مشابه للردّ التالي.
    {
      "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"
      }
    }