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