مقدمة

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

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

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

ما يجب أن نعرفه هو التغييرات التي طرأت على مدى مدة من الزمن. على مدى الجزء الأكبر من تاريخ البشرية، لم يكن التعليم المدرسي يعتبر ضروريًّا على الإطلاق. فكان معظم الناس أميين، وإن تعلموا شيئًا، كان يتمثَّل في إتقان مهارة حِرفية أو تعلُّم الكتاب المقدَّس. في بداية القرن التاسع عشر، كان أكثر من ٨٠ بالمائة من سكان العالم لا يذهبون إلى المدارس البتة؛ أما الآن فباتت الغالبية العظمى تتلقى التعليم بالمدارس سنواتٍ عديدة ويُتوقع أن تبلغ نسبة غير الملتحقين بالمدارس في العالم صفرًا في نهاية القرن. كذلك زاد عدد السنوات التي نقضيها في التعليم. ففي عام ١٩٤٠، كانت نسبة حاملي الشهادات الجامعية من الأمريكيين أقل من ٥ بالمائة، ولكن بحلول عام ٢٠١٥، أصبح ثلثهم تقريبًا يحمل شهادة جامعية.1

تكمن التكنولوجيا الرقمية في مكوِّنات أجهزتها — المكونات المادية التي تتركَّب منها أجهزة الكمبيوتر والخدمات الرقمية — بقدر ما تكمن في برمجياتها؛ أي البرامج التي تشغلها. والعنصر الأساسي في تلك البرامج هو الخوارزميات التي تطبقها.

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

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

الإلمام بالخوارزميات يعرِّفنا على طريقةٍ جديدة للتفكير الخوارزمي؛ وهي طريقةٌ لحل المسائل بطريقةٍ عملية، بحيث يمكن للتطبيقات الفعَّالة للخوارزميات كبرامج أن تعمل بسرعة على أجهزة الكمبيوتر.

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

بالنسبة إلى سؤال «ما هي الخوارزميات؟» الإجابة غاية في البساطة. إنها طرقٌ خاصة لحل المسائل. يمكن سرد تلك الطرق في حل المسائل في خطواتٍ سهلة بحيث يمكن لأجهزة الكمبيوتر أن تنفِّذها بسرعة وكفاءة مذهلتين. ومع ذلك فلا يوجد شيء سحري في هذه الحلول. وحقيقة أنها تتكوَّن من خطوات أساسية بسيطة تعني أنه لا يوجد ما يدعو للاعتقاد بأنها تتجاوز قدرة غالبية الناس على الفهم.

في الحقيقة، لا يدَّعي الكتاب معرفته بمادة تفوق ما يدرس عادة في المدارس الثانوية. هناك بالفعل بعض المسائل الرياضية تظهر في بعض صفحات الكتاب؛ لأنه لا يمكن التحدُّث بجدية عن الخوارزميات من دون استخدام «بعض» الرموز. كذلك يتناول الكتاب أيَّ مفاهيم شائعة الاستخدام في الخوارزميات، ولكنها قد لا تكون شائعةً خارج مجال علوم الكمبيوتر.

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

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

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

يتناول الفصلان الثالث والرابع طريقةَ البحث عن العناصر وترتيبها. قد تبدو تلك العمليات عادية، ولكنها من أهم التطبيقات في أجهزة الكمبيوتر. تستغرق أجهزة الكمبيوتر وقتًا طويلًا في التصنيف والبحث، ولكننا غافلون إلى حدٍّ كبير عن تلك الحقيقة لأنها جزء أصيل غير مرئي من العديد من التطبيقات. يقدِّم لنا موضوعا التصنيف والبحث أيضًا لمحةً عن وجهٍ مهمٍّ للخوارزميات. في العديد من المسائل، نعرف أكثر من خوارزمية لحلِّها. ونحن ننتقي من بين الخوارزميات المتاحة بناءً على سماتها الخاصة المميزة لها؛ فبعض الخوارزميات تناسب مسائلَ معينةً أكثر من غيرها. ومن هذا المنطلق، ينبغي التعرُّف على كيفية تعامُل الخوارزميات المختلفة — ذات السمات المختلفة — مع حلول المسألة الواحدة.

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

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

بعد توضيحِ ما يمكن أن تفعله الخوارزمية، تستعرض الخاتمة حدود عمليات الحوسبة. نعلم أن أجهزة الكمبيوتر حقَّقت نجاحاتٍ باهرة ونتوقَّع منها المزيد في المستقبل، ولكن هل توجد أشياء لا يمكن لأجهزة الكمبيوتر إنجازها؟ سيتيح الحديث عن حدود عمليات الحوسبة تقديمَ شرحٍ أدقَّ لطبيعة الخوارزميات والحوسبة. كنا قد قلنا إنه يمكن وصف الخوارزمية بأنها سلسلة محدودة من الخطوات يمكن تنفيذها باستخدام ورقة وقلم، ولكن أي نوع من الخطوات تلك التي يمكن أن تتضمَّنها الخوارزمية؟ وما مدى ارتباط تشبيه الورقة والقلم بماهية الخوارزميات في الحقيقة؟

جميع الحقوق محفوظة لمؤسسة هنداوي © ٢٠٢٢