القائمة الرئيسية

الصفحات

الخوارزمي والخوارزميات وأهميتها في علوم الحاسب وحل المشكلات ( خوارزميه لو تم حلها هتوقف بنوك؟! )


بكل تأكيد فخر لنا كعرب أن يكون واحد من الفروع الرئيسيه ( الأساسيات ) في علوم الحاسب لقبه مشتق من العالم العربي الخوارزمي وهذا يدل علي مدي قوه وازدهار العرب في العصر الذهبي للأسلام 💛.

الخوارزمي


بدون ادني شك قد مر علينا في المراحل الدراسيه المختلفه عن من هو العالم العربي الخوارزمي ولكن لا أظن اني قد وجدت من قد أعطي الخوارزمي مايستحق من المدح فلو كان الخوارزمي عالماً غربياً لوجدت صوره في جميع المجلدات والمتاحف ويحتفلون بميلاده ويتزكرون وفاته غير الدكتوراه الشرفيه والجوائز التي كان سيحصدها فقبل ان تفخر بأنك شخص علي أطلاع علي العلماء والعلم الغربي انظر في تاريخ امتك الأسلاميه لدقيقه لتعرف ان امتك هيا السبب في نهضه أوروبا وماهي عليه الأن رحم الله جميع العلماء المسلمين.

ميلاد الخوارزمي

خوارزم

أبو عَبد الله مُحَمَّد بن مُوسَى الخَوارِزمي ولد عام 164 هجريه ( 781 م ) في مدينه خوارزم وتقع في دوله اوزبكستان حالياً ولكن قديماً كانت جزء من ايران الكبري الخوارزمي لقب أطلق عليه بسبب اصوله التي تنتمي الي مدينه خوارزم التي ولد فيها.

أنجازات لن ينساها التاريخ


لست أنا من سيحصد انجازات الخوارزمي فأنجازاته لا تعد ولا تحصي ولكن اليكم بعض من انجازات العالم العربي الخوارزمي

  • مؤسس علم الجبر والذي نقل الي الغرب بأسمه العربي Algebra
  • صاحب أول خريطه جغرافيه صحيحه في العالم وكان تحت اشرافه 70 عالم جغرافيا اثناء صنعها
  • اضاف الصفر الي الأعداد وارسله الي أوروبا لتأسس عليه الحضاره الأوروبيه
  • صاحب نظام العد العشري
  • الساعه الشمسيه
  • كتب ومؤلفات عظيمه في علم الفلك والرياضيات والجغرافيا والعديدد من العلوم مثل كتاب صور الأرض
  • وبكل تأكيد أبتكر علم الخوارزميات وهو عمود أساس من أعمده علوم الحاسوب

الخوارزميات


بعد ان تعرفنا علي العالم العربي أبو عَبد الله مُحَمَّد بن مُوسَى الخَوارِزمي جاء الوقت لنعرف ما هي الخوارزميات.

ما هي الخوارزميات ( تعريف الخورزميات )


بعيداً عن تعريفات المتخصصين والتي لن تفرق اي شئ وستشتت تنبيهك الخوارزميات ببساطه هي مجموعه من الخطوات الواضحه والمرتبه لحل مشكله ما.

بسيط قوي صح ؟! بس متقلقش هوا دا التعريف الي انا عايز انك تبني عليه الي جاي.

مثال بسيط لتوضيح معني الخوارزميات في الحياه الطبيعيه :-

حساب الأعداد الزوجيه : نحن نعلم أن العدد الزوجي هو العدد الذي يقبل القسمه علي 2 ويخرج عدد صحيح فماذا نفعل لو لدينا مجموعه اعداد من 1 الي 100  ونريد أخراج الأعداد الزوجيه ؟

الحل يأتي علي شكل خوارزميه تقوم بأخذ العدد الأول وتقوم بقسمته علي 2 ثم تنظر الي باقي القسمه ان كان عدد صحيح ( 1 ، 6 ، 9 ) فهو زوجي وان غير صحيح ( 0.5 ، 1.2 ، 6.5 ) فهو ليس عدد زوجي وبتكرار نفسها مع العدد الثاني ثم الثالث الي اخره.

خطوات واضحه : أخذ الرقم وقسمته علي 2
متسلسله : الرقم سيقسم علي 2 ثم ينظر الي باقي القسمه
الخروج بحل للمشكله : العدد زوجي او العدد ليس عدد زوجي ( يعتمد علي باقي القسمه )

هذه هي الخوارزميه بشكل بسيط يتبقي عليك ان تختار لغه البرمجه المحببه اليك والضغط علي بعض الأزرار علي الكيبورد الخاص بك للخروج ببرنامج يقوم بحساب الأعداد الزوجيه

اهميه الخوارزميات في علوم الحاسب


في جهاز لايفهم سوا ال0 وال1 الشئ او الاشئ لا مجال للنقاش عن احتمال شئ وهو ما يجعل هناك جدال بين العلماء في الوقت الحالي فهناك من يبني اساسه علي ان الخوارزميات هيا الحاسب الالي وان اي جهاز الكتروني يقوم بحل مشكله مهما وصلت درجه تعقيده فهو عباره عن خوارزميه أم مقسمه الي بعض الخوارزميات الصغيره وهناك منهم من يقول ان الخوارزميات ليس كل شئ يتفقون في أهميتها وقيمتها للحاسب الالي ولكنهم لا يرون ان الحاسب الالي خوارزميه كبيره مقسمه.

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

تركيب الخوارزميات


الأمور الأساسيه التي تتركب منها الخوارزميات وهي الأتي
  1. التسلسل : بمعني ان الخوارزميه تمشي في طريق محدد بترتيب واحد سننفذ السطر الأول ثم السطر الثاني ثم السطر الثالث الي نهايه الخوارزميه.
  2. المقارنه : بكل بساطه تأمر من ينفذ الخوارزميه ان يقف ويقارن قيمه معينه بقيمه أخري ثم يسلك طريق معين لكل قيمه، مثلاً في المثال في الأعلي إن كان باقي القسمه هو عدد صحيح إذن العدد زوجي وإن كان باقي القسمه عدد غير صحيح إذن العدد غير زوجي. 
  3. التكرار : نفذ هذه الأوامر مره أخري مثلاً في المثال في الأعلي سيبدأ بالعدد 1 ثم يكرر نفسه مع العدد 2 ثم يكرر مع العدد 3 ثم يكرر نفس الأوامر الي العدد 100 ويتوقف.

التعبير عن الخوارزميات


يتم التعبير ووصف الخوارزميات بعده طرق أشهرها

الخرائط الأنسيابيه Flowchart


تتميز بالسهوله للمبتدئين ( لا أقصد أنها بها عيب أو أن أستخدامها لا يدل علي انك محترف ومتمكن ولديك خبره وانما أقصد سهوله الطريقه ) وهي عباره عن بعض الرموز كل رمز يشير الي شئ معين فهناك رمز البدايه ورمز النهايه ورمز للمقارنه يتم تحديد طريقك بأسهم من التعليمه الأولي إلي الثانيه إالي أخر الخريطه وهو رمز نهايه الخوارزميه.

pseudo code


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

الشفره البرمجيه


عن طريق أستخدام احدي لغات البرمجه مثل java , ruby , python , c++ , c# , c تقوم بكتابه كود حقيقي قابل للتنفيذ يعبر عن الخوارزميه ولكن يجب عليك وعلي المستقبل للخوارزميه ( من سترسلها له ) ان تفهما هذه اللغه المتفق عليها بينكم.

معلومه عامه


بعض المخترقين والمطورين للبرامج المزيفه ومحاكيات الالعاب والأنظمه حينما يقع بين أيديهم السورس كود لنظام بلايستيشن 2 مثلاً يقومون بفهم خوارزميات النظام ومحاكاتها علي اجهزه فمثلاً يحاكي ( يجعلك قادراً ان تفتح شئ غير مدعوم علي نظام معين ) جهاز بلاي ستيشن 2 علي نظام ويندوز او نظام PSP علي جهاز اندرويد من المؤكد أن الأمر ليس بهذه البساطه ولكن كمعلومه عامه عن جزء مما يحدث في محاكاه الأنظمه.

مراحل أبتكار خوارزميه نموذجيه


  1. بكل تأكيد كتابه المشكله وتعريفها من مدخلات الي المخرجات المطلوبه
  2. التطوير وهو كتابه نموذج الحل بأفضل طريقه ممكنه واقل إستهلاك للموارد
  3. تحديد طريقه الكتابه وكتابه الخوارزميه
  4. التحقق من الخوارزميه وخلوها من الأخطاء
  5. تحليل الخوارزميه ( الوقت والذاكره والموارد المستهلكه )
  6. تنفيذ الخوارزميه
  7. اختبار الخوارزميه
  8. التوثيق

مرحباً بحل جميع المشاكل


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

هناك خوارزميات غير قابله للتنفيذ بمعني انها تكون مستهله للموارد بشكل يجعلنا ننتظر لألاف السنين لحل مشكله نعم اقوي حاسبات العالم اليوم لن تقدر علي حلها واليك بعض من هذه الخوارزميات
  • halting problem : نفرض ان لدينا خوارزميه x عجز العلماء عن أيجاد خوارزميه سنفرض انها y تقوم بأيجاد الخوارزميه x منتهيه وترجع قيمه ام ستعمل الي الأبد 
  • traveling salesman problem : وهي مشكله ان لديك بائع في مدينه بها عدد n من المدن وتريد ان تمر علي كل المدن بأقصر طريق ممكن لكل المدن اوباقصر مسافه ممكنه يوجد لهذه المشكله خوارزميه ولكن تنفيذها ان افترضنا ان لدينا 32 مدينه فقط سيأخذ 20 مره عمر الكون نعم 20 مره عمر الكون الذي يبلغ عمره اكثر من 14 مليار سنه.

ماذا سيحدث لو تطورت الأجهزه بقدره جباااااااره لدرجه حل traveling salesman problem ؟


اهلاً بك في جحيم سيحدث علينا بحل هذه المشكله فأن كل نظم التشفير المستخدمه في العالم سيتم اختراقها بسهوله ستتوقف البنوك والمؤسسات الحكوميه وكل شئ يخص الأمن بل متوقع توقف الأنترنت عن العالم.

في النهايه


الخوارزميات شئ غير عالمنا وجعلنا نعتمد علي منهج علمي في حل المشاكل ساهمت في تطورنا عبر السنين بدأت في عقولنا والأن تعتمد عليها أجهزتنا الألكترونيه ومناهجنا العلميه لا يوجد مبرمج لا يعرف الخوارزميات ولا يوجد عالم لم يطلع علي الخوارزميات وانا كشخص عادي وكأي شخص عادي مثلي سواء مهتم بعلوم الحاسب والعلوم او لا انصحك بشده الأطلاع علي الخوارزميات لتطور من نفسك والأستفاده بها في مشاكلك الحياتيه وكالعاده أتمني أن أكون وفقت بالشرح وان تكون أستفدت مني ولو معلومه واحده بسيطه وسننهي هذه المره بقول الله تعالي "فَتَعَالَى اللَّهُ الْمَلِكُ الْحَقُّ وَلَا تَعْجَلْ بِالْقُرْآنِ مِنْ قَبْلِ أَنْ يُقْضَى إِلَيْكَ وَحْيُهُ وَقُلْ رَبِّ زِدْنِي عِلْمًا" صدق الله العظيم [ طه (114) ]

تعليقات

التنقل السريع