HW4.pdf

‫دانشگاه صنعتی شریف‬
‫دانشکده مهندسی کامپیوتر‬
‫هوش مصنوعی‬
‫تمرین شماره ‪۴‬‬
‫توضیحات‬
‫‪‬‬
‫ایي توریي دارای ‪ً 011‬ورُ ‪ً 04 +‬ورُ اضبفی است‪.‬‬
‫‪‬‬
‫هَػذ تحَیل توریي تئَری ‪ 10‬اردیجْطت لجل از ضرٍع والس است ٍ توریي ػولی تب سبػت ‪ 13‬رٍز ‪ 15‬اردیجْطت‬
‫است‪.‬‬
‫‪‬‬
‫جَاة توریي را ثِ آدرس ‪ ai.sharif.92.3@gmail.com‬ثب ػٌَاى ‪ HW4-StudentID‬ارسبل ًوبییذ‪.‬‬
‫‪‬‬
‫ّر گًَِ سَال در هَرد توریي را ثِ آدرس ‪ ahmadshahab.t@gmail.com‬ایویل ًوبییذ‪.‬‬
‫‪‬‬
‫ثِ ازای ّر رٍز تبخیر ‪ً % 01‬ورُ وسر خَاّذ ضذ‪.‬‬
‫‪‬‬
‫ثِ توریي ّبی هطبثِ ًورُ صفر تؼلك خَاّذ گرفت‪.‬‬
‫ثخص اٍل ‪ -‬سَاالت تئَری‬
‫(‪ً 4+34‬ورُ)‬
‫سوال ‪ً 4( ۱‬ورُ)‬
‫اطالػبت زیر را درًظر ثگیریذ‪:‬‬
‫اگر است ته ضبخ افسبًِ است پس اٍ یه هَجَد جبٍداًِ است‪ٍ .‬لی اگر افسبًِ ًیست‪ ،‬اٍ یه پستبًذار فبًی است‪ .‬اگر است تهضبخ‬
‫یه پستبًذار یب هَجَدی جبٍداًِ ثبضذ آًگبُ ضبخ دارد‪ .‬اگر است تهضبخ ضبخ داضتِ ثبضذ پس جبدٍیی است‪.‬‬
‫‪.0‬‬
‫ایي اطالػبت را ثِ فرم هٌطك گسارُای ثیبى وٌیذ‪.‬‬
‫‪.1‬‬
‫آیب هیتَاًیذ ثبثت وٌیذ وِ است تهضبخ جبدٍیی است؟ اگر آری‪ ،‬اثجبت خَد را ثیبٍریذ‪.‬‬
‫سوال ‪ً 6( ۲‬ورُ)‬
‫فرض وٌیذ پبیگبُ داًص ضبهل گسارُّبی زیر است‪:‬‬
‫(‬
‫)‬
‫)‬
‫)‬
‫))‬
‫(‬
‫(‬
‫(‬
‫(‬
‫را ثِ رٍشّبی زیر ثبثت وٌیذ‪:‬‬
‫‪.0‬‬
‫ثب استفبدُ از لَاًیي استٌتبج‬
‫‪.1‬‬
‫ثب استفبدُ از ‪Resolution‬‬
‫سوال ‪ً 01( ۳‬ورُ)‬
‫گسارُّبی زیر را ثِ فرم هٌطك هرتجِ اٍل ثیبى وٌیذ‪:‬‬
‫‪.0‬‬
‫فمط یه داًطجَ در ّر دٍ درس ثرًبهًَِیسی ‪ ٍ C‬جبٍا هردٍد ضذ‪.‬‬
‫‪.1‬‬
‫ثْتریي ًورُ در درس هجبًی ثرًبهًَِیسی ّوَارُ ثیطتر از ثْتریي ًورُ در درس ثرًبهًَِیسی پیطرفتِ است‪.‬‬
‫‪.2‬‬
‫آرایطگری ٍجَد دارد وِ هَّبی ّوِی افرادی وِ هَّبی خَدضبى را اصالح ًویوٌٌذ‪ ،‬اصالح هیوٌذ‪.‬‬
‫‪.3‬‬
‫سیبست هذاراى هیتَاًٌذ ثرخی از هردم را ّویطِ فریت دٌّذ ٍ هی تَاًٌذ ّوِی هردم را ثرخی اٍغبت فریت دٌّذ‪ٍ ،‬لی‬
‫ًویتَاًٌذ ّوِی هردم را ّویطِ فریت دٌّذ‪.‬‬
‫سوال ‪ً 01( ۴‬ورُ)‬
‫گسارُّبی زیر را در ًظر ثگیریذ‪:‬‬
‫‪‬‬
‫دضويِ دضوي ّر فرد دٍست اٍست‪.‬‬
‫‪‬‬
‫ّر فرد دضويِ دضوي خَد است‪.‬‬
‫‪‬‬
‫ّر فرد حذالل دٍ دضوي دارد‪.‬‬
‫ایي اطالػبت را ثِ فرم هٌطك هرتجِ اٍل تجذیل وٌیذ ٍ ثبثت ًوبییذ وِ ّر فرد حذالل یه دٍست دارد (ثجس خَدش)‪.‬‬
‫سوال ‪ً 07( ۵‬ورُ)‬
‫سیبٍش‪ ،‬سْراة ٍ هْراد ػضَ گرٍُ وَُ ّستٌذ‪ّ .‬ر ػضَ گرٍُ وَُ یب وًََُرد است یب اسىیثبز یب ّردٍ‪ّ .‬یچ وًََُردی ثبراى را‬
‫دٍست ًذارد ٍ ّر اسىی ثبزی ثرف را دٍست دارد‪ .‬سیبٍش ّرچِ را وِ سْراة دٍست دارد‪ ،‬دٍست ًذارد ٍ ّرچِ را وِ سْراة‬
‫دٍست ًذارد‪ ،‬دٍست دارد‪ .‬هْراد ّن ثرف ٍ ّن ثبراى را دٍست دارد‪.‬‬
‫اثتذا اطالػبت ثبال را ثِ فرم هٌطك هرتجِ اٍل ثٌَیسیذ ٍ سپس گسارُی «فردی در گرٍُ وَُ ّست وِ وًََُرد ّست ٍلی‬
‫اسىیثبز ًیست» را ثِ ّر یه از رٍشّبی زیر ثبثت ًوبییذ‪:‬‬
‫‪Resolution .0‬‬
‫‪Forward Chaining .1‬‬
‫‪Backward Chaining .2‬‬
‫ثخص دٍم ‪ -‬سَاالت ػولی‬
‫(‪ً 01+44‬ورُ)‬
‫سَاالت زیر را ثب استفبدُ از زثبى ثرًبهًَِیسی ‪ Prolog‬حل ًوبییذ‪ .‬دلت ضَد وِ اسن رٍاثط ٍ ترتیت پبراهترّبی ثرًبهِّبی خَاستِ ضذُ ثِ‬
‫ّوبى ترتیت هثبلّب ثبضذ‪.‬‬
‫سوال ‪ً 01( ۱‬ورُ)‬
‫ثرًبهِ ی ثٌَیسیذ وِ ػَاهل اٍل یه ػذد را ثذست آٍرد‪ .‬خرٍجی ثبیذ ثِ صَرت لیستی از لیستّبی دٍ ػضَی ثبضذ وِ ػضَ اٍل‬
‫ػبهل ٍ ػضَ دٍم تَاى آى است‪ .‬اگر تَاى ‪ 0‬ثَد‪ ،‬در لیست جَاة ثبیذ ثجبی یه لیست فمط خَد ػذد ثبضذ‪ّ .‬وچٌیي در جَاة‪،‬‬
‫ػَاهل اٍل ثبیذ ثِ ترتیت از وَچه ثِ ثسري ظبّر ضًَذ‪.‬‬
‫مثال‪:‬‬
‫‪?- p_factors(252 , P).‬‬
‫]‪P = [[2,2],[3,2],7‬‬
‫سوال ‪ً 11( ۲‬ورُ)‬
‫ثرًبهِ ی ثٌَیسیذ وِ جذٍل درستی یه ػجبرت هٌطمی را تَلیذ وٌذ‪ .‬ایي ػجبرت هیتَاى ضبهل تَاثغ ‪ not ٍ xor ،or ،and‬ثبضذ‪.‬‬
‫ایي تَاثغ را ثبیذ خَدتبى ثِ صَرت یه سری رٍاثط پیبدُسبزی وٌیذ‪ .‬آرگوبىّبی ایي رٍاثط هیتَاًذ یه ػجبرت هؼتجر در زثبى‬
‫‪ Prolog‬ثبضذ‪ .‬ثرلرار ثَدى آرگوبى را ثِ هٌسلِی یه ٍ ثرلرار ًجَدًص را ثِ هٌسلِی صفر در ًظر ثگیریذ‪ .‬ایي هٌطك ثرای خرٍجی‬
‫تَاثغ ًیس صذق هی وٌذ‪ .‬یؼٌی ٌّگبهی وِ لرار است خرٍجی تبثؼی ثب یه سری پبراهتر یه ضَد ثبیذ آى راثطِ ثرای آى پبراهترّب‬
‫ثرلرار ثبضذ‪.‬‬
‫در راثطِی ‪ t_table‬آرگوبى اٍل لیست پبراهترّب‪ ،‬آرگوبى دٍم یه ػجبرت هٌطمی ٍ آرگوبى سَم جذٍل درستی است‪ .‬جذٍل‬
‫درستی ثبیذ ثِ صَرت لیست ی از سطرّب ثبضذ‪ّ .‬ر سطر ًیس ضبهل یه لیست از همبدیر پبراهترّب ٍ همذار ػجبرت ثِ ازای آى‬
‫پبراهترّبست‪.‬‬
‫مثال‪:‬‬
‫‪?- assert(sunny).‬‬
‫‪true.‬‬
‫‪?- t_table([A,B] , or(A,and(not(B),sunny)) , T).‬‬
‫]]‪T = [[[0,0],1],[[0,1],0],[[1,0],1],[[1,1],1‬‬
‫سوال ‪ً 04( ۳‬ورُ)‬
‫در ایي لسوت ضوب ثبیذ ثرًبهِ ای ثٌَیسیذ وِ ثِ وبرثر اجبزُ دّذ وِ یه درخت جستجَی دٍدٍیی را ثسبزد ٍ ثِ آى گرُ اضبفِ‬
‫ًوبیذ ٍ در ًْبیت ثتَاًذ درخت را ثِ صَرت یه لیست هطبّذُ ًوبیذ‪.‬‬
‫وبرثر ثرای سبخت درخت دستَری هبًٌذ زیر را ٍارد هیوٌذ وِ در آى همذار ریطِی درخت جستجَی دٍدٍیی دادُ هیضَد‪:‬‬
‫‪?- BST_create(5).‬‬
‫‪true.‬‬
‫سپس ثِ تؼذاد دلخَاُ ثِ صَرت زیر گرُ اضبفِ هیوٌذ‪:‬‬
‫‪?- BST_insert(3).‬‬
‫‪true.‬‬
‫‪?- BST_insert(2).‬‬
‫‪true.‬‬
‫‪?- BST_insert(4).‬‬
‫‪true.‬‬
‫‪?- BST_insert(8).‬‬
‫‪true.‬‬
‫‪?- BST_insert(7).‬‬
‫‪true.‬‬
‫در ًْبیت ثبیذ ثتَاى درخت را در لیستی ثِ صَرت زیر دریبفت ورد‪:‬‬
‫‪?- BST_show(T).‬‬
‫]]][‪T = [5,[3,[2,[],[]],[4,[],[]]],[8,[7,[],[]],‬‬
‫خرٍجی‪ ،‬لیستِ راسِ ریطِ است‪ .‬لیستِ یه راس ضبهل همذار آى راس‪ ،‬لیستِ فرزًذ سوت چپص ٍ لیستِ فرزًذ سوت راستص‬
‫است‪ .‬اگر راسی فرزًذ سوت چپ یب راست ًذاضت ثِجبی آى یه لیست خبلی لرار هیگیرد‪.‬‬
‫سوال ‪ً 11( ۴‬ورُ)‬
‫راثطِی زیر را درًظر ثگیریذ‪:‬‬
‫)‪sublist(List,Sub,Start‬‬
‫ایي راثطِ زهبًی ثرلرار است لیستِ ‪« Sub‬زیرلیستِ» لیستِ ‪ List‬ثبضذ ٍ ‪ Start‬لیستی ثبضذ وِ ضرٍع ٍلَع لیست ‪ Sub‬را در‬
‫لیست ‪ List‬هطخص هیوٌذ‪ .‬لیستّبی ‪ Sub ٍ List‬هوىي است تَ در تَ ثبضٌذ‪ ،‬ثِ ّویي دلیل ضرٍع ٍلَع ‪ Sub‬در ‪ List‬ثب یه‬
‫لیست هطخص هیضَد‪.‬‬
‫در ایي سَال هٌظَر از زیرلیست ثَدى ایي است وِ توبم اػضبی لیست هسطحضذُی ‪ Sub‬ثِ ّوبى ترتیت ٍ ثذٍى فبصلِ در لیست‬
‫هسطحضذُی ‪ List‬حضَر داضتِ ثبضٌذ‪.‬‬
‫ّوچٌیي هٌظَر از لیست هسطحضذُی لیستی هبًٌذ ‪ ،List‬لیستی است وِ ثِجبی ّر ػضَش وِ یه لیست است‪ ،‬هبًٌذ ‪ ،l‬اػضبی‬
‫لیست هسطحضذُی ‪ l‬را در ‪ List‬لرار دّین‪ .‬هثال لیست هسطحضذُی ]]‪ [1,[2,[3],4],[5,6‬لیست ]‪ [1,2,3,4,5,6‬است‪.‬‬
‫لیست ‪ Start‬ضبهل اًذیسّبی هىبى ضرٍع ‪ Sub‬در ‪ List‬در توبم سطَح است‪ .‬اٍلیي ػضَ یه لیست اًذیس صفر دارد‪ .‬ثرای درن‬
‫ثْتر ثِ هثبلّبی دادُ ضذُ هراجؼِ ًوبییذ‪.‬‬
‫ثرًبهِای ثٌَیسیذ وِ ثرای پرسوبىّبیی وِ ‪ Sub ٍ List‬همذاردّی هیضًَذ توبم همبدیر ‪ Start‬را وِ در راثطِ صذق هیوٌذ ثیبثذ‪.‬‬
‫مثال ‪:۱‬‬
‫‪?- sublist([1,[2,3,4],[5,6]],[3,4,[5]] , S).‬‬
‫;]‪S = [1,1‬‬
‫‪false.‬‬
‫مثال ‪:۲‬‬
‫‪?- sublist([1,[2,[3],4],[5,[[6,3],4]]],[3,[4]] , S).‬‬
‫;]‪S = [1,1,0‬‬
‫;]‪S = [2,1,0,1‬‬
‫‪false.‬‬