প্রায়শই খেলেন না এমন লোকদের পরিচালনা করার জন্য ইএলও অ্যালগরিদম


9

আমি চলমান পং প্রতিযোগিতায় খেলোয়াড়দের র‌্যাঙ্ক করতে ইএলও অ্যালগরিদম ব্যবহার করছি। বেশিরভাগ খেলোয়াড় প্রতিদিন খেলে, তবে আমাদের কাছে এমন এক প্লেয়ার পাওয়া গেছে যারা একমাসে খেলেনি। আমার অ্যালগরিদম বর্তমানে গত 30 দিনের মধ্যে কেবলমাত্র স্কোরগুলি ট্র্যাক করে এবং ফলস্বরূপ, এই খেলোয়াড়টি কখনও না খেলেও দ্রুতই র‍্যাঙ্কগুলির মধ্যে দিয়ে উঠছে। তিনি তার প্রথম গেমগুলির একগুচ্ছ হেরেছিলেন, তবে তার বেশিরভাগ শেষ কয়েকটি গেম জিতেছে যার অর্থ তার ক্ষতিগুলি চার্ট থেকে সরে যাচ্ছে এবং ফলস্বরূপ তার স্কোর বাড়ছে।

স্পষ্টতই, 30 দিনের পরে আমার স্কোর ছাড়ার পরিকল্পনাটি কাজ করছে না। খেলোয়াড়দের প্রায়শই না খেলার জন্য শাস্তি দেওয়ার জন্য আমি অন্যান্য কোন পদ্ধতি ব্যবহার করতে পারি?

নিষ্ক্রিয়তার দিনগুলির উপর ভিত্তি করে শতাংশের উপর ভিত্তি করে পয়েন্টগুলি হ্রাস করা কেবলমাত্র আমি এখানে এসেছি (উদাহরণস্বরূপ যদি কোনও ব্যবহারকারী এক সপ্তাহে খেলেনি, তবে তার পয়েন্টগুলি কেবল স্বাভাবিকের 70% এর মূল্যবান, এবং 100% পয়েন্ট ফিরে পেতে তাকে X বার খেলতে হবে)।

তবে এটি খুব স্বেচ্ছাচারী বলে মনে হচ্ছে। অন্যথায় সক্রিয় পরিবেশে নিষ্ক্রিয় খেলোয়াড়দের পরিচালনা করার জন্য কারও কাছে কি আরও ভাল ধারণা বা পরামর্শ আছে?

আগাম ধন্যবাদ.

উত্তর:


18

মনে হচ্ছে আপনি প্রতিটি ম্যাচের জন্য পুরষ্কার প্রাপ্ত পয়েন্টগুলি সংরক্ষণ করছেন এবং তারপরে সময়ের সাথে সাথে এই পয়েন্ট অ্যাডজাস্টমেন্টগুলিকে 'মেয়াদোত্তীর্ণ' করছেন। যা আপনি লক্ষ্য করেছেন, সহজ শোষণের জন্য উন্মুক্ত।

একটি স্ট্যান্ডার্ড ইএলও বাস্তবায়নে, আপনার ইএলও স্কোর চিরকাল থাকবে; এটি সময়ের সাথে সাথে 'ক্ষয়' হয় না, কারণ পয়েন্টগুলি এভাবে র‍্যাঙ্কিং সিস্টেম ছেড়ে যাওয়ার ফলে অবশেষে সামগ্রিক স্কোর অপসারণের দিকে পরিচালিত হয় (অর্থাত: 1500 আর 'গড়' বোঝায় না)।

মনে রাখবেন যে খেলোয়াড়রা সাধারণত তাদের খেলোয়াড়দের মনে করে যেভাবে ইএলও র‌্যাঙ্কিং "পয়েন্ট" নয়; এগুলি অন্য খেলোয়াড়ের তুলনায় খেলোয়াড়ের দক্ষতার স্তরের র‌্যাঙ্কিংয়ের প্রয়াস, তারা কোনও পুরষ্কার নয়। এই পয়েন্টগুলি খেলোয়াড়ের শাস্তি হিসাবে নেওয়া উচিত নয়, কারণ এগুলিই হ'ল একমাত্র সরঞ্জাম যা আপনি একই জাতীয় দক্ষতার স্তরের বিরোধীদের বিরুদ্ধে খেলোয়াড়দের ম্যাচ করার চেষ্টা করতে পারেন। এই মানগুলিকে প্রভাবিত করা উচিত এমন একমাত্র জিনিস - সর্বদা - অন্য স্থান প্রাপ্ত খেলোয়াড়দের বিরুদ্ধে জয় এবং ক্ষয়ক্ষতি।

বেশিরভাগ গেমগুলির দ্বারা গৃহীত পদ্ধতি যা খেলোয়াড়দের একটি উচ্চ স্কোর অর্জন থেকে বিরত রাখতে চায় এবং তারপরে নিখোঁজ হয়, আর কখনও খেলতে পারে না, তা হ'ল লিডারবোর্ড প্রদর্শনের জন্য ক্রিয়াকলাপের প্রয়োজনীয়তা; যদি কোনও খেলোয়াড় 30 দিনে (বা যাই হোক না কেন) কোনও গেম খেলেনি, তারা কেবল লিডারবোর্ডগুলিতে প্রদর্শিত হবে না যতক্ষণ না তারা না করে। প্লেয়ার যখন ফিরে আসে এবং অন্য একটি র‌্যাঙ্কড ম্যাচ খেলে, তারা তাদের পুরো ইএলও র‌্যাঙ্কিং নিয়ে ফিরে আসে, ঠিক যেন তারা কখনও ছাড়েনি। যদি তাদের দক্ষতার স্তরটি অন্তর্বর্তীকালীন অন্যান্য সক্রিয় খেলোয়াড়ের তুলনায় পরিবর্তিত হয়, তবে গেমটি দ্রুত তা লক্ষ্য করবে এবং বিরোধীদের বিরুদ্ধে ম্যাচগুলি জিতে ও হেরে যাওয়ার প্রমিত প্রক্রিয়াটির মধ্য দিয়ে তাদের র‌্যাঙ্কিং সামঞ্জস্য করবে।


1
এটি কেন ব্যর্থ হচ্ছে এ সম্পর্কে সঠিক ব্যাখ্যা থাকাকালীন, আমি এর পরিবর্তে কেবল ইএলও ছেড়ে দেব এবং সম্পূর্ণ ভিন্ন কিছুতে যাব। (আমি কী জানি না, বা আমি এটি পোস্ট করতাম ^^)
o0 '।

4
@ লোহরিস এটি নিখুঁত বুদ্ধিমান বিকাশের পছন্দ হতে চাই। যদি লক্ষ্যটি একে অপরের সাথে তুলনামূলকভাবে দক্ষতার জনগণের স্তরের স্তরের অর্থবহ তুলনা বজায় না রাখে (যেমন: ম্যাচমেকিংয়ের উদ্দেশ্যে) তবে স্কোরিং প্রক্রিয়া হিসাবে ব্যবহারের জন্য ইএলও কোনও দুর্দান্ত পছন্দ নয়। এমনকি এমন কিছু গেমস বাইরে রয়েছে যা প্রদর্শনের উদ্দেশ্যে সম্পূর্ণ ভিন্ন "পয়েন্ট" সিস্টেম ব্যবহার করার সময় ম্যাচমেকিংয়ের জন্য হুডের নীচে ইএলওর মতো একটি সিস্টেম ব্যবহার করে, যা তাদের আরও ঘন ঘন খেলার জন্য পুরষ্কার দেয়। উদাহরণস্বরূপ স্টারক্রাফ্ট 2 এটি করে।
ট্রেভর পাওয়েল

4

এলো এবং TrueSkill মত আলগোরিদিম প্রতিটি খেলাটি ফল উপর ভিত্তি করে একটি খেলোয়াড়ের দক্ষতা নির্ধারণ ছাড়া সময় বিনিময় সম্মান। যাইহোক, উভয় অ্যালগরিদম একটি "অনিশ্চয়তা" ফ্যাক্টর নিয়ে আসে - এলো-র ক্ষেত্রে K Factorসাধারণত একটি নতুন খেলোয়াড়ের জন্য উচ্চতর অবস্থান থাকে যেমন তাদের এলো রেটিংটি তাদের "সত্য" দক্ষতার রেটিং দ্রুত রূপান্তরিত করে। একটি নির্দিষ্ট সময় বা গেমের একটি সেট সংখ্যার পরে, K Factorসাধারণত হ্রাস করা হয়, যাতে গেমগুলির মধ্যে রেটিং কম পরিবর্তন হয়।

আপনি যা দেখছেন তা সম্ভবত আদর্শ এলো আচরণ (আপনার ইলো বাস্তবায়নের উপর নির্ভর করে): আপনার খেলোয়াড় তার প্রতিযোগীদের তুলনায় কম গেম খেলেছেন, যা তাকে উচ্চতর "নতুন খেলোয়াড়" করে তোলে K Factor; যেহেতু সে তার গেমস জিতেছে, অ্যালগরিদম তাকে একটি উচ্চ দক্ষ খেলোয়াড় হিসাবে দেখে এবং তাকে উচ্চতর র‌্যাঙ্কিংয়ে ভূষিত করে!

নোট করুন যে র‌্যাঙ্কিং অ্যালগরিদমগুলি সাধারণত প্লেয়ারগুলির মধ্যে তুলনার জন্য ব্যবহৃত হয় এবং প্রতিযোগিতার ফলাফল নির্ধারণের জন্য নয় , তাদের আচরণের ভিত্তিতে। আপনি অংশগ্রহণ পুরস্কৃত করতে চান, আমি প্রতিযোগিতায় খেলোয়াড়দের অন্যভাবে স্কোর করার পরামর্শ দেব। কিছু পরামর্শ:

  • জয়ের সংখ্যার ভিত্তিতে খেলোয়াড়দের স্কোর করুন।
  • জয় / ক্ষতির ক্ষেত্রে পয়েন্টের মান নির্ধারণ করুন, যেমন একটি জয়ের জন্য 2 পয়েন্ট, ক্ষতির জন্য 1 পয়েন্ট।
  • শুধুমাত্র নির্দিষ্ট সপ্তাহ / মাসে খেলোয়াড়ের সেরা এক্স গেমগুলি গণনা করুন।
  • "যোগ্যতা অর্জন" করতে খেলোয়াড়দের ন্যূনতম সংখ্যক গেম খেলতে হবে।

মনে রাখবেন যে এই সমাধানগুলির কোনওটিই পুরোপুরি "ন্যায্য" ফলাফল দেয় না, কারণ যে খেলোয়াড়েরা বেশি খেলেন তাদের খেলোয়াড়ের তুলনায় উচ্চতর স্কোর থাকবে। ন্যায্যতা নিশ্চিত করার একমাত্র উপায় খেলোয়াড়দের অভিন্ন সংখ্যক গেম খেলতে হয়।


আমি মনে করি এটি কেবল ন্যায্য যে খেলোয়াড়রা বেশি খেলেন (একই গড় জয় / হারের অনুপাত থাকা অবস্থায়) যে খেলোয়াড়েরা বেশি খেলেন না তাদের চেয়ে বেশি স্কোর হওয়া উচিত ...
ডেভিড গওভিয়া

3
@ ডেভিডলুজগুভিয়া - এটি "ফেয়ার" এর সংজ্ঞাটি নয় strictly কোনও টুর্নামেন্টে খেলোয়াড়দের স্কোর করার সময়, ফলাফলটি "ন্যায্য" হয় যদি কোনও খেলোয়াড়ের এমন কোনও সুবিধা না থাকে যা অন্য খেলোয়াড়ের (দক্ষতার প্রতি সম্মান না করে) না করে। এটি বলে আমি মনে করি আমরা যে কেসটির কথা বলছি তা হ'ল বন্ধুদের মধ্যে নৈমিত্তিক প্রতিযোগিতা; স্কোরিং সরাসরি জয়ের চেয়ে অংশগ্রহণকে উত্সাহিত করার বিষয়ে বেশি।
ব্লেয়ার হলোয়ে

হ্যাঁ, এটি একটি কঠোর টুর্নামেন্টের চেয়ে একটি নৈমিত্তিক প্রতিযোগিতা। আমি ডেভিডের মন্তব্যের সাথে একমত, স্পষ্টতই, এ কারণেই আমি এখানে সমাধান চাইছি। আপনার ইনপুট জন্য ধন্যবাদ!
জেমাক্লাস

0

আমি ইএলও অ্যালগরিদম সম্পর্কে জানি না, তবে প্রায়শই খেলেন না এমন লোকদের শাস্তি দেওয়ার পরিবর্তে আপনি প্রায়শই খেলেন এমন লোকদের পুরস্কৃত করেন কীভাবে? উদাহরণস্বরূপ, আপনি যদি নিজের স্কোরটিকে এমন কিছু করেন:

Score = (Wins / Losses) * (Total Games Played) * Some_Scale_Factor

তারপরে যে সমস্ত লোকেরা প্রায়শই খেলেন তারা সম্ভবত আরও গেম খেলে এবং উচ্চতর স্কোর অর্জনে আরও বেশি সম্ভাবনা অর্জন করতে পারে।

এবং অন্য একটি জিনিস যা আপনি পরিবর্তন করতে চাইতে পারেন তা হ'ল পুরানো স্কোরগুলি পরিষ্কার করা প্লেয়ারের মোট স্কোরের প্রভাব থেকে বাঁচানো। সেই খেলোয়াড়ের পদমর্যাদায় উঠার মূল কারণ (এবং অবশেষে তিনি কেন পুরোপুরি চার্টস থেকে নামবেন)।

এছাড়াও, যে ব্যক্তিরা কিছুক্ষণের জন্য সিরিয়াস খেলেন এবং দুর্দান্ত ট্র্যাক রেকর্ড অর্জন করেন, সম্ভবত তারা জেনে খুশি হবেন না যে তাদের অর্জনগুলি শেষ পর্যন্ত ম্লান হয়ে যাবে এবং অদৃশ্য হয়ে যাবে। এই সিস্টেমটি গুরুতরভাবে নিরুৎসাহিত করছে।

আপনি প্রতিটি স্কোরকে নিজেরাই মুছে ফেলার পরেও প্রতিটি খেলোয়াড়ের "মোট খেলানো খেলাগুলি" এবং "জয় / হারান অনুপাত" এর ক্যাশে রেখে সহজেই এটি ঠিক করা যায়।

সেই তথ্যের সাহায্যে আপনি সহজেই খেলোয়াড়ের কতটা জয় এবং ক্ষতির মুখ ফিরিয়ে নিতে পারেন এবং যখনই তিনি আবার খেলেন সেই অনুযায়ী সেগুলি আপডেট করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.