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

ماهي خوارزميات البحث

خوارزمية البحث هي الإجراء التدريجي المستخدم لتحديد موقع بياناتٍ محددةٍ بين مجموعةٍ من البيانات، ويُعتبَر إجراءً أساسيًا في الحوسبة وعلم الكمبيوتر.

تستخدم جميع خوارزميات البحث مفتاح البحث من أجل القيام بالإجراء، ومن المتوقع أن ترجع خوارزميات البحث بحالة نجاح أو فشل، أي البيانات المنطقية أو “Boolean” والتي تخضع احتمالين فقط هما: True (صح) أو False (خطأ).

عند البحث عن البيانات، يكمن الاختلاف بين التطبيق السريع والتطبيق البطيء في غالب الأحيان، حسب خوارزمية البحث المُستخدمة، حيث تتوفر خوارزميات بحثٍ مختلفةٌ حسب الأداء والكفاءة، كما أن البيانات نفسها تؤثر على الخوارزمية التي يتم استخدامها.1

تصنيف خوارزميات البحث

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

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

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

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

على الرغم من أن المبرمجين يمكنهم الاختيار من بين العديد من خوارزميات البحث، ولكن بالمجمل يختارون الخوارزمية التي تتوافق مع حجم وهيكل قاعدة البيانات لتوفير تجربة استخدامٍ سهلةٍ.

البحث الخطي

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

البحث الثنائي

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

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

البحث الشجري

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

الخوارزمية الوراثية

يعد هذا البحث هو أحد وسائل الذكاء الاصطناعي، حيث أن هذه الخوارزمية تبحث عن “الحل الأمثل” معبرةً عنه كسلسلةٍ من البيانات، مثل قائمة الأبعاد الداخلية لمحركٍ نفاثٍ يوفر أقصى قوة دفع.

يبدأ البحث بمجموعةٍ عشوائيةٍ من السلاسل والاختبارات لكل واحدةٍ، مع الحفاظ على أفضلها للحصول على الجيل التالي، يستمر البرنامج بتكرار هذه العملية حتى تصل إلى سلسلة حلولٍ مثاليةٍ.3

أهمية خوارزميات البحث

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

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

المراجع