آموزش شبیه سازی با پایتون ؟

آموزش شبیه سازی با پایتون ؟
آموزش شبیه سازی با پایتون ؟
شبیهسازی با پایتون یک مهارت کاربردی است که میتواند در بسیاری از حوزهها مانند علم داده، فیزیک، اقتصاد، مهندسی و غیره مفید باشد. در این راهنما، به شما آموزش میدهیم که چگونه با استفاده از پایتون یک شبیهسازی ساده را ایجاد کنید و ابزارهای مهمی که میتوانید برای شبیهسازی استفاده کنید را معرفی میکنیم.
۱. مقدمات: نصب کتابخانهها
پایتون دارای کتابخانههای قدرتمندی برای شبیهسازی و مدلسازی است. برخی از مهمترین کتابخانهها عبارتند از:
- NumPy: برای انجام محاسبات عددی سریع.
- Matplotlib: برای رسم نمودارها و مصور سازی.
- SimPy: یک کتابخانه اختصاصی برای شبیهسازی فرآیندهای گسسته.
- SciPy: برای محاسبات علمی و ریاضی.
برای نصب این کتابخانهها از دستورهای زیر استفاده کنید:
pip install numpy matplotlib simpy scipy
۲. شبیهسازی پایهای: شبیهسازی یک سیستم صف با SimPy
برای شروع، بیایید یک شبیهسازی ساده از یک سیستم صف را انجام دهیم. فرض کنید که مشتریان به یک بانک مراجعه میکنند و باید در صف منتظر بمانند تا یک کارمند به آنها خدمات دهد.
گام ۱: تعریف محیط و موجودیتها
ابتدا، محیط شبیهسازی و رفتار مشتریان را تعریف میکنیم. در SimPy، محیط (environment) برای مدیریت زمان و رویدادها استفاده میشود.
import simpy
import random
# زمان بین ورود مشتریان (به طور میانگین)ARRIVAL_INTERVAL = 5
# زمان سرویسدهی (به طور میانگین)
SERVICE_TIME = 3
# تعریف رفتار مشتری
def customer(env, name, counter):
print(f’{name} وارد بانک شد در زمان {env.now}‘)
with counter.request() as req:
yield req
print(f’{name} در حال دریافت خدمات است در زمان {env.now}‘)
yield env.timeout(SERVICE_TIME)
print(f’{name} بانک را ترک کرد در زمان {env.now}‘)
# تعریف فرآیند ورود مشتریان
def setup(env, counter):
i = 0
while True:
yield env.timeout(random.expovariate(1.0 / ARRIVAL_INTERVAL))
i += 1
env.process(customer(env, f’مشتری {i}‘, counter))
# تعریف محیط شبیهسازی و اجرا
env = simpy.Environment()
counter = simpy.Resource(env, capacity=1) # تنها یک کارمند در بانک
env.process(setup(env, counter))
env.run(until=20) # شبیهسازی را برای 20 واحد زمانی اجرا کن
توضیح کد:
simpy.Environment()
: محیطی را ایجاد میکند که در آن شبیهسازی انجام میشود.counter = simpy.Resource(env, capacity=1)
: یک منبع (resource) به نام “counter” را تعریف میکند که نشاندهنده کارمند بانک است. ظرفیت ۱ به معنای این است که تنها یک مشتری میتواند در هر زمان خدمات دریافت کند.customer(env, name, counter)
: فرآیند مشتری که وارد بانک میشود، خدمات میگیرد و سپس آن را ترک میکند.env.process(customer(...))
: فرآیند مشتری را به محیط اضافه میکند تا در شبیهسازی اجرا شود.env.run(until=20)
: شبیهسازی را برای ۲۰ واحد زمانی اجرا میکند.
۳. مصور سازی دادههای شبیهسازی با Matplotlib
اکنون بیایید دادههای شبیهسازی شده را با استفاده از Matplotlib مصور کنیم. فرض کنید میخواهیم تعداد مشتریان در صف را در هر لحظه از زمان نمایش دهیم.
گام ۲: ایجاد شبیهسازی و جمعآوری دادهها
import simpy
import random
import matplotlib.pyplot as plt
ARRIVAL_INTERVAL = 5SERVICE_TIME = 3
# لیست برای ذخیره تعداد مشتریان در صف در هر لحظه
queue_lengths = []
time_points = []
# رفتار مشتری
def customer(env, name, counter):
with counter.request() as req:
yield req
yield env.timeout(SERVICE_TIME)
# فرآیند ورود مشتریان
def setup(env, counter):
i = 0
while True:
yield env.timeout(random.expovariate(1.0 / ARRIVAL_INTERVAL))
i += 1
env.process(customer(env, f’مشتری {i}‘, counter))
# ثبت تعداد مشتریان در صف در هر لحظه
def monitor_queue(env, counter):
while True:
queue_lengths.append(len(counter.queue))
time_points.append(env.now)
yield env.timeout(1) # هر یک واحد زمانی ثبت کن
# محیط شبیهسازی
env = simpy.Environment()
counter = simpy.Resource(env, capacity=1)
env.process(setup(env, counter))
env.process(monitor_queue(env, counter)) # فرآیند نظارت بر صف
env.run(until=50)
# رسم نمودار
plt.plot(time_points, queue_lengths, label=“تعداد مشتریان در صف”)
plt.xlabel(‘زمان’)
plt.ylabel(‘تعداد مشتریان’)
plt.title(‘شبیهسازی صف بانک’)
plt.legend()
plt.show()
توضیح کد:
queue_lengths
: لیستی برای ذخیره تعداد مشتریان در صف در هر لحظه.time_points
: زمانهای ثبت دادههای صف.monitor_queue(env, counter)
: این تابع تعداد مشتریان در صف را در هر لحظه ثبت میکند.plt.plot(...)
: نمودار تعداد مشتریان در صف را بر اساس زمان رسم میکند.
۴. شبیهسازیهای پیشرفتهتر
پس از یادگیری اصول اولیه، میتوانید به شبیهسازیهای پیشرفتهتر بپردازید. چند ایده برای شبیهسازیهای پیچیدهتر:
- شبیهسازی سیستمهای شبکهای: شبیهسازی جریان داده در شبکه یا ترافیک وب.
- شبیهسازی سیستمهای مالی: مدلسازی و شبیهسازی تغییرات قیمت سهام یا بازارهای مالی.
- شبیهسازی سیستمهای بیولوژیک: مدلسازی رفتار سیستمهای زیستی مانند رشد جمعیت یا گسترش بیماریها.
۵. منابع یادگیری بیشتر
- SimPy Documentation: برای یادگیری بیشتر در مورد SimPy، مستندات رسمی آن را مطالعه کنید: SimPy Documentation.
- NumPy و SciPy: برای انجام محاسبات پیچیدهتر و استفاده از الگوریتمهای پیشرفته ریاضی، یادگیری NumPy و SciPy بسیار مفید است.
با یادگیری این ابزارها و تمرین مداوم، میتوانید شبیهسازیهای قدرتمند و کاربردی را در پایتون پیادهسازی کنید.
آموزش شبیه سازی با پایتون ؟
با همکاری آسان مقاله + پایان نامه من + دکتر تز
خدمات پایان نامه من :
پست های مرتبط

ژانویه 27, 2025

ژانویه 27, 2025

ژانویه 27, 2025

ژانویه 27, 2025

ژانویه 27, 2025
دیدگاهتان را بنویسید