AI Final 1385-Spring - Answers - main.doc

‫پاسخهاي آزمون پايانترم هوش مصنوعيترم دوم ‪84-85‬مدت امتحان‪ 3 :‬ساعت‬
‫‪ :1-1‬در ‪ ،S.A.‬دما بيانگر احتمال رفتن به وضعيت بدتر در حين حركتت‬
‫است‪ .‬در صورتيكه گره بعدياي كه براي حركت انتخاب كردهايم از گتره‬
‫فعلي به ميزان ‪ E‬بدتر باشد (‪ E‬منفي است)‪ ،‬با احتمال )‪ exp(E/T‬بته‬
‫اين گره ميرويم‪ .‬بنابراين هرچه دما بيشتر باشد‪ ،‬احتمال انتقال به‬
‫حالت بدتر بيشتر ميشود و هرچه كمتر باشد‪ ،‬به تپته نتوردي معمتولي‬
‫نزديكتر ميشويم‪.‬‬
‫‪ :1-2‬يك گره زماني از ‪ OL‬خارج ميشود كه هيچ گره ديگري وجود نداشته‬
‫باشد كه بهتر به نظر برسد (جمع هيورستيك و هزينه واقعتياش) كمتتر‬
‫ً بهتترين‬
‫باشد‪ .‬به اين ترتيب‪ ،‬زماني كه يك گره هدف خارج شود‪ ،‬قطعا‬
‫هدف است‪ ،‬امتا در صتورتيكه گتره در زمتان‬
‫‪A‬‬
‫ورود به ‪ OL‬بررسي شود‪ ،‬ممكن است گره هتدف‬
‫‪4‬‬
‫‪6‬‬
‫ديگري وجود داشته باشتد كته از ايتن گتره‬
‫=‪h‬‬
‫‪0‬‬
‫بهتر باشد و هنوز وارد ‪ OL‬نشده باشد‪ .‬بته‬
‫‪h=1 B‬‬
‫‪C‬‬
‫اين ترتيب *‪ A‬با اين تسريع تضتمين بهينته‬
‫بودن جوابش را از دستت متيدهتد‪ .‬در مثتال‬
‫‪1‬‬
‫‪2‬‬
‫زير‪ ،‬ابتدا گره ‪ A‬وارد ‪ OpenList‬ميشود‪ .‬سپس‬
‫‪D‬‬
‫‪E‬‬
‫دو گره ‪ B‬و ‪ C‬به ‪ OL‬وارد ميشوند‪ .‬اگتر در‬
‫‪h=0‬‬
‫‪h=7‬‬
‫همين جا هدف بودن را بررسي كنتيم‪ ،‬گتره ‪C‬‬
‫به عنوان جواب انتخاب ميشود‪ ،‬اما اگر ادامه دهيم به گره ‪ D‬ميرسد‪.‬‬
‫‪ :1-3‬نه‪ .‬مثتال روبترو‪ ،‬هتر‬
‫گره با يتك حترف و يتك عتدد‬
‫حترف‪،‬‬
‫نشان داده شده است كه‬
‫‪E6‬‬
‫‪D5‬‬
‫نام گره و عدد‪ ،‬ميزان تتابع‬
‫ارزش آن استتت‪ .‬عتتدد بيشتتتر‬
‫‪B3‬‬
‫‪A4‬‬
‫بيانگر گره مناسبتتر استت و‬
‫گره شروع ‪ S‬ميباشد‪.‬‬
‫‪F6‬‬
‫‪S0‬‬
‫در اين حالت‪ ،‬الگتوريتم ‪H.C.‬‬
‫به ترتيب گرههتاي ‪ D ،A ،S‬و‬
‫‪3‬‬‫‪ G‬را بررسي متيكنتد‪ ،‬امتا‬
‫‪C2‬‬
‫تدم اول ‪B ،A‬‬
‫‪ ،Beam Search‬در قت‬
‫و ‪ C‬را بتته عنتتوان نستت اول‬
‫همسايههاي ‪ S‬انتخاب ميكنتد‪.‬‬
‫‪H6‬‬
‫درقدم دوم بته ‪ F ،E‬و ‪ H‬متي‪-‬‬
‫پردازد و در قدم ستوم‪ ،‬چتون‬
‫تمام همسايههاي اين سه گره ارزش كمتري دارند‪ ،‬يكي از ايتن سته را‬
‫به عنوان جواب بر ميگرداند‪.‬‬
‫‪G9‬‬
‫‪ :2‬به اين ترتيب‪:‬‬
‫‪ ‬توصيف ژنوم‪ :‬يك ‪ 3‬تايي مرتب از اعداد حقيقتي كته بته ترتيتب‬
‫بيانگر سه مقدار ‪ ،Y ،X‬و ‪ Z‬هستند‪ .‬در صورتي ‪ G‬يك ژنوم باشد‪،‬‬
‫سه پارامتر آنرا با ‪ ،G.Y ،G.X‬و ‪ G.Z‬نشان خواهيم داد‪:‬‬
‫‪Z‬‬
‫‪‬‬
‫‪Y‬‬
‫‪X‬‬
‫تابع ارزشگذاري )‪ :(Fitness Function‬در صورتي كه هر ركتورد ‪ R‬داراي‬
‫پارامترهاي ‪ R.C ،R.B ،R.A‬و ‪ R.Result‬باشتد و ركتورد ‪ N‬ام بتا ‪RN‬‬
‫نشان داده شود‪ ،‬مقدار روبرو ميتواند بيانگر تابع ارزشگتذاري‬
‫باشد‪:‬‬
‫‪1000‬‬
‫)‪Fitness (G )   (R i .A  G.X  R i .B  G.Y  R i .C  G.Z)  (R i .Result‬‬
‫‪i 1‬‬
‫ يكتي از‬،3/1 ‫ با احتمتال‬،G ‫ براي جهش ژنوم‬:(Mutation) ‫تابع جهش‬
[-0.1 .. ‫ با يك مقدار تصتادفي در بتازه‬G.Z ‫ و‬،G.Y ،G.X ‫سه مقدار‬
‫ (البته در مورد ميزان تغيير ميتتوان بثت هتاي‬.‫ جمع شوند‬+0.1]
.‫ اما براي اين جا در همين حد كافيست‬،‫دقيقتري نمود‬

‫ ژنومهتاي‬،G2 ‫ و‬G1 ‫ براي تركيب دو ژنوم‬:(Cross Over) ‫تابع تركيب‬
:‫ به شك زير توليد شوند‬G4 ‫ و‬G3

G3 = (G1.X,
G4 = (G2.X,
G2.Y,
G1.Y,
G2.Z).
G1.Z).
:‫ به اين ترتيب‬:3
-‫ در راي گيري دانشگاه به ساخت استخر راي متي‬1 ‫ دانشجوي شماره‬.1
:‫دهد‬
Student(S1)  [ UniBuiltsPool  UniListensTo(S1) ]
‫ در راي گيري دانشگاه به عدم ساخت استخر راي‬2 ‫ دانشجوي شماره‬.2
.‫ميدهد‬
Student(S2)  [ ~UniBuiltsPool  UniListensTo(S2) ]
‫ معتقد است دانشگاه هرگز به حرف يتك دانشتجو‬3 ‫ دانشجوي شماره‬.3
.‫گوش نميكند‬
S; Student(S)  ~UniListensTo(S)
:CNF ‫به‬
‫تبدي‬
Student(S1)  ( UniListensTo(S1)  ~UniBuildsPool )
Student(S2)  (UniListensTo(S2)  UniBuildsPool )
~UniListensTo(S1)  ~UniListensTo(S2)
:‫رسيدن به تناقض با رزولوشن‬
St(S1)
St(S2)
Listen(S1)Ú ~Builds
Listen(S2)Ú Builds
Builds
~Listen(S1)
~Listen(S2)
~Builds
:4-1
At( A , B):
Holding(Obj):
OnFloor:

:‫عملها‬

Object A is at Position B.
Monkey is holding Obj.
Monkey is on floor.
Go(A,B):
Precondition: At(Monkey,A), OnFloor
Effects: ~ At( Monkey,A) , At( Monkey, B)
Push(A,B,Obj):
Precondition: At(Monkey,A), At(Obj, A), OnFloor
Effects: ~ At( Monkey,A) , At( Monkey, B), ~ At( Obj ,A) , At( Obj, B)
ClimbBox:
:‫عبارتها‬
‫‪Precondition: At(Monkey,X), At(Box,X), OnFloor‬‬
‫‪Effects: ~ OnFloor.‬‬
‫‪Grasp(X,Obj):‬‬
‫‪Precondition: At(Monkey,X), At(Obj,X), ~OnFloor‬‬
‫‪Effects: Holding(Obj).‬‬
‫‪:4-2‬‬
‫)‪Go(A,B‬‬
‫)‪~At(Monkey,A‬‬
‫)‪At(Monkey,B‬‬
‫)‪At(Monkey,A‬‬
‫‪OnFloor‬‬
‫)‪At(Monkey,A‬‬
‫)‪At(Box,B‬‬
‫)‪At(Benana,C‬‬
‫‪OnFloor‬‬
‫)‪Grasp(C,Benana‬‬
‫)‪Holding(Benana‬‬
‫‪Start‬‬
‫)‪At(Monkey,C‬‬
‫)‪At(Benana,C‬‬
‫‪~OnFloor‬‬
‫)‪Push(B,C, Box‬‬
‫)‪At(Monkey,C‬‬
‫)‪~At(Monkey,B‬‬
‫)‪At(Box,C‬‬
‫)‪~At(Box,B‬‬
‫‪Finish‬‬
‫)‪Holding(Benana‬‬
‫)‪At(Monkey,B‬‬
‫)‪At(Box,B‬‬
‫‪OnFloor‬‬
‫‪ClimbBox‬‬
‫‪~OnFloor‬‬
‫)‪At(Monkey,C‬‬
‫)‪At(Box,C‬‬
‫‪OnFloor‬‬
‫‪ :4-3‬اگر آخرين دستوري كه اضافه ميكنيم‪ Go(A,B) ،‬باشد‪ ،‬ايتن دستتور‬
‫لينك ‪ OnFloor‬را اضافه ميكند‪ .‬دستور ‪ ،ClimbBox‬يك نتيجته ‪ ~OnFloor‬دارد‬
‫كه با اين لينك در تضاد است و بايد به طريقي رفع تداخ نمود‪.‬‬
‫‪ :5-1‬در صورتيكه دو سطح از گراف توليد شده مشتابه هتم باشتند‪ ،‬بته‬
‫وضعيتي رسيدهايم كه ادامه گتراف ستودي نتدارد‪ .‬ايتن موضتوع ‪level off‬‬
‫ناميده ميشود‪.‬‬
‫‪ :5-1‬از سطح آخر شروع ميكنيم‪ .‬مجموعه اهداف الزم را انتخاب ميكنيم‪.‬‬
‫سپس به صورت بازگشت به عقب‪ ،‬مجموعهاي از اعمال كه با هم در تضتاد‬
‫نباشند و اهداف مورد نظر را توليد كنند انتخاب كرده‪ ،‬پيش نيازهاي‬
‫اين اعمال را اهداف جديد قرار ميدهيم و روند تا رسيدن به سطح اول‬
‫ادامه مييابد‪.‬‬