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

Post on 24-Feb-2016

177 Views

Category:

Documents

10 Downloads

Preview:

Click to see full reader

DESCRIPTION

o. بررسی و مقایسه زبان های هوش مصنوعی. مقدمه. قسمت 1. دلایل مطالعه زبان های برنامه نویسی مختلف. افزایش توانایی در ساخت و توسعه الگوریتم ها افزایش لغت شناسی در مورد ساختار برنامه ها انتخاب بهترین زبان برنامه نویسی ارتقاء روش های استفاده از زبان های موجود یادیگری آسانتر زبان های جدید - PowerPoint PPT Presentation

TRANSCRIPT

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

top related