فهرست بستن

دانلود دسته: پایتون

الگوریتم جستجوی اول عمق در پایتون برای حل سودوکو با توضیح سطر به سطر کدها

الگوریتم‌های پیمایش گراف برای مشاهده تمام رأس‌های یک گراف یا جستجوی آن مورد استفاده قرار می‌گیرند. بسیاری از مسائل عملی می‌تواند در قالب یک مسئله پیمایش گراف تعریف گردد. یکی از مشهورترین الگوریتم‌های پیمایش گراف جستجوی اول عمق می‌باشد. شروع به کار این الگوریتم از رأسی است که به عنوان ریشه گراف در نظر گرفته شده است. سپس حرکت به‌سوی رأس‌های مجاوره مشاهده نشده در عمق خواهد بود. بعبارتی وقتی به اولین رأس مجاور ریشه رسیدیم، نه به سراغ رأس‌های مجاورِ دیگرِ ریشه، بلکه به سراغ رأس‌های مجاور رأس مشاهده شده می‌رویم و این فرآیند تکرار می‌گردد تا در جهت عمق دیگر رأس مشاهده نشده‌ای باقی نمانده باشد. در این صورت با برگشت به سطح پیشین به پیمایش رأس مجاور دیگر به همین منوال می‌پردازیم.

در این محصول به ارائه پیاده‌سازی پایتون جستجوی اول عمق برای حل سودوکو اقدام شده است. نمونه کد زیر نحوه استفاده از کلاس حل کننده سودوکوی ارائه شده را نشان می‌دهید:

board = [["5", ".", ".", ".", ".", ".", ".", ".", "."], 
         ["۲", "۴", ".", "۱", ".", ".", ".", ".", "."], 
         [".", "۲", ".", ".", ".", ".", ".", ".", "."], 
         [".", ".", "۳", ".", ".", ".", ".", ".", "."], 
         [".", ".", ".", ".", "۴", ".", ".", ".", "."], 
         [".", ".", ".", ".", ".", ".", ".", ".", "۹"], 
         [".", ".", ".", ".", ".", ".", "۷", ".", "."], 
         [".", ".", ".", ".", ".", ".", ".", "۸", "."], 
         [".", ".", ".", ".", ".", "۶", ".", ".", "."]]

sudoku = Sudoku(board, 9, 9)
print(sudoku.solve())
print(sudoku)

 

محتویات بسته:

  • فایل توضیح سطر به سطر کدها (ده صفحه)
  • فایل پایتون کلاس حل کننده سودوکو

امیدوارم از خرید این بسته نهایت رضایت را داشته باشید. با ما در تماس باشید:

contact [at] projelecom.ir

الگوریتم جستجوی اول عمق در پایتون برای حل هزار تو با توضیح سطر به سطر کدها

الگوریتم‌های پیمایش گراف برای مشاهده تمام رأس‌های یک گراف یا جستجوی آن مورد استفاده قرار می‌گیرند. بسیاری از مسائل عملی می‌تواند در قالب یک مسئله پیمایش گراف تعریف گردد. یکی از مشهورترین الگوریتم‌های پیمایش گراف جستجوی اول عمق می‌باشد. شروع به کار این الگوریتم از رأسی است که به عنوان ریشه گراف در نظر گرفته شده است. سپس حرکت به‌سوی رأس‌های مجاوره مشاهده نشده در عمق خواهد بود. بعبارتی وقتی به اولین رأس مجاور ریشه رسیدیم، نه به سراغ رأس‌های مجاورِ دیگرِ ریشه، بلکه به سراغ رأس‌های مجاور رأس مشاهده شده می‌رویم و این فرآیند تکرار می‌گردد تا در جهت عمق دیگر رأس مشاهده نشده‌ای باقی نمانده باشد. در این صورت با برگشت به سطح پیشین به پیمایش رأس مجاور دیگر به همین منوال می‌پردازیم.

در این محصول اقدام به ارائه پیاده‌سازی پایتون الگوریتم جستجوی اول عمق برای حل هزار تو شده است. هزار تو، ماز یا پیچ‌راهه یک ساختار پیچ در پیچ است که باید در آن مسیری برای رسیدن از نقطه شروع به پایان پیدا شود. مسیرهای انحرافی بسیاری در این ساختار موجود است که به بن بست ختم می‌شود. در این محصول توضیح سطر به سطر کد نوشته شده نیز ارائه گشته است که جنبه آموزشی بسیاری دارد. کد پایتون ارائه شده حاوی یک تابع با عنوان find_path می‌باشد که تنها ورودی آن ساختار یک هزار تو می‌باشد. این هزار تو دو بعدی است پس ما لیستی خواهیم داشت تا در آن هر سطر از هزارتو را نگهداری نماییم. هر سطر نیز خود باید به تعداد ستونهای محیط مورد نظر عنصر داشته باشد. این عناصر را ما ۰ یا ۱ در نظر می‌گیریم و ۰ را مسدود بودن مسیر و ۱ را باز بودن مسیر تفسیر می‌نماییم. مثال زیر نحوه فراخوانی تابع برای یک محیط را نشان می دهد. خروجی تابع نیز طول کوتاه‌ترین مسیر است.

grid = [[1,0,1,1,1,1],
        [۱,۰,۱,۰,۱,۰],
        [۱,۰,۱,۰,۱,۱],
        [۱,۱,۱,۰,۱,۱]]
print(find_path(grid))

 

محتویات بسته:

  • فایل توضیح سطر به سطر کدها
  • فایل پایتون برای حل هزار تو و پیدا کردن طول کوتاهترین مسیر از نقطه شروع به پایان
  • فایل پایتون ویرایش شده برای داشتن طول و اندیس‌های قطعات مسیر به عنوان خروجی

امیدوارم از خرید این بسته نهایت رضایت را داشته باشید. با ما در تماس باشید:

contact [at] projelecom.ir

 

برای مشاهده حل هزار تو با الگوریتم جستجوی اول سطح به این آدرس مراجعه نمایید.

الگوریتم جستجوی اول سطح در پایتون برای حل هزار تو با توضیح سطر به سطر کدها

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

در این محصول اقدام به ارائه پیاده‌سازی پایتون الگوریتم جستجوی اول سطح برای حل هزار تو شده است. هزار تو، ماز یا پیچ‌راهه یک ساختار پیچ در پیچ است که باید در آن مسیری برای رسیدن از نقطه شروع به پایان پیدا شود. مسیرهای انحرافی بسیاری در این ساختار موجود است که به بن بست ختم می‌شود. در این محصول توضیح سطر به سطر کد نوشته شده نیز ارائه گشته است که جنبه آموزشی بسیاری دارد. کد پایتون ارائه شده حاوی یک تابع با عنوان maze_search می‌باشد که تنها ورودی آن ساختار یک هزار تو می‌باشد. این هزار تو دو بعدی است پس ما لیستی خواهیم داشت تا در آن هر سطر از هزارتو را نگهداری نماییم. هر سطر نیز خود باید به تعداد ستونهای محیط مورد نظر عنصر داشته باشد. این عناصر را ما ۰ یا ۱ در نظر می‌گیریم و ۰ را مسدود بودن مسیر و ۱ را باز بودن مسیر تفسیر می‌نماییم. مثال زیر نحوه فراخوانی تابع برای یک محیط را نشان می دهد. خروجی تابع نیز طول مسیر یافت شده است.

        ...

grid = [[1,0,1,1,1,1],
        [۱,۰,۱,۰,۱,۰],
        [۱,۰,۱,۰,۱,۱],
        [۱,۱,۱,۰,۱,۱]]
print(maze_search(grid))

 

محتویات بسته:

  • فایل توضیح سطر به سطر کدها
  • فایل پایتون برای حل هزار تو و پیدا کردن طول مسیری از نقطه شروع به پایان
  • فایل پایتون ویرایش شده برای داشتن طول و اندیس‌های قطعات مسیر به عنوان خروجی

امیدوارم از خرید این بسته نهایت رضایت را داشته باشید. با ما در تماس باشید:

contact [at] projelecom.ir

 

برای مشاهده حل هزار تو با الگوریتم جستجوی اول عمق به این آدرس مراجعه نمایید.

فایل پایتون مثال پیشرفته استفاده از کتابخانه PuLP برای برنامه‌ریزی خطی

در این بسته فایل پایتون حل مسئله برنامه‌ریزی زمان کاری وسایل خانگی برای داشتن مینیمم پیک مصرف برق مطابق با قسمت نخست مقاله زیر:

An Integer Linear Programming and Game Theory Based Optimization for Demand-side Management in Smart Grid

خدمت شما ارائه می‌شود. برای حل این مسئله از کتابخانه PuLP و حل کننده مسائل برنامه‌ریزی خطی GLPK استفاده شده است. دقت نمایید برای استفاده از این فایل باید کتابخانه PuLP و همچنین بسته نرم افزاری GLPK را نصب نموده باشید. خروجی توان مصرفی در افق برنامه‌ریزی به شکل زیر می‌باشد:

محتویات بسته:

  • فایل مقاله
  • فایل پایتون مدل برنامه‌ریزی خطی با استفاده از PuLP
  • تصاویر خروجی (بیشترین مصرف برق در طی افق برنامه‌ریزی مطابق با مقاله برابر ۱٫۲۲)

امیدوارم از خرید این بسته نهایت رضایت را داشته باشید. با ما در تماس باشید:

contact [at] projelecom.ir

کد پایتون مثال معرفی کتابخانه پایتون برای منطق فازی

در این بسته کدهای مثال معرفی کتابخانه پایتون برای منطق فازی قرار داده شده است. در این مثال یک سیستم استنتاج فازی بسیار ساده برای تعیین لبه در تصویر طراحی شده است. ورودی های سیستم فازی، گرادیان تصویر gray scale و همچنین گرادیان مشخصه رنگ اشباع می باشد. سه مجموعه فازی برای پوشش دامنه تعریف متغیرهای ورودی و خروجی مورد استفاده قرار گرفته است. توضیحات این کد در مثال زیر قابل مشاهده می باشد:

معرفی کتابخانه پایتون برای منطق فازی

هدف از خرید این بسته حمایت از ادامه فعالیت سایت می باشد.

محتویات بسته:

  • فایل مثال سیستم استنتاج فازی
  • تصویر مورد استفاده در مثال بعنوان ورودی

امیدوارم از خرید این بسته نهایت رضایت را داشته باشید. با ما در تماس باشید:

contact [at] projelecom.ir

مدلسازی سه بعدی ربات موازی ساده در پایتون

در این بسته کدهای شبیه‌سازی سه بعدی ربات موازی صفحه‌ای با دو بازو توسط کتابخانه PyOpenGl در پایتون ارائه شده است. برای انجام شبیه‌سازی حل سینماتیک مستقیم و معکوس ربات ضروری می‌باشد، از این رو کلاس robot برای انجام این وظیفه طراحی شده است. در این کلاس روش نیوتن-کریلوف برای حل دسته معادلات غیرخطی که زاویه مفاصل را بر اساس موقعیت نهایی end effector یا بالعکس پیدا می کند، استفاده شده است. برای اجرای این کدها نصب کتابخانه‌های زیر ضروری می‌باشد:

  • Numpy
  • Scipy
  • matplotlib
  • PyOpenGl

خروجی نهایی کد برای شبیه‌سازی سه بعدی بصورت زیر می‌باشد:

محتویات بسته:

  • کلاس robot برای حل سینماتیک مستقیم و معکوس ربات
  • فایل شبیه سازی سه بعدی با استفاده از PyOpenGl

امیدوارم از خرید این بسته نهایت رضایت را داشته باشید. با ما در تماس باشید:

contact [at] projelecom.ir

شبیه سازی سیستم های مرتبه کسری در پایتون

حسابان کسری برای اولین بار حدود سیصد سال پیش همزمان با ظهور مباحث حسابان معمولی مطرح گردید. اولین استفاده از حسابان کسری به احتمال زیاد در آثار لایبنیز و هوپیتال در سال ۱۶۹۵ انجام پذیرفته است که در آن به مشتق با مرتبه نیم اشاره گردیده است. همچنین در یکی از مکاتبات بین یوهان برنولی و لایبنیز در ۱۶۹۵، لایبنیز به مشتق مرتبه عمومی اشاره نموده است. در سالهای ۱۷۳۰ و ۱۷۷۲ دانشمندان مطرحی همچون اویلر و لاگرانژ بطور غیر مستقیم به مباحث حسابان کسری پرداخته‌اند. در سال ۱۸۱۲ لاپلاس مشتق مشتق مرتبه کسری را با استفاده از انتگرال تعریف نمود. در سال ۱۸۱۹ و ۱۸۲۲ لاکرویکس و فوریه مشتق با مرتبه دلخواه را در آثارشان ذکر نمودند. اولین استفاده از عملگرهای کسری در سال ۱۸۲۳ توسط آبل در پاسخ به مسئله خم هم‌زمانی استفاده گردید. لیوویل در سال ۱۸۳۲ اولین کار عمده خود را بر روی حسابان مرتبه کسری انجام داد که در آن تعاریف خود را بر روی مسائل تئوری اعمال نمود. گرونوالد در ۱۸۶۷ بر روی عملگرهای کسری کار کرد. ریمان طی تحصیل خود انتگرال‌گیری مرتبه کسری را توسعه داده و در سال ۱۹۸۲ در قالب یک مقاله نتایج خود را منتشر نمود. لتنیکوو بین سالهای ۱۸۶۸ تا ۱۸۷۲ مقالات متعددی در مورد این موضوع منتشر نمود. بین سالهای ۱۹۰۰ تا ۱۹۷۰ روند مطالعه بر روی حسابان مرتبه کسری توسعه یافت و دانشمندان متعددی بر روی این مبحث تمرکز نمودند. در حال حاضر کاربردهای حسابان کسری برای مدلسازی دقیق‌تر پدیده‌های طبیعی که قبل‌تر با حسابان مرتبه صحیح مدل شده‌اند، رو به گسترش می‌باشد. پدیده‌های طبیعی اکثرا کسری می‌باشند ولی با این حال میزان کسری بودن اکثر آن‌ها بسیار اندک است. یک مثال متداول برای سیستمهای مرتبه کسری رابطه جریان و ولتاژ در خطوط انتقال نیمه‌بینهایت یا انتشار گرما در یک جسم صلب نیمه‌بینهایت می‌باشد.
دلیل عمده‌ای که تا کنون مانع از توسعه مدلهای مرتبه کسری شده‌است نبودن روشهای حل برای معادلات دیفرانسیلی مرتبه کسری می‌باشد. در حال حاضر روشهای مختلفی برای تقریب مشتق و انتگرال مرتبه کسری در طیف وسیعی از کاربردها مورد استفاده قرار می‌گیرد. از بین این کاربردها حسابان کسری در مباحث فیزیک، مهندسی برق، سیستمهای کنترل، روباتیک، پردازش سیگنال، مهندسی پزشکی و … نقش عمده‌ای به خود اختصاص داده است. همچنین یکی از مهمترین کاربردهای حسابان کسری در مباحث مربوط به نظریه آشوب می‌باشد.

در ادامه به معرفی کتابخانه‌های موجود برای شبیه‌سازی حسابان مرتبه کسری و کنترل سیستمهای مرتبه کسری در متلب پرداخته می شود:

جعبه‌ابزار FOMCON

FOMCON جعبه ابزار توسعه داده شده برای نرم افزار متلب جهت شبیه سازی سیستمهای مرتبه کسری، طراحی کنترلر و شناسایی این سیستمها می‌باشد.  این جعبه ابزار دارای رابط کاربری برای برخی وظایف طراحی و شناسایی می‌باشد که کار با آن را تسهیل نموده است.

جعبه‌ابزار CRON

توسعه جعبه ابزار کرون از سالهای ۱۹۹۳ و ۱۹۹۴ آغاز شده و هر یک از ابزارهای موجود در آن به شکل جداگانه برای مسائل منفرد از حسابان و سیستمهای کسری ارائه گردیده است. در ابتدا این ابزارها با زبان برنامه‌نویسی پاسکال و در محیط MS DOS توسعه داده شده بودند ولی بعدها برای نرم‌افزار متلب بازنویسی شدند. ابزار موجود در کرون در سه دسته طبقه‌بندی می‌گردد:

  • ابزارهای ریاضی: ابزارهایی برای محاسبه مشتق غیر صحیح (مرتبه کسری)، معادلات دیفرانسیل مرتبه کسری، معادلات مشخصه مرتبه کسری، اپراتورهای دیفرانسیلی مرتبه کسری پیچیده، سیستمهای مرتبه کسری و تبدیل عکس لاپلاس توابع تبدیل مرتبه کسری
  •  ابزار شناسایی سیستمهای مرتبه کسری
  •  ابزار کنترلی کرون

لازم به ذکر است بیشتر این ابزارها برای سیستمهای تک ورودی و تک خروجی توسعه یافته‌اند.

جعبه‌ابزار NINTEGER

NINTEGER جعبه‌ابزار ساخته شده برای نرم‌افزار متلب جهت طراحی و توسعه کنترل کننده‌های مرتبه کسری برای سیستمهای تک ورودی و تک خروجی می‌باشد. تمامی کدهای این جعبه‌ابزار به صورت باز جهت تغییر و توسعه توسط مهندسین در دسترس می‌باشد.

توابع موجود در کتابخانه Chebfun

Chebfun یک سیستم نرم‌افزاری متن باز برای محاسبات عددی با توابع می‌باشد. پایه ریاضی این کتابخانه درون‌یابی چند جمله‌ای تکه‌ای می‌باشد. Chebfun قابلیت وسیعی در کار با عملگرهای مشتقی و انتگرالی خطی و غیرخطی مختلف دارد. پایه‌های علمی استفاده شده در نوشتن این کتابخانه بهمراه مثالهای متعدد در کتابی گنجانده شده‌است. با وجود اینکه این کتابخانه برای روشهای عددی بسیار نیرومند می‌باشد، در زمینه کنترل و طراحی و توسعه کنترل کننده‌های مرتبه کسری هیچ راه حلی ندارد.

توابع متلب ارائه شده بهمراه کتاب Fractional Order Nonlinear Systems: Modeling, analysis and simulation

در کتاب Fractional Order Nonlinear Systems: Modeling, analysis and simulation، توابعی برای شبیه‌سازی سیستمهای غیرخطی مرتبه کسری ارائه شده‌است. علاوه بر آن به شبیه‌سازی سیستمهای مرتبه کسری آشوبی نیز پرداخته شده‌است.

کدهای ارائه شده در این بسته شامل پیاده سازی پایتون کدهای متلب موجود در کتاب Fractional Order Nonlinear Systems: Modeling, analysis and simulation برای شبیه سازی سیستمهای آشوبی مرتبه کسری چن و لورنز و کنترل مد لغزشی آنها مطابق مقاله

Chen, Di-yi, et al. “Control of a class of fractional-order chaotic systems via sliding mode.” Nonlinear Dynamics 67.1 (2012): 893-901.

می باشد.

محتویات بسته:

  • شبیه سازی سیستم آشوبی مرتبه کسری چن chensim.py
  • شبیه سازی سیستم آشوبی مرتبه کسری لورنز lorenzsim.py
  • کنترل سیستم آشوبی مرتبه کسری چن با کنترل مد لغزشی FracSimu.py
  • کنترل سیستم آشوبی مرتبه کسری چن با کنترل مد لغزشی در حضور اغتشاش FracSimu1.py
  • کنترل سیستم آشوبی مرتبه کسری لورنز با کنترل مد لغزشی FracSimu2.py

امیدوارم از خرید این بسته نهایت رضایت را داشته باشید. با ما در تماس باشید.

برخی خروجی کدها به شکل زیر می باشد:

کتابخانه حل کننده الگوریتم کرم شب تاب (FFA) در پایتون

یکی از الگوریتم‌های فرا ابتکاری شناخته شده در زمینه بهینه‌سازی الگوریتم کرم شب‌تاب (Firefly algorithm) می‌باشد. در این بسته کلاس حل کننده برای این الگوریتم به همراه یک مثال ارائه شده است. توضیحات این الگوریتم و نحوه استفاده از کلاس در این آدرس موجود می‌باشد لذا حتما مطالعه فرمایید.

امیدواریم که از خرید این بسته نهایت رضایت را داشته باشید.

محتویات بسته:

  • فایل پایتون کلاس حل کننده (Solver) الگوریتم بهینه‌سازی کرم شب تاب
  • فایل پایتون مثال استفاده از الگوریتم برای حل یک مسئله بهینه‌سازی نمونه

طراحی کنترلر فضای حالت برای سیستم‌های خطی با رؤیتگر حالت و جایابی قطب در پایتون

کنترل فضای حالت بعنوان یکی از شاخه‌های اصلی تئوری کنترل مورد توجه بسیاری از دانشمندان قرار گرفته است. همچنین تحقیقات زیادی بر روی این مبحث انجام می‌پذیرد. کاربرد عملی این شاخه از کنترل نیز بیشتر معطوف به کاربردهای هدایت و ناوبری سیستم‌های پروازی می‌باشد. علی‌رغم اینکه اکثر سیستم‌های واقعی دارای دینامیک غیرخطی می‌باشند، با توجه به اینکه اهداف کنترلی در ناحیه کاری کوچکی برای سیستم دنبال می‌شود، خطی سازی و استفاده از مدل‌های خطی پر کاربرد می‌باشد. آشنایی با نحوه شبیه سازی سیستم های خطی در فضای حالت و کنترل این سیستمها برای هر مهندسی ضروری می‌باشد. در بسته آماده شده، برنامه‌ای برای شبیه سازی سیستم‌های خطی و طراحی کنترلر فضای حالت با جایابی قطبها و طراحی رویتگر حالت نوشته شده است که برای شروع کار با سیستم‌های خطی (و حتی غیرخطی) بسیار مناسب می‌باشد. برنامه در زبان برنامه نویسی پایتون که به سرعت در حال گرفتن جایگاه نرم افزار متلب می‌باشد نوشته شده است. برای نوشتن برنامه از کتابخانه‌های Numpy، SciPy و Matplotlib استفاده شده است. برای استفاده از این کد آشنایی متوسطی با زبان برنامه‌نویسی پایتون و کتابخانه‌های مذکور مورد نیاز می‌باشد.

خروجی شبیه‌سازی‌های این برنامه به شکل زیر می‌باشد:

۱) خروجی سیستم و حالت‌های سیستم به ورودی پله واحد بدون کنترلر

۲) خروجی سیستم و حالت‌های سیستم به ورودی پله واحد با کنترلر فضای حالت بدون استفاده از رویتگر

۳) خروجی سیستم و حالت‌های سیستم به ورودی پله واحد با کنترلر حالت و رویتگر (همانطور که مشاهده می شود با نزدیکتر شدن مدل و کنترلر به حالت عملی و واقعی، عمل کنترل دشوارتر می‌شود و نیاز به تامل بیشتری در طراحی دارد. وجود فروجهش برای بسیاری از سیستم‌ها بخصوص الکتریکی قابل قبول نمی باشد و بایستی با در نظر گرفتن tradeoff ها اصلاح گردد.)

امیدواریم که از خرید این بسته نهایت رضایت را داشته باشید.

محتویات بسته:

  • فایل برنامه شبیه‌سازی و کنترل سیستم خطی در فضای حالت با استفاده از جایابی قطب و رویتگر حالت