طلب إيجاد خوارزمية لمسألتي

  • MouhcineFD

السلام عليكم

واجهتني مشكلة في إيجاد حل لهده المسألة

والله قضيت أكتر من أسبوعين وأن أحاول حلها ولم أفلح في ذالك

المرجو المساعدة جزاكم الله خيرا

المسألة:A جدول مكون من n سطر m عمود

كل سطر وكل عمود يحتوي على x خانة مملوءة

x>=2

خانة مملوءة تمثل 1

خانة فارغة تمثل 0

المطلوب

تغيير قيمة بعض الخانات من الواحد الى الصفر وليس من الصفر الى الواحد لتحقيق الشرط الأول مع تغيير أقل عدد ممكن من الخانات(الشرط الثاني)

الشرط الأول

يجب أن يكون عدد الخانات المملوءة في كل سطر وعمود عددا زوجيا أو بمعنى آخر أن يكون المجموع في كل سطر وعمود قيمة زوجية وممكن أن يكون الصفر

يعني سيصبح x=2k / k>=0

الشرط الثاني

يجب أن تغير أقل عدد ممكن من الخانات أو بمعنى آخر أن تحصل على أكبر مجموع للخانات التي تمثل واحد في الجدول

مثال

لدينا هدا الجدول

نلاحظ أن العمود الثاني والثالث يحتويان على عدد فردي

الحل هو

مجموع الخانات التي تحتوي على القيمة واحد يساوي 10

يمكن أن يكون أكثر من حل

وهدا حل خاطئ لأنه يحقق الشرط الأول فقط يعني تم تغيير عدد من الخانات أكثر من الازم أي مجموع الخانات التي تحتوي على القيمة واحد يساوي 6 و6 ليست أكبر قيمة ممكن أن تحصل عليها (الحل الصحيح هو دو القيمة 10)

ملاحظة

في بعض الحالات يمكن أن يكون الحل الوحيد هو الجدول فارغ


عبد الرحمن أحمد أضف ردا

سأقترح خطوات الحل:

  • تقسيم عملية إيجاد الحل إلى مرحلتين،

1- تكون بالحفاظ على الواحدات و التعامل مع الأصفار لأن الهدف الحصول على أكبر عدد من الواحدات،

2- إن تعذر الحل في المرحلة 1، تكون المرحلة التالية هي التعامل مع الواحدات

المرحلة الأولى: نقسمها إلى مرحلتين:

1-أ) نبدأ بها من وضعية جميع الخانات واحدات ونبدأ بتجربة إبدال الواحدات صفرا باحتمالاتها المختلفة وفحص نتيجة الشرط الأول إلى أن يتحقق أو ننتقل للمرحلة 1-ب التالية.

1-ب) نبدأ بها من الوضعية الابتدائية ونبدأ بتجربة إبدال الأصفار واحدات باحتمالاتها المختلفة وفحص الشرط الأول إلى أن يتحقق أو ننتقل للمرحلة 2 السابقة الذكر.

في حال تحققت الشروط في المرحلتين أ و ب نكون قد حصلنا على أكبر عدد واحدات من المرحلة أ وأقل تغييرات من المرحلة ب وهنا أنت قرر أيهما ستعتمد. هل الحل ذو الواحدات الأكثر أم التغييرات الأقل.

في حال تعذر الوصول لحل في المرحلة 1 تتنتقل إلى المرحلة الثانية 2 وهي التعامل مع الواحدات الأصلية بإبدالها أصفار باحتمالاتها المختلفة وتبدأ من الوضعية الأصلية إلى أن تصل لحل أو تصل للجدول الفارغ. وأي حل ستصل له في هذه المرحلة سيكون هو المثالي.

آسف لم أنتبه إلى أنني كتبت عكس ما أريده, تم التعديل

المطلوب

تغيير قيمة بعض الخانات من الواحد الى الصفر وليس من الصفر الى الواحد لتحقيق الشرط الأول مع تغيير أقل عدد ممكن من الخانات(الشرط الثاني)

لا يمكن تغير الأصفار الى واحدات يعني قيمة الجدول ستكون أصغر قطعا من القيمة الأولى

أول شيئ عملت عليه للحل هو المرحلة الثانية التي قلت أنت

أي دراسة جميع الاحتمالات الممكنة لاكن هدا الحل غير عملي لدي بعض الجداول ستستغرق أيام للحل

فقط فكر في الجدول فوق ستجد عدد هائل من الاحتمالات

هل المسألة هي هكذا بحذافيرها، أم أن الأصل هو مشكلة واقعية وأنت نمذجتها بهذه الطريقة؟

ما قصدته لو أن المسألة واقعية حتى لا ينحصر التفكير بطريقة نمذجة رقمية واحدة، وأن يفسح المجال للنظر إن كان هناك طرق مختلفة.

نعم هي مشكلة واقعية وأنا نمذجتها على هذا الشكل

أنا وضعت التخطيط لحل المشكلة ومن مراحل الحل أن أمر على المسألة فوق

يعني لا يمكنني أن أغير المسألة لأنه سيتطلب مني إعادة تصميم كل شيئ

ما هي "المشكلة الواقعية" التي نمذجتها؟ لعل معرفتها يساعد في الوصول للحل

أي دراسة جميع الاحتمالات الممكنة لاكن هدا الحل غير عملي لدي بعض الجداول ستستغرق أيام للحل

الاحتمالات ستنحصر في الأسطر والأعمدة التي يكون فيها الواحدات فردي ومهما كانت الاحتمالات حتى لو بعشرات الآلاف فهي لن تستغرق وقت طويل كما ذكرت