في عام ١٨٥٦ ميلادية، جلس عالمٌ إيرلندي اسمه ويليام روان هاملتون وراء مكتبه في دبلن، يُحدّق في مضلّع ثلاثي الأبعاد يُعرف بـ"الدوديكاهيدرون". وضع على كل واحدة من زواياه الثلاثين اسمَ مدينة من أشهر مدن العالم، ثم سأل صديقه: هل تستطيع أن تُخطّط رحلة تزور فيها كل مدينة مرة واحدة بالضبط وتعود إلى نقطة البداية؟
باع هاملتون لعبته بخمسة وعشرين جنيهًا إسترلينيًا. لكن السؤال الكامن فيها تحوّل في قرنين إلى واحدة من أعمق مسائل علوم الحاسوب. وهذه المقالة رحلة عبر ألف سنة من الإجابات: النحلة التي تحل كل يوم ما يعجز عنه الحاسوب، وخوارزمية تعلّمت منها، وعالم لغة عربية أخفى حلًا رياضيًا معقدًا داخل قصيدة مديح. وبينهما جسر صابون يحل بالفيزياء ما تعجز عنه الحسابات، ولغات برمجة تكتب الكود داخل الشعر.
والمفارقة أن هذه المسألة التي يعجز عنها أسرع حاسوب في العالم، حلّها شاعر عربي في القرن الثالث الهجري دون أن يدري أنه يحلّها. أربع وستون بيتًا من الشعر، كل بيت يبدأ بحرفين يُحدّدان مربعًا على رقعة الشطرنج، والحروف مجتمعة ترسم جولة حصان كاملة. قصيدة تعمل على مستويين في آن: مديح يُقرأ بصوت عالٍ، وخوارزمية مشفّرة بين السطور.
مسألة الحصان: أربعة وستون مربعًا ولا عودة
رقعة الشطرنج ثمانية أعمدة في ثمانية صفوف. أربعة وستون مربعًا. ضع حصانًا في أي مربع تشاء، تلك القطعة التي تقفز على شكل حرف L: مربعان في اتجاه ثم مربع في الاتجاه العمودي. السؤال بسيط في صياغته: هل يمكن للحصان أن يزور كل مربع من هذه المربعات مرة واحدة بالضبط دون أن يعود لأي منها؟١
لماذا تنكسر الجولة؟
حين تجرّب هذا بيدك، تلاحظ أن الأمر يبدو سهلًا في البداية. لكن في مكان ما، عادةً بعد نصف الرقعة، يتوقف الحصان فجأة. لا مكان يذهب إليه. هذا ليس خطأك. الخطأ وقع قبل عشرين حركة حين زُرت مربعًا حاجبًا كان يجب أن يُزار لاحقًا. الزوايا والأطراف هي مربعات "على موعد"، فإذا تأخّرت عليها فاتها الوقت.
ما الحل؟ الهيوريستيك؟: بوصلة بدل الخريطة
حين يكون عدد الاحتمالات أكبر من أن يُحصى، لا نحتاج خريطة كاملة لكل الطرق. نحتاج بوصلة تُرشدنا في كل خطوة نحو الاتجاه الأرجح. هذا بالضبط ما يُسمى في علوم الحاسوب بالـهيوريستيك (القاعدة الإرشادية): ليست ضمانة للوصول، لكنها تصل في أغلب الأحيان، وبسرعة لا يحلم بها البحث الشامل؟.
وارنسدورف ١٨٢٣: قاعدة واحدة تُنقذ الحصان
قبل أن يُولد علم الحاسوب بقرن كامل، وجد الرياضي الألماني هـ.ك. وارنسدورف٢ هيوريستيك بسيط ولكنه فعّال بشكل مذهل. الفكرة في جملة واحدة: في كل خطوة، انتقل إلى المربع الذي له أقل عدد من الحركات المتاحة بعده. بمعنى آخر: زُر الأماكن الأكثر ضيقًا أولًا، قبل أن تنعزل ويُصبح الوصول إليها مستحيلًا.
المنطق وراءها بديهي حين تفكر فيه: المربع الذي لا يملك إلا خيارين سيُصبح معزولًا بسرعة إذا لم تزره الآن. المربع الذي يملك ستة خيارات يمكن الوصول إليه لاحقًا من عدة مسارات. القاعدة تُعالج بالضبط السبب الذي يجعل الحصان يتوقف: الأطراف والزوايا التي لا تُزار في الوقت المناسب.
القاعدة إرشادية لا تضمن النجاح في ١٠٠٪ من الحالات، لكنها تحل المسألة على رقعة ٨×٨ في الغالبية العظمى منها، وبسرعة مذهلة مقارنةً بالبحث الاعتباطي. وهذا بالضبط ما ستستخدمه خوارزمية مستعمرة النحل لتوجيه كل خطوة.
جرّب بنفسك: محاكاة جولة الحصان
اضغط على أي مربع لتبدأ منه، ثم شاهد وارنسدورف يقود الحصان خطوة بخطوة. يمكنك التحكم بالسرعة أو التقدم يدويًا.
هاملتون وNP: حين تُخمّن الآلة الحل
ويليام روان هاملتون (١٨٠٥–١٨٦٥) كان من أعجب عقول القرن التاسع عشر: تعلّم خمس لغات حية وثلاث لغات قديمة قبل التاسعة، ووجد خطأ في كتاب لابلاس وهو في الثالثة عشرة، وعُيّن أستاذًا جامعيًا وفلكيًا ملكيًا لأيرلندا قبل أن يُتمّ درجته. وفي ١٨٤٣، أثناء نزهة مع زوجته، نقش بسكينه على حجر جسر برومباريدج٣ المعادلة:
كانت تلك الكواترنيونات، نظام أعداد رباعي الأبعاد يُستخدم اليوم في كل لعبة فيديو ومركبة فضائية لحساب الدوران. لكن لعبته الشطرنجية عام ١٨٥٦ (التي باعها بخسارة) خلّفت سؤالًا أعمق بكثير.
المسألة الهاملتونية: كلمتان تُخفيان جبلًا
المسألة الهاملتونية تسأل: هل يوجد في مخطط رياضي معيّن مسارٌ يمر بكل رأس من رؤوسه مرة واحدة بالضبط؟ في لغة الرياضيات الحديثة: المخطط مجموعة من النقاط (رؤوس) تصلها خطوط (حواف). مسألة الحصان هي مسألة هاملتونية، فالرؤوس هي مربعات الرقعة، والحواف هي حركات الحصان الممكنة.
قبل هاملتون بقرن، حلّ أويلر مسألة جسور كونيغسبرغ٤: هل يمكن عبور كل الجسور مرة واحدة؟ الحل شرط بسيط: عدد الرؤوس ذات الدرجة الفردية يجب أن يكون صفرًا أو اثنين. قاعدة واحدة تُجيب في لحظة. المسألة الهاملتونية تبدو أختها، لكن لا يوجد لها قاعدة بسيطة مماثلة. الشبه في الصياغة يُخفي هوّة في الصعوبة.
NP: الآلة التي تُخمّن
في عام ١٩٧١، أثبت الباحث ستيفن كوك٥ أن المسألة الهاملتونية تنتمي إلى فئة تُسمى NP-Complete؟. لفهم ما يعنيه هذا التصنيف بدقة، علينا أن نعود إلى تعريف NP نفسه، وهو أكثر دقةً مما يظن أغلب الناس.
NP تعني Nondeterministic Polynomial، أي متعدد الحدود غير الحتمي؟. الكلمة "غير حتمي" هي المفتاح. لفهمها، تخيّل آلتين:
الآلة الحتمية (DTM) تُشبه إنسانًا يحل لغزًا: تجرّب مسارًا واحدًا، إذا فشل تعود وتجرّب آخر. خطوة واحدة في كل مرة، مسار واحد في كل مرة.
الآلة غير الحتمية (NTM) تستطيع عند كل نقطة قرار أن تُخمّن الإجابة الصحيحة مباشرةً، كأنها تتفرع إلى جميع الاحتمالات في آنٍ واحد وتختار الصحيح بسحر. أو بتعبير آخر: تستطيع "تخمين" أي مسار من مسارات الحل بشكل صحيح دائمًا.
المسائل التي يمكن لآلة تورنغ غير حتمية (NTM) أن تحلّها في زمن متعدد الحدود. عمليًا هذا يُكافئ: المسائل التي يمكن التحقق من حلّها في زمن متعدد الحدود، لأن "التحقق" هو ما يفعله الفرع المحظوظ في الآلة غير الحتمية. فإذا أُعطيتَ جولة كاملة للحصان، تتحقق منها في ثوانٍ، وبذلك تكون المسألة في NP.
تصنيف المسائل: من السهل إلى المستحيل عمليًا
كل أنظمة التشفير في العالم (المصارف، الاتصالات، الشبكات) تقوم على افتراض أن P ≠ NP أي أن بعض المسائل صعبة بطبيعتها. إذا أثبت أحد أن P = NP، انهار هذا الافتراض، وأصبح فك أي تشفير ممكنًا في ثوانٍ. المسألة المليونية الدولار لكلاي٦ ليست ترفًا أكاديميًا.
وحين تفهم هذا، تدرك لماذا ما فعله ابن دُريد وما تفعله خوارزمية مستعمرة النحل هو الاستجابة الصحيحة: لا تحارب الصعوبة الجوهرية، بل تتجاوزها بالذكاء والتوجيه.
في قلب الخلية: النحل يحل ما يعجز عنه الحاسوب
الطبيعة لا تعرف الشيفرة ولا نظرية التعقيد الحسابي. لكنها تحل كل يوم مسائل تحسين مذهلة بكفاءة تُخجل أفضل خوارزمياتنا. خلية النحل مثال بارز: تُخصّص آلاف الجامعات على حقول أزهار متناثرة في دائرة كيلومترات، تُكيّف التوزيع مع تغيّر الجودة، وتُحافظ على التوازن بين الاستغلال والاستكشاف. كل هذا دون قائد، دون خطة مركزية، دون إشارات رقمية.
ثلاثة أدوار تصنع الخلية
رقصة الاهتزاز: معجزة التواصل الطبيعي
اكتشف عالم الأحياء النمساوي كارل فون فريش٧ عام ١٩٧٣ (وحاز نوبل عليه) أن النحلات العائدة بالرحيق تُرسّخ بياناتٍ ثلاثةً في رقصتها: مدة الاهتزاز تُعبّر عن المسافة، والزاوية عن الاتجاه بالنسبة للشمس، وشدة الرقصة عن جودة الرحيق. نحلة تُشاهد الرقصة تملك كل ما تحتاجه للوصول لحقل لم تزره من قبل. لا كلمات، لا خرائط، فقط حركة جسد.
شاهد النحل وهو يبحث عن الرحيق
في هذا الحقل أزهار بجودة مختلفة (الرقم = جودة الرحيق). شاهد كيف تكتشف النحلات أفضل الأزهار بالتعاون: الجامعة تطير لزهرتها وتعود، ترقص لتُخبر الباقيات، المتفرجة تختار أفضل راقصة وتتبعها، والكاشفة تستكشف المجهول حين ينضب مصدر.
التوازن الذهبي: الاستغلال والاستكشاف
الأعمق من آلية التواصل هو توزيع الجهد: كم نحلة تعمل على مصادر معروفة وكم تستكشف جديدة؟ استغلال بلا استكشاف يعني الوقوع في الأفضل المحلي. استكشاف بلا استغلال يعني الهدر. النحل تملك هذا التوازن بفطرتها، والخوارزمية تُقلّده تمامًا.
خوارزمية مستعمرة النحل؟٨: ترجمة الحياة إلى كود
في عام ٢٠٠٥، ترجم الباحث التركي درويش قرابوغا٩ هذا السلوك إلى خوارزمية تحسين عامة. ليس تقليدًا أعمى، بل نقلًا لمبادئ ثلاثة: الاستغلال المحلي؟، والضغط الانتقائي؟، والتخلص من الجمود؟.
قبل أن نرى كيف تعمل على مسألة الحصان، من المهم أن نعرف أن ABC ليست خوارزمية أكاديمية فحسب. تُستخدم في:
تصميم شبكات الاتصالات: توزيع الأبراج على مدينة بأقل تكلفة وأفضل تغطية. كل "نحلة" تُجرّب توزيعًا مختلفًا وتُقيّمه.
جدولة المصانع: ترتيب مئات المهام على عشرات الآلات بأقل وقت إنتاج. المسألة NP-Hard بالضبط كمسألة الحصان.
تدريب الشبكات العصبية: ضبط ملايين المعاملات في نماذج التعلم العميق. كل "جولة" هنا ليست مسارًا على رقعة بل مجموعة أوزان.
تصميم الدوائر الإلكترونية: توزيع المكوّنات على شريحة بأقل طول أسلاك وأقل تداخل حراري.
المبدأ واحد في كل هذه التطبيقات: ابدأ بحلول عشوائية، حسّنها بالتعاون، تخلّص من الراكد. ونحن هنا سنُطبّقها على مسألة الحصان لأنها أوضح مثال بصري لمشاهدة الخوارزمية وهي تعمل.
كيف تعمل الخوارزمية: خمس خطوات
الأدوار الثلاثة ليست مجرد محاكاة للطبيعة. هي حل لمعضلة جوهرية تواجه كل خوارزمية تحسين: كيف توازن بين تعميق البحث فيما تعرفه وتوسيع البحث فيما لا تعرفه.
العاملة = الاستغلال المحلي (Local Search): لديك حل جيد، حسّنه. غيّر جزءًا صغيرًا وقارن. هذا ما يفعله أي مهندس يُعدّل تصميمًا قائمًا: لا يبدأ من الصفر، بل يُحسّن ما بين يديه. المشكلة: قد تعلق في "قمة محلية" ليست القمة الحقيقية.
المتفرجة = الضغط الانتقائي (Selection Pressure): ليس كل الحلول تستحق نفس الجهد. المتفرجة تُوجّه الطاقة نحو الحلول الواعدة. بدونها، تضيع الخوارزمية وقتًا متساويًا على حلول ممتازة وحلول رديئة. هذا مبدأ داروني بامتياز: البقاء للأصلح.
الكاشفة = الهروب من الجمود (Diversification): حين يفشل حل مرارًا، لا فائدة من ترقيعه. ألقِه وابدأ من مكان جديد تمامًا. بدون الكاشفة، تتجمع كل الحلول حول منطقة واحدة ولا تكتشف أبدًا أن الحل الأفضل في مكان آخر كليًا.
العاملة = تحسين وظيفتك الحالية: تتعلم مهارة جديدة، تبني علاقات أفضل، تطلب ترقية. تُحسّن ما بين يديك دون المغامرة بتغيير جذري.
المتفرجة = الاستماع للتجارب: تسأل الأصدقاء عن وظائفهم، تقرأ عن مسارات مهنية ناجحة. الشخص الأسعد والأنجح يجذب اهتمامك أكثر. لا تقلّد الجميع بالتساوي.
الكاشفة = تغيير المسار كليًا: بعد سنوات من المحاولة بلا تقدم، تترك المجال وتبدأ شيئًا مختلفًا تمامًا. المخاطرة عالية لكن بدونها تبقى عالقًا.
التوازن بين الثلاثة هو ما يصنع حياة مهنية ناجحة، تمامًا كما يصنع خوارزمية ناجحة.
مثال عملي: جدولة مخبز
تخيّل مخبزًا فيه ٣ أفران و٥ طلبات: كعك (٣ دقائق)، خبز (٦)، فطائر (٨)، بسكويت (٥)، كرواسون (٢). الهدف: توزيعها على الأفران بحيث ينتهي الجميع في أقصر وقت. كل شريط ملوّن = طلب، وطوله = وقته. الرقم على اليسار = إجمالي وقت الفرن. أقصر وقت ممكن = ٨ دقائق (مجموع الأوقات ٢٤ ÷ ٣ أفران).
خدمة بث فيديو (مثل Netflix أو شاهد) لديها ١٠ خوادم و٥٠٠٠ مستخدم يشاهدون في نفس اللحظة. كل مستخدم يستهلك موارد مختلفة: من يشاهد بدقة 4K يستهلك ضعف من يشاهد بـ 720p. الهدف: توزيع المستخدمين على الخوادم بحيث لا يتعطل أي خادم ولا يبقى آخر فارغًا.
المشكلة: توزيع ٥٠٠٠ مستخدم على ١٠ خوادم له عدد احتمالات أكبر من عدد ذرات الكون. التوزيع العشوائي يُحمّل بعض الخوادم ١٠٠٪ بينما آخرون على ٢٠٪. النتيجة: تقطيع في الفيديو لبعض المستخدمين.
كيف تعمل ABC هنا؟ تمامًا كالمخبز:
• كل "نحلة" = توزيع مختلف للمستخدمين على الخوادم
• العاملة تنقل مستخدمًا من خادم مُحمّل لخادم أخف (كتبديل طلب بين فرنين)
• المتفرجة تركّز على أفضل توزيع وتُكرر التحسين عليه
• الكاشفة تُلغي توزيعًا فاشلًا وتُعيد التوزيع من الصفر
النتيجة: في أقل من ثانية، كل الخوادم تعمل بين ٤٥٪ و٦٥٪ بدلًا من ٢٠٪ و١٠٠٪. لا أحد يشاهد فيديو متقطعًا. وكل هذا يحدث تلقائيًا كل ٣٠ ثانية مع تغيّر عدد المشاهدين.
نفس الأفران والطلبات. فقط بدل الكعك: بيانات. وبدل الأفران: خوادم.
المخطط الانسيابي الكامل
هذا المخطط يُلخّص كل ما سبق في صورة واحدة: من تهيئة المستعمرة إلى اكتمال الجولة، مرورًا بالأطوار الثلاثة وحلقة التكرار.
محاكاة تفاعلية: شاهد النحل يحل المسألة
هذه محاكاة حقيقية لخوارزمية ABC تعمل على رقعة ٨×٨. كل نحلة تملك جولة تُحسّنها. شاهد كيف تتعاون المستعمرة حتى تكتمل الجولة.
الصابون الذي يحل ما يعجز عنه الحاسوب: الفيزياء كخوارزمية
قبل أن نصل إلى ابن دُريد، نقف لحظة عند استعارة جميلة من عالم الفيزياء لأنها تُكمل المشهد وتُوضّح فكرةً أعمق: أن الطبيعة "تحل" مسائل التحسين بطريقة مختلفة جذريًا عن الحساب التقليدي.
تخيّل الإمام البخاري في القرن الثالث الهجري، يريد أن يجمع الأحاديث من عشر مدن: يبدأ من بخارى، يمر بسمرقند ومرو ونيسابور وبغداد والبصرة والكوفة ومكة والمدينة ودمشق، ثم يعود إلى بخارى. يريد أقصر طريق يمر بها جميعًا مرة واحدة بالضبط، فالرحلة شاقة والعمر محدود. هذه هي مسألة البائع المتجوّل (TSP)١٠ بعينها، لكن بدل البضاعة: أسانيد.
تبدو بسيطة؟ لعشر مدن فقط يوجد أكثر من ثلاثة ملايين مسار محتمل. لعشرين مدينة العدد يقفز إلى ما يفوق ستين كوادريليون. ولخمسين مدينة، حتى لو فحص أسرع حاسوب في العالم مليار مسار في الثانية، يحتاج عمرًا أطول من عمر الكون ليجرّبها جميعًا. هي مسألة NP-Hard مثل أختها الهاملتونية بالضبط.
لكن الطبيعة وجدت حلًا بلا حساب. خذ لوحًا خشبيًا واغرز فيه مسامير تُمثّل المدن: مسمار لبخارى، مسمار لبغداد، مسمار لمكة. اغمس اللوح في محلول صابوني ثم ارفعه ببطء. غشاء الصابون الرقيق يتشكّل تلقائيًا بين المسامير في الشكل الذي يُقلّل مساحته إلى الحد الأدنى. لا معادلات، لا خوارزميات، فقط فيزياء التوتر السطحي؟ تبحث عن حالة الطاقة الدنيا.١١
الصابون لا يعرف نظرية التعقيد الحسابي. لكنه يُطبّق مبدأً عامًا تُطبّقه كل الطبيعة: الوصول إلى حالة الطاقة الدنيا. الماء يجد أقصر مسار للجاذبية، الفقاعة تأخذ شكل الكرة الأقل مساحة لحجمها، وخلية النحل تُشكّل خلاياها السداسية لأنها تستخدم أقل كمية من الشمع لأكبر مساحة تخزين.
الطبيعة لا تُجري حسابات. تتوازن. وهذا التوازن هو ما تُحاكيه خوارزمية مستعمرة النحل: بدلًا من حساب كل الاحتمالات، تتوازن بين الاستغلال والاستكشاف حتى يظهر الحل. الصابون وخلية النحل وابن دُريد، الثلاثة يرفضون الحساب ويختارون التوازن.
ابن دُريد: اللغوي الذي فاق الرياضيين بألف سنة
في عام ٢٢٣ هجرية، وُلد في البصرة رجلٌ سيُصبح من أعظم علماء اللغة العربية: محمد بن الحسن بن دُريد الأزدي١٢. كتابه "جمهرة اللغة" ما زال مرجعًا حيًا في فقه اللغة. لكنه أيضًا، في وقت ما بين مجالسه ودواوينه، أخذ مسألة الحصان الشطرنجية التي ستُصنَّف بعد ألف سنة على أنها NP-Hard، وخلّدها في قصيدة مديح.
مفتاح الشيفرة: النظام العربي القديم لتسمية المربعات
الأعمدة الثمانية أفقيًا: أ، ب، ج، د، هـ، و، ز، ح. الصفوف الثمانية عموديًا: ء، ك، ل، م، ق، ر، س، ت. كل مربع له اسم من حرفين، الأول يُحدد العمود والثاني الصف.
استكشف القصيدة: بيتًا بيتًا على الرقعة
اضغط "التالي" لتتنقل بين الأبيات. كل بيت يبدأ بحرفين يُحددان مربعًا على الرقعة. شاهد الحصان يتحرك وفق القصيدة.
ثلاث طبقات في نص واحد
الطبقة الأولى: القارئ العادي يسمع أرجوزة مديح بليغة برفيع الأوصاف وصحيح الأوزان. الممدوح مهيب كريم شجاع. القصيدة كاملة بذاتها.
الطبقة الثانية: من يعرف نظام تسمية المربعات يرى الإحداثيات. البيت الأول يُعطي المربع الأول، الثاني الثاني، حتى البيت الرابع والستين.
الطبقة الثالثة: من يتابع الإحداثيات على الرقعة يرى الحصان يمشي، حركة بعد حركة وفق قواعد الشطرنج بالضبط، حتى يُتمّ الزيارة الكاملة دون تكرار.
حين تحمل اللغة معلومتين: من القصيدة إلى الكود الشعري
ما فعله ابن دُريد، أي حمل اللغة لمعلومتين في آنٍ واحد، ليس فريدًا تاريخيًا. الفكرة تظهر في أماكن غير متوقعة من تاريخ البشرية وتاريخ الحوسبة.
في ثقافة البرمجة الحديثة، توجد فئة من لغات البرمجة تُسمى Esoteric Programming Languages١٣، وهي لغات مُصمَّمة كتحدٍّ فني أو تجربة فنية لا للاستخدام العملي. وأبرز مثال هو لغة Shakespeare١٤ التي تكتب فيها الكود بالكامل على شكل مسرحية شكسبيرية مقبولة النحو: المتغيرات أسماء شخصيات شكسبير، والعمليات الحسابية حوارات بينهم، والشرطيات مشاهد درامية. نص مقبول أدبيًا من طبقة واحدة، كود تنفيذي من الطبقة الأخرى.
مثال آخر: لغة Piet١٥ تكتب فيها البرامج كصور بكسلية ملوّنة حيث تغيير الألوان يُحدّد العمليات. اللوحة المجردة فنيًا والكود التنفيذي هما الشيء نفسه.
والأغرب: Brainfuck١٦ التي تكتب فيها برامج كاملة بثمانية رموز فقط (+ - . , [ ] < >) وهي Turing-complete أي قادرة نظريًا على حل أي مسألة قابلة للحل. القصيدة الشطرنجية لابن دُريد تقف في هذا المكان المدهش: لغة طبيعية كاملة البلاغة، وكود رياضي كامل الدقة.
والصلة مع ابن دُريد ليست مجرد تشبيه بل تُشير إلى مبدأ أعمق: البنية الصورية؟ يمكن أن تحمل محتوىً مختلفًا تمامًا عن المحتوى الظاهر. الوزن العروضي قيد، لكن حين يُقبل هذا القيد كجزء من المسألة لا قيدًا عليها، يصبح أداة لا عائقًا. وهذا بالضبط ما تفعله لغات البرمجة الباطنية: تتحدى المبرمج أن يجد حلًا صالحًا في اثنين من الأنظمة في نفس الوقت.
كل هذه الأشكال (القصيدة الشطرنجية، ولغات البرمجة الباطنية، ورقصة النحل، وغشاء الصابون) تقول الشيء نفسه: المعلومة ليست مقيّدة بشكل واحد. المسألة لا تُحدّد وعاءها. وأجمل الحلول هي التي تجد شكلًا يحمل أكثر مما يُظهر.
هذا ما يُسمّى بالفن
نحن في نهاية رحلة عبرنا فيها ألف سنة وثلاث قارات. من البصرة العباسية إلى دبلن الفيكتورية إلى المختبرات التركية. من قصيدة تُحفظ في الصدور إلى خوارزمية تعمل في الحاسوب إلى سؤال رياضي ما زال بلا إجابة.
المسألة واحدة. الأربعة والستون مربعًا والحصان الذي يجب أن يزورها جميعًا دون تكرار. وما من طريق مختصر، لا في ١٢٠ هجرية ولا في ٢٠٠٥ ميلادية ولا في مختبر هاملتون عام ١٨٥٦.
| وجه المقارنة | قصيدة ابن دُريد | خوارزمية ABC |
|---|---|---|
| الوعاء | أرجوزة رباعية في المديح | مستعمرة رقمية من النحل |
| المصدر | عقل فرد واحد + قيود الشعر | سلوك جماعي مُستوحى من الطبيعة |
| طريقة الحل | الحل مُشفَّر في أوائل الأبيات | الحل يظهر من تعاون الوكلاء |
| التوازن | أدب + رياضيات في نص واحد | استغلال + استكشاف في دورة واحدة |
| ما يرفضانه | البحث العشوائي بلا ذكاء، أي القوة الغاشمة | |
| ما يجمعهما | الشكل يُنشئ الحل ولا يُزيّنه | |
المفاهيم والخوارزميات الرئيسية
المسألة: هل يستطيع الحصان زيارة كل مربعات الرقعة (٦٤) مرة واحدة بالضبط؟
لماذا صعبة: عدد المسارات المحتملة أكبر من عدد ذرات الكون. لا توجد قاعدة بسيطة تضمن الحل كما في مسألة أويلر.
التصنيف: NP-Hard. لا يُعرف حل في زمن متعدد الحدود.
الفكرة: في كل خطوة، انتقل للمربع الذي له أقل عدد من الحركات المتاحة بعده.
لماذا تعمل: المربعات الضيقة (الزوايا والأطراف) تُعزل بسرعة إذا لم تُزَر مبكرًا. القاعدة تُعالج هذا تلقائيًا.
الحدود: ليست مضمونة ١٠٠٪، لكنها تنجح في الغالبية العظمى على رقعة ٨×٨.
P: مسائل يمكن حلها بسرعة (زمن متعدد الحدود). مثال: ترتيب قائمة أرقام.
NP: مسائل يمكن التحقق من حلها بسرعة، لكن إيجاد الحل قد يستغرق زمنًا هائلًا. مثال: جولة الحصان.
السؤال: هل كل مسألة يمكن التحقق من حلها بسرعة يمكن أيضًا حلها بسرعة؟ (P = NP?). جائزة مليون دولار لمن يجيب.
الفكرة: محاكاة ثلاثة أدوار من سلوك النحل لحل مسائل التحسين.
العاملة (Employed): تملك حلًا وتُحسّنه محليًا. المتفرجة (Onlooker): تختار أفضل الحلول وتُضاعف الجهد عليها. الكاشفة (Scout): تتخلص من الحلول الراكدة وتبدأ من الصفر.
القوة: التوازن بين الاستغلال (تعميق ما نعرفه) والاستكشاف (اكتشاف ما لا نعرفه). هذا التوازن يمنع الخوارزمية من التجمد في حل محلي.
الفكرة: الطبيعة تحل مسائل تحسين بلا حساب. غشاء الصابون يتقلص تلقائيًا لأقل مساحة ممكنة بفعل التوتر السطحي.
التطبيق: غرز مسامير (مدن) في لوح وغمره في صابون ينتج تقريبًا أقصر شبكة تربطها.
الفرق عن TSP: الصابون يجد أقصر شبكة (شجرة)، بينما البائع المتجول يحتاج حلقة مغلقة تمر بالجميع.
الفكرة: ٦٤ بيتًا من الشعر، كل بيت يبدأ بحرفين يُحددان مربعًا على رقعة الشطرنج. الحروف مجتمعة ترسم جولة حصان كاملة.
القيود المتزامنة: كل بيت يجب أن يكون صحيح الوزن العروضي، بليغ المعنى، ويبدأ بالحرفين الصحيحين للمربع التالي في الجولة.
الأهمية: حل لمسألة ستُصنّف بعد ألف سنة على أنها NP-Hard، مشفّر داخل قصيدة مديح.
معجم المصطلحات
| بالعربية | بالإنجليزية | المعنى باختصار |
|---|---|---|
| جولة الحصان | Knight's Tour | مسار يزور فيه الحصان كل مربعات الرقعة مرة واحدة |
| هيوريستيك | Heuristic | قاعدة إرشادية تعطي حلًا جيدًا دون ضمان المثالية |
| البحث الشامل / القوة الغاشمة | Brute Force | تجربة كل الاحتمالات واحدًا تلو الآخر |
| المسألة الهاملتونية | Hamiltonian Path | مسار يمر بكل رؤوس المخطط مرة واحدة بالضبط |
| متعدد الحدود غير الحتمي | NP (Nondeterministic Polynomial) | مسائل يمكن التحقق من حلها في زمن معقول |
| مكتملة الصعوبة | NP-Complete | أصعب المسائل في NP. حل واحدة يعني حل جميعها |
| صعبة جوهريًا | NP-Hard | مسائل على الأقل بصعوبة NP-Complete، قد تكون أصعب |
| آلة تورنغ | Turing Machine | نموذج نظري للحوسبة يُحدّد ما يمكن حسابه وما لا يمكن |
| البائع المتجول | TSP (Travelling Salesman) | إيجاد أقصر مسار يزور مجموعة مدن ويعود للبداية |
| خوارزمية مستعمرة النحل | ABC (Artificial Bee Colony) | خوارزمية تحسين تحاكي أدوار النحل الثلاثة |
| الاستغلال المحلي | Local Search / Exploitation | تحسين الحل الحالي بتعديلات صغيرة متدرجة |
| الضغط الانتقائي | Selection Pressure | توجيه الجهد نحو الحلول الواعدة على حساب الضعيفة |
| التخلص من الجمود | Diversification | توليد حلول جديدة كليًا للهروب من المناطق المحلية |
| الذكاء الجمعي | Swarm Intelligence | سلوك ذكي ناشئ من تعاون أفراد بسيطين بلا قائد |
| التوتر السطحي | Surface Tension | قوة تجعل سطح السائل يتقلص لأقل مساحة ممكنة |
| مسألة شتاينر | Steiner Tree | إيجاد أقصر شبكة تربط مجموعة نقاط |
| البنية الصورية | Formal Structure | الشكل المجرد المستقل عن المحتوى، كالوزن العروضي أو البنية المنطقية |
| لغات برمجة باطنية | Esoteric Programming Languages | لغات مصممة كتحديات فنية لا للاستخدام العملي |