Transcript Slide 1

‫بنام خدا‬
‫مهندس سهیل افراز‬
‫عضو هیات علمی دانشگاه آزاد اسالمی واحد اردبیل‬
‫گروه مهندس ی کامپیوتر‬
‫‪www.iauardabil.ac.ir/afraz‬‬
‫‪[email protected]‬‬
‫‪[email protected]‬‬
‫فهرست مطالب‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬
‫مفاهیم پایه سیستمهای خبره‬
‫معماری سیستمهای خبره‬
‫مهندس ی دانش‬
‫روشهای بازنمایی دانش‬
‫استنتاج رو به جلو و عقب‬
‫مطالعه موردی سیستم خبره رباتها ( از روی جزوه کالس ی مطالعه گردد)‬
‫برنامه نویس ی به زبان منطق با پرولوگ‬
‫سیستمهای خبره‬
‫‪ ‬بیشتر به عنوان یک تکنولوژی مطرح میشوند و نه علم‪،‬تکنولوژی و هر آنچه که در‬
‫اختیار ما برای حل مسئله است‪.‬‬
‫)‪Structured(classic‬‬
‫‪problem‬‬
‫)‪Non-structured(traditional‬‬
‫که نیاز به هوشمندی داشته‬،‫•هر مسئله ای که در آن نقطه مبهمی وجود داشته باشد‬
.‫باشد‬
AI
problem solving
1.space
search
2.strategy
3.target
1.problem Reduction Search(P.R.S)
Search Approach
2.State Space Search(S.S.S)
: ‫کاربردهای هوش مصنوعی‬
Robotics
Theorm
proring
Speech
Synthesis
AI
Aplication
Natural
Language
Expert
System
Vision
System
‫برخی تعاریف سیستمهای خبره ‪:‬‬
‫‪ ‬دارلینگتون ‪:‬سیستم خبره برنامه ای است که سعی میکند از انسان متخصص در استفاده‬
‫از روشهای استنتاج برای یک قالب معین از دانش تقلید کند‪،‬که این قالب از دانش حوزه‬
‫نامیده می شود‪.‬‬
‫‪ ‬براکس‪ :‬سیستم خبره یک برنامه کامپیوتری است که طرز فکر یک فرد خبره را در‬
‫برابر حل مسائل یک تصمیم گیری پیچیده در یک دامنه مشخص شبیه سازی می کند‪.‬‬
‫‪ ‬دورکین‪ :‬سیستم خبره سیستمهای اطالعاتی برای حل یک مسئله خاص هستند که مهارتی‬
‫شبیه به فرد خبره در یک حوزه خاص فراهم می آورد‪.‬‬
‫مزایای سیستم های خبره‪:‬‬
‫‪ .1‬افزایش قابلیت دسترسی‬
‫‪ .2‬کاهش هزینه‬
‫‪ .3‬کاهش خطر‬
‫‪ .4‬دائمی بودن‬
‫‪ .5‬تجربیات چند گانه‬
‫‪ .6‬افزایش قابلیت اطمینان‬
‫‪ .7‬قدرت تنیین‬
‫‪ .8‬پاسخ دهی سریع‬
‫‪ .9‬پاسخ ذهی در همه حالت‬
‫‪ .10‬پایگاه تجربه‬
‫‪ .11‬آموزش کاربر‬
‫‪ .12‬سهولت انتقال دانش‬
: ‫مقایسه سیستم خبره و برنامه متعارف‬
Conventional program
Expert system
Numeric
Symbolic
Algorithmic
Heuristic
Information and control Integrated
Knowledge separate from control
Difficult to modify
Easy to modify
Precise Information
Uncertain Information
Command Interface
Natural dialogue with explanation
Final result given
Recommendation with explanation
Optimal solution
Acceptable solution
‫مهندسی دانش‬
‫‪ ‬فرآیند ساخت یک سیستم خبره را مهندسی دانش می گوییم ‪ .‬ایجاد یک سیستم خبره‬
‫فرآیندی تکراری است و مراحل مختلف آن در طی پروژه تکرار میشود‪،‬یعنی اینکه‬
‫طراح قسمتی از سیستم را میسازد وتست می کند و پس از آن دوباره سیستم را‬
‫توسعه و بهبود می بخشد‪.‬‬
Assessment
Requirements
Knowledge
acquisition
knowledge
Design
Structure
Test
Evaluation
Documentat
ion
Product
Maintenance
‫فازهای مهندسی دانش‬
Exploration
Reformation
Refinements
‫هرم سلسله مراتب دانش‬
‫حکمت‬
‫دانش‬
‫اطالعات‬
‫داده‬
‫نویز‬
‫بازنمایی دانش‬
‫‪ ‬نمایش دانش روشهایی است که برای کد کردن دانش در پایگاه دانش سیستم خبره‬
‫استفاده می شود‪،‬بعد از آنکه دانش از یک فرد خبره در یک دامنه خوش‬
‫متمرکز)‪(well-focused domain‬بایستی در یک سیستم خبره کد شود‪ ،‬برای‬
‫کد کردن دانش نیاز به ساختار بندی دانش است به گونه ای که سیستم قادر به حل‬
‫مسئله به روش مشابه فرد خبره باشد‪.‬‬
‫‪ ‬حقیقت(‪ :)fact‬گروه های سازنده در سازماندهی دانش انسان است‪.‬حقایق فهم‬
‫ودانایی ما از یک رویداد یا مسئله است که قالبی از دانش توصیفی است‪.‬‬
‫روشهای بازنمایی دانش‬
‫‪ ‬منطق‬
‫گزاره ای‬
‫مرتبه اول‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مثلث سه تایی)‪(Object-Attribute-Value Triple‬‬
‫قاعده یا قانون ‪Rule‬‬
‫شبکه معنا ‪Semantic Network‬‬
‫رویه ای ‪procedural‬‬
‫فریم یا قاب ‪Frame‬‬
‫روش مثلث سه تایی ‪OAV‬‬
‫‪ ‬یک نوع گزاره پیچیده تر است که یک عبارت را به سه بخش تقسیم میکند‪،‬‬
‫مزیت‪OAV‬این است که با عبارتهای کمتری میتوان دانش بیشتری را ارائه نمود‪.‬‬
‫‪The ball’s color is red‬‬
‫‪Red‬‬
‫‪color‬‬
‫‪ball‬‬
‫‪Value‬‬
‫‪Attribute‬‬
‫‪Object‬‬
‫‪Rain‬‬
‫‪Value‬‬
‫‪Forecast‬‬
‫‪Attribute‬‬
‫‪Weather‬‬
‫‪Object‬‬
‫‪It’s raining‬‬
‫یک شیی با چندین ویژگی )‪(Object with Multiple Attribute‬‬
‫‪1 foot‬‬
‫‪Red‬‬
‫‪1 pound‬‬
‫‪Value‬‬
‫‪Diameter‬‬
‫‪Color‬‬
‫‪Weight‬‬
‫‪Ball‬‬
‫‪Object‬‬
‫‪Attribute‬‬
‫‪ ‬به این نوع دانش دانش سه تایی گفته می شود زیرا به سه بخش تبدیل می شود و‬
‫مدیریت و سازماندهی آن ساده تر است ولی بیانگر یک گزاره است‪.‬‬
)Types of knowledge( ‫انواع دانش‬
) Procedural Knowledge)‫دانش رویه ای‬
(Declarative Knowledge)‫دانش توصیفی‬
(Meta Knowledge)‫فرادانش‬
(Heuristic Knowledge)‫دانش هیورستیک‬
(Structural knowledge)‫دانش ساختاری‬
.1
.2
.3
.4
.5
‫ضریب قطعیت (‪)CF‬‬
‫‪ ‬بیانگر درجه باور ما نسبت به یک حقیقت است‪.‬‬
‫کامال درست‬
‫‪1.0‬‬
‫‪0.4‬‬
‫‪0.8‬‬
‫‪0.6‬‬
‫‪-0.4‬‬
‫‪0‬‬
‫‪0.2‬‬
‫‪-0.2‬‬
‫‪-0.8‬‬
‫‪-0.6‬‬
‫کامال نادرست‬
‫‪-1.0‬‬
(Rule) ‫قانون‬
‫ قانون ساختاری از دانش است که اطالعات شناخته شده ای را به اطالعات شناخته شده‬
.‫دیگر مرتبط می سازد که می تواند این ساختار مورد استنتاج یا نتیجه گیری قرارگیرد‬
If the ball’s color is red
If ball s color is red
Then I like the ball
Then I like the ball
Step 2
Step 3
Step 1
Q: Ball’s color ?
A : Red
If I like the ball
Then I will buy the ball
Ball color is red
I like the ball
Step 5
I will buy the ball
Step 4
‫انواع قانون‬
: (Relationship Rules)‫قانون رابطه ای‬
.1
 IF the battery is dead
 Then the car will not start
: (Recommendation Rules)‫قانون توصیه ای‬.2
 IF the car will not start
 THEN take a cab
‫انواع قانون‬
:(Directive Rules)‫ قانون دستوری‬.3
 IF the car will not start
 AND the fuel system is ok
 THEN check out the electrical system
:(Strategy Rules) ‫قانون راهبردی‬.4
 IF the car will not start
 THEN first check out the fuel system
 THEN check out the electrical system
‫انواع قانون‬
:(Heuristic Rules) ‫قانون هیورستیک‬.5
 IF the car will not start
 AND the car is a 1957 Ford
 THEN check the float
:(Meta Rules) ‫فرا دانش‬.6
 IF the car will not start
 AND the electrical System is operating normally
 THEN use rules concerning the fuel system
‫تخته سیاه)‪(Black Board‬‬
‫حل مسائل توزیع شده)‪)Distributed problem solving‬‬
‫‪ ‬ممکن است در مسائلی نیاز باشد چندین خبره در مورد یک مسئله و برای حل آن‬
‫بیندیشند وبه عبارت دیگر چندین خبره با هدف حل نمودن مسئله به آن بپردازد به‬
‫این مسئله سیستم خبره توزیع شده می گوییم‪.‬‬
‫‪E.Sn‬‬
‫‪Scheduler‬‬
‫‪Black Board‬‬
‫‪E.S 1‬‬
‫‪E.S 2‬‬
‫مولفه های اصلی سیستم خبره توزیع شده‬
‫‪.1‬‬
‫مجموعه ای از سیستمهای خبره ‪Commiunity of different Expert System‬‬
‫‪ .2‬تخته سیاه ‪Black Board‬‬
‫‪ .3‬زمانبند ‪Scheduler‬‬
‫‪‬‬
‫سیستم تخته سیاه عالوه بر اینکه کمیته ای از سیستمهای خبره است بخشی برای‬
‫قرار دادن راحل ها دارد و یک زمانبند نیز برای تقسیم زمان موجود و در اختیار‬
‫قرار دادن زمان میان خبره ها دارد‪.‬‬
‫شبکه معنا )‪(Semantic Network‬‬
‫‪ ‬شبکه معنا روشی برای بازنمایی دانش با استفاده از گراف است که از گره ها و‬
‫یالها تشکیل شده است به طوری که گره ها نشانه اشیاء و یالها نشان دهنده ارتباط‬
‫بین اشیا می باشند‪.‬‬
‫‪Object‬‬
‫‪Is - A‬‬
‫‪Object Properties‬‬
‫‪Property‬‬
‫‪Value‬‬
‫‪Node‬‬
‫‪Has‬‬
‫‪Verb‬‬
‫‪Relation‬‬
‫مثالی از شبکه معنای ساده‬
Wings
Has
Is - A
CANARY
Bird
Travel
Fly
‫مثالی از شبکه معنای گسترش یافته‬
Air
Wings
1
Breathe
HAS
Tweety Is -A
Canary
Is -A
Bird
Is -A
Penguin
3
Travel
Walk
Is -A
Travel
Fly
Animal
2
‫قاب یا چهارچوب (‪)Frame‬‬
‫‪ Semantic Network + Procedure = Frame‬‬
‫‪ Object = Data (Properties ) + Procedure‬‬
‫‪ ‬فریم ساختمان داده ای برای بازنمایی دانش کلیشه ای مشابه مفهوم یا شیء‬
‫می باشد‪.‬‬
)Frame( ‫ساختار کلی چارچوب یا قاب‬
Frame
Name
Object 1
Class
Properties
Object 2
Property
Value1
Procedure
Property
Value2
P1
.
.
.
.
.
.
.
.
.
‫وجوه)‪(Facets‬‬
‫‪ ‬کنترلی روی مقادیر ویژگیهاست ‪ .‬به بیانی می توان گفت ‪ Facet‬نوعی‬
‫محدودیت و قید گذاری است به طور مثال می توان مقدار عددی را به محدوده‬
‫خاص محدود نمود یا تنها قادر به پذیرفتن مقادیر خاص باشد‪.‬‬
‫‪IF Needed‬‬
‫‪ IF Tweety has less than two wings‬‬
‫‪ THEN Tweety can’t fly‬‬
‫‪IF Changed‬‬
‫‪ IF self : Hungry = True‬‬
‫‪ THEN self : Activity =Eating #self =Eats‬‬
‫بازنمایی دانش با استفاده زبان رویه (‪) Procedure‬‬
‫‪ ‬هدف بیان دانش رویه ای است‪.‬یعنی چه مراحلی طی کنیم به پاسخ مسئله برسیم‪.‬‬
‫زبان رویه ای توصیفی نیز می باشد و عمال دانش قطی پشتیبانی می شود‪،‬زبان‬
‫‪ procedure‬یک ساختار استاندارد را شامل نمی شود‪ .‬هر زبان رویه ای یک‬
‫مفهوم است و هر زبان برنامه سازی یک نمونه از آن است‪.‬‬
‫‪ ‬زبان رویه ای سعی می کند که یک سطح تجرید ( ‪ )Abstraction‬از خود ارائه‬
‫دهد لذا در زبان ‪ procedure‬سعی می شود که استانداردش دورتر از زبان ماشین‬
‫باشد تا کار ترجمه توسط مهندس دانش ساده تر انجام شود‪.‬‬
A Sample Syntax of procedure
<Knowledge>::<procedure>|< procedure>< Knowledge >
< procedure >:: (<proce_name>:<proc_body>)
< proc_body >::<st>|<st>.< proc_body>
<st>::<if_is>|<Loop_st>|<Simple_st>
<if_st>::if<B.exp>then<simple_st>
<Loop_st>::Loop<B_exp><simple_st>
<simple_st>::<proc_name>|<primitive>
‫مزایای زبان رویه ای دانش‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬
‫ساده است‬
‫مستقل از ماشین است‬
‫به راحتی قابل استفاده است‬
‫سریع است‬
‫کاهش خطای انسان را به همراه دارد‬
‫به راحتی قابل یادگیری است‬
‫مهندسی دانش به راحتی با آن کار می کند‬
‫نمایش دانش با قوانین یا قواعد‬
‫‪If (C1 & C2 &,…,&Cn) then X‬‬
‫استنتاج برروی قوانین‬
‫‪.1‬استنتاج رو به جلو (‪)Forward Reasoning‬‬
‫‪.2‬استنتاج رو به عقب (‪)Backward Reasoning‬‬
‫‪.1‬استنتاج رو به جلو(‪) F.R‬‬
‫‪Rules‬‬
‫‪1‬‬
‫‪2‬‬
‫پیامد‬
‫‪F.R‬‬
‫مشاهدات‬
‫موتور استنتاج رو به جلو‬
‫‪.2‬استنتاج رو به عقب (‪) B.R‬‬
‫‪Rules‬‬
‫‪2‬‬
‫‪1‬‬
‫‪B.R‬‬
‫پیامد‬
‫‪3‬‬
‫مشاهدات‬
‫مسئله‬
‫‪Context‬‬
‫‪ ‬ارتباط دهنده بین ما و محیط پیرامون می باشد و به عنوان مدلی از محیط می باشد و‬
‫هر آنچه که به ‪ Context‬وارد می کنیم گویی به محیط واقعی هم وارد می کنیم و‬
‫در حقیقت دید ما از دنیای واقعی همان‪ Context‬است‪ .‬کار ‪ Context‬مدل کردن‬
‫دنیایی است که در حال عمل کردن می باشد ‪ Context‬یک ماجول از مکانیزم‬
‫استنتاج می باشذ‪.‬‬
‫برنامه نویسی به زبان پرولوگ‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫پردازنده زبانهای منطقی برای استنتاج منطقی استفاده می شود‪.‬‬
‫مکانیزم استنتاج منطقی براساس جایگزینی است ‪.‬‬
‫تنها تکنیک برنامه نویسی موجود در پرولوگ ‪،‬بازگشتی (‪)Recursion‬‬
‫می باشد‪.‬‬
‫پرولوگ حساس به حروف بزرگ و کوچک است‪.‬‬
‫مولفه های زبان پرولوگ‬
‫‪constant‬‬
‫‪Parametric‬‬
‫‪1.Facts‬‬
‫‪2.Relations‬‬
‫‪Knowledge‬‬
‫‪3.Query‬‬
‫‪:Fact ‬معرف اصول غیر قابل تغییر هستند مفروضات مسئله را شامل می شود‪.‬‬
‫‪:Relation ‬برای برقراری ارتباط بین واحدهای مختلف برنامه در راستای تولید‬
‫جواب مسئله به کار میروند‪.‬‬
‫‪ :Query ‬سواالت مطرح شده در مورد برنامه منطق‬
‫گزاره ‪:‬‬
‫)گزاره(‪Predicate‬‬
‫‪Examples:‬‬
‫)‪ Add(X,0,X‬‬
‫)‪ Mult(1,X,X‬‬
‫)‪ Mult(X,0,0‬‬
‫)‪ Add(1,0,1‬‬
‫نکته ‪ :‬زبان پرولوگ ‪ typeless‬بوده و پارامترهای آن در گزاره ها دارای نوع و محل مشخص نمی باشند ‪.‬‬
‫ساختمان داده لیست(‪)List‬‬
‫]]‪L1=[a,b,c,d]=[a|[b,c,d‬‬
‫‪ ‬برنامه ای بنویسید که ‪ Head‬هر لیست را به ما بدهد؟‬
‫)]‪Head(X,[X|Y‬‬
‫نکته ‪ :‬مابقی مثالهای برنامه نویس ی پرولوگ مطالعه گردد ‪.‬‬