بحث:Scada
از ویکیپدیا، دانشنامهٔ آزاد.
کپی از [1] Aliparsa ۱۰:۳۷، ۳ ژوئن ۲۰۰۷ (UTC)
[ویرایش] شبکه های عصبی و بازی سازی
[ویرایش] شبکه های عصبی مصنوعی
شبکه های عصبی یکی از پیزهایی است که در مورد آن بسیار میشنوید ولی هرگز آن را ندیده اید . خوب من میتوانم حقیقتی را به شما بگوییم که در 3 تا 5 سال گذشته وجود داشته ما میتوانیم پرشها و حدود را در شبکه عصبی مصنوعی درست کنیم . نه به طور کامل نیمیتوانیم همچین کاری به خاطر گسترده بودن محاسبات انجام دهیم اما برای پیاده سازی بازیها گاه گاه مجبوریم از این روشهای شبکه ای استفاده کنیم در حقیقت تعدادی از بازیها از سیستم پیشرفته شبکه های عصبی مصنوعی اشتفاده میکنند مانند : Creators, dogz, fin fin و بازیهای دیگر مشابه
یک شبکه عصبی مدلی از مغز انسانها است . مغز تشکیل شده از 10 تا 100 بیلیون سلول مغزی. هر کدام از این سلولها میتوانند هم پردازش انجام دهند هم انتقال اطلاعات مدل 12.30 یک مدل از از سلولهلی مغزی انسان را نشان میدهد .
سه قسمت اصلی یک رشته مغزی را تشکیل میدهند : سوما ها و آکسونها و دندرید ها . سوما ها قسمت اصلی بدنه سلولها است که عمل پردازش را انجام میدهد زمانی که اکسونها سیگنالها را به دندریدها منتقل میکنند البته از طریق رشته های عصبی .
هر شبکه عصبی به طور متوسط از توابع ساده ای تشکیل شده : برای پردازش و خروج فرمان حرکتی . فرمان حرکت یعنی فرستادن سیگنالهای الکترو شیمی . شبکه های عصبی چندین ورودی دارند و یک خروجی ( که میتواند مختل شود ) و چند قانون برای پردازش ورودیها و تولید خروجی . قوانین مورد استفاده به طور گسترده ای پیچیده هستند اما همین کفایت میکند برای گفتن نتیجه گیری در مورد سیگنالهایی که از طریق رشته های عصبی گذر میکنند و فرمانهای حرکتی را صادر میکنند . خوب
خوب این سیستم عصبی بسیار پیشرفته و بزرگ است اما چگونه شما میخواهید از این سیستم برای تولید بازیهای خود استفاده کنید ؟ خوب به جای تلاش برای درست کردن چیزی که بتواند اطلاعات را ذخیره کند در مورد اطلاعات فکر کند و تصمیم گیری انجام دهد شاید بتوانیم با مدلی شروع کنیم که یک حافظه ساده باشد . مغز ما در انجام این فعالیتها بسیار خوب کار میکند در صورتی که کامپیوتر ها نسبت به مغز ما بسیار بد و پیش پا افتاده هستند شاید بهتر باشد به مغز بگوییم کامپیوتر بیولوژیکی بسیار پیچیده و بسیار سریع که درون سر ما قرار دارد و میتواند نظر و ایده بدهد .
این دقیقا شبکه های عصبی مصنوعی است (یا شبکه عصبی ساده ) . هر کدام از ما یک نمونه از شبکه های عصبی هستیم که میتوانیم به صورت موازی پردازش انجام دهیم دقیقا مانند مغز شما . اجازه بدهید که نگاه مختصری داشته باشیم به اصول شبکه های عصبی .
اولین شبکه عصبی مصنوعی در سال 1943 توسط مک کولوچ و پیتس که دو مهندس الکتونیک بودند که میخواستند مدل الکترونیکی سخت افزاری مغز را پیاده سازی کنند تولید شد . آنها به چیزی برخوردند که نامش را نورد گذاشتند چنانچه در قسمت چپ شکل 12.31 آمده است . امروزه فرم نورد ها تغییر آنچنانی نداشته است چنانچه در قسمت راست شکل 12.31 آمده است .
یک نورود تشکیل شده از تعدادی ورودی X(i) که به تر تیب وزن W(i) جمع آوری شده اند و سپس پردازش بر روی آنها با توابع فعالساز انجام میگیرد به دلیل اینکه این روش توسط مک کولچ و پیتس ابداع شده به آن مدل (Mp) میگویند که برای قسمتهای پیچیده تر و سنگینتر یک تابع خطی ارائه شده که با فرمولهای ریاضی به راحتی قابل حل کردن وحتی قابل اثبات است که در شکل 12.31 آمده است
برای اینکه بدانید نرودها چگونه کار میکنند فرض کنید دو ورودی X1, X2 داریم که میتوانند مقادیر باینری 0 یا 1 داشته باشند شما آستانه را بر 2 تنظیم میکنید و w1=1 و w2=1 . در مجموع تابع به صورت زیر در میاید :
Y = X1 * W1 + X2 * W2
مقایسه کنید جواب را با آستانه تتا 2 اگر Y بزرگتر یا برابر با 2 بود نرود پیغام حرکت میدهد و خروجی یک 1.0. است در غیر این صورت خروجی یک 0.جدول 12.3 خواهد بود که این جدول نشان میدهد یک نرود در شبکه چه کاری انجام میدهد .
اگر چند دقیقه ای نگاه کنید میتوانید دریابید که جدول یک مدار منطقی AND است !!! جالب بود نه؟ بله یک نرود کوچک ساده میتواند عملیات یک مدار منطقی AND را پیاده سازی کند در حقیقت با نرود ها متوان هر مدار منطقی را پیاده سازی کرد برای مثال شکل 12.32 نشاندهنده AND و OR و XOR است
قطعا شبکه های عصبی واقعی بسیار پیچیده تر هستند و قابلیت این را دارند که چند لایه با هم ترکیب شوند و تابع جدید و پیچیده به وجود بیاورند و صدها یا هزاران نرود در این فعالیتها شرکت دارند . اما در آخر شما در مو رد شبکه های زیر ساختی عصبی اطلاعاتی کسب کردید شبکه های عصبی پایه و اساس بازیهایی است که بر پاییه هوش مصنوعی ساخته شده اند و به زودی تمام بازیها باید از تکنیکهای شبکه های عصبی استفاده کنند !
این بخش هیجان انگیز ترین بخش هوش مصنوعی بود اما من برای توضیحات بیشتر در این مورد وقت ندارم تا بتوانم معنی و مفهوم شبکه های عصبی را برای شما جا بیندازم هرچند که ARTICLES\AI\NETWARE\ بر روی CD که در اختیار دارید شامل توضیحاتی در مورد شبکه های عصبی میباشد که تمام انواع شبکه های عصبی را پوشش داده است و الگوریتمهایی برای پیاده سازی شبکه ها ذکر شده است و در آنجا شما میتوانید به کد ها دسترسی داشته باشید و با MS WORD مشاهده کنید
[ویرایش] الگوریتمهای ژنتیک
الگوریتمهای ژنتیک متدهایی هستند برای محاسبات آنچه از طریق مدلهای بیولوژیکی میرسد که شامل راه حل هستند . طبیعت بسیار بزرگ است و الگوریتمهای ژنتیک سعی دارند تا بتوانند قسمتی از انچه از طبیعت به آنها میرسد با مدل سازی و راه حلهای ژنتیکی با کمکی که از تجربیات گذشته گرفته میشود به صورت استاندارد حل کنند و محاسبات خود را انجام دهند
در اصل الگوریتمهای ژنتیک به این صورت کار میکنند : شما یک اطلاعاتی از شاخصی میگیرید و آن را به صورت رشته در میاورید و با یک رشته دیگر بر روی بردار ترکیب میکنید مانند کاری که به صورت طبیعی DNA ها انجام میدهند به شکل 12.33 دقت کنید
این بردار بیتی نشاندهنده استراتژی یا کد کردن یک الگوریتم یا راه حل است . سما به این بردار ابرای شروع کار احتیاج دارید . سپس رشته های بیتی را پردازش میکنیم و هرچیزی که به وسیله اشیاء تابعی نمایش داده میشوند که توابع این مرحله کم حجم تر است . نتایج این بخش . بردار بیتی حقیقتا به متغییر های کنترلی دیگر اتصال پیدا میکنند و توسط الگوریتمهای مختلف تنظیم میشوند و شما به صورت دستی میتوانید مقادیر آزمایشی وارد کنید تا بتوانید با دانش اولییه شروع به انجام الگوریتم کنید (اگر وجود داشته باشد ) . سپس هر تنظیمی را اجرا میکنید و آماده برای تنظیم مرحله بعد میشوید شما شاید بتوانید 5 ساخته دستی را پیدا کنید که 2 تا از آنها میتوانند واقعا به درد بخور باشند و بقیه مناسب نیستند . این جزو قابلیتهای الگوریتمهای ژنتیک است .
شما میتوانید راح حل را گمراه کننده کنید . میدانید که قسمت راست شما یا متوانید اجازه دهید الگوریتمهای ژنتیکی به کار خود ادامه دهند . دو بردارکنترلی یا دو راه حل را مخلوط کنید برای درست کردن دو فرزند جدید چنانچه در شکل 12.34 میبینید .
برای اضافه کردن یک بیت نامعلوم کوچک به دو پردازش متقاطع راه حلهای جدیدی را امتحان میکنیم در طول تولید بهترین راه حل و توجه به اتفاقاتی که در مراحل گوناگون رخ داده بهترین جواب را از سری جوابهای تولید شده انتخاب میکنیم و آن را بر میداریم به همین ترتیب این عمل را تکرار میکنیم این پردازش به نظریه ژنیک معروف است . به طریقه شگفت انگیزی بهترین راه حل را انتخاب میکنیم که گاهی این انتخاب ممکن است با آنچه حدس میزنیم متفاوت باشد .
نکته کلیدی در مورد الگوریتمهای ژنتیک این است که آنها سعی میکنند از روشهای جدید بهره گیری کنند و ایده های جدید را به کار ببندند و در ثانی محیط جستجوی بسیار بزرگی را پوشش میدهند که در این محیط جستجوی یک به یک غیر ممکن است ( به دلیل گستردگی) . و این دلایل هستند که باعث حرکت میشوند که به صورت کاملا اتفاقی به نظر میرسد ولی در صورتی که محسبات بسیار پیشرفته استفاده شده است .
حال سوالی که مطرح میشود این است که خوب حالا اینها را چگونه در بازی نویسی به کار ببریم ؟ برای این کار میلیونها را وجود دارد ولی من تنها یک راه را برای شما شرح میدهم برای شروع کار . احتمالا باید بتوانید که تنظیمات هوش مصنوعی خود را چنان منظم کنید که کد ژنتیک از دیجیتال دی ان ای داشته باشید و سپس شما و برنامه نویسان دیگر بازس باید خطوط بیشتری کد بنویسند تا بتوانند سیستم برنامه ژنتیکی را پیاده سازی کنند . البته شما میتوانید در صورتی این کار را انجام دهید که قصد اضافه کردن کادر برنامه نویس دارید چون بسیار کار حجیم و سنگینی است .

