Transcript نمایش دانش
نمایش دانش
سید هاشم داورپناه
[email protected]
دانشگاه علم و فرهنگ
نیاز به یك نمایش خوب
نمایش دانش بیانگر روشي است كه كامپیوتر براساس آن
مسئله را نمایش ميدهد ،متغیرهایي كه استفاده ميكند و
عملگرهایي كه بر روي این متغیرها اعمال ميشوند.
مسئله یافتن لنز تماسی
تصور نمایید شما به دنبال یك لنز تماسي در یك زمین فوتبال
بگردید .احتماالً چیزهایي درباره اینكه كجا بودهاید و به كدام مناطق
زمین رفتهاید به خاطر دارید .این دانش ميتواند به شما كمك كند تا
جستجوي سریعتري داشته باشید.
كامپیوتر زمین بازي را به 4محوطه مساوي مربع تقسیم نماید.
كامپیوتر زمین مسابقه را شبكهبندي می كند به صورتي كه هر
نقطه از زمین در یك خانه این شبكه قرار بگیرد.
روش بهتر نمایش این است كه كامپیوتر زمین بازي را به شبكهاي
تقسیم نماید كه هر خانه این شبكه محوطهاي به طول یك فوت در
عرض یك فوت باشد.
روش نمایش خوب
روش نمایش باید طوري باشد كه:
كامپیوتر وقت زیادي را جهت محاسبات بیهوده صرف نكند.
نمایش به مسئلهاي كه ميخواهد حل نماید وابسته نباشد.
باید روشهایي را فراهم آورد كه از طریق آنها كامپیوتر بتواند
حقیقتا ً مسئله را حل نماید.
شبكههاي معنا )(Semantic Networks
شبكه معنا یك روش نمایش متداول در هوش مصنوعي
ميباشد.
شبكه معنا یك گراف است كه از یكسري نود كه بوسیله لبهها
به یكدیگر متصل شدهاند تشكیل شده است .نودها اشیاء و
پیوندهاي میان نودها ،رابطه میان اشیاء را بیان ميدارند.
این پیوندها ،هر یك معموالً یك برچسب دارند كه خصوصیت
آن رابطه را بیان مينماید.
شبکه معنا: مثال
Dog
Bob
is a
is a
owns
Fido
eats
Builder
Cat
is a
Mice
Fang
chases
eat
Chees
e
شبکه معنا
انتخاب دقیق یك شبكه معنا جهت ارائه یك مسئله ميتواند تأثیر
بسیاري در نحوه حل آن مسئله داشته باشد.
به عنوان مثال براي جستجوي یك كلمه در یك فرهنگ لغت ميتوان
نودها را مانند یك زنجیر در كنار یكدیگر قرار داد و اتصالي را بین
آنها برقرار نمود به طوري كه هر صفحه یا نود به صفحه یا نود
بعدي آن پیوند داشته باشد .جهت یافتن صفحهاي كه این كلمه
خاص در آن جاي دارد باید بصورت ترتیبي از نود اول جستجو
انجام شود و در هر گام یك حركت به جلو برداشته شود .روشن
است كه این روش اصالً كارا نميباشد و مانند این است كه كتاب را
از اول ورق بزنیم تا به صفحه مورد نظر برسیم.
وراثت
وراثت اجازه ميدهد تا خصوصیاتي از ابركالس ( )Super class
را مشخص نماییم و بتوانیم زیركالس ( )Super classرا طوري
تعریف نماییم كه این خصوصیات را از ابركالس به ارث ببرد.
اگرچه ارثبري یك روش مفید جهت بیان خصوصیات عمومي یك
كالس از چند شي آن ميباشد ،اما در بعضي از حالتها نیاز داریم تا
استثنائاتي را براي آن عمومیتها قائل شویم (به عنوان مثال،
حیوانات نر نميتوانند بچهدار شوند و یا سگهاي ماده قبل از سن
شش ماهگي نميتوانند باردار شوند) .در این حالت گوئیم مقادیر
پیش فرض در داخل یك زیركالس لغو گردیدهاند.
قابها ()Frames
نمایش مبتني بر قابها توسعه یافته شبكههاي معنا ميباشد
و اجازه ميدهد تا ایده ارثبري را پیاده كنیم.
همانند شبكههاي معنا ،یك سیستم قابي از یك مجموعه از
قابها (یا نودها) كه بوسیله رابطهها به یكدیگر متصل
شدهاند تشكیل شده است .هر قاب ،یك نمونه (قاب نمونه)
و یا كالس (قاب كالس) را توصیف مينماید.
قابها: مثال
Frame Name
Bob
Fido
Fang
Mice
Builder
Dog
Cat
Slot
Slot Value
is a
Builder
Owns
Fido
eats
Cheese
is a
Dog
Chases
Fang
is a
Cat
Chases
Mice
eat
Cheese
قابها: مثال
Bob
Is a
Fido
Builder
Owns
Fido
Eats
Cheese
Is a
Dog
Cheese
Fang
قابها
مهمترین مزیت استفاده از سیستمهاي مبتني بر قابها براي
سیستمهاي خبره این است كه همه اطالعات درباره یك شي
در یك مكان ذخیره ميشوند.
قابها و وراثت: مثال
Frame Name
Slot
Slot Value
Mammal
*number of legs
four
Dog
Subclass
Mammal
Cat
Subclass
Mammal
Fido
is a
Dog
number of legs
three
is a
Cat
Fang
قابها و حفره ها
این امكان نیز وجود دارد كه بازه مقادیري كه یك حفره ميتواند به
عنوان مقدار بگیرد را بیان نماییم .به عنوان مثال ،تعداد پاها ممكن
است مقداري برابر یكي از مقادیر بین 1تا 4داشته باشد.
یك روش براي نمایش این نوع از محدودیتها این است كه اجازه
بدهیم حفره ها ،قاب باشند.
Slot Value
Slot
Frame Name
1
minimum value
Number of legs
4
maximum value
قابها و ارث بری چندگانه
Frame Name
Slot
Slot Value
Human
Subclass
Mammal
Number of legs
two
Builder
Builds
Houses
Bob
is a
Human
:اطالعات زیر در مورد باب قابل حصول است
.باب دو پا دارد
.باب خانهها را ميسازد
ارث بری چندگانه و تناقضات
Slot Value
Slot
Frame Name
smelly
is
Cheese
not smelly
is
Thing wrapped in foil
Cheese
is a
Cheddar
Thing wrapped in foil
is a
چدار یك نوع پنیراست كه بستهبندي شده مي باشد.
چدار باید بو بدهد چرا كه این خاصیت را از كالس پنیر به ارث ميبرد و نباید بو
بدهد چرا كه از كالس اشیاء بستهبندي بو ندادن را به ارث ميبرد.
یك روش ساده ميتواند چنین باشد كه ترتیب نوشتن آنها را جهت رفع تناقض
در نظر بگیریم .به این معنا كه اگر به حقیقتي توسط وراثت دست یافتیم و در
ادامه آن حقیقت توسط وراثت دیگري نقض شد ،حقیقت اول را نگه داریم چرا
كه زودتر بدست آمده است.
قابها ()Frames
یك روال مجموعهاي از دستورات وابسته به یك قاب است
كه مي توانند در صورت نیاز اجرا شوند .قابها روالها را
پشتیبانی می کنند.
یك رویداد ،نوع خاصي از روالها ميباشد كه هر وقت یك
مقدار خاص عوض ميشود و یا یك اتفاق خاص رخ دهد،
بصورت خودكار اجرا ميشود .قابها رویدادها را پشتیبانی
می کنند.
درختان معنایي ()Semantic Tree
یك درخت معنایي یك نوع شبكه معني است كه خصوصیات
زیر را دارا ميباشد :هر نود (به جز ریشه) بطور مستقیم
یك نود قبلي (والد) و یك یا چند نود بعدي (فرزند) دارد.
A
A
B
C
G
B
F
E
C
D
ِD
E
درختان معنایي ()Semantic Tree
یك نود وجود دارد كه نود قبلي ندارد (نود ریشه) .در
جستجوي در یك درخت معنا ،از نود ریشه شروع ميكنیم.
این بدین دلیل است كه نود ریشه معموالً بیانگر نقطه
شروع یك مسئله ميباشد.
بعضي از نودها نود بعدي ندارند (نودهاي برگ) .یك یا
چند تا از نودهاي برگ نودهاي هدف هستند .اینها
نودهایي هستند كه وضعیتي را نمایش ميدهند كه در آنها
جستجو به جواب رسیده است.
شبكههاي معنا داراي دور ميباشند ،اما درختان معنا دور
ندارند.
مراحل حل یک مسئله
انتخاب روش نمایش
تعیین وضعیت شروع
تعیین وضعیت نهایی
تعیین عملگرها
تعیین استراتژی حرکت
مثال :مسئله كشیشها و آدمخوارها
3كشیش و 3آدمخوار در یك طرف یك رودخانه قرار
دارند 1 .قایق نیز هست .همه آنها ميخواهند به آن طرف
رودخانه برسند .قایق گنجایش 1و یا 2نفر را در هر
دفعه دارد .در هیچ زماني نباید تعداد بیشتري از
آدمخواران نسبت به كشیشها در یك طرف رودخانه باشد،
چرا كه احتماالً كشیشها توسط آدمخواران خورده خواهند
شد.
مراحل حل مسئله کشیشها و آدمخوارها
انتخاب روش نمایش
استفاده از یک 3تایی مرتب جهت نمایش تعداد آدمخوارها ،كشیشها و وجود قایق در یك
طرف رودخانه
تعیین وضعیت شروع
تعیین وضعیت نهایی
تعیین عملگرها
0،0،0
3،3،1
-1حركت یك آدمخوار به طرف دیگر
-2حركت دو آدمخوار به طرف دیگر
-3حركت یك كشیش به طرف دیگر
-4حركت دو كشیش به طرف دیگر
-5حركت یك كشیش و یك آدمخوار به طرف دیگر
تعیین استراتژی حرکت
چند نکته
چنانچه در شروع کار عملگر 5اعمال شود به حالت 1 ،0و 1خواهیم رسید،
سپس به وضعیت 2 ،1و 2دست خواهیم یافت .اعمال عملگر 3در این
وضعیت ما را به سمت وضعیت خطاي 1 ،0و 2رهنمون خواهد ساخت .ما
به قوانیني اینچنیني كه محدودكننده ميباشند و عملگرهاي ممكنه اعمال
شونده در هر وضعیت را محدود ميكنند ،نیاز داریم .اگر روش نمایش مان را
درست طراحي كرده باشیم ،بعضي محدودیتها خود به خود وجود دارند و
نیازي نداریم كه وضعیتهاي ناصحیح را مرتبا ً تست نماییم.
همچنین نیازمند تابع تست هدف جهت تعیین دستیابي یا عدم دستیابي به
وضعیت هدف ميباشیم .هدف 3 ،1و 3است.
به هزینه مسیر نیز توجه ميشود و مثالً تعداد مراحلي كه انجام شده است و یا
تعداد زمانهایي كه یك عملگر اعمال شده است به عنوان هزینه مسیر انتخاب
ميشود .در بعضي از حاالت همانطور كه بعداً خواهیم دید ،راه حلي مطلوب
ميباشد كه هزینه را بهینه سازد.
نمایش استراتژی
0,0,0
5
1,1,1
1
2
2,0,1
1,1,1
1,0,1
2
2
1
3
1,0,0
0,0,0
1,0,0
0,0,0
امکان انجام عملیات دور وجود دارد .وجود دور جهت حل مسئله مشكل
منطقي ندارد ،اما راه حلي مؤثر نیز نخواهد بود.
یك روش نمایش مؤثرتر براي این مسئله راهي ميباشد كه هیچ دوري را
شامل نشود
نمایش استراتژی
0,0,0
با توجه به عدم اجازه حضور دورها ،مسیرهاي
بهینه جزئي از درخت حذف ميشوند .در نتیجه،
دو مسیري كه در درخت ميتوانند دنبال شوند و به
هدف برسند كوتاهترین راهها به هدف ميباشند.
با انتخاب یك نمایش مناسب ميتوانیم كارایي
الگوریتم جستجویمان را بهبود ببخشیم.
جهت پیادهسازي درخت جستجوي بدون
وضعیتهاي تكراري ،حافظه مورد نیاز است .در
بسیاري از مسائل ،این مصرف حافظه در توازن با
مصرف زمان خواهد بود و به میزان مصرف
حافظه ،در زمان مصرفي صرفهجویي ميشود.
حل مسئله كشیشها و آدمخوارها شامل عمل
جستجو در درخت جستجو ميشود
5
1,1,1
2
1
2,0,1
1,0,1
1
3
1,0,0
1,0,0
3,0,1
2
1
2,0,0
4
2,2,1
5
1,1,0
4
1,3,1
1
0,3,0
2
2,3,1
3
2,2,0
5
3,3,1
1
1,3,0
2
3, 3,1
مثال :2فروشنده دورهگرد
مسئله فروشنده دورهگرد چنین تعریف ميشود:
فروشنده باید هر یك از شهرهاي یك مجموعه شهر را
ببیند و سپس به خانه بازگردد .هدف این مسئله یافتن
كوتاهترین مسیري است كه به فروشنده اجازه دهد طي آن
همه شهرها را با كمترین هزینه بپیماید.
مثال :2فروشنده دورهگرد
800
B
C
1700
700
900
1500
1100
600
E
1000
A
600
700
D
برخالف درخت مسئله كشیشها و آدمخوارها ،این درخت
اجازه داشتن وضعیتهاي تكراري را دارد.
نمایش استراتژی
نمایش استراتژی
درمجموع !( (n-1مسیر ممكن براي مسئله فروشنده
دورهگرد با nشهر وجود دارد.
مثال اگر مسئله شامل 40شهر شود 40! ،مسیر وجود
خواهد داشت كه حدوداً 10به توان 48ميشود و وحشتناك
بزرگ است.
روندهایي كه سعي ميكنند تا همه این مسیرها را بررسي
نمایند روندهاي جستجوي كوركورانه ( Brute-Force
)Searchنامیده ميشوند.
نمایش استراتژی
جهت حل مسائل جستجوي با درختان بزرگ ،دانش در
مورد مسئله باید به فرم اكتشافي( )Heuristicsبیان شود.
دانش اكتشافي ما را توانمند ميسازد تا راههایي با كارایي
بیشتر را جهت حل یك مسئله بیابیم.
یك اكتشاف یك قانون و یا بخشي از دانش است كه استفاده
ميگردد تا یك جستجو یا هر روش حل مسئله دیگر را
كاراتر و مؤثرتر سازد.
نمایش استراتژی
در مسئله فروشنده دوره گرد به جاي اینكه هر مسیر ممكن
مورد ارزیابي قرار گیرد ،مسیرمان را با حركت به
نزدیكترین شهر به موقعیت جاریمان كه هنوز مورد بررسي
قرار نگرفته است بسط دهیم.
مثال :3برج هانوي
مسئله برج هانوي چنین تعریف ميشود:
3میله با تعدادي مهره و با اندازههاي مختلف داریم .هدف این است
كه از وضعیت شروع كه در آن همه مهرهها در میله اول و به ترتیب
اندازه (كوچكترین در باال) قرار دارند به وضعیت هدف برسیم كه در
آن همه مهرهها در میله سوم قرار دارند و باز هم به ترتیب اندازه
روي هم چیده شده اند .اجازه داریم در هر حركت فقط یك مهره را
جابجا نماییم .مهرهاي را حق دست زدن داریم كه در روي آن مهره
دیگري نباشد و همچنین حق گذاشتن آن مهره را در میلهاي داریم
كه مهره كوچكتر از آن در آن میله نباشد.
مثال :3برج هانوي
3
2
1
3
2
1
مراحل حل مسئله برج هانوی
انتخاب روش نمایش
استفاده از بردارهایي از اعداد (3تایيهاي مرتب) كه در آن 1بیانگر كوچكترین مهره و 3بیانگر
بزرگترین مهره ميباشد .بردار اول میله اول را نشان ميدهد و به همین ترتیب دو بردار بعدي دو میله
دیگر را نشان ميدهند.
تعیین وضعیت شروع
تعیین وضعیت نهایی
تعیین عملگرها
( ) ( ) ()1 ،2 ،3
() ( ) ( )1 ،2 ،3
Op1
Op2
Op3
Op4
Op5
Op6
حركت یك مهره از میله 1به میله 2
حركت یك مهره از میله 1به میله 3
حركت یك مهره از میله 2به میله 1
حركت یك مهره از میله 2به میله 3
حركت یك مهره از میله 3به میله 1
حركت یك مهره از میله 3به میله 2
تعیین استراتژی حرکت
نمایش استراتژی
) () ()(1,2,3
)(2,3)( )(1
) ()(2,3)(1
)(3)(2)(1
)(3)(1)(2
) ()(3)(1,2
) ()(1,3)(2
)(3)( )(1,2
)(1,3)( )(2
) ()(1,3)(2
) ()(3)(1,2
)(1,3)( )(2
)(3)( )(1,2
پنج سطح اول درخت جستجو مسئله برج هانوي با 3مهره
دو تعریف
انفجار تركیبات
در خیلي از مسائل به موازات اینكه تعداد آیتمها افزایش محسوسي پیدا نی کنند ،تعداد مسیرهاي
ممكن در درخت جستجو به صورت انفجاري افزایش ميیابد .این بدین معناست كه اگر یك مسئله
بزرگتر شود ،درخت آن به صورت غیرمعقوالنهاي بزرگتر و بزرگتر ميشود به طوري كه
دیگر قابل حل توسط یك برنامه كامپیوتري نخواهد بود .این مسئله تحت عنوان انفجار تركیبات
نامیده ميشود.
تقلیل مسئله
در بسیاري از حاالت ،مسائل پیچیده ميتوانند با شكسته شدن به مسائل كوچكتر متعدد بصورت
كاراتري حل شوند .اگر تمام آن ریزمسئلهها را حل كنیم ،توانستهایم مسئله كلي را نیز حل
نماییم .این روش حل مسئله اغلب به عنوان سادهسازي هدف مطرح ميشود ،چرا كه در این
روش جهت دستیابي به یك هدف نهایي ،دستیابي به چند ریزهدف در دستور كار قرار ميگیرد.
درختان هدف )(Goal Trees
درخت هدف (كه درخت and-orنیز نامیده ميشود) یك مدل از درخت معنا
ميباشد كه جهت نمایش مسائلي كه ميتوانند به همین روش شكسته شوند بكار
ميآید .هر جواب براي مسئله یك هدف ميباشد و هر مرحله منحصر به فرد در
طول این راه یك ریزهدف است.
هر نود در درخت هدف یك ریزهدف را بیان ميدارد و فرزندان نودها ریزاهداف
آن هدف ميباشند.
بعضي از اهداف تنها در صورتي قابل دستیابي هستند كه همه ریزاهداف آن حل
شده باشند .این چنین نودهایي در درخت هدف ،نودهاي andنامیده ميشوند.
در سایر حاالت ،هدف از طریق دستیابي به هر كدام از این ریزاهداف قابل
دستیابي است .چنین اهدافي اهداف orهستند و در درخت هدف بوسیله نودهاي
orارائه ميشود.
نودهاي برگ به جاي نودهاي هدف نودهاي موفقیت نامیده ميشوند.
درخت هدف مسلله برج هانوی
Move A, B, C, D From 2 to 3
Move A, B, C
From 2 to 3
Move D
From 1 to 3
Move A, B
From 1 to 3
Move C
From 2 to 3
Move B
From 1 to 3
Move A
From 2 to 3
باال به پایین یا پایین به باال
دو روش عمده جهت شكستن یك مسئله به ریز اهداف وجود دارد :باال به پایین
و پایین به باال.
در روش باال به پایین ابتدا مسئله اصلي به اهداف كوچكتر شكسته مي شود و
به همین ترتیب آن اهداف به اهداف ریزتر خرد ميشوند و این عمل تا رسیدن
به نودهاي برگ یا نودهاي موفقیت كه قابل حل هستند ،ادامه پیدا ميكند.
در روش پایین به باال ابتدا الزم است تا همه ریزاهدافي كه جهت حل كامل
مسئله الزم ميباشند تعیین گردند .در ادامه شروع به حل این نودهاي موفقیت
مينماییم و اینكار را آنقدر انجام ميدهیم تا جواب كلي پیدا شود.
مثال :رنگآمیزي نقشه
6
b y
5
g
r
b y
4
g
r
b y
2
3
g
r
b y
1
g
b y r
g
درخت هدف مسئله رنگآمیزي نقشه با 6كشور و 4رنگ
r
b y
g
r