محمد حجاج
محمد حجاج
887

التجريد: كيف نتعامل مع التعقيد؟

30/1/2017

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

 

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

 

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

 

التجريد وفهم الأنظمة المُعقدة:

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

 

حتى أبسط الظواهر الطبيعية تحتوي على عدد لا نهائي من التفاصيل، بالإضافة إلى أنها قد تتفاعل بصُورة مُعقدة مع عدد لا نهائي من الظواهر الأخرى! بالطبع، من المُستحيل على العُلماء فهم أي شيء على هذه الصُورة، ولهذا السبب يلجؤون إلى التجريد

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

 

التجريد وبناء أنظمة مُعقدة:

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

بالطبع، فشل ذريع. لكن لماذا؟

 

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

الفرق يكمُن في طبقات التجريد Abstraction Layersالمُتاحة لنا لاستخدامها والتي لا تتوفر له.

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

 

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

 

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

في حين أن الوصف السابق قد يبدو نظريًا ومُعقدًا، ففي الحقيقة أنت تتعامل مع أنظمة ذات طبقات تجريد بصُورة يومية، وتتبع بالضبط نفس الأسلوب بدون أن تُدرك!

 

لنفترض أن لديك المُشكلة التالية: أنت تُريد تنظيف ملابسك.

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

 

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

 

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

 

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

 

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

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

 

كما نرى، فمفهوم طبقات التجريد هو مفهوم شديد الأهمية ليس فقط في بناء أنظمة مُعقدة، وإنما في تسهيل التعامل معها.

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

 

فكر في الأمر؛ ألا يبدو لك عمل الكومبيوتر نوعًا من السحر؟ طيب ماذا عن الإنترنت؟ أو بالأحرى، ما هو الإنترنت من الأساس؟ (وبالمناسبة، الإنترنت ليس جوجل أو فيسبوك أو تويتر أو أيًا من المواقع التي تستخدمها بصُورة يومية. آه، ما الذي نعنيه "بموقع" أصلًا؟)

 

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

شارك برأيك

#يتصدر_الآن

  • أضف تدوينة
  • أضف تدوينة مرئية
  • أضف تدوينة قصيرة