إنّ متطلبات التحميل والحدود هي نوع من القيود التي يمكنك استخدامها لإدارة السعة. يحدّد هذا القيد السعة المطلوبة للشحنة والسعة القصوى للمركبة، ما يتيح لك تحسين عمليات تحديد المسارات استنادًا إلى هذه القيود.
يمكن أن تساعد أحجام الطلبات والحدود القصوى في تحقيق أهداف مثل:
- منع تحميل المركبات بشكل زائد
- مراقبة كيفية تغيُّر حمولات المركبات عند استلام الشحنات وتسليمها
- إعطاء الأولوية لربط المركبات الثقيلة بشحنات الأحمال الثقيلة
يتم تحديد متطلبات التحميل وحدوده في الخصائص التالية:
- تحدّد السمة
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 } } }