الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كورس تصميم وتحليل الخوارزميات

بدأه ahmad shalabi في 13 أبريل 2012 · 8 رد · 9,245 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

وهي:-

1- مقدمة عامة حول الخوارزميات

2- نظرة عامة حول الكورس

3- الأهداف الرئيسية لهذا الكورس

مقدمة عامة حول الخوارزميات

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

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

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

ولكن هناك مجموعة من القيود على نوع العمليات التي يمكن أن تتضمن الخوارزمية وهي:

1. الوضوح : يجب إن تكون المشكلة التي تعالجها واضحة، أي يجب أن يكون واضح ما ينبغي عمله

2. الفعالية : كل خطوة -من حيث المبدأ- يمكن أن يقوم بتنفيذها أي شخص في كمية محدودة من الوقت

3. المحدودية :ويجب أن يكون للخوارزمية عدد محدود من العمليات على الخوارزمية

4. يجب أن يكون للخوارزمية واحد أو أكثر من النواتج وصفر أو أكثر من المدخلات

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

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

وهنالك فرق كبير بين الخوارزمية والإجراءات العادية (وهذا ونحن على دراية) هو أن الخوارزمية ينبغي أن تتوقف دائما بعد فترة محدودة من الوقت في حين الإجراء العادي قد يستمر في حلقة لا نهائية.

نظرة عامة حول الكورس:

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

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

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

وفي هذا الكورس سيكون أسلوب عرض الخوارزميات واضحة وسهلة المتابعة.

وسنستخدم شبه الكود "pseudo code" مماثلة لبناء الجمل بلغات البرمجة تنظيما لكتابة الخوارزمية. ومن بعض هذه التركيبات هي:

if-then-else

for / end for

while / end while

repeat / until

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

بل هو أيضا في بعض الأحيان على حد سواء أسهل وأكثر رسمية إلى استخدام عبارة شبه الكود.

على سبيل المثال،إن وظيفة عبارة التعيين:

Β[1 .. η] <-- Α [1 .. η]

هي استبدال كل عنصر أو إدخال من B[ί] من مجموعة B في A[ί] من مجموعة A لجميع ί ، 1≤ ί ≤ η

*وينقسم الكورس إلى ستة أجزاء رئيسية:

  1. المفاهيم الأساسية في تحليل الخوارزمية
  2. الأدوات الرياضية الأساسية
  3. هياكل البيانات الأساسية
  4. تقنيات تصميم الخوارزميات
  5. دراسة متعمقة في بعض الخوارزميات الرئيسية
  6. NP-completeness

[title]أهداف الكورس:[/title]

يجب على المتابع للكورس:

• معرفة المفاهيم الأساسية والتقنيات في مجال تحليل الخوارزمية مثل:

  1. الصيغ التقاربية
  2. الحالة الأسوأ
  3. الحالة الوسطى
  4. الحالة الأفضل
  5. .تحليل استهلاكها
  6. التعقيد الفراغي

الخ......

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

• تكون قادر على استخدام مختلف تقنيات تصميم الخوارزمية وأدوات تحليل الخوارزمية لتطوير وتحليل خوارزميات جديدة وفعالة من أجل حل المشاكل الحقيقة التي تنشأ في كثير من الأحيان في تطبيقات الحاسب الآلي

• أن تكون قادر على الرد على مجموعة لخوارزمية جديدة منها:

  1. ما مدى جودة هذه الخوارزمية؟
  2. هل يوجد وسيلة أفضل لحل هذه الخوارزمية أو تطويرها؟

• معرفة NP-Completeness ومعرفة بعض مشاكل NP-Complete و NP-Hard

مع السلامة والى اللقاء في الدرس القادم

تم تعديل هذه المشاركة بواسطة ahmad shalabi في 14 أبريل 2012 في 16:49

3
#2

شكرا على الدروس ونتمى ان نرى مستوى قوي في هذه الدروس وان يكون هناك امثلة ودروس نوعية

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#3

بارك الله فيك اخي أحمد شلبي . .

استمر . .

وننتظر منك المزيد . .

#4
vector_ever كتب:

شكرا على الدروس ونتمى ان نرى مستوى قوي في هذه الدروس وان يكون هناك امثلة ودروس نوعية

ماجد الأسيوطي كتب:

بارك الله فيك اخي أحمد شلبي . .

استمر . .

وننتظر منك المزيد . .

شكرا لمرورك يا أخ vector_ever و الاخ ماجد الاسيوطي

اليوم إن شاء الله أكمل الجزئين من هذا الدرس اذ شاء المولى

#5

جزاك الله كل خير

فى انتظارك بقية الكورس

محمد فخرالدين

#6
ahmad shalabi كتب:

اليوم إن شاء الله أكمل الجزئين من هذا الدرس اذ شاء المولى

لماذا كل هذا التأخير أخي أحمد ؟

ننتظر منذ اسبوعين وحتي الآن

عسي ان يكون المانع خيرا

نتمني لك التوفيق والصحة الجيدة

#7

شكرا على الدروس ونتمى ان نرى مستوى قوي في هذه الدروس وان يكون هناك امثلة ودروس نوعية

#8

شكرا اخي على ما قدمته واغثنا بالمزيد .......... اتمنى لك التوفق لما له الخير في الدنيا والآخره

تم تعديل هذه المشاركة بواسطة z-m في 25 سبتمبر 2012 في 19:28

#9
ahmad shalabi كتب:

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

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

وهي:-

1- مقدمة عامة حول الخوارزميات

2- نظرة عامة حول الكورس

3- الأهداف الرئيسية لهذا الكورس

مقدمة عامة حول الخوارزميات

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

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

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

ولكن هناك مجموعة من القيود على نوع العمليات التي يمكن أن تتضمن الخوارزمية وهي:

1. الوضوح : يجب إن تكون المشكلة التي تعالجها واضحة، أي يجب أن يكون واضح ما ينبغي عمله

2. الفعالية : كل خطوة -من حيث المبدأ- يمكن أن يقوم بتنفيذها أي شخص في كمية محدودة من الوقت

3. المحدودية :ويجب أن يكون للخوارزمية عدد محدود من العمليات على الخوارزمية

4. يجب أن يكون للخوارزمية واحد أو أكثر من النواتج وصفر أو أكثر من المدخلات

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

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

وهنالك فرق كبير بين الخوارزمية والإجراءات العادية (وهذا ونحن على دراية) هو أن الخوارزمية ينبغي أن تتوقف دائما بعد فترة محدودة من الوقت في حين الإجراء العادي قد يستمر في حلقة لا نهائية.

نظرة عامة حول الكورس:

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

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

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

وفي هذا الكورس سيكون أسلوب عرض الخوارزميات واضحة وسهلة المتابعة.

وسنستخدم شبه الكود "pseudo code" مماثلة لبناء الجمل بلغات البرمجة تنظيما لكتابة الخوارزمية. ومن بعض هذه التركيبات هي:

if-then-else

for / end for

while / end while

repeat / until

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

بل هو أيضا في بعض الأحيان على حد سواء أسهل وأكثر رسمية إلى استخدام عبارة شبه الكود.

على سبيل المثال،إن وظيفة عبارة التعيين:

Β[1 .. η] <-- Α [1 .. η]

هي استبدال كل عنصر أو إدخال من B[ί] من مجموعة B في A[ί] من مجموعة A لجميع ί ، 1≤ ί ≤ η

*وينقسم الكورس إلى ستة أجزاء رئيسية:

  1. المفاهيم الأساسية في تحليل الخوارزمية
  2. الأدوات الرياضية الأساسية
  3. هياكل البيانات الأساسية
  4. تقنيات تصميم الخوارزميات
  5. دراسة متعمقة في بعض الخوارزميات الرئيسية
  6. NP-completeness

[title]أهداف الكورس:[/title]

يجب على المتابع للكورس:

• معرفة المفاهيم الأساسية والتقنيات في مجال تحليل الخوارزمية مثل:

  1. الصيغ التقاربية
  2. الحالة الأسوأ
  3. الحالة الوسطى
  4. الحالة الأفضل
  5. .تحليل استهلاكها
  6. التعقيد الفراغي

الخ......

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

• تكون قادر على استخدام مختلف تقنيات تصميم الخوارزمية وأدوات تحليل الخوارزمية لتطوير وتحليل خوارزميات جديدة وفعالة من أجل حل المشاكل الحقيقة التي تنشأ في كثير من الأحيان في تطبيقات الحاسب الآلي

• أن تكون قادر على الرد على مجموعة لخوارزمية جديدة منها:

  1. ما مدى جودة هذه الخوارزمية؟
  2. هل يوجد وسيلة أفضل لحل هذه الخوارزمية أو تطويرها؟

• معرفة NP-Completeness ومعرفة بعض مشاكل NP-Complete و NP-Hard

مع السلامة والى اللقاء في الدرس القادم

جزاك الله خيرا على المعلومات القيمة :blush:

جزاك الله خيرا

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…