توضیحات کلی پروژه:
هدف این پروژه، توسعه یک برنامه شبیهسازی (Simulation) برای مدلسازی عملکرد سیستم ارائه خدمات در یک بانک است. این برنامه باید رفتار مشتریان، کارمندان (کounters) و به ویژه، مکانیزمهای مختلف صفبندی و تخصیص اولویت را شبیهسازی کند. خروجی نهایی باید آمار و نمودارهایی برای تحلیل عملکرد سیستم ارائه دهد.
جزئیات و ویژگیهای فنی پروژه:
1. اجزای اصلی سیستم:
مشتریان (Customers): در بازههای زمانی تصادفی به سیستم وارد میشوند. هر مشتری دارای یک نوع خدمت (عادی، ویژه) و یک زمان سرویس مورد انتظار است.
کارمندان (Counters): تعداد مشخصی کارمند (مثلاً 2 یا 3 نفر) برای سرویسدهی به مشتریان وجود دارد.
صف (Queue): یک یا چند صف برای انتظار مشتریان.
2. سناریوهای شبیهسازی (الگوریتمهای مدیریت صف):
برنامه باید بتواند حداقل دو سناریوی زیر را پشتیبانی کند:
سناریوی 1: صف واحد با چند کارمند (Single Queue Multiple Servers - SQMS)
در این مدل، تمام مشتریان در یک صف واحد قرار میگیرند و اولین کارمند آزاد، مشتری اول صف را سرویس میدهد.
سناریوی 2: سیستم اولویتبندی (Priority Queueing)
مشتریان به دو دسته عادی (Normal) و ویژه (Priority) (مثلاً سالمندان یا مشتریان پریمیوم) تقسیم میشوند.
مشتریان ویژه بدون توجه به نوبت، ابتدا سرویس میگیرند. اگر چند مشتری ویژه وجود داشته باشد، بین خودشان به صورت First-Come, First-Served (FCFS)处理 میشوند.
3. قابلیتهای ضروری برنامه:
ورودیهای پویا: امکان تنظیم پارامترهای شبیهسازی توسط کاربر:
نرخ ورود مشتریان (میانگین زمان بین ورود دو مشتری).
تعداد کارمندان (Counters).
توزیع زمان سرویسدهی (مثلاً توزیع نرمال یا نمایی).
درصد مشتریان دارای اولویت.
زمان کل شبیهسازی.
محاسبات آماری: برنامه باید در حین شبیهسازی، آمار زیر را محاسبه و ثبت کند:
میانگین زمان انتظار در صف برای هر نوع مشتری.
میانگین زمان spent در سیستم برای هر نوع مشتری.
تعداد مشتریان سرویس شده.
نرخ utilization هر کارمند (چند درصد از زمان مشغول بوده است).
خروجی و گزارشگیری: نمایش آمار نهایی در قالب:
گزارش متنی در کنسول یا یک فایل خروجی.
نمودارهای گرافیکی (ضروری) برای مقایسه بهتر نتایج (مثلاً رسم نمودار میلهای برای مقایسه زمان انتظار در دو سناریو).
تکنولوژیهای پیشنهادی:
زبان برنامهنویسی: پایتون (توصیه اکید) به دلیل کتابخانههای قدرتمندش برای شبیهسازی و رسم نمودار. گزینههای دیگر: جاوا، سی++.
کتابخانههای پایتون:
SimPy یا SimPy (اختیاری، برای مدیریت رویدادهای گسسته).
Matplotlib یا Seaborn (برای رسم نمودارها).
NumPy (برای تولید اعداد تصادفی و محاسبات آماری).
رابط کاربری: یک رابط خط فرمان (CLI) کاملاً交互式 و واضح کافی است. نیازی به GUI سنگین نیست.
الزامات و انتظارات از فریلنسر:
تسلط قوی به مفاهیم شبیهسازی و مدلسازی.
تسلط کامل به یکی از زبانهای پیشنهادی (ترجیحاً پایتون) و کتابخانههای مربوطه.
درک عمیق از الگوریتمهای زمانبندی و مدیریت صف.
توانایی پیادهسازی محاسبات آماری و تولید گزارش.
توانایی رسم نمودارهای واضح و گویا برای تجزیه و تحلیل نتایج.
ارائه کدهای تمیز، ماژولار و کامنتگذاری شده.
ارائه یک مستندات فنی крат که نحوه اجرا و تنظیم پارامترها را توضیح دهد.
خروجیهای قابل تحویل:
سورس کد کامل و کاملاً注释گذاری شده.
یک فایل README.md برای راهنمایی نحوه اجرای برنامه.
یک نمونه خروجی (گزارش متنی و نمودارها) برای یک سناریوی از پیش تعریف شده.
(اختیاری) یک ویدیوی کوتاه که اجرای برنامه و خروجی آن را نشان میدهد.
این آگهی از وبسایت کارلنسر پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت کارلنسر برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.