إنّ متطلبات التحميل وحدوده هي نوع من القيود التي يمكنك استخدامها لإدارة السعة. يحدّد هذا القيد السعة المطلوبة للشحنة والحد الأقصى للسعة للمركبة، ما يتيح لك تحسين عمليات تحديد المسارات استنادًا إلى هذه القيود.
يمكن أن تساعد أحمال الاستخدام والحدود القصوى في تحقيق أهداف مثل:
- منع تحميل المركبات بشكل مفرط
- تتبُّع كيفية تغيُّر حمولات المركبات عند استلام الشحنات وتسليمها
- إعطاء الأولوية لربط المركبات الثقيلة بشحنات الأحمال الثقيلة
يتم تحديد متطلبات التحميل وحدوده في الخصائص التالية:
- تحدّد السمة
loadDemandsمقدار السعة التي تتطلّبها شحنة معيّنة. - يمثّل
loadLimitsالحدّ الأقصى لسعة مركبة معيّنة.
البنية
كما هو موضّح في الرسم البياني، يتم تنظيم متطلبات التحميل وحدوده على النحو التالي:
-
loadDemandsهي سمة من سماتShipment. يمكن أن يكونShipmentله متطلبات تحميل متعددة. -
loadLimitsهي سمة من سماتVehicle. يمكن أن يحتويVehicleعلى حدود تحميل متعددة.
قائمة التحقّق من Essentials
توضّح قائمة التحقّق التالية المعلومات الأساسية التي تمنع حدوث أخطاء محتملة متعلقة بالتحميل. يمكن أن تساعدك هذه القائمة في التحقّق من صحة طلبك وتحديد المشاكل في ردّك وحلّها.
الخصائص
يوضّح هذا القسم خصائص متطلبات التحميل وحدوده، وهي كما يلي:
- نوع التحميل: سمة مشتركة بين طلبات التحميل وحدوده.
-
LoadوLoadLimit: سمات فريدة تظهر في متطلبات التحميل وحدوده على التوالي.
نوع التحميل
نوع الحمولة هو مفتاح سلسلة تطبّقه بالتساوي على الشحنات والمركبات. ينطبق نوع حمولة واحد على طلب حمولة الشحنة بالإضافة إلى حد حمولة المركبة.
تستخدم أنواع التحميل بنية نوع الخريطة في Protocol Buffers. عند تسمية نوع حمولة، استخدِم معرّفات تصف نوع الحمولة ووحدتها. على سبيل المثال: weightKg أو volume_gallons أو palletcount أو frequencyDaily.
Load وLoadLimit
يحتوي العنصران Load وLoadLimit على سمات محدّدة لتحديد متطلبات السعة للشحنات والمركبات، ويوضّح الجدول التالي هذه السمات:
| عنصر | أحد الوالدين | الموقع | نوع مكان الإقامة | وصف الموقع |
|---|---|---|---|---|
Load |
loadDemands |
amount |
سلسلة (بتنسيق int64) | تحدّد هذه السمة متطلبات سعة الشحنة بالنوع المحدّد. |
LoadLimit |
loadLimits |
maxLoad |
سلسلة (بتنسيق int64) | تحدّد هذه السمة الحد الأقصى لسعة حمولة المركبة من النوع المحدّد. |
أمثلة
يتناول هذا القسم ثلاثة أنواع من الأمثلة:
- عيّنات التعليمات البرمجية التي توضّح بنية سمات متطلبات التحميل وحدوده.
- سيناريو مثال يوضّح إحدى طرق استخدام متطلبات التحميل والحدود في طلب بيانات من واجهة برمجة التطبيقات.
- مثال على طلب يتضمّن القيم التي تم ضبطها في سيناريو المثال.
عيّنات تعليمات برمجية
يوضّح المثال التالي بنية طلب تحميل يمكنك فيه ضبط النوع loadDemands كسلسلة والسمة amount كسلسلة بالتنسيق int64:
{ "model": { "shipments": [ ... { "loadDemands": { "MATCHING_LOAD_TYPE": { "amount": "YOUR_LOAD_AMOUNT" } } } ], "vehicles": [ ... ] } }
يوضّح المثال التالي أبسط بنية لحدّ التحميل، حيث يمكنك ضبط نوع loadLimits كسلسلة، والسمة maxLoad كسلسلة بتنسيق int64:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "loadLimits": { "MATCHING_LOAD_TYPE": { "maxLoad": "YOUR_MAX_LOAD" } } } ] } }
مثال على السيناريو
يصف هذا القسم سيناريو لديك فيه نشاط تجاري لرعاية الكلاب، وتريد تحسين مسار لنقل بعض الكلاب في مركبة تحتوي على عدد محدود من الصناديق.
تمثّل كل شحنة محطة واحدة يمكنك فيها اصطحاب عدد معيّن من الكلاب. في هذا المثال، لكل شحنة موقع استلام مختلف، وهو منزل الكلاب التي تعتني بها، وجميع الشحنات لها موقع تسليم واحد، وهو مبنى مركز الرعاية النهارية للكلاب.
في هذا المثال، تكون قيم السمات في طلبك كما يلي:
| أحد الوالدين | الموقع | النوع | القيمة | السيناريو |
|---|---|---|---|---|
loadDemands |
نوع التحميل | سلسلة | dogUnit |
تحدّد هذه السمة نوع الحمولة للشحنة. يستخدم هذا المثال dogUnit، حيث يمثّل كل dogUnit كلبًا واحدًا. |
loadDemands |
amount |
الرقم | الشحنة الأولى: 1الشحنة الثانية: 3 |
تحدّد هذه السمة كمية نوع الحمولة المحدّد. في هذا المثال، أنت تحدّد شحنتَين، في الأولى ستستلم كلبًا واحدًا، وفي الثانية ستستلم 3 كلاب. |
loadLimits |
نوع التحميل | سلسلة | dogUnit |
تحدّد هذه السمة نوع حد الحمولة المطبَّق على المركبة. يجب أن يتطابق ذلك مع نوع الحمولة للشحنة ليكون الحدّ ذا صلة. |
loadLimits |
maxLoad |
الرقم | 6 |
تحدّد هذه السمة الحد الأقصى لكمية نوع الحمولة التي يمكن أن تحملها المركبة. في هذا المثال، لديك مركبة واحدة فقط بسعة قصوى تبلغ 6 dogUnit، حيث يمثّل كل dogUnit قفصًا واحدًا للكلاب. |
يوضّح المخطط التالي حدود حمولة المركبة ومتطلبات الحمولة لكل شحنة وكيفية استهلاك كل شحنة لحدود حمولة المركبة:

في هذا المثال، يكون لمتطلبات الحمولة لكل شحنة وحدود الحمولة للمركبة التأثيرات التالية:
لن يواجه المحسِّن أي مشكلة في إنشاء مسار لنقل الكلاب، لأنّ المركبة يمكنها استيعاب ما يصل إلى 6 كلاب، وأنت ستنقل 4 كلاب فقط.
إذا كان الحد الأقصى للحمولة في المركبة هو 6
dogUnit، يعني ذلك أنّه يمكنك نقل كلبَين إضافيَّين فقط في هذه المركبة المحدّدة.إذا كان عدد الكلاب أكبر من الحدّ الأقصى المسموح به، سيتخطّى المحسِّن إحدى عمليات الاستلام أو سيُسندها إلى مركبة مناسبة.
تذكَّر أنّه لا توجد مجموعة من الأنواع المحدّدة مسبقًا. في هذا المثال، يمكنك تغيير نوع الحمولة من وحدات الكلاب إلى وحدات الوزن للحد من وزن الكلاب، أو تغييره إلى قياسات خطية للحد من عرضها أو ارتفاعها. تتيح لك هذه المرونة تخصيص متطلبات التحميل وحدوده لتلبية احتياجاتك المحددة.
مثال على الطلب
يوضّح المثال التالي بنية طلب optimizeTours أساسي
يتضمّن قيم سيناريو المثال:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "One bernese mountain dog", "loadDemands": { "dogUnit": { "amount": "1" } } }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "Three chihuahuas", "loadDemands": { "dogUnit": { "amount": "3" } } } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "loadLimits": { "dogUnit": { "maxLoad": "6" } }, "costPerKilometer": 1.0 } ] } }
تذكَّر أنّه على عكس المثال المذكور، يمكن أن تتضمّن الشحنة متطلبات تحميل متعددة، ويمكن أن تتضمّن المركبة حدود تحميل متعددة، ما يتيح لك تقديم قيود معقّدة يجب أخذها في الاعتبار عند تحسين مسارات أسطولك.
حدود التحميل المرنة
يمكنك ضبط حدود الحمولة كقيود مرنة من خلال إضافة softMaxLoad وcostPerUnitAboveSoftMax إلى loadLimits الخاص بالمركبة. يتيح ذلك
لبرنامج التحسين تجاوز الحدّ الأقصى للحمولة المسموح بها للمركبة مقابل تكلفة، مع إعطاء الأولوية لإكمال المسار على الالتزام الصارم بحدّ الحمولة.
يمكنك استخدام maxLoad وsoftMaxLoad معًا لضبط حدّ أقصى ثابت وحدّ أقصى مرن لعدد الإعلانات. في هذه الحالة، يحدّد softMaxLoad الحمل الذي يمكن تجاوزه، ويحدّد maxLoad حدًا صارمًا لا يمكن تجاوزه. عند استخدام كليهما، يجب أن تكون قيمة maxLoad أكبر من قيمة softMaxLoad.
الخصائص
يوضّح الجدول التالي سمات القيود المرنة لمتطلبات التحميل وحدوده.
| أحد الوالدين | اسم السمة | نوع مكان الإقامة | وصف الموقع |
|---|---|---|---|
loadLimits |
softMaxLoad |
سلسلة (بتنسيق int64) | الحدّ الأقصى المفضّل للحمولة في المركبة إذا تجاوزت حمولة المركبة هذه القيمة، سيتم تحمّل تكلفة. |
loadLimits |
costPerUnitAboveSoftMax |
الرقم | تمثّل هذه السمة تكلفة الوحدة من الحمولة التي تتجاوز softMaxLoad. هذا الحقل مطلوب عند استخدام softMaxLoad. اطّلِع على المفهوم الأساسي نموذج التكلفة لمعرفة المزيد عن التكاليف. |
عيّنة تعليمات برمجية
يوضّح المثال التالي بنية سمات القيود غير الصارمة في loadLimits:
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }