U3F1ZWV6ZTU1NTk2Njk0NTcyMjEyX0ZyZWUzNTA3NTIwMjQzMDM0Mg==

الخوارزميات | ماهي؟ و أهميتها ؟ و كيفية تعلمها

الخوارزميات | ماهي؟ و أهميتها ؟ و كيفية تعلمها

ما هي الخوارزميات :

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

منطق الخوارزميات :

يتكون منطق الخوارزميات من ثلاث :

1 - الأختيار :

 وهو نوع من الخوارزميات الذي يتبع نوعا معينا من الخطوات المنطقيه المعقدة لاختيار خيار معين دونا عن باقي الإختيارات 

2- التكرار :

هو نوع من منطق الخوارزميات الذي يعتمد على تكرار الخطوات لحل مشكلة معينه ولاتنتهي هذه الخوارزميه من التكرار حتي تنتهي من حل المشكله 

3 - التسلسل :

هو نوع من الخوارزميات الذي يعتمد ع المرور بكل الخطوات ترتيبا لحل مشكلة ما 

علاقة الخوارزميات ب علوم الحاسب و البرمجة :

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

أنواع الخوارزميات في البرمجة :

1- Sort Algorithm  او خوارزمية الفرز :

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

2- Search Algorithm او خوارزمية البحث : 


البحث الثنائي (في هياكل البيانات الخطية)

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

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

DFS و BFS هي شجرة / الرسم البياني traversing وبحث بنية البيانات. لن نتعمق في كيفية عمل DFS / BFS ولكن سنرى كيف يختلفون من خلال الرسوم المتحركة التالية. 
التطبيقات:
يستخدم بواسطة محركات البحث للزحف على الويب
يستخدم في الذكاء الاصطناعي لبناء روبوتات ، على سبيل المثال روبوت شطرنج
العثور على أقصر طريق بين مدينتين في الخريطة والعديد من التطبيقات الأخرى
3. التجزئة (Hashing) :
يعتبر بحث التجزئة حاليًا أكثر الأساليب المستخدمة على نطاق واسع للعثور على البيانات المناسبة حسب المفتاح أو المعرّف. نحن الوصول إلى البيانات عن طريق فهرسها. لقد اعتمدنا في السابق على الفرز + البحث الثنائي للبحث عن الفهرس بينما نستخدم التجزئة الآن.

يشار إلى بنية البيانات باسم Hash-Map أو Hash-Table أو Dictionary التي تعين مفاتيح القيم بكفاءة. يمكننا إجراء عمليات البحث عن القيمة باستخدام المفاتيح. الفكرة هي استخدام دالة تجزئة مناسبة تقوم بتعيين قيمة المفتاح ->. اختيار وظيفة تجزئة جيدة يعتمد على السيناريو.

التطبيقات:

في أجهزة التوجيه ، لتخزين عنوان IP -> زوج المسار لآليات التوجيه
لإجراء التحقق من وجود قيمة بالفعل في القائمة. البحث الخطي سيكون مكلفا. يمكننا أيضًا استخدام تعيين بنية البيانات لهذه العملية.
4. البرمجة الديناميكية
البرمجة الديناميكية (DP) هي طريقة لحل مشكلة معقدة بتقسيمها إلى مشاكل فرعية أبسط. نحن نحل المشكلات الفرعية ونتذكر نتائجها ونستخدمها في طريقنا لحل المشكلة المعقدة بسرعة.
* نكتب "1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 =" على ورقة  ما الذي يساوي ذلك؟
* العد  ثمانية!
* يكتب "1+" آخر على اليسار  ماذا عن ذلك؟
* بسرعة  تسعة!
كيف عرفت أنه كان تسعة بهذه السرعة؟
لقد أضفت واحدة فقط
لذلك لا تحتاج إلى إعادة فرز الأصوات لأنك تذكرت أن هناك ثمانية! البرمجة الديناميكية هي مجرد وسيلة خيالية لقول "تذكر الأشياء لتوفير الوقت لاحقًا"

التطبيقات:

هناك العديد من خوارزميات وتطبيقات موانئ دبي ولكنني قمت بتسمية واحدة وأنفخك ، طريقة Duckworth-Lewis في لعبة الكريكيت.

ليست هناك تعليقات
إرسال تعليق

إرسال تعليق

الاسمبريد إلكترونيرسالة