انجام پایان نامه مهندسی کامپیوتر هوش مصنوعی | انجام پایان نامه مهندسی کامپیوتر | انجام پایان نامه مهندسی
انجام پایان نامه مهندسی کامپیوتر هوش مصنوعی
هوش مصنوعی یا هوش ماشینی را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانشها، علوم، و فنون قدیم و جدید دانست. ریشهها و ایدههای اصلی آن را باید در فلسفه، زبانشناسی، ریاضیات، روانشناسی، نورولوژی، و فیزیولوژی جستجو کرد و کاربردهای گوناگون و فراوانی در علوم رایانه، علوم مهندسی، علوم زیستشناسی و پزشکی، علوم ارتباطات و بسیاری از علوم دیگر دارد. هوش مصنوعی در علم پزشکیامروزه به دلیل گسترش دانش و پیچیده تر شدن فرایند تصمیم گیری، استفاده از سیستمهای اطلاعاتی به خصوص سیستمهای در حمایت ازArtificial Intelligence هوش مصنوعی تصمیم گیری اهمیت بیشتری یافته است. هوش مصنوعی به سیستمهایی گفته میشود که میتواند واکنشهایی مشابه رفتارهای هوشمند انسانی از جمله درک شرایط پیچیده، شبیه سازی فرایندهای تفکری و شیوههای استدلالی انسانی و پاسخ موفق به آنها، یادگیری و توانایی کسب دانش و استدلال برای حل مسایل داشته باشند. گسترش دانش در حوزهٔ پزشکی و پیچیدگی تصمیمات مرتبط با تشخیص و درمان - به عبارتی حیات انسان - توجه متخصصین را به استفاده از سیستمهای پشتیبان تصمیم گیری در امور پزشکی جلب نموده است. به همین دلیل، استفاده از انواع مختلف سیستمهای هوشمند در پزشکی رو به افزایش است، به طوری که امروزه تأثیر انواع سیستمهای هوشمند در پزشکی مورد مطالعه قرار گرفته است. هوش مصنوعی به هوشی که یک ماشین در شرایط مختلف از خود نشان میدهد، گفته میشود. بیشتر نوشتهها و مقالههای مربوط به هوش مصنوعی، آن را به عنوان «دانش شناخت و طراحی عاملهای هوشمند» تعریف کردهاند. یک عامل هوشمند، سیستمی است که با شناخت محیط اطراف خود، شانس موفقیت خود را پس از تحلیل و بررسی افزایش میدهد. جان مکارتی که واژه هوش مصنوعی را در سال ۱۹۵۶ استفاده نمود، آن را «دانش و مهندسی ساخت ماشینهای هوشمند» تعریف کردهاست. تحقیقات و جستجوهایی انجام شده برای رسیدن به ساخت چنین ماشینهایی با بسیاری از رشتههای علمی در ارتباط و همکاری است، مانند علوم رایانه، روانشناسی، فلسفه، عصب شناسی، علوم ادراکی، تئوری کنترل، احتمالات، بهینهسازی و منطق.
تاریخچه
هوش مصنوعی توسط فلاسفه و ریاضیدانانی نظیر بول که اقدام به ارائهٔ قوانین و نظریههایی در مورد منطق نمودند، مطرح شده بود. با اختراع رایانههای الکترونیکی در سال ۱۹۴۳، هوش مصنوعی دانشمندان آن زمان را به چالشی بزرگ فراخواند. دراین شرایط، چنین بهنظر میرسید که این فناوری قادر به شبیهسازی رفتارهای هوشمندانه خواهد بود.
با وجود مخالفت گروهی از متفکرین با هوش مصنوعی که با تردید به کارآمدی آن مینگریستند تنها پس از چهار دهه، شاهد تولد ماشینهای شطرنج باز و دیگر سامانههای هوشمند در صنایع گوناگون شدیم.
نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید. البته فعّالیّت در این زمینه از سال ۱۹۶۰ میلادی شروع شد.(مرجع۱)
بیشتر کارهای پژوهشی اولیه در هوش مصنوعی بر روی انجام ماشینی بازیها و نیز اثبات قضیههای ریاضی با کمک رایانهها بود. در آغاز چنین به نظر میآمد که رایانهها قادر خواهند بود چنین فعالیتهایی را تنها با بهره گرفتن از تعداد بسیار زیادی کشف و جستجو برای مسیرهای حل مسئله و سپس انتخاب بهترین روش برای حل آنها به انجام رسانند.
این اصطلاح (هوش مصنوعی) برای اولین بار توسط جان مکارتی (John McCorthy) -که از آن بهعنوان پدر «علم و دانش تولید ماشینهای هوشمند» یاد میشود- استفاده شد. آقای جان مکارتی مخترع یکی از زبانهای برنامه نویسی هوش مصنوعی به نام (lisp) نیز هستند. با این عنوان میتوان به هویت رفتارهای هوشمندانه یک ابزار مصنوعی پی برد. (ساختهٔ دست بشر، غیر طبیعی، مصنوعی) حال آنکه AI به عنوان یک اصطلاح عمومی پذیرفته شده که شامل محاسبات هوشمندانه و ترکیبی (مرکب از مواد مصنوعی) است.
از اصطلاح strong and weak AI میتوان تا حدودی برای معرفی ردهبندی سیستمها استفاده کرد. AIها در رشتههای مشترکی چون علم کامپیوتر، روانشناسی و فلسفه مورد مطالعه قرار میگیرند، که مطابق آن باعث ایجاد یک رفتار هوشمندانه، یادگیری و سازش میشود و معمولاً نوع پیشرفتهٔ آن در ماشینها و کامپیوترها استفاده میشود. زبانهای برنامه نویسی هوش مصنوعی lisp ,Prolog, clips، VP-Expert میباشد.
آزمون تورینگ
آزمون تورینگ آزمونی است که توسط آلن تورینگ در سال ۱۹۵۰ در نوشتهای به نام «محاسبات ماشینی و هوشمندی» مطرح شد. در این آزمون شرایطی فراهم میشود که شخصی با ماشینی تعامل برقرار کند و پرسشهای کافی برای بررسی اقدامات هوشمندانهٔ ماشین، از آن بپرسد. چنانچه در پایان آزمایش نتواند تشخیص دهد که با انسان و یا با ماشین در تعامل بوده است، تست تورینگ با موفقیت انجام شده است. تا کنون هیچ ماشینی از این آزمون با موفقیت بیرون نیامده است. کوشش این آزمون برای تشخیص درستی هوشمندی یک سیستم است که سعی در شبیه سازی انسان دارد.
تعریف و طبیعت هوش مصنوعی
هنوز تعریف دقیقی برای هوش مصنوعی که مورد توافق دانشمندانه این علم باشدارائه نشدهاست، و این به هیچ وجه مایهٔ تعجّب نیست. چرا که مقولهٔ مادر و اساسیتر از آن، یعنی خود هوش هم هنوز بطور همهجانبه و فراگیر تن به تعریف ندادهاست. در واقع، میتوان نسلهایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سؤال عمده نمودهاند که: هوش چیست؟
اما اکثر تعریفهایی که در این زمینه ارایه شدهاند بر پایه یکی از ۴ باور زیر قرار میگیرند:
سیستمهایی که به طور منطقی فکر میکنند
سیستمهایی که به طور منطقی عمل میکنند
سیستمهایی که مانند انسان فکر میکنند
سیستمهایی که مانند انسان عمل میکنند (مرجع۱)
شاید بتوان هوش مصنوعی را این گونه توصیف کرد: «هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را میتوان وادار به کارهایی کرد که در حال حاضر انسانها آنها را صحیح یا بهتر انجام میدهند»(مرجع۲). هوش مصنوعی به هوشی که یک ماشین از خود نشان میدهد و یا به دانشی در کامپیوتر که سعی در ایجاد آن دارد گفته میشود. بیشتر نوشتهها و مقالههای مربوط به هوش مصنوعی آن را «دانش شناخت و طراحی عاملهای هوشمند [۱]» تعریف کردهاند. یک عامل هوشمند سیستمی است که با شناخت محیط اطراف خود، شانس موفقیت خود را بالا میبرد. جان مکارتی که واژه هوش مصنوعی را در سال ۱۹۵۶ استفاده نمود، آن را «دانش و مهندسی ساخت ماشینهای هوشمند» تعریف کردهاست.
اینکه هوش مصنوعی چیست و چه تعریفی میتوان از آن بیان نمود؟ مبحثی است که تاکنون دانشمندان به یک تعریف جامع در آن نرسیدهاند و هریک تعریفی را ارائه نمودهاند که در زیر نمونهای از این تعاریف آمدهاست.
هنر ایجاد ماشینهایی که وظایفی را انجام میدهندکه انجام آنها توسط انسانها نیاز به هوش دارد (کورزویل- ۱۹۹۰)
مطالعه استعدادهای ذهنی از طیق مدلهای محاسباتی (کارنیاک و مک درموت - ۱۹۸۵)
مطالعه اینکه چگونه کامپیوترها را قادر به انجام اعمالی کنیم که در حال حاضر، انسان آن اعمال را بهتر انجام میدهد.(ریچ و نایت -۱۹۹۱)
خودکارسازی فعالیتهایی که ما آنها را به تفکر انسانی نسبت میدهیم. فعالیتهایی مثل تصمیم گیری، حل مسئله، یادگیری و... (بلمن -۱۹۷۸)
تلاشی نو و مهیج برای اینکه کامپیوترها را قادر به فکر کردن کنیم. ماشینهایی با فکر و حس تشخیص واقعی (هاگلند-۱۹۸۵)
یک زمینه تخصصی که به دنبال توضیح و شبیه سازی رفتار هوشمندانه بوسیله فرایندهای کامپیوتری است.(شالکوف -۱۹۹۰)
مطالعه محاسباتی که درک، استدلال و عمل کردن را توسط ماشینها را ممکن میسازد. (وینستون - ۱۹۹۲)
توانایی دست یافتن به کارایی در حد انسان در همه امور شناختی توسط رایانه (آلن تورینگ – ۱۹۵۰)
هوش مصنوعی دانش و مهندسی ساخت ماشینهای هوشمند و به خصوص برنامههای رایانهای هوشمند است. هوش مصنوعی با وظیفه مشابه استفاده از کامپیوترها برای فهم چگونگی هوش انسان مرتبط است، اما مجبور نیست خودش را به روشهایی محدود کند که بیولوژیکی باشند. (جان مک کارتی – ۱۹۸۰)
هوش مصنوعی علم طراحی سیستمهایی رایانهای ویا الکترونیکی است که تلاش مینماید تا رفتار انسان گونه را بازسازی نماید." به عبارت دیگر: هوش مصنوعی علم و مهندسی ایجاد ماشینهایی با هوش با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و یا حیوانی و نهایتاً دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی میباشد. (مسعود مولوی-۲۰۰۶)
همانطور که مشاهده مینمایید تعاریف بسیار متفاوتی از هوش مصنوعی ارائه شدهاست. همه تعریفهای ارائه شده درباره هوش مصنوعی تا کنون بر پایه یکی از چهار تعریف زیر استوار هستند که:
- سیستمی که عقلانی فکر میکند. – سیستمی که مثل انسانها فکر میکند. - سیستمی که عقلانی رفتار میکند. – سیستمی که همانند انسانها عمل میکند.
هر دانشمند و محققی در این زمینهها، عقیده متفاوتی را از عملکرد و نحوه کارکرد یک سیستم هوشمند دارد. اما براستی چرا این چنین است؟ برای پاسخ به این سوال میبایست در ابتدا مفهوم هوشمندی را برای خود تعریف کنیم.
هوشمندی مفهومی نسبی دارد و نمیتوان محدوده صحیحی را برای ارائه تعریف از آن مشخص نمود. رفتاری که از نظر یک فرد هوشمند به نظر میرسد؛ ممکن است برای یک فرد دیگر اینگونه به نظر نرسد. اما در مجموع خصوصیات زیر قابلیتهای ضروری برای هوشمندی است:
پاسخ به موقعیتهای از قبل تعریف نشده با انعطاف بسیار بالا و بر اساس بانک دانش
معنا دادن به پیامهای نادرست یا مبهم
درک تمایزها و شباهتها
تجزیه و تحلیل اطلاعات و نتیجه گیری
توانمندی آموختن و یادگرفتن
برقراری ارتباط دوطرفه
و...
به فرض اینکه تعاریف بالا را از هوشمندی بپذیریم، موارد زیر فهرستی است از وظایفی که از یک سیستم هوشمند انتظار میرود و تقریباً اکثر دانشمندان هوش مصنوعی بر آن توافق نظردارند به شرح زیر است:
تولید گفتار
تشخیص و درک گفتار (پردازش زبان طبیعی انسان)
دستور پذیری و قابلیت انجام اعمال فیزیکی در محیط طبیعی و مجازی
استنتاج و استدلال
تشخیص الگو و بازشناسی الگو برای پاسخ گویی به مسائل بر اساس دانش قبلی
شمایلی گرافیکی و یا فیزیکی جهت ابراز احساسات و عکس العملهای ظریف
سرعت عکس العمل بالا
و...
تحقیقات و جستجوهایی انجام شده برای رسیدن به ساخت چنین ماشینهایی مرتبط با بسیاری از رشتههای علمی دیگر میباشد، مانند علوم رایانه، روانشناسی، فلسفه، عصب شناسی، علوم ادراکی، تئوری کنترل، احتمالات، بهینه سازی و منطق
فلسفهٔ هوش مصنوعی
بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات، استقرا و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم است. در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسائل دریافت شده تلقی میشود. هوش مصنوعی علم و مهندسی ایجاد ماشینهایی هوشمند با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و یا حیوانی و نهایتاً دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی است.
در مقایسه هوش مصنوعی با هوش انسانی میتوان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم است در حالی که هوش مصنوعی مبتنی بر قوانین و رویههایی از قبل تعبیه شده بر روی کامپیوتر است. در نتیجه علیرغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر ما هنوز قادر به پیاده کردن هوشی نزدیک به هوش انسان در ایجاد هوشهای مصنوعی نبودهایم.
بطور کلّی، هوش مصنوعی را میتوان از زوایای متفاوتی مورد بررسی و مطالعه قرار داد. مابین هوش مصنوعی به عنوان یک هدف، هوش مصنوعی به عنوان یک رشته تحصیلی دانشگاهی، و یا هوش مصنوعی به عنوان مجموعهٔ فنون و راه کارهایی که توسط مراکز علمی مختلف و صنایع گوناگون تنظیم و توسعه یافتهاست باید تفاوت قائل بود.
اتاق چینی
اتاق چینی بحثی است که توسط «جان سیرل» در ۱۹۸۰ مطرح شد در این راستا که یک ماشین سمبل گرا هرگز نمیتواند دارای ویژگیهایی مانند «مغز» و یا «فهمیدن» باشد، صرف نظر از اینکه چقدر از خود هوشمندی نشان دهد.
مدیریت پیچیدگی
ایجاد و ابداع فنون و تکنیکهای لازم برای مدیریّت پیچیدگی را باید به عنوان هستهٔ بنیادین تلاشهای علمی و پژوهشی گذشته، حال، و آینده، در تمامی زمینههای علوم رایانه، و به ویژه، در هوش مصنوعی معرّفی کرد. شیوهها و تکنیکهای هوش مصنوعی، در واقع، برای حلّ آن دسته از مسائل به وجود آمدهاست که به طور سهل و آسان توسط برنامهنویسی تابعی (Functional programming)، یا شیوههای ریاضی قابل حلّ نبودهاند.
در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمّیّت است که بر پیچیدگی فائق میآییم و میتوانیم بر روی بخشهایی از مسئله متمرکز شویم که مهمتر است. تلاش اصلی در واقع، ایجاد و دستیابی به لایهها و ترازهای بالاتر از هوشمندی تجرید را نشانه میرود، تا آنجا که، سرانجام برنامههای کامپیوتری درست در همان سطحی کار خواهند کرد که خود انسانها رسیدهاند.
به یاری پژوهشهای گسترده دانشمندان علوم مرتبط، هوش مصنوعی تاکنون راه بسیاری پیمودهاست. در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این دانش کمک زیادی کردهاست. یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه روباتیی هوشمند که بتواند اعضای بدن خود را به حرکت درآورد، این روبات نسبت به این حرکت خود آگاه بوده و با آزمون و خطا، دامنه حرکت خود را گسترش میدهد و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی میدود و یا به روشی برای جابجا شدن دست مییابد، که سازندگانش برای او متصور نبودهاند.
هر چند نمونه بالا ممکن است کمی آرمانی به نظر برسد، ولی به هیچ عنوان دور از دسترس نیست. دانشمندان، عموماً برای تولید چنین ماشینهایی، از وجود مدلهای زندهای که در طبیعت وجود، به ویژه آدمی نیز سود بردهاند.
هوش مصنوعی اکنون در خدمت توسعه علوم رایانه نیز است. زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن ساختهاند، پایگاههای دادهای پیشرفته، موتورهای جستجو، و بسیاری نرمافزارها و ماشینها از نتایج پژوهشهایی در راستای هوش مصنوعی بودهاند.
تکنیکها و زبانهای برنامه نویسی هوش مصنوعی
عملکرد اولیه برنامه نویسی هوش مصنوعی ایجاد ساختار کنترلی مورد لزوم برای محاسبه سمبولیک است زبانهای برنامه نویسی LISP,PROLOG علاوه بر اینکه از مهمترین زبانهای مورد استفاده در هوش مصنوعی هستند خصوصیات نحوی ومعنایی انها باعث شده که انها شیوهها و راه حلهای قوی برای حل مسئله ارایه کنند. تاثیر قابل توجه این زبانها بر روی توسعه AI از جمله تواناییهای آنها به عنوان «ابزارهای فکرکردن» است. در حقیقت همان طور که هوش مصنوعی مراحل رشد خود را طی میکند، زبانهای LISP ,PROLOG بیشتر مطرح میشوند که این زبانها کار خود را در محدوده توسعه سیستمهای AIدر صنعت ودانشگاهها دنبال میکنند و طبیعتاً اطلاعات در مورد این زبانها به عنوان بخشی از مهارت هر برنامه نویس AIاست.
PROLOG: یک زبان برنامه نویسی منطقی است. یک برنامه منطقی دارای یک سری ویژگیهای قانون و منطق است. در حقیقت خود این نام از برنامه نویسی PROدر LOGIC میآید. در این زبان یک مفسر برنامه را بر اساس یک منطق مینویسد. ایده استفاده توصیفی محاسبهٔ اولیه برای بیان خصوصیات حل مسئله یکی از محوریتهای مشارکت PROLOG است که برای علم کامپیوتر به طور کلی و بطور جزئی برای زبان برنامه نویسی هوشمند مورد استفاده قرار میگیرند.
LISP: اصولاً LISP یک زبان کامل است که دارای عملکردها و لیستهای لازمه برای توصیف عملکردهای جدید، تشخیص تناسب و ارزیابی معانی است. LISP به برنامه نویس قدرت کامل برای اتصال به ساختارهای اطلاعاتی را میدهد گر چه LISP یکی از قدیمیترین ترین زبانهای محاسباتی است که هنوز فعال است ولی دقت کافی در برنامه نویسی وطراحی توسعه باعث شده است که این یک زبان برنامه نویسی فعال باقی بماند.
در حقیقت این مدل برنامه نویسی طوری موثر بودهاست که تعدادی از دیگر زبانها براساس عملکرد برنامه نویسی آن بنا شدهاند: مثل FP،ML،SCHEME
یکی از مهمترین برنامههای مرتبط با LISP برنامه SCHEME است که یک تفکر دوباره در باره زبان در آن وجود دارد که بوسیله توسعه AI وبرای آموزش واصول علم کامپیوتر مورد استفاده قرار میگیرد.
عاملهای هوشمند
عاملها (Agents) قادر به شناسایی الگوها، و تصمیم گیری بر اساس قوانین فکر کردن خودهستند. قوانین و چگونگی فکر کردن هر عامل در راستای دستیابی به هدفش، تعریف میشود. این سیستمها بر اساس قوانین خاص خود فکر کرده و کار خودرا به درستی انجام میدهند. پس عاقلانه رفتار میکنند، هر چند الزاماً مانند انسان فکر نمیکنند.
در بحث هوشمندی اصطلاح PEAS سرنام واژههای "کارایی (Performance)"، "محیط (Environment)"، "اقدام گر (Agent)" و "حسگر (Sensor)" است.
سیستمهای خبره
سیستمهای خبره زمینهای پرکاربرد در هوش مصنوعی و مهندسی دانش است که با توجّه به نیاز روزافزون جوامع بر اتخاذ راه حلها و تصمیمات سریع در مواردی که دانشهای پیچیده و چندگانهٔ انسانی مورد نیاز است، بر اهمیت نقش آنها افزوده هم میشود. سیستمهای خبره به حل مسائلی میپردازند که به طور معمول نیازمند تخصّصهای کاردانان و متخصّصان انسانی است. به منظور توانایی بر حل مسائل در چنین سطحی (ترازی)، دسترسی هرچه بیشتر اینگونه سامانهها به دانش موجود در آن زمینه خاص ضروری میگردد.