مادة CPCS 331، الذكاء الاصطناعي 1 (Artificial Intelligence I). هي واحدة من أكثر المواد إثارة وتحديا في خطة قسم علوم الحاسب بكلية الحاسبات وتقنية المعلومات (FCIT) بجامعة الملك عبدالعزيز. بعد ما درست هياكل البيانات في CPCS 204، الآن جاء وقتك تطبّق تفكيرك الخوارزمي على مسائل أكبر وأعقد: كيف تجعل الآلة تتصرف بذكاء.
المادة تستخدم الكتاب الأشهر في الذكاء الاصطناعي على مستوى العالم وهو “Artificial Intelligence: A Modern Approach” لـ Stuart Russell و Peter Norvig، والمعروف اختصارا بـ AIMA. هذا الكتاب مرجع لطلاب الدكتوراه والباحثين، فكونك تدرسه في مرحلة البكالوريوس يعني المادة جادة ومحتواها عميق.
للي ما يعرف عن الذكاء الاصطناعي أو عنده تساؤلات عن المجال بشكل عام، اقرأ أولا مقالتنا عن مقدمة الذكاء الاصطناعي قبل ما تكمل هنا.
📋 ملخص سريع
- رمز المادة: CPCS 331، الذكاء الاصطناعي 1 (Artificial Intelligence I)
- الساعات المعتمدة: 3 ساعات نظرية
- المتطلبات السابقة: CPCS 204 (هياكل البيانات 1)، CPCS 223 (رياضيات منفصلة)
- الكتاب المقرر: “Artificial Intelligence: A Modern Approach”، Russell & Norvig (AIMA)
- المستوى: السنة الثالثة أو الرابعة في خطة علوم الحاسب
- المواضيع الرئيسية: الوكلاء الذكية، خوارزميات البحث، CSP، الألعاب، المنطق، Prolog، مقدمة تعلم الآلة
- يقود إلى: تعلم الآلة المتقدم، معالجة اللغات الطبيعية، الرؤية الحاسوبية
ليش مادة CPCS 331 مختلفة عن باقي المواد؟
معظم مواد علوم الحاسب تعلّمك “كيف تكتب كود يحل مشكلة محددة”. CPCS 331 تسألك سؤال أعمق: كيف تجعل الكمبيوتر يحل مشكلة هو ما يعرفها مسبقا؟ كيف يبحث عن الحل بنفسه؟ كيف يستدل؟ كيف يلعب لعبة؟
هذا يخلي المادة مختلفة من عدة نواحي:
- الـ Prolog لغة منطق مو لغة برمجة تقليدية، طريقة تفكيرك فيها تختلف كليا
- خوارزميات البحث مو بس خوارزميات، هي طريقة تفكير في حل المشاكل بصفة عامة
- المنطق الرياضي يحتاج دقة وقدرة على الاستدلال الشكلي
- العمق النظري كبير، كثير من الطلاب يضيعون في النظريات بدون ما يشوفون التطبيق
بس لما تفهم الصورة الكاملة، المادة تصير ممتعة جدا وتفتح لك باب لفهم كيف تشتغل أنظمة الذكاء الاصطناعي الحديثة من ChatGPT إلى السيارات ذاتية القيادة.
نظرة عامة على توزيع المادة
| الأسابيع | الموضوع | فصول AIMA |
|---|---|---|
| 1-2 | مقدمة ومفهوم الوكيل الذكي | Ch 1-2 |
| 3-5 | خوارزميات البحث غير المستنيرة | Ch 3 |
| 6-7 | خوارزميات البحث المستنيرة والـ A* | Ch 3-4 |
| 8 | مسائل الإشباع الشرطي (CSP) | Ch 6 |
| 9-10 | الألعاب والمنافسة (Minimax, Alpha-Beta) | Ch 5 |
| 11-12 | المنطق القضوي والمنطق من الدرجة الأولى | Ch 7-8 |
| 13-14 | لغة Prolog والاستدلال المنطقي | Ch 9 |
| 15 | مقدمة في تعلم الآلة (Machine Learning) | Ch 19 |
ℹ️ ملاحظة عن الاختبارات
كثير من الدكاترة في هذه المادة يركّزون على خوارزميات البحث والمنطق في الاختبار النظري. Prolog ممكن تجي كأسئلة قصيرة أو سؤال كامل حسب الدكتور. تأكد تعرف توقعات دكتورك من الفصل الأول.
1. الوكلاء الذكية، Intelligent Agents (الأسابيع 1-2)
أول سؤال في المادة: ما هو الذكاء الاصطناعي؟ كتاب Russell و Norvig يعرّفه باستخدام مفهوم الوكيل الذكي (Intelligent Agent).
ما هو الوكيل؟
الوكيل هو أي شيء يستقبل مدركات (percepts) من بيئته عبر حساسات (sensors) ويتصرف عليها بـ محركات (actuators).
مثلا: سيارة ذاتية القيادة:
- الحساسات: كاميرات، رادار، GPS
- البيئة: الطريق، السيارات، الإشارات
- المحركات: عجلة القيادة، الفرامل، المحرك
- الوكيل: الكمبيوتر الذي يقرر ماذا يفعل
أنواع بيئات الوكيل
الكتاب يصنّف بيئات الوكيل بأكثر من طريقة وهذا التصنيف كثيرا ما يجي في الاختبارات النظرية:
| الخاصية | الشرح | مثال |
|---|---|---|
| Observable كاملة / جزئية | هل الوكيل يرى كل البيئة؟ | شطرنج (كاملة) مقابل البوكر (جزئية) |
| Deterministic / Stochastic | هل النتيجة محددة أم عشوائية؟ | شطرنج (محدد) مقابل الطقس (عشوائي) |
| Episodic / Sequential | هل كل خطوة مستقلة؟ | تصنيف صور مقابل الشطرنج |
| Static / Dynamic | هل البيئة تتغير أثناء التفكير؟ | شطرنج بوقت محدود (ديناميكي) |
| Discrete / Continuous | هل الحالات محدودة أم مستمرة؟ | شطرنج (منفصل) مقابل القيادة (مستمر) |
أنواع الوكلاء
- Reflex Agent: يتصرف بناء على المدركة الحالية فقط بدون ذاكرة
- Model-Based Agent: يحتفظ بنموذج داخلي للبيئة
- Goal-Based Agent: يتصرف بناء على أهداف محددة
- Utility-Based Agent: يحاول يعظّم دالة منفعة (utility function)
- Learning Agent: يتعلم من تجاربه ويحسّن أداءه
💡 نصيحة للاختبار النظري
أسئلة تصنيف البيئات تجي كثيرا في الاختبارات. تمرّن على أخذ مشكلة وتصنيف بيئتها على كل الأبعاد الخمسة. مثلا: “صف بيئة لعبة Tic-Tac-Toe” وهكذا.
2. خوارزميات البحث غير المستنيرة، Uninformed Search (الأسابيع 3-5)
قلب مادة CPCS 331 بالنسبة لكثير من الطلاب هو خوارزميات البحث. لازم تفهمها مو بس حفظا، بل تعرف تطبّقها على أي مسألة.
صياغة مسألة البحث
قبل ما تبدأ أي خوارزمية بحث، لازم تصيغ المسألة بشكل رسمي:
- الحالة الابتدائية (Initial State): من أين نبدأ؟
- الأفعال الممكنة (Actions): ما الحركات المتاحة؟
- دالة الانتقال (Transition Function): ماذا يحدث بعد كل حركة؟
- اختبار الهدف (Goal Test): هل وصلنا؟
- تكلفة المسار (Path Cost): ما ثمن هذا المسار؟
مثال كلاسيكي: مسألة الثمانية بلاطات (8-Puzzle):
- الحالة الابتدائية: ترتيب عشوائي للبلاطات
- الأفعال: تحريك البلاطة الفارغة يمين/يسار/أعلى/أسفل
- الهدف: الوصول للترتيب الصحيح
خوارزميات البحث غير المستنيرة
هذه الخوارزميات “عمياء” لأنها ما تعرف أي الحالات أقرب للهدف، تبحث بناء على بنية الفضاء فقط.
1. البحث بالعرض أولا، BFS (Breadth-First Search)
تفحص كل الحالات على العمق 1 ثم العمق 2 وهكذا. تضمن إيجاد الحل الأقصر (من ناحية عدد الخطوات).
Queue: [Start]
1. خذ الحالة الأولى من القائمة
2. اختبر: هل هي الهدف؟
3. إذا لا، أضف كل جيرانها في آخر القائمة
4. كرر حتى تجد الهدف أو القائمة تفرغ
2. البحث بالعمق أولا، DFS (Depth-First Search)
تنزل في عمق الشجرة حتى تصل لآخر حالة قبل ما ترجع. توفّر ذاكرة لكن ما تضمن الحل الأمثل.
3. البحث بالعمق المحدود، DLS (Depth-Limited Search)
مثل DFS بس بحد أقصى للعمق لتجنب الحلقات اللانهائية.
4. البحث بالعمق المتزايد، IDDFS (Iterative Deepening DFS)
تجمع ميزة BFS (يضمن الحل الأمثل) مع ميزة DFS (ذاكرة أقل). تنفّذ DLS بحد 1، بعدين 2، بعدين 3 وهكذا.
5. البحث الموحّد التكلفة، UCS (Uniform Cost Search)
مثل BFS بس يأخذ في الحسبان تكلفة كل مسار مو بس عدد الخطوات.
مقارنة خوارزميات البحث
| الخوارزمية | اكتمالها | مثلى؟ | الوقت | الذاكرة |
|---|---|---|---|---|
| BFS | نعم (إذا الفضاء محدود) | نعم (إذا التكلفة متساوية) | O(b^d) | O(b^d) |
| DFS | لا (ممكن حلقة لانهائية) | لا | O(b^m) | O(bm) |
| DLS | لا | لا | O(b^l) | O(bl) |
| IDDFS | نعم | نعم (تكلفة متساوية) | O(b^d) | O(bd) |
| UCS | نعم | نعم | O(b^(C*/ε)) | O(b^(C*/ε)) |
| A* | نعم | نعم (إذا h مقبولة) | يعتمد على h | O(b^d) |
b = branching factor، d = عمق الحل، m = أقصى عمق، l = حد العمق
⚠️ خطأ شائع في فهم BFS مقابل DFS
كثير من الطلاب يفترضون إن DFS أسرع دائما. هذا مو صحيح. BFS أسرع لما الهدف قريب من البداية. DFS أسرع لما الهدف عميق في الشجرة. المفاضلة بينهم تعتمد على طبيعة المسألة.
3. البحث المستنير والـ A*، Informed Search (الأسابيع 6-7)
لو عندك معلومة إضافية عن البيئة، ليش ما تستخدمها؟ هنا تدخل خوارزميات البحث المستنير.
مفهوم الدالة الاستدلالية، Heuristic Function
الدالة الاستدلالية h(n) هي تخمين مستنير للمسافة من أي حالة إلى الهدف.
مثال: في مسألة الثمانية بلاطات:
- h1: عدد البلاطات في المكان الخاطئ (Manhattan Distance ببساطة)
- h2: مجموع المسافات المانهاتنية لكل بلاطة عن موضعها الصحيح
h2 أفضل من h1 لأنها مهيمنة (dominant) عليها، يعني h2(n) أكبر من أو تساوي h1(n) دائما.
Greedy Best-First Search
تختار دائما الحالة ذات أصغر h(n) (الأقرب للهدف تقديرا). سريعة بس مو مثلى لأنها تتجاهل تكلفة المسار المقطوع.
خوارزمية A*
A* هي الخوارزمية الأشهر في CPCS 331 وفي الذكاء الاصطناعي بشكل عام. تجمع بين:
- g(n): التكلفة الفعلية من البداية للحالة n
- h(n): التكلفة التقديرية من n للهدف
وتختار دائما الحالة ذات أصغر f(n) = g(n) + h(n).
شرط الأمثلية: A* تضمن الحل الأمثل إذا كانت h مقبولة (admissible)، يعني h(n) لا تبالغ أبدا في التقدير، أي أن h(n) أقل من أو تساوي التكلفة الحقيقية.
شرط الاتساق (Consistency): h(n) أقل من أو تساوي c(n, a, n’) + h(n’) لكل حالة n وجارتها n’. الاتساق أقوى من القبول وهو ما يضمن A* لا تفحص نفس الحالة أكثر من مرة.
خطوات تطبيق A* في الاختبار
- ارسم الشجرة أو الرسم البياني للمسألة
- حدد g(n) لكل حالة (تكلفة المسار من البداية)
- أضف h(n) المعطاة في السؤال لكل حالة
- احسب f(n) = g(n) + h(n) لكل حالة مفحوصة
- اختر الحالة ذات أصغر f(n) من قائمة الانتظار (Open List)
- كرر حتى تصل الهدف أو تفرغ القائمة
- تتبّع المسار الراجع للحصول على الحل الكامل
خوارزميات البحث A* وBFS محيّرتك؟
تطبيق خوارزميات البحث على مسائل جديدة يحتاج فهم عميق مو حفظ. فريقنا يشرح لك كل خوارزمية مع تمارين مخصصة لمستواك
اطلب شرح مخصص4. مسائل الإشباع الشرطي، CSP (الأسبوع 8)
مسائل الإشباع الشرطي (Constraint Satisfaction Problems) هي طريقة مختلفة للنظر لمسائل البحث. بدل ما تبحث في فضاء الحالات، تبحث في فضاء التعيينات.
مكونات CSP
- المتغيرات (Variables): X1, X2, …, Xn
- النطاقات (Domains): مجموعة القيم الممكنة لكل متغير
- القيود (Constraints): الشروط التي يجب أن تحققها التعيينات
مثال كلاسيكي: تلوين الخريطة
المتغيرات: مناطق الخريطة (WA, NT, Q, NSW, V, SA, T) النطاقات: (أحمر، أخضر، أزرق) القيود: المناطق المجاورة يجب أن تكون بألوان مختلفة
تقنيات حل CSP
1. Backtracking: يجرب قيمة، إذا أدت لتعارض يرجع للتعيين السابق.
2. Forward Checking: بعد كل تعيين، يحذف القيم المتعارضة من نطاقات المتغيرات اللامعينة.
3. Arc Consistency (AC-3): يضمن إن كل زوج من المتغيرات المرتبطة متسق.
4. اختيار المتغير: MRV (Minimum Remaining Values) يختار المتغير ذا أقل قيم متبقية.
5. اختيار القيمة: LCV (Least Constraining Value) يختار القيمة التي تقيّد المتغيرات الأخرى أقل.
ℹ️ CSP في الواقع
كثير من المسائل العملية هي CSP بالأساس: جدولة المواد الجامعية، جدولة العمال، حل السودوكو، ألعاب التلوين. فهم CSP يفيدك في مشاريع عملية كثيرة.
5. الألعاب والمنافسة، Adversarial Search (الأسابيع 9-10)
ماذا لو كانت المشكلة ضد خصم ذكي يحاول يعرقلك؟ هنا يدخل مفهوم البحث التنافسي.
خوارزمية Minimax
في الألعاب ذات اللاعبين (مثل الشطرنج وTic-Tac-Toe):
- لاعب MAX: يحاول يعظّم قيمة النتيجة (أنت)
- لاعب MIN: يحاول يصغّر قيمة النتيجة (الخصم)
الفكرة: MAX يختار الحركة ذات أكبر قيمة، MIN يختار الحركة ذات أصغر قيمة. يتناوبان في شجرة اللعبة.
function minimax(state, depth, isMaximizing):
if depth == 0 or is_terminal(state):
return evaluate(state)
if isMaximizing:
best = -infinity
for each child of state:
val = minimax(child, depth-1, False)
best = max(best, val)
return best
else:
best = +infinity
for each child of state:
val = minimax(child, depth-1, True)
best = min(best, val)
return best
Alpha-Beta Pruning
خوارزمية Minimax تفحص كل الشجرة، وهذا بطيء جدا في الألعاب الحقيقية. Alpha-Beta Pruning تقطع فروع الشجرة اللي مو ضرورية لاتخاذ القرار.
- Alpha: أفضل قيمة لـ MAX حتى الآن (يبدأ بـ -infinity)
- Beta: أفضل قيمة لـ MIN حتى الآن (يبدأ بـ +infinity)
قاعدة القطع: إذا وجد MAX قيمة أكبر من أو تساوي Beta، يقطع. إذا وجد MIN قيمة أصغر من أو تساوي Alpha، يقطع.
في أفضل الحالات، Alpha-Beta يفحص جذر تربيعي من الحالات التي يفحصها Minimax، يعني يوصل ضعف العمق بنفس الوقت.
كيف تحل سؤال Minimax في الاختبار
- ارسم شجرة اللعبة مع قيم حالات النهاية
- حدد أي مستوى MAX وأي مستوى MIN (يتبادلان)
- ابدأ من الأسفل: MAX يأخذ الأكبر، MIN يأخذ الأصغر
- اصعد للأعلى حتى تصل الجذر
- لـ Alpha-Beta: تتبع قيم alpha و beta وارسم خط على الفروع المقطوعة
⚠️ خطأ شائع في Alpha-Beta
كثير من الطلاب يخلطون بين متى يقطع MAX ومتى يقطع MIN. تذكّر: MAX يقطع لما يجد قيمة أكبر من Beta (لأن MIN لن يسمح بها). MIN يقطع لما يجد قيمة أصغر من Alpha (لأن MAX لن يختارها). ارسم الشجرة خطوة بخطوة ولا تحاول تحلها في رأسك.
6. المنطق القضوي والمنطق من الدرجة الأولى (الأسابيع 11-12)
المنطق هو لغة الذكاء الاصطناعي الرمزي. تعلّم الوكيل الذكي يستدل ويتخذ قرارات بناء على معرفة ممثّلة بشكل رسمي.
المنطق القضوي، Propositional Logic
أبسط أشكال المنطق. كل جملة إما صحيحة (True) أو خاطئة (False).
الروابط المنطقية:
- NOT (¬): النفي
- AND (∧): و
- OR (∨): أو
- IMPLIES (→): يستلزم، P → Q معناه “إذا P فـ Q”
- IFF (↔): إذا وفقط إذا
مثال: “إذا كان الطقس ممطرا والطريق مبلل، فالسيارات تتأخر”
(Rain ∧ WetRoad) → TrafficDelay
جداول الحقيقة (Truth Tables): أداة لاختبار صحة الجمل المنطقية.
قاعدة Modus Ponens:
P → Q
P
-----
Q
قاعدة Resolution: من (A ∨ B) و (¬B ∨ C) نستنتج (A ∨ C).
المنطق من الدرجة الأولى، First-Order Logic (FOL)
FOL أقوى من المنطق القضوي لأنه يضيف:
- الكميات (Quantifiers): لكل (∀) وبعض (∃)
- الأفراد والمتغيرات: “أحمد” و “x”
- الدوال والعلاقات:
أب(أحمد، خالد)أومدينة(الرياض)
أمثلة:
- “كل طالب يدرس مادة واحدة على الأقل”
∀x طالب(x) → ∃y درس(x, y) - “أحمد يعرف الجميع في قسمه”
∀y في_القسم(y, قسم_أحمد) → يعرف(أحمد, y)
التحويل لـ CNF (Conjunctive Normal Form): خطوة أساسية قبل الاستنتاج بـ Resolution. تتضمن:
- إزالة ↔ و →
- تحريك ¬ داخل الجمل
- التوحيد (Standardize Apart)
- Skolemization (إزالة ∃)
- التوزيع
ℹ️ لماذا FOL مهم؟
FOL هو الأساس النظري لـ Prolog والكثير من أنظمة الذكاء الاصطناعي الرمزية. لما تكتب قاعدة في Prolog، أنت فعليا تكتب جملة بلغة FOL ومحوّلة لـ Horn Clauses.
7. برمجة Prolog والاستدلال المنطقي (الأسابيع 13-14)
هنا يحتار كثير من طلاب CPCS 331. Prolog لغة برمجة منطقية مختلفة كليا عن Java أو Python أو C++. بدل ما تقول للكمبيوتر “كيف” يحل المشكلة، تقول له “ماذا” تعني المشكلة وهو يجد الحل بنفسه.
أساسيات Prolog: الحقائق والقواعد والاستعلامات
Prolog يبنى على ثلاثة أشياء:
1. الحقائق (Facts): معلومات نعرفها كحقيقة مسبقة.
% حقائق عن العائلة
أب(أحمد، خالد).
أب(أحمد، سارة).
أب(خالد، مريم).
أم(فاطمة، خالد).
أم(فاطمة، سارة).
2. القواعد (Rules): علاقات مشتقة من الحقائق.
% تعريف الجد
جد(X, Z) :- أب(X, Y), أب(Y, Z).
جد(X, Z) :- أب(X, Y), أم(Y, Z).
% تعريف الإخوة
إخوة(X, Y) :- أب(Z, X), أب(Z, Y), X \= Y.
% تعريف السلف (يعتمد على نفسه، تكرار)
سلف(X, Y) :- أب(X, Y).
سلف(X, Y) :- أب(X, Z), سلف(Z, Y).
3. الاستعلامات (Queries): أسئلة نطرحها على قاعدة المعرفة.
?- أب(أحمد، خالد).
% الجواب: true
?- أب(أحمد، X).
% الجواب: X = خالد ; X = سارة
?- جد(أحمد، مريم).
% الجواب: true
الأعداد والحسابات في Prolog
% دالة حساب المضروب
مضروب(0, 1) :- !.
مضروب(N, F) :-
N > 0,
N1 is N - 1,
مضروب(N1, F1),
F is N * F1.
% استعلام:
?- مضروب(5, X).
% X = 120
قوائم في Prolog
% عضو القائمة
عضو(X, [X|_]).
عضو(X, [_|T]) :- عضو(X, T).
% طول القائمة
طول([], 0).
طول([_|T], N) :-
طول(T, N1),
N is N1 + 1.
% استعلام:
?- عضو(3, [1, 2, 3, 4]).
% true
💡 كيف تفكر في Prolog بشكل صحيح
الخطأ الكبير إنك تحاول تفكر في Prolog مثلما تفكر في جافا أو بايثون. في Prolog:
- لا يوجد “تعيين” للمتغيرات، يوجد “توحيد (unification)”
- البرنامج لا يُنفّذ بترتيب، يُستدَل عليه
- الحل يأتي من المطابقة، مو من الخطوات
فكّر في القواعد كـ “تعريفات” مو كـ “أوامر”. السؤال ”?- جد(X, مريم).” معناه “من هو جد مريم؟” والبرنامج يبحث عن إجابة.
آلية الاستدلال في Prolog: SLD Resolution
Prolog يستخدم SLD Resolution مع Backtracking:
- يأخذ الاستعلام ويحاول يطابقه مع أول حقيقة أو قاعدة مناسبة
- لو نجح، ينتقل للهدف التالي
- لو فشل، يرجع للخلف (backtrack) ويجرب الحقيقة أو القاعدة التالية
- يكمل حتى يُثبت الاستعلام أو يستنفد كل الاحتمالات
Cut (!): قطع الرجوع للخلف
يمنع Prolog من الرجوع بعد نقطة معينة:
% أول تطابق فقط
أقصى(X, Y, X) :- X >= Y, !.
أقصى(_, Y, Y).
Prolog والمنطق صعبين عليك؟
واجبات Prolog والأسئلة المنطقية في CPCS 331 من أصعب ما يواجهه طلاب كلية الحاسبات بجامعة الملك عبدالعزيز. فريقنا متخصص في هذه المادة ويساعدك في الواجبات والمشاريع والمراجعة قبل الاختبار.
تواصل معنا على واتساب8. تمثيل المعرفة، Knowledge Representation
تمثيل المعرفة يجيب عن سؤال: كيف نُخزّن ما يعرفه الوكيل بطريقة يمكن الاستدلال عليها؟
الشبكات الدلالية، Semantic Networks
طريقة رسومية لتمثيل العلاقات بين المفاهيم. عقد (nodes) تمثل المفاهيم وأحرف (arcs) تمثل العلاقات بينها.
مثال: “الفيل حيوان له خرطوم ويسكن الغابة”
- عقدة: الفيل، حيوان، خرطوم، غابة
- أحرف: is-a, has-a, lives-in
الإطارات، Frames
مثل الكلاسات في البرمجة الكائنية. كل إطار يمثل مفهوما مع خصائصه (slots) وقيمها.
Frame: طالب
الاسم: [قيمة]
الرقم الجامعي: [قيمة]
المعدل: [قيمة | افتراضي: 0.0]
المواد: [قائمة]
قواعد الإنتاج، Production Rules
نظام “إذا-فعندئذ” (If-Then) هو من أبسط أشكال تمثيل المعرفة وأكثرها استخداما في الأنظمة الخبيرة:
IF: درجة الحرارة > 38 AND ألم في الرأس
THEN: احتمال الإصابة بالحمى = مرتفع
IF: المعدل >= 4.5
THEN: التقدير = ممتاز
ℹ️ ربط تمثيل المعرفة بـ Prolog
قاعدة بيانات Prolog هي عمليا شكل من أشكال تمثيل المعرفة. الحقائق هي المعلومات المعروفة، والقواعد هي قواعد الاستدلال، والاستعلامات هي الأسئلة. هذا التشابه يساعدك على فهم الصلة بين الفصلين.
9. مقدمة في تعلم الآلة، Intro to Machine Learning (الأسبوع 15)
ينتهي الفصل عادة بمقدمة سريعة في تعلم الآلة لتكون أساسا للمواد المتقدمة. هذا الموضوع يُدرَّس على عجل في CPCS 331 ويُفصّل في مواد لاحقة.
أنواع التعلم
1. التعلم بالإشراف (Supervised Learning): البرنامج يتعلم من أمثلة مصنّفة. لكل مدخل يوجد مخرج صحيح معروف.
تطبيقاته: تصنيف البريد المزعج، التعرف على الصور، التنبؤ بالأسعار.
2. التعلم بدون إشراف (Unsupervised Learning): البرنامج يجد أنماطا في البيانات بدون تصنيف مسبق.
منه: تجميع العملاء (Clustering)، اكتشاف الشذوذ.
3. التعلم بالتعزيز (Reinforcement Learning): الوكيل يتعلم بالتجربة والمكافأة والعقاب.
يُستخدم في: تعلم الألعاب، روبوتات المستودعات.
خوارزميات أساسية تدرسها في هذا الجزء
- Decision Trees: تبني شجرة قرارات بناء على البيانات
- K-Nearest Neighbors (KNN): يصنف بناء على أقرب K نقاط
- Naive Bayes: يستخدم نظرية بايز للتصنيف الاحتمالي
لمزيد من التفاصيل عن هذه الخوارزميات وتطبيقاتها العملية، اقرأ دليلنا لتعلم Python الذي يغطي تطبيق كثير من هذه المفاهيم بشكل عملي.
أخطاء شائعة في CPCS 331 وكيف تتجنبها
الأخطاء الأكثر تكرارا في CPCS 331
- حفظ الخوارزميات بدون فهم: خوارزميات البحث يجب أن تفهم منطقها وليس تحفظ خطواتها، لأن الاختبار يطبّقها على مسائل جديدة
- إهمال دالة الهيوريستك في A:* كثير من الطلاب يحسبون g(n) فقط وينسون h(n) أو يخطئون في جمعهما
- الخلط بين MAX و MIN في Minimax: ارسم دائما الشجرة واكتب M أو m بجانب كل مستوى قبل ما تبدأ
- محاولة برمجة Prolog بطريقة إجرائية: Prolog يفكر فيه بالتعريفات والعلاقات، مو بالخطوات
- إهمال CNF في المنطق: التحويل لـ CNF خطوة إجبارية قبل Resolution، لا تتجاوزها
- الخلط بين Admissible و Consistent: الاتساق أقوى ويستلزم القبول، لكن القبول لا يستلزم الاتساق
- نسيان تتبع الـ Backtracking في Prolog: لما Prolog يفشل، يرجع للخلف ويجرب البديل. ارسم شجرة البحث لتتبعه
نصائح للنجاح في CPCS 331
استراتيجية المذاكرة
- الكتاب الرئيسي (AIMA): ثقيل للقراءة الكاملة لكنه مرجع ممتاز. ركّز على الفصول المقررة فقط
- سلايدات المحاضرة: هي المرجع الأول لمعرفة ما سيُسأل عنه في الاختبار
- حل المسائل: مادة الذكاء الاصطناعي تحتاج تمرين على المسائل أكثر من القراءة
- الرسم والتتبع: ارسم أشجار البحث وشجرات Minimax بيدك، لا تحاول تحلها في رأسك
مواد ومصادر مفيدة
- CS188 (UC Berkeley): من أفضل كورسات الذكاء الاصطناعي مجانا، سلايداته ومسائله ذهبية
- AI YouTube channels: سواء بالعربي أو الإنجليزي، فيديوهات تشرح خوارزميات البحث بشكل مرئي
- SWI-Prolog: بيئة Prolog مجانية لتطبيق الكود وتجربته
💡 نصيحة ذهبية للاختبار
في سؤال A* أو Minimax، ابدأ دائما بالرسم. ارسم الشجرة أو الرسم البياني أولا، بعدين اكتب القيم. الرسم يساعدك تتجنب أخطاء كثيرة ويوضّح عملك للدكتور لتحصل على درجات جزئية حتى لو الجواب النهائي مو صح.
ربط المادة بمسارك الأكاديمي والمهني
مادة CPCS 331 هي البوابة لعالم الذكاء الاصطناعي الحديث. بعد إنهائها:
أكاديميا: تستطيع أخذ مواد متقدمة مثل تعلم الآلة، معالجة اللغات الطبيعية، الرؤية الحاسوبية، والروبوتيات.
مهنيا: مجال الذكاء الاصطناعي من أعلى التخصصات طلبا وأجرا في سوق العمل التقني اليوم. المعرفة النظرية اللي تبنيها هنا تفرّقك عن كثير من المبرمجين.
للمشاريع: مسائل CSP وخوارزميات البحث تُستخدم في مشاريع تخرج كثيرة مثل ألعاب الذكاء الاصطناعي وأنظمة التوصية.
المواد اللي بنيت عليها CPCS 331 هي هياكل البيانات CPCS 204 التي علّمتك التفكير الخوارزمي، والرياضيات المنفصلة CPCS 223 التي أعطتك أساسا في المنطق والرياضيات. كل ذلك يتجمع هنا.
💡 الذكاء الاصطناعي أكبر من المادة
مادة CPCS 331 تعطيك الأساس النظري الكلاسيكي للذكاء الاصطناعي. الذكاء الاصطناعي الحديث (الشبكات العصبية، نماذج اللغة الكبيرة) يبني على هذه الأسس. من يفهم الأسس يفهم التطورات الحديثة بشكل أعمق بكثير.
خلاصة
مادة CPCS 331 الذكاء الاصطناعي 1 هي من أكثر المواد التي تبني تفكيرك في علوم الحاسب. تجمع بين:
- خوارزميات البحث من BFS وDFS وصولا لـ A* الذكي
- مسائل الإشباع الشرطي والتعامل مع القيود
- الألعاب والمنافسة مع Minimax وAlpha-Beta
- المنطق الرياضي القضوي ومن الدرجة الأولى
- Prolog كنموذج برمجة منطقي مختلف كليا
- مقدمة تعلم الآلة كبوابة للمستقبل
الطلاب اللي ينجحون في هذه المادة يفعلون ثلاثة أشياء: يفهمون المنطق وراء كل خوارزمية مو بس يحفظون الخطوات، يرسمون ويتتبعون المسائل على الورق بدل محاولة حلها في الرأس، يطبّقون Prolog فعليا بكتابة برامج صغيرة وليس فقط قراءة الكود.
لو مادة CPCS 331 تثقل عليك سواء في الواجبات أو فهم الخوارزميات أو Prolog، فريقنا جاهز يساعدك.
CPCS 331 تضغط عليك؟ نحن هنا
فريق زدني متخصص في مواد كلية الحاسبات بجامعة الملك عبدالعزيز. سواء كنت تحتاج شرح خوارزمية A* أو مساعدة في واجب Prolog أو مراجعة قبل الاختبار، أرسل لنا على واتساب ونرد خلال ساعة بعرض سعر وخطة مساعدة واضحة.
تواصل معنا على واتساب الآن