ملاحظة حول الإصدار العلني
لتبسيط الأمر، يستخدم هذا الدليل REST وJSON. ومع ذلك، بالنسبة إلى بيئة التشغيل الفعلي، ننصحك باستخدام gRPC ومكتبات العملاء للحصول على أداء أفضل. لمزيد من المعلومات، يُرجى الاطّلاع على مكتبات عملاء Route Optimization API.
بعد إرسال الطلب في تقديم طلبك الأول، يعرض المحسِّن OptimizeToursResponse. هذا الردّ هو خطة المسار التي
يجب أن يتّبعها السائق. يوضّح لك هذا الدليل كيفية قراءته.
ملخّص خطة المسار
بالنسبة إلى سيناريو رعاية الكلاب، يخصّص المحسِّن كلب جبل البرنيز وكلب الشيواوا لشاحنتك ويتخطّى كلب الراعي الألماني. خطة مسار السائق هي كما يلي:
- تبدأ نوبة العمل في الساعة 7:55 صباحًا في مركز رعاية الأطفال.
- اصطحب كلب جبل البرنيز بالقرب من برج كويت في الساعة 8:20 صباحًا.
- اصطحب كلب الشيواوا من حديقة "ساوث سانسيت بلاي غراوند" في الساعة 8:58 صباحًا.
- العودة إلى مركز الرعاية النهارية في الساعة 9:24 صباحًا، والانتظار حتى تفتح نافذة التسليم في الساعة 9:30 صباحًا.
- أريد توصيل كلب جبل البرنيز عند الساعة 9:30 صباحًا.
- يجب توصيل كلب الشيواوا عند الساعة 9:35 صباحًا.
- تنتهي نوبة العمل في الساعة 9:40 صباحًا.
تبلغ تكلفة خطة المسار 147.22 دولارًا، بما في ذلك غرامة قدرها 100 دولار مقابل تخطي الراعي الألماني.
للتحقّق من نتائجك، قارِن ردّك بالردّ الكامل في المثال. قد تختلف نتائجك قليلاً لأن مدة الرحلة والمسافات تعتمد على بيانات الطريق الحالية.
مثال على الردّ الكامل
{ "routes": [ { "vehicleStartTime": "2024-02-13T15:55:04Z", "vehicleEndTime": "2024-02-13T17:40:00Z", "visits": [ { "isPickup": true, "startTime": "2024-02-13T16:20:00Z", "detour": "0s", "shipmentLabel": "Bernese mountain dog", "visitType": "PICKUP_SHIPMENT" }, { "shipmentIndex": 1, "isPickup": true, "startTime": "2024-02-13T16:58:12Z", "detour": "2600s", "shipmentLabel": "Chihuahua", "visitType": "PICKUP_SHIPMENT" }, { "startTime": "2024-02-13T17:30:00Z", "detour": "2297s", "shipmentLabel": "Bernese mountain dog", "visitType": "DELIVER_SHIPMENT" }, { "shipmentIndex": 1, "startTime": "2024-02-13T17:35:00Z", "detour": "656s", "shipmentLabel": "Chihuahua", "visitType": "DELIVER_SHIPMENT" } ], "transitions": [ { "travelDuration": "1496s", "travelDistanceMeters": 7082, "waitDuration": "0s", "totalDuration": "1496s", "startTime": "2024-02-13T15:55:04Z" }, { "travelDuration": "1992s", "travelDistanceMeters": 16589, "waitDuration": "0s", "totalDuration": "1992s", "startTime": "2024-02-13T16:25:00Z" }, { "travelDuration": "1252s", "travelDistanceMeters": 7860, "waitDuration": "356s", "totalDuration": "1608s", "startTime": "2024-02-13T17:03:12Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2024-02-13T17:35:00Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2024-02-13T17:40:00Z" } ], "metrics": { "performedShipmentCount": 2, "travelDuration": "4740s", "waitDuration": "356s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "6296s", "travelDistanceMeters": 31531, "performedShipmentPenaltyCostSum": 2000 }, "routeCosts": { "model.vehicles.cost_per_hour": 47.22 }, "routeTotalCost": 47.22, "vehicleFullness": { "maxFullness": 0.3497777777777778, "activeSpan": 0.3497777777777778 } } ], "skippedShipments": [ { "index": 2, "label": "German shepherd", "penaltyCost": 100 } ], "metrics": { "aggregatedRouteMetrics": { "performedShipmentCount": 2, "travelDuration": "4740s", "waitDuration": "356s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "6296s", "travelDistanceMeters": 31531, "performedShipmentPenaltyCostSum": 2000 }, "usedVehicleCount": 1, "earliestVehicleStartTime": "2024-02-13T15:55:04Z", "latestVehicleEndTime": "2024-02-13T17:40:00Z", "totalCost": 147.22, "costs": { "model.vehicles.cost_per_hour": 47.22, "model.shipments.penalty_cost": 100 } } }
بنية الردّ
يحتوي OptimizeToursResponse على مكوّنَين رئيسيَّين:
-
routes: خطة المسار لكل مركبة في أسطولك، بما في ذلك ترتيب وأوقات كل عملية استلام وتسليم لديك شاحنة واحدة، لذا هناك خطة مسار واحدة. -
metrics: ملخّص لخطة المسار بالكامل، بما في ذلك إجمالي التكلفة والمدة والمسافة
بما أنّ المحسِّن يتخطّى كلب الراعي الألماني، تتضمّن الاستجابة أيضًا skippedShipments.
توضّح لك الأقسام التالية مكان العثور على كل تفاصيل ملخّص خطة المسار في الردّ.
ما هي المركبة التي تسلك أي مسار؟
تنشئ أداة التحسين خطة مسار (مصفوفة routes) تتوافق مع ترتيب vehicles في طلبك.
يحدّد الحقل vehicleIndex كل مركبة استنادًا إلى موضعها الذي يبدأ من الصفر، وهو 0 لشاحنتك. يحدّد الحقلان vehicleStartTime وvehicleEndTime للسائق وقت بدء نوبة عمله وانتهائها.
تعرض واجهة برمجة التطبيقات Route Optimization API الطوابع الزمنية بالتوقيت العالمي المنسق (UTC)، والتي يتم تمييزها باللاحقة Z،
بغض النظر عن الإزاحة في طلبك. للحصول على توقيت سان فرانسيسكو، اطرح 8
ساعات. بالنسبة إلى شاحنتك، تبدأ المناوبة من الساعة 7:55 صباحًا إلى الساعة 9:40 صباحًا، كما هو موضّح في عينة التعليمات البرمجية التالية.
{
"routes": [
{
// "vehicleIndex": 0, // Omitted in actual JSON response because it's 0
"vehicleStartTime": "2024-02-13T15:55:04Z",
"vehicleEndTime": "2024-02-13T17:40:00Z",
...
}
]
...
}
ما هو ترتيب الاستلام والتسليم؟
ضمن كل مسار، تحتوي مصفوفة visits على كل عملية استلام وتسليم
للمركبة المحدّدة بترتيب زمني.
shipmentIndex لكل زيارة هو موضع الشحنة المستند إلى الصفر في
طلبك: 0 هو كلب جبل بيرنيز، و1 هو كلب تشيواوا. يعرض الحقل shipmentLabel التصنيف الذي حدّدته لكل شحنة.
للتمييز بين الاستلام والتسليم، يمكنك الاطّلاع على الحقلَين visitType أو isPickup:
visitType: يحدّد إجراء الزيارة بشكل صريح.- استلام الطلب:
visitType="PICKUP_SHIPMENT" - التسليم:
visitType="DELIVER_SHIPMENT"
- استلام الطلب:
isPickup: حقل مساعِد للقيم المنطقية.- استلام الطلب:
isPickup=true - التسليم:
isPickup=false(تم حذفه في JSON)
- استلام الطلب:
لتحديد التسلسل الدقيق للأحداث ووقت الوصول المتوقّع إلى كل موقع جغرافي، يُرجى قراءة مصفوفة visits بالترتيب. يوضّح الجدول التالي إجراء خطة المسار استنادًا إلى ترتيب وقيم الحقول shipmentIndex وisPickup أو visitType وstartTime.
| التسلسل | قيمة shipmentIndex |
قيمة isPickup أو visitType |
قيمة startTime (بالتوقيت العالمي المنسَّق) |
الإجراء |
|---|---|---|---|---|
| الزيارة الأولى | 0 (تم حذفه في JSON) | صحيح أو PICKUP_SHIPMENT |
2024-02-13T16:20:00Z | استلام كلب جبل البرنيز عند الساعة 8:20 صباحًا |
| الزيارة الثانية | 1 | صحيح أو PICKUP_SHIPMENT |
2024-02-13T16:58:12Z | استلام كلب الشيواوا عند الساعة 8:58 صباحًا |
| الزيارة الثالثة | 0 (تم حذفه في JSON) | False (تم حذفه) أو DELIVER_SHIPMENT |
2024-02-13T17:30:00Z | أريد توصيل كلب جبل البرنيز إلى مركز رعاية الكلاب عند الساعة 9:30 صباحًا. |
| الزيارة الرابعة | 1 | False (تم حذفه) أو DELIVER_SHIPMENT |
2024-02-13T17:35:00Z | أريد توصيل كلب الشيواوا إلى مركز رعاية الكلاب عند الساعة 9:35 صباحًا. |
يوضّح نموذج الرمز البرمجي التالي كيف يوفّر الردّ هذا التسلسل:
{
"routes": [
{
"visits": [
{
// "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
"isPickup": true,
"startTime": "2024-02-13T16:20:00Z",
"shipmentLabel": "Bernese mountain dog",
"visitType": "PICKUP_SHIPMENT"
},
{
"shipmentIndex": 1,
"isPickup": true,
"startTime": "2024-02-13T16:58:12Z",
"shipmentLabel": "Chihuahua",
"visitType": "PICKUP_SHIPMENT"
},
{
// "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
// "isPickup": false, // Omitted in actual JSON response because it's false
"startTime": "2024-02-13T17:30:00Z",
"shipmentLabel": "Bernese mountain dog",
"visitType": "DELIVER_SHIPMENT"
},
{
"shipmentIndex": 1,
// "isPickup": false, // Omitted in actual JSON response because it's false
"startTime": "2024-02-13T17:35:00Z",
"shipmentLabel": "Chihuahua",
"visitType": "DELIVER_SHIPMENT"
}
]
}
]
}
تتضمّن كل زيارة أيضًا visitRequestIndex، وهو الموضع المستند إلى الصفر
لخيار الاستلام أو التسليم الذي اختاره المحسِّن
للشحنة. في هذا السيناريو، يتوفّر لكل كلب خيار واحد فقط للاستلام وخيار واحد فقط للتسليم، لذا تكون قيمة visitRequestIndex دائمًا 0، ويتم حذفها من الردّ.
ماذا يحدث بين الزيارات؟
ضمن كل مسار، تعرض مصفوفة transitions تفاصيل التنقّل بين
الزيارات. على الرغم من أنّ visits وtransitions هما قائمتان منفصلتان، إلا أنّهما
تتداخلان في الوقت، على النحو التالي:
-
transitions[0](القيادة من نقطة البداية إلى الزيارة الأولى) -
visits[0](الزيارة الأولى) transitions[1](القيادة من الزيارة الأولى إلى الزيارة الثانية)-
visits[1](الزيارة الثانية) ...-
visits[N-1](الزيارة الأخيرة، حيث يمثّل N إجمالي عدد الزيارات) -
transitions[N](القيادة من آخر زيارة إلى النهاية)
يمكنك تتبُّع المخطط الزمني للمسار من خلال الاطّلاع على الحقل startTime في
كلتا المصفوفتَين. startTime الانتقال هو الوقت الذي يبدأ فيه السائق
رحلته، وstartTime الزيارة هو الوقت الذي يبدأ فيه السائق عملية الاستلام
أو التسليم.
يعرض كل انتقال وقت القيادة والمسافة المتوقّعة بين المواقع الجغرافية.
يعرض الجدول التالي كلاً من حقلَي transitions وvisits لإجراءات المسار الزمني لسيناريو مركز رعاية الكلاب.
| التسلسل | اسم الحقل | قيمة startTime (بالتوقيت العالمي المنسَّق) |
التفاصيل | الإجراء |
|---|---|---|---|---|
| الانتقال الأول | transitions[0] |
2024-02-13T15:55:04Z |
travelDuration: 1496stravelDistanceMeters: 7082 |
القيادة لمسافة 7 كيلومتر لمدة 25 دقيقة من مركز الرعاية النهارية لاصطحاب كلب جبل بيرنيز. تبدأ المناوبة في الساعة 7:55 صباحًا. |
| الزيارة الأولى | visits[0] |
2024-02-13T16:20:00Z |
shipmentIndex: 0 (تم حذفه في JSON)isPickup: صحيح |
اصطحب كلب جبل بيرنيز بدءًا من الساعة 8:20 صباحًا. تستغرق الزيارة 5 دقائق. |
| الانتقال الثاني | transitions[1] |
2024-02-13T16:25:00Z |
travelDuration: 1992stravelDistanceMeters: 16589 |
القيادة لمسافة 17 كيلومتر لمدة 33 دقيقة من برج كويت لاصطحاب كلب الشيواوا بدءًا من الساعة 8:25 صباحًا |
| الزيارة الثانية | visits[1] |
2024-02-13T16:58:12Z |
shipmentIndex: 1isPickup: صحيح |
اصطحب كلب الشيواوا بدءًا من الساعة 8:58 صباحًا. تستغرق الزيارة 5 دقائق. |
| الانتقال الثالث | transitions[2] |
2024-02-13T17:03:12Z |
travelDuration: 1252stravelDistanceMeters: 7860waitDuration: 356s |
القيادة لمسافة 8 كم لمدة 21 دقيقة من South Sunset Playground إلى مركز الرعاية النهارية بدءًا من الساعة 9:03 صباحًا، والوصول في الساعة 9:24 صباحًا، والانتظار لمدة 6 دقائق حتى تفتح نافذة التوصيل |
| الزيارة الثالثة | visits[2] |
2024-02-13T17:30:00Z |
shipmentIndex: 0 (تم حذفه في JSON)isPickup: خطأ (تم حذفه في JSON) |
يجب توصيل كلب جبل بيرنيز إلى مركز رعاية الكلاب بدءًا من الساعة 9:30 صباحًا. تستغرق الزيارة 5 دقائق. |
| عملية النقل الرابعة | transitions[3] |
2024-02-13T17:35:00Z |
travelDuration: 0stravelDistanceMeters: 0 (تم حذفه في JSON) |
لا يُسمح بالقيادة. أنا على استعداد لتوصيل كلب الشيواوا إلى مركز الرعاية النهارية عند الساعة 9:35 صباحًا. |
| الزيارة الرابعة | visits[3] |
2024-02-13T17:35:00Z |
shipmentIndex: 1isPickup: False (omitted in JSON) |
أريد توصيل كلب الشيواوا إلى مركز الرعاية النهارية للكلاب بدءًا من الساعة 9:35 صباحًا. تستغرق الزيارة 5 دقائق. |
| عملية النقل الخامسة | transitions[4] |
2024-02-13T17:40:00Z |
travelDuration: 0stravelDistanceMeters: 0 (تم حذفه في JSON) |
لا يُسمح بالقيادة. ينهي السائق نوبة عمله في الساعة 9:40 صباحًا. |
توضّح عيّنة التعليمات البرمجية التالية كيف يوفّر الردّ هذا التسلسل لـ transitions[0] وtransitions[1]:
{
"routes": [
{
"transitions": [
{
"travelDuration": "1496s",
"travelDistanceMeters": 7082,
"waitDuration": "0s",
"totalDuration": "1496s",
"startTime": "2024-02-13T15:55:04Z"
},
{
"travelDuration": "1992s",
"travelDistanceMeters": 16589,
"waitDuration": "0s",
"totalDuration": "1992s",
"startTime": "2024-02-13T16:25:00Z"
},
...
]
}
]
}
ما هي تكلفة المسار؟
يمكنك الاطّلاع على عدة حقول في الردّ بناءً على ما إذا كنت بحاجة إلى تكلفة مركبة معيّنة أو التكلفة الإجمالية للأسطول بأكمله.
يسرد الجدول التالي جميع الطرق التي يمكنك من خلالها العثور على معلومات التكلفة في الردّ:
| أحد الوالدين | المَعلمة | النطاق | الوصف |
|---|---|---|---|
ShipmentRoute |
routeCosts |
لكل مسار | تفاصيل مكوّنات التكلفة المحدّدة (مثل التكلفة في الساعة) لهذا المسار المحدّد |
routeTotalCost |
لكل مسار | إجمالي التكلفة المحسوبة لهذا المسار المحدّد | |
Metrics |
totalCost |
الإجمالي (كل المسارات) | إجمالي التكلفة المجمّعة لجميع المسارات في الحلّ |
costs |
الإجمالي (كل المسارات) | تفصيل لمكوّنات التكلفة المجمّعة في جميع المسارات في الحلّ |
تعكس التكاليف المحدّدة في routeCosts وcosts قيود التكلفة التي تحدّدها في طلبك. لمزيد من المعلومات، يُرجى الاطّلاع على مستند المفهوم الأساسي لنموذج التكلفة.
بالنسبة إلى سيناريو رعاية الكلاب هذا، نظرًا لأن لديك شحنة تم تخطيها، فإن التكلفة لكل مسار والتكلفة الإجمالية المجمعة مختلفة. تشمل تكلفة المسار فقط التكاليف المرتبطة بهذا المسار المحدّد (أجر السائق)، بينما تشمل التكلفة الإجمالية المجمّعة أيضًا غرامة الشحنة التي تم تخطّيها. توضح عينة التعليمات البرمجية التالية مكان العثور على هذه القيم في الاستجابة:
{
"routes": [
{
"vehicleStartTime": "2024-02-13T15:55:04Z",
"vehicleEndTime": "2024-02-13T17:40:00Z",
...
"routeCosts": {
"model.vehicles.cost_per_hour": 47.22
},
"routeTotalCost": 47.22
}
],
"metrics": {
"totalCost": 147.22,
"costs": {
"model.shipments.penalty_cost": 100,
"model.vehicles.cost_per_hour": 47.22
},
...
}
}
وفقًا لخطة المسار، يشغّل السائق الشاحنة من الساعة 7:55 صباحًا إلى الساعة 9:40 صباحًا، أي لمدة ساعة و45 دقيقة تقريبًا (6296 ثانية). وبمعدّل 27 دولار أمريكي في الساعة الذي حدّدته، تبلغ تكلفة المسار 47.22 دولار أمريكي. بما أنّ المحسِّن تخطّى شحنة الراعي الألماني، يضيف تكلفة جزائية بقيمة 100 دولار أمريكي، ما يجعل إجمالي التكلفة المجمّعة 147.22 دولار أمريكي.
لماذا تم تخطّي شحنة؟
تُدرج أداة التحسين أي شحنة لا تنفّذها في مصفوفة skippedShipments. ويعتمد سبب تخطّي الشحنة على ما إذا كنت قد ضبطت penaltyCost:
- الشحنات الإلزامية (بدون
penaltyCost): لا يتخطّى المحسِّن هذه الشحنات أبدًا لمجرد أنّ تنفيذها مكلف. ويتخطّى شحنة واحدة فقط إذا لم يتمكّن من إدراجها في أي مسار، على سبيل المثال، بسبب تعارض الفترة الزمنية المحدّدة لها مع شحنات أخرى. - الشحنات الاختيارية (مع
penaltyCost): يمكن للمحسِّن أيضًا تخطّي هذه الشحنات عندما تكون تكلفة تنفيذها أعلى من الغرامة. يمكنك ضبط تكاليف غرامات مختلفة لإعطاء الأولوية لبعض الشحنات على غيرها.
بالنسبة لهذا السيناريو، تتعارض نافذة التقاط كلب الراعي الألماني مع نافذة كلب جبل بيرنيز. يقع "برج كويت" و"لاندز إند" على بُعد 25 دقيقة من بعضهما، لذلك لا يمكن للسائق إجراء عمليتَي الاستلام خلال فترة الـ 20 دقيقة. يجب أن يتخطّى المحسِّن أحدهما. بما أنّ تكلفة الغرامة المترتبة على عدم تلبية طلب مربّي كلاب الراعي الألماني أقل (100 دولار أمريكي مقابل 1,000 دولار أمريكي للعميل العادي)، يتخطّى المحسِّن هذا الطلب ويتحمّل غرامة قدرها 100 دولار أمريكي.
تعرض عيّنة التعليمات البرمجية التالية عنصر skippedShipments في الردّ:
{
...
"skippedShipments": [
{
"index": 2,
"label": "German shepherd",
"penaltyCost": 100
}
],
...
}
يحتوي عنصر skippedShipments في الاستجابة على الحقول التالية:
-
index: الفهرس المستند إلى الصفر للشحنة في طلبك (2 للشحنة الثالثة) -
label: التصنيف الذي حدّدته في الطلب ("كلب الراعي الألماني"). penaltyCost: تكلفة الغرامة التي حدّدتها في الطلب، والتي تضيفها واجهة برمجة التطبيقات إلى التكلفة الإجمالية.
لمنع المحسِّن من تخطّي شحنة، يمكنك تخفيف القيود التي تسبّب التعارض. على سبيل المثال، اطلب من مالك الراعي الألماني الحصول على نافذة استلام أكثر مرونة، ثم قم بتحديث timeWindows لهذا الاستلام في طلبك.
حقول الردّ في المثال
يوضّح الجدول التالي جميع حقول الاستجابة التي يتم عرضها في
OptimizeToursResponse للسيناريو النموذجي. على الرغم من أنّه ليس عليك استخدام كل حقل لفهم خطة المسار، يمكنك تحليل هذه الحقول لتحديد كيفية تعديل OptimizeToursRequest لتناسب احتياجات نشاطك التجاري. لمزيد من المعلومات، يُرجى الاطّلاع على مراحل نشاط خطة المسار.
يمكنك فلترة المحتوى حسب العنصر الرئيسي أو البحث النصي.
| أحد الوالدين | المَعلمة | نوع الموقع | الوصف |
|---|---|---|---|
OptimizeToursResponse |
routes |
مصفوفة من العناصر (ShipmentRoute) |
يحتوي هذا على قائمة المسارات المحسوبة لكل مركبة (مسار واحد لكل مركبة). بالنسبة إلى سيناريو مركز رعاية الكلاب، يحتوي هذا على خطة المسار التفصيلية لشاحنتك الواحدة. |
metrics |
العنصر (Metrics) |
يحتوي هذا الحقل على المقاييس الإجمالية للحلّ، والتي يتم تجميعها على مستوى جميع المسارات. بالنسبة لسيناريو رعاية الكلاب هذا، هذا هو ملخص التكاليف والمدد التشغيلية لليوم. | |
skippedShipments |
مصفوفة من العناصر (SkippedShipment) |
يحتوي هذا الحقل على قائمة الشحنات التي تم تخطّيها في الحلّ. في هذا السيناريو، يتم تخطّي الكلب الثالث (الراعي الألماني). | |
ShipmentRoute |
vehicleStartTime |
الطابع الزمني | هذا هو الوقت الذي تبدأ فيه المركبة مسارها. بالنسبة إلى سيناريو مركز رعاية الكلاب هذا، يبدأ السائق في قيادة الشاحنة عند الساعة 7:55 صباحًا. |
vehicleEndTime |
الطابع الزمني | هذا هو الوقت الذي تنتهي فيه المركبة من مسارها. بالنسبة لسيناريو رعاية الكلاب هذا، ينتهي السائق من قيادة الشاحنة في الساعة 9:40 صباحًا. | |
visits |
مصفوفة من العناصر (Visit) |
هذه هي القائمة المرتبة لعمليات الاستلام والتسليم على المسار. بالنسبة إلى سيناريو الرعاية اليومية للكلاب، هذا هو تسلسل اصطحاب الكلبين وإعادتهما. | |
transitions |
مصفوفة من العناصر (Transition) |
هذه هي القائمة المرتبة للمسافة ووقت السفر والانتظار بين الزيارات. بالنسبة لسيناريو رعاية الكلاب هذا، يوضح هذا مسافة القيادة والوقت بين برج كويت، ومتنزه ساوث صن سيت بلاي جراوند، ومركز الرعاية النهارية. | |
metrics |
العنصر (AggregatedMetrics) |
هذه هي المقاييس الخاصة بهذا المسار الفردي. بالنسبة لسيناريو رعاية الكلاب هذا، هذه هي الإحصائيات لهذه الشاحنة المحددة. تستند هذه المقاييس إلى التكاليف التي حدّدتها في طلبك. لمزيد من التفاصيل، يُرجى الاطّلاع على مستند المفهوم الأساسي لنموذج التكلفة. | |
routeCosts |
عنصر (خريطة) | هذا هو تفصيل التكاليف المحدّدة لهذا المسار. بالنسبة لسيناريو رعاية الكلاب هذا، يوضح هذا التكلفة المحسوبة من أجر السائق البالغ 27 دولارًا في الساعة. | |
routeTotalCost |
العدد | هذه هي التكلفة الإجمالية لهذا المسار المحدّد. بالنسبة إلى سيناريو مركز رعاية الكلاب هذا، تبلغ التكلفة الإجمالية لمسار هذه الشاحنة 47.22. |
|
vehicleFullness |
العنصر (VehicleFullness) |
هذا هو تفصيل لمدى اقتراب المركبة من حدودها التشغيلية، مثل الوقت والمسافة والحمولة. في سيناريو مركز رعاية الكلاب هذا،
يقتصر السائق على أوقات بدء المناوبة وانتهائها فقط، لذا يحسب المحسِّن
vehicleFullness كجزء من المدة الفعلية للمسار
والحد الأقصى للوقت المتاح لمناوبة السائق. |
|
Visit |
shipmentIndex |
عدد صحيح | هذا هو الفهرس المستند إلى الصفر للشحنة في الطلب الأصلي. في سيناريو مركز رعاية الكلاب هذا، يمثّل الرقم 0 كلب جبل بيرنيز، ويمثّل الرقم 1 كلب الشيواوا. |
isPickup |
منطقي | يكون هذا الحقل صحيحًا إذا كانت هذه الزيارة مخصّصة للاستلام. بالنسبة إلى سيناريو مركز رعاية الكلاب، تكون القيمة "صحيح" عند اصطحاب الكلب و"خطأ" (أو غير متوفّرة) عند ترك الكلب في المركز. | |
startTime |
الطابع الزمني | هذا هو وقت البدء المقدَّر للزيارة. بالنسبة لسيناريو رعاية الكلاب هذا، يحدث هذا عندما يطرق السائق الباب. | |
detour |
المدة | هذا هو الوقت الإضافي الذي يضيفه المحسِّن إلى رحلة هذه الشحنة المحددة. المسار البديل هو الفرق بين خطة المسار الفعلية
والرحلة المباشرة المثالية إذا لم يكن لدى السائق شحنات أو مهام أخرى
لإكمالها. في سيناريو مركز رعاية الكلاب هذا، تكون الزيارة الأولى، وهي اصطحاب كلب جبل بيرنيز، لها مسار بديل بقيمة 0 لأن السائق يذهب مباشرة من مركز الرعاية إلى مكان اصطحاب الكلب. بالنسبة إلى عملية نقل كلب الشيواوا، يستغرق المسار البديل 43 دقيقة لأنّ السائق ينقل كلب جبل بيرنيز أولاً (ويستغرق 5 دقائق في تحميله). |
|
shipmentLabel |
سلسلة | هذا هو التصنيف من الطلب لكل شحنة. بالنسبة إلى سيناريو مركز رعاية الكلاب هذا، التصنيفات هي "شيواوا" أو "كلب جبل البرنيز". | |
visitType |
سلسلة (تعداد) | يشير هذا الحقل إلى نوع الزيارة، والذي يمكن أن يكون PICKUP_SHIPMENT
لعمليات الاستلام أو DELIVER_SHIPMENT لعمليات التسليم. في هذا السيناريو،
تكون القيمة إما PICKUP_SHIPMENT أو DELIVER_SHIPMENT. |
|
Transition |
travelDuration |
المدة | هذا هو الوقت الذي تقضيه في السفر خلال هذا الانتقال بين الزيارات. على سبيل المثال، في سيناريو رعاية الكلاب هذا، يقضي السائق حوالي 25 دقيقة في القيادة من مركز الرعاية النهارية إلى برج كويت لاصطحاب كلب جبل بيرنيز. |
travelDistanceMeters |
عدد صحيح | هذه هي المسافة المقطوعة بالأمتار خلال هذه الفترة الانتقالية. على سبيل المثال، في سيناريو رعاية الكلاب هذا، يسافر السائق لمسافة 7 كيلومترات من مركز الرعاية إلى برج كويت لاصطحاب كلب جبل بيرنيز. | |
waitDuration |
المدة | هذا هو الوقت الذي تقضيه في الانتظار قبل استلام الطلب التالي أو تسليمه. في سيناريو مركز رعاية الكلاب هذا، تبلغ هذه القيمة 6 دقائق (356 ثانية) لعملية النقل الثالثة، لأنّ السائق يصل إلى مركز الرعاية قبل فتح نافذة التسليم في الساعة 9:30 صباحًا. بالنسبة إلى عمليات النقل الأخرى، تكون هذه القيمة 0. | |
totalDuration |
المدة | هذه هي المدة الإجمالية للانتقال، بما في ذلك القيادة والانتظار. على سبيل المثال، يقضي السائق 25 دقيقة (25 دقيقة قيادة و0 دقيقة انتظار) في الانتقال الأول، و27 دقيقة (21 دقيقة قيادة و6 دقائق انتظار) في الانتقال الثالث للعودة إلى مركز الرعاية النهارية. | |
startTime |
الطابع الزمني | هذا هو الوقت الذي تبدأ فيه الرحلة. ويتطابق مع وقت إكمال الزيارة السابقة (أو وقت بدء المركبة في عملية الانتقال الأولى). في سيناريو مركز رعاية الكلاب، تبدأ عملية الانتقال الأولى في الساعة 7:55 صباحًا عندما يغادر السائق مركز الرعاية، وتبدأ عملية الانتقال الثانية في الساعة 8:25 صباحًا عندما يغادر السائق برج كويت. | |
Metrics |
aggregatedRouteMetrics |
العنصر (AggregatedMetrics) |
هذا هو مجموع المقاييس على مستوى جميع المسارات. بالنسبة لسيناريو رعاية الكلاب هذا، هذه هي المقاييس الإجمالية لشاحنتك الواحدة. |
usedVehicleCount |
عدد صحيح | يشير ذلك إلى عدد المركبات المستخدَمة في الحلّ. بالنسبة لسيناريو رعاية الكلاب هذا، فأنت تستخدم شاحنة واحدة فقط. | |
earliestVehicleStartTime |
الطابع الزمني | هذا هو أقرب وقت بدء بين جميع المركبات. بالنسبة لسيناريو رعاية الكلاب هذا، يبدأ مسار الشاحنة في الساعة 7:55 صباحًا. | |
latestVehicleEndTime |
الطابع الزمني | هذا هو آخر وقت انتهاء بين جميع المركبات. بالنسبة إلى سيناريو رعاية الكلاب هذا، ينتهي مسار الشاحنة في الساعة 9:40 صباحًا. | |
totalCost |
العدد | هذه هي التكلفة الإجمالية للحلّ. في سيناريو مركز رعاية الكلاب هذا، تبلغ تكلفة خطة المسار بالكامل 147.22 لليوم (بما في ذلك أجر السائق 47.22 وغرامة الشحنة التي تم تخطّيها 100). |
|
costs |
عنصر (خريطة) | هذا تفصيل لإجمالي التكلفة حسب الفئة. بالنسبة إلى سيناريو مركز رعاية الكلاب هذا، احتسب المحسِّن تكلفة المسار استنادًا إلى التكلفة في الساعة وتكلفة الغرامة المترتبة على تخطّي كلب الراعي الألماني. | |
AggregatedMetrics |
performedShipmentCount |
عدد صحيح | يشير هذا إلى عدد الشحنات التي تم توجيهها بنجاح. بالنسبة إلى سيناريو رعاية الكلاب هذا، ينقل السائق كلبَين. |
travelDuration |
المدة | هذا هو إجمالي الوقت المستغرَق في السفر. بالنسبة إلى سيناريو مركز رعاية الكلاب هذا، يستغرق السائق 79 دقيقة. | |
waitDuration |
المدة | هذا هو إجمالي الوقت الذي تم قضاؤه في الانتظار. في سيناريو مركز رعاية الكلاب هذا، ينتظر السائق لمدة 6 دقائق (356 ثانية) في مركز الرعاية حتى تفتح نافذة التسليم. | |
delayDuration |
المدة | هذه هي المدة الإضافية التي تحدّدها باستخدام سمات الانتقال، مثل الوقت المحجوز لركن السيارة. في سيناريو مركز رعاية الكلاب هذا، لم تحدّد أي سمات انتقال في الطلب، لذا تكون هذه القيمة صفرًا. | |
breakDuration |
المدة | هذا هو إجمالي الوقت الذي تم قضاؤه في فترات الاستراحة. بالنسبة لسيناريو رعاية الكلاب هذا، لا توجد فواصل. | |
visitDuration |
المدة | هذا هو إجمالي الوقت المستغرَق في تقديم الخدمات أثناء الزيارات. بالنسبة إلى سيناريو مركز رعاية الكلاب هذا، تبلغ المدة 20 دقيقة (5 دقائق لكل زيارة من الزيارات الأربع). | |
totalDuration |
المدة | هذا هو مجموع كل مكوّنات المدة. بالنسبة إلى سيناريو مركز رعاية الكلاب هذا، تبلغ المدة الإجمالية 105 دقائق (6296 ثانية). | |
travelDistanceMeters |
عدد صحيح | هذا هو إجمالي مسافة السفر بالأمتار. في سيناريو مركز رعاية الكلاب هذا، يقطع السائق مسافة إجمالية تبلغ 31.5 كيلومتر. | |
performedShipmentPenaltyCostSum |
مزدوجة | هذا هو مجموع تكاليف الغرامات لجميع الشحنات التي تم تنفيذها. في هذا السيناريو، تبلغ التكلفة 2000 لأنّ السائق نقل كلب جبل برنيز وكلب شيواوا (تبلغ تكلفة الغرامة لكل منهما 1000). |
|
VehicleFullness |
maxFullness |
العدد | هذه هي أعلى نسبة استخدام في جميع حقول VehicleFullness. بالنسبة إلى سيناريو مركز رعاية الكلاب هذا، تبلغ هذه القيمة 0.35 لأنّ السائق يشغّل الشاحنة لمدة 105 دقائق فقط من فترة العمل الصباحية بأكملها، والتي حدّدتها بـ 5 ساعات في الطلب. |
activeSpan |
العدد | هذه هي نسبة إجمالي مدة نوبة عمل السائق مقارنةً بساعات عمل خطة المسار. ويعني الرقم الأقل أنّ السائق يقضي وقتًا أقل من يوم العمل في تشغيل المركبة. بالنسبة إلى سيناريو مركز رعاية الكلاب، تبلغ هذه النسبة 0.35 لأنّ السائق يشغّل الشاحنة لمدة 105 دقائق خلال نوبة العمل التي تبلغ 5 ساعات. | |
SkippedShipment |
index |
عدد صحيح | هذا هو الفهرس المستند إلى الصفر للشحنة في الطلب الأصلي. في هذا السيناريو، يمثّل الرقم 2 كلب الراعي الألماني. |
label |
سلسلة | هذا هو التصنيف الذي حدّدته للشحنة في الطلب. | |
penaltyCost |
العدد | هذه هي تكلفة الغرامة التي تتكبّدها عندما يتخطّى المحسِّن هذه الشحنة. ويتطابق مع penaltyCost الذي حدّدته في الطلب. |