این برنامه مربوط به بازی دوز (بازی TicTacToe) است که به زبان سی پلاس پلاس و با استفاده از شیءگرایی و مفهوم کلاس نوشته شده است. در این پروژه برای محیط بازی یک آرایه دو بعدی ۳ در ۳ در نظر گرفته شده و دو بازیکن با هم به رقابت می پردازند.
شکل زیر نمونه ای از اجرای پروژه را نمایش می دهد:
بازی TicTacToe با CPP
برای دانلود پروژه بازی دوز (بازی TicTacToe) به زبان C++ بر روی لینک زیر کلیک کنید:
درختان تصمیم گیری یکی از سادهترین و قابل فهم ترین نوع الگوریتم های دسته بندی هستند که در داده کاوی و کاربردهای مربوطه استفاده می شوند. درختان تصمیم گیری در عین سهولت دارای مشکلاتی نظیر عدم پایداری، حساسیت به نویز، و عدم امکان استفاده در مسایل با خروجیهای دارای همپوشانی می باشند. فازی سازی درختان تصمیمگیری یکی از روشهایی است که در آن سعی میشود ضمن برطرف کردن مشکلات درختان تصمیمگیری دقت آنها را افزایش داده و امکان استفاده از آنها را در مسایل با خروجی های همپوشا فراهم آورد.
در این گزارش انواع درختان تصمیمگیری کلاسیک با درختان تصمیمگیری فازی مقایسه شده در عینحال پارامترهای مربوط به درختان تصمیمگیری فازی نیز مورد ارزیابی قرار می گیرد. برای این منظور یک نرمافزار شی گرا تحت زبان Matlab تهیه شده است که از طریق آن ارزیابی و آزمون این الگوریتمها تسهیل میگردد. این نرمافزار به گونهای توسعه داده شده است که امکان استفاده از آن به عنوان یک جعبه ابزار برای Matlab نیز وجود داشته باشد و استفاده از آن محدود به آزمایشهای انجام گرفته نشود.
فناوری تشخیص حروف که از آن به عنوان OCR نام میبرند یکی از انواع نرم افزارهای کامپیوتری است که برای ترجمه تصاویر حاوی دست نوشته ها یا تایپ نوشته های غالباً ثبت شده توسط اسکنر به متن و حروف قابل درک برای کامپیوتر استفاده می شود. این فناوری از تشخیص قالب و الگو، هوش مصنوعی و چشم ماشینی استفاده می کند تا متن هایی که به صورت پرینت شده یا دست نوشته روی کاغذهای معمولی در اختیار داریم را به متن های قابل ویرایش توسط نرم افزارهای ادیتور متن با کامپیوتر بدل نمایند.
OCR برای تبدیل کردن تصاویر محو و مبهم به متن های قابل درک و ویرایش مورد استفاده قرار می گیرد و اشکال گرافیکی را به کدهای ASCII و Unicode تبدیل می کند به شکلی که فونت، سایز، استایل، صفحه آرایی و تمام مختصات پاراگرافی آنها قابل ویرایش باشد.
برای اجرای برنامه از میان فایل های موجود، روی فایل robo_ctrl_panel.m دابل کلیک کنید. پس از اجرای برنامه، پنجره اصلی آن همانند شکل زیر نمایش داده میشود. این پنجره، پنجره اصلی برنامه بوده که کنترل ربات مورد بررسی با استفاده از آن صورت میگیرد.
پیاده سازی مقاله یادگیری تقویتی بیدرنگ برای یک ربات واقعی در محیط واقعی با متلب
برای دانلود فایل مقاله بر روی لینک زیر کلیک نمایید:
جستجوی عمق اول (Depth-first Search یا به اختصار DFS) یک الگوریتم پیمایش گراف است که برای پیمایش یا جستجوی یک درخت یا یک گراف به کار میرود. الگوریتم از ریشه شروع میکند (در گرافها و یا درختهای بدون ریشه راس دلخواهی به عنوان ریشه انتخاب میشود) و در هر مرحله همسایههای رأس جاری را از طریق یالهای خروجی رأس جاری به ترتیب بررسی کرده و به محض روبهرو شدن با همسایهای که قبلاً دیده نشده باشد، به صورت بازگشتی برای آن رأس به عنوان رأس جاری اجرا میشود. در صورتی که همه همسایهها قبلاً دیده شده باشند، الگوریتم عقبگرد میکند و اجرای الگوریتم برای رأسی که از آن به رأس جاری رسیدهایم، ادامه مییابد. به عبارتی الگوریتم تا آنجا که ممکن است، به عمق بیشتر و بیشتر میرود و در مواجهه با بن بست، عقبگرد میکند. این فرایند تا زمانی که همه ی رأسهای قابل دستیابی از ریشه دیده شوند ادامه مییابد. از نقطه نظر عملی، برای اجرای الگوریتم، از یک پشته استفاده میشود. بدین ترتیب که هر بار با ورود به یک رأس دیده نشده، آن رأس را در پشته قرار میدهیم و هنگام عقبگرد رأس را از پشته حذف میکنیم. بنابراین در تمام طول الگوریتم اولین عنصر پشته رأس در حال بررسی است. جزئیات پیادهسازی در ادامه خواهد آمد.
در ادامه قصد داریم برنامهای بنویسیم که گراف زیر را به روش DFS پیمایش کند و ترتیب رؤیت گره ها را در خروجی چاپ نماید (فرزندان یک گره به ترتیب حروف الفبا رؤیت شوند). فرض میکنیم که جستجو از گره C که ما شماره آنرا ۲ در نظر گرفتهایم شروع شده است ولی برنامه این قابلیت را دارد که با تغییر این عدد، بتوانیم از هر گره دلخواه دیگری نیز شروع کنیم.
گراف نمونه برای پیمایش
برای دانلود فایل برنامه مربوط به حل این مسئله با استفاده از الگوریتم جستجوی اول عمق (DFS) با Matlab همراه با فایل معرفی کامل روش DFS و توضیحات خط به خط کد برنامه بر روی لینک زیر کلیک نمایید:
جستجوی عمق اول (Depth-first Search یا به اختصار DFS) یک الگوریتم پیمایش گراف است که برای پیمایش یا جستجوی یک درخت یا یک گراف به کار میرود. الگوریتم از ریشه شروع میکند (در گرافها و یا درختهای بدون ریشه راس دلخواهی به عنوان ریشه انتخاب میشود) و در هر مرحله همسایههای رأس جاری را از طریق یالهای خروجی رأس جاری به ترتیب بررسی کرده و به محض روبهرو شدن با همسایهای که قبلاً دیده نشده باشد، به صورت بازگشتی برای آن رأس به عنوان رأس جاری اجرا میشود. در صورتی که همه همسایهها قبلاً دیده شده باشند، الگوریتم عقبگرد میکند و اجرای الگوریتم برای رأسی که از آن به رأس جاری رسیدهایم، ادامه مییابد. به عبارتی الگوریتم تا آنجا که ممکن است، به عمق بیشتر و بیشتر میرود و در مواجهه با بن بست، عقبگرد میکند. این فرایند تا زمانی که همه ی رأسهای قابل دستیابی از ریشه دیده شوند ادامه مییابد. از نقطه نظر عملی، برای اجرای الگوریتم، از یک پشته استفاده میشود. بدین ترتیب که هر بار با ورود به یک رأس دیده نشده، آن رأس را در پشته قرار میدهیم و هنگام عقبگرد رأس را از پشته حذف میکنیم. بنابراین در تمام طول الگوریتم اولین عنصر پشته رأس در حال بررسی است. جزئیات پیادهسازی در ادامه خواهد آمد.
در ادامه قصد داریم برنامهای بنویسیم که گراف زیر را به روش DFS پیمایش کند و ترتیب رؤیت گره ها را در خروجی چاپ نماید (فرزندان یک گره به ترتیب حروف الفبا رؤیت شوند). فرض میکنیم که جستجو از گره C که ما شماره آنرا ۲ در نظر گرفتهایم شروع شده است ولی برنامه این قابلیت را دارد که با تغییر این عدد، بتوانیم از هر گره دلخواه دیگری نیز شروع کنیم.
گراف نمونه برای پیمایش
برای دانلود فایل برنامه مربوط به حل این مسئله با استفاده از الگوریتم جستجوی اول عمق (DFS) به زبان ++C همراه با فایل معرفی کامل روش DFS و توضیحات خط به خط کد برنامه بر روی لینک زیر کلیک نمایید:
الگوریتم BFS با وارد کردن گره مبدأ به صف پردازش شروع شده و تا خالی نشدن این صف مراحل زیر را تکرار میکند:
۱- عنصر جلوی صف را به عنوان گره جاری انتخاب و از صف حذف کن.
۲- گره جاری را پردازش کن.
۳- گرههای مجاور گره جاری که پردازش نشده و در صف پردازش نیز قرار ندارند به این صف اضافه کن.
در ادامه قصد داریم برنامهای بنویسیم که گراف زیر را به روش BFS پیمایش کند و ترتیب رؤیت گرهها را در خروجی چاپ نماید (فرزندان یک گره به ترتیب حروف الفبا رؤیت شوند). فرض میکنیم که جستجو از گره C که ما شماره آنرا ۲ در نظر گرفته ایم شروع شده است ولی برنامه این قابلیت را دارد که با تغییر این عدد، بتوانیم از هر گره دلخواه دیگری نیز شروع کنیم.
گراف نمونه برای پیمایش
برای دانلود فایل برنامه مربوط به حل این مسئله با استفاده از الگوریتم جستجوی اول سطح (BFS) با Matlab همراه با فایل معرفی کامل روش BFS و توضیحات خط به خط کد برنامه بر روی لینک زیر کلیک نمایید:
الگوریتم BFS با وارد کردن گره مبدأ به صف پردازش شروع شده و تا خالی نشدن این صف مراحل زیر را تکرار میکند:
۱- عنصر جلوی صف را به عنوان گره جاری انتخاب و از صف حذف کن.
۲- گره جاری را پردازش کن.
۳- گرههای مجاور گره جاری که پردازش نشده و در صف پردازش نیز قرار ندارند به این صف اضافه کن.
در ادامه قصد داریم برنامهای بنویسیم که گراف زیر را به روش BFS پیمایش کند و ترتیب رؤیت گرهها را در خروجی چاپ نماید (فرزندان یک گره به ترتیب حروف الفبا رؤیت شوند). فرض میکنیم که جستجو از گره C که ما شماره آنرا ۲ در نظر گرفتهایم شروع شده است ولی برنامه این قابلیت را دارد که با تغییر این عدد، بتوانیم از هر گره دلخواه دیگری نیز شروع کنیم.
گراف نمونه برای پیمایش
برای دانلود فایل برنامه مربوط به حل این مسئله با استفاده از الگوریتم جستجوی اول سطح (BFS) به زبان ++C همراه با فایل معرفی کامل روش BFS و توضیحات خط به خط کد برنامه بر روی لینک زیر کلیک نمایید:
الگوریتم جستجوی دودویی (Binary Search) تکنیکی است برای یافتن یک مقدار عددی از میان مجموعهای از اعداد مرتب. این متد محدوده جستجو را در هر مرحله به نصف کاهش میدهد، بنابراین هدف مورد نظر یا به زودی پیدا میشود و یا مشخص میشود که مقدار مورد جستجو در فهرست وجود ندارد. جستجوی دودویی فقط در آرایه های مرتب استفاده می شود. در این روش عنصر مورد نظر با خانه وسط آرایه مقایسه می شود، اگر با این خانه برابر بود جستجو تمام می شود. اگر عنصر مورد جستجو از خانه وسط بزرگتر بود، جستجو در بخش بالایی آرایه و در غیر این صورت، جستجو در بخش پایینی آرایه انجام می شود (فرض کرده ایم آرایه به صورت صعودی مرتب شده است) این رویه تا یافتن عنصر مورد نظر یا بررسی کل خانه های آرایه ادامه مییابد. جستجوی دودویی نمونهای از الگوریتمهای تقسیم و غلبه (Divide and conquer) میباشد.