بررسی و مقایسه زبان های هوش مصنوعی
description
Transcript of بررسی و مقایسه زبان های هوش مصنوعی
oبررسی و مقایسه زبان
های هوش مصنوعی
مقدمه
1قسمت
دالیل مطالعه زبان های برنامه نویسی مختلف
افزایش توانایی در ساخت و توسعه الگوریتم ها• افزایش لغت شناسی در مورد ساختار برنامه ها•انتخاب بهترین زبان برنامه نویسی•ارتقاء روش های استفاده از زبان های موجود• یادیگری آسانتر زبان های جدید•ساده تر شدن طراحی زبان•
معیار های یک زبان خوبوضوح ، سادگی ، یک پارچگی• تعامد• طبیعی بودن برای کاربر• پشتیبانی از تجرد• قابلیت حمل برنامه• محیط برنامه نویسی•
معیار های یک زبان خوبهزینه استفاده•
اجراترجمهایجاد و آزمایشنگهداری و پشتیبانی
سادگی بررسی درستی برنامه•رسمیغیر رسمی
انواع زبان های برنامه نویسی ساخت یافته•
LISP , PASCAL , BASIC , C شئ گرا•
C++ , SIMULA , JAVA متنی•
JAVA Script , TCLمنطقی•
PROLOG
مدل های برنامه نویسی
دستوری•
تابعی•
قانونمند•
شئ گرا•
سیر تکاملی زبان هازبان مورد استفاده کاربرد دوره
COBOL تجاری
1960FORTRAN , BASIC ,
ALGOL , APL علمی Assembly سیستمی
LISP , SNOBOL هوش مصنوعیC++ , Java , 4GL تجاری
امروزهJava , C , C++ , BASIC سیستمی
C , C++ , Java علمیLISP , PROLOG هوش مصنوعیTEX , Postscript انتشارات
روش های اجرای برنامه
ترجمه )کامپایل(1.
تفسیر2.
ترکیب ترجمه و تفسیر3.
روش های اجرای برنامه
ترجمه شده و در هر زمان قابل اجرا است.زبان ماشین دستوzرات به 1.
و در همان لحظه اجرا می شود.خط به خط تفسیر دستورات 2.
کد میانی ابتدا ترجمه مختصری برروی دستورات انجام شده، سپس به 3.
تبدیل می شود وسپس کد میانی با سرعت بیشتری تفسیر و اجرا
.zمیشود
وسایل مورد نیاز
کامپایلر•اسمبلر•لودر )بارکننده(•لینکر )متصل کننده(• پیش پردازنده•
محیط میزبان و محیط عملیاتی
محیط میزzبان :•محیطی که برنامه در آن ایجاد، تست و اشکال زدایی می
شود. محیط عملیاتی :•
محیطی که برنامه در آن اجرا می شود.
محیط میزبان محیط عملیاتی
برنامه ما
مصنوعی هوzش
2قسمت
هوzش مصنوعی
سیستمی که می تواند واکنش هایی مشابه رفتار •هوشمندانه انسانی را داشته باشد.
روشی در جهت هوشمند کردن کامپیوتر .•
هوzش مصنوعی اولین باری که واژه هوش مصنوعی به کار رفت :•
1956جان مکارتی در سال “ دانش و مهندسی ساخت ماشین های هوشمند “
هوzش مصنوعی اولین باری که جهان با هوش مصنوعی آشنا شد :•
1950آلن تورینگ در سال مقاله ای در رابطه با تست تورینگ
تست تورینگ
زبان های هوش مصنوعی
• LISP
•PROLOG
بررسی
3قسمت
سازنده
PROLOG LISP
1970-1972 1950 طراحی سال
آلن / راسل فیلیپ آلنکلمرار کارتی مک جان طراح
سازنده
محیط اجرایی
PROLOG LISP
SWI-PROLOG Common LISP
نوع زبان
PROLOG LISP
منطقی / توصیفی توصیفی
انواع برنامه نویسی
توصیفی :•برنامzه نویzس فقzط برروی توصzیف یzا تعریzف منطzق حzل مسzئله تاکید دارد. چگونگی انجام مراحل برای رسیدن به پاسخ بر عهده زبان است.
منطقی :•برنامه نوzیس برروی خصوصیات حل مسئله تاکید دارد.
ساختمان داده
PROLOG LISP
) صف ) پیوندی لیست پیونده لیست
اجزای سازنده
PROLOG LISP
Ruleگزاره شرطی
Factگزاره خبری
S-expression( اجزا (تمام
عملگر ها
PROLOG LISP
صورت infixبه صورت prefixبه
منطقی محاسباتی
پاسخ به مسائل
PROLOG LISP
ای رویه توصیفی توصیفی
ifدستور
PROLOG LISP
شکل به-: CONDتابع If
انواع دادهPROLOG LISP
Term S-expression
یافته ساخت ساده لیست اتممتغیر
number atom ثابت
خصوصیاتPROLOG LISP
روابط و قواعد و درخواست دارای محاسبات و توابع دارای
Tail Head است مختلفی های لیست دارای عنوان به خود داده یک زبان این درشود می محسوب برنامه یک
اجرا backtrackingدارای زمان دراست
یک برای interpreterدارایاست اجرا و مقداریابی
NLP ( : مثل طبیعzی زبان پردازشدرک یا صدا تغzییر و دریافت
) کلمات معناییهای کاربرد می NLPدر استفاده
شود
یا تطبیق عملکرد matchingدارایاست
خصوصیات
PROLOG LISP
مهم خیلی کوچکی و بزرگیاست
(X وY نوشته بزرگ بایدشود(
enter وspace مهم همرا برنامه اجرای و است
. دهد می تغییر
حروف کوچکی و بزرگیندارد، زدن enterتفاوت
گاهی اما ندارد، تفاوتی همدر باید زدن spaceاوقاتکرد دقت
آموزش
4قسمت
LISPs-expression
atom (اتم)تواند می اتم هر
کارکترها از ای رشتهباشد
: مانند 9-0A-Za-z
<>"+()%#@$%
list (لیست)
هم تواند می اعضایشیک هم و باشد اتم یک
دیگر لیست) ها) اتم از ای مجموعه
: مانند 1 2 3
I am student
nill ()هم که خالی لیست یکباشد اتم یک تواند می
لیست یک هم و
LISP
نوشته می شوند prefix عبارات به صورت LISPدر زبان •:
Infix Prefix
2 + 3 + 2 3=
LISP شود تا بتوان آنرا مقداریابی LISPتمام عبارات باید در •
محاسبه کرد :مقداریابی
atom (اتم)
باشد، عدد اگررا عدد همان
گرداند می بر
: مانند >>> 1.2 1.2
symbolاگر حاصل باشد،است مقداری
نسبت آن به کهاید داده
: مانند a = 4اگر
>>> ( + 1 2 3 a ) 10
list (لیست)
را عضوش اولینمی تابع عنوان بهمی سعی و گیرد
اعضا بقیه روی کندکند اعمال
: مانند >>> ( 1 2 3 4 ) ERROR
عدد برنامه این در تابع 1زیرا عنوان به راآرگومان ) اعداد بقیه روی و کند می انتخاب
اما( ، کند می اعمال زیرا 1ها کند نمی کاری کهپس نیست شده .ERRORتعریف دهد می
LISP•Interpreter:
برنامه ای که توسط سازندگان ساخته شد تا عبارات را یک به یک بررسی کند و در صورت درستی به آن
اجازه محاسبه شدن را بدهد. برای این برنامه توابع و الگوریتم یا عبارت محاسباتی
تفاوتی نمیکند، فقط محاسبه می کند.
LISPروش نوشتن و اجرای برنامه :•
نوشتن عبارت
جواب
LISP•Atom table:
دو کارکتر که دارای یک آدرس در حافظه باشند .
در زبان های برنامه نویسی دیگر«symbol table»همان
LISPتوابع :•
همه کارها را انجام می دهند، هر یک از LISP توابع در توابع مسئول انجام یک وظیفه خاص است.
LISPجدول توابع :•
تابع نام کاربرد مثال
LIST‘ – اتم یا لیست zیک های آرگومان برگرداندن >>>LIST (1 2 3 4)(1 2 3 4)
‘ >>>XX
LENGTH ها عضو تعداد شمارش >>> length (1 2 3 a)4
Eval (مخال$فLIST) کننده LISTخنثی>>> eval ‘( + 1 2)3
Print چاپ >>>print ‘salamsalam
CAR بقیه حذف و اول آرگومان داشتن نگه >>>car ‘(1 2 3)1
CDR بقیه داشتن نگه و اول عضو حذف >>>cdr ‘(1 2 3)(2 3)
CONSیک symbolیک یک s-expressionیا یک listو و گیرد، listمی
آن اول عضzzzzzzzzzzzzzzو که گرداند -symbol ( sبرمیexpression) اعضای آن دوم عضو و است listاست
>>>cons 1 ‘(a b 3)1 a b 3
ATOM نشان و میگرداند بر آنرا منطقی مقدار و گرفته آرگومان یکاتم یک آرگومان که دهد )atom می )Tاست نه( (nilیا
>>> atom ‘aT
>>>atom ‘(1 2)nill
EQ آرگومان نای دو آیا گوید می و گرفته آرگومان دو تابعنه یا هست حافظه از نقطه یک به مربوط
>>> eq ‘x ‘xT
COND شرطی عملیات تابع
باشد EQ ‘x ‘c = Tاگر >>>cond (( eq x ‘c) ‘cc)
( T ‘nn))cc
LISPمثال هایی با توجه به توابع :•
LISPمثال هایی با توجه به توابع :•
دانشجویی ) – – ( شماره نام خانوادگی نام ترتیب به که باشد ها آرگومان این ما ربات داده پایگاه اگرداریم : حاال و است
((800111 Ali Mohseni( )800112 R eza Nazari( )800113 M aryam Karimi))؟ چیست لیست دوم نفر خانوادگی نام
LISP
LISPساخت توابع :•
defineروش 1.
defunروش 2.
LISP :defineروش 1.
و mnsمzی خواهیzم برنامzه ای بنویسzیم کzه دو تابzع به نام های pls ل آن هاzی برای تفاضzا و دومzه اولی برای جمع آرگومان هzک
باشد( >>>define( ‘
(pls )lambda )a b( )+ a b((
(mns )lambda)a b( )- a b(()
)
: مثال
>>> (pls 2 5)
7
>>> (mns (pls 3 6) (mns 6 9)
12
روش المبداروش المبدا
LISP :defunروش 2.
مثال قبل اما به روشی جدید :
PROLOG( و fact برنامه های این زبان از گزاره های خبری )•
( تشکیل شده است.ruleگزاره های شرطی )•fact در = داده ها ی مسئله (notepad)نوشته می شود
•rule قوائدی برای حل مسئله =• rule ها fact.ها را به هم مرتبط می سازد
PROLOG برای نوشتن :•
داده ها قواعد
و باشید داشته سواد اگربه وسایل این از بتوانید
می کنید استفاده درستیبنویسید توانید
PROLOGjimمثال قوائد و داده ها :• ann
tom
john
liz
pit
jery
PROLOG روابط فامیلی :•
parent(X, Y).
X )والد )پدر/مادر Y.است
PROLOG روابط فامیلی :•
PROLOG سؤال روابط فامیلی :•
.1annوالد کیست ؟
است؟liz والد tomآیا 2.
PROLOG
12
PROLOG سؤال روابط فامیلی با جنسیت :•
male(X)مرد بودن =
Female(X)زن بودن =
PROLOG
( نوشته می شود.:- دستورات شرطی به صورت ) •
•Prolog نسبت به حروف حساس است. تمام کلمات مهم با حرzوف کوچک نوشته می شوند.
( نشان داده ; با یا( و کلمه ) , با و کلمه )prologدر •می شود.
PROLOG
چند رابطه :•و والد روابط
فرزند
جنسیت روابط
خواهر رابطهبودن
بودن پدر رابطه
دایی رابطهبودن
خاله / عمه رابطهبودن
اجداد رابطه توابع از استفاده بابازگشتی
بودن مادر رابطه
PROLOG با توجه به داده های ما :prologچند سؤال از روابط و پاسخ های •
Tom مرد؟ است
Liz خواهرtom است؟
، johnمادر ann است؟
کیست؟ johnمادر داده) در نشده تعریف
ها(Ann ؟ کیست مادر
John عمویjery است؟
کیست؟ johnاجداد
کسی چه jeryپدر
است؟
PROLOG :prologانواع داده ها در •
داده
ساده( simple data type)
ثابت constant
Atomارقام و حروف از ای رشته
با نمایش کوچک حرفکهدهند : می
a1#
numberرند اعداد از ای رشته
شده :2 = 1.9 1 = 1.2
متغیر Variable
که ارقام و حروف از ای رشتهدهند بزرگ حرفبا می نمایش
:Ali24!
یافته ساخت(structureal data type)
ها داده انواع تمام از : ترکیبیdata(A,10001,box,(1235,Ali,all)
PROLOG( :matchingعمل تطبیق )•وقتی دو داده ساخت یافته نظیر به نظیر عباراتش •
یکسان باشد.(123 , A , f( = ) raha , 8000254 , Alex)
atom
number
متغیر
PROLOGپاسخ توصیفی و رویه ای)منطقی( :•
هم FACTکدام هم و است بزرگ
قرمز
منطقی روش
Big(X) Red(X)
Big(cat)
Big(hen)
Big(hen) Red(hen)
hen
روش توصیفی
PROLOG
:prologلیست در •مجموعه ای از انواع داده ها که به روشی خاص در
یک لیست قرار می گیرند.به کمک لیست ها می توان روابط خاصی را ساخت.•
( A , 80001 , (1,a,A), g )head tail
PROLOG
•Backtracking: هنگامی که در یک گزاره از برنامه رابطه ای استفاده می شود، پس از بررسی آن )حتی در صورت درست
بودن جواب( دوباره به محل همان گزاره در رابطه باز می گردد و اجرای برنامه از همان نقطه از سر
گرفته می شود.
PROLOG
جدول عبارات و عملگرهای محاسباتی:•
عملگر محاسباتی
+-*/
IS) مساوی ) _?x is 3+2
x = 5 _?3+2 = 5
False
اپراتورهای و محاسباتی
منطقی
> <=><=
= : =تساوی
چک را بودنمیکند.
= / =بودن مخالف
کند می چک را
,AND
;OR
h