نشان کن
کد آگهی: KP484717667

پروژه شبیه سازی با ارنا

در سراسر کشور
در وبسایت پارسکدرز  (چند ساعت پیش)
دورکاری
اطلاعات شغل:
امکان دورکاری و کار در منزل: دارد
نوع همکاری:  پروژه‌ای
مهارت‌های مورد نیاز:
Arena
دات‌نت (.NET)
بازه حقوق:  از 300,000 تا 750,000 تومان
متن کامل آگهی:
سلام سلام وقتتون بخیر باشه من یک پروژه ی شبیه سازی دارم که از روی یک مقاله قراره انجام بشه تو بخش نرم افزار arena میخواستم ازتون کمک بگیرم که برام انجامش بدین اگر مایل هستید مقاله را براتون بفرستم import random import math # ----------------------- # تعریف پارامترهای مسئله # ----------------------- resources = {"doctors": 4, "paramedics": 4, "drivers": 4, "ambulances": 4, "medical\_cars": 4, "telemedicine": 4} # اولویت‌ها با وزن‌دهی بیشتر برای اولویت‌های خاص priorities = {     1: 0.02,   # 40% درخواست‌ها در اولویت 1     2: 0.15,   # 10% درخواست‌ها در اولویت 2     3: 0.25,   # 10% درخواست‌ها در اولویت 3     4: 0.25,   # 20% درخواست‌ها در اولویت 4     5: 0.25,   # 10% درخواست‌ها در اولویت 5     6: 0.08    # 10% درخواست‌ها در اولویت 6 (بیماران Telemedicine) } # مناطق جغرافیایی و زمان حمل و نقل (به دقیقه) areas = {1: 15, 2: 20, 3: 25, 4: 30} # تعداد شیفت‌ها shifts = 2 # ----------------------- # تابع هزینه # ----------------------- def calculate\_cost(solution):     """     محاسبه تخصیص منابع و زمان انتظار برای هر بیمار به صورت جداگانه.     :param solution: تخصیص منابع به درخواست‌ها.     :return: مجموع زمان انتظار برای هر بیمار.     """     patient\_times = {}  # ذخیره اطلاعات تخصیص منابع و زمان انتظار برای هر بیمار     for priority, percentage in priorities.items():         # تعداد درخواست‌های تصادفی از هر اولویت برای هر شیفت         num\_requests = random.randint(5, 15) \* shifts  # تعداد درخواست‌های فرضی از هر اولویت         patient\_times\[priority\] = \[\]         for \_ in range(num\_requests):             # منابع تخصیص‌یافته به این بیمار             allocated\_resource = solution\[f"priority\_{priority}"\]             # زمان خدمات و زمان انتظار برای این بیمار             if priority == 6:  # بیماران Telemedicine فقط به یک پزشک نیاز دارند                 service\_time = 10 if allocated\_resource == 1 else float('inf')             elif allocated\_resource > 0:                 # بیماران اولویت بالاتر زمان انتظار کمتری دارند (بیشترین به کمترین)                 service\_time = (1 / allocated\_resource \* 10) \* (6 - priority)             else:                 service\_time = float('inf')  # جریمه برای تخصیص صفر منابع             # زمان حمل‌ونقل تصادفی از مناطق (برای اولویت 6 نیازی به حمل و نقل نیست)             transport\_time = 0 if priority == 6 else random.choice(list(areas.values()))             # زمان انتظار کل             waiting\_time = service\_time + transport\_time             patient\_times\[priority\].append(waiting\_time)     return patient\_times # ----------------------- # الگوریتم Simulated Annealing # ----------------------- def simulated\_annealing():     # پارامترهای الگوریتم     initial\_temperature = 10       # دمای اولیه     final\_temperature = 0.5        # دمای نهایی     alpha = 0.99995                # نرخ کاهش دما     total\_iterations = 38000       # تعداد کل تکرارها     # مقداردهی اولیه     current\_solution = {f"priority\_{p}": random.randint(1, 10) for p in priorities.keys()}     current\_solution\["priority\_6"\] = 1  # بیماران Telemedicine فقط به یک پزشک نیاز دارند     best\_solution = current\_solution.copy()     best\_cost = calculate\_cost(current\_solution)     temperature = initial\_temperature     iterations = 0     while temperature > final\_temperature and iterations < total\_iterations:         # تولید یک جواب همسایه         neighbor\_solution = current\_solution.copy()         # ایجاد تغییرات تصادفی در چند اولویت         for \_ in range(random.randint(1, 3)):             priority\_to\_change = random.choice(list(priorities.keys()))             if priority\_to\_change == 6:                 continue  # اولویت 6 تغییر نمی‌کند و ثابت می‌ماند             neighbor\_solution\[f"priority\_{priority\_to\_change}"\] = max(                 1, neighbor\_solution\[f"priority\_{priority\_to\_change}"\] + random.randint(-3, 3)             )         # محاسبه هزینه همسایه         neighbor\_cost = calculate\_cost(neighbor\_solution)         # قانون پذیرش         if sum(\[sum(times) for times in neighbor\_cost.values()\]) < sum(\[sum(times) for times in best\_cost.values()\]) or random.random() < math.exp((sum(\[sum(times) for times in best\_cost.values()\]) - sum(\[sum(times) for times in neighbor\_cost.values()\])) / temperature):             current\_solution = neighbor\_solution             best\_cost = neighbor\_cost Salmasadat, \[1/7/2025 3:38 PM\] # به‌روزرسانی بهترین جواب             best\_solution = current\_solution         # کاهش دما         temperature \*= alpha         iterations += 1         # نمایش جزئیات پیشرفت         if iterations % 1000 == 0:             print(f"Iteration: {iterations}, Temperature: {temperature:.5f}, Current Best Cost: {sum(\[sum(times) for times in best\_cost.values()\]):.2f}")     return best\_solution, best\_cost # ----------------------- # اجرای الگوریتم # ----------------------- if name == "main":     best\_solution, best\_cost = simulated\_annealing()     print("Best Solution (Resource Allocation):", best\_solution)     for priority, times in best\_cost.items():         print(f"Priority {priority}: Total Requests = {len(times)}, Average Waiting Time = {sum(times)/len(times):.2f} minutes")

این آگهی از وبسایت پارسکدرز پیدا شده، با زدن دکمه‌ی تماس با کارفرما، به وبسایت پارسکدرز برین و از اون‌جا برای این شغل اقدام کنین.

هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک،‌ با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.
گزارش مشکل آگهی
تماس با کارفرما
این آگهی رو برای دیگران بفرست
نشان کن
گزارش مشکل آگهی
جستجوهای مرتبط
دوشنبه 24 دی 1403، ساعت 03:02