| فایل اولیهی تمرین را میتوانید از [این لینک](/contest/assignments/84381/download_problem_initial_project/308143/) دانلود کنید. |
| :--: |
شما به تازگی به عنوان مدیر ورزشی باشگاه فوتبال ریشهدار و پرطرفدار **«آذرخش»** انتخاب شدهاید. فصلی که گذشت، فصل پر فراز و نشیبی برای آذرخش بود. با وجود کسب سهمیه لیگ قهرمانان، هیئت مدیره برای رهایی از فشارهای ناشی از قوانین **«بازی جوانمردانه مالی» (Financial Fair Play)** و تامین بودجه لازم برای نوسازی زیرساختهای باشگاه، مجبور به فروش دو ستاره کلیدی تیم شد.
با فروش این دو بازیکن، مبلغ قابل توجهی به حساب باشگاه واریز شده، اما هواداران خشمگین و نگران آینده تیم هستند. شبکههای اجتماعی پر از هشتگهای اعتراضی شده و فشار رسانهها برای معرفی جانشینان این دو بازیکن به اوج خود رسیده است. در اولین کنفرانس خبری، شما با این وعده که «آذرخش قدرتمندتر از همیشه بازخواهد گشت» سعی در آرام کردن اوضاع داشتید.

شما در یک پنجره نقل و انتقالات بیرحم قرار گرفتهاید. از یک سو، قوانین سفت و سخت فیرپلی مالی به شما اجازه نمیدهد تمام پول حاصل از فروش را خرج کنید. شما تنها مجاز به استفاده از **۸۰ درصد** از مجموع مبلغ فروش این دو بازیکن برای خرید بازیکنان جدید هستید. از سوی دیگر، سرمربی تیم به شدت نگران افت کیفیت تیم است. شما باید با استفاده از علم داده، دو بازیکن جدید را شناسایی و جایگزین این دو بازیکن کنید. اما این یک خرید ساده نیست. شما باید یک شاهکار مدیریتی انجام دهید. پیدا کردن جفتی از بازیکنان که نه تنها از نظر فنی شبیه به دو بازیکن از دست رفته باشند، بلکه تا حدی با توجه به گزینهها کیفیت تیم را حفظ کرده و علاوه بر آن به فکر جوانگرایی هم باشید. در نهایت شما باید سیستمی را پیادهسازی کنید که آیدی دو بازیکن فروخته شده را دریافت کرده و با توجه به ویژگیهای بازیکنان یک لیست 5تایی از آیدی جفت بازیکنانی که قادر به پر کردن جای خالی ایشان هستند را برگرداند.
----------
### **معیار ارزیابی: (`PairScore`)** 📈
ارزیابی نهایی بر اساس یک امتیاز کلی به نام `PairScore` برای بهترین جفت پیشنهادی شما انجام خواهد شد. این امتیاز ترکیبی از **چهار فاکتور کلیدی** است:
1. **شباهت پروفایل (Profile Similarity):** اینکه ویژگیهای فنی بازیکنان جدید چقدر با بازیکنان فروخته شده **با توجه به پست تخصصی آنها** همخوانی دارد.
2. **حفظ کیفیت (Quality Maintenance):** اینکه کارایی تیم در آن پست خاص تا چه حد حفظ شده یا بهبود یافته است. صرفا *OVR* کلی ملاک نیست. اگر بازیکنان پیشنهادی باعث پایین آمدن *OVR* تیم شوند امتیاز منفی دریافت میکنند در غیر اینصورت امتیاز مثبت.
3. **فاکتور جوانی (Youth Factor):** به گزینههای جوانتر و آیندهدار امتیاز **بیشتری** تعلق میگیرد و اگر بازیکنان معرفی شده باعث افزایش میانگین سنی تیم شوند، شما امتیاز منفی دریافت خواهید کرد.
4. **ارزش مالی (Financial Value):** پیدا کردن گزینههایی که نسبت به قیمتشان، کیفیت بالایی ارائه میدهند (value for money)، یک امتیاز مثبت بزرگ محسوب میشود. هرچه صرفهجویی در بودجه بیشتر، امتیاز بیشتر.
> **هزینه خرید جفت پیشنهادی شما نباید از بودجه تعیین شده تجاوز کند.**
اگرچه فرمول دقیق و وزندهی این فاکتورها نزد کمیته داوری محفوظ است، اما یک راهحل موفق، راهحلی است که در هر چهار زمینه عملکردی متقاعدکننده و متعادل از خود به نمایش بگذارد.
----------
### **خروجی**
شما در نهایت باید یک تابع به زبان برنامهنویسی پایتون را ارسال کنید. این تابع باید**آیدی 2 بازیکن به فروش رفته و دیتاست کلی (با فرمت دیتافریم)** را دریافت کرده و آیدی یک بازیکن پیشنهادی به ازای هر کدام از فروخته شدهها *return* کند. (یعنی خروجی تابع باید دو آیدی باشد.). بازیکنان پیشنهادی شما با توجه به معیار `PairScore` تیم داوری سنجیده میشوند و امتیاز میگیرند.
> نکته: اگر خارج از notebook قرار داده شده قصد نوشتن برنامه را دارید، شما باید فایلی به نام `player_recommender.py` داشته باشید که در دل این برنامه تابعی به نام `player_recommender` وجود دارد.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.