بناء منظمة العفو الدولية للفوز 2048
أهم شيء في عام 2048 هو الوصول إلى أعلى الدرجات من خلال تحريك البلاط ودمج نفس البلاط.
علينا أن نحدد كيفية نقل البلاط في لعبة وكيفية توليد بلاط جديد بعد كل خطوة.
الرموز في Env.py
محاولتي الأولى هي استخدام طريقة البحث في Monte Carlo Tree للفوز باللعبة. حاولت أن أتعامل مع جميع التحركات الممكنة في عمق البحث المحدد ، ثم قارنت الدرجات في النتيجة لاختيار أفضل قرار في الموقف المحدد.
الرموز في 2048_Search.py
في هذه الطريقة ، قمت بتعيين العمق من 1 إلى 5 وركضت 100 مرة في كل عمق.
هنا بعض النتائج.
ملاحظة: يمثل متوسط معدل الفوز الفرصة للوصول إلى 2048.
متوسط درجة الحد الأقصى: 210.24
متوسط معدل الفوز: 0 ٪
الحد الأقصى للوصول | التهم | يتراكم ٪ | عكس تراكم ٪ |
---|---|---|---|
32 | 1 | 1 ٪ | 100 ٪ |
64 | 6 | 7 ٪ | 99 ٪ |
128 | 39 | 46 ٪ | 93 ٪ |
256 | 47 | 93 ٪ | 54 ٪ |
512 | 7 | 100 ٪ | 7 ٪ |
1024 | 0 | 100 ٪ | 0 ٪ |
متوسط درجة الحد الأقصى: 1223.68
متوسط معدل الفوز: 30 ٪
الحد الأقصى للوصول | التهم | يتراكم ٪ | عكس تراكم ٪ |
---|---|---|---|
256 | 4 | 4 ٪ | 100 ٪ |
512 | 19 | 23 ٪ | 96 ٪ |
1024 | 47 | 70 ٪ | 77 ٪ |
2048 | 29 | 99 ٪ | 30 ٪ |
4096 | 1 | 100 ٪ | 1 ٪ |
8192 | 0 | 100 ٪ | 0 ٪ |
متوسط درجة الحد الأقصى: 1646.08
متوسط معدل الفوز: 54 ٪
الحد الأقصى للوصول | التهم | يتراكم ٪ | عكس تراكم ٪ |
---|---|---|---|
256 | 1 | 1 ٪ | 100 ٪ |
512 | 9 | 10 ٪ | 99 ٪ |
1024 | 36 | 46 ٪ | 90 ٪ |
2048 | 48 | 94 ٪ | 54 ٪ |
4096 | 6 | 100 ٪ | 6 ٪ |
8192 | 0 | 100 ٪ | 0 ٪ |
متوسط درجة الحد الأقصى: 2216.96
متوسط معدل الفوز: 78 ٪
الحد الأقصى للوصول | التهم | يتراكم ٪ | عكس تراكم ٪ |
---|---|---|---|
256 | 0 | 0 ٪ | 100 ٪ |
512 | 3 | 3 ٪ | 100 ٪ |
1024 | 19 | 22 ٪ | 97 ٪ |
2048 | 58 | 80 ٪ | 78 ٪ |
4096 | 20 | 100 ٪ | 20 ٪ |
8192 | 0 | 100 ٪ | 0 ٪ |
متوسط درجة الحد الأقصى: 2467.84
متوسط معدل الفوز: 78 ٪
الحد الأقصى للوصول | التهم | يتراكم ٪ | عكس تراكم ٪ |
---|---|---|---|
256 | 0 | 0 ٪ | 100 ٪ |
512 | 2 | 2 ٪ | 100 ٪ |
1024 | 20 | 22 ٪ | 98 ٪ |
2048 | 48 | 70 ٪ | 78 ٪ |
4096 | 29 | 99 ٪ | 30 ٪ |
8192 | 1 | 100 ٪ | 1 ٪ |
لا يمكن لـ Macbook Pro 15 "2012 (MID) التعامل مع مبلغ الحساب الضخم. بالنسبة لأولئك المهتمين بهذا الموضوع ، يمكن أن يحاولوا تعيين عدد العمق الأكبر لمعرفة ما يحدث.
حاولت نهجًا مختلفًا لهذه المشكلة. في مرحلة البداية من اللعبة ، استخدمت عمقًا صغيرًا للبحث لتسريع العملية. يبدأ العمق من 2 ويحصل على واحد أكبر بعد كل 400 تحرك حتى تصل إلى عمق المجموعة.
ركضت 200 عصر و 42.5 ٪ فقط من إجمالي الألعاب تصل إلى عمق 6. ومع ذلك ، فإن نتيجة العمق 6 مثيرة للإعجاب.
الحد الأقصى للوصول | التهم | يتراكم ٪ | عكس تراكم ٪ |
---|---|---|---|
1024 | 1 | 1.18 ٪ | 100 ٪ |
2048 | 50 | 60 ٪ | 98.8 ٪ |
4096 | 34 | 100 ٪ | 40 ٪ |
في العمق 5 ، النتيجة والأرقام المقابلة للتحرك. يمكننا أن نرى أنه في المتوسط يجب أن نتحرك فوق 1600 خطوة للوصول إلى 2048.
الحد الأقصى للوصول | التهم | مجموع التحركات | متوسط أعداد التحرك لكل لعبة |
---|---|---|---|
512 | 2 | 1172 | 586 |
1024 | 25 | 25321 | 1012.84 |
2048 | 56 | 93276 | 1665.64 |
4096 | 17 | 48163 | 2833.12 |
بعد تنفيذ طريقة البحث ، درست بعض طريقة التعلم التعزيز (RL). من أجل فهم أكثر شمولاً حول RL ، أقوم بتنفيذ DQN وهو فرع رئيسي من RL في لعبة 2048.
تستخدم DQN قيمة Q-value كمكافأة لتقييم القرار الذي يتخذه الماكينة.
الرموز في مجلد DQN.
SARSA هي أيضا نوع من RL. SARSA يختلف قليلاً عن DQN.
باختصار ، الفرق هو أن سياسة SARSA تختار الطريقة الأكثر أمانًا لتجنب الفشل (انتهى اللعبة) في اللعبة.
من ناحية أخرى ، تختار سياسة DQN دائمًا الطريق للوصول إلى أعلى الدرجات وأحيانًا تحصل على الفشل في اللعبة المبكرة.
الرموز في مجلد SARSA.