مساله هشت وزیر از جمله مسائل پرمخاطب مباحث طراحی الگوریتم است. ۸ مهره وزیر رو روی صفحه شطرنج چنان بچینید که نتونن همدیگه رو تهدید کنن.
برای افرادی که با بازی شطرنج آشنایی ندارن:
وزیر مهره ای از مهره های بازی شطرنجه که می تونه در تمامی 8 جهت هر تعداد خانه – تا زمانی که مهره ای مانع نباشه – حرکت کنه و اگه در یکی از این خانه ها مهره حریف قرار داشته باشه تهدیدش کنه.
مساله هشت وزیر : ما مساله رو در حالت کلی در نظر می گیریم. یعنی زمانی که ابعاد صفحه شطرنج n در n و تعداد مهره ها n هستش. ( n > 3 ) روشهای مختلفی برای پیدا کردن جواب وجود داره. یکی از این روشها چیدن تصادفی مهره ها روی صفحه شطرنجه! به عبارت دیگه n مهره رو به صورت تصادفی در خانه های مختلف صفحه قرار می دیم و بررسی می کنیم که آیا شرط مساله رو برآورده می کنن یا نه؟ این روش بسیار سریع ما رو به جواب می رسونه. اما ایرادی که داره نمی شه مطمئن بود بشه به همه حالتهای چینش دست پیدا کرد. در صفحه 8 در 8 شطرنج این مساله 92 جواب مختلف داره. شما ممکنه روش تصادفی رو هزار بار به کار ببرید، اما نتونید همه 92 حالت ممکنه رو به دست بیارید. این روش زمانی مفیده که پیدا کردن یه جواب برای ما کافی باشه.
در این دسته روشها مهره ها رو یکی یکی و به صورت بازگشتی روی صفحه طوری می چینیم که مطمئن باشیم با مهره های قبلی تداخل نداره و شرط مساله برآورده می شه. معمولا از سطر اول صفحه شروع می کنیم به قرار دادن مهره ها. پر واضحه که هر سطر فقط می تونه یه مهره رو تو خودش جا بده. مهره سطر دوم رو طوری قرار می دیم که توسط مهره سطر اول تهدید نشه. برای این کار خانه های مختلفی از سطر رو می شه انتخاب کرد. برای نظم داشتن کارهامون فرض می کنیم همیشه انتخاب خانه ها از سمت چپ سطر شروع می شه. به عبارت دیگه با شروع از سمت چپ سطر اولین خانه ای که شرط رو برآورده کنه انتخاب می کنیم. به همین ترتیب سطرهای بعدی رو هم می چینیم. اگر به سطری رسیدیم که بر اساس چیدمان سطرهای قبلی هیچ خانه امنی برای مهره وجود نداشت ( یعنی همه خانه ها توسط مهره های قبلی تهدید می شدن ) یه مرحله به عقب بر می گردیم و مهره سطر قبل رو جابجا می کنیم. این کار هم با حرکت مهره به اولین خانه سمت چپ موقعیت فعلی که شرط رو برآورده کنه، انجام می شه. با ادامه دادن این روال و با جابجا کردن مهره ها به صورت منظم و بازگشتی تمامی حالتهای ممکنه به دست می یان.
برای پیاده سازی چنین الگوریتمی و تشخیص اینکه چه خانه هایی از سطر امن هستن روشهای مختلفی وجود داره. ساده ترینشون اینه که هر بار تمامی خانه هایی رو که امکان تهدید شدن از اونها وجود داره بررسی کنیم تا از قرار نداشتن مهره وزیر در اونها مطمئن باشیم. اما این روش اصلا کارا و بهینه نیست.
روش دیگه تعریف کردن صفحه شطرنج به صورت یه آرایه n در n هستش که خونه های امن و غیر امن با علامتگذاری مشخص می شن. هر بار که مهره ای رو صفحه قرار می گیره تمام خونه هایی که توسط این مهره تهدید می شن به صورت غیر امن علامتگذاری می شن. به این ترتیب می شه فهمید که هر خونه با توجه به چینش مهره های قبلی امن هست یا نه؟ اما این روش هم معایبی داره که باعث می شه به روش سوم رجوع کنیم. برای آشنایی با این معایب کافیه سعی کنید کد برنامه رو بنویسید!
در روش سوم که من ازش استفاده کردم، برای علامتگذاری خانه های امن و غیر امن از شیوه دیگه ای بهره می بریم. به این ترتیب که اقطار راست به چپ، چپ به راست و ستونها با شماره هایی مشخص می شن که کار علامتگذاری رو بسیار ساده می کنن. این روش بدون شک از کاراترین روشهای رسیدن به جواب مساله ماست. هم سرعت اجرای بالایی داره و هم حافظه مصرفی بسیار کم!
کدی که به زبان ++C درباره این مساله نوشته شده با استفاده از روش سوم تعداد جوابهای ممکن – و نه خود جوابها – برای مقادیر مختلف n رو مشخص می کنه. به عنوان مثال اگر n رو 8 وارد کنید خروجی برنامه 92 خواهد بود. توصیه می کنم برای nهای بزرگ برنامه رو امتحان نکنید! اگر n رو 16 وارد کنید بعد از گذشتن زمان زیادی عدد 14772512 روی صفحه نمایش چاپ می شه. یعنی در صفحه شطرنج 16 در 16 حدود ۱۵ میلیون حالت مختلف برای چیدمان صحیح وجود دارد
لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه: 12
توصیف
در حالت کلی، یک شبکه عصبی زیستی از مجموعه یا مجموعهای از نورونهای به صورت فیزیکی به هم متصل یا از لحاظ عملکردی به هم وابسته تشکیل شدهاست. هر نورون میتواند به تعداد بسیار زیادی از نورونها وصل باشد و تعداد کل نورونها و اتصالات بین آنها میتواند بسیار زیاد باشد. اتصالات، که به آنها سیناپس گفته میشود، معمولاً از آکسونها و دندریتها تشکلیل شدهاند.
هوش مصنوعی و مدل سازی شناختی سعی بر این دارند که بعضی از خصوصیات شبکههای عصبی را شبیه سازی کنند. این دو اگرچه در روشهاشان به هم شبیه هستند اما هدف هوش مصنوعی حل مسائل مشخصی است در حالی که هدف مدل سازی شناختی ساخت مدلهای ریاضی سامانههای نورونی زیستی است.
شبکههای عصبی زیستی
شبکههای عصبی زیستی مجموعهای بسیار عظیم از پردازشگرهای موازی به نام نورون اند که به صورت هماهنگ برای حل مسئله عمل میکنند و توسط سیناپسها (ارتباطهای الکترومغناطیسی) اطلاعات را منتقل میکنند. در این شبکهها اگر یک سلول آسیب ببیند بقیه سلولها میتوانند نبود آنرا جبران کرده و نیز در بازسازی آن سهیم باشند. این شبکهها قادر به یادگیری اند. مثلا با اعمال سوزش به سلولهای عصبی لامسه، سلولها یاد میگیرند که به طرف جسم داغ نروند و با این الگوریتم سامانه میآموزد که خطای خود را اصلاح کند. یادگیری در این سامانهها به صورت تطبیقی صورت میگیرد، یعنی با استفاده ازمثالها وزن سیناپسها به گونهای تغییر میکند که در صورت دادن ورودیهای تازه سامانه پاسخ درستی تولید کند.
معرفی شبکه عصبی مصنوعی شبکه عصبی مصنوعی یک سامانه پردازشی دادهها است که از مغز انسان ایده گرفته و پردازش دادهها را به عهدهٔ پردازندههای کوچک و بسیار زیادی سپرده که به صورت شبکهای به هم پیوسته و موازی با یکدیگر رفتار میکنند تا یک مسئله را حل نمایند. در این شبکهها به کمک دانش برنامه نویسی، ساختار دادهای طراحی میشود که میتواند همانند نورون عمل کند. که به این ساختارداده گره گفته میشود. بعد باایجاد شبکهای بین این گرهها و اعمال یک الگوریتم آموزشی به آن، شبکه را آموزش میدهند. در این حافظه یا شبکهٔ عصبی گرهها دارای دو حالت فعال (روشن یا 1) و غیرفعال (خاموش یا 0) اند و هر یال (سیناپس یا ارتباط بین گرهها) دارای یک وزن میباشد. یالهای با وزن مثبت، موجب تحریک یا فعال کردن گره غیر فعال بعدی میشوند و یالهای با وزن منفی، گره متصل بعدی را غیر فعال یا مهار (در صورتی که فعال بوده باشد) میکنند.
تاریخچه شبکههای عصبی مصنوعی
از قرن نوزدهم به طور همزمان اما جداگانه از سویی نروفیزیولوزیستها سعی کردند سامانه یادگیری و تجزیه و تحلیل مغز را کشف کنند و از سوی دیگر ریاضیدانان تلاش کردند تا مدل ریاضی بسازند که قابلیت فراگیری و تجزیه و تحلیل عمومی مسائل را دارا باشد. اولین کوششها در شبیه سازی با استفاده از یک مدل منطقی توسط مک کلوک و والتر پیتز انجام شد که امروزه بلوک اصلی سازنده اکثر شبکههای عصبی مصنوعی است. این مدل فرضیههایی در مورد عملکرد نورونها ارائه میکند. عملکرد این مدل مبتنی بر جمع ورودیها و ایجاد خروجی است. چنانچه حاصل جمع ورودیها از مقدار آستانه بیشتر باشد اصطلاحا نورون برانگیخته میشود. نتیجه این مدل اجرای توابع ساده مثل AND و OR بود.نه تنها نروفیزیولوژیستها بلکه روان شناسان و مهندسان نیز در پیشرفت شبیه سازی شبکههای عصبی تاثیر داشتند. در سال 1958 شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده میباشد، است. این سامانه میتواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند. سامانه دیگر مدل خطی تطبیقی نورون میباشد که در سال 1960 توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکههای عصبی به کار گرفته شده در مسائل واقعی بودند. Adalaline یک دستگاه الکترونیکی بود که از اجزای سادهای تشکیل شده بود، روشی که برای آموزش استفاده میشد با پرسپترون فرق داشت.
در سال 1969 میسکی و پاپرت کتابی نوشتند که محدودیتهای سامانههای تک لایه و چند لایه پرسپترون را تشریح کردند. نتیجه این کتاب پیش داوری و قطع سرمایه گذاری برای تحقیقات در زمینه شبیه سازی شبکههای عصبی بود. آنها با طرح اینکه طرح پرسپترون قادر به حل هیچ مساله جالبی نمیباشد، تحقیقات در این زمینه را برای مدت چندین سال متوقف کردند.
این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
مقدمه
از نخستین وهله امکان در تاریخچه مدرن کامپیوتر، دانشمندان از ایجاد یک"مغز الکترونیکی" خیالبافی کرده اند. از همه حدس های تکنولوژی پیشرفته، این تحقیق برای ایجاد هوش مصنوعی، سیستم های کامپیوتری یکی از جاه طلب ترین و نه شگفت آور مباحثه ای بوده اند.همچنین به نظر
می رسد که خیلی پیشتر از آن، دانشمندان و دکترها همانند هم شیفته توان اینچنین تکنولوژی ممکن در پزشکی شده بودند. با کامپیوترهای هوشمند به ذخیره و پردازش ذخائر دانش بسیار زیاد قادر شدند و آرزو بود که آنها دکترهای کاملی در جعبه باشند. دستیار یا متخصصان برتر با وظایف مشابه تشخیص. با اینچنین انگیزه ها، کوچک اما جامع با استعدادی از دانشمندان کامپیوتر و تخصص های مراقبان پزشکی در مورد شکل دهی برنامه تحقیق برای یک نظم جدید که هوش مصنوعی در پزشکی نامیده شده است. این محققان تصور بزرگی از روش AIM که انقلاب پزشکی خواهد بود داشتند.AI در پزشکی در آن زمان تا درجه زیادی انجمن تحقیق پایه US بود.
این رشته بسیاری از بهترین دانشمندان کامپیوتر را جذب کرده و توسط هر مقیاس، در اولین دهه از زمینه باقی مانده موفقیت قابل توجه خروجی داشته است. AI میتواند ایجاد و استفاده از دانش پزشکی را پشتیبانی کند: شناخت بشری دسته پیچیده ای از پدیده ها و سیستم های AI که میتوانند بگویند برای آن در دو روش خیلی متفاوت است. محققان همچنین "AI قوی" می نامند که در ایجاد سیستم های کامپیوتری جالب است که در رفتار در بعضی سطح های غیرقابل تشخیص از انسانها هستند. سیستم هایAI ظرفیتی برای یادگرفتن، هدایت به کشف پدیده های جدید و ایجاد دانش پزشکی دارند. با کافی بودن مدل وجود دانش پزشکی، یک سیستم AI میتواند برای نمایش اینکه چطور یک دسته جدید از مشاهدات تجربی با وجود تئوری ها سازگار است، استفاده شود.
فایل وزد 40 ص
حال ببینیم که رابطه تکامل طبیعی با روشهای هوش مصنوعی چیست ..هدف اصلی روشهای هوشمند به کار گرفته شده در هوش مصنوعی یافتن پاسخ بهینه مسائل مهندسی ست. بعنوان مثال اینکه چگونه یک موتور را طراحی کنیم تا بهترین بازدهی را داشته باشد یا چگونه بازوهای یک ربات را محرک کنیم تا کوتاهترین مسیر را تا مقصد طی کند(دقت کنید که در صورت وجود مانع یافتن کوتاهترین مسیر دیگر به سادگی کشیدن یک خط راست بین مبدا و مقصد نیست) همگی مسائل بهینهسازی هستند. روشهای کلاسیک ریاضیات دارای دو اشکال اساسی هستند. اغلب این روشها نقطه بهینه محلی(Local Optima) را بعنوان نقطه بهینه کلی در نظر میگیرند و نیز هر یک از این روشها تنها برای مساله خاصی کاربرد دارند.
در مورد نکته دوم باید بگوییم که روشهای ریاضی بهینهسازی اغلب منجر به یک فرمول یا دستورالعمل خاص برای حل هر مسئله میشوند. در حالی که روشهای هوشمند دستورالعملهایی هستند که به صورت کلی میتوانند در حل هر مسئلهای به کار گرفته شوند. این نکته را پس از آشنایی با خود الگوریتم بیشتر و بهتر خواهید دید.
1-2: الگوریتم ژنتیک چیست؟
الگوریتم های ژنتیک با توجه به نظریه داروین در مورد تکامل, جان گرفتند. سپس نظریه محاسبات تکاملی, توسط ریچنبرگ در سال 1960 معرفی شدند و این نظریه توسط محققان دیگر توسعه یافت تا در سال 1975 منجر به اختراع الگوریتم های ژنتیک توسط هالاند و دانشجویانش شد.
الگوریتم های ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیش بینی یا تطبیق الگو استفاده می کنند.الگوریتم های ژنتیک اغلب گزینه خوبی برای تکنیک های پیش بینی بر مبنای رگرسیون هستند.همان طور ساده،خطی وپارامتریک گفته می شود،به الگوریتم های ژنتیک می توان غیر پارامتریک گفت.
برای مثال اگر بخواهیم نوسانات قیمت نفت را با استفاده از عوامل خارجی وارزش رگرسیون خطی ساده مدل کنیم،این فرمول را تولید خواهیم کرد:قیمت نفت در زمان t=ضریب 1 نرخ بهره در زمان t+ضریب 2 نرخ بیکاری در زمان t+ثابت 1 . سپس از یک معیار برای پیدا کردن بهترین مجموعه ضرایب و ثابت ها جهت مدل کردن قیمت نفت استفاده خواهیم کرد.در این روش 2 نکته اساسی وجود دارد.اول این روش خطی است و مسئله دوم این است که ما به جای اینکه در میان "فضای پارامترها"جستجو کنیم ،پارامترهای مورد استفاده را مشخص کرده ایم.
1-Artificial Inteligence
2-Algorithm
1-Holland
فایل ورد 24 ص
فرمت فایل : word (قابل ویرایش) تعداد صفحات : 37 صفحه
فهرست
معرفی بازیابی تصویر
معرفی روش های تخمین مدل تخریب
مشاهده – آزمایش – مدلسازی ریاضی
معرفی تکنیک های بازیابی
فیلترینگ معکوس
حداقل مربعات خطا
حداقل مربعات محدود شده
رویکرد احتمالی برای بازیابی
بازیابی با تخمین بیشترین شباهت
بازیابی با بیشترین احتمال پسین
مثال هایی از دیگر مسایل بازیابی تصویر
بخشی از متن :
•در بسیاری از مساله ها به دلیل از بین رفتن اطلاعات، با مشاهداتی ناقص یا معیوب روبرو هستیم. –نقص های فرایند ضبط سیگنال، فشرده سازی یا انتقال سیگنال•هدف: بازیابی اطلاعات از بین رفته •مثال رایج: نویز زدایی تصویر •بهبود تصویر (enhancement) –اعمال فیلتر های پایین گذر←کاهش مولفه های فرکانس های بالا←کاهش نویز–هدف: ایجاد یک حس بینایی مطلوب در ناظر است. –اغلب بدون مدل کردن تخریب و با روش های خاص مساله•بازیابی تصویر (restoration یا recovery)(1نیاز به مدلی برای تخریب یا ازبین رفتن اطلاعات (2بازیابی بر اساس یک معیار بهینگیهدف: معکوس کردن فرایند تخریب است.