تطبيق Q-Table في Python
مثال بسيط على تعلُّم Q
تطبيق Q-Table في Python درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 3 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 5 دروس في المجموع.
تنفيذ Q-Learning في Python
تنفيذ Q-Learning في Python
في هذا الدرس، سننفذ خوارزمية Q-Learning بسيطة في Python. سيتعلم الوكيل التنقل في عالم شبكي لتعظيم مكافآته.

تعريف البيئة
تعريف البيئة
نعرّف عالمًا شبكيًا بسيطًا بحجم 4×4، يبدأ فيه الوكيل من الزاوية العلوية اليسرى، وعليه الوصول إلى الزاوية السفلية اليمنى للحصول على مكافأة.
import numpy as np
# Define the environment
num_states = 16 # 4x4 grid
num_actions = 4 # Up, Down, Left, Right
# Define rewards (-1 for each step, +10 for the goal)
rewards = np.zeros(num_states)
rewards[-1] = 10تهيئة جدول Q
تهيئة جدول Q
تتم تهيئة جدول Q بأصفار لجميع أزواج الحالة-الإجراء.
# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))
print("Initial Q-Table:")
print(q_table)تطبيق خوارزمية Q-Learning
تطبيق خوارزمية Q-Learning
نستخدم المعلمات التالية:
- α (معدل التعلّم): يتحكم في مدى تغلّب المعلومات الجديدة على المعلومات القديمة.
- γ (معامل الخصم): يحدد وزن المكافآت المستقبلية مقارنةً بالمكافآت الفورية.
- ε (معدل الاستكشاف): يوازن بين الاستكشاف والاستغلال.
# Parameters
alpha = 0.1 # Learning rate
gamma = 0.9 # Discount factor
epsilon = 0.1 # Exploration rate
# Q-Learning loop
num_episodes = 1000
for episode in range(num_episodes):
state = 0 # Start at the first state
done = False
while not done:
# Exploration or exploitation
if np.random.rand() < epsilon:
action = np.random.randint(num_actions) # Explore
else:
action = np.argmax(q_table[state]) # Exploit
# Transition to the next state
next_state = (state + action) % num_states # Simplified transition logic
reward = rewards[next_state]
# Update Q-value
q_table[state, action] = q_table[state, action] + alpha * (
reward + gamma * np.max(q_table[next_state]) - q_table[state, action]
)
# Move to the next state
state = next_state
done = state == num_states - 1تقييم السياسة المتعلّمة
تقييم السياسة المتعلّمة
بعد التدريب، نقيّم السياسة باتباع الإجراءات المثلى المخزّنة في جدول Q:
# Evaluate the policy
state = 0
optimal_path = [state]
while state != num_states - 1:
action = np.argmax(q_table[state])
state = (state + action) % num_states # Simplified transition logic
optimal_path.append(state)
print("Optimal Path:", optimal_path)عرض جدول Q
عرض جدول Q
يمكننا عرض جدول Q لفهم القيم المتعلّمة لكل زوج من أزواج الحالة-الإجراء:
import matplotlib.pyplot as plt
import seaborn as sns
# Visualize Q-Table
plt.figure(figsize=(10, 8))
sns.heatmap(q_table, annot=True, fmt=".2f", cmap="coolwarm")
plt.title("Q-Table Heatmap")
plt.xlabel("Actions")
plt.ylabel("States")
plt.show()مزايا Q-Learning
مزايا Q-Learning
يوفر Q-Learning عدة فوائد:
- بسيط وسهل التطبيق.
- يمكنه التعامل مع البيئات العشوائية.
- يتقارب إلى السياسة المثلى عند إجراء استكشاف كافٍ.
قيود Q-Learning
قيود Q-Learning
لدى Q-Learning بعض القيود:
- لا يتوسع جيدًا في البيئات ذات فضاءات الحالة-الإجراء الكبيرة.
- قد يكون التعلم بطيئًا في البيئات المعقدة.
- يتطلب تمثيلًا محددًا جيدًا للحالة والإجراء.
الملخص والخطوات التالية
الملخص والخطوات التالية
في هذا الدرس، قمنا بما يلي:
- طبّقنا خوارزمية Q-Learning بسيطة في Python.
- درّبنا وكيلًا على التنقل في عالم شبكي باستخدام جدول Q.
- قيّمنا السياسة المتعلّمة وعرضنا جدول Q.
بعد ذلك، سنستكشف Deep Q-Learning، التي تستخدم الشبكات العصبية للتعامل مع البيئات ذات فضاءات الحالة-الإجراء الكبيرة.

الأسئلة الشائعة
هل درس «تطبيق Q-Table في Python» مجاني؟
نعم — نص درس «تطبيق Q-Table في Python» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 5 دروس في المجموع.
ماذا ستتعلم في «تطبيق Q-Table في Python»؟
مثال بسيط على تعلُّم Q تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 5.
كم من الوقت يستغرق درس «تطبيق Q-Table في Python»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المفاهيم الأساسية في التعلم المعزز
- مفهوم Q-Table
- تطبيق Q-Table في Python
- التعلم المعزز العميق باستخدام Q
- استكشاف OpenAI Gym