فرمت: ورد و قابل ویرایش
تعداد صفحه: 195
رسته: مهندسی آی تی، مهندسی کامپیوتر و سایر رشته های مرتبط
دارای تصاویر، نمودارها، جداول نامگذاری شده، منابع فارسی و لاتین
فهرست مطالب
عنوان صفحه
چكيده…………………………….. 1
مقدمه ……………………………. 2
فصل اول : كليات موضوع
تعریف و طبیعت هوش مصنوعی……………. 7
پيدايش و پيشرفت هوش مصنوعي ………… 8
هوش مصنوعي و هوش انساني…………….. 12
شاخههاي هوش مصنوعي…………………. 14
فلسفهٔ هوش مصنوعی………………….. 27
ويژگي هاي هوش مصنوعي……………….. 48
دو فرضيه در هوش مصنوعي……………… 52
انواع هوش مصنوعي ………………….. 53
كاربرد هوش مصنوعي …………………. 57
معماي هوش الكترونيك ، مباني و شاخههاي علم هوش مصنوعي……………………………. 59
چالشهاي بنيادين هوشمصنوعي…………… 64
فصل دوم : هوش مصنوعي در بازيهاي كامپيوتري
هوش مصنوعي در بازيهاي كامپيوتري……… 71
بازيهاي تأثيرگذار در هوشمصنوعي ……… 88
فصل سوم : تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي
تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي………………………………….118
مثالي از برنامهنويسي شيءگرا در شبكههاي عصبي و هوش مصنوعي…..163
سخن آخر……………………………………………………………………………………………….179
فهرست منابع………………………………………………………………………………………….180
چكيده
هدف از اين پروژه آشنائي با هوش مصنوعي به عنوان سمبل ونماد دوران فراصنعتي و نقش و كاربرد آن در صنايع و مؤسساتتوليدي ميباشد. بدين منظور، اين موضوع در قالب 3 فصل ارائه ميشود. در (فصل اول) كليات هوش مصنوعي موردمطالعه قرار ميگيرد و سئوالاتي نظير اين كه هوش مصنوعيچيست؟ تفاوت هوشمصنوعي و هوش طبيعي (انساني) درچيست؟ شاخههاي عمده هوش مصنوعي كدامند؟ و نهايتأ، اجزايهوش مصنوعي نيز تشريح ميشود ،كاربردهاي هوش مصنوعيدر صنايع و مؤسساتتوليدي، بخصوص در زمينهسيستمهاي خبره وآدموارهها مورد مطالعه وتجزيه و تحليل قرارميگيرد. ودر فصل دوم به بررسي هوش مصنوعي در بازي هاي كامپيوتري و در فصل سوم به بررسي تكنيك برنامه نويسي در هوش مصنوعي مورد مطالعه قرار مي گيرد .
مقدمه
هوش مصنوعی به هوشی که یک ماشین از خود نشان میدهد و یا به دانشی در کامپیوتر که سعی در ایجاد آن دارد گفته میشود. بیشتر نوشته ها و مقاله های مربوط به هوش مصنوعی آن را “دانش شناخت و طراحی مامورهای هوشمند تعریف کرده اند. یک مامور هوشمند سیستمی است که با شناخت محیط اطراف خود, شانس موفقیت خود را بالا میبرد جان مکارتی که واژه هوش مصنوعی را در سال 1956 استفاده نمود, آن را دانش و مهندسی ساخت ماشین های هوشمند” تعریف کرده است. تحقیقات و جستجوهایی انجام شده برای رسیدن به ساخت چنین ماشین هایی مرتبط با بسیاری از رشته های دانشیک دیگر میباشد, مانند دانش کامپیوتر, روانشناسی, فلسفه, عصب شناسی, دانش ادراک, تئوری کنترل, احتمالات, بهینه سازی و منطق.
« هوش مصنوعی، دانش ساختن ماشین ها یا برنامههای هوشمند است. » همانگونه كه از تعریف فوق-كه توسط یكی از بنیانگذاران هوش مصنوعی ارائه شده است- برمیآید،حداقل به دو سؤال باید پاسخ داد:
1ـ هوشمندی چیست؟
2ـ برنامههای هوشمند، چه نوعی از برنامهها هستند؟تعریف دیگری كه از هوش مصنوعی میتوان ارائه داد به قرار زیر است:
« هوش مصنوعی، شاخهایست از علم كامپیوتر كه ملزومات محاسباتی اعمالی همچون ادراك (Perception)، ستدلال(reasoning) و یادگیری(learning) را بررسی كرده و سیستمی جهت انجام چنین اعمالی ارائه میدهد.»و در نهایت تعریف سوم هوش مصنوعی از قرار زیر است:
«هوش مصنوعی، مطالعه روشهایی است برای تبدیل كامپیوتر به ماشینی كه بتواند اعمال انجام شده توسط انسان را انجام دهد.» به این ترتیب میتوان دید كه دو تعریف آخر كاملاً دو چیز را در تعریف نخست واضح كردهاند.
1ـ منظور از موجود یا ماشین هوشمند چیزی است شبیه انسان.
2ـ ابزار یا ماشینی كه قرار است محمل هوشمندی باشد یا به انسان شبیه شود، كامپیوتر است. هر دوی این نكات كماكان مبهم و قابل پرسشند. آیا تنها این نكته كه هوشمندترین موجودی كه میشناسیم، انسان است كافی است تا هوشمندی را به تمامی اعمال انسان نسبت دهیم؟ حداقل این نكته كاملاً واضح است كه بعضی جنبههای ادراك انسان همچون دیدن و شنیدن كاملاً ضعیفتر از موجودات دیگر است. علاوه بر این، كامپیوترهای امروزی با روشهایی كاملاً مكانیكی(منطقی) توانستهاند در برخی جنبههای استدلال، فراتر از تواناییهای انسان عمل كنند. بدین ترتیب، آیا میتوان در همین نقطه ادعا كرد كه هوش مصنوعی تنها نوعی دغدغه علمی یا كنجكاوی دانشمندانه است و قابلیت تعمق مهندسی ندارد؟(زیرا اگر مهندسی، یافتن روشهای بهینه انجام امور باشد، به هیچ رو مشخص نیست كه انسان اعمال خویش را به گونهای بهینه انجام میدهد). به این نكته نیز باز خواهیم گشت. اما همین سؤال را میتوان از سویی دیگر نیز مطرح ساخت، چگونه میتوان یقین حاصل كرد كه كامپیوترهای امروزین، بهترین ابزارهای پیادهسازی هوشمندی هستند؟
رؤیای طراحان اولیه كامپیوتر از بابیج تا تورینگ، ساختن ماشینی بود كه قادر به حل تمامی مسائل باشد، البته ماشینی كه در نهایت ساخته شد(كامپیوتر) به جز دسته ای خاص از مسائلقادر به حل تمامی مسائل بود. اما نكته در اینجاست كه این «تمامی مسائل» چیست؟ طبیعتاً چون طراحان اولیه كامپیوتر، منطقدانان و ریاضیدانان بودند، منظورشان تمامی مسائل منطقی یا محاسباتی بود. بدین ترتیب عجیب نیست، هنگامی كه فوننیومان سازنده اولین كامپیوتر، در حال طراحی این ماشین بود، كماكان اعتقاد داشت برای داشتن هوشمندی شبیه به انسان، كلید اصلی، منطق(از نوع به كار رفته در كامپیوتر) نیست، بلكه احتمالاً چیزی خواهد بود شبیه ترمودینامیك!
به هرحال، كامپیوتر تا به حال به چنان درجهای از پیشرفت رسیده و چنان سرمایهگذاری عظیمی برروی این ماشین انجام شده است كه به فرض این كه بهترین انتخاب نباشد هم، حداقل سهلالوصولترین و ارزانترین و عمومیترین انتخاب برای پیادهسازی هوشمندیست. بنابراین ظاهراً به نظر میرسد به جای سرمایهگذاری برای ساخت ماشینهای دیگر هوشمند، میتوان از كامپیوترهای موجود برای پیادهسازی برنامههای هوشمند استفاده كرد و اگر چنین شود، باید گفت كه طبیعت هوشمندی ایجاد شده حداقل از لحاظ پیادهسازی، كاملاً با طبیعت هوشمندی انسانی متناسب خواهد بود، زیرا هوشمندی انسانی، نوعی هوشمندی بیولوژیك است كه با استفاده از مكانیسمهای طبیعی ایجاد شده، و نه استفاده از عناصر و مدارهای منطقی. در برابر تمامی استدلالات فوق می توان این نكته را مورد تاُمل و پرسش قرار داد كه هوشمندی طبیعی تا بدان جایی كه ما سراغ داریم، تنها برمحمل طبیعی و با استفاده از روش های طبیعت ایجاد شده است. طرفداران این دیدگاه تا بدانجا پیش رفتهاند كه حتی ماده ایجاد كننده هوشمندی را مورد پرسش قرار داده اند، كامپیوتر از سیلیكون استفاده می كند، در حالی كه طبیعت همه جا از كربن سود برده است. مهم تر از همه، این نكته است كه در كامپیوتر، یك واحد كاملاً پیچیده مسئولیت انجام كلیه اعمال هوشمندانه را بعهده دارد، در حالی كه طبیعت در سمت و سویی كاملاً مخالف حركت كرده است. تعداد بسیار زیادی از واحدهای كاملاً ساده (بعنوان مثال از نورونهای شبكه عصبی) با عملكرد همزمان خود (موازی) رفتار هوشمند را سبب می شوند. بنابراین تقابل هوشمندی مصنوعی و هوشمندی طبیعی حداقل در حال حاضر تقابل پیچیدگی فوق العاده و سادگی فوق العاده است. این مساُله هم اكنون كاملاً به صورت یك جنجال(debate) علمی در جریان است. در هر حال حتی اگر بپذیریم كه كامپیوتر در نهایت ماشین هوشمند مورد نظر ما نیست، مجبوریم برای شبیهسازی هر روش یا ماشین دیگری از آن سود بجوییم.
تعریف و طبیعت هوش مصنوعی
هنوز تعریف دقیقی که مورد قبول همهٔ دانشمندان این علم باشد برای هوش مصنوعی ارائه نشدهاست، و این امر، به هیچ وجه مایهٔ تعجّب نیست. چرا که مقولهٔ مادر و اساسیتر از آن، یعنی خود هوش هم هنوز بطور همهجانبه و فراگیر تن به تعریف ندادهاست. در واقع، میتوان نسلهایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سؤال عمده نمودهاند که: هوش چیست؟
اما اکثر تعریفهایی که در این زمینه ارایه شدهاند بر پایه یکی از ۴ باور زیر قرار میگیرند:
- سیستمهایی که به طور منطقی فکر میکنند
- سیستمهایی که به طور منطقی عمل میکنند
- سیستمهایی که مانند انسان فکر میکنند
- سیستمهایی که مانند انسان عمل میکنند.
شاید بتوان هوش مصنوعی را این گونه توصیف کرد:«هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را میتوان وادار به کارهایی کرد که در حال حاضر انسانها آنها رابهتر انجام میدهند».
پيدايش و پيشرفت هوش مصنوعي
در اواسط دهه 1990، يك بازي تيراندازي اول شخص منتشر شد كه به كاربر امكان ميداد بازي را براي خود سفارشي (Customize) كند. اين بازي، Quake بود كه در فناوري ساخت بازيهاي كامپيوتري يك نوآوري محسوب ميشد. Quake اولين بازي سهبعدي واقعي است. به اين معني كه بهصورت بلادرنگ در سه بعد رندر ميشود. (پيش از آن spiritها يا گرافيكهاي دوبعدي به صورت سهبعدي شبيهسازي ميشدند). چيزهاي ديگري نيز در اين بازي وجود داشت كه موردتوجه قرار گرفت؛ مانند نشانه گرفتن سلاح به بالا يا پايين. زيرا حركتدادن سلاح به بالا يا پايين نيازمند پردازش در بعد سوم، يعني عمق يا ارتفاع در يك محيط سهبعدي است.
بازي Quake از موجودات مجازي هوشمند (bot) هر چند با هوش مصنوعي كم، بهره برده بود. هوش مصنوعي يكbot در بازيهاي تيراندازي اول شخص، ميتواند در دو بخش بررسي شود: يكي ناوبري و حركت، و ديگري مبارزه. اگر بخواهيم رفتار bot نزديك به رفتار يك انسان باشد، پيادهسازي آن بسيار پيچيدهتر از هوشمصنوعي در مبارزه است. هر چند پيادهسازي هوش مصنوعي در مبارزه نيز با هر استاندارد و روشي آسان نيست.
براي اينكه باتها بتوانند حركت كنند، بايد بتوانند درباره اشيا و موجودات پيرامون خود ياد بگيرند. اين ايده بسيار اساسي، ميتواند به بخشهاي بيشتري مانند قابليت آناليز هنگام حركت در يك جهت خاص و سپس قابليت پيدا كردن اشيا و شخصيتهاي مجازيِ مقابل در يك مرحله بازي گسترش يابد. اين ايدهها شايد ساده به نظر برسند، ولي واقعاً اينگونه نيست؛ چرا كه يك bot بايد بتواند در برابر دو چيز واكنش درستي داشته باشد: ديوارها و فضاهاي خالي. ديوارها شامل همه چيزهايي است كه نميتوان از آن عبور كرد؛ مانند خود يك ديوار، نرده، شخصيتهاي مجازي، جعبهها، پلههاي رو به بالا و … فضاهاي خالي نيز هر جايي است كه زمين همواره نيست يا دچار شكستگي است؛ مانند يك چاله، پلههاي رو به پايين و … . براي رويارويي با اين دو مانع، يك روش خوب، افزايش كارايي تابع جستجو است. اين تابع كه در بازي Quake معرفي شد، به بات امكان ميدهد يك خط را از يكي از بُعدهاي X-Y-Z تا بُعد بعدي جستجو كند و اطلاعاتي مانند اينكه <اين خط به كجا ميرود، چه چيزي آن را قطع ميكند و …> را دريافت كند. دو روش براي گذشتن يكبات از يك مرحله، بيشتر مورد استفاده قرار ميگيرد: روش نخست از گرههاي گراف وضعيت و روش دوم از مسيرهاي (path) آن استفاده ميكند. در يك محيط براساس روش گره، گرهها در قسمت قوانين بهينهسازي مرحله (level) كه به وسيله سازنده يك bot تعريف شده است قرار دارند. هر گره ميتواند اطلاعات بات درباره قسمت خاصي از محيط ……