برنامه نویسی هوش مصنوعی



  •  برنامه نویسی هوش مصنوعی                                                                                                                                                   هوش مصنوعی چیست و چه اهمیتی در کسب و کار شما دارد؟   برنامه نویسی هوش مصنوعی
  • هوش مصنوعی، هوش ماشین هاست! در واقع شاخه ای از علوم کامپیوتر است که قصد دارد راه حل های الگوریتمی را ارائه کند تا بتوانیم به وسیله آنها در ماشین ها هوشمندی ایجاد کنیم. اما این تعریف کافی نیست؛ اول از همه باید بدانیم که تعریف هوشمندی چیست و بعد باید منظور از ماشین را دربیابیم:
  • استدلال، منطق، تصمیم گیری ؛ این ها توانایی هستند که شما از آنها استفاده می کنید. پس شما هوشمند هستید. اگر این توانایی ها را در کامپیوتر هم ایجاد کنیم، آنگاه به ماشین هوشمند دست می یابیم! به همین سادگی ... ولی به جز این ها چیز های دیگری هم در رابطه با تعریف هوشمندی وجود دارند که دانستن آنها را می توان مهم ارزیابی کرد. در واقع بحث هایی که در مورد هوشمندی و هوش مصنوعی مطرح شده است؛ تنها به دوره ی امروزه ی ما و قرن 21 مربوط نمی شود، بلکه از سال 1950 این مباحث به طور جدی مطرح شد.
  •  هدف‌ از اين‌ مقاله‌ آشنائي‌ با هوش‌ مصنوعي‌ به‌ عنوان‌ سمبل‌ ونماد دوران‌ فراصنعتي‌ و نقش‌ و كاربرد آن‌ در صنايع‌ و مؤسسات‌توليدي‌ مي‌باشد. بدين‌ منظور، اين‌ موضوع‌ در قالب‌ دو مقاله‌ جداگانه‌و يا دو بخش‌ ارائه‌ مي‌شود. در (بخش‌ اول‌)هوش‌ مصنوعي‌ موردمطالعه‌ قرار مي‌گيرد و سئوالاتي‌ نظير اين‌ كه‌ هوش‌ مصنوعي‌چيست‌؟ تفاوت‌ هوش‌مصنوعي‌ و هوش‌ طبيعي‌ (انساني‌) درچيست‌؟ شاخه‌هاي‌ عمده‌ هوش‌ مصنوعي‌ كدامند؟ و نهايتأ، اجزاي‌هوش‌ مصنوعي‌ نيز تشريح‌ مي‌شود.دربخش‌ دوم‌،كاربردهاي‌ هوش‌ مصنوعي‌در صنايع‌ و مؤسسات‌توليدي‌، بخصوص‌ در زمينه‌سيستم‌هاي‌ خبره‌ وآدمواره‌ها مورد مطالعه‌ وتجزيه‌ و تحليل‌ قرارمي‌گيرد.

برنامه نویسی هوش مصنوعی


زبانهای برنامه نویسی هوش مصنوعی(AI) ابزار اصلی بررسی و ساخت برنامه های كامپیوتری هستند كه می توانند در شبیه سازی فرایندهای هوشمند مانند یادگیری، استدلال و فهم اطلاعات نمادین بكار بروند.

  • زبان برنامه نویسی هوش مصنوعی
  • زبانهای برنامه‌نویسی هوش مصنوعی(AI) ابزار اصلی بررسی و ساخت برنامه‌های کامپیوتری هستند که می‌توانند در شبیه‌سازی فرایندهای هوشمند مانند یادگیری،‌ استدلال و فهم اطلاعات نمادین بکار بروند. هر چند اخیراً زبان کامپیوتر اصولاً برای استفاده از کامپیوترها برای انجام محاسبات با اعداد طراحی شده بود، اما بزودی دریافتند که رشته‌ای از بیتها نه تنها اعداد بلکه می‌توانند اشیای دلخواه را نیز نمایش دهند. عملیات روی ویژه‌گی‌ها یا نمادها می‌تواند با استفاده از قوانین برای ایجاد، انتساب یا دستکاری نشان داده شود. این تصور از محاسبات نمادین بعنوان تعریف الگوریتمهایی که هر نوع اطلاعات را پردازش می‌کنند و بنابراین می‌تواند برای شبیه‌سازی هوش انسان بکار برود مناسب است.
  • بزودی برنامه نویسی با نمادها که نیاز به سطح بالایی از چکیدگی دارند تولید می‌شوند، غیر از امکاناتی که با زبانهای برنامه نویسی مخصوص پردازش اعداد ممکن بود مانند فرترن
  • I) زبانهای برنامه نویسی AI
  • در AI خودكار كردن یا برنامه نویسی همه جنبه های شناخت انسانی بوسیله بنیادهای شناخت علمی روشهای نمادین و غیر نمادین AI، پردازش زبان طبیعی، دید كامپیوتری و سیستمهای تكامل یا سازگار مطرح می شود. لازم است دامنه مسئله های خیلی پیچیده در ابتدای مرحله برنامه نویسی یك مسئله AI معین، مشخص شود كه كافی نیست. تنها بوسیله تعامل و افزایش اصلاحات خصوصیات بسیار دقیق ممكن است. در حقیقت مسئله های معمول AI به بسیاری از زمینه های خاص گرایش دارند، بنابراین روشهای ذهنی باید بوسیله تولید و آزمایش روشها بطور تجربی توسعه یابند(مشهور به نمونه سازی سریع).
  • در اینصورت برنامه نویسی AI بطور قابل توجهی با روشهای استاندارد مهندسی نرم افزار متفاوت بوده زیرا برنامه نویسی معمولا از یك مشخصات رسمی با جزئیات شروع می شود. در برنامه نویسی AI پیاده سازی در واقع جزئی از پردازش مشخصات مسئله است. به اقتضای طبیعت مسئله های AI برنامه نویسی AI مزایای بسیاری دارد اگر زبانهای برنامه نویسی، برنامه نویسAI را آزاد بگذارند و در بسیاری از ساختارهای فنی محدود نكنند (مانند ساختار انواع داده ای جدید سطح پایین، دستیابی دستی به حافظه). ترجیحاً سبك برنامه نویسی اعلانی برای استفاده در ساختارهای پیش ساخته داده ای سطح بالا(مانند لیستها و درختها) و عملیات(مانند تطبیق الگوها) مناسب است، بنابراین محاسبات نمادین سطح خلاصه سازی بیشتری نسبت به آنچه كه با زبانهای دستوری استاندارد مانند فرترن، پاسكال یا C امكان پذیر خواهد بود را پشتیبانی می كند. البته طبقه بندی خلاصه سازی آسان نیست، زیرا تدوین برنامه های AI روی كامپیوترهای استاندارد وان نیومن نمی تواند به كارآمدی زبانهای دستوری باشد. هر چند یك مسئله مسلم AI فهم آن است (حداقل جزئیات) امكان دارد با تنظیم مجدد آن به شكل خصوصیات جزئی شده با بكار بردن یك زبان دستوری پیاده سازی مجدد شود.
  • با توجه به نیازمندیهای محاسبات نمادین و برنامه نویسی AI دو الگوی جدید برنامه نویسی كه به سبك دستوری پیشنهاد می شوند بوجود می آید: سبك برنامه نویسی تابعی و منطقی. هر دو بر مبنای ریاضیات طرح ریزی شده اند، یعنی نظریه توابع بازگشتی و منطق رسمی. اولین زبان برنامه نویسی AI كاربردی كه هنوز هم بطور گسترده استفاده می شود زبان برنامه نویسی Lisp است كه در اواخر دهه ۱۹۵۰ توسط جان مك كارتی توسعه یافته است. Lisp برمبنای نظریه توابع ریاضی و خلاصه سازی Lambda است. تعدادی از كاربردهای مهم و موثرAI در Lisp نوشته شده است. كه ما بعضی از جزئیات این زبان برنامه نویسی را در این مقاله شرح خواهیم داد. در اوایل دهه ۱۹۷۰ یك الگوی برنامه نویسی جدید بنام برنامه نویسی منطقی بر اساس محاسبات گزاره ای بوجود آمد. اولین و مهمترین زبان برنامه نویسی منطقی Prolog است كه توسط آلن كالمرار، رابرت كوالسكی و فیلیپ راسل توسعه یافته است. مسئله ها در prolog بصورت حقایق، بدیهیات و قوانین منطقی برای استنباط حقایق جدید بیان می شوند. Prolog با قانون ریاضی در محاسبات گزاره ای و نتایج نظری بدست آمده در زمینه اثبات قضیه خودكار در اواخر دهه ۱۹۶۰ بنا نهاده شده است.
  • برنامه نویسی هوش مصنوعی
  • II) برنامه نویسی تابعی در برنامه نویسی هوش مصنوعی
  • یك تابع ریاضی نگاشتی از یك مجموعه (دامنه) به مجموعه دیگر(برد) است. تعریف یك تابع توصیف این نگاشت است كه یا بطور صریح بوسیله شمارش و یا بطور ضمنی بوسیله یك عبارت است. تعریف یك تابع بوسیله نام تابع كه بدنبال آن لیستی از پارامترها در داخل پرانتز قرار دارند و به دنبال آن نیز عبارت توصیفی نگاشت است مشخص می شود مانند:
  • X یك عدد حقیقی است cube(X) ≡ X X X , where X is a real number.
  • آلونسو چارچ توابع بی نام را با استفاده از نمادLambda معرفی می كند. یك عبارت Lambda پارامترها و نگاشت تابع را با استفاده از عملگر X مشخص می كند, مانند ۹۵۵; (X)X X X آن خودش تابع است, بنابراین شرح بكار رفته در مثال تابع بی نام با یك آرگومان مشخص است. برای مثال:(۹۵۵; (X) X X X)(۴).
  • برنامه نویسی هوش مصنوعی در یك زبان تابعی شامل ساختمان تعریف توابع و بكاربردن كامپیوتر برای ارزیابی عبارات است. یعنی بكاربردن توابع با آرگومانهای واقعی. كار اصلی برنامه نویسی هوش مصنوعی پس از ساخت یك تابع برای یك مساله خاص تركیب توابع تعریف شده قبلی با توجه به اصول ریاضی است. كار اصلی كامپیوتر ارزیابی توابع فراخوانی شده و چاپ حاصل مقادیر تابع است. در این روش كامپیوتر مشابه یك كامپیوتر جیبی معمولی بكار می رود البته بسیار انعطاف پذیرتر و قدرتمندتر. یك خاصیت برنامه نویسی تابعی در برنامه نویسی هوش مصنوعی این است كه اگر عبارت به خوبی مقداردهی شود آنگاه ترتیب انجام ارزیابی كامپیوتر در نتایج ارزیابی تاثیری ندارد. بنابراین نتیجه ارزیابی یك عبارت تنها مقدار آن است. بدین معنی است كه در یك زبان تابعی ناب اثرات جانبی وجود ندارد. اثرات جانبی در مدل موقعیت های حافظه به متغیرها متصل شده اند.بنابراین در یك زبان برنامه نویسی ناب در مفهوم زبانهای دستوری متغیر وجود ندارد. روشهای اصلی كنترل جریان، بازگشت (تكرار) و عبارات شرطی هستند. این كاملاً با زبانهای دستوری در مفهوم اساسی كنترل ترتیب و تكرار متفاوت است. برنامه نویسی تابعی نیز خصوصیات توابع مرتبه بالا را پشتیبانی می كند. تابع مرتبه بالا تعریف تابعی است كه اجازه می دهد آرگومانها یا مقدار بازگشتی تابع, مقدار توابع باشند. همه این جوانب با هم مخصوصاً آخری از اصلی ترین مزایای سبك برنامه نویسی تابعی در برابر سبك برنامه نویسی دستوری هستند. خلاصه برنامه نویسی تابعی سطح بالایی از درجه پیمانه ای بودن را فراهم می كند. وقتی یك مسئله با تقسیم آن به مجموعه ای از زیر مسئله ها تعریف می شود, موضوع اصلی روشهایی است كه می توان زیر مسئله ها را به یكدیگر چسباند. بنابراین برای افزایش قابلیت پیمانه ای بودن یك مسئله مفهومی, ابتدا باید نوع جدیدی از چسب در زبان برنامه نویسی فراهم شود قدرت اصلی برنامه نویسی تابعی .
  • III) برنامه نویسی تابعی در Lisp
  • Lisp اولین زبان برنامه نویسی تابعی است: آن برای پشتیبانی محاسبات نمادین با استفاده از لیستهای پیوندی بعنوان ساختار مركزی داده ها ابداع شده بود ( Lisp یعنی پردازشگر لیست). جان مك كارتی دریافت كه روشهای كنترل جریان توابع ریاضی (بازگشت و تكرار) وسیله نظری مناسبی برای انجام محاسبات نمادین هستند. علاوه براین مفاهیم خلاصه سازی تابعی و كاربرد تابعی تعریف شده در محاسبات Lambda , سطح بالایی از خلاصه سازی موردنیاز برای مسئله های AI مشخص شده را فراهم می كنند.
  • Lisp در سال ۱۹۵۸ توسط مك كارتی ابداع شد و اولین نگارش محیط برنامه نویسی Lisp در سال ۱۹۶۰ آماده شد كه شامل یك مفسر, یك كامپایلر و مكانیسم تخصیص و بازپسگیری حافظه پویا بود (بعنوان مجموعه فضای هرز شناخته شده است). یكسال بعد اولین زبان استاندارد با نام Lisp۱.۵ معرفی شد. پس از آن تعدادی از نسخه ها و محیط های برنامه نویسی Lisp توسعه یافته اند. مانند MacLisp، FranzLisp، InterLisp، CommonLisp، Scheme هر چند آنها در بعضی جزئیات خاص متفاوتند ولی هسته Syntax (نحو) و Semantic (معنی) آنها اساساً یكسان است. هسته را در جای دیگر معرفی خواهیم كرد. پر استفاده ترین نسخه های
  • Lisp ، Common Lisp و scheme هستند. در این مقاله ما Common Lisp را برای نشان دادن جنبه های مختلف Lisp با مثالهای معمولی انتخاب كرده ایم. هرچند مثالها نیز به راحتی می توانند در نسخه های دیگر Lisp سازگار شوند.


نام :
ایمیل :
پیغام :
 
xhtml
akan google plus
akan facebook
akan twitter
akan instagram
css

شماره تماس :