المعلوماتية > عام

الرياضيات المستخدمة في علوم الحاسوب

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

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

لذا سنذكر هنا أهمَّ المواضيع الرياضية الخاصة بعلوم الحاسوب وبعضاً من تطبيقاتها.

1) الرياضيات المتقطعة:

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

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

وبالطبع فإنَّ الرياضيات المتقطّعة لديها مواضيعُها العددية، فدراسة خوارزميات الـمتتاليات الجمعية ستساعدك في تحسين الخوارزميات المُطبّقة ضمن الـ big-O، إضافةً لدراسة المصفوفات والأشعة التي تُعطي مَدخلاً جيداً لفهم المنطق المُستخدم عند التعامل مع المجموعات الضخمة للبيانات.

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

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

2) الاحتمالات:

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

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

3) الجبر الثنائي والجبر البولياني:

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

هناك قيمةٌ كبيرةٌ لدراسة التّفاعل بين الأرقام الثّنائية في الحاسوب، فعلى سبيل المثال، ماذا سيفعلُ الحاسوب إذا كانت نتيجةُ الإضافة أو الضرب لا تتّسع في المكان المخصص لها (والذي غالباً ما يكون 32 بت)؟

إضافةً إلى أنّ العدد 0.1 هو عددٌ دوريٌّ لا نهائيٌّ في الأساس الثنائي (كما هو الحال للعدد ⅓ في الأساس العشري)، فكيف لذلك أن يؤثّر عليك كمبرمج؟

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

4) العودية:

عادةً ما يرى الحاسوبُ ما يقاربُ 20% من الشيفرة البرمجية تعملُ معظم الوقت، أي ما يقارب 80% من وقت تنفيذ البرنامج، ويُدعى هذا بقانونِ 80-20 والذي يؤدّي إلى استدعاء توابعَ برمجيةٍ معيّنةٍ أكثرَ من غيرها.

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

يُطلق على هذا المفهوم اسم "العَودية"، ويسمى المصطلح الرياضي الممثلُ لها بالتكرار.

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

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

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

وننوه إلى أنّ الطريقة المثلى لدراسة العَودية هي عبر حلِّ العديد والعديد من المسائل الواقعية بطريقةٍ حاسوبية.

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

المصدر :

هنا