شرح الموضوع
تُسمى المسألة السابقة مسألة تعبئة الصندوق، ويُمكن حلها باستعمال ما يُسمى خوارزميات تعبئة الصناديق .
خوارزميات تعبئة الصندوق
- تعرُّف خوارزميات تعبئة الصندوق، واستعمالها لإيجاد الحل الأمثل لمسألة تعبئة.
كيف نملأ الصناديق بأقل عدد ممكن؟
يرغب مُدَرِّب في صالة رياضية أن يُرَتِّب على رفوف الأثقال المُبَيَّنة كتلتها (بالكيلوغرام) في ما يلي الكتل بالكيلوغرام: علمًا بأنه يُمكن لكل رف منها أن يحمل في الحد الأقصى. كيف يُمكن للمُدَرِّب أن يُرَتِّب الأثقال باستعمال أقل عدد من الرفوف؟
خوارزميات تعبئة الصندوق
- المسألة: عندي من العُلَب لها المقطع العرضي نفسه، لكنَّ ارتفاعاتها مُتفاوتة.
- المطلوب: تعبئتها في صناديق ارتفاعاتها مُتساوية باستعمال أقل عدد مُمكن من الصناديق.

- الشحن: تنظيم صناديق البضائع وترتيبها داخل حاويات الشحن.
- الشاحنات: تحميل البضائع في شاحنات عليها قيود في الكتلة.
- التخزين: تخزين ملفات بيانات مختلفة الحجوم في عدد من الأقراص المُدَمجة.
- الخطوة الأولى: إيجاد الحد الأدنى من عدد الصناديق اللازمة.
- اجمع المقاسات.: اجمع مقاسات العناصر جميعها.
- اقسم.: اقسم المجموع على مقاس الصندوق الواحد.
- قرِّب إلى الأعلى.: قرِّب الناتج إلى الأعلى؛ فهذا هو الحد الأدنى لعدد الصناديق.
أتعلم
أفكر
لماذا يُقَرَّب الناتج إلى الأعلى؟ أُبَرِّر إجابتي.
يُراد تعبئة العُلَب (المُعطى ارتفاعاتها في ما يلي) في صناديق، ارتفاعُ كلٍّ منها وحدة طول واحدة، علمًا بأنَّ للعُلَب والصناديق المقطع العرضي نفسه.
ارتفاعات العُلَب: أجد الحدَّ الأدنى من عدد الصناديق اللازمة لتعبئة العُلَب.
خوارزمية الملاءمة الأولى
الملاءمة الأولى: ضع كل عنصر في أول صندوق يتسع له
- الفكرة: من خوارزميات حل مسألة تعبئة الصندوق خوارزمية الملاءمة الأولى (first-fit algorithm).
خوارزمية
- إيجاد الحد الأدنى من عدد الصناديق اللازمة.
- اتباع ترتيب العناصر (العُلَب) المُعطى في المسألة.
- وضع كل عنصر في أوّل صندوق مُتوافر يتّسع له، بدءًا بالصندوق الأوّل في كل مرّة.
- في حال لم يتّسع أي صندوق للعنصر الذي يُراد وضعه، فإنّه يجب إضافة صندوق آخر.
بإيجاد مجموع ارتفاعات العُلَب
الدعم البياني:

- أُلاحظ من الشكل أنّ ارتفاع العُلَب في أيّ من الصناديق لم يتجاوز وحدة طول.
يُراد تعبئة العُلَب (المُعطى ارتفاعاتها في ما يلي) في صناديق، ارتفاع كلّ منها وحدة طول.
ارتفاعات العُلَب:
a) أستعمل خوارزمية الملاءمة الأولى لتعبئة العُلَب في الصناديق، ثمّ أُحدّد عدد الصناديق اللازمة لذلك.
b) هل توصّلتُ إلى الحل الأمثل لهذه المسألة؟ أُبرّر إجابتي.
c) أجد الارتفاع المهدور في الصناديق جميعها.
خوارزمية الملاءمة الأولى المتناقصة
الملاءمة الأولى المتناقصة: رتِّب ثم عبِّئ
- الفكرة: خوارزمية الملاءمة الأولى المتناقصة (first-fit decreasing algorithm) تبدأ بترتيب مقاسات العناصر المُعطاة ترتيبًا تنازليًا.
- ثمّ تُطبَّق خوارزمية الملاءمة الأولى لتعبئة العناصر في الصناديق.
خوارزمية
- ترتيب مقاسات العناصر تنازليًا.
- تطبيق خوارزمية الملاءمة الأولى على العناصر التي أُعيد ترتيب مقاساتها.
بإيجاد مجموع ارتفاعات العُلَب

أحلُّ المثال 3 باستعمال خوارزمية الملاءمة الأولى، ثمَّ أقارن بين الحلَّين.
أستعمل خوارزمية الملاءمة الأولى المُتناقصة لإعادة حلِّ المسألة الواردة في المثال 2، وأحدِّد إذا كان الحلُّ الناتج هو الحلُّ الأمثل أم لا.
وأجد مجموع الارتفاعات المهدورة في الصناديق جميعها، ثمَّ أقارن الحلَّ الذي توصَّلتُ إليه بالحلِّ الناتج باستعمال خوارزمية الملاءمة الأولى.
خوارزمية الصندوق الكامل
الصندوق الكامل: املأ الصناديق الممتلئة أولًا
- الفرق: الخوارزميتان السابقتان تشترطان التزام الترتيب المُعطى أو الترتيب التنازلي لمقاسات العناصر.
- الثالثة يُمكن استعمالها من دون الالتزام بأيِّ ترتيب لمقاسات العناصر: خوارزمية الصندوق الكامل (full-bin packing algorithm).
خوارزمية الصندوق الكامل
- إيجاد الحدِّ الأدنى من عدد الصناديق اللازمة.
- البحث عن العناصر التي يُمكن أن تملأ صندوقًا كاملًا، ثمَّ تعبئتها أوَّلًا.
- تطبيق خوارزمية الملاءمة الأولى على العناصر المُتبقية.
الدعم البياني:

أستعمل خوارزمية الصندوق الكامل لإعادة حلِّ المسألة الواردة في المثال 3، وأُحدِّد إذا كان الحلُّ الناتج هو الحلُّ الأمثل أم لا.
ثمَّ أُقارن الحلَّ الذي توصَّلتُ إليه بالحلِّ الناتج باستعمال خوارزمية الملاءمة الأولى المُتناقصة.
ملخَّص المفهوم
قارن بين الخوارزميات الثلاث
| اسم الخوارزمية | إيجابياتها | سلبياتها |
|---|---|---|
| خوارزمية الملاءمة الأولى. | سهلة التطبيق. | عدم تقديم حلٍّ جيدٍ في أغلب الأحيان. |
| خوارزمية الملاءمة الأولى المُتناقصة. | سهلة التطبيق. تقديم حلٍّ جيدٍ نوعًا ما بوجه عام. | قد لا تُقدِّم الحلَّ الأمثل. |
| خوارزمية الصندوق الكامل. | تقديم حلٍّ جيدٍ بوجه عام. | قد لا تُقدِّم الحلَّ الأمثل. من الصعب تطبيقها إذا كان عدد العناصر كبيرًا جدًّا، وكانت مقاساتها قِيَمًا عشرية. |
- يُمكن توظيف خوارزميات التعبئة في العديد من التطبيقات الحياتية التي تهدف إلى تقليص أكبر قَدْر من الهدر في المساحات والأطوال.
مثال 5: من الحياة
من الحياة: قصّ القماش وحفظ الملفات
بإيجاد مجموع أطوال قطع القماش
أتعلم
تخزين البيانات: سعات 9 ملفات حاسوبية (بالجيجابيت) يُراد حفظها في أقراص تخزين، سعة كلّ منها جيجابيت.
السعات بالجيجابيت:
a) أجد الحدّ الأدنى من عدد أقراص التخزين اللازمة لحفظ الملفات.
b) أُحدّد كيف تُحفظ الملفات في الأقراص باستعمال خوارزمية الملاءمة الأولى المتناقصة، ثمّ أُحدّد عدد الأقراص اللازمة لذلك باستعمال هذه الخوارزمية، ثمّ أجد مساحة التخزين المهدورة في الأقراص.
d) أيّ الخوارزميتين توصّلتُ بها إلى الحلّ الأمثل؟ أُبرّر إجابتي.
✍ أتدرب وأحلّ المسائل
تدرَّب على الخوارزميات الثلاث
ارتفاع كلّ صندوق وحدات طول؛ للعُلَب والصناديق المقطع العرضي نفسه.
ارتفاعات العُلَب: 1. أستعمل خوارزمية الملاءمة الأولى لتعبئة العُلَب في الصناديق، ثمّ أُحدّد عدد الصناديق اللازمة لذلك.
2. هل الحلّ الناتج في السؤال السابق هو الحلّ الأمثل لهذه المسألة؟ أُبرّر إجابتي.
3. أجد الارتفاع المهدور في الصناديق جميعها.
ارتفاع كلّ صندوق وحدة طول؛ للعُلَب والصناديق المقطع العرضي نفسه.
ارتفاعات العُلَب: 4. أستعمل خوارزمية الملاءمة الأولى المتناقصة لتعبئة العُلَب في الصناديق، ثمّ أُحدّد عدد الصناديق اللازمة لذلك.
5. هل الحلّ الناتج في السؤال السابق هو الحلّ الأمثل لهذه المسألة؟ أُبرّر إجابتي.
6. أجد الارتفاع المهدور في الصناديق جميعها.
ارتفاع كلّ صندوق وحدة طول؛ للعُلَب والصناديق المقطع العرضي نفسه.
ارتفاعات العُلَب: 7. أستعمل خوارزمية الصندوق الكامل لتعبئة العُلَب في الصناديق، ثمّ أُحدّد عدد الصناديق اللازمة لذلك.
8. هل الحلّ الناتج في السؤال السابق هو الحلّ الأمثل لهذه المسألة؟ أُبرّر إجابتي.
9. أجد الارتفاع المهدور في الصناديق جميعها.
شحن: كتل 7 أجهزة بالكيلوغرام يُراد شحنها في صناديق، على ألا تتجاوز كتلة الصندوق الواحد .
الكتل: 10. أجد الحدّ الأدنى من عدد الصناديق اللازمة لشحن الأجهزة.
11. أُحدّد كيف تُوزّع الأجهزة على الصناديق باستعمال خوارزمية الملاءمة الأولى، ثمّ أُحدّد عدد الصناديق اللازمة لذلك باستعمال هذه الخوارزمية.
13. أُحدّد كيف تُوزّع الأجهزة على الصناديق باستعمال خوارزمية الصندوق الكامل، ثمّ أُحدّد عدد الصناديق اللازمة لذلك باستعمال هذه الخوارزمية.
14. أيّ الخوارزميات توصّلتُ بها إلى الحلّ الأمثل؟ أُبرّر إجابتي.
أسلاك نحاسية: أطوال 10 قطع بالسنتيمتر يُراد قصّها من أسلاك نحاسية، طول كلّ منها .
الأطوال بالسنتيمتر: 15. أُحدّد كيف تُقصّ القطع باستعمال خوارزمية الملاءمة الأولى، ثمّ أُحدّد عدد الأسلاك اللازمة لذلك باستعمال هذه الخوارزمية، ثمّ أجد طول الجزء المهدور من الأسلاك جميعها.
18. أيّ الخوارزميات توصّلتُ بها إلى الحلّ الأمثل؟ أُبرّر إجابتي.
أثقال: أعود إلى المسألة الواردة في بند (مسألة اليوم)، ثمّ أجيب عن الأسئلة الآتية تباعًا:
يُمكن لكل رف أن يحمل في الحد الأقصى.
الكتل بالكيلوغرام: 19. أُحدّد كيف تُرَتَّب الأثقال على الرفوف باستعمال خوارزمية الملاءمة الأولى، ثمّ أُحدّد عدد الرفوف اللازمة لذلك باستعمال هذه الخوارزمية.
20. أُحدّد كيف تُرَتَّب الأثقال على الرفوف باستعمال خوارزمية الصندوق الكامل، ثمّ أُحدّد عدد الرفوف اللازمة لذلك باستعمال هذه الخوارزمية.
مهارات التفكير العليا
مهارات التفكير العليا: الأخشاب والحقائب
تبرير: أطوال 8 قطع خشبية (بالسنتيمتر) تلزم لصنع خزانة صغيرة، ويُراد قَصُّها من ألواح خشبية.
الأطوال بالسنتيمتر: 21. تتوافر ألواح خشبية، طول كلّ منها ، وسعرها .
أستعمل خوارزمية المُلائمة الأولى المُتناقصة لتحديد كيف تُقَصُّ القطع الخشبية من الألواح، ثمَّ أجد التكلفة الكلية لصنع الخزانة.
ثمَّ أحسب الكمية المهدورة من الخشب.
23. أيُّ الخوارزميتين يُمكن استعمالها لصنع الخزانة بتكلفة أقل؟ أُبرر إجابتي.
24. ما أقل تكلفة لصنع الخزانة إذا أمكن استعمال الألواح التي طولها والألواح التي طولها معًا؟ أُبرِّر إجابتي.
تحدٍّ: كتل 9 حقائب سفر (إلى أقرب كيلوغرام) يُراد نقلها في حاويات، ويُمكن لكلٍّ منها أن تحمل كتلة إجمالية أقصاها .
الكتل بالكيلوغرام: إذا علمتُ أنَّ كتلة إحدى الحقائب لم تُقَسْ قياسًا دقيقًا، ولتكن x كيلوغرامًا، حيث: 23 ≥ x > 19 25. أحدّد كيف تُوزَّع الحقائب على الحاويات باستعمال خوارزمية المُلائمة الأولى.
26. أحدّد الطريقتين المُمكِنتين لتوزيع الحقائب على الحاويات باستعمال خوارزمية المُلائمة الأولى المُتناقصة.
27. أحدّد القيمة (القيم) المُمكِنة للمتغير x في كلّ من الطريقتين المُشار إليهما في السؤال السابق بعد توزيع الحقائب باستعمال خوارزمية المُلائمة الأولى المُتناقصة.