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