نمایش دانش

Download Report

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‬‬