الرجوعtracخوارزمية الملك
⚡ ملخص ذكي
الرجوعtracخوارزمية الملك هي أسلوب منهجي لحل المشكلات، حيث تبني حلولًا مرشحة تدريجيًا وتتخلى عن الحلول الجزئية التي لا تفي بالقيود المحددة. تستخدم هذه الخوارزمية الاستدعاء الذاتي لاستكشاف شجرة فضاء الحالة، وتقص الفروع غير المجدية، وتعود إلى القرار السابق عند الوصول إلى طريق مسدود. تشرح هذه المقالة الفكرة الأساسية، وخطوات العمل، والبنية الاستدعائية، والمصطلحات، والتطبيقات الكلاسيكية مثل لعبة الملكات N ولعبة سودوكو، بالإضافة إلى المفاضلات بينها وبين أسلوب البحث الشامل والاستدعاء الذاتي البحت.
![]()
ما هو الخلف؟tracخوارزمية الملك؟
الرجوعtracملك هي تقنية خوارزمية تبحث عن تركيبات صالحة لحل مشاكل حسابيةيقوم هذا الأسلوب ببناء حلول مرشحة تدريجياً، ويستبعد تلك التي لا تفي بالقيود المحددة. وهو مفيد بشكل خاص عندما يتعين عليك اختيار نتيجة ممكنة من بين العديد من النتائج المحتملة.
تُعتبر هذه الخوارزمية أكثر كفاءة من أسلوب البحث الشامل. فعلى عكس البحث الشامل الذي يفحص كل تركيبة ممكنة، فإن Backtracيركز الملك على إيجاد حل واحد صالح يلبي المعايير المحددة القيوديوفر هذا الأسلوب الوقت والذاكرة من خلال التراجع عن الخطوة الأخيرة وتجربة خيار آخر عند الوصول إلى طريق مسدود. كما يتوقف بمجرد العثور على حل صحيح.
الرجوعtracيُستخدم برنامج King على نطاق واسع لقدرته على حل المشكلات المعقدة دون استهلاك موارد كثيرة. وتُعد هذه التقنية ذات قيمة خاصة للمشكلات ذات القيود المتعددة، مثل سودوكو، ومسألة الملكات الـ N، وجدولة المهام. ومن خلال التنقل الذكي بين الحلول المحتملة، يُحقق برنامج Back نتائج أفضل.tracيجد برنامج King إجابة تلبي جميع الشروط، مما يجعله لا غنى عنه للمهام التي تتطلب الدقة والكفاءة على حد سواء.
كيف حالك؟tracهل تعمل خوارزمية الملك؟
الظهرtracخوارزمية الملك هي أسلوب لحل المشكلات يقوم ببناء حلول صحيحة خطوة بخطوة. إذا لم يتم استيفاء القيود في خطوة معينة، تعود الخوارزمية إلى الخطوة السابقة وتختار مرشحًا مختلفًا.
ثم ينتقل البرنامج إلى مجموعة من التوليفات البديلة التي تُلبي الشروط. ونظرًا لوجود العديد من التوليفات الممكنة، يختار البرنامج الخيار الأمثل ويحل المشكلة بالتتابع. تُعد هذه التقنية مفيدة عند الحاجة للاختيار من بين عدة خيارات. أما الانسحاب فيعني إلغاء الاختيار إذا لم يُفضِ إلى حل صحيح.
الظهرtracتتبع خوارزمية الملك هذه الخطوات العامة لحل المشكلة:
الخطوة 1) التهيئة: ابدأ بمحلول فارغ أو جزئي.
الخطوة الثانية: الاختيار: بناءً على القيود، اختر مرشحًا واحدًا لتوسيع الحل الحالي.
الخطوة 3) الاستكشاف: قم بحل المشكلة بشكل متكرر من خلال النظر في المرشح المختار والمضي قدماً.
الخطوة الرابعة) التحقق من القيود: في كل خطوة، تحقق مما إذا كان الحل الجزئي ينتهك أي قيود. إذا كان الأمر كذلك، فارجع إلى الخطوة السابقة.tracجرب مرشحًا آخر.
الخطوة 5) الإنهاء: تتوقف العملية بمجرد العثور على حل صالح أو استنفاد جميع الاحتمالات.
الخطوة 6) العودةtracملِك: عندما لا يستطيع الخيار الحالي حل المشكلة، ارجع إلى الحالة السابقة وحاول استخدام مرشح جديد.
الخطوة 7) كرر: استمر في هذه العملية حتى يتم حل المشكلة أو استكشاف جميع الخيارات.
الطبيعة المتكررة للخلفtracخوارزمية الملك
الرجوعtracتتسم خوارزميات الملك بطبيعتها التكرارية. تستدعي الدالة نفسها بمعاملات مختلفة حتى تكتشف حلاً صحيحاً أو تستنفد جميع الاحتمالات.
def find_solutions(n, other_params): if found_a_solution(): increment_solutions_found() display_solution() if solutions_found >= solution_target: exit_program() return for val in range(first, last+1): if is_valid(val, n): apply_value(val, n) find_solutions(n + 1, other_params) remove_value(val, n)
مصطلحات شائعة متعلقة بالظهرtracمشاكل الملك
هذه هي المصطلحات الأساسية المرتبطة بالظهرtracتقنية الملك:
- ناقل الحل: يمثل الحلول على شكل أزواج من n، مثل (X1، X2، …، Xn).
- قيود: القواعد التي تحدد قيم X، سواء كانت ضمنية أو صريحة.
- مساحة الحلول: جميع قيم X الصالحة التي تستوفي القيود الصريحة.
- شجرة فضاء الحالة: يمثل فضاء الحلول في شكل شجرة.
- مساحة الدولة: يصف المسارات داخل شجرة فضاء الحالة.
- حالة المشكلة: العقد الموجودة في شجرة البحث والتي تمثل حلولاً جزئية.
- حالات الحل: الحالات التي تشكل مجموعات حلول صالحة في S.
- الولايات الإجابة: استوفِ القيود الضمنية وأعطِ الحلول المطلوبة.
- العقدة الواعدة: يؤدي إلى حلول صالحة ويظل قابلاً للتطبيق.
- العقدة غير الواعدة: يؤدي إلى حالات غير قابلة للتطبيق ولا يتم استكشافها بشكل أكبر.
- عقدة مباشرة: تم إنشاؤها بالفعل مع بقاء أطفال لم يتم استكشافهم.
- العقدة الإلكترونية: عقدة نشطة تقوم حاليًا بإنشاء عقدها الفرعية.
- عقدة ميتة: لا يمكن التوسع أكثر من ذلك لأن كل طفل يتم إنشاؤه.
- توليد العقد باستخدام البحث العميق أولاً: يستخدم أحدث عقدة نشطة كعقدة E التالية.
- دالة التحديد: يعمل على زيادة أو تقليل B(x1, x2, …, Xa) من أجل التحسين.
- الأشجار الثابتة: صياغة الشجرة مستقلة عن حالة المشكلة.
- الأشجار الديناميكية: تختلف صياغة الشجرة باختلاف حالة المشكلة.
متى تستخدم الظهرtracخوارزمية الملك؟
بعد أن أصبحت خطوات العمل واضحة، فإن السؤال التالي هو متى العودةtracالملك هو الخيار المناسب. يمكنك اختيار الخلفtracتقنية الملك لحل مشكلة معقدة في الحالات التالية:
- هناك العديد من الخيارات: الرجوعtracمسائل بدلات الملك حيث تتوفر العديد من الخيارات في كل خطوة، مثل اختيار العناصر أو التحركات.
- لا يوجد خيار أفضل واضح: عندما لا تتوفر معلومات كافية لتحديد الخيار الأفضل مسبقًا، ارجعtracيمكن تطبيق الملك للاستكشاف المنهجي.
- القرار يؤدي إلى المزيد من الخيارات: الرجوعtracيساعدك برنامج King على مراجعة الخيارات المتسلسلة بطريقة منظمة.
- يجب استكشاف جميع الحلول الممكنة: الرجوعtracيستكشف كينغ بشكل منهجي كل حل من خلال اتخاذ سلسلة من القرارات التي تبني على بعضها البعض.
أنواع الظهرtracمشاكل الملك
بمجرد أن تقرر أن الظهرtracإذا كان الملك مناسبًا للمشكلة، فيجب عليك تحديد الفئة التي تنتمي إليها المشكلة. هناك ثلاثة أنواع من المشاكل في الخلفtracخوارزميات الملك: مشاكل القرار والتحسين والتعداد.
- مشكلة القرار: الهدف هو تحديد ما إذا كان هناك حل ممكن. والإجابة إما نعم أو لا. على سبيل المثال، مسألة الملكات N هي مسألة قرار تسأل عما إذا كان من الممكن وضع N ملكة على رقعة شطرنج N × N دون أن تهاجم بعضها بعضًا.
- مشكلة التحسين: الهدف هو إيجاد أفضل حل ممكن من بين خيارات متعددة. قد يتضمن ذلك تحديد القيمة العظمى أو الصغرى لدالة أو متغير. تُعدّ مسألة حقيبة الظهر، حيث يكون الهدف هو تعظيم القيمة الإجمالية للعناصر مع مراعاة حد الوزن، مثالًا كلاسيكيًا على ذلك.
- مشكلة التعداد: الهدف هو سرد جميع الحلول الصحيحة لمسألة معينة دون إغفال أي منها. ويُعدّ توليد جميع تركيبات الأحرف الممكنة من مجموعة معينة من الأحرف مثالاً على ذلك.
تطبيقات الظهرtracالملك وأمثلة
الرجوعtracيُستخدم برنامج King في العديد من السيناريوهات الواقعية والأكاديمية. فيما يلي شرح لبعض التطبيقات الشائعة مع رموزها الزائفة.
- Sudoku Solver: الظهرtracتقوم تقنية الملك بملء الخلايا الفارغة بأرقام صحيحة وتتراجع كلما انتهكت عملية وضع الأرقام قواعد لعبة سودوكو.
function solveSudoku(board): if no empty cells: return true # Sudoku is solved for each empty cell (row, col): for num from 1 to 9: if num is valid in (row, col): place num in (row, col) if solveSudoku(board): return true remove num from (row, col) return false # No valid solution
- مشكلة الملكات المتعددة: الظهرtracيضع أسلوب الملك الملكات على رقعة شطرنج N × N بحيث لا تهدد أي منها الأخرى.
function solveNQueens(board, col): if col >= N: return true # All queens are placed for each row in the column col: if isSafe(board, row, col): place queen at (row, col) if solveNQueens(board, col + 1): return true remove queen from (row, col) return false # No valid solution in this branch
- مسألة مجموع المجموعات الجزئية: الرجوعtracيجد برنامج King مجموعة فرعية من الأرقام من مجموعة معينة بحيث يكون مجموعها مساوياً لمجموع مستهدف محدد.
function subsetSum(nums, target, index, currentSubset): if target == 0: print(currentSubset) # Subset with the target sum found return if index >= len(nums) or target < 0: return currentSubset.add(nums[index]) subsetSum(nums, target - nums[index], index + 1, currentSubset) currentSubset.remove(nums[index]) subsetSum(nums, target, index + 1, currentSubset)
- مشكلة دورة هاميلتون: الرجوعtracيتم تطبيق خوارزمية king لإيجاد مسار مغلق في الرسم البياني يزور كل رأس مرة واحدة بالضبط.
- مشكلة الفأر في المتاهة: الرجوعtracيجد الملك مسار الفأر من نقطة بداية المتاهة إلى المخرج، متراجعاً عن الحركات التي تؤدي إلى الجدران.
مزايا وعيوب الظهرtracخوارزمية الملك
مثل أي استراتيجية خوارزمية، العودةtracيتمتع نظام الملك بنقاط قوة وضعف واضحة يجب عليك مراعاتها قبل اعتماده.
مزايا الظهرtracخوارزمية الملك
الرجوعtracتُساهم تقنيات الملك في حل المشكلات المعقدة بعدة طرق فعالة:
- الظهرtracتُعالج تقنية الملك القيود بكفاءة.
- تُعدّ هذه الطريقة فعّالة في حلّ مسائل التحسين.
- تتكيف هذه التقنية مع العديد من أنواع المشاكل المختلفة.
- تساعد هذه العملية في مراجعة كل الحلول الممكنة.
- لأنه يعودtracks، فهو يوفر ذاكرة أكبر من تقنية القوة الغاشمة.
عيوب الظهرtracخوارزمية الملك
الرجوعtracيُعاني برنامج King أيضًا من بعض القيود، لا سيما فيما يتعلق بتعقيد الوقت. وتتلخص عيوبه فيما يلي:
- لا يضمن ذلك حلاً في كل سيناريو.
- قد يكون الأمر بطيئاً بسبب العدد الكبير من التركيبات التي يجب تجربتها.
- تتسم هذه العملية بتعقيد زمني كبير نظراً لكثرة الاحتمالات.
- إنها غير مناسبة للقيود الزمنية الحقيقية لأن إيجاد الحل الأمثل قد يستغرق وقتاً طويلاً.
- تعتمد الكفاءة على مستوى تعقيد المشكلة.
الفرق بين الظهرtracالملك والتكرار
الرجوعtracتعتمد لغة King على التكرار، لكنهما ليسا متطابقين. يوضح الجدول أدناه الاختلافات الرئيسية.
| العودية | الرجوعtracملك |
|---|---|
| يستمر في استدعاء نفسه حتى يتم الوصول إلى الحالة الأساسية. | يستخدم التكرار لمراجعة كل الاحتمالات حتى يتم العثور على أفضل نتيجة ممكنة. |
| النهج من الأسفل إلى الأعلى. | النهج من الأعلى إلى الأسفل. |
| لا يتم تجاهل أي قيمة. | يتم رفض الحلول غير القابلة للتطبيق. |
