مقالة في الفكر والتاريخ والخوارزميات

حين يلتقي الفن بالخوارزمية

من خلية النحل إلى قصيدة ابن دُريد، رحلة عبر ألف سنة من العبقرية البشرية في مواجهة مسألة واحدة

إ
إبراهيم أبوالعنين
١٥ دقيقة قراءة ٢٧ مارس ٢٠٢٦
رياضيات تاريخ فن خوارزميات طبيعة

في عام ١٨٥٦ ميلادية، جلس عالمٌ إيرلندي اسمه ويليام روان هاملتون وراء مكتبه في دبلن، يُحدّق في مضلّع ثلاثي الأبعاد يُعرف بـ"الدوديكاهيدرون". وضع على كل واحدة من زواياه الثلاثين اسمَ مدينة من أشهر مدن العالم، ثم سأل صديقه: هل تستطيع أن تُخطّط رحلة تزور فيها كل مدينة مرة واحدة بالضبط وتعود إلى نقطة البداية؟

لندنباريسالقاهرة بغداددمشقروما فاسأثيناقرطبة تونس
الدوديكاهيدرون
مضلّع ذو ١٢ وجهًا خماسيًا و٢٠ رأسًا و٣٠ حافة.
وضع هاملتون على كل رأس اسم مدينة وسأل: هل يمكن زيارتها جميعًا مرة واحدة والعودة؟
الخط الأخضر المتقطع = مسار هاملتوني محتمل

باع هاملتون لعبته بخمسة وعشرين جنيهًا إسترلينيًا. لكن السؤال الكامن فيها تحوّل في قرنين إلى واحدة من أعمق مسائل علوم الحاسوب. وهذه المقالة رحلة عبر ألف سنة من الإجابات: النحلة التي تحل كل يوم ما يعجز عنه الحاسوب، وخوارزمية تعلّمت منها، وعالم لغة عربية أخفى حلًا رياضيًا معقدًا داخل قصيدة مديح. وبينهما جسر صابون يحل بالفيزياء ما تعجز عنه الحسابات، ولغات برمجة تكتب الكود داخل الشعر.

والمفارقة أن هذه المسألة التي يعجز عنها أسرع حاسوب في العالم، حلّها شاعر عربي في القرن الثالث الهجري دون أن يدري أنه يحلّها. أربع وستون بيتًا من الشعر، كل بيت يبدأ بحرفين يُحدّدان مربعًا على رقعة الشطرنج، والحروف مجتمعة ترسم جولة حصان كاملة. قصيدة تعمل على مستويين في آن: مديح يُقرأ بصوت عالٍ، وخوارزمية مشفّرة بين السطور.


الفصل الأول

مسألة الحصان: أربعة وستون مربعًا ولا عودة

رقعة الشطرنج ثمانية أعمدة في ثمانية صفوف. أربعة وستون مربعًا. ضع حصانًا في أي مربع تشاء، تلك القطعة التي تقفز على شكل حرف L: مربعان في اتجاه ثم مربع في الاتجاه العمودي. السؤال بسيط في صياغته: هل يمكن للحصان أن يزور كل مربع من هذه المربعات مرة واحدة بالضبط دون أن يعود لأي منها؟١

64
مربعًا على الرقعة
63
حركة لإكمال الجولة
8
حركات من المركز
2
حركات من الزاوية
حركات الحصان الممكنة من مواضع مختلفة من المركز: ٨ حركات ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ آمن، يمكن الوصول إليه لاحقًا من الجانب: ٤ حركات خارج نطاق ١ ٢ ٣ ٤ خيارات أقل، خطر أكبر من الزاوية: ٢ حركات فقط ١ ٢ الأخطر، يُعزل بسرعة
كلما اقتربت من الأطراف قلّت الخيارات. الزاوية ٢ حركات فقط، وهذا التفاوت هو قلب صعوبة المسألة

لماذا تنكسر الجولة؟

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

جرّب بنفسك: حرّك الحصان يدويًا
اضغط على أي مربع للبدء

ما الحل؟ الهيوريستيك؟: بوصلة بدل الخريطة

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

وارنسدورف ١٨٢٣: قاعدة واحدة تُنقذ الحصان

قبل أن يُولد علم الحاسوب بقرن كامل، وجد الرياضي الألماني هـ.ك. وارنسدورف٢ هيوريستيك بسيط ولكنه فعّال بشكل مذهل. الفكرة في جملة واحدة: في كل خطوة، انتقل إلى المربع الذي له أقل عدد من الحركات المتاحة بعده. بمعنى آخر: زُر الأماكن الأكثر ضيقًا أولًا، قبل أن تنعزل ويُصبح الوصول إليها مستحيلًا.

المنطق وراءها بديهي حين تفكر فيه: المربع الذي لا يملك إلا خيارين سيُصبح معزولًا بسرعة إذا لم تزره الآن. المربع الذي يملك ستة خيارات يمكن الوصول إليه لاحقًا من عدة مسارات. القاعدة تُعالج بالضبط السبب الذي يجعل الحصان يتوقف: الأطراف والزوايا التي لا تُزار في الوقت المناسب.

كيف يختار وارنسدورف: يُفضّل المربع الأقل خيارات 3 3 2 4 ← يُختار قائمة المرشحين المربع الحركات القادمة أ-١ 3 هـ-١ 3 أ-٣ 2 هـ-٣ 4 القاعدة: اختَر الأقل دائمًا زُر الأماكن المقيّدة قبل أن تنعزل
وارنسدورف يُفاضل بين المرشحين بحسب حريتهم المستقبلية، فالأقل حرية يأتي أولًا قبل أن يُقطع عنه الطريق

القاعدة إرشادية لا تضمن النجاح في ١٠٠٪ من الحالات، لكنها تحل المسألة على رقعة ٨×٨ في الغالبية العظمى منها، وبسرعة مذهلة مقارنةً بالبحث الاعتباطي. وهذا بالضبط ما ستستخدمه خوارزمية مستعمرة النحل لتوجيه كل خطوة.

كم محاولة يحتاج كل أسلوب للوصول لجولة كاملة؟
عشوائي (قوة غاشمة)
٠
محاولة
أفضل: ٠/٦٤
وارنسدورف (هيوريستيك)
٠
محاولة
أفضل: ٠/٦٤

جرّب بنفسك: محاكاة جولة الحصان

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

اضغط على أي مربع لبدء الجولة

الفصل الثاني

هاملتون وNP: حين تُخمّن الآلة الحل

ويليام روان هاملتون (١٨٠٥–١٨٦٥) كان من أعجب عقول القرن التاسع عشر: تعلّم خمس لغات حية وثلاث لغات قديمة قبل التاسعة، ووجد خطأ في كتاب لابلاس وهو في الثالثة عشرة، وعُيّن أستاذًا جامعيًا وفلكيًا ملكيًا لأيرلندا قبل أن يُتمّ درجته. وفي ١٨٤٣، أثناء نزهة مع زوجته، نقش بسكينه على حجر جسر برومباريدج٣ المعادلة:

i² = j² = k² = ijk = −1

كانت تلك الكواترنيونات، نظام أعداد رباعي الأبعاد يُستخدم اليوم في كل لعبة فيديو ومركبة فضائية لحساب الدوران. لكن لعبته الشطرنجية عام ١٨٥٦ (التي باعها بخسارة) خلّفت سؤالًا أعمق بكثير.

المسألة الهاملتونية: كلمتان تُخفيان جبلًا

المسألة الهاملتونية تسأل: هل يوجد في مخطط رياضي معيّن مسارٌ يمر بكل رأس من رؤوسه مرة واحدة بالضبط؟ في لغة الرياضيات الحديثة: المخطط مجموعة من النقاط (رؤوس) تصلها خطوط (حواف). مسألة الحصان هي مسألة هاملتونية، فالرؤوس هي مربعات الرقعة، والحواف هي حركات الحصان الممكنة.

الفرق الجوهري مع مسألة أويلر

قبل هاملتون بقرن، حلّ أويلر مسألة جسور كونيغسبرغ٤: هل يمكن عبور كل الجسور مرة واحدة؟ الحل شرط بسيط: عدد الرؤوس ذات الدرجة الفردية يجب أن يكون صفرًا أو اثنين. قاعدة واحدة تُجيب في لحظة. المسألة الهاملتونية تبدو أختها، لكن لا يوجد لها قاعدة بسيطة مماثلة. الشبه في الصياغة يُخفي هوّة في الصعوبة.

NP: الآلة التي تُخمّن

في عام ١٩٧١، أثبت الباحث ستيفن كوك٥ أن المسألة الهاملتونية تنتمي إلى فئة تُسمى NP-Complete؟. لفهم ما يعنيه هذا التصنيف بدقة، علينا أن نعود إلى تعريف NP نفسه، وهو أكثر دقةً مما يظن أغلب الناس.

NP تعني Nondeterministic Polynomial، أي متعدد الحدود غير الحتمي؟. الكلمة "غير حتمي" هي المفتاح. لفهمها، تخيّل آلتين:

الآلة الحتمية (DTM) تُشبه إنسانًا يحل لغزًا: تجرّب مسارًا واحدًا، إذا فشل تعود وتجرّب آخر. خطوة واحدة في كل مرة، مسار واحد في كل مرة.

الآلة غير الحتمية (NTM) تستطيع عند كل نقطة قرار أن تُخمّن الإجابة الصحيحة مباشرةً، كأنها تتفرع إلى جميع الاحتمالات في آنٍ واحد وتختار الصحيح بسحر. أو بتعبير آخر: تستطيع "تخمين" أي مسار من مسارات الحل بشكل صحيح دائمًا.

تعريف NP الدقيق

المسائل التي يمكن لآلة تورنغ غير حتمية (NTM) أن تحلّها في زمن متعدد الحدود. عمليًا هذا يُكافئ: المسائل التي يمكن التحقق من حلّها في زمن متعدد الحدود، لأن "التحقق" هو ما يفعله الفرع المحظوظ في الآلة غير الحتمية. فإذا أُعطيتَ جولة كاملة للحصان، تتحقق منها في ثوانٍ، وبذلك تكون المسألة في NP.

الآلة الحتمية مقابل غير الحتمية آلة حتمية (DTM) ✗ فشل تعود ✓ حل! مسار واحد في كل مرة تعود عند الفشل آلة غير حتمية (NTM) ✓ تُخمّن الصح! تتفرع لكل الاحتمالات أو تُخمّن الصحيح مباشرةً
الآلة غير الحتمية "تُخمّن" الإجابة الصحيحة، وهو مفهوم نظري يُعبّر عن قدرة التفرع اللا-محدود، لا آلة فعلية

تصنيف المسائل: من السهل إلى المستحيل عمليًا

خريطة تصنيف الصعوبة الحسابية NP-Hard NP P ترتيب، بحث مسارات أقصر NP-Complete (NP ∩ NP-Hard) مسألة الحصان مسألة التجوال مسألة التوقف (Halting Problem) غير قابلة للحل أصلًا هل P = NP؟ السؤال المليوني بلا إجابة حتى الآن
P (سهلة) داخل NP (قابلة للتحقق) داخل NP-Hard (صعبة). مسألة الحصان في التقاطع: NP-Complete.
٣٬٦٢٨٬٨٠٠
مسار محتمل لـ١٠ مدن
١٠١٨
مسار لـ٢٠ مدينة
١٩٧١
إثبات كوك لـ NP-Complete
١٬٠٠٠٬٠٠٠$
جائزة كلاي لحل P=NP
لماذا هذا عملي وليس فلسفيًا

كل أنظمة التشفير في العالم (المصارف، الاتصالات، الشبكات) تقوم على افتراض أن P ≠ NP أي أن بعض المسائل صعبة بطبيعتها. إذا أثبت أحد أن P = NP، انهار هذا الافتراض، وأصبح فك أي تشفير ممكنًا في ثوانٍ. المسألة المليونية الدولار لكلاي٦ ليست ترفًا أكاديميًا.

وحين تفهم هذا، تدرك لماذا ما فعله ابن دُريد وما تفعله خوارزمية مستعمرة النحل هو الاستجابة الصحيحة: لا تحارب الصعوبة الجوهرية، بل تتجاوزها بالذكاء والتوجيه.


الفصل الثالث

في قلب الخلية: النحل يحل ما يعجز عنه الحاسوب

الطبيعة لا تعرف الشيفرة ولا نظرية التعقيد الحسابي. لكنها تحل كل يوم مسائل تحسين مذهلة بكفاءة تُخجل أفضل خوارزمياتنا. خلية النحل مثال بارز: تُخصّص آلاف الجامعات على حقول أزهار متناثرة في دائرة كيلومترات، تُكيّف التوزيع مع تغيّر الجودة، وتُحافظ على التوازن بين الاستغلال والاستكشاف. كل هذا دون قائد، دون خطة مركزية، دون إشارات رقمية.

ثلاثة أدوار تصنع الخلية

النحلة العاملة
تملك مصدرًا، تستغله وتُحسّنه
Employed Bee
في الخلية
تملك حقل أزهار محدد وتذهب إليه مباشرةً
تبحث عن أزهار أفضل في نفس المنطقة
تعود للخلية وترقص إذا الرحيق جيد
في الخوارزمية
تملك حلًا مرشحًا (جولة جزئية)
تُعدّله بتقطيع وإعادة مد
تحتفظ بالأفضل وتزيد العداد عند الفشل
النحلة المتفرجة
تراقب الرقصات وتختار بحسب الجودة
Onlooker Bee
في الخلية
تنتظر في الخلية وتراقب "رقصة الاهتزاز"
رقصة أطول = رحيق أبعد وأجود = تجذب أكثر
تذهب للمصدر الذي اختارته باحتمالية
في الخوارزمية
تختار حلًا بنسبة تتناسب مع جودته
P(حل i) = طول_i / Σ الأطوال
تُطبّق نفس التعديل وتُضاعف جهد الواعد
النحلة الكاشفة
آلية الهروب من الجمود وتوليد التنوع
Scout Bee
في الخلية
حقلها نضب أو لم تجد شيئًا
تطير عشوائيًا بلا هدف محدد
تنضم للعاملات إن وجدت شيئًا جديدًا
في الخوارزمية
عداد الفشل تجاوز الحد (١٠ مرات)
تُلقي الحل القديم كليًا
تُنشئ حلًا عشوائيًا جديدًا من الصفر

رقصة الاهتزاز: معجزة التواصل الطبيعي

اكتشف عالم الأحياء النمساوي كارل فون فريش٧ عام ١٩٧٣ (وحاز نوبل عليه) أن النحلات العائدة بالرحيق تُرسّخ بياناتٍ ثلاثةً في رقصتها: مدة الاهتزاز تُعبّر عن المسافة، والزاوية عن الاتجاه بالنسبة للشمس، وشدة الرقصة عن جودة الرحيق. نحلة تُشاهد الرقصة تملك كل ما تحتاجه للوصول لحقل لم تزره من قبل. لا كلمات، لا خرائط، فقط حركة جسد.

رقصة الاهتزاز: ثلاث معلومات في حركة واحدة الزاوية = الاتجاه بالنسبة للشمس مسار الاهتزاز مدة الاهتزاز ١ ثانية ≈ ١ كيلومتر أطول = أبعد زاوية الرقصة بالنسبة للجاذبية = اتجاه الشمس شدة الاهتزاز أكثر حماسةً = رحيق أجود
ثلاث معلومات في حركة جسد واحدة: المسافة في الزمن، الاتجاه في الزاوية، الجودة في الشدة.
﴿وَأَوْحَىٰ رَبُّكَ إِلَى النَّحْلِ أَنِ اتَّخِذِي مِنَ الْجِبَالِ بُيُوتًا وَمِنَ الشَّجَرِ وَمِمَّا يَعْرِشُونَ ۞ ثُمَّ كُلِي مِن كُلِّ الثَّمَرَاتِ فَاسْلُكِي سُبُلَ رَبِّكِ ذُلُلًا
سورة النحل، الآيتان ٦٨-٦٩

شاهد النحل وهو يبحث عن الرحيق

في هذا الحقل أزهار بجودة مختلفة (الرقم = جودة الرحيق). شاهد كيف تكتشف النحلات أفضل الأزهار بالتعاون: الجامعة تطير لزهرتها وتعود، ترقص لتُخبر الباقيات، المتفرجة تختار أفضل راقصة وتتبعها، والكاشفة تستكشف المجهول حين ينضب مصدر.

جامعة متفرجة كاشفة

التوازن الذهبي: الاستغلال والاستكشاف

الأعمق من آلية التواصل هو توزيع الجهد: كم نحلة تعمل على مصادر معروفة وكم تستكشف جديدة؟ استغلال بلا استكشاف يعني الوقوع في الأفضل المحلي. استكشاف بلا استغلال يعني الهدر. النحل تملك هذا التوازن بفطرتها، والخوارزمية تُقلّده تمامًا.

توزيع النحلات على مصادر الرحيق بحسب الجودة مصدر غني ٦٠٪ ١٢ نحلة رقصة طويلة حماسية تجذب المزيد تلقائيًا ← استغلال: تعظيم مصدر متوسط ٢٥٪ ٥ نحلات رقصة متوسطة جهد منسجم ← توازن كاشفات ١٥٪ ٣ نحلات تطير عشوائيًا تكتشف الجديد ← استكشاف ٦٠٪ ٢٥٪ ١٥٪ التوازن الذهبي: استغلال + توازن + استكشاف = نظام لا يتوقف ولا يتجمد التوزيع ليس ثابتًا. حين يتراجع مصدر، تتحول الموارد تلقائيًا
النحلة لا تحسب. النحلة توازن. وهذا التوازن بين استغلال ما تعرفه واستكشاف ما لا تعرفه هو بالضبط ما تحاول الخوارزمية أن تُحاكيه.Swarm Intelligence: المبدأ المركزي في الذكاء الجمعي

الفصل الرابع

خوارزمية مستعمرة النحل؟٨: ترجمة الحياة إلى كود

في عام ٢٠٠٥، ترجم الباحث التركي درويش قرابوغا٩ هذا السلوك إلى خوارزمية تحسين عامة. ليس تقليدًا أعمى، بل نقلًا لمبادئ ثلاثة: الاستغلال المحلي؟، والضغط الانتقائي؟، والتخلص من الجمود؟.

أين تُستخدم الخوارزمية اليوم؟

قبل أن نرى كيف تعمل على مسألة الحصان، من المهم أن نعرف أن ABC ليست خوارزمية أكاديمية فحسب. تُستخدم في:

تصميم شبكات الاتصالات: توزيع الأبراج على مدينة بأقل تكلفة وأفضل تغطية. كل "نحلة" تُجرّب توزيعًا مختلفًا وتُقيّمه.

جدولة المصانع: ترتيب مئات المهام على عشرات الآلات بأقل وقت إنتاج. المسألة NP-Hard بالضبط كمسألة الحصان.

تدريب الشبكات العصبية: ضبط ملايين المعاملات في نماذج التعلم العميق. كل "جولة" هنا ليست مسارًا على رقعة بل مجموعة أوزان.

تصميم الدوائر الإلكترونية: توزيع المكوّنات على شريحة بأقل طول أسلاك وأقل تداخل حراري.

المبدأ واحد في كل هذه التطبيقات: ابدأ بحلول عشوائية، حسّنها بالتعاون، تخلّص من الراكد. ونحن هنا سنُطبّقها على مسألة الحصان لأنها أوضح مثال بصري لمشاهدة الخوارزمية وهي تعمل.

كيف تعمل الخوارزمية: خمس خطوات

١
تهيئة المستعمرة
إنشاء ٢٠ حلًا عشوائيًا. في مسألة الحصان: ٢٠ جولة قصيرة تزور كل منها ١٥-٢٥ مربعًا فقط. لا هيوريستيك في البداية، عشوائية حقيقية.
٢
طور النحلات العاملة (كل ٢٠ نحلة)
كل نحلة تأخذ جولتها، تقطعها عند نقطة عشوائية، وتُعيد مدّها باستخدام وارنسدورف (٢٠٪ توجيه، ٨٠٪ عشوائية للحفاظ على التنوع). إن نتجت جولة أطول، احتفظ بها. وإن كانت أقصر، ارفضها وزِد عداد الفشل.
٣
طور النحلات المتفرجة (٢٠ اختيار)
كل متفرجة تختار جولة باحتمالية تتناسب مع طولها: P(i) = طول_i / مجموع الأطوال. الجولة ذات ٥٠ مربعًا تُجذب متفرجات أكثر من جولة ٣٠. نفس إجراء التعديل والرفض.
٤
طور النحلات الكاشفة
أي جولة يصل عداد فشلها للحد (١٠) تُلقى كليًا. تُستبدل بجولة عشوائية جديدة من نقطة بداية مختلفة. هذا يمنع تجمّد المستعمرة حول أفضل ما وجدته دون الوصول للمثالي.
٥
تكرار ← حفظ الأفضل عبر الدورات
الجولة الأطول تُحفظ في كل دورة. التكرار يستمر حتى الوصول لـ ٦٤ مربعًا أو استنفاد الدورات. في ١٠٠-٢٠٠ دورة عادةً تُجد الجولة الكاملة.
ما يعنيه كل دور في عالم التحسين

الأدوار الثلاثة ليست مجرد محاكاة للطبيعة. هي حل لمعضلة جوهرية تواجه كل خوارزمية تحسين: كيف توازن بين تعميق البحث فيما تعرفه وتوسيع البحث فيما لا تعرفه.

العاملة = الاستغلال المحلي (Local Search): لديك حل جيد، حسّنه. غيّر جزءًا صغيرًا وقارن. هذا ما يفعله أي مهندس يُعدّل تصميمًا قائمًا: لا يبدأ من الصفر، بل يُحسّن ما بين يديه. المشكلة: قد تعلق في "قمة محلية" ليست القمة الحقيقية.

المتفرجة = الضغط الانتقائي (Selection Pressure): ليس كل الحلول تستحق نفس الجهد. المتفرجة تُوجّه الطاقة نحو الحلول الواعدة. بدونها، تضيع الخوارزمية وقتًا متساويًا على حلول ممتازة وحلول رديئة. هذا مبدأ داروني بامتياز: البقاء للأصلح.

الكاشفة = الهروب من الجمود (Diversification): حين يفشل حل مرارًا، لا فائدة من ترقيعه. ألقِه وابدأ من مكان جديد تمامًا. بدون الكاشفة، تتجمع كل الحلول حول منطقة واحدة ولا تكتشف أبدًا أن الحل الأفضل في مكان آخر كليًا.

في حياتك اليومية: نفس الأدوار

العاملة = تحسين وظيفتك الحالية: تتعلم مهارة جديدة، تبني علاقات أفضل، تطلب ترقية. تُحسّن ما بين يديك دون المغامرة بتغيير جذري.

المتفرجة = الاستماع للتجارب: تسأل الأصدقاء عن وظائفهم، تقرأ عن مسارات مهنية ناجحة. الشخص الأسعد والأنجح يجذب اهتمامك أكثر. لا تقلّد الجميع بالتساوي.

الكاشفة = تغيير المسار كليًا: بعد سنوات من المحاولة بلا تقدم، تترك المجال وتبدأ شيئًا مختلفًا تمامًا. المخاطرة عالية لكن بدونها تبقى عالقًا.

التوازن بين الثلاثة هو ما يصنع حياة مهنية ناجحة، تمامًا كما يصنع خوارزمية ناجحة.

مثال عملي: جدولة مخبز

تخيّل مخبزًا فيه ٣ أفران و٥ طلبات: كعك (٣ دقائق)، خبز (٦)، فطائر (٨)، بسكويت (٥)، كرواسون (٢). الهدف: توزيعها على الأفران بحيث ينتهي الجميع في أقصر وقت. كل شريط ملوّن = طلب، وطوله = وقته. الرقم على اليسار = إجمالي وقت الفرن. أقصر وقت ممكن = ٨ دقائق (مجموع الأوقات ٢٤ ÷ ٣ أفران).

كيف تُحسّن النحلات جدول المخبز؟
كعك ٣د خبز ٦د فطائر ٨د بسكويت ٥د كرواسون ٢د | = طلب تم تبديله
التوزيع الحالي (قبل التحسين)
🐝 نحلة ١
🐝 نحلة ٢
🐝 نحلة ٣
أفضل جدول حتى الآن
١. العاملة
تبدّل طلبين بين فرنين. إن تحسّن الوقت تحتفظ، وإلا ترفض.
٢. المتفرجة
تختار أسرع جدول من الثلاثة وتحاول تحسينه مرة أخرى.
٣. الكاشفة
إن فشل جدول ٤ مرات متتالية، يُلغى ويبدأ توزيع عشوائي جديد.
في الواقع: توزيع الحمل على الخوادم (Load Balancing)

خدمة بث فيديو (مثل Netflix أو شاهد) لديها ١٠ خوادم و٥٠٠٠ مستخدم يشاهدون في نفس اللحظة. كل مستخدم يستهلك موارد مختلفة: من يشاهد بدقة 4K يستهلك ضعف من يشاهد بـ 720p. الهدف: توزيع المستخدمين على الخوادم بحيث لا يتعطل أي خادم ولا يبقى آخر فارغًا.

المشكلة: توزيع ٥٠٠٠ مستخدم على ١٠ خوادم له عدد احتمالات أكبر من عدد ذرات الكون. التوزيع العشوائي يُحمّل بعض الخوادم ١٠٠٪ بينما آخرون على ٢٠٪. النتيجة: تقطيع في الفيديو لبعض المستخدمين.

كيف تعمل ABC هنا؟ تمامًا كالمخبز:

• كل "نحلة" = توزيع مختلف للمستخدمين على الخوادم
العاملة تنقل مستخدمًا من خادم مُحمّل لخادم أخف (كتبديل طلب بين فرنين)
المتفرجة تركّز على أفضل توزيع وتُكرر التحسين عليه
الكاشفة تُلغي توزيعًا فاشلًا وتُعيد التوزيع من الصفر

النتيجة: في أقل من ثانية، كل الخوادم تعمل بين ٤٥٪ و٦٥٪ بدلًا من ٢٠٪ و١٠٠٪. لا أحد يشاهد فيديو متقطعًا. وكل هذا يحدث تلقائيًا كل ٣٠ ثانية مع تغيّر عدد المشاهدين.

نفس الأفران والطلبات. فقط بدل الكعك: بيانات. وبدل الأفران: خوادم.

نمو أطول جولة عبر دورات ABC 0 20 40 60 64 0 20 40 60 80 دورة كاشفة 64 مربع ✓ الأسهم الكورالية = نحلات كاشفة تُعيد التنوع
الجولة تنمو تدريجيًا. النحلات الكاشفة تُسبّب تذبذبًا صغيرًا لكنها تمنع الجمود وتسمح بالقفزة الأخيرة للـ٦٤

المخطط الانسيابي الكامل

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

تهيئة المستعمرة حلول عشوائية ابتدائية (٢٠ جولة قصيرة) النحلات العاملة تحسين كل حل بتعديل صغير قطع الجولة وإعادة مدّها أفضل؟ نعم احتفظ بالحل الجديد أعِد عداد الفشل للصفر الجولة الأطول تبقى لا: أبقِ القديم وزِد العداد النحلات المتفرجة تختار بحسب الجودة P(i) = طول_i / مجموع الأطوال احتمالية التحسين الحل الأطول يجذب نحلات أكثر نفس إجراء التعديل والقبول النحلات الكاشفة تتجاوز حد الفشل؟ استكشاف جديد عشوائي حد؟ نعم تخلَّ واستكشف حل عشوائي جديد من الصفر عداد الفشل يعود للصفر لا: ما زال نشطًا حفظ أفضل حل حتى الآن تحديث الجولة الأطول إن وُجدت هل اكتملت الجولة (٦٤ مربعًا)؟ أو استُنفدت الدورات المحددة؟ نعم اكتمل الحل الجولة الكاملة جاهزة لا تكرار الدورة المفتاح النحلات العاملة النحلات المتفرجة النحلات الكاشفة قبول / اكتمال حلقة التكرار
كل دورة تمر بثلاث مراحل: العاملة تُحسّن، المتفرجة تُضاعف الجهد على الواعد، والكاشفة تُجدّد التنوع. الحلقة تتكرر حتى تكتمل الجولة.

محاكاة تفاعلية: شاهد النحل يحل المسألة

هذه محاكاة حقيقية لخوارزمية ABC تعمل على رقعة ٨×٨. كل نحلة تملك جولة تُحسّنها. شاهد كيف تتعاون المستعمرة حتى تكتمل الجولة.

🐝 عاملة 🐝 متفرجة 🐝 كاشفة مربع مزار الحصان
أفضل جولة حتى الآن
اضغط "تهيئة المستعمرة" للبدء
0
الدورة
0
أطول جولة
0
عمليات استكشاف
جولات النحلات (الطول)
سجل الأحداث

الفصل الخامس

الصابون الذي يحل ما يعجز عنه الحاسوب: الفيزياء كخوارزمية

قبل أن نصل إلى ابن دُريد، نقف لحظة عند استعارة جميلة من عالم الفيزياء لأنها تُكمل المشهد وتُوضّح فكرةً أعمق: أن الطبيعة "تحل" مسائل التحسين بطريقة مختلفة جذريًا عن الحساب التقليدي.

تخيّل الإمام البخاري في القرن الثالث الهجري، يريد أن يجمع الأحاديث من عشر مدن: يبدأ من بخارى، يمر بسمرقند ومرو ونيسابور وبغداد والبصرة والكوفة ومكة والمدينة ودمشق، ثم يعود إلى بخارى. يريد أقصر طريق يمر بها جميعًا مرة واحدة بالضبط، فالرحلة شاقة والعمر محدود. هذه هي مسألة البائع المتجوّل (TSP)١٠ بعينها، لكن بدل البضاعة: أسانيد.

تبدو بسيطة؟ لعشر مدن فقط يوجد أكثر من ثلاثة ملايين مسار محتمل. لعشرين مدينة العدد يقفز إلى ما يفوق ستين كوادريليون. ولخمسين مدينة، حتى لو فحص أسرع حاسوب في العالم مليار مسار في الثانية، يحتاج عمرًا أطول من عمر الكون ليجرّبها جميعًا. هي مسألة NP-Hard مثل أختها الهاملتونية بالضبط.

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

غشاء الصابون كآلة حوسبة طبيعية
اضغط على اللوح لوضع المدن (مسامير)، ثم اغمس في الصابون لترى أقصر شبكة ربط
الصابون (أخضر) يجد أقصر شبكة ربط. البائع المتجوّل (ذهبي 🐪) يحتاج حلقة مغلقة تمر بكل مدينة مرة واحدة. جرّب كليهما وقارن!

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

الدرس الأعمق

الطبيعة لا تُجري حسابات. تتوازن. وهذا التوازن هو ما تُحاكيه خوارزمية مستعمرة النحل: بدلًا من حساب كل الاحتمالات، تتوازن بين الاستغلال والاستكشاف حتى يظهر الحل. الصابون وخلية النحل وابن دُريد، الثلاثة يرفضون الحساب ويختارون التوازن.


الفصل السادس

ابن دُريد: اللغوي الذي فاق الرياضيين بألف سنة

في عام ٢٢٣ هجرية، وُلد في البصرة رجلٌ سيُصبح من أعظم علماء اللغة العربية: محمد بن الحسن بن دُريد الأزدي١٢. كتابه "جمهرة اللغة" ما زال مرجعًا حيًا في فقه اللغة. لكنه أيضًا، في وقت ما بين مجالسه ودواوينه، أخذ مسألة الحصان الشطرنجية التي ستُصنَّف بعد ألف سنة على أنها NP-Hard، وخلّدها في قصيدة مديح.

مفتاح الشيفرة: النظام العربي القديم لتسمية المربعات

الأعمدة الثمانية أفقيًا: أ، ب، ج، د، هـ، و، ز، ح. الصفوف الثمانية عموديًا: ء، ك، ل، م، ق، ر، س، ت. كل مربع له اسم من حرفين، الأول يُحدد العمود والثاني الصف.

رقعة الشطرنج بالأحرف العربية أ ب ج د هـ و ز ح ء ك ل م ق ر س ت حَما مُبا حركة حصان تفكيك البيت الأول حَما الحرف الأول: ح = العمود الثامن الحرف الثاني: م = الصف الرابع المربع: ح-م مُبا البيت الثاني: م-ب = الخطوة التالية حركة حصان صحيحة ٦٤ بيت = ٦٤ مربع

استكشف القصيدة: بيتًا بيتًا على الرقعة

اضغط "التالي" لتتنقل بين الأبيات. كل بيت يبدأ بحرفين يُحددان مربعًا على الرقعة. شاهد الحصان يتحرك وفق القصيدة.

البيت ٠/٦٤
ح
ز
و
هـ
د
ج
ب
أ
اضغط "التالي" لبدء استكشاف القصيدة
صوت القراءة: مداك العروس · المخطوط: كتاب الشطرنج

ثلاث طبقات في نص واحد

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

الطبقة الثانية: من يعرف نظام تسمية المربعات يرى الإحداثيات. البيت الأول يُعطي المربع الأول، الثاني الثاني، حتى البيت الرابع والستين.

الطبقة الثالثة: من يتابع الإحداثيات على الرقعة يرى الحصان يمشي، حركة بعد حركة وفق قواعد الشطرنج بالضبط، حتى يُتمّ الزيارة الكاملة دون تكرار.

الصعوبة الحقيقية: ابن دُريد لم يكتب المديح أولًا ثم يُضيف الشيفرة، ولم يجد مسار الحصان أولًا ثم يُلبسه شعرًا. كلاهما يجب أن يكونا صحيحين في آنٍ واحد: كل بيت يبدأ بالحرفين الصحيحين للإحداثي الصحيح للخطوة الصحيحة في المسار، وفي نفس الوقت يكون شعرًا حقيقيًا بوزن صحيح ومعنى مفيد.

ملاحظة جانبية

حين تحمل اللغة معلومتين: من القصيدة إلى الكود الشعري

ما فعله ابن دُريد، أي حمل اللغة لمعلومتين في آنٍ واحد، ليس فريدًا تاريخيًا. الفكرة تظهر في أماكن غير متوقعة من تاريخ البشرية وتاريخ الحوسبة.

ملاحظة: لغات البرمجة الباطنية

في ثقافة البرمجة الحديثة، توجد فئة من لغات البرمجة تُسمى Esoteric Programming Languages١٣، وهي لغات مُصمَّمة كتحدٍّ فني أو تجربة فنية لا للاستخدام العملي. وأبرز مثال هو لغة Shakespeare١٤ التي تكتب فيها الكود بالكامل على شكل مسرحية شكسبيرية مقبولة النحو: المتغيرات أسماء شخصيات شكسبير، والعمليات الحسابية حوارات بينهم، والشرطيات مشاهد درامية. نص مقبول أدبيًا من طبقة واحدة، كود تنفيذي من الطبقة الأخرى.

مثال آخر: لغة Piet١٥ تكتب فيها البرامج كصور بكسلية ملوّنة حيث تغيير الألوان يُحدّد العمليات. اللوحة المجردة فنيًا والكود التنفيذي هما الشيء نفسه.

والأغرب: Brainfuck١٦ التي تكتب فيها برامج كاملة بثمانية رموز فقط (+ - . , [ ] < >) وهي Turing-complete أي قادرة نظريًا على حل أي مسألة قابلة للحل. القصيدة الشطرنجية لابن دُريد تقف في هذا المكان المدهش: لغة طبيعية كاملة البلاغة، وكود رياضي كامل الدقة.

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

الاستيعاظ المشترك

كل هذه الأشكال (القصيدة الشطرنجية، ولغات البرمجة الباطنية، ورقصة النحل، وغشاء الصابون) تقول الشيء نفسه: المعلومة ليست مقيّدة بشكل واحد. المسألة لا تُحدّد وعاءها. وأجمل الحلول هي التي تجد شكلًا يحمل أكثر مما يُظهر.


الخاتمة

هذا ما يُسمّى بالفن

نحن في نهاية رحلة عبرنا فيها ألف سنة وثلاث قارات. من البصرة العباسية إلى دبلن الفيكتورية إلى المختبرات التركية. من قصيدة تُحفظ في الصدور إلى خوارزمية تعمل في الحاسوب إلى سؤال رياضي ما زال بلا إجابة.

المسألة واحدة. الأربعة والستون مربعًا والحصان الذي يجب أن يزورها جميعًا دون تكرار. وما من طريق مختصر، لا في ١٢٠ هجرية ولا في ٢٠٠٥ ميلادية ولا في مختبر هاملتون عام ١٨٥٦.

وجه المقارنةقصيدة ابن دُريدخوارزمية ABC
الوعاءأرجوزة رباعية في المديحمستعمرة رقمية من النحل
المصدرعقل فرد واحد + قيود الشعرسلوك جماعي مُستوحى من الطبيعة
طريقة الحلالحل مُشفَّر في أوائل الأبياتالحل يظهر من تعاون الوكلاء
التوازنأدب + رياضيات في نص واحداستغلال + استكشاف في دورة واحدة
ما يرفضانهالبحث العشوائي بلا ذكاء، أي القوة الغاشمة
ما يجمعهماالشكل يُنشئ الحل ولا يُزيّنه
الفن ليس زخرفة تُضاف إلى الحل. الفن هو أن تجد الشكل الذي يُنشئ الحل. قصيدة في صدرها رقعة شطرنج، خوارزمية في قلبها خلية نحل، غشاء صابون يُقارب مسألة NP-Hard. الثلاثة يقولون: الطريق الأجمل هو الأعمق.
◆   ◆   ◆
ملخص

المفاهيم والخوارزميات الرئيسية

مسألة جولة الحصان · Knight's Tour

المسألة: هل يستطيع الحصان زيارة كل مربعات الرقعة (٦٤) مرة واحدة بالضبط؟

لماذا صعبة: عدد المسارات المحتملة أكبر من عدد ذرات الكون. لا توجد قاعدة بسيطة تضمن الحل كما في مسألة أويلر.

التصنيف: NP-Hard. لا يُعرف حل في زمن متعدد الحدود.

هيوريستيك وارنسدورف · Warnsdorff's Rule (١٨٢٣)

الفكرة: في كل خطوة، انتقل للمربع الذي له أقل عدد من الحركات المتاحة بعده.

لماذا تعمل: المربعات الضيقة (الزوايا والأطراف) تُعزل بسرعة إذا لم تُزَر مبكرًا. القاعدة تُعالج هذا تلقائيًا.

الحدود: ليست مضمونة ١٠٠٪، لكنها تنجح في الغالبية العظمى على رقعة ٨×٨.

P مقابل NP · أصعب سؤال مفتوح في علوم الحاسوب

P: مسائل يمكن حلها بسرعة (زمن متعدد الحدود). مثال: ترتيب قائمة أرقام.

NP: مسائل يمكن التحقق من حلها بسرعة، لكن إيجاد الحل قد يستغرق زمنًا هائلًا. مثال: جولة الحصان.

السؤال: هل كل مسألة يمكن التحقق من حلها بسرعة يمكن أيضًا حلها بسرعة؟ (P = NP?). جائزة مليون دولار لمن يجيب.

خوارزمية مستعمرة النحل · ABC Algorithm (٢٠٠٥)

الفكرة: محاكاة ثلاثة أدوار من سلوك النحل لحل مسائل التحسين.

العاملة (Employed): تملك حلًا وتُحسّنه محليًا. المتفرجة (Onlooker): تختار أفضل الحلول وتُضاعف الجهد عليها. الكاشفة (Scout): تتخلص من الحلول الراكدة وتبدأ من الصفر.

القوة: التوازن بين الاستغلال (تعميق ما نعرفه) والاستكشاف (اكتشاف ما لا نعرفه). هذا التوازن يمنع الخوارزمية من التجمد في حل محلي.

أغشية الصابون · Soap Film / Steiner Tree

الفكرة: الطبيعة تحل مسائل تحسين بلا حساب. غشاء الصابون يتقلص تلقائيًا لأقل مساحة ممكنة بفعل التوتر السطحي.

التطبيق: غرز مسامير (مدن) في لوح وغمره في صابون ينتج تقريبًا أقصر شبكة تربطها.

الفرق عن 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لغات مصممة كتحديات فنية لا للاستخدام العملي